资源描述
课程名称
循环语句应用—累加累乘
教材分析
重点
循环三要素(循环体、循环条件和初值)的分析,循环结构语句的选择
难点
分析和编写简单的累加累乘程序
教学目标
知识目标:巩固循环结构语句的格式,掌握循环结构程序设计的方法
能力目标:培养学生分析问题、解决问题的能力,训练学生逻辑思维和判断能力
发展目标:教给学生灵活的思维方法,培养学生的学习兴趣和勇于探索、勇于创新的精神,提高综合素质
教法
以讲授为主,并请学生演示编程
教具
多媒体(ppt)
教学过程
一、 复习循环语句
1、 三种循环的格式和注意点
while (表达式)
{
语句;
}
只要表达式的值为非0,就重复执行语句,直到表达式值为0时止。
先判断后执行,循环次数>=0。
do
{
语句;
}while (表达式);
首先执行语句,然后判断表达式的值。如果表达式为0,继续向下执行,否则,再次执行语句,再次判断表达式的值。
语句会被至少执行一次。
for (表达式1; 表达式2; 表达式3)
{
语句;
}
“表达式1”用来实现循环变量初始化工作;
“表达式2”作为循环条件;
“表达式3”用于循变量的更新。
若循环体只有一条语句,则“{}”可省略。
循环次数>=0。
2、选择三种循环的一般原则
如果循环次数已知, 用for
如果循环次数未知, 用while
如果循环体至少要执行一次, 用do-while
这只是“一般”原则,不是“原则”
二、 新课引入
1+2+3+……+100
1-2+3-4+ ……+99-100
1-1/3+1/5-……-1/19+1/21
1*2*3*……*20
2*4*6*……*20
让学生观察这些式子,找出特点,我总结学生的答案,引入累加累乘的概念。,并给出概念。
累加:就是定义一个变量(s=0)来保存结果,另定义一个变量(i)实现数值的变化。把数值变化的那个变量(i)的值每次和保存结果的变量(s)进行加运算,结果赋给s.
比如1----10的累加,就是先把1赋给i,和s相加结果给s,之后i变成2,再和s相加结果给s。如此反复就是累加。
累乘也一样,但变量p=1。
三、 新课内容
1、累加累乘基本知识:
累加
累乘
初值 公式
初值 公式
0 S=S+I
1 P=P*I
2、 现场编程
例1、求 1+2+3+……+n
分析
1、n个数求和问题,用到累加;
2、用循环语句反复累加,循环体内用S=S+X形式赋值语句;
3、变量S初值为0。
代码
#include <stdio.h>
main( )
{
int i,,n,s;
scanf ("%d", &n) ;
s = 0;
for ( i = 1; i <= n; i++ )
s = s + i;
printf( “ %d\n”, s);
}
同学练习
求一百以内奇数和sum=1+3+5+……+99
#include<stdio.h>
main()
{
int n,i,sum;
n=100;
sum=0;
for (i=0;i< n ;i++)
{ if (i%2 = =1 )
sum=sum + i;
}
printf(“sum=%d \n”,sum);
}
例2、求n!=1*2*3*……*n的值
分析
1、运用到累乘,循环体内用P=P*I形式赋值语句;
2、变量p初值为1;
3、当n较大时,阶乘可能超出整形范围,所以可将累积值设为doouble型。
代码
#include <stdio.h>
main( )
{
int i, n;
double p;
scanf ("%d", &n) ;
p=1;
for ( i = 1; i <= n; i++ )
p = p * i ;
printf ( "p = %.0f\n", p);
}
同学练习
计算二十以内偶数积P=2*4*6+……*20
#include<stdio.h>
main()
{
int n,i,p;
n=20;
p=1;
for (i=0;i<=n;i++)
{ if (i%2 = =0 )
p=p* i;
}
printf(“p= %.0f\n”,p);
}
3、拓展练习
例3、求1!+2!+3!+......+20!
分析
1、20个数求和问题,用到累加;每个数是一个阶层,又要用到累乘。
2、循环体内用到S=S+X和P=P*I赋值语句。
3、 S初值为0,P而初值为1。
代码
#include<stdio.h>
main()
{int i,p,s;
p=1;
s=0;
for(i=1;i<=20;i++)
{p=p*i;
s=s+p;
}
printf("1!+2!+……+20!= %d",s);
}
四、课堂总结
1、在求和求积问题中,一般都要用到累加器和累乘器。
2、循环体中的赋值语句应根据题目中要求的各项特点而定。
3、循环体内有些变量往往要事先给定初始值。
4、对变量赋值初始值的语句应放在循环体之外,即在for语句循环之外。
五、课后作业
1、求 xn 。
2、求 1-1/3+1/5-… 的前n项和。
南通大学 徐丹
展开阅读全文