Ожидается «END», но «IF» найден.С некоторыми проблемами в коде Turbo Pascal - PullRequest
0 голосов
/ 25 февраля 2019
program calc;
   var a,b,c,d:real; 
Begin
   write('a=');readln(a);
   write('b=');readln(b);
   write('c=');readln(c);
   if a = 0 then
      if b = 0 then
         if c = 0 then
            writeln('equation undetermined,S=R')
         else
            begin
               d := b * b - 4 * a * c; <<<< missed ';'?
               if (d >= 0) then
                  begin
                     writeln('x1=',(-b-sqrt(d))/(2* a):6:2 ); <<< missed ')' ?
                     writeln('x2=',(-b+sqrt(d))/(2* a):6:2 ); <<< missed ')' ?
                  end;
               else 
                  writeln ('Equation has no real solutions');
            end;
            readln;
End.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019
if ...
then if ...
     then ...
     else ...

может также скомпилироваться как

if ...
then if ...
     then ...
else ...

вместо использования

if ...
then begin
     if ...
     then ...
end
else ...
0 голосов
/ 27 февраля 2019

Я думаю, вы хотите сделать это:

Program Calc;
   var a,b,c,d: Real; 

Begin
   Write('a='); ReadLn(a);
   Write('b='); ReadLn(b);
   Write('c='); ReadLn(c);

   if (a = 0) or (b = 0) or (c = 0) then
      WriteLn('equation undetermined,S=R')
   else
      Begin
         d := b * b - 4 * a * c;
         if (d >= 0) then
            Begin
               WriteLn('x1=', (-b - sqrt(d)) / (2 * a):6:2 );
               WriteLn('x2=', (-b + sqrt(d)) / (2 * a):6:2 );
            end;
         else 
            WriteLn('Equation has no real solutions');
      end;

   ReadLn;
End.
...