Форум: "Начинающим";
Текущий архив: 2013.09.01;
Скачать: [xml.tar.bz2];
ВнизКвадратное уравнение Найти похожие ветки
← →
Женя (2012-12-21 12:43) [0]Здравствуйте, посмотрите кому не тяжело, правильно ли я решила уравнение на Паскаль.
program prg_4;
uses
crt;
label
lb;
var
mode: Integer;
A,B,C,D: Real;
begin
lb:
clrscr;
write("A = ");
readln(A);
if (A = 0) then
begin
writeln("Korney net");
readln;
goto lb;
end;
write("B = ");
readln(B);
write("C = ");
readln(C);
D := B * B - 4 * A * C;
writeln("");
writeln("Otvet:");
if (D = 0) then
begin
writeln("X1 = X2 = ",(-B)/(2*A):6:2);
end;
if (D > 0) then
begin
writeln("x1 = ",((-B+Sqrt(D))/(2*A)):6:2);
writeln("x2 = ",((-B-Sqrt(D))/(2*A)):6:2);
end;
if (D < 0) then
begin
writeln("x1 = ",((Sqrt(-D))/(2*A)):6:2);
writeln("x2 = ",((-Sqrt(-D))/(2*A)):6:2);
end;
writeln("");
writeln("vveite 0 - vixod, 1 - prodoljit");
readln(mode);
if(mode = 0) then Exit;
if(mode = 1) then goto lb;
end.
← →
брат Птибурдукова (2012-12-21 12:48) [1]лейблы убери, crt убери, вариант с A=0 продумай получше (сообщение неправильное), вариант с D<0 неправильный
← →
Жека (2012-12-21 12:57) [2]A=0 - понятно, поменяю
D<0 - корней нет.
зачем убирать CRT и LABEL
СПАСИБО.
ОП новый вариант:
program prg_4;
uses
crt;
label
lb;
var
mode: Integer;
A,B,C,D: Real;
begin
lb:
clrscr;
write("A = ");
readln(A);
if (A = 0) then
begin
writeln("Uravnenie virajdeno");
readln;
goto lb;
end;
write("B = ");
readln(B);
write("C = ");
readln(C);
D := B * B - 4 * A * C;
writeln("");
writeln("Otvet:");
if (D = 0) then
begin
writeln("X1 = X2 = ",(-B)/(2*A):6:2);
end;
if (D > 0) then
begin
writeln("x1 = ",((-B+Sqrt(D))/(2*A)):6:2);
writeln("x2 = ",((-B-Sqrt(D))/(2*A)):6:2);
end;
if (D < 0) then
writeln("Korney net D = ",D:6:2);
writeln("");
writeln("vveite 0 - vixod, 1 - prodoljit");
readln(mode);
if(mode = 0) then Exit;
if(mode = 1) then goto lb;
end.
← →
брат Птибурдукова (2012-12-21 13:27) [3]Косметика исправлена, а принципиальные гадости — лейблы — на месте. И Exit тут совершенно не к месту.
← →
Игорь Шевченко © (2012-12-21 14:15) [4]
> writeln("Uravnenie virajdeno");
куда ?
← →
Юрий Зотов © (2012-12-21 14:25) [5]Женя, метками и goto пользоваться можно, но это считается не очень хорошим стилем (хотя непонятно, почему). Ну и если уж рассматривать разные варианты (нет корней, один корень, два корня...), то надо рассматривать все.
В общем, посмотрите вот это. Писал "с ходу", могут быть ошибки, проверьте.
program prg_4;
var
mode: byte;
A, B, C, D: real;
begin
repeat
write("Введите A, B, C через пробел: ")l
readln(A, B, C);
if A = 0 then
if B = 0 then
if C = 0 then
writeln("Корень - любое число")
else
writeln("Корней нет")
else
writeln("X= ", -C / B:6:2)
else
begin
D := B * B - 4 * A * C;
if D < 0 then
writeln(Действительных корней нет")
else
if D = 0 then
writeln("X1 = X2 = ", -B / (2 * A) :6:2)
else
writeln("X1 = ", (-B - Sqrt(D)) / (2 * A) :6:2,
", X2 = ", (-B + Sqrt(D)) / (2 * A) :6:2);
repeat
write("Введите 0 - выход, 1 - продолжить: ");
readln(mode)
until
mode in [0, 1]
end
until
mode = 1
end.
← →
Юрий Зотов © (2012-12-21 14:26) [6]Поправка:
until
mode = 0
← →
Женя (2012-12-21 15:39) [7]
> Юрий Зотов © (21.12.12 14:25) [5]
Спасибо.
← →
Юрий Зотов © (2012-12-21 17:24) [8]В самом начале программы (перед repeat) вставьте:
mode := 0
← →
Юрий Зотов © (2012-12-22 00:54) [9]Женя, в программе [5] есть серьезная ошибка. Постарайтесь найти ее и исправить, а если не получится - спрашивайте.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.09.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c