伪代码参考
完整示例程序
四个完整的考试风格程序,附讲解和示例运行:统计分数、校验菜单输入、搜索数组,以及使用子程序。
更新于 2026年11月2日
程序 A:统计及格人数并求平均分
读取 5 个分数,统计及格(50 分及以上)的人数,并输出平均分。
- 恰好有 5 个分数,所以适合使用计数控制的
FOR循环。 Total累加每个分数;只有IF条件成立时,PassCount才会增加。- 平均分在循环结束后只计算一次。
伪代码
DECLARE Index : INTEGER
DECLARE Mark : INTEGER
DECLARE Total : INTEGER
DECLARE PassCount : INTEGER
DECLARE Average : REAL
Total <- 0
PassCount <- 0
FOR Index <- 1 TO 5
OUTPUT "Enter mark ", Index
INPUT Mark
Total <- Total + Mark
IF Mark >= 50
THEN
PassCount <- PassCount + 1
ENDIF
NEXT Index
Average <- Total / 5
OUTPUT "Passes = ", PassCount
OUTPUT "Average = ", Average示例运行
| Mark | Total | PassCount |
|---|---|---|
| 42 | 42 | 0 |
| 50 | 92 | 1 |
| 74 | 166 | 2 |
| 21 | 187 | 2 |
| 90 | 277 | 3 |
步骤 1 / 5
程序 B:只接受有效的菜单选项
一直询问,直到用户输入 1 到 4 之间的选项。
- 用户至少要看到一次菜单,所以适合使用
REPEAT ... UNTIL。 - 条件说明什么是有效选项,而不是什么是无效选项。
AND同时检查下限和上限。
伪代码
DECLARE Choice : INTEGER
REPEAT
OUTPUT "1.View 2.Add 3.Delete 4.Exit"
INPUT Choice
UNTIL Choice >= 1 AND Choice <= 4
OUTPUT "Accepted choice: ", Choice示例运行
| 输入 | 有效? | 执行结果 |
|---|---|---|
| 8 | 否 | 再次询问 |
| 0 | 否 | 再次询问 |
| 3 | 是 | 输出 Accepted choice: 3 |
程序 C:使用标志搜索数组
判断用户输入的姓名是否在数组 StudentNames 中。
Found初始为FALSE,找到匹配的姓名时变为TRUE。- 这个写法会检查每个元素。它清晰易懂,阅卷员通常会接受。
- 最后的
IF根据标志输出一条消息。输入Ali,输出为Found。
伪代码
DECLARE StudentNames : ARRAY[1:5] OF STRING
DECLARE Index : INTEGER
DECLARE Target : STRING
DECLARE Found : BOOLEAN
StudentNames[1] <- "Mia"
StudentNames[2] <- "Tom"
StudentNames[3] <- "Ali"
StudentNames[4] <- "Zoe"
StudentNames[5] <- "Sam"
INPUT Target
Found <- FALSE
FOR Index <- 1 TO 5
IF StudentNames[Index] = Target
THEN
Found <- TRUE
ENDIF
NEXT Index
IF Found = TRUE
THEN
OUTPUT "Found"
ELSE
OUTPUT "Not found"
ENDIF程序 D:结合使用过程与函数
用过程显示一条横线,用函数完成计算。
- 调用过程本身就是一条语句,所以以
CALL开头。 - 函数会返回值,所以函数调用写在表达式中。
PrintLine(10)输出 10 条短横线,SumSquare(3, 4)返回 25,所以最后一行是Answer = 25。
伪代码
PROCEDURE PrintLine(Count : INTEGER)
DECLARE Index : INTEGER
FOR Index <- 1 TO Count
OUTPUT "-"
NEXT Index
ENDPROCEDURE
FUNCTION SumSquare(A : INTEGER, B : INTEGER) RETURNS INTEGER
RETURN A * A + B * B
ENDFUNCTION
DECLARE Answer : INTEGER
CALL PrintLine(10)
Answer <- SumSquare(3, 4)
OUTPUT "Answer = ", Answer