Pascal语法错误85

Pascal语法错误85,pascal,freepascal,error-code,turbo-pascal,Pascal,Freepascal,Error Code,Turbo Pascal,首先,我是编程新手,我刚刚开始学习pascal。我遇到了一个错误,预期为85:“;”。整个东西我找了好几遍,但都没找到问题所在。有什么建议吗 代码如下: program test; var a,b,c:real; begin D:=sqr(b)-4*a*c; writeln('Enter a value for a'); readln(a); writeln('Enter a value for b'); readln(b); writeln('Enter a val

首先,我是编程新手,我刚刚开始学习pascal。我遇到了一个错误,预期为85:“;”。整个东西我找了好几遍,但都没找到问题所在。有什么建议吗

代码如下:

program test;
var
  a,b,c:real;
begin
  D:=sqr(b)-4*a*c;
  writeln('Enter a value for a');
  readln(a);
  writeln('Enter a value for b');
  readln(b);
  writeln('Enter a value for c');
  readln(c);
  if ( D<0 ) then
  begin
    writeln('There is no solution.');
  else
  if ( D>0 ) then
  begin
    x1:=(-b+sqrt(D))/2*a;
    x2:=(-b-sqrt(D))/2*a;
    writeln('x1 is:');
    writeln('x1:=',x1);
    writeln(x2 is:);
    writeln('x2:=',x2);
  end;
end.
程序测试;
变量
a、 b,c:真实的;
开始
D:=sqr(b)-4*a*c;
writeln('为a'输入一个值');
readln(a);
writeln('为b'输入一个值');
readln(b);
writeln('为c输入一个值');
readln(c);
如果(D0)那么
开始
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
writeln('x1为:');
writeln('x1:=',x1);
writeln(x2为:);
writeln('x2:=',x2);
结束;
结束。

您有三个
开始
语句,只有两个
结束
语句。缩进你的代码,你就会注意到你的错误。变量D、X1和X2也未定义。您的输出中还有其他语法错误,即在靠近末尾的一个
writeln
语句中缺少tic标记。

您有三个
begin
语句,只有两个
end
语句。缩进你的代码,你就会注意到你的错误。变量D、X1和X2也未定义。您的输出中还有其他语法错误,即在靠近末尾的一个
writeln
语句中缺少tic标记。

您有三个
begin
语句,只有两个
end
语句。缩进你的代码,你就会注意到你的错误。变量D、X1和X2也未定义。您的输出中还有其他语法错误,即在靠近末尾的一个
writeln
语句中缺少tic标记。

您有三个
begin
语句,只有两个
end
语句。缩进你的代码,你就会注意到你的错误。变量D、X1和X2也未定义。您的输出中还有其他语法错误,即在靠近末尾的一个
writeln
语句中缺少tic标记。

并且您需要在else之前有一个
end

program test;
var
  a,b,c:real;
begin
  D:=sqr(b)-4*a*c;
  writeln('Enter a value for a');
  readln(a);
  writeln('Enter a value for b');
  readln(b);
  writeln('Enter a value for c');
  readln(c);
  if ( D<0 ) then
  begin
    writeln('There is no solution.');
  end 
  else
  if ( D>0 ) then
  begin
    x1:=(-b+sqrt(D))/2*a;
    x2:=(-b-sqrt(D))/2*a;
    writeln('x1 is:');
    writeln('x1:=',x1);
    writeln(x2 is:);
    writeln('x2:=',x2);
  end;
end.
程序测试;
变量
a、 b,c:真实的;
开始
D:=sqr(b)-4*a*c;
writeln('为a'输入一个值');
readln(a);
writeln('为b'输入一个值');
readln(b);
writeln('为c输入一个值');
readln(c);
如果(D0)那么
开始
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
writeln('x1为:');
writeln('x1:=',x1);
writeln(x2为:);
writeln('x2:=',x2);
结束;
结束。

而你需要一个
结尾
,然后再执行其他操作

program test;
var
  a,b,c:real;
begin
  D:=sqr(b)-4*a*c;
  writeln('Enter a value for a');
  readln(a);
  writeln('Enter a value for b');
  readln(b);
  writeln('Enter a value for c');
  readln(c);
  if ( D<0 ) then
  begin
    writeln('There is no solution.');
  end 
  else
  if ( D>0 ) then
  begin
    x1:=(-b+sqrt(D))/2*a;
    x2:=(-b-sqrt(D))/2*a;
    writeln('x1 is:');
    writeln('x1:=',x1);
    writeln(x2 is:);
    writeln('x2:=',x2);
  end;
end.
程序测试;
变量
a、 b,c:真实的;
开始
D:=sqr(b)-4*a*c;
writeln('为a'输入一个值');
readln(a);
writeln('为b'输入一个值');
readln(b);
writeln('为c输入一个值');
readln(c);
如果(D0)那么
开始
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
writeln('x1为:');
writeln('x1:=',x1);
writeln(x2为:);
writeln('x2:=',x2);
结束;
结束。

而你需要一个
结尾
,然后再执行其他操作

program test;
var
  a,b,c:real;
begin
  D:=sqr(b)-4*a*c;
  writeln('Enter a value for a');
  readln(a);
  writeln('Enter a value for b');
  readln(b);
  writeln('Enter a value for c');
  readln(c);
  if ( D<0 ) then
  begin
    writeln('There is no solution.');
  end 
  else
  if ( D>0 ) then
  begin
    x1:=(-b+sqrt(D))/2*a;
    x2:=(-b-sqrt(D))/2*a;
    writeln('x1 is:');
    writeln('x1:=',x1);
    writeln(x2 is:);
    writeln('x2:=',x2);
  end;
end.
程序测试;
变量
a、 b,c:真实的;
开始
D:=sqr(b)-4*a*c;
writeln('为a'输入一个值');
readln(a);
writeln('为b'输入一个值');
readln(b);
writeln('为c输入一个值');
readln(c);
如果(D0)那么
开始
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
writeln('x1为:');
writeln('x1:=',x1);
writeln(x2为:);
writeln('x2:=',x2);
结束;
结束。

而你需要一个
结尾
,然后再执行其他操作

program test;
var
  a,b,c:real;
begin
  D:=sqr(b)-4*a*c;
  writeln('Enter a value for a');
  readln(a);
  writeln('Enter a value for b');
  readln(b);
  writeln('Enter a value for c');
  readln(c);
  if ( D<0 ) then
  begin
    writeln('There is no solution.');
  end 
  else
  if ( D>0 ) then
  begin
    x1:=(-b+sqrt(D))/2*a;
    x2:=(-b-sqrt(D))/2*a;
    writeln('x1 is:');
    writeln('x1:=',x1);
    writeln(x2 is:);
    writeln('x2:=',x2);
  end;
end.
程序测试;
变量
a、 b,c:真实的;
开始
D:=sqr(b)-4*a*c;
writeln('为a'输入一个值');
readln(a);
writeln('为b'输入一个值');
readln(b);
writeln('为c输入一个值');
readln(c);
如果(D0)那么
开始
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
writeln('x1为:');
writeln('x1:=',x1);
writeln(x2为:);
writeln('x2:=',x2);
结束;
结束。

您没有得到发生错误的行号吗?另外,缩进你的代码。不。它只显示了一个错误85。尽管如此,感谢您对我的代码进行缩进的评论和建议。我以后会尽量多做。你没有得到错误发生的行号吗?另外,缩进你的代码。不。它只显示了一个错误85。尽管如此,感谢您对我的代码进行缩进的评论和建议。我以后会尽量多做。你没有得到错误发生的行号吗?另外,缩进你的代码。不。它只显示了一个错误85。尽管如此,感谢您对我的代码进行缩进的评论和建议。我以后会尽量多做。你没有得到错误发生的行号吗?另外,缩进你的代码。不。它只显示了一个错误85。尽管如此,感谢您对我的代码进行缩进的评论和建议。以后我会尽量多做。谢谢你纠正我。我将尝试在将来缩进我的代码,并更仔细地检查它是否有任何错误。是的,这是误导。它是由
writeln结尾的分号(“没有解决方案”)引起的代码行。如果编译器输出
“在else子句之前从语句中删除分号”
,则效果更好。在Pascal中,如果有一个
else
,那么在前面的语句中就不能有分号。谢谢你纠正我。我将尝试在将来缩进我的代码,并更仔细地检查它是否有任何错误。是的,这是误导。它是由
writeln结尾的分号(“没有解决方案”)引起的代码行。如果编译器输出
“在else子句之前从语句中删除分号”
,则效果更好。在Pascal中,如果有一个
else
,那么在前面的语句中就不能有分号。谢谢你纠正我。我将尝试在将来缩进我的代码,并更仔细地检查它是否有任何错误。是的,这是误导。它是由
writeln结尾的分号(“没有解决方案”)引起的代码行。如果编译器输出
“从stateme中删除分号,效果会更好