C程序设计教案(第4章第4次).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 4 PAGE 4 周次:第 周 课次:第四次 授课时间:年 月 日 章节内容: 第4章 结构化程序设计(4) 教学目标: 复习三种控制结构、灵活运用相关语句实现实际问题 教学重点: 循环结构的灵活应用 教学难点: 掌握一定的编程方法解决实际问题 教学方法和授课手段 多媒体教室,电子课件。讲授与演示法相结合。 教学过程: 预备(复习):三种控制结构及相应语句。(5分钟) 课前提问(5 分钟) 课程引入:介绍本课程的学习目的、主要学习内容和学习方法。(10分钟) 课程新授:(60分钟) 程序举例 例1:求Fibonacci数列:1,1,2,3,5,8……的前40个数,即F1=1(n=1),F2=1(n=2),Fn=Fn-1+Fn-2(n大于2)——(P116) 例2:判别m是否为素数。在此基础上求100~200间的全部素数 程序设计的三种方法: 1、枚举法:就是逐一列举出可能解的各个元素,并加以判断,直到求得所需要的解。常用在排列、组合、数据分类、信息检索、多解方程的求解上; 2、归纳法:是从大量的特殊性中总结出规律性或一般性的结论。在程序设计上主要表现为递归和迭代、数列和级数求和。 3、抽象法:自顶向下,逐步求精。 例1:对于-5≤x≤11;-10≤y≤9;-6≤z≤18,求方程:x3+y3+z3=3的全部解。 #includestdio.h main() {intx,y,z; for(x=-5;x12;x++) for(y=-10;y10;y++) for(z=-6;z19;z++) if(x*x*x+y*y*y+z*z*z==3) printf(“%5d%5d%5d\n”,x,y,z); } 例2:打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153=13+53+33 main() {inti,j,k,n; for(n=100;n1000;n++) {i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf(“%4d”,n); } printf(“\n”);} 例3:两个乒乓球队进行比赛,各出三人。甲队为A、B、C,乙队为X、Y、Z三人,已经抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比。请编程序找出三对赛手的名单。 main() {chari,j,k; for(i=‘X’;i=‘Z’;i++) for(j=‘X’;j=‘Z’;j++) if(i!=j) for(k=‘X’;k=‘Z’;k++) if(i!=kj!=k) if(i!=‘X’k!=‘X’k!=‘Z’) printf(“A--%c\tB--%c\tC--%c\n”,i,j,k); } 例4:百钱百鸡问题。用100元钱买100只鸡,每只公鸡5元,每只母鸡3元,每3只小鸡1元,要求每种鸡至少买一只,且必须是整只的,问各种鸡各买多少只? 分析: (1)这是一个组合问题,归根到底是求三元一次方程的一组解; (2)设i,j,k分别表示公鸡、母鸡和小鸡的只数。为了确定i,j,k的取值范围,可以有不同方法。不同的方法,程序的计算量相差甚远; (3)方法一:i:1~20;j:1~33;k:1~100; (4)方法二:i:1~18;j:1~31;k:100-i-j; (5)方法三:由i+j+k=100及5i+3j+k/3=100得14i+8j=200,由此可得: i:1~13;j:1~23;k=100-i-j; (6)方法四:由方法三中的14i+8j=200得7i+4j=100可得: i:1~13;j=(100-7i)/4;k=100-i-j; mian() {inti,j,k; for(i=1;i=13;i++) {j=(100-7*i)/4; k=10-i-j; if(5*i+3*j+k/3==100)printf(“i=%d\tj=%d\tk=%d\n”,i,j,k); } 例5:用牛顿迭代法求a的平方根。 #includemath.h main() {floata,x0;x1; scanf(“%f”,a); if(a0)printf(“\naisanegative\n”); else{x0=a/2;x1=0.5*(x0+a/x0); while(fabs(x0-x1)=1.0e-5) {x0=x1;x1=0.5*(x0+a/x0);} printf(“\nsqrt(%f)=%f\n”,a,x1); } } 例6:猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档