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

Помогите найти ошибку Turbo Pascal

x1,x2,d:real;
berin
realdn(a,b,c);
d:=b*b-4*a*c;
if d>=0 then
begin
writeln('uravnenie imeet dva resheniya');
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
end
else
if d<0 then
writeln('uravnenie ne imeet reshenii');
end.
а, b,с не объявлены, нет var. И ты не выводишь результат, но, может, тебе это и не надо.. . ;) Условие-то ты не привела.

var a,b,c,x1,x2,d:real;
berin
readln(a,b,c);
d:=b*b-4*a*c;
if d>=0 then
begin
writeln('uravnenie imeet dva resheniya');
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln(x1:10:5,x2:10:5);
end
else writeln('uravnenie ne imeet reshenii');
readln
end.

Для тебя такое решение пойдет, хотя программистам его лучше не показывать...
АР
Александр Расторгуев
56 928
Лучший ответ
Гы!
x1 и x2 находишь, но не выводишь на экран.
А что будет если d = 0 — одно решение!
Grigori Pircxalashvili
Grigori Pircxalashvili
91 002
> if d>=0 then ...'uravnenie imeet dva resheniya'

Это с какого же перепугу ДВА решения при дискриминанте, равном нулю ?
Ridik Ridikov
Ridik Ridikov
32 502
вторая строка не berin а begin далее 3 строка Readln, ошибка то в решении или синтаксисе?
Когда-то решал такую задачку, вот код

program zadacha;
uses crt;
var a, b, c, y, d, x1, x2 : real;
begin
clrscr;
writeln('Vvedite chislo A');
readln(a);
writeln('Vvedite chislo B');
readln(b);
writeln('Vvedite chislo C');
readln(c);

if (a<>0) or ((a<>0) and (b<>0) and (c<>0)) then
begin
d:=b*b - 4*a*c;
if d<0 then writeln('Kornei net')
else
begin
if d=0 then
begin
x1:=(-b)/(2*a);
writeln('Uravnenie imeet odin koren, ravnyi ', round(x1));
end
else
begin
x1:=((-b)+sqrt(d))/(2*a);
x2:=((-b)-sqrt(d))/(2*a);
writeln('Uravnenie imeet dva korenya, ravnye X1=', round(x1), ', X2=', round(x2));
end;
end;
end
else writeln('Chisla vvedeni ne verno');

readln;
end.
Не realdn, а readln