Составить программу вычисления корней квадратного уравнения вида a x 2 + b x + c = 0
Последовательность действий:
1. Описать переменные a, b, c, d, x1,x2 как REAL.
2. Задать с клавиатуры коэффициенты a, b, c.
3. Вычислить значение дискриминанта d = b 2 – 4 a c
4. Вывести значение дискриминанта на экран
5. Проверить значение дискриминанта:
• Если дискриминант меньше нуля, то нет решения
• Если дискриминант больше или равен нулю, то вычислить
значения x1 и x2
как вычислить значение x1 и x2????????
По формулам:
Program yravnenie;
uses crt;
var a,b,c,d,X1,X2:integer;
Begin
ClrScr;
WriteLn('Введите первое число');
readLn(a);
WriteLn('Введите второе число');
readLn(В);
WriteLn('Введите третье число');
readLn(С);
d:=(b*2)-(4*a*c);
writeln('Итого ',d,'');
if d<0 then writeln('Нет решений')
Else
begin X1 = (-b + sqrt(D)) / (2*A)
X2 = (-b - sqrt(D)) / (2*A)
Writeln('Первый корень -',X1,' Второй корень ',X2,'');
end;
readln;
repeat until keypressed;
end.
ошибки в синтаксисе.
var
a,b,c,d{,x1,x2}:extended;
Begin
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln( c );
d:=sqr(b)-4*a*c;
if d<0 then
writeln('Reshenii net')
else
if d=0 then
writeln('x=',-b/(2*a):2 :3)
else
begin
writeln('x1=',(-b+sqrt(d))/(2*a):2 :3);{x1:=(-b+sqrt(d))/(2*a)}
writeln('x2=',(-b-sqrt(d))/(2*a):2 :3);{x2:=(-b-sqrt(d))/(2*a)}
end;
readln;
end.
X1, X2 - действительные числа! (Real)
Program yravnenie;
uses crt;
var a,b,c,d,X1,X2:integer;
Begin
ClrScr;
WriteLn('Введите первое число');
readLn(a);
WriteLn('Введите второе число');
readLn(В);
WriteLn('Введите третье число');
readLn(С);
d:=(b*2)-(4*a*c); { <-- b*2 <> b^2 !! }
writeln('Итого ',d,'');
if d<0 then writeln('Нет решений')
Else
begin X1 = (-b + sqrt(D)) / (2*A) { не соответствует синтаксису Паскаля. Проверь что нужно добавить }
X2 = (-b - sqrt(D)) / (2*A) { а где оператор окончания блока ?? Ты думал, что можно просто вставить, и оно заработает ?! }
Writeln('Первый корень -',X1,' Второй корень ',X2,'');
end;
readln;
repeat until keypressed; { Это не нужно писать, если ты прежде ожидаешь ввода }
end.
SlimShady, плюс к этому (чтобы избежать неприятностей с "делением на 0") проверяй, не равняется ли A нулю...
Program yravnenie;
uses crt;
var a,b,c,d,X1,X2:real;
Begin
ClrScr;
WriteLn('Введите первое число');
readLn(a);
WriteLn('Введите второе число');
readLn(В);
WriteLn('Введите третье число');
readLn(С);
d:=sqr(В)-4*a*c;
if d<0 then
writeln('Решения нет')
else
if d=0 then
writeln('Дискриминант равен ',-b/(2*a):2 :3)
else
begin
writeln('Первый корень уравнения равен ',(-b+sqrt(d))/(2*a):2 :3);
writeln('Второй корень уравнения равен ',(-b-sqrt(d))/(2*a):2 :3);
end;
readln;
end.
SlimShady, ошибочка у тебя:
if d=0 then
writeln('Дискриминант равен ',-b/(2*a):2 :3) { <--- Не дискриминант, а уже корень. Дискриминант у тебя равен 0... }