


Помогите паскаль программа на решение квадратного уравнения!
================================================================
Program sqrtx;
var a,b,c:integer;
begin
writeln('(Решение квадратного уравнений)');
writeln('Введите значения коэффицентов a,b,c:');
readln(a); readln(b); readln(c);
if sqr(b)-4*a*c < 0 then
writeln('(Так как дискриминант меньше нуля то, квадратное уравнение не имеет корней)');
if sqr(b)-4*a*c > 0 then
writeln('(Так как дискриминант больше нуля то, квадратное уравнение имеет два действительных корня)');
if sqr(b)-4*a*c = 0 then
writeln('(Так как дискриминант равен нулю то, квадратное уравнение имеет один действительный корень)');
writeln('Дискриминант = ', sqr(b)-4*a*c);
writeln('Квадратный корень из ', sqr(b)-4*a*c, ' = ', sqrt(sqr(b)-4*a*c));
if sqr(b)-4*a*c = 0 then
writeln('Неизвестный x1 = ', sqr(-b)/2*a);
if sqr(b)-4*a*c > 0 then
writeln('Неизвестный x1 = ', -b+sqrt(sqr(b)-4*a*c:2*a));
writeln('Неизвестный x2 = ', -b-sqrt(sqr(b)-4*a*c:2*a));
end.
=====================================================
Помогите пожалуйста, в последних строках пишет (Форматное выражение может использоваться только внутри write, writeln и str), не понимаю где здесь ошибка
Деление в коде - слеш, а не двоеточие, как в арифметике.
Для простоты сначала дискриминант вычисляют, а потом его используют для вычисление корней. Не стоит здесь свой велосипед изобретать, не тот случай
при Д=0 2 одинаковых корня, а не один
Program sqrtx;
uses crt;
var a,b,c:integer;
begin
writeln('(Решение квадратного уравнений)');
writeln('Введите значения коэффициентов a,b,c:');
readln(a); readln(b); readln(c);
if sqr(b)-4*a*c < 0 then
writeln('Так как дискриминант меньше нуля то, квадратное уравнение не имеет корней') else
if sqr(b)-4*a*c > 0 then
begin
writeln('(Так как дискриминант >=нулю то, квадратное уравнение имеет два действительных корня)');
writeln('Неизвестный x1 = ', (-b+sqrt(sqr(b)-4*a*c)/(2*a)));
writeln('Неизвестный x2 = ', (-b-sqrt(sqr(b)-4*a*c)/(2*a)));
end
end.