Algorithm 几个问题的伪码算法

Algorithm 几个问题的伪码算法,algorithm,pseudocode,Algorithm,Pseudocode,我应该为下面的算法写5个伪代码,我有点卡住了。我所做的事情都在任务下面,我知道最后三件事毫无意义。如有任何帮助或提示,将不胜感激。谢谢 •打印输入的最大数字 Title: Print Largest Number From Input //works with number inputs max=0 number= getNumber() read number if number == NONE print (“NO VALID DATA”) while number !

我应该为下面的算法写5个伪代码,我有点卡住了。我所做的事情都在任务下面,我知道最后三件事毫无意义。如有任何帮助或提示,将不胜感激。谢谢

•打印输入的最大数字

    Title: Print Largest Number From Input

//works with number inputs

max=0

number= getNumber()

read number

if number == NONE

print (“NO VALID DATA”)

while number != NONE

  if number > max
    max = number
Title: Print Largest Even Integer Number From Input

//works with even integer inputs

max=0

integer number= getNumber()

read_integer number

if number == NONE

print “NO VALID DATA”

if number % 2 == 0

print(“NO VALID DATA”) 

while number != NONE && number % 2 != 0

  if number > max
    max = number
•打印输入的最大偶数整数值

    Title: Print Largest Number From Input

//works with number inputs

max=0

number= getNumber()

read number

if number == NONE

print (“NO VALID DATA”)

while number != NONE

  if number > max
    max = number
Title: Print Largest Even Integer Number From Input

//works with even integer inputs

max=0

integer number= getNumber()

read_integer number

if number == NONE

print “NO VALID DATA”

if number % 2 == 0

print(“NO VALID DATA”) 

while number != NONE && number % 2 != 0

  if number > max
    max = number
•打印所有输入整数的总和

Title: Print Sum of All Input Integers

int Number= getNumber()

read_integer Number

if Number == NONE 

print(“NO VALID DATA”)

if Number != NONE

li.append(Number)

while li.length == n

print li[1] + li[2] + li[3] + ……. + li[n]
•打印所有输入数字的算术平均值

Title: Print Arithmetic Mean of All Input Numbers

Number= getNumber()

read Number

if Number == NONE 

print(“NO VALID DATA”)

if Number != NONE

li.append(Number)

while li.length == n

print li[1] + li[2] + li[3] + ……. + li[n] / n
Title: Print All Values Greater Than or Equal to the Aritmetic Mean of All Input Numbers

Number= getNumber()

read Number

if Number == NONE 

print(“NO VALID DATA”)

if Number != NONE

li.append(Number)

while li.length == n

arithmetic_mean =  li[1] + li[2] + li[3] + ……. + li[n] / n

print(“”)
    
•打印大于或等于所有输入数字算术平均值的所有值

Title: Print Arithmetic Mean of All Input Numbers

Number= getNumber()

read Number

if Number == NONE 

print(“NO VALID DATA”)

if Number != NONE

li.append(Number)

while li.length == n

print li[1] + li[2] + li[3] + ……. + li[n] / n
Title: Print All Values Greater Than or Equal to the Aritmetic Mean of All Input Numbers

Number= getNumber()

read Number

if Number == NONE 

print(“NO VALID DATA”)

if Number != NONE

li.append(Number)

while li.length == n

arithmetic_mean =  li[1] + li[2] + li[3] + ……. + li[n] / n

print(“”)
    

我猜这是课堂作业,所以我不会提供完整答案,但我会尽力帮助

1.打印输入中的最大数字 看来你的想法基本上是对的。需要记住的一件事是,必须在循环中
getNumber()
。否则,
number
的值将永远不会更改,因为您只读取一次输入

注意:如果他们只输入负数,则此算法不起作用。将max设置为负无穷大可以解决这个问题

2.打印输入的最大偶数整数值 这是完全相同的想法。你唯一需要做的改变就是忽略每一个不是偶数的数字。对于使用
%
运算符检查均匀性,您有正确的想法

不过,在进行检查时要小心。如果您在
while
循环中签入条件,就像您在代码中所做的那样,那么循环将在输入奇数后立即退出(并且您的程序将停止)。如果您不想这样做,请保持循环运行,不要将
max
设置为奇数

3.打印所有输入整数的和 看起来你的想法是将他们输入的所有数字保存到一个列表中,然后在最后对列表进行汇总。如果你想这样做,那就行了,但没有必要。就像跟踪正在运行的
max
值一样,您可以跟踪正在运行的
sum
。每次只需将输入添加到它。如果要查找,通常称为“累加器模式”

4.打印所有输入数字的算术平均值 同样,看起来您正在尝试将所有数字存储在一个列表中。同样,没有必要。计算平均值就像计算总和一样,只是最后需要除以输入的数量。因此,除了跟踪总和外,您还需要为
n
添加一个额外的“累加器”,每次只需向其添加1

另外,看起来您可能对
所做的事情有点困惑
while
的工作原理与
if
类似。它检查条件是否为真,如果为真,则运行其下的代码。唯一的区别是,
while
将一次又一次地运行该代码,直到条件为false为止。因此,行
而li.length==n
没有任何意义。您尚未声明
n
是什么,因此无法进行此比较。我猜你是想做这样的事情:

while number != NONE:
   n = li.length
这里,您将n指定为列表的长度,而不是检查列表长度是否等于
n

5.打印大于或等于所有输入数字算术平均值的所有值 在这里,我们实际上需要将所有输入保存到一个列表中,因为在看到所有数字之前,我们无法知道其平均值

我会把它分成三部分。首先,只需获取所有输入的数字并将其保存到列表中。然后,计算列表的平均值。最后,逐步浏览列表并打印每个大于平均值的值

for number in list:
    if number > mean:
        print(number)
对于第1部分,只需对
while
循环使用与第一个问题后相同的模式,但将
number
附加到列表中,而不是将其添加到总和中

对于第2部分,您需要计算列表的总和。在代码中,您编写了
li[1]+li[2]+li[3]+.+li[n]
。在代码中表达这一点的方式可能是使用
for
循环。我建议您在
中查找您正在使用的语言的
循环,并查看它们是如何工作的。在某些语言中,您可能可以执行以下操作:

sum = 0
for number in list:
    sum = sum + number
sum = 0
for index in 0...list.length:
    sum = sum + list[index]
或者,它可能看起来像这样:

sum = 0
for number in list:
    sum = sum + number
sum = 0
for index in 0...list.length:
    sum = sum + list[index]
对于第3部分,现在已经计算了平均值,只需再次循环遍历这些数字,并打印出大于平均值的数字

for number in list:
    if number > mean:
        print(number)