Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.01;
Скачать: CL | DM;

Вниз

Квадратное уравнение   Найти похожие ветки 

 
Женя   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1356154304
Виталий
2012-12-22 09:31
2013.09.01
как оцифровать звук (.wav)


15-1364544598
O'ShinW
2013-03-29 12:09
2013.09.01
Как бы сделать в Oraclе DML operation inside a query?


15-1364407192
ThreadMaster
2013-03-27 21:59
2013.09.01
Как нужно делать многопоточные приложения


2-1355837667
LDV
2012-12-18 17:34
2013.09.01
поиск дубликатов в таблице бд


15-1364430073
RGV
2013-03-28 04:21
2013.09.01
код Делфи to Java