
第5章程序控制结构.ppt
48页程序设计基础•阿坝师院 计科系 李唐辉制作程序控制结构程序控制结构第第5章章 程序设计基础本章主要内容本章主要内容1.计算机的工作流程2.指令与程序3.程序设计语言4.问题求解与算法设计5.程序设计思想6.C语言概述程序设计基础教学重难点:教学重难点:•教学重点1.选择控制语句2.循环控制语句•教学难点1.三种循环控制语句执行时的区别2.其他控制语句程序设计基础一:程序控制的基本结构一:程序控制的基本结构顺序结构顺序结构程序设计基础一:程序控制的基本结构一:程序控制的基本结构条件分支结构条件分支结构程序设计基础一:程序控制的基本结构一:程序控制的基本结构AP2abYNP1AabYN当型循环当型循环直到型循环直到型循环A当P1B直到P2程序设计基础1:表达式语句 表达式; /*表达式加分号“; ”构成一个语句*/2:函数调用语句 函数名( 参数);3:空语句 ;程序设计基础二:基本语句二:基本语句4:复合语句 { 语句1; …… 语句n; }程序设计基础二:基本语句二:基本语句5:顺序结构应用1)完成库存管理系统的菜单的显示与用户的输入选择。
2) “鸡兔同笼”问题鸡有2只脚,兔有4只脚,如果已知鸡和兔的总头数为h,总脚数为f问笼中鸡和兔各有多少只? 程序设计基础三:选择控制语句三:选择控制语句1:在猜数字游戏中,根据猜的数字不同,假设要猜的数据保存在a中,猜的数字为:x,根据:x==a, x>a,xa输入xYX>a输出太小了YN输出答对了程序设计基础三:选择控制语句三:选择控制语句2:if语句 语句格式: if (条件表达式) 语句块1; [else 语句块2] 程序设计基础三:选择三:选择控制语句控制语句(if)例1:输入在三个数,找出并输出其中最小数例2:输入某一年的年份,输出当年是否是闰年程序设计基础三:选择控制语句三:选择控制语句2:if语句嵌套 语句格式: if (条件表达式1) 语句块1; else if (条件表达式2) 语句块2; else if (条件表达式3) 语句块3; ………… else if (条件表达式n) 语句块n;程序设计基础三:选择控制语句三:选择控制语句•例3:实现“商品库存管理系统中”根据主菜单的选择不同执行不同的操作。
如选择1:输出:你选择的是“商品管理维护”模块•例4:从键盘上输入某个学生某门课程的百分制成绩,输出其五分制成绩(90~100为A,80~89为B,70~79为C,60~69为D,0~60为E)使用switch来实现程序设计基础三:选择控制语句三:选择控制语句3:多分支语句条件表达式语句块1;Break;语句块2;Break;语句块3;Break;语句块n;Break;…………标号ncase标号1标号2标号3程序设计基础三:选择控制语句三:选择控制语句•例4:用多分支实现“商品库存管理系统中”根据主菜单的选择不同输出选择是什么子系统的操作如选择1:输出:你选择的是“商品管理维护”模块程序设计基础四:循环控制语句四:循环控制语句问题1:猜数字游戏如何实现当没有猜中是继续猜,直到猜正确为止问题2:在商品库存管理系统中,如何实现当用户在执行完某个操作后,返回到主菜单选择其他操作,直到选择0:退出,才退出系统程序设计基础开始产生一个随机数保存到a输入猜的数字xaToo biga 例2:实现猜数字游戏(用前面的流程图来实现程序设计)程序设计基础开始产生一个随机数保存到a输入猜的数字xx>aToo bigx 例6:猴子吃桃子问题有一堆桃子,猴子第一天吃了一半又吃了一个,第二天照此吃法,吃掉剩下的一半后又吃了一个,天天如此,到第11天早上,猴子发现只剩下一个桃子了问这堆桃子原来有多少个程序设计基础四:循环控制语句四:循环控制语句4:循环的本质 循环的本质就是当循环条件成立时执行循环体的过程 C语言可以实现两种循环处理: 1)计数式循环 2)标记式循环程序设计基础四:循环控制语句四:循环控制语句4:循环的本质 1)计数式循环:用于处理准确知道循环次数的循环过程,又称为“定数循环”,在计数式循环过程中,循环控制变量用来计算循环的次数控制变量的值在每次执行完循环体语句后都要发生变化(递增或递减)当循环控制变量的值经改变后了预定的循环次数,循环结束 如:猴子吃桃子问题程序设计基础四:循环控制语句四:循环控制语句4:循环的本质 例7:编写一个程序,从键盘上输入全班30名同学的年龄,统计并输出他们的平均年龄程序设计基础四:循环控制语句四:循环控制语句4:循环的本质 2)标记式循环:适用于处理循环次数未知的循环过程,又称为“不定数循环”,在标记循环的循环体中应包含有获取数据的语句,以期望在某次的数据输入后因不满足循环条件而终止,这个确保退出循环的数据被称为标记值,标记值是利用一个专门的数据来表示正常输入数据的结束,应该在输入所有合法的数据后提供给程序,因此该标记值不同于题目要求的正常数据据值。 如:猜数字游戏输入正确后结束循环)程序设计基础四:循环控制语句四:循环控制语句4:循环的本质 例8:编写一个程序,从键盘上输入全班同学的年龄,以-1结束,统计并输出全班同学的平均年龄程序设计基础四:循环控制语句四:循环控制语句5:三种循环语句的比较 比较三种循环,总结出每种循环语句的适用情况 while do….while for程序设计基础四:循环控制语句四:循环控制语句5:三种循环语句的比较 下面的程序哪种循环结构最合适1)编写程序,计算1~n的平方和2)编写一个程序,打印所有的“水仙花数”(是指一个三位数,其各位数字的立方和等于该数本身,如:153=13+53+33=153)3)输入两正整数,输出他们的最小公倍数程序设计基础五:其他控制语句五:其他控制语句(goto)1:goto语句语句格式: goto 标号功能: 无条件转移语句Goto语句通过与条件语句配合,实现条件转移,循环以及中断循环处理等功能例:编写程序,输出1~100之间的自然数之和(用goto语句来实现循环)程序设计基础五:其他控制语句五:其他控制语句(goto)#include 例:编写程序,输出100以内的素数程序设计基础五:其他五:其他控制语句控制语句(break)#include 例 1:打印所有的水仙花数 例2:在猜数字游戏中,统计猜正确时猜测的次数,如果次数<=7,输出“你真棒”,如果次数<=15,输出“你还不错”,否则输出“你哎…………!”程序设计基础六:语句的嵌套六:语句的嵌套2:循环语句与循环语句的嵌套循环语句与循环语句的嵌套 例例1 :打印九九乘法表打印九九乘法表 绘制流程图,并编写相应的程序绘制流程图,并编写相应的程序 例例2:输出:输出1--100的所有素数的所有素数绘制流程图,并编写相应的绘制流程图,并编写相应的程序程序 程序设计基础六:语句的嵌套六:语句的嵌套趣味编程趣味编程 例例 1:借书方案知多少借书方案知多少小明有五本书,分别借给小明有五本书,分别借给A,,B,,C三位小朋友,三位小朋友,若每人每次只能借一本,请给出有哪些不同若每人每次只能借一本,请给出有哪些不同的借书方案,共有多少种方案的借书方案,共有多少种方案程序设计基础六:语句的嵌套六:语句的嵌套趣味编程趣味编程 例例 2:逻辑推理与判断谁在撒谎?:逻辑推理与判断谁在撒谎? 请从以下描述,分析出谁在说谎;请从以下描述,分析出谁在说谎;张三说李四在说谎,李四说王五在说谎,王张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。 请问,这三个人五说张三和李四都在说谎请问,这三个人中到底谁说的是真话,谁说的是假话?中到底谁说的是真话,谁说的是假话?程序设计基础分分析题目:都每个人都有可能说的是真话,析题目:都每个人都有可能说的是真话,也有可能说的是假话,这样就需要对每个人也有可能说的是假话,这样就需要对每个人说话的真假进行判断假设三个人说话的真说话的真假进行判断假设三个人说话的真假有用变量假有用变量A,,B,,C表示,等于表示,等于1表示说的是表示说的是真话,等于真话,等于1表示说的是假话,由题目可以得表示说的是假话,由题目可以得到到 如下的表达式:如下的表达式:程序设计基础1:张三:张三说李四在说李四在说谎说谎 1)张三说的是真话:张三说的是真话:a==1 && b==0 2)张三说的张三说的是假话是假话::a==0 && b==12:李四:李四说王五在说王五在说谎说谎 1)李四说李四说的是真话的是真话::b==1 && c==0 2)李四说李四说的是假话的是假话::b==0 && c==13:王五:王五说张三和李四都说张三和李四都在说谎在说谎 1)王五说王五说的是真话的是真话::c==1 && (a+b)==0 2)王五说王五说的是假话的是假话::c==0 && (a+b)==1程序设计基础这些表达式之间是这些表达式之间是““与与””的关系,将就可以的关系,将就可以得到得到C的表达式:的表达式:(a&&!b || !a&&b)&&(b&&!c ||!b&&c) &&(c&!(a+b) || !c &&(a+b))穷举每个人说真话与假话的各种可能情况,穷举每个人说真话与假话的各种可能情况,代入表达式中推理运算,使上述表达式为代入表达式中推理运算,使上述表达式为““真真””的情况就是正确的结果。 的情况就是正确的结果程序设计基础 。
