Ожидается "END", но "IF" найден. С некоторыми проблемами в коде Turbo Pascal

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.

1 ответ

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

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.
if ...
then if ...
     then ...
     else ...

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

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

вместо этого используйте

if ...
then begin
     if ...
     then ...
end
else ...
Другие вопросы по тегам