累加类程序设计

  • 格式:doc
  • 大小:46.00 KB
  • 文档页数:5
教学 后记
{ j=j*2; s=s+j; n++; } printf(“%d,%d”,s,n); } 第 4 课时 2012 年高考题分析 意大利数学家列昂纳多·斐波那契发明的“斐波那契数列” 指的是这样一个数 列: 0、 l、 1、 2、 3、 5、 8、 13、 21、 „„。 这个数列前两项是 0 和 1, 从第三项开始, 每一项都等于前 两项之和。要求输出斐波那契数列的前 20 项,并计算输出
教 教
学 师
过 活
程 动


法 学生活动
printf(“1+2+„+10 的和为%d”,s); } ②编程求 12+22+„+102 之和。 #include”stdio.h” main() {int x,s=0; for(i=12;i<=102;i+=10) s=s+i; printf(“12+22+„+102 的和为%d”,s); } 第 2 课时 ③编程求 1-3+5-7+„+97-99 的值。 方法一: 分析:把正数和负数分成两大部分 #include”stdio.h” main() {int x,s=0,s1=1,s2=0; for(x=1;x<=97;x+=2) s1=s1+x; for(x=1;x<=99;x+=2) s2=s2+x; s=s1-s2; printf(“1-3+5-7+„+97-99 的值为%d”,s); } 方法二:
把 for 循环结构
} 改成 while 结构 printf(“1-3+5-7+„+97-99 的值为%d”,s); } ④编程求 1-100 以内能被 3 整除但不能被 5 整除的数的和。 #include”stdio.h” main() {int x,s=0; for(x=1;x<=100;x++) { if(x%3==0&&x%5!=0) s=s+x; } printf(“1-100 以内能被 3 整除但不能被 5 整除的数的和 为%d”,s); } 第 3 课时 ⑤输入一个整数,求该整数各数字上数字之和 #include”stdio.h” main() {int x,n,s=0; printf(“请输入一个整数:”); scanf(“%d”,&x); while(x) {n=x%10; s=s+n; x=x/10; } printf(“s=%d”,s);} ⑥计算 s=20+21+22+„2n,当 s 超过 100 时, 求 n 的最小值 及 s 的值。 #include”stdio.h” main() {int s=1,n=0,j=1; while(s<=10)
分析:加数是一正一负,可以把减一个数看成是加一个负数
学生画出流程 图,并思考是否 还有其它设计方 法
观察加数的规律 思考有几种方法 可以实现该程序 设计
#include”stdio.h” main() {int x,s=0,t=1; for(x=1;x<=99;x+=2) { s=s+x*t;
t=-t;
课题
累加类程序设计
课型
教学 目标
1.掌握累加的思想 2.掌握累加和变量的初值的设置 3.掌握常见的累加和的例题
重点 难点 教学 方法
累加和的例题 典型累加和题的编程 讲授
教 教 学 师 过 活 教学 媒体 程 动 教学 课时 与 方 法 学生活动
4Байду номын сангаас
第 1 课时 一、组织教学,清点人数 二、复习要点 1.累加和思想 保存累加和的变量一般置初值为 0,观察并发现加项的 规律,可确定循环控制变量更新的方式。 2.典型例题 ①编程求 1+2+„+10 之和。 (同时画出该程序的流程图) ②编程求 12+22+„+102 之和。 (同时画出该程序的流程 图) ③编程求 1-3+5-7+„+97-99 的值。 ④编程求 1-100 以内能被 3 整除但不能被 5 整除的数的 和。 ⑤输入一个整数,求该整数各数字上数字之和 ⑥计算 s=20+21+22+„2n,当 s 超过 100 时,求 n 的最小 值及 s 的值。 3.实例编程 ①编程求 1+2+„+10 之和。 #include”stdio.h” 画出程序的流程 main(){int x,s=0; for(i=1;i<=10;i++) s=s+i; 图
sum
1 2 3 5 8 13 前 2 3 5 8 13 21
10 项之和。
#define N 20 #include”stdio.h” main() {float a[N],sum=0; int i; a[1]=0;a[1]=1; for(i=2;i<N;i++) a[i]=a[i-1]+a[i-2]; printf(“斐波那契数列的前 20 项为:”); for(i=0;i<N;i++) printf(“%f ”,a[i]); for(i=2;i<12;i++) sum=sum+a[i]/a[i+1]; printf(“sum=%f”,sum); }