1、C+快乐编程小学C+创意编程实例(课件)Hi,Pythonlist,tuple,dictionary小猪佩奇过大年do while语句格式小球的弹跳高度do while语句应用电影院的座位数循环计数小猪佩奇是一个可爱的小粉红猪,她与猪妈妈、猪爸爸和弟弟乔治生活在一起。最近,小猪佩奇又开心又激动,因为还有7天就要过大年了,到了除夕这天,全家人又可以团聚在一起,不仅可以听爷爷、奶奶、姥姥和姥爷等长辈们讲各种故事,还会体验传统过年习俗,经历了很多意想不到的事情。现在她准备编写一个倒计时的程序,在屏幕上输出7天、6天、5天、4天、3天、2天、1天、过大年喽!,以提醒自己还有几天就要过年了。本题是倒序输
2、出71,可以使用前面学习的for循环、while循环。本课体验do-while循环的使用,do-while循环是先执行一次循环体语句,再判断条件表达式,当表达式的值为真时,返回重新执行循环体语句,如此反复,直到表达式的值为假为止。1理解题意理解题意2问题思考问题思考3思路分析思路分析本题的天数n初始值为7,先输出n的值,执行n=n-1后,再判断n是大于等于1,如果条件成立,继续执行循环体。1英汉字典英汉字典 do du:执行;做;干 while wal 当时 2do-while 语句语句do-while循环结构也有两种格式,一种是循环体只有一个语句,另一种是循环体由多个语句构成。当循环体有多个
3、语句构成时,应由一对花括号括起来,构成一个语句块的形式。while(表达式)后面有分号,语法形式如下:1编写代码编写代码2测试程序测试程序3程序解决程序解决4易犯错误易犯错误本程序中倒计时需要从大到小输出,可以使用n-,也可以写成n=n-1。如 下 图,如 果 将 n=n-1,放 在“coutn天endl;”之前,按下列do-whlie语句执行,输出n的值结果发生了什么变化,想想为什么?#include using namespace std;int main()int n=7;/从第7天开始倒计时 do n-;/先执行n=n-1 cout 距离过年还有n天!endl;if(n=1)cout=
4、1);return 0;5拓展应用拓展应用do-while语句也常用于检验输入数据是否正确,以确保程序的正确运行。每个C程序都至少有一个函数,即主函数main()。每个程序可以包含若干个其他函数,但有且只有一个main函数。程序总是从main函数开始执行,在程序执行时main函数可以调用其他函数,其他函数也可以互相调用,但其他函数不能调用main函数。1do-while循环特点循环特点do-while语句用来实现“直到”循环结构,其一般形式如下:do循环体语句;while(表达式);其特点是:先执行一次循环体,然后判断表达式。2do-while语句执行过程语句执行过程(1)执行一遍循环体。(2
5、)求出作为循环条件的“条件表达式”值,若该值为真则自动转向第(1)步,否则结束do循环的执行过程,继续执行其后面的语句。1修改程序修改程序错误1:错误2:下面这段代码是输出54321的积,其中有2处错误,快来改正吧!2阅读程序写结果阅读程序写结果(1)输入:5 (2)输入:1 输出:输出:3完善程序完善程序编程求11+22+33+99的和是多少。4编写程序编写程序输入一个正整数,输出该数是几位数。如输入123,输出3;输入334455,输出6。小红和小萌在做一个小球落地实验,已知小球从20米高处自由落下,每次落地后又反弹回原来高度的一半再落下。编程计算小球在第10次落地时,小球共经过多少米?第
6、10次反弹多高?当小球从h=20米高处自由落下时,路程s的初始值为20米,每次落地后又反弹回原来高度的一半再落下,h=h/2,s=s+h*2。现计算小球在第10次落地时的路程,是前面经过了9次落地后又反弹的路程。1理解题意理解题意2问题思考问题思考3算法算法分析分析小球起始的高用h表示,路程用s表示,其思路如下:第一步:当小球从h=20米高处自由落下时,又反弹回原来高度的一半,每次高度为:h=h/2;第二步:小球从h米高处第一次落下,路程s的初始值为20米,又反弹回原来高度的一半再落下的路程为:s=20+h*2;第三步:小球每落下一次,次数i进行累加一次,再判断i是否小于等于9,如条件成立再转
7、到第一步,形成循环。其流程图如下图所示。1编写代码编写代码测试程序测试程序3程序解决程序解决4易犯错误易犯错误小球每次从20米高处落下时,又反弹回原来高度的一半,后面高度会有小数部分,所以不能用int类型,可以用float或double类型表示小球的路程和高度。另外,当小球第一次从h=20米高处落下时,路程s的初始值为20米,而不是0米,所以s=20。计算小球在第10次落地时的路程,前面只做了9次弹跳动作,所以i=9,而不是i=10,而求10次反弹多高,此时的高度应该是第9次高度的一半,所以输出为h/2。5程序改进程序改进想一想,如何实现小球从任意高度落下,添加如下所示代码。6拓展应用拓展应用
8、#include using namespace std;int main()int i=1;float h,s;cinh;/输入小球初始高度 s=h;/小球初始路程 do h=h/2;/小球每次反弹回原来高度的一半 s=s+h*2;/小球每次落下又弹回的总路程 i+;while(i=9);cout s=sendl;cout h=h/2和cin结合在一起使用,实现从键盘输入数据。格式:cin a b;功能:是从键盘读取一个数据并将其赋给“变量”。说明:在使用cin输入数据时,必须考虑后面的变量类型。如果你要求输入一个整数,在 后面必须跟一个整型变量;如果要求一个字符,后面必须跟一个字符型变量。
9、1通过通过cin输入数据输入数据2格式化输入函数格式化输入函数scanf格式:scanf(格式控制符,地址列表)。功能:是通过格式化,输入任意数据列表。说明:scanf是标准的库函数,使用前需要在头文件部分加上#include或#。其中,格式控制符用于指定的输入格式,以%开头,后面跟格式字符。作用是将要输入的字符按指定的格式输入,如%d,%c等。1阅读程序写结果阅读程序写结果输入第1个数:123,输出:输入第2个数:450,输出:2修改程序修改程序错误1:错误2:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,即兔子的数量规律为:1,1,2,3,5,8
10、,13,21,假如兔子都不死,问到第20个月时,每个月的兔子总数为多少?。下面是该程序的代码,其中有2处错误,快来改正吧!3完善程序完善程序猴子第一天摘下若干个桃子,立即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半又零一个。到第10天早上想再吃时,只剩下一个桃子了。编程求第一天共摘了多少。4编写程序编写程序植树节那天,有5位同学参加了植树活动,他们完成植树的棵数都不相同。问第1位同学植了多少棵时,他指着旁边的第2位同学说比他多植了两棵;追问第2位同学,他又说比第3位同学多植了两棵;如此追问,都说比另一位同学多植两棵。最后问到第5位同学时,他说自己植了10棵。问,第一位同学植了多少棵树?Hi,Pythonlist,tuple,dictionary