《计算机应用基础》 第9章 程序设计基础(二)
课内测试通知(10% ) 每人准备一张A4空白复印纸(请以班为单位统一准备) 测试时间:45分钟 测试地点:随堂 测试内容:第9章算法设计与画流程图 信息管理学院
程序设计基础(二) 循环结构的理解 基本控制结构的嵌套用法 算法设计与表示练习 信息管理学院
基本控制结构 F T 条件 A B A B C F T 条件 循环体 当型循环结构 条件 F T 循环体 直到型循环结构 信息管理学院
1. 循环结构 例如求出1000之内能被7整除的正整数? 循环结构的理解 循环条件是什么? 循环体是什么? 什么时候进入循环? 什么时候退出循环? 何时改变循环条件? 例如求出1000之内能被7整除的正整数? 信息管理学院
+ 给定正整数x x=1 F T 循环体 F T print x x能被7整除? x=1000 x=1 F T print x 结束 开始 信息管理学院 x=x+1
1. 循环结构——练习 某单位50位职工的工资存放在s(1),s(2),…,s(50)中,统计工资超过500元的职工人数。试画出处理流程图 信息管理学院
2. 结构嵌套用法(1) 条件分支的嵌套 假 真 条件A 语句块1 语句块2 F T 信息管理学院
给出相应的评语:优秀、良、中等、及格、不及格 2. 结构嵌套用法(2) 多重分支选择语句 例如,根据学生考试成绩, 给出相应的评语:优秀、良、中等、及格、不及格 真 假 条件1 语句块1 语句块n+1 条件2 语句块2 … 语句块n 条件n 信息管理学院
2. 结构嵌套用法(3) 分支结构中包含分支结构 循环体中包含循环结构 循环体中包含分支结构 分支结构中包含循环结构 多重分支 多重循环 信息管理学院
3. 课堂练习:用流程图描述下列问题的算法 求数列1,3,9,27,……前12项的和 求S=1+2+4+8…+256 求Fibonacci 数列 1,1,2,3,5,8,......中第20项的值。 输出100~200之间所有能被5整除又能被3整除的数值。 信息管理学院
课堂练习:用流程图描述下列问题的算法 8. 根据用户输入的成绩m,输出相应的评语 m<60,评语为“不及格” 信息管理学院
课堂练习1(求数列1,3,9,27,……前12项的和) 自然语言 S1: 1k,0s,0n S2: ss+k S3: nn+1 S4: kk×3 S5: if n<12, then goto S2, else goto S6 S6: print s ANSI流程图 start k=1,s=0,n=0 直到型循环结构 s=s+k n=n+1 k= k×3 T n<12 F Print s stop 信息管理学院
课堂练习3 (求S=1+1/2+1/3+1/4…+1/30) 伪代码 S1: s=0,k=1 S2: s=s+1/k S3: k=k+1 S4: if k<=30, then goto S2, else goto S5 S5: print s 流程图 start s=0, k=1 s=s+1/k k=k+1 T k<=30 F Print s 直到型循环结构 stop 信息管理学院
课堂练习5 求S=1+(1+2)+(1+2+3)+…+(1+2+3+4+…+100) 伪代码 S1: s=1, k=2 S2: x=1+2+…+k S3: s=s+x S4: k=k+1 S4: if k<=100,then goto S2, else continue S5: print s 伪代码 S1: s=1, k=2 S2: S21: x=0,n=1 S22: x=x+n S23: n=n+1 S24: if n<=k,then goto S22,else continue S3: s=s+x S4: k=k+1 S4: if k<=100,then goto S2, else continue S5: print s 信息管理学院
课堂练习5 求S=1+(1+2)+(1+2+3)+…+(1+2+3+4+…+100) start s=1, k=2 伪代码 S1: s=1, k=2 S2: S21: x=0,n=1 S22: x=x+n S23: n=n+1 S24: if n<=k,then goto S22,else continue S3: s=s+x S4: k=k+1 S4: if k<=100,then goto S2, else continue S5: print s x=0,n=1 x=x+n n=n+1 T n<=k F s=s+x k=k+1 T k<=100 F Print s 信息管理学院 stop
课堂练习7 输出100~200之间所有能被5整除又能被3整除的数值。 课堂练习7 输出100~200之间所有能被5整除又能被3整除的数值。 start 自然语言描述 S1: 变量k赋初值100 S2: 若k<=200,则继续, 否则转到 S7执行 S3: 若k被5整除,则继续,否则转到S6执行 S4: 若k被3整除,则继续,否则转到S6执行 S5: 输出k S6: k的值增加1,并转到S2执行 S7: 运算结束 变量k赋初值100 F k<=200 K=k+1 T F k被5整除 T F k被3整除 T 输出 k stop 信息管理学院
本讲练习参考答案 题 2 题 4 题 6 题 8 信息管理学院
课堂练习2 (求S=1+2+4+8…+256) ) 自然语言 S1: s0, x1 S2: If x<=256 then continue , else goto S5 S3: ss+x S4: xx*2, goto S2 S5: Print s ANSI流程图 start S0, x1 当型循环结构 F x<=256 T ss+x xx*2 Print s stop 信息管理学院
课堂练习4 (求S=1!+2!+3!+…+10!) 伪代码 S1: s=0,k=1 S2: If k<=10 then continue, else goto S6 S3: x=k! S4: s=s+x S5: k=k+1, goto S2 S6: print s 伪代码 S1: s=0,k=1 S2: If k<=10 then continue, else goto S6 S3: S31: n=1,x=1 S32: x=x*n S33: n=n+1 S34: if n<=k then goto s32 S4: s=s+x S5: k=k+1, goto S2 S6: print s 信息管理学院
课堂练习4 (求S=1!+2!+3!+…+10!) 伪代码 S1: s=0,k=1 start 伪代码 S1: s=0,k=1 S2: If k<=5 then continue, else goto S5 S3: S31: n=1,x=1 S32: x=x*n S33: n=n+1 S34: if n<=k then goto s32 S4: s=s+x S5: k=k+1, goto S2 S6: print s k=1,s=0 当型循环 F k<=10 T 直到型循环 n=1,x=1 Print s x= x*n n=n+1 stop T n<=k F s=s+x k=k+1 信息管理学院
课堂练习4 (求S=1!+2!+3!+…+10!) start X=1 S=1 K=2 X=2 ____ S=3 K=3 X=6 S=9 k=1,s=0,x=1 F k<=10 T s=s+x Print s k=k+1 x=x*k stop 信息管理学院
课堂练习6 求Fibonacci 数列 1,1,2,3,5,8,......中第20项的值。 伪代码 S1: x=1,y=1,k=2 S2: tmp=y S3: y=x+y S4: k=k+1 S5: x=tmp S6: if k<20, then goto S3, else continue S7: Print y 流程图 start x=1,y=1,k=2 Tmp=y y=x+y k=k+1 x=tmp T k<20 F Print y stop 信息管理学院
课堂练习8 根据用户输入的成绩m,输出相应的评语 start 伪代码描述 S1: input m S2: if m<60, then print “不及格” and goto S8, else continue S3: if m<70, then print “及格” and goto S8, else continue S4: if m<80, then print “中等” and goto S8, else continue S5: if m<90, then print “良好” and goto S8, else continue S6: if m<=100 then print “优秀” and goto S8, else continue S7: print “成绩输入不正确” S8: stop Input m T m<60 “不及格” F T m<70 “及格” F T m<80 “中等” F T m<90 “良好” F T m<=100 “优秀” F “不成确” 信息管理学院 stop