Доброго времени суток.
Как написать прогу, которая решает квадратные уравнения?
Я делал так:
uses crt;
var a,b,c,d,x1,x2:real;
begin
clrscr;
write('Введите а');
readln(a);
write('Введите b');
readln(b);
write('Введите c');
readln(c );
d:=sqr(b)-4*a*c;
x1:=(-b-sqrt(d))/2*a;
x1:=(-b+sqrt(d))/2*a;
if d<0 then write('Корней нет') else write(x1,x2);
readln;
end.
uses crt;
var a,b,c,d,x1,x2:real;
begin
clrscr;
write('Введите а');
readln(a);
write('Введите b');
readln(b);
write('Введите c');
readln(c );
d:=sqr(b)-4*a*c;
if d>=0 then{<---сдесь}
begin
x1:=(-b-sqrt(d))/2*a;
x1:=(-b+sqrt(d))/2*a;
end;
if d<0 then write('?????? ???') else write(x1,x2);
readln;
end.
Спасиб, всё получилось.
Но вот ещё в чем загвоздка, как мне поставить счетчик?
Чтобы прога не вырубалась после первого решения, а можно
было бы задать столько, сколько нужно решений, после чего
прога заканчивалась?
Введи цикл, либо for (если уже известно будет сколько раз будет повторяться) или repeat.
uses crt;
var a,b,c,d,x1,x2:real;
begin
repeat
clrscr;
writeln('Введите а');
readln(a);
writeln('Введите b');
readln(b);
writeln('Введите c');
readln(c );
d:=sqr(b)-4*a*c;
if d>=0 then{<---сдесь}
begin
x1:=(-b-sqrt(d))/2*a;
x1:=(-b+sqrt(d))/2*a;
end;
if d<0 then
write('Корней нет')
else
write(x1,x2);
writeln('Press Esc to exit');
until readkey=#27;
end.
Спасибо. Разобразался.
И чего? Эта программа нормально считала корни? ;)
Косяк, который походу так ни кто и не заметил:
x1:=(-b-sqrt(d))/2*a;
x1:=(-b+sqrt(d))/2*a;
x1:=(-b-sqrt(d))/2*a;
x2:=(-b+sqrt(d))/2*a;
! | А косяк этот никому напрочь не нужен, чтобы его замечать!!! Автор задал вопрос по другому поводу - об RTE 207, что касаемо всего остального - знаешь, если на все обращать внимание - с ума сойти можно... Автор получил нужный ответ - получил. Все, тема закрыта! |