欢迎来到天天文库
浏览记录
ID:57672131
大小:243.00 KB
页数:22页
时间:2020-08-31
《c语言教案第9讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九讲循环嵌套教学目的与要求:了解三种循环语句的特点掌握循环的嵌套教学内容提要:1.三种循环语句2.循环语句的嵌套教学重点:循环语句的嵌套教学难点:循环语句的嵌套教学进度:P124~P133教学过程:1.三种循环语句的比较(2)do—while语句是后测试终止条件的循环语句,循环体至少执行一次。(3)while和dowhile循环,只在while后面指定循环条件,在循环体中应包含使循环趋于结束的语句(如i++,或i=i+1等)。for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语
2、句的功能更强,凡用while循环能完成的,用for循环都能实现。⑴while语句和for语句是属于先测试终止条件的循环语句,故循环体有可能一次也不执行。(4)用while和dowhile循环时,循环变量初始化的操作应在while和dowhile语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。(5)如果循环次数可以在进入循环语句之前确定,使用for语句较好;在循环次数难以确定时使用while和do—while语句较好。例1用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6为止。用
3、NS结构化流程图表示算法(见图1)。图1程序如下:#includemain(){ints;floatn,t,Pi;t=1;Pi=0;n=1.0;S=1;while((fabs(t))>=1e-6){Pi=Pi+t;n=n+2;s=-s;t=s/n;}Pi=Pi*4;printf("Pi=%10.6f\n",Pi);}运行结果为:Pi=3.141594例2有一对兔子,出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假设所有兔子不死,前40个月每个月的兔子总数。图2即:f1=1(n=1)f2=1
4、(n=2)fn=fn-1+fn-2(n≥3)解此题的算法如图2所示。main(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f2+f1;}}运行结果为:11235813213455891442333776109871597258441816765109461771128657463687502512139319641831781151422983204013462
5、69217830935245785702287922746514930352241578173908816963245986102334155在循环体语句中又包含有另一个完整的循环结构的形式,称为循环的嵌套。如果内循环体中又有嵌套的循环语句,则构成多重循环。2、循环语句的嵌套嵌套在循环体内的循环体称为内循环,外面的循环称为外循环。while、do-while、for三种循环都可以互相嵌套。循环语句之间的关系for(...){...for(...){...}...}内循环外循环for(....){...}for(...){...}并列循环
6、嵌套循环交叉循环for(....){...for(...){...}}错误例如,下面几种都是合法的形式:(1)while(){…while(){…}…}(3)for(;;){…for(;;){…}…}(2)do{…do{…}while();…}while();(4)while(){…do{…}while();…}(9)for(;;){…while(){}…}(7)do{…for(;;){…}…}while();(8)for(;;){…do{…}while();…}(6)do{…while(){}…}while();(5)while(){
7、…for(;;){…}…}真真外循环初始条件外循环循环体内循环体外循环条件假内循环条件假外循环循环体内后续语句循环结束二重循环嵌套结构执行流程例3:输出图形:****************编程分析:采用双重循环,一行一行输出。每一行输出步骤:一般3步。1)光标定位3)每输完一行光标换行()2)输出图形。例如本题:共4行,若行号用k表示,则每一行有2*k-1个*号。#include"stdio.h"voidmain(){intk1,k2;for(k1=1;k1<=4;k1++){putchar(‘t’);for(k2=1;k2<=
8、4-k1;k2++)putchar(‘’);for(k2=1;k2<=k1*2-1;k2++)putchar(‘*’);putchar(‘’);}}定位(还可以用空格的方法)输出例4、输出下面的数字金字
此文档下载收益归作者所有