6. 用伪代码表示第4题中各题的算法
1. 有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换(即A瓶原来盛醋,现在盛酱油,B瓶则相 反)。
begin 醋 => A 酱油 => B A => C B => A C => B end
2. 依次将10个数输入,要求输出其中最大的数。
begin 1 => i 0 => max while i < 10 { 输入一个整数data if data > max { data => max } } print max end
3. 有3个数a,b,c, 要求按大小顺序把他们输出。
begin input a input b input c if a > b { a => t b => a t => b } if c > a { c => t a => c t => a } if c > b { c => t b => c t => b } print a print b print c
4. 求1 + 2 + 3 + ... + 100。
begin 1 => i 0 => sum while i <= 100 { sum + i => sum i + 1 => i } print sum end
5. 判断一个数n能否同时被3和5整除。
begin input n if n % 3 == 0 { if n % 5 == 0 { print n能被3和5整除 } else { print n不能被3和5整除 } else { print n不能被3和5整除 } end
6. 求两个数m和n的最大公约数
begin input m input n if m > n { m => t n => m t => n } while n != 0 { m % n => r m => n r => n }
7. 求方程ax^2 + bx + c = 0的根。
分别考虑:
有两个不相等的实根; 有两个相等的实根;
begin input a input b input c b*b - 4*a*c => p if p < 0 { print 方程没有实根 } if p == 0 { print 方程有一个实根 -b/2a } if p > 0 { print 方程有两个实根: print x1 = {-b + sqrt(b^2 - 4ac)}/2a print x1 = {-b - sqrt(b^2 - 4ac)}/2a } end
7. 什么叫结构化程序设计?它的主要内容是什么?
结构化程序设计是进行以模块功能和处理过程设计为主的详细 设计的基本原则。其概念最早由E.W.Dijikstra在1965年提出的。结构化程序设计思想确实使程序执行效率提高 ,是软件发展的一个重要的里程碑,它的主要观点是采用自顶向下、逐步求精的程序设计方法;即首先把一个复杂的大问题分解为若干个小问题,然后对每个小问题编写出一个功能上相对独立程序块(模块)。最后将各程序块进行组装成完整的程序。各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口、一个出口 。
具体来说,采用以下方法得到结构化程序:
1. 自顶向下
程序设计的时候,应先考虑大的总体,后考虑细节,不要一开始就过多追求细节,否则会使我们很难进行下去,先从最上层总目标设计,逐步使问题具体化
2. 逐步细化
对复杂问题,应设计一些子目标作为过渡,逐步细化
3. 模块化设计
一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解成子目标,子目标再分解成具体的小目标,吧每一个小目标称为一个模块
4. 结构化编程
编码实现
8. 用自顶向下、逐步细化的方法进行以下算法的设计:
1. 输出1900---2000年中是软黏的年份,符合下面两个条件之一的年份是闰年:
- 能被4整除但不能被100整除
- 能被100整除且能被400整除。
算法大体流程
1. 循环取1900到2000中的每一个年份
2. 对于每一个年份判断其是否是闰年
3. 是闰年则输出
判断一年是否是闰年:
1. 如果该年份内被4整除但是不能被100整除是闰年,否则不是闰年
2. 如果年份能被400整除则是闰年,否则不是闰年
2. 求ax^2 + bx + c = 0的根。分别考虑d = b^2 - 4ac大于0、等于0和小于0这三种情况。
1. 获取a b c的值
2. 计算b^2 - 4ac的结果并给p
3. 如果p < 0, 则方程没有实根
4. 如果p == 0,则方程有一个实根-b/2a
5. 如果p > 0, 则方程有两个实根 x1 = {-b + sqrt(b^2 - 4ac)}/2a x2 = {-b - sqrt(b^2 - 4ac)}/2a
3. 输入10个数,输出其中最大的一个数。
1. 给一个max保存最大值
2. 分别输入10个数,并对用每个数与max进行比较 如果该数大于max,则将该数给max
3. 输出max