第一篇:百钱买百鸡 C语言(一次循环)
#include
{ num=100-3*c;mon=100-c;
if((mon-3*num)%2==0)
{
a=(mon-3*num)/2;if(a<0||a>15)continue;
b=num-a;if(b<0||b>25)continue;
printf(“分配:公鸡%d只,母鸡%d只,雏鸡%d 只,为百钱买百鸡的答案。n”,a,b,3*c);
}
}
system(“PAUSE”);return 0;
}
其中一些数值为简要的缩减范围。至于mon-3*num)%2==0则是通过一元二次方程得出,要不还真没有依次循环做百钱百鸡的例子吧--~ 欢迎c语言爱好者和研究者加我哈,我是新手~~782822925
第二篇:C语言FOR循环说课稿
C语言FOR循环说课稿
各位评委老师上午好,我今天说课的内容是“FOR循环”(板书),下面我将从教材的地位及作用、学生学情、教学目标、教学重难点、教法、学法、教学过程、教学效果的预测与反思这八个方面开始本次的说课。
教材的地位及作用:
C语言程序设计是中职学校计算机专业的一门重要的课程,该课程旨在培养学生严谨的程序设计思想、灵活的逻辑思维及较强的动手能力,是其他专业课程学习的基础。
该课程可以分为四大模块,分别是C基本概念、三种基本程序设计结构、数组与指针、函数。三种基本程序设计结构分别是顺序结构、选择结构和循环结构,三种结构中循环结构是重点,并且也是较难的一种,而循环中for循环是程序中运用最多的。在学习本节内容之前已经学习了顺序结构和选择结构,学生已经有了一定的结构化程序设计思想,这为本节课的学习起到了一个很好的铺垫作用。同时for循环作为循环结构的第一课时,是学习循环结构的基础,同时也为即将学习的while循环和do-while 循环以及多重循环做准备,因此本节课的学习在本课程中具有举足轻重的地位,起着承上启下的作用。
学生学情:
对教材有了一定的了解之后,我们来说一下学生
我所面向的是中职学生,这些学生有一定的数学逻辑思维基础,之前已经学习过顺序、选择结构程序,并具有编写调试简单程序的能力。但是C语言这门课程知识逻辑性强,较为枯燥,部分学生的学习兴趣不高,并且中职学生对于上机实际操作要比学习理论知识更为兴趣,但解决实际应用问题的能力较差,同时学生编写代码、调试程序的能力,存在较大差异。因此,在教学中要立足学生之间的差异,合理安排教学活动,在教学过程中注意激发学生的学习兴趣,培养学生理论联系实际的能力,从而达到最佳的教学效果。
教学目标:
基于以上对教材和学生学情分析,结合大纲要求,我制定了了如下教学目标:
教学重难点:
基于以上分析,我将本节课的教学重点确定为:for语句语法规则、for语句执行过程,而教学难点则是深入理解循环的思想、对for语句执行过程的理解、利用for循环解决实际问题。
教法和学法:
教师的职责是授人与渔而不是授人以鱼,要教会学生自己学习和自主探索的能力。有由于学生在基础知识状况、兴趣爱好、智力水平、潜在能力、等方面存在差异,因此:本课采用的主要教学方法有讲授法、演示法、范例分析法、任务驱动法,体现了以学生为主体,以“学生发展为本”的新课程教学理念。
学法上选取自主探究学习、小组协作学习为主的方法并配合练习法,让学生自己发现问题、解决问题,从“学会”提高到“会学”和“乐学”的高度上来。
教学过程:
在具体的教学程序上,我分为以下几个板块:
复习旧课,引出新课、讲授新知、任务引领、自主探究、小组协作、总结拓展。
在课题引入方面,我选用问题导入法,开始就出示一个问题,打印一行十个星号,如何实现?学生用之前学习的输出语句解决,此后再设计情境,若将题目中的“10”改为100、1000或者更多,又应该怎么办呢?这就是我们今天要学的内容。这样的设计可以激起学生的未知欲,有利于建立新的认识结构。
接下来就是新课讲解,包括两部分内容,首先是FOR语句的格式。我采用边讲解边给出FOR格式的方法,强调格式中学生需要注意的地方,并在黑板上板书,以此来引起学生的重视。接下来是FOR循环语句的功能,以流程图的方式对FOR循环语句的功能进行描述。采用画、看、说三个环节让学生们进一步渗透循环的思想,使学生在画流程图、读流程图以及之后用流程图的过程中理解循环思想,并进一步体会结构化程序设计思想。为了进一步加深学生对for循环执行过程的理解,我将和学生一起完成课前留下的问题,用FOR循环来实现100行输出10个“*”的功能,此设计旨在进一步强化学生对FOR语句的理解,内容逐渐深入,难度也逐渐增大。为了加深学生对循环思想的理解,我让学生开动脑筋,想一想实际生活、学习过程中,有哪些循环结构的例子?把它们用流程图表示出来。
讲授新课完成以后,我用任务引领的方法,采取循序渐进的方式,让学生通过自主探索和小组交流的方式,达到预期的教学目标。
最后,就是归纳小节。
第三篇:C语言程序设计教案 第六章 循环程序设计
第六章 循环程序设计
课题:
教学目的: 教学重点: 教学难点: 第五章 选择结构程序设计
1、掌握三种循环语句的语法结构
2、灵活运用循环语句
三种循环语句while、do-while、for 三种循环语句的区别
步骤一 引入新课
问题1:假如全班41人,欲从键盘上输入每人的数学成绩,然后计算出平均成绩; 问题2: 编程计算n!。
重复执行一组语句是程序设计要求的基本功能之一。在C语言中可以用以下语句来实现循环:(1)if 和 goto
(2)while
(3)do-while
(4)for
步骤二 讲授新课
一、goto语句及用goto构成循环 语法:goto label; 其中:label是语句标号,它命名的规则同变量名; 语义:使程序无条件地转向标号为label的语句去执行; 如:用if语句构成循环,求sum=1+2+…+100
main()
{ int i=1,sum=0;
loop:
if(i<=100)
{sum+=i;i++;goto loop;}
printf(“%d”, sum);
} 说明:
1)标号不必进行类型说明;
2)程序中的任何一个语句均可带上标号,但标号必须以冒号结束; 3)不提倡使用goto语句。
二、while语句
语法:while(exp)
循环体语句;
语义:当exp为真时,执行循环体;为假时,执行循环语句的后续语句; 如:用while语句构成循环,求sum=1+2+…+100
程序如下:main(){ int i=1, sum=0;
while(i<=100)
{ sum+=i;
i++;}
printf(“%d”,sum);} 说明:
1)循环体可以用复合语句;
2)在while语句前应有为测试表达式(exp)中的循环控制变量赋初值的语句,以确保循环的正常开始;
3)循环体内应有改变循环控制变量的语句,以确保循环进行有限次后正常结束;
如:i=1;
while(i<=100)
sum=sum+1;(死循环)
4)while 循环的特点是先判断后执行,故循环有可能一次都不被执行;
如:
i=3;
while(i<3)
printf(“i=%dn”, i);
三、do-while语句 语法:do
循环体语句;
while(exp);语义:当exp为真时,执行循环体;为假时,执行循环语句的后续语句; 如:用do-while语句构成循环,求 sum=1+2+…+100 程序如下:main(){ int i=1,sum=0;
do
{ sum+=i;
i++;}
while(i<=100);
printf(“%d”,sum);}
说明:
1)循环体可以用复合语句;
2)循环控制变量在执行do前必须赋初值;循环体内应有改变循环控制变量的语句; 3)do-while 循环的特点是先执行后判断,故循环至少被执行一次;
如:i=3;
do
{ sum+= i;
i++;
} while(i>10);例1:用公式求π的近似值,直到最后一项的绝对值小于10-6为止。π/4≈1-1/3+1/5-1/7+……
# include
while((fabs(t))>1e-6)
{ pi=pi+t;n+=2;
s=-s;t=s/n;
}
pi=pi*4;
printf(“pi=%10.6fn”,pi);}
例2:求整数a和b的最小公倍数。#include
i=0;while(1)
{ i++;
if(i%a= =0)
if(i%b= =0){printf(“%dn”, i);break;}
} }
思考:有一张足够大的纸,厚0.09毫米,问将它对折多少次后可以达到珠穆朗玛峰的高度(8848米)?
四、for 语句
语法:for(表达式1;表达式2;表达式3)
循环体语句; 语义:
1、先求表达式1;
2、求解表达式2,若其值为真,则执行第三步;若为假,则结束循环;
3、执行循环体中的语句;
4、求解表达式3;
5、转回第二步继续执行 如: for(i=1;i<=100;i++)sum=sum+i;可看成:
for(循环变量赋初值;循环条件;循环变量增值)语句;
说明:
(1)显然for循环更简洁,更灵活;(2)循环体可以是复合语句;(3)for语句中的三个表达式均可以是逗号表达式,故可同时对多个变量赋初值及修改。如:for(i=0, j=1;j (4)for语句中三个表达式可省: 省exp1;如:i=1;for(;i<5;i++) printf(“%dn”,i); 等价于for(i=1;i<5;i++)printf(“%dn”,i); 省exp2;如: for(i=1;;i++) { printf(“%dn”, i); if(i>5)break; } 省exp3;如:for(i=1;i<5;) { printf(“%dn”,i); i++;} 等价于 for(i=1;i<5;i++) printf(“%dn”,i); 表达式 1、表达式3可省略 i=1;sum=0;for(;i<=100;){ sum+=i;i++;} 三个表达式全省时,如: for(;;)语句; 等价于while(1)语句; 三个表达式可包含与循环变量无关的语句 for(;(c=getchar())!=„n‟;printf(“%c”,c)); (5)for语句中的循环体可以是空语句;如: int n=0;for(;n++ <=2;);printf(“%d”,n); 该程序段的输出结果为:4 步骤三 课堂小结 1、while、do-while、for语句的语法结构,特别是for语句中三个表达式的作用 2、whie与do-while区别 3、注意循环控制的范围 步骤四 布置作业 上机练习:(第六章课后练习)6.2 书面练习:(第六章课后练习)6.3、6.5 认识(实习)报告 实验(实习)名称循环结构程序设计 日期得分指导教师系专业年级班次姓名学号 一、实验目的(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。 ⑵了解条件型循环结构的基本测试方法。 ⑶掌握如何正确地控制技术型循环结构的次数。 ⑷了解对技术型循环结构进行测试的基本方法。 ⑸了解在嵌套循环结构中,提高程序效率的方法。 二、实验内容 1.输入一个正整数,并将其颠倒过来,如12345对应54321.程序 : #include #include int main() { int n,m,t=0; scanf(“%d”,&n); if(n<0) { printf(“数据输入错误!n”); exit(0); } while(n!=0) { m=n%10; t=t*10+m; n=n/10; } printf(“反序数为: %dn”,t); return 0; } 运行: 12345 反序数为: 54321 Press any key to continue 2.将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数t,其高位仍在高位,低位仍在低位,如s=87653142时,t中的数为8642.程序: #include int main() { long s,t=0,p=1; scanf(“%ld”,&s); while(s!=0) { if((s%10)%2==0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf(“%ld“,t); return 0; } 运行: 87653142 8642 Press any key to continue_ 3.判断101~200之间有多少个素数。 程序: #include #include int isprime(int m); int main() { int n,s=0; for(n=101;n<=200;n++) { if(isprime(n)) s++; } printf(”%dn",s); return 0; } int isprime(int m) { int i; for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; } 运行: Press any key to continue_ 三、分析与讨论 (1)总结条件循环结构的一般方法。 (一)for循环 for循环的一般形式为: for(<表达式1>;<表达式2>;<表达式3>) { 语句序列 } (1)先求解表达式1,然后求解表达式2,若其值为真(true),则执行for语句中内嵌的循环语句;若其值为假(false),则结束循环转到{ }后面的语句执行。 (2)求解表达式3。 (3)转回上面求解表达式2,继续执行。 (4)循环结束,执行for语句下面的一个语句。 (二)while语句 while(表达式) { 语句序列 } 其语义是,首先计算表达式的值,当值为真(true)时,返回循环体语句;当值为假(false)时结束循环。直到表达式的值为0,则执行结构后面的语句。 特点:先判断,后执行。 (三)do-while语句 do { 语句序列 }while(表达式); 特点:先执行,后判断。 当循环条件为真(true)时反复执行循环体,直到循环条件为假(false)终止循环。因此,其循环体将至少被执行一次。 如果for、while或do-while循环控制语句的循环体中又包含循环控制语句就构成了嵌套循环。这3种循环语句之间可相互嵌套,构成复杂的逻辑嵌套结构。 (2)如何测试计数型循环结构的控制表达式中的错误? 断点,或使用try,catch抛出异常 (3)从实验中你得到了哪些提高嵌套循环程序效率的启示? 1.注意把循环次数大的循环放在嵌套语句的外层可以产生较好的效率.2.灵活、巧妙运用三种循环语句结构来实现嵌套。 《C语言循环程序设计—for语句》教学案例 漠河县职业技术学校 尘威威 《C语言循环程序设计—for语句》教学案例 漠河县职业技术学校 尘威威 C语言基础是中职计算机专业的一门必修课,也是要求计算机专业学生学习、掌握的一门重点课程,这门课程核心内容就是要让学生掌握一门编程的语言,学会编写简单的程序,能读懂C语言源程序。 案例背景: 在计算机应用专业教学中,C语言是一门理论与实践结合得比较紧的课程。要掌握和使用好这门语言,既要求学生有比较扎实的理论基础,又要具备较强的应用实践能力。如果只是按照传统的知识体系照本宣科,让学生理解这些枯燥的概念都难,更不要说达到良好的教学效果,而且易挫伤学生学习编程的积极性。因此,在教学中可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和进行概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的,是切合学生的。 循环结构是程序设计三种基本结构的重中之重,而循环中的for循环是程序中运用最多的,也是较灵活的语句之一,它既是前面知识的延续,又是后面知识的基础,在知识构架中起着重要的衔接作用,如果不采用一些恰当有效的方法,学生在学习过程中会难以掌握。在教学过程中教师应结合一些有趣的程序,提高学生的学习兴趣,引导学生全身心地投入课堂。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。 教学目标确定 (一)知识与技能 1、领会程序设计中构成循环的方法 2、能使用for循环语句编写C语言语句,并能运用for循环语句编写出正确的程序。 (二)过程与方法 C语言程序设计中for循环语句教学以行动导向教学为主线,通过“提出问题―分析问题―解决问题―问题扩展―讨论―总结归纳―实践”的程序,过渡到知识应用和练习。 本课采用多媒体课件进行教学,通过课件把文字和图片有机的结合,使学生在学习过程中更加容易理解,学习效率高。在课堂讨论和实践过程中,教师适当引导,学生主动探究、归纳总结学习内容,既有利于领会掌握新知识点,又能充分发挥学生的主体作用。在重点的突破上,采用范例比较教学法,给出具体的案例,让学生通过典型的例子掌握知识,同时通过用while、do while语句的所编写的程序进行比较,加深学生印象,让学生快速的掌握for循环语句的基本结构及使用方法。 (三)情感与价值观 1.让学生在自主解决问题的过程中培养成就感,为今后自主学习打下良好的基础。 2、培养学生学习的主动性,激发学生学习热情,以及培养团队合作的精神、自主探究,合作交流的学习方法,观察,乐于分析的学习态度。 教学重难点确定 C语言程序设计中for循环语句的重点是“for语句的结构”,分析题目意图(即算法分析),并用让学生便于理解的方式描述,学生掌握语句的结构和用法并不困难,难的是在实际的应用中那些时候该使用哪种循环来解决问题比较简洁、高效,所以我把本节课的难点确定为“for语句的应用”。 学情分析:本节课我主要针对计算机专业高三高考班的学生,在学这节课之前他们应准确掌握《C语言程序设计》中关于实现循环结构语句,如 for 或 while,do-while。并拥有能分析并描述简单算法如求累加,累乘的能力。 案例描述 案例1:教师将一张空白A4纸向学生展示,跟同学们说,今天老师给大家做个试验,让你们来猜一猜(学生的兴趣和精神一下就提起来了),然后老师边演示边讲解,将这张纸对折一下后几张?学生都能回答: 2张。继续发问,对折两下几张?学生:4张。对折三下呢?学生:8张。(这个时候学生充满疑惑,老师想干嘛呢,问这么简单的问题)接着老师提出问题:如果纸理想化的大,对折42下,这些纸的厚度将会多高? 这个教室一下就热闹起来了,学生们纷纷给出自己想像的答案,有些同学比划出手势:伸开双手说:有那么高,有人说桌子那么高的,有说房子那么高的。又有人马上否定,哪有那么高。有些同学拿起笔就开始算,算着算着就不知道该从哪儿下手了。 这个时候老师组织安静课堂,叫同学分组给出自己心里倾向的答案,可以估计,可不说理由。 四个小组分别给出的答案是:1:书桌那么高(大概50cm)。2:人的高度(大概170cm)。3:楼房的高度(大概3000cm)。4:大概10厘米。 老师不说哪一组对,只是问同学们,这个高度该怎么算? 接下来和同学一起分析得出以下结论: 1、纸张的厚度h? 2、有多少张纸n? 3、高度=h*n.解决问题1:同学自行测量(4组同学各自准备100页纸,测出总高度/100,取4个小组的平均值)。最后得出一张纸的厚度约=0.1mm。 这个环节的主要目的是让每个学生动手,锻炼他们的动手实践,合作交流的集体合作精神。 解决问题2:有多少张纸?2的42次方。接下来利用循环语句来做(即有42个2相乘)。 编写源程序 所用方法:学生自己编写,小组同学相互交流。 目的:培养并锻炼学生将心中已明确的算法落实到具体的程序语句上。 教师活动 这个时候巡查教室,检查并了解学生完成情况,对部分有小问题的同学给予及时帮助。 组上有成绩比较好的同学很快就把程序编写完毕,我看了一下,选了一个同学到教室机给大家调试展示。该同学给出的程序如下: main(){ int i,k=1;float s;for(i=1;i<=42;i++)k=k*2;/* k是纸张的张数 */ s=k*0.1*1.0e-6;/* 将mm转换成km */ printf(“将一张纸折42下的高度为:%.2f公里”,s);} 调试结果:将一张纸折42下的高度为:0.00公里.这个时候老师提问:为什么会出现0.00的情况?请同学们为他指出问题。同学们思考了一会无人作答。这个时候老师提醒:k的值将会很大.结果部分同学作恍然大悟状态,有同学马上举手:老师,变量k的值不能定义为int,应定义为long;问他为什么?他说:int类型的取值范围是:32767,装不下k。老师微笑表扬:方向对了。改好,调试,结果还是0.00公里。这个时候又有同学发言了:老师,不会定义为long都装不下k吧。这个时候老师提问:如果整型数据long都装不下的数据该定义为什么?学生回答:实型float。 改好,调试,Ok,成功!源程序如下 main(){ int i;float s,k=1;for(i=1;i<=42;i++)k=k*2;/* k是纸张的张数 */ s=k*0.1*1.0e-6;/* 将mm转换成km */ printf(“将一张纸折42下的高度为:%.2f公里”,s);} 调试结果:调试结果:将一张纸折42下的高度为:439804.66公里.全班同学的脸上都露出成功的喜悦。可同学们看到结果,表示不太相信,问老师,是不是算错了,有这么高呀。老师作肯定的答复:没错,就有这么高。比地球到月亮的距离(384,401公里)都还要高。这里可以告诫学生,科学不是凭想像,实践出真知。 问题延伸:已知太阳离地球有1.5亿公里,如果理想化的去折纸,最多折多少下有这么高? 学生分组讨论,用什么语句最恰当。得出结论。(用 do while语句)给同学们五分钟,请同学们给出程序并且调试出结果。教师点评学生的程序,指出程序中容易出现错误的地方。源程序如下: main(){ int i,k=1;float s;do { k=k*2;S=k*0.1*1.0e-6;i++;} while(s<=1.5e8);printf(“最多可折%d下有地球到太阳那么高”,i);} 案例反思: 通过这案例教学也给我留下了很多启示: 1、根据C语言的学科特点,和学生的现状,特别是根据学生平时厌理论而乐操作、解决实际问题能力较差的特点,采用案例教学可以充分调动学生学习C语言的兴趣和积极性,使学生处于精神集中的状态,确保学生将知识真正学到手。通过新鲜的案例引领课堂,平时上课精神不集中的学生都认真分析问题了,个别平时打瞌睡的学生精神也集中了。 2、学生编程的信心需要老师去引导和激发。因为C语言程序对于中职学生来讲有些难度,部分学生一看到编程就放弃了,想都不会去想。这个时候老师就要从案例中去引导学生,和学生一起从案例去分析解决这个问题的算法,激发他们编程的尝试。随着程序的成功调试,信心就有了。一个人有了足够的自信,他将有无穷的力量去面对将来的学习和生活。第四篇:C语言循环结构实习报告 - 副本
第五篇:《C语言循环程序设计for语句》教学案例