第5章程序控制结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

程序设计基础•阿坝师院计科系李唐辉制作程序控制结构第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,xa,xa,程序执行不同的操作,画出流程图。输出太大了NXa输入xYXa输出太小了YN输出答对了程序设计基础三:选择控制语句2:if语句语句格式:if(条件表达式)语句块1;[else语句块2]程序设计基础三:选择控制语句(if)例1:输入在三个数,找出并输出其中最小数。例2:输入某一年的年份,输出当年是否是闰年。程序设计基础三:选择控制语句2:if语句嵌套语句格式:if(条件表达式1)语句块1;elseif(条件表达式2)语句块2;elseif(条件表达式3)语句块3;…………elseif(条件表达式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输入猜的数字xaToobigaxToosmall恭喜你,答对了结束YNY猜数字游戏的流程图。x!=aYN重新输入猜的数字a程序设计基础四:循环控制语句1:while语句while(条件表达式){语句块A;}(一个入口,一个出口)P1AabYN程序设计基础四:循环控制语句例1:编写程序实现输出1~100的数据及他们的和。例2:实现猜数字游戏(用前面的流程图来实现程序设计)。程序设计基础开始产生一个随机数保存到a输入猜的数字xxaToobigxaToosmall恭喜你,答对了结束NN猜数字游戏的流程图。YY程序设计基础四:循环控制语句1:do……while语句do{语句块A;}while(条件表达式);P1AabYN程序设计基础四:循环控制语句例3:用do…while实现猜数字游戏(用前面的流程图来实现程序设计)。例4:用do…while实现商品库存管理中对菜单的重复选择,直到选择0结束。(绘制出相应的流程图)程序设计基础商品库存管理系统流程图。开始显示系统主菜单用户输入功能选项select调用商品信息维护模块Select==1Y调用用户信息维护模块Y结束Y调用客户信息维护模块YSelect==2NSelect==7……NSelect==0NN程序设计基础四:循环控制语句3:for语句For(表达式1;表达式2;表达式3){语句块;}程序设计基础四:循环控制语句表达式1;While(表达式2){……..;表达式3;}对应于while循环为:For(表达式1;表达式2;表达式3){语句块;}程序设计基础四:循环控制语句例5:用for循环编程实现输出1~100的数据及他们的和。例6:猴子吃桃子问题。有一堆桃子,猴子第一天吃了一半又吃了一个,第二天照此吃法,吃掉剩下的一半后又吃了一个,天天如此,到第11天早上,猴子发现只剩下一个桃子了。问这堆桃子原来有多少个。程序设计基础四:循环控制语句4:循环的本质循环的本质就是当循环条件成立时执行循环体的过程。C语言可以实现两种循环处理:1)计数式循环2)标记式循环程序设计基础四:循环控制语句4:循环的本质1)计数式循环:用于处理准确知道循环次数的循环过程,又称为“定数循环”,在计数式循环过程中,循环控制变量用来计算循环的次数。控制变量的值在每次执行完循环体语句后都要发生变化(递增或递减)。当循环控制变量的值经改变后了预定的循环次数,循环结束。如:猴子吃桃子问题。程序设计基础四:循环控制语句4:循环的本质例7:编写一个程序,从键盘上输入全班30名同学的年龄,统计并输出他们的平均年龄。程序设计基础四:循环控制语句4:循环的本质2)标记式循环:适用于处理循环次数未知的循环过程,又称为“不定数循环”,在标记循环的循环体中应包含有获取数据的语句,以期望在某次的数据输入后因不满足循环条件而终止,这个确保退出循环的数据被称为标记值,标记值是利用一个专门的数据来表示正常输入数据的结束,应该在输入所有合法的数据后提供给程序,因此该标记值不同于题目要求的正常数据据值。如:猜数字游戏。(输入正确后结束循环)程序设计基础四:循环控制语句4:循环的本质例8:编写一个程序,从键盘上输入全班同学的年龄,以-1结束,统计并输出全班同学的平均年龄。程序设计基础四:循环控制语句5:三种循环语句的比较比较三种循环,总结出每种循环语句的适用情况。whiledo….whilefor程序设计基础四:循环控制语句5:三种循环语句的比较下面的程序哪种循环结构最合适。1)编写程序,计算1~n的平方和。2)编写一个程序,打印所有的“水仙花数”(是指一个三位数,其各位数字的立方和等于该数本身,如:153=13+53+33=153)3)输入两正整数,输出他们的最小公倍数。程序设计基础五:其他控制语句(goto)1:goto语句语句格式:goto标号功能:无条件转移语句。Goto语句通过与条件语句配合,实现条件转移,循环以及中断循环处理等功能。例:编写程序,输出1~100之间的自然数之和(用goto语句来实现循环)程序设计基础五:其他控制语句(goto)#includestdio.hmain(){intcount,sum=0;count=1;loop:if(count100){sum+=count;count++;gotoloop;}printf(“sum=%d\n”,sum);}程序设计基础五:其他控制语句(break)2:break语句语句格式:break;功能:中断处理语句,存在于循环语句,switch语句中,中断语句的执行,使程序立即退出该语句结构。例:编写程序,输出100以内的素数。程序设计基础五:其他控制语句(break)#includestdio.hmain(){Iintm,i,n=0;for(m=2;m=100;m++){for(i=2;i=m/2;i++)if(m%i==0)break;if(im/2)printf(“%5d”,i);}printf(“\n”);}程序设计基础五:其他控制语句(continue)3:continue语句语句格式:continue;功能:只能用在循环结构中,作用是终止循环体的本次执行,返回循环首部进入到下一次循环。例:编写程序,判断所输入数据的有效性。从键盘上输入10个学生的某门课成绩,如果所输入的成绩介于0~100,对成绩求和,否则重新输入。程序设计基础五:其他控制语句(continue)#includestdio.hmain(){inti=0;floatsum=0,n;while(i10){scanf(“%f”,&n);if(!(n=0&&n=100){printf(“数据有误,请重新输入”);continue;}sum=sum+n;i++;}printf(“sum=%.2f”,sum);}程序设计基础六:语句的嵌套1:循环语句与分支语句的嵌套。例1:打印所有的水仙花数。例2:在猜数字游戏中,统计猜正确时猜测的次数,如果次数=7,输出“你真棒”,如果次数=15,输出“你还不错”,否则输出“你哎…………!”程序设计基础六:语句的嵌套2:循环语句与循环语句的嵌套。例1:打印九九乘法表。绘制流程图,并编写相应的程序例2:输出1-100的所有素数。绘制流程图,并编写相应的程序程序设计基础六:语句的嵌套趣味编程例1:借书方案知多少。小明有五本书,分别借给A,B,C三位小朋友,若每人每次只能借一本,请给出有哪些不同的借书方案,共有多少种方案。程序设计基础六:语句的嵌套趣味编程例2:逻辑推理与判断。谁在撒谎?请从以下描述,分析出谁在说谎;张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。请问,这三个人中到底谁说的是真话,谁说的是假话?程序设计基础分析题目:都每个人都有可能说的是真话,也有可能说的是假话,这样就需要对每个人说话的真假进行判断。假设三个人说话的真假有用变量A,B,C表示,等于1表示说的是真话,等于1表示说的是假话,由题目可以得到如下的表达式:程序设计基础1:张三说李四在说谎1)张三说的是真话:a==1&&b==02)张三说的是假话:a==0&&b==12:李四说王五在说谎1)李四说的是真话:b==1&&c==02)李四说的是假话:b==0&&c==13:王五说张三和李四都在说谎1)王五说的是真话:c==1&&(a+b)==02)王五说的是假话:c==0&&(a+b)==1程序设计基础这些表达式之间是“与”的关系,将就可以得到C的表达式:(a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&!(a+b)||!c&&(a+b))穷举每个人说真话与假话的各种可能情况,代入表达式中推理运算,使上述表达式为“真”的情况就是正确的结果。程序设计基础

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功