投票单的帕斯卡代码
Pascal Code For Voting Slip
PROGRAM VOTING_SLIP (INPUT,OUTPUT);
CONST
Array_size = 20;
VAR
Counter, Increment, i, j : Integer;
Found, full_name, District_ID : string;
DistrictArea : Array[1..20] of string;
DistrictID : Array[1..20] of string;
BEGIN
WRITELN('Please Populate District Area Array');
FOR i := 1 to 20 DO
READLN(DistrictArea[i]);
WRITELN('Input Values for District ID');
FOR j := 1 to 20 DO
READLN(DistrictID[i]);
WRITELN('Please Enter Voter Name');
READLN(full_name);
IF (full_name <> 'END') THEN DO
READLN(District_ID);
Increment := 1;
Counter := 0;
Found := 'FALSE';
WHILE(Found = 'FALSE') AND (Increment <= Array_size) DO
IF (DistrictID[Increment] = District_ID) THEN
Found := 'TRUE';
ELSE
Increment := Increment + 1;
IF (Found = 'TRUE') THEN
WRITELN (full_name,'you have been registered to vote in',
DistrictArea[Increment]);
Counter := Counter + 1;
ELSE
Writeln ('Error! Invalid District ID');
ELSE
Writeln ('you have', Counter, 'registered voters. Goodbye!');
END.
上面的代码不会执行到第10行。编译器说:
1. 26 / 3 oneste~1.pas
Error: Illegal expression
2. 26 / 3 oneste~1.pas
Error: Illegal expression
3. 26 / 3 oneste~1.pas
Fatal: Syntax error, ; expected but identifier READLN found
有人可以帮忙吗?谢谢。
为什么说第 10 行?错误消息显示第 26 行。
IF-THEN 之后不应该有 DO。
您应该在 BEGIN-END 块中包含您的一些陈述。
关键字 ELSE 和 END 前的分号过多。
接近尾声时,您有两个 ELSE 子句。那应该做什么?
下面是关于评论的更新代码:
PROGRAM VOTING_SLIP (INPUT,OUTPUT);
uses crt;
CONST
Array_size = 20;
VAR
Counter, Increment, i, j : Integer;
Found, full_name, District_ID : string;
DistrictArea : Array[1..20] of string;
DistrictID : Array[1..20] of string;
BEGIN
WRITELN('Please Populate District Area Array');
FOR i := 1 to 20 DO
READLN(DistrictArea[i]);
WRITELN('Input Values for District ID');
FOR j := 1 to 20 DO
READLN(DistrictID[j]);
WRITELN('Please Enter Voter Name');
READLN(full_name);
IF (full_name <> 'END') THEN BEGIN
READLN(District_ID);
Increment := 1;
Counter := 0;
Found := 'FALSE';
END
WHILE (Found = 'FALSE') AND (Increment <= Array_size) DO BEGIN
IF (DistrictID[Increment] = District_ID) THEN BEGIN
Found := 'TRUE';
END
ELSE BEGIN
Increment := Increment + 1;
END
END
IF (Found = 'TRUE') THEN BEGIN
WRITELN (full_name,'you have been registered to vote in',
DistrictArea[Increment]);
Counter := Counter + 1;
END
ELSE BEGIN
Writeln ('Error! Invalid District ID');
END
ELSE BEGIN
Writeln ('you have', Counter, 'registered voters. Goodbye!');
END
END.
新的编译器错误:
35 / 3 oneste~1.pas
致命:语法错误,;预期但发现
该代码应该允许在数组中输入学区区域和学区 ID 的值。然后接受选民姓名,如果输入结束,则代码关闭并使用计数器变量显示选民人数,否则它允许为该选民姓名输入地区 ID。完成后,对地区 ID 数组进行编码,以确保其正确的地区 ID;如果是,则将选民姓名和相应的选区区域打印到屏幕上,如果不是,则通知选区 ID 无效。
PROGRAM VOTING_SLIP (INPUT,OUTPUT);
uses crt;
CONST
Array_size = 20;
VAR
Counter, Increment, i, j, k : Integer;
Found, full_name, District_ID : string;
DistrictArea : Array[1..20] of string;
DistrictID : Array[1..20] of string;
BEGIN
WRITELN('Please Populate District Area Array');
FOR i := 1 to 20 DO BEGIN
READLN(DistrictArea[i]);
END;
WRITELN('Input Values for District ID');
FOR j := 1 to 20 DO BEGIN
READLN(DistrictID[j]);
END;
For k := 1 TO 10 DO BEGIN
WRITELN('Please Enter Voter Name');
READLN(full_name);
IF (full_name <> 'END') THEN BEGIN
WRITELN ('Please enter District ID');
READLN(District_ID);
Increment := 1;
Counter := 0;
Found := 'FALSE';
END;
WHILE (Found = 'FALSE') AND (Increment <= Array_size) DO BEGIN
IF (DistrictID[Increment] = District_ID) THEN BEGIN
Found := 'TRUE';
END
ELSE BEGIN
Increment := Increment + 1;
END
END;
IF (Found = 'TRUE') THEN BEGIN
WRITELN (full_name,' - you have been registered to vote in - ',
DistrictArea[Increment]);
Counter := Counter + 1;
END
ELSE BEGIN
Writeln ('Error! Invalid District ID');
END;
IF (full_name = 'END') THEN BEGIN
Writeln ('you have - ', Counter, '- registered voters. Goodbye!');
END
END;
END.
这是具有我最初预期功能的最终工作代码。
我解决了剩下的问题并添加了一些增强功能。非常感谢所有帮助过我的人。
PROGRAM VOTING_SLIP (INPUT,OUTPUT);
CONST
Array_size = 20;
VAR
Counter, Increment, i, j : Integer;
Found, full_name, District_ID : string;
DistrictArea : Array[1..20] of string;
DistrictID : Array[1..20] of string;
BEGIN
WRITELN('Please Populate District Area Array');
FOR i := 1 to 20 DO
READLN(DistrictArea[i]);
WRITELN('Input Values for District ID');
FOR j := 1 to 20 DO
READLN(DistrictID[i]);
WRITELN('Please Enter Voter Name');
READLN(full_name);
IF (full_name <> 'END') THEN DO
READLN(District_ID);
Increment := 1;
Counter := 0;
Found := 'FALSE';
WHILE(Found = 'FALSE') AND (Increment <= Array_size) DO
IF (DistrictID[Increment] = District_ID) THEN
Found := 'TRUE';
ELSE
Increment := Increment + 1;
IF (Found = 'TRUE') THEN
WRITELN (full_name,'you have been registered to vote in',
DistrictArea[Increment]);
Counter := Counter + 1;
ELSE
Writeln ('Error! Invalid District ID');
ELSE
Writeln ('you have', Counter, 'registered voters. Goodbye!');
END.
上面的代码不会执行到第10行。编译器说:
1. 26 / 3 oneste~1.pas
Error: Illegal expression
2. 26 / 3 oneste~1.pas
Error: Illegal expression
3. 26 / 3 oneste~1.pas
Fatal: Syntax error, ; expected but identifier READLN found
有人可以帮忙吗?谢谢。
为什么说第 10 行?错误消息显示第 26 行。
IF-THEN 之后不应该有 DO。
您应该在 BEGIN-END 块中包含您的一些陈述。
关键字 ELSE 和 END 前的分号过多。
接近尾声时,您有两个 ELSE 子句。那应该做什么?
下面是关于评论的更新代码:
PROGRAM VOTING_SLIP (INPUT,OUTPUT);
uses crt;
CONST
Array_size = 20;
VAR
Counter, Increment, i, j : Integer;
Found, full_name, District_ID : string;
DistrictArea : Array[1..20] of string;
DistrictID : Array[1..20] of string;
BEGIN
WRITELN('Please Populate District Area Array');
FOR i := 1 to 20 DO
READLN(DistrictArea[i]);
WRITELN('Input Values for District ID');
FOR j := 1 to 20 DO
READLN(DistrictID[j]);
WRITELN('Please Enter Voter Name');
READLN(full_name);
IF (full_name <> 'END') THEN BEGIN
READLN(District_ID);
Increment := 1;
Counter := 0;
Found := 'FALSE';
END
WHILE (Found = 'FALSE') AND (Increment <= Array_size) DO BEGIN
IF (DistrictID[Increment] = District_ID) THEN BEGIN
Found := 'TRUE';
END
ELSE BEGIN
Increment := Increment + 1;
END
END
IF (Found = 'TRUE') THEN BEGIN
WRITELN (full_name,'you have been registered to vote in',
DistrictArea[Increment]);
Counter := Counter + 1;
END
ELSE BEGIN
Writeln ('Error! Invalid District ID');
END
ELSE BEGIN
Writeln ('you have', Counter, 'registered voters. Goodbye!');
END
END.
新的编译器错误: 35 / 3 oneste~1.pas 致命:语法错误,;预期但发现
该代码应该允许在数组中输入学区区域和学区 ID 的值。然后接受选民姓名,如果输入结束,则代码关闭并使用计数器变量显示选民人数,否则它允许为该选民姓名输入地区 ID。完成后,对地区 ID 数组进行编码,以确保其正确的地区 ID;如果是,则将选民姓名和相应的选区区域打印到屏幕上,如果不是,则通知选区 ID 无效。
PROGRAM VOTING_SLIP (INPUT,OUTPUT);
uses crt;
CONST
Array_size = 20;
VAR
Counter, Increment, i, j, k : Integer;
Found, full_name, District_ID : string;
DistrictArea : Array[1..20] of string;
DistrictID : Array[1..20] of string;
BEGIN
WRITELN('Please Populate District Area Array');
FOR i := 1 to 20 DO BEGIN
READLN(DistrictArea[i]);
END;
WRITELN('Input Values for District ID');
FOR j := 1 to 20 DO BEGIN
READLN(DistrictID[j]);
END;
For k := 1 TO 10 DO BEGIN
WRITELN('Please Enter Voter Name');
READLN(full_name);
IF (full_name <> 'END') THEN BEGIN
WRITELN ('Please enter District ID');
READLN(District_ID);
Increment := 1;
Counter := 0;
Found := 'FALSE';
END;
WHILE (Found = 'FALSE') AND (Increment <= Array_size) DO BEGIN
IF (DistrictID[Increment] = District_ID) THEN BEGIN
Found := 'TRUE';
END
ELSE BEGIN
Increment := Increment + 1;
END
END;
IF (Found = 'TRUE') THEN BEGIN
WRITELN (full_name,' - you have been registered to vote in - ',
DistrictArea[Increment]);
Counter := Counter + 1;
END
ELSE BEGIN
Writeln ('Error! Invalid District ID');
END;
IF (full_name = 'END') THEN BEGIN
Writeln ('you have - ', Counter, '- registered voters. Goodbye!');
END
END;
END.
这是具有我最初预期功能的最终工作代码。 我解决了剩下的问题并添加了一些增强功能。非常感谢所有帮助过我的人。