【问题标题】:Pascal Pseudocode帕斯卡伪代码
【发布时间】:2017-12-07 06:47:18
【问题描述】:

我正在学校学习 Pascal 伪代码,我的老师给我发了这个练习:

用伪代码编写一个算法,当读取 N 个学生的姓名和年龄时,计算其中有多少人超过 18 岁。应该打印那些学生的名字。

在打印这些学生的计数之前,我已经编写了代码,但是我应该如何打印他们的名字。各位大神可以给点建议吗?

PS:我对数组或记录一无所知。

BEGIN
  WRITE ('Insert the number of students in the class.');
  READ (n);
  i := 1;
  WHILE i<=n DO
  BEGIN
    WRITE ('Insert the student's name');
    READ (name);
    WRITE ('Insert the student's age');
    READ (age);
    IF age > 18 THEN
      count := count + 1;
    i := i + 1;
  END;
  WRITE ('There are ',count,' students with more than 18 years.');

我无法从这里继续。

【问题讨论】:

  • 在 Stack Overflow 上询问时,能够显示您尝​​试过的内容非常重要。当您证明自己努力解决编码问题时,我们将有动力帮助解决您的编码问题。我们不会那么欢迎那些只是把作业问题扔在这里并期望我们解决它们的人。即使是骨架代码也比没有好。
  • 对不起@tadman。将论文中的代码复制到这里需要很长时间。
  • 现在这是一个好得多的问题。听起来您需要一个数组来存储名称,以便以后打印它们。
  • 好吧。我现在还没有学习数组或记录。我会尝试在比较后立即打印名称。问题是这个名字会出现两次,这真是太糟糕了。 @tadman,抱歉再次标记你。我猜没有其他选择。
  • 您的做法完全错误,将收集数据和处理数据的任务混为一谈,以找出有多少学生年满 18 岁或以上。相反,您应该将学生数据读入一个结构(磁盘文件或数组)并然后处理已读入的数据。您需要同时读取记录和数组 - 您正在浪费否则时间。

标签: pascal pseudocode


【解决方案1】:

您有几个错误,您使用 READ 而不是 READLN 读取变量,我假设您已经声明了变量。另一方面,如果方便关闭(带END) 最后,记得“停止”控制台,以便显示消息

program count_age;
   USES CRT;
   VAR i,age,count,n:INTEGER;
   VAR name:STRING;
BEGIN
  count :=0;
  WRITE ('Insert the number of students in the class. ');
  READLN (n);
  i := 1;
  WHILE i<=n DO
  BEGIN
    WRITE ('Insert the students name ');
    READLN (name);
    WRITE ('Insert the students age ');
    READLN (age);
    IF age > 18 THEN BEGIN
      count := count + 1;
    END;
    i := i + 1;
  WRITE ('There are ',count,' students with more than 18 years.');
  readkey;
END.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多