Types 编译pascal代码错误:不兼容类型:Get";Char";“预期”;“长”字;

Types 编译pascal代码错误:不兼容类型:Get";Char";“预期”;“长”字;,types,char,pascal,Types,Char,Pascal,有人能帮我吗?我觉得一切都很好 它说: 程序pas(57,14)错误:不兼容类型:获取“Char”预期为“LongInt” 程序pas(66,4)致命:编译模块时出现1个错误,正在停止 program telesa; uses crt; var a,b,c,r,v: real; valce,koule,i,j: integer; {a, pocet valcu a kouli} objemy: array[1..50] of real;

有人能帮我吗?我觉得一切都很好

它说:

程序pas(57,14)错误:不兼容类型:获取“Char”预期为“LongInt” 程序pas(66,4)致命:编译模块时出现1个错误,正在停止

program telesa;
uses crt;
var a,b,c,r,v: real;
    valce,koule,i,j: integer;                   {a, pocet valcu a kouli}
    objemy: array[1..50] of real;               {b, objemy vsech teles}
    povrchy_valcu: array[1..50] of real;        {c, povrchy vsech krychli a valcu}
    povrchy_krychli: array[1..50] of real;  
    status: char;
begin
    clrscr;
    valce:=0;
    koule:=0;
    i:=0;
    writeln('R - krychle, V - kvádr, O - koule, C - válec, J - jehlan, A - vypsat výsledky');
    repeat 
        begin
        i:=i+1;
        write('Zadejte jaké těleso chcete zapsat: ');
        readln(status);
        if status='R'   then begin          {krychle}
                                write('Zadejte délku strany krychle v cm: ');
                                readln(a);
                                objemy[i]:=a*a*a;
                                povrchy_krychli[i]:=6*a*a;
                             end else
        if status='V'   then begin          {kvadr}
                                write('Zadejte délku první strany kvádru v cm: ');
                                readln(a);
                                write('Zadejte délku druhé strany kvádru v cm: ');
                                readln(b);
                                write('Zadejte délku třetí strany kvádru v cm: ');
                                readln(c);
                                objemy[i]:=a*b*c;
                             end else
        if status='O'   then begin          {koule}
                                write('Zadejte poloměr koule v cm: ');
                                readln(r);
                                koule:=koule+1;
                                objemy[i]:=(4*pi*r*r*r)/3;
                             end else
        if status='C'   then begin          {valec}
                                write('Zadejte poloměr podstavy válce v cm: ');
                                readln(r);
                                write('Zadejte výšku válce v cm: ');
                                readln(v);
                                valce:=valce+1;
                                objemy[i]:=pi*r*r*v;
                                povrchy_valcu[i]:=2*pi*r*(r+v);
                             end else
        if status='J'   then begin          {jehlan}
                                write('Zadejte hranu podstavy jehlanu v cm: ');
                                readln(a);
                                write('Zadejte výšku jehlanu v cm: ');
                                readln(v);
                                objemy[i]:=(a*a*v)/3;
                             end else
        if i=1 and status='A' then write('Nezadal jste žádné těleso.');
        end;
    until status='A';
    writeln('Počet válců: ',valce);
    writeln('Počet koulí: ',koule);
    for j:=1 to 50 do writeln('Objem ',j,'. tělesa je: ',objemy[j]:2:2,' cm3');
    for j:=1 to 50 do writeln('Povrch ',j,'. válce je: ',povrchy_valcu[j]:2:2,' cm2');
    for j:=1 to 50 do writeln('Povrch ',j,'. krychle je: ',povrchy_krychli[j]:2:2,' cm2');
    readln;
end.

缺少括号,请写下

如果(i=1)和(status='A'),则写入('Nezadal jstežádnétěleso')

有关更多信息,请阅读手册或联机帮助中的“操作员优先规则”一节。如果没有括号,编译器会将表达式解释为

i=(1和状态)='A'


这将计算整数1的按位-以及字符状态,这是不允许的。

您检查了第57行第14列了吗?