Твой код не проверял. Недавно кому-то делал на Delphi. Переделал на Pascal.
Приложил картинкой, если запутаешься. Если что-то не так работает, я поправлю.
//Pascal var a, b, c, d, x1, x2: real; begin write('Введите a = '); readln(a); write('Введите b = '); readln(b); write('Введите c = '); readln(c); if ((a = 0) and (b = 0) and (c = 0)) then writeln('X любое') else if a <> 0 then begin d := sqr(b) - 4 * a * c; if (d > 0) then begin x1 := (-b+sqrt(d))/(2*a); x2 := (-b-sqrt(d))/(2*a); writeln('x1 = ', x1); writeln('x2 = ', x2); end else if d = 0 then begin x1:=-b/(2*a); x2:=x1; writeln('x1 = ', x1); //writeln('x2 = ', x2); end else if d < 0 then writeln('Корней нет.'); end else if (a = 0) and (b = 0) then writeln('Решений нет.') else if (a = 0) then begin x1 := (-c)/b; writeln('x = ', x1); end; end.
Приложил картинкой, если запутаешься. Если что-то не так работает, я поправлю.
//Pascal
var
a, b, c, d, x1, x2: real;
begin
write('Введите a = '); readln(a);
write('Введите b = '); readln(b);
write('Введите c = '); readln(c);
if ((a = 0) and (b = 0) and (c = 0)) then
writeln('X любое')
else
if a <> 0 then
begin
d := sqr(b) - 4 * a * c;
if (d > 0) then
begin
x1 := (-b+sqrt(d))/(2*a);
x2 := (-b-sqrt(d))/(2*a);
writeln('x1 = ', x1);
writeln('x2 = ', x2);
end
else
if d = 0 then
begin
x1:=-b/(2*a);
x2:=x1;
writeln('x1 = ', x1);
//writeln('x2 = ', x2);
end
else
if d < 0 then
writeln('Корней нет.');
end
else
if (a = 0) and (b = 0) then
writeln('Решений нет.')
else
if (a = 0) then
begin
x1 := (-c)/b;
writeln('x = ', x1);
end;
end.
begin
write('Введите через пробел x1 и y1: ');
read(x1, y1);
write('Введите через пробел x2 и y2: ');
read(x2, y2);
a:=x2-x1;
b:=y1-y2;
s:=a*b;
p:=2*(a+b);
writeln('S = ', s);
writeln('P = ', p);
end.
Делать подобное контрпродуктивно, слишком много ненужного кода.
var x1, x2, y1, y2, s, p: real;
function a(x1, x2: real): real;
begin
a:=x2-x1;
end;
function b(y1, y2: real): real;
begin
b:=y1-y2;
end;
begin
write('Введите через пробел x1 и y1: ');
read(x1, y1);
write('Введите через пробел x2 и y2: ');
read(x2, y2);
s:=a(x1, x2)*b(y1, y2);
p:=2*(a(x1, x2)+b(y1, y2));
writeln('S = ', s);
writeln('P = ', p);
end.