1.请分别使用程序流程图、PAD图和N-S图描述下列程序的算法:(1)求整数1~n的累加和sum,其中n的值由键盘输入。(2)求整型数组K[50]中的最大者和次大者。 (3)求s=1-1/2!+1/3!-1/4!+…1/n!,其中n的值由键盘输入。
时间: 2024-09-29 20:15:11 浏览: 29
1. (1) 求整数1~n的累加和 Sum (n输入):
- 程序流程图:
```
开始
→ 输入 n
→ 初始化 sum = 0
→ for i = 1 to n
→ sum = sum + i
→ 输出 sum
→ 结束
```
- PAD 图 (Programmer's Algorithm Description):
P(A) 输入n, S(0)
L1 S := S + A(n)
E1 输出S
P(E)
- N-S 图 (Structured English):
```
PROCEDURE Main
INPUT n
DECLARE sum = 0
FOR i = 1 TO n DO
sum = sum + i
END FOR
OUTPUT sum
END PROCEDURE
```
2. (2) 求整型数组 K[50] 中的最大者 Max 和次大者 SecondMax:
- 流程图:
```
开始
→ 输入数组 K
→ Initialize Max = K[0], SecondMax = K[0]
→ 遍历数组 K
→ 如果当前元素大于 Max, 更新 Max
→ 否则,如果当前元素大于 SecondMax 且不大于 Max, 更新 SecondMax
→ 输出 Max, SecondMax
→ 结束
```
3. (3) 求 s=1-1/2!+1/3!-1/4!+…1/n! (n输入):
- 程序流程图:
```
开始
→ 输入 n
→ 初始化 sum = 1, fact = 1
→ for i = 2 to n
→ fact *= i
→ sum += 1/fact
→ fact -= 1/fact
→ 输出 sum
→ 结束
```