第一篇:while循環(huán)結(jié)構(gòu)例題
引子
#include “stdio.h” main(){ int i=1;for(i=1;i<=10000;i++)printf(“%dt”,i);}
題型1 輸入輸出多個數(shù)據(jù)
eg1、輸出1~10000之間所有的整數(shù) #include “stdio.h” main(){ int i=1;while(i<=1000){printf(“%dt”,i);
i++;} } 拓展:
1、換成所有的奇數(shù)
2、換成所有的偶數(shù)
題型2 有限個數(shù)連加和連乘 eg2.1、求1+2+3+4+………+100的值 #include “stdio.h” main(){ int i=1,s=0;while(i<=100){s=s+i;i++;} printf(“%dn”,s);} 拓展:
1、求1+2+3+4+………+n的值
2、求12+22+32+………+n2的值
3、求1+1/2+1/3+………+1/n的值 eg2.2、求n!的值 #include “stdio.h” main(){ int i=1,n,p=1;scanf(“%d”,&n);while(i<=n){p=p*i;i++;} printf(“%dn”,p);} 拓展:求1!+2!+3!+………+n!的值 #include “stdio.h” main(){ int i=1,n,p=1,s;scanf(“%d”,&n);while(i<=n){p=p*i;
s=s+p;i++;} printf(“%dn”,s);}
題型3 無限個數(shù)連加
eg3、求1-1/3+1/5-1/7+………的近似值,要求精度要達(dá)到10-#include “stdio.h” #include “math.h” main(){ float n=1,s=0,f=1,t=1;
while(fabs(t)>=1e-4)
{t=f/(2*n-1);
s=s+t;f=-f;n++;} printf(“%fn”,s);}
拓展:求1-1/2+1/4-1/6+………的近似值,要求精度要達(dá)到10-4
題型4 統(tǒng)計
eg4.1、輸入20個數(shù),統(tǒng)計其中正數(shù)、負(fù)數(shù)和零的個數(shù)。#include “stdio.h” main(){ int i=1,n,p,z;float x;
p=n=z=0;while(i<=20)
{ scanf(“%f”,&x);if(x>0)p++;
else
if(x<0)
n++;else
z++;
i++;} printf(“%dt%dt %dn”,p,n,z);} 拓展:統(tǒng)計各類字符的個數(shù)
eg4.2 個位為6且能被3整除的五位數(shù)有多少? 方法1 #include “stdio.h” main(){ long i=10000,c=0;while(i<=99999)
{
if((i%3==0)&&(i%10==6))c++;i++;} printf(“%d n”,c);}
方法2 #include “stdio.h” main(){ long i=10006,c=0;while(i<=99999)
{
if(i%3==0)c++;i=i+10;} printf(“%d n”,c);} 題型5 數(shù)列
eg5 輸出fibo數(shù)列的第20位數(shù)字 #include “stdio.h” main(){ int f1=1,f2=1, f3,i=3;while(i<=20)
{ f3=f1+f2;f1=f2;f2=f3;i++;} printf(“%d n”,f3);} 拓展:輸出fibo數(shù)列前20位數(shù)字 #include “stdio.h” main(){ int f1=1,f2=1, f3,i=3;printf(“%d t%d t”,f1,f2);while(i<=20)
{ f3=f1+f2;f1=f2;f2=f3;
printf(“%d t”,f3);i++;} }
題型6 數(shù)據(jù)的逆序輸出
eg6 任意給定一個正整數(shù),個位數(shù)字逆序輸出。
#include “stdio.h” main(){ long x,t;
scanf(“%ld”,&x);while(x!=0)
{ t=x%10;x=x/10;printf(“%d”,t);} }
題型7 公約數(shù)與公倍數(shù)
eg7 任意輸入兩個正整數(shù),求其最大公約數(shù)和最小公倍數(shù)。#include “stdio.h” main(){ int m,n,a,b,r,t;
scanf(“%d%d”,&m, &n);
if(m>n){a=m;b=n;}
else {a=n;b=m;} while(b!=0)
{ r=a%b;a=b;b=r;} printf(“zuida gongyushu shi:%dn”,a);printf(“zuixiao gongbeishu shi:%dn”,m*n/a);}
題型8 素數(shù)問題
eg8 從鍵盤上任意輸入一個正整數(shù),判斷其是否為素數(shù)。#include “stdio.h” main(){ int x,i=2;
scanf(“%d”,&x);while(x%i!=0)i++;if(x==i)printf(“shi!”);else printf(“fou!”);} 題型9 高次方程的根
eg9.1 用二分迭代法求解方程32y=2x-4x+3x-6=0在(-10,10)之間的根,要求-5精度10
#include “stdio.h” #include “math.h” main(){ float x1=10,x2=-10,x, y ,y1;x=(x1+x2)/2;y=2*x*x*x-4*x*x+3*x-6;while(fabs(y)>1e-5){ y1=2*x1*x1*x1-4*x1*x1+3*x1-6;
if(y*y1>0)
x1=x;
else
x2=x;
x=(x1+x2)/2;
y=2*x*x*x-4*x*x+3*x-6;
} printf(“the root is %fn”,x);} eg9.2 用牛頓迭代法求解方程2x3+ 2-54x-7x-6=0在x=1.5附近的根,要求精度10 #include “stdio.h” #include “math.h” main(){ float x,x0, y ,y1;x=1.5;while(fabs(x-x0)>1e-5){ x0=x;y=2*x0*x0*x0+4*x0*x0-7*x0-6;y1=6*x0*x0+8*x0-7;x=x0-y/y1;} printf(“the root is %fn”,x);}
牛頓迭代公式:xn+1=xn-f(xn)/f’(xn)
do-while循環(huán)結(jié)構(gòu)舉例 #include “stdio.h” main(){ int i=1,s=0;do {s=s+i;i++;} while(i<=100);printf(“%dn”,s);} for循環(huán)結(jié)構(gòu)舉例 f1 #include “stdio.h” main(){ int i=1,s=0;for(i=1;i<=100;i++)s=s+i;printf(“%dn”,s);} f2 #include “stdio.h” main(){ int i,f1,f2,f3;f1=1;f2=1;printf(“%d,%d”,f1,f2);for(i=3;i<=20;i++)
{ f3=f1+f2;
f1=f2;
f2=f3;
printf(“,%d”,f3);} } f3 #include “stdio.h” main(){ int i;float a,max;scanf(“%f ”,&a);max=a;for(i=1;i<=9;i++)
{ scanf(“%f ”,&a);
if(max max=a;} printf(“%fn”,max);} f4 #include “stdio.h” main(){ int i,s=1;for(i=9;i<=1;i--)s=2*(s+1);printf(“%dn”,s);} #include “stdio.h” main(){ int x,n=0,s=0; while(n<10){ scanf(“%d”,&x); if(x<0)break; s+=x; n++; } printf(“s=%dn”,s); } #include “stdio.h” main(){ int x,n=0,s=0;while(n<10) { scanf(“%d”,&x); if(x<0)continue; s+=x; n++; } printf(“s=%dn”,s);} #include “stdio.h” main(){ int x,n=0,s=0;while(n<10) { scanf(“%d”,&x);n++; if(x<0)continue; s+=x; } printf(“s=%dn”,s);} #include “stdio.h” main(){ int i=2,m; scanf(“%d”,&m);while(m%i!=0)i++;if(i==m) printf(“%d shi sushu!n”,m); else printf(“%d bu shi sushu!n”,m);} #include “stdio.h” main(){ int i,m;scanf(“%d”,&m);for(i=2;m%i!=0;i++);if(i==m) printf(“%d shi sushu!n”,m);else printf(“%d bu shi sushu!n”,m);} #include “stdio.h” main(){ int i,m; scanf(“%d”,&m); for(i=2;i<=m;i++) if(m%i==0)break; if(i==m) printf(“%d shi sushu!n”,m); else printf(“%d bu shi sushu!n”,m);} #include “stdio.h” #include “math.h” main(){ int i,m,s; scanf(“%d”,&m); s=sqrt(m); for(i=2;i<=s;i++) if(m%i==0)break; if(i==s+1) printf(“%d shi sushu!n”,m); else printf(“%d bu shi sushu!n”,m);} #include “stdio.h” #include “math.h” main(){ int i,j; for(i=100;i<=200;i++) { for(j=2;j<=i;j++) if(i%j==0)break; if(j==i) printf(“%-10d”,i);} } #include “stdio.h” #include “math.h” main(){ int i,j,s; for(i=100;i<=200;i++) { s=sqrt(i); for(j=2;j<=s;j++) if(i%j==0)break; if(j==s+1) printf(“%-10d”,i);} } #include for(i=2;i<=10000;i++) { s=0; for(j=1;j if(i%j==0) s+=j; if(i==s) printf(“%6dn”,s); } } #include “stdio.h” main(){ int i,j,k;for(i=0;i<=35;i++) for(j=0;j<=35;j++) if((i+j==35)&&(2*i+4*j==94)) printf(“ni=%-10dj=%-10d”,i,j);} #include “stdio.h” main(){ int i,j,k; for(i=0;i<=19;i++) for(j=0;j<=33;j++) for(k=0;k<=100;k++) if((i+j+k==100)&&(5*i+3*j+k/3==300)) printf(“ni=%-10dj=%-10dk=%-10d”,i,j,k);} #include “stdio.h” main(){ int i,j,k;for(i=0;i<=19;i++)for(j=0;j<=33;j++) { k=100-i-j; if(15*i+9*j+k==300) printf(“ni=%-10dj=%-10dk=%-10d”,i,j,k); } } #include “stdio.h” main() { int i,j,k; for(i=0;i<=19;i++) for(j=0;j<=33;j++) {k=100-i-j; if(5*i+3*j+k/3==100)printf(“ni=%-10dj=%-10dk=%-10d”,i,j,k);} } #include “stdio.h” main(){ int m,n,k; for(m=1;m<=9;m++) { for(n=1;n<=m;n++) printf(“%d*%d=%-5d”,n,m,n*m); printf(“n”); } } #include “stdio.h” main(){ int i; for(i=1;i<=5;i++)printf(“********n”);} #include “stdio.h” main(){ int i,j; for(i=1;i<=5;i++) { for(j=1;j<=5-i;j++) printf(“ ”); printf(“********n”);} } #include “stdio.h” main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=20-i;j++) printf(“ ”); for(j=1;j<=i;j++) printf(“*”); printf(“n”); } } #include “stdio.h” main() {int i,j; for(i=1;i<=5;i++) { for(j=1;j<=20-i;j++) printf(“ ”); for(j=1;j<=2*i-1;j++) printf(“*”); printf(“n”); } } #include “stdio.h” main(){ int i,j; for(i=1;i<=5;i++) { for(j=1;j<=i-1;j++) printf(“ ”); for(j=1;j<=11-2*i;j++) printf(“*”); printf(“n”); } } #include “stdio.h” main(){ int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(“ ”); for(j=1;j<=2*i-1;j++) printf(“*”); printf(“n”); } for(i=1;i<=3;i++) { for(j=1;j<=i;j++) printf(“ ”); for(j=1;j<=7-2*i;j++) printf(“*”); printf(“n”); } } #include “stdio.h” main(){int i,j,k,m,n,s=0;for(i=0;i<=2;i++) for(j=0;j<=9;j++) for(k=1;k<=9;k++) {m=100*i+10*j+k; n=100*k+10*j+i; if((n>2*m)&&(n<3*m)) { s++; printf(“%d ”,m); if(s%8==0) printf(“n”);} } } 程序的循環(huán)結(jié)構(gòu)-For循環(huán)語句 教材分析 本課使用的教材為《算法與程序設(shè)計》(浙江教育出版社),本節(jié)內(nèi)容為第四章“VB程序設(shè)計初步”中一個重要的知識點(diǎn)。這是對之前學(xué)習(xí)的賦值語句、選擇語句的知識和能力的提升,也是以后學(xué)習(xí)過程、函數(shù)以及利用VB編寫綜合應(yīng)用程序的基礎(chǔ)和前提,起著重要的承前啟后的作用。 循環(huán)結(jié)構(gòu)是程序設(shè)計的三種基本結(jié)構(gòu)之一,是程序設(shè)計的基礎(chǔ)。VB中用For?Next和Do?Loop語句來構(gòu)造循環(huán),并能相互代替。For循環(huán)這部分內(nèi)容分兩次課完成,教學(xué)目標(biāo) (1)知識與技能: a.理解循環(huán)的概念,掌握FOR循環(huán)語句的常見格式和作用; b.理解For循環(huán)語句執(zhí)行過程的幾個步驟,了解各種條件缺省時循環(huán)的執(zhí)行情況; c.學(xué)會分析問題,畫出循環(huán)結(jié)構(gòu)流程框圖,并能根據(jù)流程圖編寫程序。(2)過程與方法: a.通過順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序?qū)φ?,體會循環(huán)語句的特點(diǎn)和優(yōu)越性; b.通過立即窗口測試代碼,理解循環(huán)控制變量初值、終值、步長與循環(huán)次數(shù)的關(guān)系; c.通過對流程圖的分析,理解循環(huán)語句的執(zhí)行過程。(3)情感態(tài)度與價值觀: a.通過對具體問題的解決,使學(xué)生獲得成就感,為今后自主學(xué)習(xí)打下基礎(chǔ); b.通過逐層推進(jìn)的教學(xué)設(shè)計,培養(yǎng)學(xué)生研究探索的精神,激發(fā)學(xué)習(xí)的興趣; c.通過交流評價、教師引導(dǎo),培養(yǎng)學(xué)生養(yǎng)成良好的編程習(xí)慣。 1.教學(xué)重點(diǎn)、難點(diǎn) 重點(diǎn):FOR循環(huán)語句的語句格式及循環(huán)執(zhí)行過程。 難點(diǎn):根據(jù)實際問題,設(shè)計算法,畫出流程圖并編寫程序。 一. 教法 教學(xué)方法:講解法、演示法:多媒體課件講授、配合板書; 任務(wù)驅(qū)動法:從實例入手,先實際后理論。 教學(xué)環(huán)境:多媒體電子網(wǎng)絡(luò)教室 二. 教學(xué)過程 (一)復(fù)習(xí)提問、銜接導(dǎo)入(5’) 1、屏幕顯示:例1:輸出1到10之間的自然數(shù)。 得出:題目中若出現(xiàn)許多有規(guī)律性重復(fù)運(yùn)算,這就需要掌握循環(huán)結(jié)構(gòu)程序設(shè)計方法。 2、明確目標(biāo),引入課題。循環(huán)結(jié)構(gòu)程序的特點(diǎn)是:程序中的一組語句(稱為循環(huán)體)在一定條件下可多次被重復(fù)執(zhí)行,今天就一起來研究第三種程序設(shè)計結(jié)構(gòu)---循環(huán)程序設(shè)計中的FOR-NEXT語句。 (一)啟發(fā)引導(dǎo)、獲取新知(15’) 1、多媒體大屏幕展示課題For循環(huán)的語法格式和流程圖。 For-Next循環(huán)語句的格式: 說明:步長值可以為正數(shù)或者負(fù)數(shù)。 1、教師指導(dǎo)學(xué)生分析For-Next循環(huán)語句在例1程序中的執(zhí)行過程。 ② 分析For-Next循環(huán)語句在實例1程序中的執(zhí)行過程:(如流程圖1) ③ 講解For-Next循環(huán)語句的執(zhí)行過程:(如流程圖2) 3、分析程序2,程序如下所示: 該題中運(yùn)用到了累加器,教師在這里可對累加器的原理進(jìn)行分析。 1、教師歸納 ① 循環(huán)語句的功能: 利用循環(huán)語句,可以實現(xiàn)循環(huán)體內(nèi)的語句反復(fù)執(zhí)行。② 循環(huán)結(jié)構(gòu): 如果程序中含有循環(huán)語句,這種程序結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu)。③ 思考:在For-Next循環(huán)語句中,循環(huán)次數(shù)由什么決定? 循環(huán)的次數(shù)由初值,終值和步長值共同決定。 ④ 關(guān)于For-Next語句,利用立即窗口測試代碼,并補(bǔ)充說明以下幾點(diǎn): 1)關(guān)鍵字For、to、Next 和“=”不能省略不寫。2)初值、終值、步長可以是數(shù)值型常量、變量或表達(dá)式。 3)步長可以是正數(shù),也可以是負(fù)數(shù),當(dāng)步長為1時,可省略“step 1”。 (二)實踐體驗、形成技能(10’) 學(xué)生的智力能力是在練習(xí)中得到發(fā)展和提高的。設(shè)計練習(xí)時,遵循由淺入深的原則,按照分層次的要求,精選習(xí)題, 使學(xué)生加深對本節(jié)課知識的理解,根據(jù)本節(jié)的重難點(diǎn),及時發(fā)現(xiàn)問題,并加以改進(jìn)。在例 1、例2的基礎(chǔ)上,為更好地理解本課內(nèi)容,激發(fā)學(xué)生的創(chuàng)造性思維,設(shè)計了以下幾個例題。 1、屏幕顯示:例3 :編程求1-100之間3的倍數(shù)的和。 該題重點(diǎn)要求學(xué)生能根據(jù)實際情況,確定循環(huán)變量的初值和改變量,啟發(fā)學(xué)生該題循環(huán)變量的初值為 3、變化值為3,得出循環(huán)體、循環(huán)條件。引導(dǎo)學(xué)生畫出程序流程圖后編程,切換到VB,運(yùn)行并調(diào)試程序。該題會有學(xué)生用另一種方法解答,可以引導(dǎo)學(xué)生比較兩種方法的優(yōu)劣性,并引出例4。方法1: 2、屏幕顯示:例4 :編程求1-100之間是3的倍數(shù)或是5的倍數(shù)的和。 該題重點(diǎn)要求學(xué)生能根據(jù)實際情況,確定循環(huán)體的編程情況。經(jīng)過例3兩種方法的講解,部分學(xué)生可能會落入原有的思維模式,他們會利用兩個for循環(huán),先求出3的倍數(shù)的和,然后再求出5的倍數(shù)的和,最后把兩個和相加。這樣做,問題是解決了嗎?如果某個數(shù)既是3的倍數(shù)又是5的倍數(shù)(譬如15),就重復(fù) 加了兩次。怎么解決這個問題?啟發(fā)學(xué)生在例3第2種方法的基礎(chǔ)稍做改動,利用if語句、邏輯或(or)以及求余運(yùn)算符(mod)完成循環(huán)體。 具體操作時,先引導(dǎo)學(xué)生畫出程序流程圖再編程,切換到VB環(huán)境,運(yùn)行并調(diào)試程序。 本環(huán)節(jié)要達(dá)到的目的:一是鞏固For語句在頭腦中的印象;二是利用For語句解決實際問題。 (一)拓展延伸、解答疑難(10’) 這部分的安排主要是給學(xué)有余力的學(xué)生提供一個更高學(xué)習(xí)的平臺,同時對那些學(xué)習(xí)困難的學(xué)生進(jìn)行個別輔導(dǎo)教學(xué),也是對教學(xué)難點(diǎn)的深化,體現(xiàn)了分層教學(xué)的教學(xué)原理。 1、屏幕顯示:例5 :包裝1200個變形金剛,要求是: (1)包裝的規(guī)格分別是:小盒(每盒5個)和大盒(每盒12個);(2)每種規(guī)格的盒數(shù)可任意,但每盒都必須裝滿。 現(xiàn)在有盒子170個,請設(shè)計一個算法,輸出大、小盒子分別有多少個。算法: 設(shè)1200個變形金剛分別裝入X和小盒和Y個大盒,它們必須滿足下面等式: X+Y=170 5*X+12*Y=1200 考慮X、Y值可能的變化范圍:由要求(2)可知一個包裝方案中每種規(guī)格的盒數(shù)是任意的,因此,X、Y的最小值都是0;當(dāng)Y取最小值0時,此時的方程5*X+12*Y=1200 等價于5*X =1200,因此X可取的最大值是240。因此可以指定X為循環(huán)控制變化,其變化范圍是[0,240],Y=170-X,當(dāng)X、Y 滿足等式5*X+12*Y=1200時,Y、X即為所求的大、小盒子數(shù)。 這個題目主要是給學(xué)習(xí)能力強(qiáng)的學(xué)生安排的,因此教師可以先要學(xué)生獨(dú)立思考,適當(dāng)時候給予提示。對這個題目進(jìn)行分析時,教師可以引出枚舉算法的概念,并將其實踐到這個題目中去。 2、這個環(huán)節(jié)中,教師到學(xué)生中進(jìn)行個別輔導(dǎo),可利用廣播教學(xué)或者投影儀對學(xué)生中普遍存在的問題進(jìn)行集體解答。 (一)交流評價、課堂小結(jié)(5’) 開展交流評價,對學(xué)生有激勵、診斷和促進(jìn)作用。學(xué)生通過相互參照比較,能發(fā)現(xiàn)自己的不足和長處,取長補(bǔ)短;教師給學(xué)生交流表達(dá)的機(jī)會,能培養(yǎng)學(xué)生的表達(dá)能力。課堂小結(jié)能在較短的時間內(nèi)幫助學(xué)生回顧本堂課的內(nèi)容,鞏固已學(xué)過的知識。因此,這部分教學(xué)環(huán)節(jié)是必要的,也是非常重要的。 1、選擇兩到三位學(xué)生代表,給大家展示自己的程序,教師可以趁此對程序有問題的學(xué)生進(jìn)行全班解答。 2、有些學(xué)生可能對程序界面進(jìn)行了美化,每個學(xué)生的程序可能有所不同,3、教師對學(xué)生程序中存在的問題進(jìn)行總結(jié)性評價并提出意見。 4、給出課外練習(xí),旨在培養(yǎng)學(xué)生的邏輯思維和獨(dú)立思考并解決問題的能力。請同學(xué)們開展互評和自評并選出完成得最好的同學(xué)。 課外練習(xí)題:例5中,如果大、小盒子總數(shù)不確定,要求輸出所有可能的包裝方案,并輸出該包裝方案中對應(yīng)的盒子總數(shù),如何修改并完善這個程序? 高一數(shù)學(xué)(必修3) 第四課時 循環(huán)結(jié)構(gòu) 【教學(xué)目標(biāo)】 1)知識與技能 學(xué)生能理解循環(huán)結(jié)構(gòu)的概念;把握循環(huán)結(jié)構(gòu)的三要素;能識別和理解循環(huán)結(jié)構(gòu)的框圖以及功能;能運(yùn)用循環(huán)結(jié)構(gòu)設(shè)計程序框圖以解決簡單的問題。 2)過程與方法 通過實例探究與應(yīng)用循環(huán)結(jié)構(gòu),培養(yǎng)學(xué)生的觀察類比,歸納抽象能力;參與運(yùn)用算法思想解決問題的過程,培養(yǎng)學(xué)生嚴(yán)密精確的邏輯思維能力。 3)情感與態(tài)度 通過師生、生生互動的活動過程,培養(yǎng)學(xué)生主動探究、勇于發(fā)現(xiàn)的科學(xué)精神,提高數(shù)學(xué)學(xué)習(xí)的興趣,體驗成功的喜悅。 【教學(xué)重點(diǎn)】 循環(huán)結(jié)構(gòu)的概念、功能、要素、框圖及應(yīng)用。 【教學(xué)難點(diǎn)】 描述和應(yīng)用循環(huán)結(jié)構(gòu)時,三要素的準(zhǔn)確把握和正確表達(dá)。 【教學(xué)方法】 探究啟發(fā)式教學(xué)方法 【教具】 采用多媒體輔助教學(xué) 【教 學(xué) 過 程】 復(fù)習(xí):請同學(xué)們回顧已學(xué)算法的基本結(jié)構(gòu)有哪些?并畫出結(jié)構(gòu)示意圖。 情景:1.視頻(邢慧娜2004萬米長跑金牌) 2.在學(xué)校的萬米長跑測試中,你每跑1圈(400米),會想是否跑完了全程。如果沒有跑完全程,那么又會想離終點(diǎn)還有多遠(yuǎn)。 學(xué)生活動:1)引導(dǎo)分析情景2中關(guān)鍵詞 2)學(xué)生小組討論,然后黑板板書(情景2算法及流程圖)3)教師點(diǎn)評:引出循環(huán)類型、循環(huán)三要素。(建構(gòu)知識) 建構(gòu)知識:循環(huán)結(jié)構(gòu) 1.定義: 注:1)循環(huán)體 2)循環(huán)結(jié)構(gòu)不能是永無止境的“死循環(huán)”,因此,循環(huán)結(jié)構(gòu)中_____________。高一數(shù)學(xué)(必修3) 2.分類: 注: 典型例題 寫出1+2+3+4+5+…+100的算法并畫出流程圖。 變式訓(xùn)練 變1:步驟B更改為: i←i+2 ;則流程圖表示一個什么樣的算法? 變2:步驟A和步驟B交換位置會怎樣?要達(dá)到預(yù)期結(jié)果,應(yīng)做怎樣的修改? 變3:若表示算法1×2×3×···×100,則流程圖應(yīng)如何修改? 練習(xí):寫出求1×3×5×···×99的一個算法,并畫出流程圖。 1變4:步驟A更改為:s?s? ;則流程圖表示一個什么樣的算法? i 思考 若表示算法1? 課堂小結(jié) 作業(yè) 11111????????,如何畫流程圖? 23499100? P14:練習(xí)1(至少兩種形式作答),2 《循環(huán)結(jié)構(gòu)》說課稿 《循環(huán)結(jié)構(gòu)》說課稿 1 一、說教材 1、教學(xué)分析:《神奇的輸出方法——PRINT》,是新版高中信息技術(shù)教科書必修模塊第六章《用程序解決實際問題》中的內(nèi)容。高中階段的程序設(shè)計的學(xué)習(xí)不是為了培養(yǎng)程序設(shè)計人員,而是希望通過程序設(shè)計的平臺讓學(xué)生進(jìn)一步了解電腦解決各種問題的方法,激發(fā)學(xué)生更深入學(xué)習(xí)電腦基本特性的興趣;是學(xué)生解決問題的思維鍛煉的途徑;同時讓年輕一代理解我們真正應(yīng)該如何利用電腦。 2、教學(xué)目標(biāo):學(xué)習(xí)PRINT方法的基本語法,能夠靈活運(yùn)用循環(huán)結(jié)構(gòu)實現(xiàn)PRINT輸出的多樣化,學(xué)習(xí)循環(huán)結(jié)構(gòu)的嵌套組合。 認(rèn)知目標(biāo):理解循環(huán)結(jié)構(gòu)解決問題的思考方式;體驗PRINT方法與LABEL控件輸出的區(qū)別,了解循環(huán)變量在雙重循環(huán)中的變化規(guī)律。 能力目標(biāo):激發(fā)學(xué)生對程序的學(xué)習(xí)興趣;培養(yǎng)學(xué)生的基本電腦應(yīng)用能力;提高學(xué)生對電腦所起作用的認(rèn)識。 3、教學(xué)重點(diǎn):Print方法中換行語句的使用;循環(huán)變量在循環(huán)體中的引用。 4、教學(xué)難點(diǎn):循環(huán)結(jié)構(gòu)的嵌套使用;循環(huán)變量在雙重循環(huán)中的變化規(guī)律。 5、教學(xué)準(zhǔn)備:PowerPoint課件、多媒體教室。 6、課時:1課時。 二、說教法 教學(xué)方法:演示法、任務(wù)驅(qū)動法和巡堂輔導(dǎo)法 “教必有法,而教無定法”,只要方法適當(dāng),必定有效。信息技術(shù)是一門實踐性很強(qiáng)的學(xué)科,對很多學(xué)生來說,信息技術(shù)課就是操作電腦課,要聽教師講理論課,沒興趣,坐不住,所以我首先采用對比法、提問法,對學(xué)生學(xué)習(xí)過的輸出控件的分析,提出該控件的不足,且提問有沒有其他輸出的辦法。讓學(xué)生一上課就集中注意力。另外,在講授本章的內(nèi)容過程中,精心安排了層層遞進(jìn)的例題,通過連貫的提問法逐步深入講解PRINT方法和復(fù)雜循環(huán)結(jié)構(gòu)的使用。最后通過多個程序任務(wù)的驅(qū)動和教師巡堂輔導(dǎo)下,使學(xué)生進(jìn)一步練習(xí)和強(qiáng)化PRINT方法和循環(huán)結(jié)構(gòu)的語法和實際運(yùn)用,進(jìn)而培養(yǎng)學(xué)生的自學(xué)能力與動手實踐能力。 三、說學(xué)法 在新課程理念下,課堂是學(xué)生的,學(xué)生為主體,教師為主導(dǎo)。在課堂上通過問題的提出引導(dǎo)學(xué)生思考如何運(yùn)用循環(huán)解決問題,學(xué)生在課堂上應(yīng)積極主動,自主、探究,發(fā)現(xiàn)問題,解決問題,體驗電腦解決問題的思路和方法。 四、說教學(xué)過程 1、課前準(zhǔn)備 (1)為了能順利導(dǎo)入新課,通過對原有知識的再提高,設(shè)置新的問題導(dǎo)入由于Label控件的靈活性不夠,所以我們學(xué)習(xí)VB程序中另外一種截然不同的輸出方法。 (2)為了能讓學(xué)生順利進(jìn)行操作練習(xí),必須確保所有學(xué)生機(jī)正常使用; (3)為了使演示能順利進(jìn)行,確保教師機(jī)正常運(yùn)作。 2、課堂教學(xué) (1)導(dǎo)入新課。一個完整的程序作品包括“數(shù)據(jù)輸入”部分,“數(shù)據(jù)處理”部分和“數(shù)據(jù)輸出”部分。在VB程序中我們經(jīng)常使用Label控件來實現(xiàn)數(shù)據(jù)的輸出,Label控件能很方便的對輸出的文字的外觀進(jìn)行美化,但是如果想用Label控件輸出各種符號、文字組成的圖案時,我們可以發(fā)現(xiàn)Label控件的靈活性就遠(yuǎn)遠(yuǎn)不夠了。所以今天我們學(xué)習(xí)VB程序中的另外一種截然不同的輸出方式——Print方法。 (2)通過演示文稿中三個例題的講解,配合板書與相關(guān)問題,讓學(xué)生了解PRINT方法的語法特點(diǎn),通過對例題的比較發(fā)現(xiàn)循環(huán)體和循環(huán)變量在循環(huán)結(jié)構(gòu)中的作用。由此理解根據(jù)電腦特點(diǎn)解決問題的思路算法。 (3)設(shè)置程序任務(wù) 通過適當(dāng)難度的.程序任務(wù)的提出,要求學(xué)生在了解學(xué)習(xí)循環(huán)結(jié)構(gòu)解決問題的基礎(chǔ)上,運(yùn)用PRINT方法實現(xiàn)輸出文字的有規(guī)律排列??梢越o出一些提示,讓學(xué)生獨(dú)立或者同桌一組討論設(shè)計相關(guān)程序。以此同時,老師要到課堂中進(jìn)行巡堂輔導(dǎo)。 (4)老師的巡堂輔導(dǎo) 老師的巡堂輔導(dǎo)是非常重要的,在學(xué)生進(jìn)行操作練習(xí)的過程中,肯定會碰到各種各樣的問題,老師的巡堂輔導(dǎo)能及時的幫助他們解決;能及時掌握學(xué)生反饋的各種信息,為下一步的問題反饋?zhàn)鰷?zhǔn)備;還可以對不同程度的學(xué)生進(jìn)行個性化輔導(dǎo)。 (5)反饋學(xué)生問題 反饋學(xué)生出現(xiàn)的各種問題,及時解決,使學(xué)生所學(xué)知識得到進(jìn)一步的鞏固。 (6)總結(jié) 提出程序?qū)W習(xí)的意義所在,進(jìn)一步表明程序?qū)W習(xí)的重要意,提高學(xué)生學(xué)習(xí)的興趣。 五、課后總結(jié) Print方法作為VB中數(shù)據(jù)輸出的重要方式之一,它能夠靈活有效的控制輸出字符的排列方式,這一點(diǎn)正是Label控件所欠缺的。 《循環(huán)結(jié)構(gòu)》說課稿 2 一、教材分析 (一) 教材地位 《循環(huán)結(jié)構(gòu)》是人民教育出版社課程教材研究所編著的普通高中課程標(biāo)準(zhǔn)試驗教科書數(shù)學(xué)(必修3)中§1.1.2的內(nèi)容. 循環(huán)結(jié)構(gòu)是算法三大基本邏輯結(jié)構(gòu)中最靈活,內(nèi)涵最豐富的一種結(jié)構(gòu),廣泛存在于許多著名算法設(shè)計中,比如二分法,歐幾里德算法,秦九韶算法等,且循環(huán)結(jié)構(gòu)是學(xué)習(xí)循環(huán)語句的基礎(chǔ),循環(huán)結(jié)構(gòu)中蘊(yùn)含的“遞推”思想為必修五數(shù)列的學(xué)習(xí)奠定了基礎(chǔ),是整個算法教學(xué)的重點(diǎn)與難點(diǎn),同時也是高考關(guān)注的重點(diǎn). 本節(jié)課是在學(xué)習(xí)了順序結(jié)構(gòu),條件結(jié)構(gòu)的基礎(chǔ)上進(jìn)行的,安排1課時. (二) 教學(xué)目標(biāo) (1) 知識與技能 ①理解循環(huán)結(jié)構(gòu)概念; ②把握循環(huán)三要素:循環(huán)變量賦初值、循環(huán)體、循環(huán)的終止條件; ③能識別和理解循環(huán)結(jié)構(gòu)的框圖以及功能; ④能運(yùn)用循環(huán)結(jié)構(gòu)設(shè)計程序框圖解決一些問題. (2) 過程與方法 通過由實例對循環(huán)結(jié)構(gòu)的探究與應(yīng)用過程,培養(yǎng)學(xué)生的觀察類比,歸納抽象能力;參與運(yùn)用算法思想解決問題的過程,逐步形成算法分析,算法設(shè)計到算法表示的程序化算法思想. (3) 情感、態(tài)度與價值觀 感受算法思想在解決具體問題中的意義,提高算法素養(yǎng);經(jīng)歷體驗發(fā)現(xiàn)、創(chuàng)造和運(yùn)用的歷程與樂趣,體驗成功的喜悅;培養(yǎng)學(xué)生形式化的表達(dá)能力,構(gòu)造性解決問題的能力,以及程序化的思想意識. (三) 重難點(diǎn)分析 由于循環(huán)變量賦初值、循環(huán)體、循環(huán)的終止條件是在順序結(jié)構(gòu)和條件結(jié)構(gòu)未出現(xiàn)的概念,同時也是掌握循環(huán)結(jié)構(gòu)的關(guān)鍵,由此確立節(jié)課的重難點(diǎn)是: 重點(diǎn):循環(huán)結(jié)構(gòu)的三要素. 難點(diǎn):循環(huán)三要素的確定以及循環(huán)執(zhí)行時變量的變化規(guī)律. 二、學(xué)情分析 學(xué)生已經(jīng)學(xué)習(xí)了算法的概念、順序結(jié)構(gòu)、條件結(jié)構(gòu)及簡單的賦值問題.高一學(xué)生形象思維、感性認(rèn)識較強(qiáng),理性思維、抽象認(rèn)識能力還很薄弱,因此教學(xué)中選擇學(xué)生熟悉的,易懂的實例引入,通過對例子的分析,使學(xué)生逐步經(jīng)歷循環(huán)結(jié)構(gòu)設(shè)計的全過程,學(xué)會有條理的思考問題,表達(dá)循環(huán)結(jié)構(gòu),并整理成程序框圖. 三、教法分析 鑒于本節(jié)課抽象程度較高,難度較大.故遵循引導(dǎo)發(fā)現(xiàn),循序漸進(jìn)的思路,采用問題探究式教學(xué).在教學(xué)過程中通過不斷地提出問題,促進(jìn)學(xué)生深入思考.貫穿本節(jié)課的主要問題是:你能在社會生活和學(xué)習(xí)中舉出循環(huán)現(xiàn)象的例子嗎?你能從循環(huán)現(xiàn)象抽象出循環(huán)結(jié)構(gòu)概念嗎?1n n s s n -=?中的S n 和S n-1能否用一個量表示?如何表達(dá)2,3,100n =?算法中s s i =?與1i i =+ “等號”與“變量”的涵義等同于數(shù) 學(xué)中的相應(yīng)涵義嗎?循環(huán)結(jié)構(gòu)是通過哪些量和式將一個很長的順序結(jié)構(gòu)簡化為一個精簡的結(jié)構(gòu)?當(dāng)型循環(huán)結(jié)構(gòu)與直到型循環(huán)結(jié)構(gòu)框有何不同?如何轉(zhuǎn)化?通過以上問題的解決使學(xué)生有效地掌握本節(jié)課的內(nèi)容。 教學(xué)內(nèi)容:循環(huán)結(jié)構(gòu)程序設(shè)計 教學(xué)課時:2課時 【教學(xué)目的】 1、循環(huán)的基本思想 2、while、do-while和for 3、三種語句特點(diǎn) 4、孰能生巧 【教學(xué)重點(diǎn)】 三種循環(huán)語句的使用?!窘虒W(xué)難點(diǎn)】 三種循環(huán)語句區(qū)別。【教學(xué)方法】 講解、演示、練習(xí) 第一課時 一、循環(huán)的基本思想 1、循環(huán)就是找規(guī)律,學(xué)習(xí)分析問題和解決問題的能力 2、講解案例灰太狼抓羊問題 3、分析抓羊規(guī)律,引出循環(huán)概念 二、while、do-while和for 1、分析灰太狼抓羊問題,提出解題思路 (一)設(shè)灰太狼每次抓羊i只 (二)設(shè)灰太狼一共抓到羊sum只 (三)設(shè)灰太狼每天抓羊后籠子里有羊sum + i只 其中:i為循環(huán)變量,sum + i為循環(huán)體 2、介紹while循環(huán)的一般形式 3、一邊分析一邊編程 (一)主函數(shù) (二)定義變量 (三)運(yùn)算過程 (四)輸出結(jié)果 4、編寫循環(huán)程序必須注意的幾個問題 (一)循環(huán)控制變量必須有正確的初值 (二)在循環(huán)體內(nèi)應(yīng)有改變其值的語句 (三)其值的改變應(yīng)使得表達(dá)式的值最終趨向于零(循環(huán)結(jié)束條件),否則將形成死循環(huán) 5、引出do-while循環(huán) 6、介紹do-while循環(huán)的一般形式 7、使用do-while循環(huán)解決灰太狼抓羊問題 8、說明:while與do-while相似點(diǎn) 9、引出for循環(huán) 10、介紹for循環(huán)的一般形式 11、使用for循環(huán)解決灰太狼抓羊問題 12、說明:for循環(huán)中三個表達(dá)式使用方法 第二課時 一、三種語句特點(diǎn) 1、while與do-while的區(qū)別 2、兩語句與for的區(qū)別 二、孰能生巧 1、提出問題姜太公釣魚 2、分析題目中可用循環(huán)解決的規(guī)律問題 3、分析姜太公釣魚問題,提出解題思路 (一)設(shè)太公每次釣魚數(shù)量n = n + 2條 (二)設(shè)一共釣到魚的數(shù)量sum條 (三)設(shè)每天釣魚后魚的數(shù)量sum + n條 4、一邊分析一邊編程 (一)主函數(shù) (二)定義變量 (三)運(yùn)算過程 (四)輸出結(jié)果 5、課程小結(jié) 課后練習(xí) 1、概述三種循環(huán)語句while、do-while和for之間的區(qū)別與聯(lián)系。 2、計算無理數(shù)e的值,直到1/n!<10-5(P44,第4題)。 3、輸入任意字符串,把字符串中小寫字母轉(zhuǎn)換成大寫字母,并輸出結(jié)果(P44, 第3題)。 4、輸入5個整數(shù),計算其中正數(shù)的和(P47,1) 5、編程顯示100以內(nèi)所有能被3和7整除的整數(shù)(P47,6、輸出用戶輸入的兩個整數(shù)之間的所有偶數(shù)。 7、編程求1!+2!+3!+…+n!的和。 2)。第二篇:FOR循環(huán)結(jié)構(gòu)
第三篇:循環(huán)結(jié)構(gòu)教案
第四篇:《循環(huán)結(jié)構(gòu)》說課稿
第五篇:循環(huán)結(jié)構(gòu)程序設(shè)計教案