C语言几种循环的比较和文件操作小结

时间:2019-05-12 19:45:23下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言几种循环的比较和文件操作小结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言几种循环的比较和文件操作小结》。

第一篇:C语言几种循环的比较和文件操作小结

C语言几种循环的比较和文件操作小结

概括起来,C语言有四种循环:goto语句构成的循环、while循环、do-while循环和for循环。

四种循环的比较:

四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循环,不但因为其蹩脚,我们也极力建议不要使用goto语句,尽量现金网96y.org使用其他语句代替。

while和do-while循环,循环体中应包括使循环趋于结束的语句。

for语句功能最强,也最常用。

用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。

总结:for循环是最常用的循环,它的功能强大,可以代替其他循环。

C系统把文件当作一个流,按字节进行处理。

C文件按编码方式分为二进制文件和ASCII文件。

C语言中,用文件指针标识文件,当一个文件被打开时,可取得该文件指针。

文件在读写之前必须打开,读写结束必须关闭。

文件可按只读、只写、读写、追加四种操作方式打开,同时还必须指定文件的类型是二进制文件还是文本文件。

文件可按字节,字符串,数据块为单位读写,文件也可按指定的格式进行读写。

文件内部的位置指针博彩娱乐棋牌q07i5.org可指示当前的读写位置,移动该指针可以对文件实现随机读写。

第二篇:文件操作通用格式

文件操作三步骤:

打开文件:Open “文件名” for input/Output/append as #文件号

读取或者写入:主要针对顺序文件的命令.关闭文件:close 文件号 写文件的通用格式:

Open “文件名” for Output/append as #文件号

Print/Write#文件号,要写入的内容

Close #1

两个注意事项:

 print后面表达式的分号和逗号

 Print和Write的区别

读文件的通用格式:

1)打开用于读的文件格式固定:

Open “文件名”forinput as #文件号

2)读的语句分三种情况:

①若读的内容是有固定个数的数值,则读的时候联合使用For循环语句读,通用格式为:

Fori=起始值 to 终止值

Input #文件号,数组变量

nexti

②若读的内容是字符串,则读的时候要联合使用Do循环语句读

i若是按变量读(所谓按变量读,对于顺序文件来说,在文档中碰到逗号或空格则认为一个变量的内容结束),通用格式为:

Do while not eof(文件号)

input #文件号, 变量名

Text1.text=text1.text &变量名 &vbcrlf

Loop

ii若是按行读,通用格式为:

Do while not eof(文件号)

Line input #文件号, 变量名

Text1.text=text1.text &变量名 &vbcrlf(在文本框中按行显示)

Loop

iii若是按固定长度字符读,通用格式为:

Do while not eof(文件号)

变量名=input(取的字符长度, #文件号)

Text1.text=text1.text &变量名

Loop

第三篇:循环知识小结

循环知识小结

一、有关循环的语法

1.while语句 2.do~while语句 3.for语句 4.break语句 5.continue语句

 循环方式

 while语句和do~while语句多采用标记式循环

 用于循环次数不定的情况

 for语句更方便对于循环次数确定的情况

循环结构

 for语句和while语句先判断循环控制条件,后执行循环体

 可能一次也不执行循环体

 do~while语句是先执行循环体,后进行循环控制条件的判断

 do~while语句至少执行一次循环体

 do~while语句更适合于第一次循环肯定执行的场合

 实现功能

 do~while和while语句只有一个表达式,用于控制循环是否进行  for语句有三个表达式

 可以控制循环是否进行,并能为循环变量赋初值及不断修改循环变量的值  for语句比while和do~while语句功能更强,更灵活

 语句形式

 初始值

 while、do~while循环时,循环变量的初始值操作应放在while和do~while

语句之前完成

 for语句通常在表达式1中实现循环控制变量的初始化

 while和for表达式的括号后面没有“;”  do~while表达式的括号后面有“;”

 循环语句的选用原则

 循环次数是否确定

 循环次数已知,一般用for语句

 循环次数由循环体的执行情况来确定,一般采用while语句或do~while语句

 循环体是否一定执行

 循环体至少要执行一次时,采用do~while语句

 循环体可能一次也不执行,则选用while语句或for语句

二、循环语句的比较

三、关于嵌套循环

1.在嵌套的各层循环中,应使用复合语句保证逻辑上的正确性 2.嵌套循环的内层和外层的循环控制变量不应同名,以免造成混乱 3.嵌套循环最好采用右缩进格式书写,以保证层次的清晰性

4.循环嵌套不能交叉,即在一个循环体内必须完整地包含另一个循环

5.在多层循环中,应将最忙(循环次数最多)的循环放在最内层,以减少CPU切入循环的次数

1、国王的许诺。相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让

四、有关循环应用的讨论

宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些下麦子吧,就在棋盘的第1格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问:国王他能兑现他的许诺吗?请编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约为1.42e8粒)?

问题分析:这是一个典型的循环次数已知的等比数列求和问题。第1格放1粒,第2格放2粒,第3格放4=22粒……第i格放2i-1粒。所以,总粒数为sum=1+2+22+23+……+263。对于这样的问题,我们采取的策略是每次加一个累加项,用循环语句重复执行64次累加运算,即可求出累加和sum。在累加求和问题中,寻找累加项的构成规律是问题求解的关键。一般地,寻找累加项构成规律有两种方法:一种是寻找统一的累加项表示规律,即用一个通式来表示累加项;另一种是寻找前后项之间的统一的变化规律,即利用前项得到后项的表示。

该题用第一种方法,可得累加项的通式为term=2n-1,即term=pow(2,n-1),n从1变化到64,即从第一项开始计算累加和,所以有sum=sum+term,sum的初始值为0。因此得源代码如下:

# include # include # define CONST 1.42e8 void main(){ int n;double term,sum=0;for(n=1;n<=64;n++){ term=pow(2,n-1);sum=sum+term;} printf(“麦子总粒数sum=%en”,sum);printf(“麦粒体积volum=%e(立方米)n”,sum/CONST);} 用第二种方法分析得知,后项总是前项的两倍,于是得到累加项通式为:term=term*2,term的初值为1,即从第二项开始计算累加项term,并进行63次累加计算,所以有sum=sum+term,sum初值为1。一般情况下,sum的初值都置0,在此是因为事先将累加的第一项加到sum中,所以才有sum=1。用累乘trem=term*2计算通项,显然比直接计算2n-1的效率高得多,在程序设计中可经常使用这种技巧。用第二种方法设计的源代码如下:

# include # define CONST 1.42e8 void main(){ int n;double term=1,sum=1;for(n=2;n<=64;n++){ term=term*2;sum=sum+term;} printf(“麦子总粒数sum=%en”,sum);printf(“麦粒体积volum=%e(立方米)n”,sum/CONST);}

以上程序运行的结果为:

这种数值如此庞大,是舍罕王绝对没有预料到的,它相当于全世界若干世纪的全部小麦,看来舍罕王是无法兑现自己的诺言了!

2、马克思手稿中的数学问题。马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了30先令,每个男从各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几个人?

问题分析:设男人、女人和小孩各x、y、z人,按题目要求可得到下面的方程: x+y+z=30 3x+2y+z=50 两个方程有三个未知数,因此这是一个不定方程,有多组解,用代数方法很难求解,一般采用“穷举法”求解该类问题。所以“穷举法”(也称“枚举法”)就是将所有可能的方案都逐一测试,从中找出符合指定要求的答案。如果由人工来进行这样的求解过程,工作量不可想象,而由计算机来完成却十分简单。穷举法是计算机程序设计中最简单、最常用的一种方法,它充分利用了计算机处理速度高的特性。使用穷举

法的关键是要确定正确的穷举范围,过分扩大会导致程序运行效率的降低,过分缩小会遗漏正确的结果而导致错误。

方法一 采用三重循环穷举x、y、z的全部可能的组合。源代码如下:

# include void main(){ int x,y,z;printf(“ Man t Women tChildrenn”);for(x=0;x<=30;x++)for(y=0;y<=30;y++)for(z=0;z<=30;z++)if((x+y+z==30)&&(3*x+2*y+z==50))printf(“%3dt %5d t %8dn”,x,y,z);} 实际上,由于每个男人花3先令,所以在只花50先令的情况下,最多只有16个男人;同样,在只花50先令的情况下,最多只有25个女人,而小孩的人数可以由方程式x+y+z=30得到,因此可将需要穷举的范围缩小。

方法2 改进算法。

# include void main(){ int x,y,z;printf(“ Man t Women tChildrenn”);for(x=1;x<=16;x++)for(y=1;y<=25;y++){ z=30-x-y;if(3*x+2*y+z==50)printf(“%3dt %5d t %8dn”,x,y,z);} } 以上程序运行的结果为:

3、编程计算一元二次方程ax2+bx+c=0的根,a,b,c由键盘输入,其中a≠0。程序设计时,根据一元二次方程求根公式把所有的可能考虑进来,设计算法如下: # include # include # include # define EPS 1e-6 void main(){ float a,b,c,disc,p,q;printf(“Please input a,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);if(fabs(a)<=EPS)//测试a是否为0,避免发生除0错误

{ printf(“不是一元二次方程n”);

exit(0);

//终止整个程序的执行,强制返回操作系统

} disc=b*b-4*a*c;if(fabs(disc)<=EPS)

//实数disc与0相比较

printf(“该方程有两个相等的实根:x1=x2=%.2fn”,-b/(2*a));else { p=-b/(2*a);

q=sqrt(fabs(disc))/(2*a);

if(disc>1e-6)

printf(“该方程有两个不等的实根:x1=%.2f,x2=%.2fn”,p+q,p-q);

else

{ printf(“该方程有两个共轭复根:n”);

printf(“x1=%.2f+%.2fin”,p,q);

printf(“x2=%.2f-%.2fin”,p,q);

} } } 程序运行的结果测试如下: 测试1:测试2:测试3:

测试4:

补充说明: 1)函数exit()其作用是终止整个程序的执行,强制返回操作系统。和goto,break,continue等控制语句类似,可以用于控制程序的流程。当程序执行的必需条件不能满足时,常用exit()函数终止程序的执行。调用该函数需要包含头文件。函数exit()的一般调用格式为:

exit(code);参数code为int型。当code值为0或为宏常量EXIT_SUCCESS时,表示程序正常退出;当code值为非0或为宏常量EXIT_FAILURE,表示程序出现某种错误后退出。

2)实数不能直接和0比较相等与否

本例中由于a是用户输入的原始数据,不存在计算误差,因此a与0的比较也可以用a==0代替。但因disc变量是经过计算得到的浮点数,而绝大多数计算机中表示的浮点数都只是它们在数学上表示的数据的近似值,因此disc与0的比较不能用disc==0来代替,必须用fabs(disc)<=EPS表示。

3)有关实型数据的输入格式 实型变量若定义为float类型,则在用scanf()函数输入时应用%f格式;若定义为double类型,则应用%lf格式输入。实际从键盘输入的数据可以是整数、小数或指数形式,存入变量对应的存储空间均为指数形式。在C中所有实型常量的类型默认为double类型,若将一个实型常量赋值给float型变量时,系统会出现警告,提醒用户由于两种类型的有效数字位数不同,容易产生精度损失问题,如果所处理的数据有效数字位数在7位以内,此警告可忽略。

4、从键盘输入一个正整数,编程判断它是否是素数。若是素数,输出“Yes!”,否则输出“No!”

问题分析:所谓“素数”即质数,是只能被1和本身整除的数。所以判素数的方法:把m作为被除数,穷举2~m-1之间的数作为除数,若其中有一个能整除,即可确定m不是素数,否则是素数。事实上,根本用不着除那么多次,用数学的方法可以证明:只需要用2~m之间的整数去除m,即可得到正确的判定结果。

方法一 用goto语句实现的程序如下:

# include # include void main(){ int m,i,k;printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);k=(int)sqrt(m);for(i=2;i<=k;i++){ if(m%i==0)

{ printf(“%d不是素数!n”,m);

goto end;

} } printf(“%d是素数!n”,m);end: printf(“程序结束!n”);} 方法二

用break语句实现的程序如下:

# include

# include void main(){ int m,i,k;printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);k=(int)sqrt(m);for(i=2;i<=k;i++)

if(m%i==0)

break;if(i>k)

printf(“%d是素数!n”,m);else

printf(“%d不是素数!n”,m);} 分析:goto语句可以控制流程跳转到程序中任意某个指定的语句处去执行,而break语句的作用是终止整个循环的执行,从循环体内中途退出,接着去执行循环语句之后的第一条语句。break语句的使用使循环的控制更灵活了。使用break语句的副作用是它会使循环体本身形成两个出口,同goto语句相比,只不过break语句跳转的距离和方向受到了严格的限制,而不像goto语句那样可以向任意方向跳转。因此,无论使用goto语句还是break语句,都不是一种好的选择,所以应尽量少用或不用它们。很多情况下,可以采用标志变量并加强循环测试的方法是完全可以避免使用break语句的。方法三 通过设置标志变量并加强循环测试的方法实现程序如下:

# include # include void main(){ int m,i,k,flag=1;printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);k=(int)sqrt(m);if(m<2)//2以下的数不是素数 flag=0;for(i=2;i <= k && flag;i++)

if(m%i==0)

flag=0;if(flag)

printf(“%d是素数!n”,m);else

printf(“%d不是素数!n”,m);} 结论:从程序的可读性方面看,方法三比方法一和方法二都好!

5、从键盘输入一个正整数m,若m不是素数,则打印其所有因子;否则,打印“没有因子,是素数!”

问题分析:能被m整除的数i就是m的因子,因此当m%i==0时,不退出循环而打印当时的i值即可。为了得到m的所有因子,循环变量i应从2一直变化到m-1,即无论m是否是素数都要检验所有的i值。

# include void main(){ int m,i,flag=1;

} printf(“请从键盘输入一个正整数:”);scanf(“%d”,&m);for(i=2;i<=m-1;i++)//此处的m-1可否改为m/2或sqrt(m)?

if(m%i==0){ flag=0;

printf(“%dn”,i);} if(flag)printf(“%d是素数,没有因子!n”,m);

五、有关getchar()、getche()和getch()的讨论

 getchar()函数采用缓冲输入方式,即输入字符先被放到缓冲队列中,直到键入回车键时才返回,getcahr()每次从输入缓冲队列中读取第一个字符进行相应的处理。

 getch()函数在击键之后立即返回,无需输入回车键,且不向屏幕回显键入的字符。 getche()函数功能同getch()函数,只是前者要向屏幕回显键入的字符。 getch()和getche()是Turbo C特有的库函数,在头文件conio.h中定义。

例1:从键盘输入一个班学生(人数不确定)一门课程的五分制成绩,编程要求每输入一个五分成绩,就显示其所在的分数段,同时,统计并打印每种成绩的人数。

问题分析:对于这类输入数据个数不确定的问题,常常采用输入一个特殊的数作为程序判断循环结束标志的方法。例如,输入百分制成绩时,用负数作为输入结束的标志,输入五分制成绩里,则可用一个特殊的符号作为输入结束的标志。

程序如下:

# include void main(){ int aCount=0,bCount=0,cCount=0,dCount=0,eCount=0;//定义5个计数器并置0 char grade;printf(“请输入成绩等级字母,并以'#' 号结束:n”);grade=getchar();while(grade!='#'){

switch(grade)

{ case 'A': case 'a': printf(“90--100n”);

aCount++;

break;case 'B': case 'b': printf(“80--89n”);

bCount++;

break;case 'C': case 'c': printf(“70--79n”);

cCount++;

break;case 'D': case 'd': printf(“60--69n”);

dCount++;

break;case 'E': case 'e': printf(“<60n”);

}

eCount++;

break;

default: printf(“输入错误!n请重新输入:n”);} grade=getchar();} printf(“统计结果: A: %d, B: %d, C:%d, D:%d, E:%dn”,aCount,bCount,cCount,dCount,eCount);运行结果如下:

测试1:

问题:只有输入#并回车才能真正结束程序,#没有直到预期的目的。测试2:

问题:以回车或空格作为每个等级的分隔符,统计结果虽然正确,但都会提示出错信息,解决方法一:在switch语句中增加一个case分支:

case ' ': case 'n': break;解决方法二:将接收字符的操作改用scanf函数实现,并在%c格式前增加一个空格,将前面输入数据输入时存于缓冲区的回车符读入,避免被后面的字符型变量作为有效字符读入。scanf(“ %c”,&grade);例2:设计一个简单的计算器程序,要求用户可以连续做多次算术运算,每次运算结束后,程序都会给出提示: Do you want to continue(Y /N or y/n)? 如果用户输入Y或y时,程序继续执行其他运算,否则退出程序。程序如下:

# include void main(){ int d1,d2;

} char op,reply;do { printf(“请输入计算表达式:”);scanf(“%d %c %d”,&d1,&op,&d2);switch(op){ case '+': printf(“%d%c%d=%dn”,d1,op,d2,d1+d2);break;

case '-': printf(“%d%c%d=%dn”,d1,op,d2,d1-d2);break;

case '*': printf(“%d%c%d=%dn”,d1,op,d2,d1*d2);break;

case '/': if(d2==0)

printf(“除数不能为0n”);

else

printf(“%d%c%d=%dn”,d1,op,d2,d1/d2);

break;

default: printf(“运算符错误!n”);} printf(“Do you want to continue(Y /N or y/n)? ”);reply=getchar();}while(reply=='Y'||reply=='y');printf(“程序结束!n”);问题:测试不能得到预期的结果,原因在于函数getchar的行缓冲问题导致getchar()把用户输入表达最后的回车符作为其读入字符。

解决办法:将语句reply=getchar();改为reply=getch();或reply=getche();或scanf(“ %c”,&reply);都可以。

六、结构化程序设计的核心思想

结构化程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计的程序具有结构清晰、容易阅读、容易修改、容易验证等特点。因此,人们把“结构清晰、容易阅读、容易修改、容易验证”作为衡量程序质量的首要条件。也就是说,所谓“好”的程序是指“好结构”的程序,一旦效率与“好结构”发生矛盾时,那么宁可在可容忍的范围内降低效率,也要确保好的结构。

结构化程序设计的基本核心思想归纳起来为以下3点:

(1)采用顺序、选择、循环三种基本结构作为程序设计的基本单元。

(2)尽量不要使用多于一个的goto语句标号,同时只允许在一个“单入口单出口”的模块内用goto语句向前跳转,不允许回跳。

(3)采用“自顶向下、逐步求精”和模块化方法进行结构化程序设计。

七、循环的应用

(一)递推算法

1.编程计算1+2+3+……100的值。

2.编程计算1×2×3+3×4×5+5×6×7+……+99×100×101的值

[提示:用累加和算法,通项公式为term=i*(i+1)*(i+2)(i=1,3,5,…,99),或者公式为term=(i-1)*i*(i+1)(i=2,4,6,…,100),步长为2。] 2.编程计算n!=1×2×3×……×n的值。

3.编程计算1!+2!+3!+……+10!的值。

[提示:用累加和算法,累加项为term=term*i(i=1,2,3,…,10),term的初始值为1。] 4.编程计算a+aa+aaa+……+aa…a(n个a)的值,n和a由键盘输入。

[提示:用累加和算法,累加项为term=term*10+a(i=1,2,3,…,n),term初始值为0。]

5.编程计算分数数列6.编程计算s7.编程计算s112221,,235358138,2113,前20项之和。

11123421123562123n直到,n由键盘输入。如n为11时,s=1.83333。

103(2n1)(2n)2(2n1)(2n)2。

8.编程计算xn,其中x和n均由键盘输入。

9.一球从200米高度自由落下,每次落地后反跳回原高度的一半,再落下。编程求它第10次落地时共经过的路程及第10次落地后反弹的高度。10.猴子吃桃问题。11.求∏的近似值。12.求Fibonacci数列。

(二)穷举算法

1.请编程判断一个正整数m(m>=3)是否是素数。

2.编程实现从键盘上输入整数m和k,输出大于且紧靠m的k个素数。3.请编程找出1至99之间的全部同构数。所谓同构数是这样的一组数:它出现在它平方数的右边。(例如:4是25右边的数,25是625右边的数,5和25都是同构数。)5.输入两个正整数,求其最大公约数和最小公倍数。

6.输出所有的水仙花数。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。7.从键盘输入任意一个整数,编程计算该整数各位数字的累加和(忽略整数前的正负号)。

8.韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队反报数。按从1到5报数,最末一个士兵报的数为1;按从1到6报数,最末一个士兵报的数为5;按从1到7报数,最末一个士兵报的数为4;最后再按从1到11报数,最末一个士兵报的数为10。编程计算韩信一共有多少士兵?

[提示:设兵数为x,则按题意x应满足以下关系:

x%5==1&&x%6==5&&x%7==4&&x%11==10 用穷举法对x从1开始试验,可得结果。

] 9.鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只?

[提示:设鸡数为x,兔数为y,根据题意有x+y=98,2x+4y=386,采用穷举法,x从1变化到97,y取98-x,如果x,y同时满足条件2x+4y=386,则打印x,y的值。] 10.百钱买百鸡问题。取自《张丘建算经》:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”

[提示:设公鸡、母鸡、小鸡数各为x,y,z,依题意有x+y+z=100, 5x+3y+z/3=100。采用穷举法求解,因100元买公鸡最多20只,买母鸡最多33只,所以只要x从0变化到20,y从0变化到33,则z=100-x-y,若同时满足5x+3y+z/3=100,即得解。]

第四篇: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语言程序设计新视角》第八章文件小结

《c语言程序设计新视角》第八章 文件小结 文件存数据时间长久,二进制与文本形式自由。程序操纵它三个步骤: 打开、读写、关闭不要遗漏。注意路径与名称打开不愁; 读写有系列函数功能足够; 记得关闭在操作之后。

下载C语言几种循环的比较和文件操作小结word格式文档
下载C语言几种循环的比较和文件操作小结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    中学语言文件

    语 言 文 字 达 标 实 施 方 案 2018年9月10日至16日是第二十一届全国推广普通话宣传周,根据《山东省教育厅等九部门关于开展第21届全国推广普通话宣传周活动的通知》(鲁教语......

    文件操作教学设计

    21课“文件操作”教学设计 教材分析与教法 本课是对在画图过程中保存的文件进行整理,删除多余、无用的文件,对需要的文件进行复制以及移动的教学内容。教材中创设了“小明对画......

    《文件操作》教学设计

    《文件操作》教学设计 [教学目的与要求] (1)掌握选定一个和多个文件的方法。 (2)学会删除文件的基本操作,初识“回收站”。 (3)能够理解移动与复制的区别。 (4)掌握移动和复......

    文件和文件夹操作教案

    文件和文件夹操作 学习目标: 一、 认识我的电脑,也就是硬盘分区 二、 管理文件和文件夹 1、新建文件夹 2、选定文件和文件夹 3、复制文件 4、移动文件 三、 应用文件和文件夹......

    操作数据库小结

    一.查询操作 对数据进行查询操作时,有两种情况:一是查询单个值,二是 查询若干条记录。 1、 查询单个值 需要使用Command对象的ExecuteScalar()方法:步骤如下: (1)、创建Connection对象......

    运行操作小结

    T-101隔油池 5格两头小中间大,格间水流做上下逐级流动。2个进水口,分别在第1、3格,做了个超滤管到第三格一般情况下都是进第一格。油主要集中在1、2格。1、来水带油且较多; 2、......

    2009三季度操作小结

    2011年操作运动会总结 为迎接新公司成立以来第一届操作运动会的召开,根据公司选拔工作安排,我车间做了相应具体部署。首先,成立操作比武领导小组,召开职能人员会议宣传,并通......

    循环流化床锅炉扬火操作

    3#炉压火扬火操作 压火操作: 1、停烧垃圾,通知垃圾临工打扫卫生,为减少压火时漏风,尽量不要将入炉绞笼垃圾走空,保证入炉口密封以减少冷风漏进炉内; 2、入炉绞笼停运后,将绞笼两......