第一篇:C語言幾種循環(huán)的比較和文件操作小結(jié)
C語言幾種循環(huán)的比較和文件操作小結(jié)
概括起來,C語言有四種循環(huán):goto語句構(gòu)成的循環(huán)、while循環(huán)、do-while循環(huán)和for循環(huán)。
四種循環(huán)的比較:
四種循環(huán)都可以用來處理同一個問題,一般可以互相代替。但一般不提倡用goto型循環(huán),不但因為其蹩腳,我們也極力建議不要使用goto語句,盡量現(xiàn)金網(wǎng)96y.org使用其他語句代替。
while和do-while循環(huán),循環(huán)體中應(yīng)包括使循環(huán)趨于結(jié)束的語句。
for語句功能最強,也最常用。
用while和do-while循環(huán)時,循環(huán)變量初始化的操作應(yīng)在while和do-while語句之前完成,而for語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化。
總結(jié):for循環(huán)是最常用的循環(huán),它的功能強大,可以代替其他循環(huán)。
C系統(tǒng)把文件當(dāng)作一個流,按字節(jié)進行處理。
C文件按編碼方式分為二進制文件和ASCII文件。
C語言中,用文件指針標(biāo)識文件,當(dāng)一個文件被打開時,可取得該文件指針。
文件在讀寫之前必須打開,讀寫結(jié)束必須關(guān)閉。
文件可按只讀、只寫、讀寫、追加四種操作方式打開,同時還必須指定文件的類型是二進制文件還是文本文件。
文件可按字節(jié),字符串,數(shù)據(jù)塊為單位讀寫,文件也可按指定的格式進行讀寫。
文件內(nèi)部的位置指針博彩娛樂棋牌q07i5.org可指示當(dāng)前的讀寫位置,移動該指針可以對文件實現(xiàn)隨機讀寫。
第二篇:文件操作通用格式
文件操作三步驟:
打開文件:Open “文件名” for input/Output/append as #文件號
讀取或者寫入:主要針對順序文件的命令.關(guān)閉文件:close 文件號 寫文件的通用格式:
Open “文件名” for Output/append as #文件號
Print/Write#文件號,要寫入的內(nèi)容
Close #1
兩個注意事項:
? print后面表達式的分號和逗號
? Print和Write的區(qū)別
讀文件的通用格式:
1)打開用于讀的文件格式固定:
Open “文件名”forinput as #文件號
2)讀的語句分三種情況:
①若讀的內(nèi)容是有固定個數(shù)的數(shù)值,則讀的時候聯(lián)合使用For循環(huán)語句讀,通用格式為:
Fori=起始值 to 終止值
Input #文件號,數(shù)組變量
nexti
②若讀的內(nèi)容是字符串,則讀的時候要聯(lián)合使用Do循環(huán)語句讀
i若是按變量讀(所謂按變量讀,對于順序文件來說,在文檔中碰到逗號或空格則認為一個變量的內(nèi)容結(jié)束),通用格式為:
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
第三篇:循環(huán)知識小結(jié)
循環(huán)知識小結(jié)
一、有關(guān)循環(huán)的語法
1.while語句 2.do~while語句 3.for語句 4.break語句 5.continue語句
? 循環(huán)方式
? while語句和do~while語句多采用標(biāo)記式循環(huán)
? 用于循環(huán)次數(shù)不定的情況
? for語句更方便對于循環(huán)次數(shù)確定的情況
?
循環(huán)結(jié)構(gòu)
? for語句和while語句先判斷循環(huán)控制條件,后執(zhí)行循環(huán)體
? 可能一次也不執(zhí)行循環(huán)體
? do~while語句是先執(zhí)行循環(huán)體,后進行循環(huán)控制條件的判斷
? do~while語句至少執(zhí)行一次循環(huán)體
? do~while語句更適合于第一次循環(huán)肯定執(zhí)行的場合
? 實現(xiàn)功能
? do~while和while語句只有一個表達式,用于控制循環(huán)是否進行 ? for語句有三個表達式
? 可以控制循環(huán)是否進行,并能為循環(huán)變量賦初值及不斷修改循環(huán)變量的值 ? for語句比while和do~while語句功能更強,更靈活
? 語句形式
? 初始值
? while、do~while循環(huán)時,循環(huán)變量的初始值操作應(yīng)放在while和do~while
語句之前完成
? for語句通常在表達式1中實現(xiàn)循環(huán)控制變量的初始化
? while和for表達式的括號后面沒有“;” ? do~while表達式的括號后面有“;”
? 循環(huán)語句的選用原則
? 循環(huán)次數(shù)是否確定
? 循環(huán)次數(shù)已知,一般用for語句
? 循環(huán)次數(shù)由循環(huán)體的執(zhí)行情況來確定,一般采用while語句或do~while語句
? 循環(huán)體是否一定執(zhí)行
? 循環(huán)體至少要執(zhí)行一次時,采用do~while語句
? 循環(huán)體可能一次也不執(zhí)行,則選用while語句或for語句
二、循環(huán)語句的比較
三、關(guān)于嵌套循環(huán)
1.在嵌套的各層循環(huán)中,應(yīng)使用復(fù)合語句保證邏輯上的正確性 2.嵌套循環(huán)的內(nèi)層和外層的循環(huán)控制變量不應(yīng)同名,以免造成混亂 3.嵌套循環(huán)最好采用右縮進格式書寫,以保證層次的清晰性
4.循環(huán)嵌套不能交叉,即在一個循環(huán)體內(nèi)必須完整地包含另一個循環(huán)
5.在多層循環(huán)中,應(yīng)將最忙(循環(huán)次數(shù)最多)的循環(huán)放在最內(nèi)層,以減少CPU切入循環(huán)的次數(shù)
1、國王的許諾。相傳國際象棋是古印度舍罕王的宰相達依爾發(fā)明的。舍罕王十分喜歡象棋,決定讓
四、有關(guān)循環(huán)應(yīng)用的討論
宰相自己選擇何種賞賜。這位聰明的宰相指著8×8共64格的象棋盤說:陛下,請您賞給我一些下麥子吧,就在棋盤的第1格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完64個格子,我就感恩不盡了。舍罕王讓人扛來一袋麥子,他要兌現(xiàn)他的許諾。請問:國王他能兌現(xiàn)他的許諾嗎?請編程計算舍罕王共要多少麥子賞賜他的宰相,這些麥子合多少立方米(已知1立方米麥子約為1.42e8粒)?
問題分析:這是一個典型的循環(huán)次數(shù)已知的等比數(shù)列求和問題。第1格放1粒,第2格放2粒,第3格放4=22?!趇格放2i-1粒。所以,總粒數(shù)為sum=1+2+22+23+……+263。對于這樣的問題,我們采取的策略是每次加一個累加項,用循環(huán)語句重復(fù)執(zhí)行64次累加運算,即可求出累加和sum。在累加求和問題中,尋找累加項的構(gòu)成規(guī)律是問題求解的關(guān)鍵。一般地,尋找累加項構(gòu)成規(guī)律有兩種方法:一種是尋找統(tǒng)一的累加項表示規(guī)律,即用一個通式來表示累加項;另一種是尋找前后項之間的統(tǒng)一的變化規(guī)律,即利用前項得到后項的表示。
該題用第一種方法,可得累加項的通式為term=2n-1,即term=pow(2,n-1),n從1變化到64,即從第一項開始計算累加和,所以有sum=sum+term,sum的初始值為0。因此得源代碼如下:
# include
# include
以上程序運行的結(jié)果為:
這種數(shù)值如此龐大,是舍罕王絕對沒有預(yù)料到的,它相當(dāng)于全世界若干世紀(jì)的全部小麥,看來舍罕王是無法兌現(xiàn)自己的諾言了!
2、馬克思手稿中的數(shù)學(xué)問題。馬克思手稿中有一道趣味數(shù)學(xué)題:有30個人,其中有男人、女人和小孩,在一家飯館里吃飯共花了30先令,每個男從各花3先令,每個女人各花2先令,每個小孩各花1先令,問男人、女人和小孩各有幾個人?
問題分析:設(shè)男人、女人和小孩各x、y、z人,按題目要求可得到下面的方程: x+y+z=30 3x+2y+z=50 兩個方程有三個未知數(shù),因此這是一個不定方程,有多組解,用代數(shù)方法很難求解,一般采用“窮舉法”求解該類問題。所以“窮舉法”(也稱“枚舉法”)就是將所有可能的方案都逐一測試,從中找出符合指定要求的答案。如果由人工來進行這樣的求解過程,工作量不可想象,而由計算機來完成卻十分簡單。窮舉法是計算機程序設(shè)計中最簡單、最常用的一種方法,它充分利用了計算機處理速度高的特性。使用窮舉
法的關(guān)鍵是要確定正確的窮舉范圍,過分擴大會導(dǎo)致程序運行效率的降低,過分縮小會遺漏正確的結(jié)果而導(dǎo)致錯誤。
方法一 采用三重循環(huán)窮舉x、y、z的全部可能的組合。源代碼如下:
# include
方法2 改進算法。
# include
3、編程計算一元二次方程ax2+bx+c=0的根,a,b,c由鍵盤輸入,其中a≠0。程序設(shè)計時,根據(jù)一元二次方程求根公式把所有的可能考慮進來,設(shè)計算法如下: # include
{ printf(“不是一元二次方程n”);
exit(0);
//終止整個程序的執(zhí)行,強制返回操作系統(tǒng)
} disc=b*b-4*a*c;if(fabs(disc)<=EPS)
//實數(shù)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(“該方程有兩個共軛復(fù)根:n”);
printf(“x1=%.2f+%.2fin”,p,q);
printf(“x2=%.2f-%.2fin”,p,q);
} } } 程序運行的結(jié)果測試如下: 測試1:測試2:測試3:
測試4:
補充說明: 1)函數(shù)exit()其作用是終止整個程序的執(zhí)行,強制返回操作系統(tǒng)。和goto,break,continue等控制語句類似,可以用于控制程序的流程。當(dāng)程序執(zhí)行的必需條件不能滿足時,常用exit()函數(shù)終止程序的執(zhí)行。調(diào)用該函數(shù)需要包含頭文件
exit(code);參數(shù)code為int型。當(dāng)code值為0或為宏常量EXIT_SUCCESS時,表示程序正常退出;當(dāng)code值為非0或為宏常量EXIT_FAILURE,表示程序出現(xiàn)某種錯誤后退出。
2)實數(shù)不能直接和0比較相等與否
本例中由于a是用戶輸入的原始數(shù)據(jù),不存在計算誤差,因此a與0的比較也可以用a==0代替。但因disc變量是經(jīng)過計算得到的浮點數(shù),而絕大多數(shù)計算機中表示的浮點數(shù)都只是它們在數(shù)學(xué)上表示的數(shù)據(jù)的近似值,因此disc與0的比較不能用disc==0來代替,必須用fabs(disc)<=EPS表示。
3)有關(guān)實型數(shù)據(jù)的輸入格式 實型變量若定義為float類型,則在用scanf()函數(shù)輸入時應(yīng)用%f格式;若定義為double類型,則應(yīng)用%lf格式輸入。實際從鍵盤輸入的數(shù)據(jù)可以是整數(shù)、小數(shù)或指數(shù)形式,存入變量對應(yīng)的存儲空間均為指數(shù)形式。在C中所有實型常量的類型默認為double類型,若將一個實型常量賦值給float型變量時,系統(tǒng)會出現(xiàn)警告,提醒用戶由于兩種類型的有效數(shù)字位數(shù)不同,容易產(chǎn)生精度損失問題,如果所處理的數(shù)據(jù)有效數(shù)字位數(shù)在7位以內(nèi),此警告可忽略。
4、從鍵盤輸入一個正整數(shù),編程判斷它是否是素數(shù)。若是素數(shù),輸出“Yes!”,否則輸出“No!”
問題分析:所謂“素數(shù)”即質(zhì)數(shù),是只能被1和本身整除的數(shù)。所以判素數(shù)的方法:把m作為被除數(shù),窮舉2~m-1之間的數(shù)作為除數(shù),若其中有一個能整除,即可確定m不是素數(shù),否則是素數(shù)。事實上,根本用不著除那么多次,用數(shù)學(xué)的方法可以證明:只需要用2~m之間的整數(shù)去除m,即可得到正確的判定結(jié)果。
方法一 用goto語句實現(xiàn)的程序如下:
# include
{ printf(“%d不是素數(shù)!n”,m);
goto end;
} } printf(“%d是素數(shù)!n”,m);end: printf(“程序結(jié)束!n”);} 方法二
用break語句實現(xiàn)的程序如下:
# include
# include
if(m%i==0)
break;if(i>k)
printf(“%d是素數(shù)!n”,m);else
printf(“%d不是素數(shù)!n”,m);} 分析:goto語句可以控制流程跳轉(zhuǎn)到程序中任意某個指定的語句處去執(zhí)行,而break語句的作用是終止整個循環(huán)的執(zhí)行,從循環(huán)體內(nèi)中途退出,接著去執(zhí)行循環(huán)語句之后的第一條語句。break語句的使用使循環(huán)的控制更靈活了。使用break語句的副作用是它會使循環(huán)體本身形成兩個出口,同goto語句相比,只不過break語句跳轉(zhuǎn)的距離和方向受到了嚴格的限制,而不像goto語句那樣可以向任意方向跳轉(zhuǎn)。因此,無論使用goto語句還是break語句,都不是一種好的選擇,所以應(yīng)盡量少用或不用它們。很多情況下,可以采用標(biāo)志變量并加強循環(huán)測試的方法是完全可以避免使用break語句的。方法三 通過設(shè)置標(biāo)志變量并加強循環(huán)測試的方法實現(xiàn)程序如下:
# include
if(m%i==0)
flag=0;if(flag)
printf(“%d是素數(shù)!n”,m);else
printf(“%d不是素數(shù)!n”,m);} 結(jié)論:從程序的可讀性方面看,方法三比方法一和方法二都好!
5、從鍵盤輸入一個正整數(shù)m,若m不是素數(shù),則打印其所有因子;否則,打印“沒有因子,是素數(shù)!”
問題分析:能被m整除的數(shù)i就是m的因子,因此當(dāng)m%i==0時,不退出循環(huán)而打印當(dāng)時的i值即可。為了得到m的所有因子,循環(huán)變量i應(yīng)從2一直變化到m-1,即無論m是否是素數(shù)都要檢驗所有的i值。
# include
} printf(“請從鍵盤輸入一個正整數(shù):”);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是素數(shù),沒有因子!n”,m);
五、有關(guān)getchar()、getche()和getch()的討論
? getchar()函數(shù)采用緩沖輸入方式,即輸入字符先被放到緩沖隊列中,直到鍵入回車鍵時才返回,getcahr()每次從輸入緩沖隊列中讀取第一個字符進行相應(yīng)的處理。
? getch()函數(shù)在擊鍵之后立即返回,無需輸入回車鍵,且不向屏幕回顯鍵入的字符。? getche()函數(shù)功能同getch()函數(shù),只是前者要向屏幕回顯鍵入的字符。? getch()和getche()是Turbo C特有的庫函數(shù),在頭文件conio.h中定義。
例1:從鍵盤輸入一個班學(xué)生(人數(shù)不確定)一門課程的五分制成績,編程要求每輸入一個五分成績,就顯示其所在的分數(shù)段,同時,統(tǒng)計并打印每種成績的人數(shù)。
問題分析:對于這類輸入數(shù)據(jù)個數(shù)不確定的問題,常常采用輸入一個特殊的數(shù)作為程序判斷循環(huán)結(jié)束標(biāo)志的方法。例如,輸入百分制成績時,用負數(shù)作為輸入結(jié)束的標(biāo)志,輸入五分制成績里,則可用一個特殊的符號作為輸入結(jié)束的標(biāo)志。
程序如下:
# include
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(“統(tǒng)計結(jié)果: A: %d, B: %d, C:%d, D:%d, E:%dn”,aCount,bCount,cCount,dCount,eCount);運行結(jié)果如下:
測試1:
問題:只有輸入#并回車才能真正結(jié)束程序,#沒有直到預(yù)期的目的。測試2:
問題:以回車或空格作為每個等級的分隔符,統(tǒng)計結(jié)果雖然正確,但都會提示出錯信息,解決方法一:在switch語句中增加一個case分支:
case ' ': case 'n': break;解決方法二:將接收字符的操作改用scanf函數(shù)實現(xiàn),并在%c格式前增加一個空格,將前面輸入數(shù)據(jù)輸入時存于緩沖區(qū)的回車符讀入,避免被后面的字符型變量作為有效字符讀入。scanf(“ %c”,&grade);例2:設(shè)計一個簡單的計算器程序,要求用戶可以連續(xù)做多次算術(shù)運算,每次運算結(jié)束后,程序都會給出提示: Do you want to continue(Y /N or y/n)? 如果用戶輸入Y或y時,程序繼續(xù)執(zhí)行其他運算,否則退出程序。程序如下:
# include
} 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(“除數(shù)不能為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(“程序結(jié)束!n”);問題:測試不能得到預(yù)期的結(jié)果,原因在于函數(shù)getchar的行緩沖問題導(dǎo)致getchar()把用戶輸入表達最后的回車符作為其讀入字符。
解決辦法:將語句reply=getchar();改為reply=getch();或reply=getche();或scanf(“ %c”,&reply);都可以。
六、結(jié)構(gòu)化程序設(shè)計的核心思想
結(jié)構(gòu)化程序設(shè)計是一種進行程序設(shè)計的原則和方法,按照這種原則和方法設(shè)計的程序具有結(jié)構(gòu)清晰、容易閱讀、容易修改、容易驗證等特點。因此,人們把“結(jié)構(gòu)清晰、容易閱讀、容易修改、容易驗證”作為衡量程序質(zhì)量的首要條件。也就是說,所謂“好”的程序是指“好結(jié)構(gòu)”的程序,一旦效率與“好結(jié)構(gòu)”發(fā)生矛盾時,那么寧可在可容忍的范圍內(nèi)降低效率,也要確保好的結(jié)構(gòu)。
結(jié)構(gòu)化程序設(shè)計的基本核心思想歸納起來為以下3點:
(1)采用順序、選擇、循環(huán)三種基本結(jié)構(gòu)作為程序設(shè)計的基本單元。
(2)盡量不要使用多于一個的goto語句標(biāo)號,同時只允許在一個“單入口單出口”的模塊內(nèi)用goto語句向前跳轉(zhuǎn),不允許回跳。
(3)采用“自頂向下、逐步求精”和模塊化方法進行結(jié)構(gòu)化程序設(shè)計。
七、循環(huán)的應(yīng)用
(一)遞推算法
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.編程計算分數(shù)數(shù)列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次落地時共經(jīng)過的路程及第10次落地后反彈的高度。10.猴子吃桃問題。11.求∏的近似值。12.求Fibonacci數(shù)列。
(二)窮舉算法
1.請編程判斷一個正整數(shù)m(m>=3)是否是素數(shù)。
2.編程實現(xiàn)從鍵盤上輸入整數(shù)m和k,輸出大于且緊靠m的k個素數(shù)。3.請編程找出1至99之間的全部同構(gòu)數(shù)。所謂同構(gòu)數(shù)是這樣的一組數(shù):它出現(xiàn)在它平方數(shù)的右邊。(例如:4是25右邊的數(shù),25是625右邊的數(shù),5和25都是同構(gòu)數(shù)。)5.輸入兩個正整數(shù),求其最大公約數(shù)和最小公倍數(shù)。
6.輸出所有的水仙花數(shù)。所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。7.從鍵盤輸入任意一個整數(shù),編程計算該整數(shù)各位數(shù)字的累加和(忽略整數(shù)前的正負號)。
8.韓信點兵。韓信有一隊兵,他想知道有多少人,便讓士兵排隊反報數(shù)。按從1到5報數(shù),最末一個士兵報的數(shù)為1;按從1到6報數(shù),最末一個士兵報的數(shù)為5;按從1到7報數(shù),最末一個士兵報的數(shù)為4;最后再按從1到11報數(shù),最末一個士兵報的數(shù)為10。編程計算韓信一共有多少士兵?
[提示:設(shè)兵數(shù)為x,則按題意x應(yīng)滿足以下關(guān)系:
x%5==1&&x%6==5&&x%7==4&&x%11==10 用窮舉法對x從1開始試驗,可得結(jié)果。
] 9.雞兔同籠,共有98個頭,386只腳,編程求雞、兔各多少只?
[提示:設(shè)雞數(shù)為x,兔數(shù)為y,根據(jù)題意有x+y=98,2x+4y=386,采用窮舉法,x從1變化到97,y取98-x,如果x,y同時滿足條件2x+4y=386,則打印x,y的值。] 10.百錢買百雞問題。取自《張丘建算經(jīng)》:“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?”
[提示:設(shè)公雞、母雞、小雞數(shù)各為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循環(huán)說課稿
C語言FOR循環(huán)說課稿
各位評委老師上午好,我今天說課的內(nèi)容是“FOR循環(huán)”(板書),下面我將從教材的地位及作用、學(xué)生學(xué)情、教學(xué)目標(biāo)、教學(xué)重難點、教法、學(xué)法、教學(xué)過程、教學(xué)效果的預(yù)測與反思這八個方面開始本次的說課。
教材的地位及作用:
C語言程序設(shè)計是中職學(xué)校計算機專業(yè)的一門重要的課程,該課程旨在培養(yǎng)學(xué)生嚴謹?shù)某绦蛟O(shè)計思想、靈活的邏輯思維及較強的動手能力,是其他專業(yè)課程學(xué)習(xí)的基礎(chǔ)。
該課程可以分為四大模塊,分別是C基本概念、三種基本程序設(shè)計結(jié)構(gòu)、數(shù)組與指針、函數(shù)。三種基本程序設(shè)計結(jié)構(gòu)分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),三種結(jié)構(gòu)中循環(huán)結(jié)構(gòu)是重點,并且也是較難的一種,而循環(huán)中for循環(huán)是程序中運用最多的。在學(xué)習(xí)本節(jié)內(nèi)容之前已經(jīng)學(xué)習(xí)了順序結(jié)構(gòu)和選擇結(jié)構(gòu),學(xué)生已經(jīng)有了一定的結(jié)構(gòu)化程序設(shè)計思想,這為本節(jié)課的學(xué)習(xí)起到了一個很好的鋪墊作用。同時for循環(huán)作為循環(huán)結(jié)構(gòu)的第一課時,是學(xué)習(xí)循環(huán)結(jié)構(gòu)的基礎(chǔ),同時也為即將學(xué)習(xí)的while循環(huán)和do-while 循環(huán)以及多重循環(huán)做準(zhǔn)備,因此本節(jié)課的學(xué)習(xí)在本課程中具有舉足輕重的地位,起著承上啟下的作用。
學(xué)生學(xué)情:
對教材有了一定的了解之后,我們來說一下學(xué)生
我所面向的是中職學(xué)生,這些學(xué)生有一定的數(shù)學(xué)邏輯思維基礎(chǔ),之前已經(jīng)學(xué)習(xí)過順序、選擇結(jié)構(gòu)程序,并具有編寫調(diào)試簡單程序的能力。但是C語言這門課程知識邏輯性強,較為枯燥,部分學(xué)生的學(xué)習(xí)興趣不高,并且中職學(xué)生對于上機實際操作要比學(xué)習(xí)理論知識更為興趣,但解決實際應(yīng)用問題的能力較差,同時學(xué)生編寫代碼、調(diào)試程序的能力,存在較大差異。因此,在教學(xué)中要立足學(xué)生之間的差異,合理安排教學(xué)活動,在教學(xué)過程中注意激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生理論聯(lián)系實際的能力,從而達到最佳的教學(xué)效果。
教學(xué)目標(biāo):
基于以上對教材和學(xué)生學(xué)情分析,結(jié)合大綱要求,我制定了了如下教學(xué)目標(biāo):
教學(xué)重難點:
基于以上分析,我將本節(jié)課的教學(xué)重點確定為:for語句語法規(guī)則、for語句執(zhí)行過程,而教學(xué)難點則是深入理解循環(huán)的思想、對for語句執(zhí)行過程的理解、利用for循環(huán)解決實際問題。
教法和學(xué)法:
教師的職責(zé)是授人與漁而不是授人以魚,要教會學(xué)生自己學(xué)習(xí)和自主探索的能力。有由于學(xué)生在基礎(chǔ)知識狀況、興趣愛好、智力水平、潛在能力、等方面存在差異,因此:本課采用的主要教學(xué)方法有講授法、演示法、范例分析法、任務(wù)驅(qū)動法,體現(xiàn)了以學(xué)生為主體,以“學(xué)生發(fā)展為本”的新課程教學(xué)理念。
學(xué)法上選取自主探究學(xué)習(xí)、小組協(xié)作學(xué)習(xí)為主的方法并配合練習(xí)法,讓學(xué)生自己發(fā)現(xiàn)問題、解決問題,從“學(xué)會”提高到“會學(xué)”和“樂學(xué)”的高度上來。
教學(xué)過程:
在具體的教學(xué)程序上,我分為以下幾個板塊:
復(fù)習(xí)舊課,引出新課、講授新知、任務(wù)引領(lǐng)、自主探究、小組協(xié)作、總結(jié)拓展。
在課題引入方面,我選用問題導(dǎo)入法,開始就出示一個問題,打印一行十個星號,如何實現(xiàn)?學(xué)生用之前學(xué)習(xí)的輸出語句解決,此后再設(shè)計情境,若將題目中的“10”改為100、1000或者更多,又應(yīng)該怎么辦呢?這就是我們今天要學(xué)的內(nèi)容。這樣的設(shè)計可以激起學(xué)生的未知欲,有利于建立新的認識結(jié)構(gòu)。
接下來就是新課講解,包括兩部分內(nèi)容,首先是FOR語句的格式。我采用邊講解邊給出FOR格式的方法,強調(diào)格式中學(xué)生需要注意的地方,并在黑板上板書,以此來引起學(xué)生的重視。接下來是FOR循環(huán)語句的功能,以流程圖的方式對FOR循環(huán)語句的功能進行描述。采用畫、看、說三個環(huán)節(jié)讓學(xué)生們進一步滲透循環(huán)的思想,使學(xué)生在畫流程圖、讀流程圖以及之后用流程圖的過程中理解循環(huán)思想,并進一步體會結(jié)構(gòu)化程序設(shè)計思想。為了進一步加深學(xué)生對for循環(huán)執(zhí)行過程的理解,我將和學(xué)生一起完成課前留下的問題,用FOR循環(huán)來實現(xiàn)100行輸出10個“*”的功能,此設(shè)計旨在進一步強化學(xué)生對FOR語句的理解,內(nèi)容逐漸深入,難度也逐漸增大。為了加深學(xué)生對循環(huán)思想的理解,我讓學(xué)生開動腦筋,想一想實際生活、學(xué)習(xí)過程中,有哪些循環(huán)結(jié)構(gòu)的例子?把它們用流程圖表示出來。
講授新課完成以后,我用任務(wù)引領(lǐng)的方法,采取循序漸進的方式,讓學(xué)生通過自主探索和小組交流的方式,達到預(yù)期的教學(xué)目標(biāo)。
最后,就是歸納小節(jié)。
第五篇:《c語言程序設(shè)計新視角》第八章文件小結(jié)
《c語言程序設(shè)計新視角》第八章 文件小結(jié) 文件存數(shù)據(jù)時間長久,二進制與文本形式自由。程序操縱它三個步驟: 打開、讀寫、關(guān)閉不要遺漏。注意路徑與名稱打開不愁; 讀寫有系列函數(shù)功能足夠; 記得關(guān)閉在操作之后。