文档

伪代码参考

完整示例程序

四个完整的考试风格程序,附讲解和示例运行:统计分数、校验菜单输入、搜索数组,以及使用子程序。

更新于 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
示例运行
MarkTotalPassCount
42420
50921
741662
211872
902773
步骤 1 / 5
输出:Passes = 3,Average = 55.4

程序 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