Pascal语法错误行
问题描述:
PROGRAM FactorPrimo(input,output);
VAR
numero : integer;
factor : integer;
resto : integer;
primo : integer;
multiplicidad : boolean;
BEGIN
write('Ingrese numero: ');
readln(numero);
factor := 2;
primo := 0;
multiplicidad := false;
IF numero > 1 THEN
BEGIN
REPEAT
BEGIN
resto := numero MOD factor;
IF resto = 0 THEN
BEGIN
numero := numero DIV factor;
primo := primo + 1;
multiplicidad := true;
END
ELSE IF multiplicidad = true THEN
IF primo > 1 THEN
writeln(factor,'^',primo);
multiplicidad := false;
ELSE
writeln(factor);
multiplicidad := false;
ELSE
factor := factor + 1;
primo := 0;
END;
UNTIL numero = 1
writeln(factor);
END
ELSE
write('Debe ingresar un numero mayor a 1');
END.
您好抱歉打扰你,我previusly提出对Java的代码,现在是装盘要翻译成PASCAL,但为什么它说我有一个语法错误,我不能想通了, “;”预期但行(30,5)发现“ELSE”。 你能帮我吗?Pascal语法错误行
答
第30行是ELSE
声明。刚好在上面的IF
在else和if之间有两行代码。任何时候,如果你在if和else之间有多行,你必须有一个开始/结束块。 http://docwiki.embarcadero.com/RADStudio/XE8/en/Declarations_and_Statements#If_Statements
更改您的代码
IF primo > 1 THEN BEGIN
writeln(factor,'^',primo);
multiplicidad := false;
END ELSE BEGIN
writeln(factor);
multiplicidad := false;
END;
答
我设法在puting分号来解决这个问题:
UNTIL numero = 1;
你需要后包围的代码你'和'begin' else'和'end' – nepb