Другие языки программирования и технологии

Где ошибки в коде Delphi/pascal

var x,y,z:real;
begin
x:=StrToFloat(edt1.text);
y:=StrToFloat(edt3.text);
z:=StrToFloat(edt2.text);
if ((x<y) and (x<z)) then
x:=(y+z)/2
else
begin
if ((y<x) and (y<z)) then
y:=(x+z)/2
else
z:=(y+x)/2;
end;
end
else
begin
if (x<y) then
x:=(y+z)/2
else
y:=(x+z)/2
end;
lbl5.caption:=floattostr(x);
lbl6.caption:=floattostr(y);
lbl7.caption:=floattostr(y);
end.
В строке 11, после блока else, вы закрываете оператор if сразу же, но нет открывающего оператора if. Поэтому вы должны переместить блок else перед оператором if.

В строке 19, вы используете y дважды для lbl6.caption и lbl7.caption, в то время как lbl7.caption должен быть z.caption.

Вот исправленный код:
 var 
x, y, z: Real;
begin
x := StrToFloat(edt1.text);
y := StrToFloat(edt3.text);
z := StrToFloat(edt2.text);

if ((x < y) and (x < z)) then
x := (y + z) / 2
else if ((y < x) and (y < z)) then
y := (x + z) / 2
else
z := (y + x) / 2;

if (x < y) then
x := (y + z) / 2
else
y := (x + z) / 2;

lbl5.caption := FloatToStr(x);
lbl6.caption := FloatToStr(y);
lbl7.caption := FloatToStr(z);
end.
Здесь мы переместили блок else перед оператором if, чтобы исправить ошибку и заменили lbl7.caption на z.caption, чтобы исправить другую ошибку.
Алексей &&&
Алексей &&&
14 610
Лучший ответ
Да тут ошибок может быть целое море, начиная с того, что в Edit1 можно будет ввести 春節 и вы не сможете взять оттуда float. Надо конкретно смотреть, на что именно ругается и в какой именно строчке - там или до нее и будет то место, которое надо исправить.
Сергей Живодер
Сергей Живодер
62 274