2014-03-05 7 views
0

처음에는 프로그래밍이 처음이었고 파스칼을 배우기 시작했습니다. 85 오류가 발생했습니다 : ";" 예상했다. 모든 것을 여러 번 조사했지만 문제를 찾을 수 없었습니다. 어떤 제안? 당신은 세 가지 begin 만이 end 문을파스칼 구문 오류 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. 
+2

당신은 오류가 발생한 위치에 대한 행 번호를 얻을하지 않았다? 또한 코드를 들여 씁니다. – Michael

+0

Nope. 그럼에도 85 오류 만 표시되었습니다. 그럼에도 불구하고 내 코드를 들여 쓴 것에 대한 의견 및 제안에 감사드립니다. 나는 앞으로 더 자주 그것을하려고 노력할 것이다. – user3385057

답변

3

:

여기에 코드입니다. 들여 쓰기 코드 및 실수를 알 것입니다. 변수 D, X1 및 X2도 정의되지 않습니다. 출력에 다른 구문 오류가 있습니다 (예 : writeln 문장 중 하나에 문장 ' 누락).

+0

나를 고쳐 주셔서 감사합니다. 나는 미래에 내 코드를 들여 쓰려고 노력할 것이고 어떤 msitake에 대해서도 더주의 깊게 점검 할 것이다. – user3385057

+0

그러나 오류 메시지는 오해의 소지가 있습니다. – jwdietrich

+0

예, 오해의 소지가 있습니다. 이것은'writeln '끝에있는 세미콜론 (''해결책이 없습니다.')''코드 행 (code of line)에 기인합니다. 컴파일러가''else 절 이전의 문장에서 세미콜론을 제거하면 더 좋을 것입니다. 파스칼에서는 'else'가 있으면 이전 명령문에 세미콜론이 없어야합니다. –

0

그리고 당신이 다른 전에 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.