Здравейте, нещо не мога да се справя с if и съм тотално блокирал, да не говорим че отдавна не съм писал на Паскал (има няма над 12-тина години), но ми се наложи да направя една програма за изчисление и зациклих тук, ако може някой да помогне:
Лошото е че, не получавам грешка и проекта се компилира.
След изчисленията обаче действа само зададеното на първият if т.е. извеждането в полето текста "Грешка". В смисъл извежда се текста, само ако крайният резултат т.е. "modul" е по-малък от 2 и по-голям от 3.9 - което е зададено в първият if. При друг резултат извън диапазона на дефинирата от мен "Грешка" не се извежда нищо. Т.е. дори и да е в диапазона на "Ситен", "Среден" и "Едър" не се извежда нищо, полето е празно. Нещо някъде бъркам, но не мога да схвана къде.
modul:=5-(preminali_6+preminali_5+preminali_4+preminali_3+preminali_2)/100; modul_edit.Text:=FloatToStrf(modul,ffFixed,5,2); if (modul<2) or (modul>3.9) then begin vid:='Грешка'; vid_edit.Text:=vid; end; if (modul=2) or (modul=2.1) or (modul=2.2) or (modul=2.3) or (modul=2.4) or (modul=2.5) or (modul=2.5) then begin vid:='Ситен'; vid_edit.Text:=vid; end; if (modul=2.6) or (modul=2.7) or (modul=2.8) or (modul=2.9) or (modul=3.0) or (modul=3.1) or (modul=3.2) then begin vid:='Среден'; vid_edit.Text:=vid; end; if (modul=3.3) or (modul=3.4) or (modul=3.5) or (modul=3.6) or (modul=3.7) or (modul=3.8) then begin vid:='Едър'; vid_edit.Text:=vid; end; end;
Лошото е че, не получавам грешка и проекта се компилира.
След изчисленията обаче действа само зададеното на първият if т.е. извеждането в полето текста "Грешка". В смисъл извежда се текста, само ако крайният резултат т.е. "modul" е по-малък от 2 и по-голям от 3.9 - което е зададено в първият if. При друг резултат извън диапазона на дефинирата от мен "Грешка" не се извежда нищо. Т.е. дори и да е в диапазона на "Ситен", "Среден" и "Едър" не се извежда нищо, полето е празно. Нещо някъде бъркам, но не мога да схвана къде.