本课内容:循环程序设计 教学目的:掌握 while、do. while、for三种循环结构, 掌握语句格式、功能、并能进行循环程序设计 重点:循环结构格式、功能、循环概念。 难点:循环结构程序设计的条件确定,for中各参数的使用。 预习:循环描述 I<=10 A A A
本课内容:循环程序设计 教学目的:掌握while、do…while、for三种循环结构, 掌握语句 格式、功能、并能进行循环程序设计。 重点:循环结构格式、功能、循环概念。 难点:循环结构程序设计的条件确定,for 中各参数的使用。 预习:循环描述 I<=10 A P A P A
一、 while结构及应用 格式: while(条件) 语句(循环体) 功能:条件为真,执行循环体,然后再判断条件,仍为真,继续 执行循环体,直到条件为假结束,执行结构下一语句 说明:语句一般是复合语句,即由多个语句组成,称循环体,当 多于一个语句时,要用花括号括起来。 如: maino int number=0 while(number<=1) print“%dn”, number); number++ 1 o 例:求∑
一、while 结构及应用 格式:while (条件) 语句(循环体) 功能:条件为真,执行循环体,然后再判断条件,仍为真,继续 执行循环体,直到条件为假结束,执行结构下一语句。 说明:语句一般是复合语句,即由多个语句组成,称循环体,当 多于一个语句时,要用花括号括起来。 如: main() { int number=0; while (number<=1) { printg(“%d\n”,number); number++; } } 例:求 = 10 i 1 i
、do. while结构及应用 格式:do 循环体 while(条件) 功能:先执行循环体语句,然后对条件进行判断,为真(非零) 执行循环体,否则结束。# include“ 'stdio.h” 如:求100以内偶数和。 maino maino Rint a=0, b=0; int c; do do 十a 十a i c=gercharo; b+=a putchar (c) while(a<100); printf(%dn”,b) while(c=EOF); }/“EOF值为-1,键入^时的值为-1*/
二、do …while结构及应用 格式:do 循环体 while (条件) 功能:先执行循环体语句,然后对条件进行判断,为真(非零), 执行循环体,否则结束。 如:求100以内偶数和。 main() {int a=0,b=0; do { ++a; ++a; b+=a; } while (a<100); printf(“%d\n”,b); } #include “stdio.h” main() { int c; do { c=gerchar(); putchar ( c ); } while (c !=EOF); } /*EOF值为-1,键入^z时的值为-1*/
for 结构及应用 格式:for(初始表达式;条件表达式;修正表达式) 循环体 功能:先执行初始表达式,判断条件表达式是否为真,为真执行循 环体,然后执行执行修正表达式,再判断条件表达式是否为真, 重复上述过程,直到条件表达式为假结束。 如求 lO 执行初始表达式 假 maint ( 判断条件表达 int isum=0: 真 for(i=1;i<=10;i++) 执行循环体 sum+=i: printf(“sum=%dn”,sum); 执行修正表达式
三、for 结构及应用 格式:for (初始表达式;条件表达式;修正表达式) 循环体 功能:先执行初始表达式,判断条件表达式是否为真,为真执行循 环体,然后执行执行修正表达式,再判断条件表达式是否为真, 重复上述过程,直到条件表达式为假结束。 如求 main() { int i,sum=0; for (i=1 ; i<=10;i++) sum+=i; printf(“sum=%d\n”,sum); } = 10 i 1 i 执行初始表达式 判断条件表达 执行循环体 执行修正表达式 真 假
省略形式的for循环: (1)、for(;条件表达式;修正表达式)语句 (2)、for(初始表达式;条件表达式;)语句 (3)、for(;条件表达式;)语句 如(1)sum=0;i=1; for(;i<=100;计++)um+i; (2)sum=0; for(i=1;i<=100;)sum+=i++; 3)sum=0; for(;i<=100;)sum+=i++; 分析:for(;;;)的执行情况 又如 e maIn fint i,j, for(i=0,j=5; i<j; i++,j-) i k=I+j; printf(“i=%dj=%dk=%dⅦn”,i,j,k);}
省略形式的for 循环: (1)、for (;条件表达式;修正表达式)语句 (2)、for (初始表达式;条件表达式;)语句 (3)、for(;条件表达式;)语句 如(1) sum=0;i=1; for ( ;i<=100 ; i++) sum+=i ; (2) sum=0; for( i=1 ; i<=100 ; ) sum+=i++ ; (3) sum=0; i=1; for ( ; i<=100 ; ) sum+=i++ ; 分析:for ( ; ; ; )的执行情况 又如:main() { int i , j , k ; for ( i=0 , j=5 ; i<j ; i++, j- -) { k=I+j; printf( “i=%d j=%d k=%d\n”, i , j , k ); } }
例:P93323 y SInX 例:求 sin xdx 下底 MainO Jo 上底 0 Int n, 1: 1/1 double hs=0.0.t: scanf(%odⅦm”,n); 高:h=(1-0) h=1/n; 上底:sin(i-1)*h) for(i=1;<=n;i++) 下底:sin(i*h) sin((i-1)*h)+sin(i*h t=(sin(i-1)h)+sin(ih)h2;面积: S+=t printi(e“s%lfn”,)
例:P93_3.23 例:求 Main() { int n,i; double h,s=0.0,t; scanf(“%d\n”,n); h=1/n; for (i=1;i<=n;i++) { t=(sin((i-1)*h)+sin(i*h))*h/2; s+=t; } printf(“s=%lf\n”,s); } 1 0 sin xdx sinx 上底 1/n 0 1 高 x y 高:h=(1-0)/n 上底:sin((i-1)*h) 下底:sin(i*h) 面积: h i h i h . 2 sin(( −1)* ) + sin( * ) 下底
小 l、 while 2、do.. while 、for 注:1和2的区别 for中的各表达式的作用 各种不同的算法工具描述形式 作业:p963.13(1,4)
小结: 1、while 2、do…while 3、for 注:1和2的区别 for中的各表达式的作用 各种不同的算法工具描述形式 作业:p96_3.13(1,4)