非法表达';s Pascal(新错误) 程序PaidUp; 常数 尺寸=30; 变量 付款总额1、2、3:实际金额; 第1节、第2节、第3节,i、j、idnum:整数; IDNUMARR:整数的数组[1..999]; PAYMENTARR:real的数组[1..size]; 程序变量; {此过程初始化程序中使用的所有变量} 开始 idnum:=0; 付款:=0; totm1:=0; totm2:=0; totm3:=0; 第1节:=0; 第二节:=0; 第三节:=0; i:=0; j:=0; 结束;{初始化变量} 程序声明和初步声明; {此过程声明并初始化程序中使用的所有数组} 开始 对于i:=1到尺寸do 开始 IDNUMARR[i]:=0; PAYMENTARR[i]:=0; 结束;{station的结束} 结束;{声明并初始化变量} 将数据放入数组的过程; {此过程将数据放入数组} 开始 而(idnum0)和(付款0)和(付款=1350)和(付款=1620)和(付款=1800)和(付款=1650)和(付款=1980)和(付款=2200)则 开始 writeln('无效值,请输入另一个值'); readln(idnum); readln(付款); 结束;{结束while语句} j:=j+1; Idnumar[j]:=idnum; PAYMENTARR[j]:=付款; 结束;{将数据放入数组} 程序决定论信息; {此程序确定哪些伪装者属于哪一组,统计一个部分的总人数,并计算每个部分为服装支付的总金额} 开始 对于j:=1到尺寸do 开始 如果(PAYMENTARR[j]=1350)和(PAYMENTARR[j]=1650),则 开始 writeln('memid:idnum[j]的伪装器属于section1'); 截面1:=截面1+1; totm1:=totm1+付款金额[j]; 结束;{如果语句结束} 如果(PAYMENTARR[j]=1620)和(PAYMENTARR[j]=1980),则 开始 writeln('memid:idnum[j]的伪装器属于section2'); 第2节:=第2+1节; 合计2:=合计2+付款金额[j]; 结束;{如果语句结束} 如果(PAYMENTARR[j]=1800)和(PAYMENTARR[j]=2200),则 开始 writeln('memid:idnum[j]的伪装器属于第3节'); 第3节:=第3节+1; 合计3:=合计3+付款金额[j]; 结束;{如果语句结束} 结束;{确定统计信息} 程序打印结果; {此过程输出所有信息} 开始 writeln('第1节中的伪装者数量为:',第1节); writeln('第2节中的伪装者数量为:',第2节); writeln(“第3节中的伪装者数量为:”,第3节); 书面形式(“第1节中支付的总金额为:”,总计1); 书面形式(“第2节中支付的总金额为:”,总计m2); 书面形式(“第3节中支付的总金额为:”,总计3); 结束。{打印结果}
我得到的错误是:77/11 paidup.pas错误:非法表达式 77/11 paidup.pas错误:表达式非法 77/11 paidup.pas致命:语法错误;预期但找到标识符PRINTRESULTS您仍然缺少一个end语句,该语句与过程确定性统计信息中j:=1 to size do的后面的begin语句相匹配非法表达';s Pascal(新错误) 程序PaidUp; 常数 尺寸=30; 变量 付款总额1、2、3:实际金额; 第1节、第2节、第3节,i、j、idnum:整数; IDNUMARR:整数的数组[1..999]; PAYMENTARR:real的数组[1..size]; 程序变量; {此过程初始化程序中使用的所有变量} 开始 idnum:=0; 付款:=0; totm1:=0; totm2:=0; totm3:=0; 第1节:=0; 第二节:=0; 第三节:=0; i:=0; j:=0; 结束;{初始化变量} 程序声明和初步声明; {此过程声明并初始化程序中使用的所有数组} 开始 对于i:=1到尺寸do 开始 IDNUMARR[i]:=0; PAYMENTARR[i]:=0; 结束;{station的结束} 结束;{声明并初始化变量} 将数据放入数组的过程; {此过程将数据放入数组} 开始 而(idnum0)和(付款0)和(付款=1350)和(付款=1620)和(付款=1800)和(付款=1650)和(付款=1980)和(付款=2200)则 开始 writeln('无效值,请输入另一个值'); readln(idnum); readln(付款); 结束;{结束while语句} j:=j+1; Idnumar[j]:=idnum; PAYMENTARR[j]:=付款; 结束;{将数据放入数组} 程序决定论信息; {此程序确定哪些伪装者属于哪一组,统计一个部分的总人数,并计算每个部分为服装支付的总金额} 开始 对于j:=1到尺寸do 开始 如果(PAYMENTARR[j]=1350)和(PAYMENTARR[j]=1650),则 开始 writeln('memid:idnum[j]的伪装器属于section1'); 截面1:=截面1+1; totm1:=totm1+付款金额[j]; 结束;{如果语句结束} 如果(PAYMENTARR[j]=1620)和(PAYMENTARR[j]=1980),则 开始 writeln('memid:idnum[j]的伪装器属于section2'); 第2节:=第2+1节; 合计2:=合计2+付款金额[j]; 结束;{如果语句结束} 如果(PAYMENTARR[j]=1800)和(PAYMENTARR[j]=2200),则 开始 writeln('memid:idnum[j]的伪装器属于第3节'); 第3节:=第3节+1; 合计3:=合计3+付款金额[j]; 结束;{如果语句结束} 结束;{确定统计信息} 程序打印结果; {此过程输出所有信息} 开始 writeln('第1节中的伪装者数量为:',第1节); writeln('第2节中的伪装者数量为:',第2节); writeln(“第3节中的伪装者数量为:”,第3节); 书面形式(“第1节中支付的总金额为:”,总计1); 书面形式(“第2节中支付的总金额为:”,总计m2); 书面形式(“第3节中支付的总金额为:”,总计3); 结束。{打印结果},pascal,Pascal,我得到的错误是:77/11 paidup.pas错误:非法表达式 77/11 paidup.pas错误:表达式非法 77/11 paidup.pas致命:语法错误;预期但找到标识符PRINTRESULTS您仍然缺少一个end语句,该语句与过程确定性统计信息中j:=1 to size do的后面的begin语句相匹配 此外,您的while条件while(idnum0)和(payment0)和(payment=1350)和(payment=1620)和(payment=1800)和(payment=
此外,您的while条件while(idnum0)和(payment0)和(payment=1350)和(payment=1620)和(payment=1800)和(payment=1650)和(payment=1980)和(payment=2200)过程中的doPutDataIntoArray将永远不会为真,因为付款不可能同时等于1350和1620等 为什么你把同一个问题作为一个新主题发表?答案已经在你的第一个问题第5点和第6点中给出了,我按照你说的做了,但是那家伙说如果我改变了它,如果我有任何新的错误,我应该重新发布它,所以我做了。除了我有新的错误,但是在企鹅的帮助下,我得到了它和你的伙伴。所以,为你们大家干杯!!谢谢大家,请不要在每次遇到问题时都张贴大量的代码。请参阅,特别是。至少要努力正确格式化你的代码,这样它就不会那么混乱了——点击下一轮,你就可以得到格式化帮助了吗?工具栏右侧的图标。如果你有更多的问题,要求你重新发布,并不意味着你可以随意把你的整个代码作为一个非常糟糕的难以阅读的乱七八糟的东西扔在这里,并期望我们帮你解决它。哦,好的,我的老师说过要这样做。。因此,我将与她讨论这一部分…但我感谢你对第一部分的澄清…我还想为我没有及时纠正你们告诉我要纠正的所有错误而道歉…因此,谢谢你的容忍me@JosiahMarcano如果代码格式正确,缩进一致,缺少的
end
是很明显的。@Locker好吧,我几天前开始使用pascal,但事先不知道如何做一些小事情,比如IF语句,所以。。。yeah@JosiahMarcano这只是一个友好的建议你以前用过其他语言编程吗?一致的代码格式是任何语言编程的基本部分。@Lourger不,我没有……我是一个年轻的学生……我只做过一些基本的工作,比如写伪代码算法、绘制流程图等等……这是我第一次使用pascal
Program PaidUp;
const
size=30;
var
payment,totm1,totm2,totm3:real;
section1,section2,section3,i,j,idnum:integer;
IDNUMARR:array[1..999] of integer;
PAYMENTARR:array[1..size] of real;
Procedure InitialiseVariables;
{This procedure initialises all variables used in the program}
Begin
idnum:=0;
payment:=0;
totm1:=0;
totm2:=0;
totm3:=0;
section1:=0;
section2:=0;
section3:=0;
i:=0;
j:=0;
End; {Initialise Variables}
Procedure DeclareandInitialiseArrays;
{This procedure declares and initialises all arrays used in the program}
Begin
For i:=1 to size do
begin
IDNUMARR[i]:=0;
PAYMENTARR[i]:=0;
end; {ends for statment}
End; {Declare and Initialise Variables}
Procedure PutDataIntoArray;
{This procedure puts the data into the arrays}
Begin
while(idnum<>0) and (payment<>0) and (payment=1350) and (payment=1620) and (payment=1800) and (payment=1650) and (payment=1980) and (payment=2200) do
begin
writeln('Invalid value, please enter another value');
readln(idnum);
readln(payment);
end;{ends while statement}
j:=j+1;
IDNUMARR[j]:=idnum;
PAYMENTARR[j]:=payment;
End; {Put Data Into Array}
Procedure DetermineStatisticsInformation;
{This procedure determines which masqueraders belong to which group, tallys the total persons in a section and totals the amount of money paid in each section for costumes}
Begin
For j:=1 to size do
begin
if(PAYMENTARR[j]=1350) and (PAYMENTARR[j]=1650) then
begin
writeln('Masquerader with memid:idnum[j] belongs to section1');
section1:= section1+1;
totm1:= totm1+PAYMENTARR[j];
end;{ends if statement}
if(PAYMENTARR[j]=1620) and (PAYMENTARR[j]=1980) then
begin
writeln('Masquerader with memid:idnum[j] belongs to section2');
section2:= section2+1;
totm2:=totm2+PAYMENTARR[j];
end;{ends if statement}
if(PAYMENTARR[j]=1800) and (PAYMENTARR[j]=2200)then
begin
writeln('Masquerader with memid:idnum[j] belongs to section3');
section3:= section3+1;
totm3:=totm3+PAYMENTARR[j];
end;{ends if statement}
End; {Determine Statistics Information}
Procedure PrintResults;
{This procedure outputs all information}
Begin
writeln('The number of masqueraders in section 1 is:', section1);
writeln('The number of masqueraders in section 2 is:', section2);
writeln('The number of masqueraders in section 3 is:', section3);
writeln('Total Amount of money paid in section 1 is:', totm1);
writeln('Total Amount of money paid in section 2 is:', totm2);
writeln('Total Amount of money paid in section 3 is:', totm3);
End. {Print Results}