
[工作范文]第四章 结构化程序设计.ppt
41页4.1 结构化程序的概念n由荷兰学者迪克斯特拉(E.W.dijkstra)在 1969年提出n以模块化设计为中心,即模块的独立n程序设计方法:自顶向下、逐步求精n控制结构:单入口单出口n实质:控制编程中的复杂性n程序设计关键在于算法n算法:为解决问题而采取的计算机能执行 的步骤流程图ABC顺序结构AA真假真假A假真选择结构当型循环结构直到循环结构条件条件条件4.2 顺序结构n如上图,先执行A语句,再执行B语句,是 顺序执行的关系nA、B、C可以是一个简单语句,也可以是 一个基本结构(顺序、选择、循环)n简单语句包括:空语句、复合语句、标签 语句、声明语句、表达式语句等n空语句:是最简单的语句,不实现任何功 能,是只有一个分号的语句在不需要执行任何操作但又需要一条 语句时使用;n复合语句:把一系列语句用{}括起来即为 复合语句,又称语句序列或块注意:{}不能省略,必须成对出现n例:1. 输入圆的半径,求圆的周长、面积2. 输入三角形的三边长a、b、c,根据以 下公式求三角形的面积:(作业)area =其中,s = ½(a+b+c)3. 输入一个华氏温度,按以下公式转为摄 氏温度:c = 4.3 选择结构n顺序结构只能进行简单的运算,实际生活 中,往往需要根据不同的条件来执行不同 的命令,这时需使用选择结构n包含两种:条件语句、分支语句4.3.1 条件语句(单分支结构)1. if 语句n格式:if (条件表达式){语句序列;}n例:求一个数的绝对值条件A真假2. if . else 语句n格式:if (条件表达式){ 语句序列1 }else { 语句序列2 }AB真假 条件n例:4. 输入学生的成绩,判断其是否及格5. 输入两个数,求其最大值6. 输入 x,求下列函数 y 的值:(x ≥ 0)(x 3 ? 5 : -5c = a -7 ? x/4-3 : 2*x+9n将例4、例5、例6用等价的条件运算符改写n当程序的逻辑判定关系比较复杂时,通常 会用到 if . else 的嵌套语句,即判定之中又 有判定n将该语句扩展,可以有 if . else if . 形式n注意:一个 else 必须有一个 if 与之对应, 且总是与其上离它最近的 if 对应n例:8. 教材例4-5,请用两种方法实现9. 教材例4-410. 输入一个年份,判断其是否是闰年(能被 4整除且不能被100整除,或者能被400整除 的年份即闰年)4.3.2 分支语句(多分支结构)n当判定的条件有多个时,使用 if . else 语句会比较 复杂,此时,可使用多分支结构语句实现n格式:switch(控制表达式){case 常量1 :内嵌语句1; break;case 常量2 :内嵌语句2; break;……case 常量n :内嵌语句n; break;default:内嵌语句 n+1; break;}nswitch语句的执行顺序:1. 控制表达式求值2. 若控制表达式的值等于 case 后的常量,则 执行对应的内嵌语句3. 若控制表达式的值不等于任何一个常量,则 执行 default 后的内嵌语句4. 若3成立,且没有 default 标签,则跳出 switch,执行其后的语句n注意: 1. 控制表达式只允许以下数据类型:整型、字 符型、字符串型、枚举类型 2. 常量的数据类型必须与控制表达式的类型一 致 3. 每一条内嵌语句后必须使用 break 以跳出语 句 4. case 后的常量不可有相同的值 5. 最多只能有一条 default 语句 6. 可以多个 case 语句共用一个内嵌语句 7. case 与 default 语句的出现没有次序上的要 求n例:10. 教材例4-611. 输入年份、月份,判定该月共有多少天(请完善教材的算法)n作业:2. 输入成本与收入,判断盈利情况3. 商店实行优惠:购物1000元以下,打9折; 购物1500元以下,打85折;购物2000元以下 ,打78折;购物2500以下,打7折;购物2500 以上,打65折。
输入购物金额,求打折后的 实际金额4. 输入1~7中的任意一个数,将之对应转换成英 文的星期显示出来(1:Monday)5. 输入三个数,将其按从大到小的顺序显示出 来6. 求方程 的根7. 输入 x,根据下列函数求 y 的值:(x ≥ 3.9)(-1.8 ≤ x 100 ) break; }Console.WriteLine(“奇数和为:{0}”, s);n表达式3可以省略,需在循环体中添加改变 循环变量的语句:int i, s = 0;for( i = 1; i 100 ) break;}4.4.4 跳转语句n循环可以嵌套,也可以中止ncontinue:结束本次循环,从下一次开始重新 执行循环nbreak:彻底结束循环,跳出循环执行循环之 后的语句ngoto:无条件跳转语句n注意:程序中尽可能的不要使用跳转语句, 防止程序结构混乱n例:17. 判断一个数是否是素数(质数)18. 求 n! 19. 求出所有的水仙花数:水仙花数:一个三位正整数,如果其各个位数上的数 字立方和等于其本身,则该数叫水仙花数例:153=13 + 53 + 33,则153是一个水仙花数20. 教材例4-1821. 利用循环语句输出如下图形:n作业: 8. 求出1-999中能被3整除,且至少有一个数字 是5的所有整数9. 求1000以内的所有守形数。
守形数:若某数平方的 低位恰好等于该数,则该数称为守形数如:252 = 625, 625的低位与原数相同,则25为守形数10. 求1000以内的所有完数完数:一个数的因子和 等于它本身,这个数叫完数如:6的因子为1,2,3,而6= 1+2+3,所以6是完数11. 输入n、m,求n与m间的所有数和、奇数和 、偶数和、素数和12. 输入n,求1!+2!+3!+ . +n!13. 求 的值14. 输入x(|x| n为 止求此时的k20. “鬼谷算题”:一堆物品200多个,三个三 个的数剩 x 个,五个五个的数剩 y 个,七个 七个的数剩 z 个,输入x、y、z,求物品总 数21. 编写程序,求1-3+5-7+…-99+101的值22. 输入n,利用 for 循环按以下公式求π:23. 输出以下各图:。












