第一篇:百錢買百雞 C語言(一次循環)
#include
{ num=100-3*c;mon=100-c;
if((mon-3*num)%2==0)
{
a=(mon-3*num)/2;if(a<0||a>15)continue;
b=num-a;if(b<0||b>25)continue;
printf(“分配:公雞%d只,母雞%d只,雛雞%d 只,為百錢買百雞的答案。n”,a,b,3*c);
}
}
system(“PAUSE”);return 0;
}
其中一些數值為簡要的縮減范圍。至于mon-3*num)%2==0則是通過一元二次方程得出,要不還真沒有依次循環做百錢百雞的例子吧--~ 歡迎c語言愛好者和研究者加我哈,我是新手~~782822925
第二篇: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語言程序設計教案 第六章 循環程序設計
第六章 循環程序設計
課題:
教學目的: 教學重點: 教學難點: 第五章 選擇結構程序設計
1、掌握三種循環語句的語法結構
2、靈活運用循環語句
三種循環語句while、do-while、for 三種循環語句的區別
步驟一 引入新課
? 問題1:假如全班41人,欲從鍵盤上輸入每人的數學成績,然后計算出平均成績; ? 問題2: 編程計算n!。
? 重復執行一組語句是程序設計要求的基本功能之一。在C語言中可以用以下語句來實現循環:(1)if 和 goto
(2)while
(3)do-while
(4)for
步驟二 講授新課
一、goto語句及用goto構成循環 ? 語法:goto label;? 其中:label是語句標號,它命名的規則同變量名; ? 語義:使程序無條件地轉向標號為label的語句去執行; ? 如:用if語句構成循環,求sum=1+2+…+100
main()
{ int i=1,sum=0;
loop:
if(i<=100)
{sum+=i;i++;goto loop;}
printf(“%d”, sum);
} 說明:
1)標號不必進行類型說明;
2)程序中的任何一個語句均可帶上標號,但標號必須以冒號結束; 3)不提倡使用goto語句。
二、while語句
? 語法:while(exp)
循環體語句;
? 語義:當exp為真時,執行循環體;為假時,執行循環語句的后續語句; ? 如:用while語句構成循環,求sum=1+2+…+100
程序如下:main(){ int i=1, sum=0;
while(i<=100)
{ sum+=i;
i++;}
printf(“%d”,sum);} 說明:
1)循環體可以用復合語句;
2)在while語句前應有為測試表達式(exp)中的循環控制變量賦初值的語句,以確保循環的正常開始;
3)循環體內應有改變循環控制變量的語句,以確保循環進行有限次后正常結束;
如:i=1;
while(i<=100)
sum=sum+1;(死循環)
4)while 循環的特點是先判斷后執行,故循環有可能一次都不被執行;
如:
i=3;
while(i<3)
printf(“i=%dn”, i);
三、do-while語句 語法:do
循環體語句;
while(exp);語義:當exp為真時,執行循環體;為假時,執行循環語句的后續語句; 如:用do-while語句構成循環,求 sum=1+2+…+100 程序如下:main(){ int i=1,sum=0;
do
{ sum+=i;
i++;}
while(i<=100);
printf(“%d”,sum);}
說明:
1)循環體可以用復合語句;
2)循環控制變量在執行do前必須賦初值;循環體內應有改變循環控制變量的語句; 3)do-while 循環的特點是先執行后判斷,故循環至少被執行一次;
如:i=3;
do
{ sum+= i;
i++;
} while(i>10);例1:用公式求π的近似值,直到最后一項的絕對值小于10-6為止。π/4≈1-1/3+1/5-1/7+……
# include
while((fabs(t))>1e-6)
{ pi=pi+t;n+=2;
s=-s;t=s/n;
}
pi=pi*4;
printf(“pi=%10.6fn”,pi);}
例2:求整數a和b的最小公倍數。#include
i=0;while(1)
{ i++;
if(i%a= =0)
if(i%b= =0){printf(“%dn”, i);break;}
} }
思考:有一張足夠大的紙,厚0.09毫米,問將它對折多少次后可以達到珠穆朗瑪峰的高度(8848米)?
四、for 語句
語法:for(表達式1;表達式2;表達式3)
循環體語句; 語義:
1、先求表達式1;
2、求解表達式2,若其值為真,則執行第三步;若為假,則結束循環;
3、執行循環體中的語句;
4、求解表達式3;
5、轉回第二步繼續執行 ? 如: for(i=1;i<=100;i++)sum=sum+i;可看成:
for(循環變量賦初值;循環條件;循環變量增值)語句;
說明:
(1)顯然for循環更簡潔,更靈活;(2)循環體可以是復合語句;(3)for語句中的三個表達式均可以是逗號表達式,故可同時對多個變量賦初值及修改。如:for(i=0, j=1;j (4)for語句中三個表達式可省: ? 省exp1;如:i=1;for(;i<5;i++) printf(“%dn”,i); 等價于for(i=1;i<5;i++)printf(“%dn”,i);? 省exp2;如: for(i=1;;i++) { printf(“%dn”, i); if(i>5)break; } ? 省exp3;如:for(i=1;i<5;) { printf(“%dn”,i); i++;} 等價于 for(i=1;i<5;i++) printf(“%dn”,i); ? 表達式 1、表達式3可省略 i=1;sum=0;for(;i<=100;){ sum+=i;i++;} ? 三個表達式全省時,如: for(;;)語句; 等價于while(1)語句; 三個表達式可包含與循環變量無關的語句 for(;(c=getchar())!=?n?;printf(“%c”,c)); (5)for語句中的循環體可以是空語句;如: int n=0;for(;n++ <=2;);printf(“%d”,n); ? 該程序段的輸出結果為:4 步驟三 課堂小結 1、while、do-while、for語句的語法結構,特別是for語句中三個表達式的作用 2、whie與do-while區別 3、注意循環控制的范圍 步驟四 布置作業 上機練習:(第六章課后練習)6.2 書面練習:(第六章課后練習)6.3、6.5 認識(實習)報告 實驗(實習)名稱循環結構程序設計 日期得分指導教師系專業年級班次姓名學號 一、實驗目的(1)掌握在程序設計條件型循環結構時,如何正確地設定循環條件,以及如何控制循環的次數。 ⑵了解條件型循環結構的基本測試方法。 ⑶掌握如何正確地控制技術型循環結構的次數。 ⑷了解對技術型循環結構進行測試的基本方法。 ⑸了解在嵌套循環結構中,提高程序效率的方法。 二、實驗內容 1.輸入一個正整數,并將其顛倒過來,如12345對應54321.程序 : #include #include int main() { int n,m,t=0; scanf(“%d”,&n); if(n<0) { printf(“數據輸入錯誤!n”); exit(0); } while(n!=0) { m=n%10; t=t*10+m; n=n/10; } printf(“反序數為: %dn”,t); return 0; } 運行: 12345 反序數為: 54321 Press any key to continue 2.將一個長整型數s的每一位數位上的偶數依次取出來,構成一個新的數t,其高位仍在高位,低位仍在低位,如s=87653142時,t中的數為8642.程序: #include int main() { long s,t=0,p=1; scanf(“%ld”,&s); while(s!=0) { if((s%10)%2==0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf(“%ld“,t); return 0; } 運行: 87653142 8642 Press any key to continue_ 3.判斷101~200之間有多少個素數。 程序: #include #include int isprime(int m); int main() { int n,s=0; for(n=101;n<=200;n++) { if(isprime(n)) s++; } printf(”%dn",s); return 0; } int isprime(int m) { int i; for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; } 運行: Press any key to continue_ 三、分析與討論 (1)總結條件循環結構的一般方法。 (一)for循環 for循環的一般形式為: for(<表達式1>;<表達式2>;<表達式3>) { 語句序列 } (1)先求解表達式1,然后求解表達式2,若其值為真(true),則執行for語句中內嵌的循環語句;若其值為假(false),則結束循環轉到{ }后面的語句執行。 (2)求解表達式3。 (3)轉回上面求解表達式2,繼續執行。 (4)循環結束,執行for語句下面的一個語句。 (二)while語句 while(表達式) { 語句序列 } 其語義是,首先計算表達式的值,當值為真(true)時,返回循環體語句;當值為假(false)時結束循環。直到表達式的值為0,則執行結構后面的語句。 特點:先判斷,后執行。 (三)do-while語句 do { 語句序列 }while(表達式); 特點:先執行,后判斷。 當循環條件為真(true)時反復執行循環體,直到循環條件為假(false)終止循環。因此,其循環體將至少被執行一次。 如果for、while或do-while循環控制語句的循環體中又包含循環控制語句就構成了嵌套循環。這3種循環語句之間可相互嵌套,構成復雜的邏輯嵌套結構。 (2)如何測試計數型循環結構的控制表達式中的錯誤? 斷點,或使用try,catch拋出異常 (3)從實驗中你得到了哪些提高嵌套循環程序效率的啟示? 1.注意把循環次數大的循環放在嵌套語句的外層可以產生較好的效率.2.靈活、巧妙運用三種循環語句結構來實現嵌套。 《C語言循環程序設計—for語句》教學案例 漠河縣職業技術學校 塵威威 《C語言循環程序設計—for語句》教學案例 漠河縣職業技術學校 塵威威 C語言基礎是中職計算機專業的一門必修課,也是要求計算機專業學生學習、掌握的一門重點課程,這門課程核心內容就是要讓學生掌握一門編程的語言,學會編寫簡單的程序,能讀懂C語言源程序。 案例背景: 在計算機應用專業教學中,C語言是一門理論與實踐結合得比較緊的課程。要掌握和使用好這門語言,既要求學生有比較扎實的理論基礎,又要具備較強的應用實踐能力。如果只是按照傳統的知識體系照本宣科,讓學生理解這些枯燥的概念都難,更不要說達到良好的教學效果,而且易挫傷學生學習編程的積極性。因此,在教學中可以改為從案例入手,通過給學生演示、讓學生模仿,在實際應用中去探究和領悟這些概念,并適時地加以歸納總結和進行概念的延伸,讓學生在輕松愉快的氣氛中學習新知識。所以從課程內容而言,案例教學是適用的,是切合學生的。 循環結構是程序設計三種基本結構的重中之重,而循環中的for循環是程序中運用最多的,也是較靈活的語句之一,它既是前面知識的延續,又是后面知識的基礎,在知識構架中起著重要的銜接作用,如果不采用一些恰當有效的方法,學生在學習過程中會難以掌握。在教學過程中教師應結合一些有趣的程序,提高學生的學習興趣,引導學生全身心地投入課堂。本文針對學生的實際情況,具體闡述for循環語句在具體編程時的靈活應用。 教學目標確定 (一)知識與技能 1、領會程序設計中構成循環的方法 2、能使用for循環語句編寫C語言語句,并能運用for循環語句編寫出正確的程序。 (二)過程與方法 C語言程序設計中for循環語句教學以行動導向教學為主線,通過“提出問題―分析問題―解決問題―問題擴展―討論―總結歸納―實踐”的程序,過渡到知識應用和練習。 本課采用多媒體課件進行教學,通過課件把文字和圖片有機的結合,使學生在學習過程中更加容易理解,學習效率高。在課堂討論和實踐過程中,教師適當引導,學生主動探究、歸納總結學習內容,既有利于領會掌握新知識點,又能充分發揮學生的主體作用。在重點的突破上,采用范例比較教學法,給出具體的案例,讓學生通過典型的例子掌握知識,同時通過用while、do while語句的所編寫的程序進行比較,加深學生印象,讓學生快速的掌握for循環語句的基本結構及使用方法。 (三)情感與價值觀 1.讓學生在自主解決問題的過程中培養成就感,為今后自主學習打下良好的基礎。 2、培養學生學習的主動性,激發學生學習熱情,以及培養團隊合作的精神、自主探究,合作交流的學習方法,觀察,樂于分析的學習態度。 教學重難點確定 C語言程序設計中for循環語句的重點是“for語句的結構”,分析題目意圖(即算法分析),并用讓學生便于理解的方式描述,學生掌握語句的結構和用法并不困難,難的是在實際的應用中那些時候該使用哪種循環來解決問題比較簡潔、高效,所以我把本節課的難點確定為“for語句的應用”。 學情分析:本節課我主要針對計算機專業高三高考班的學生,在學這節課之前他們應準確掌握《C語言程序設計》中關于實現循環結構語句,如 for 或 while,do-while。并擁有能分析并描述簡單算法如求累加,累乘的能力。 案例描述 案例1:教師將一張空白A4紙向學生展示,跟同學們說,今天老師給大家做個試驗,讓你們來猜一猜(學生的興趣和精神一下就提起來了),然后老師邊演示邊講解,將這張紙對折一下后幾張?學生都能回答: 2張。繼續發問,對折兩下幾張?學生:4張。對折三下呢?學生:8張。(這個時候學生充滿疑惑,老師想干嘛呢,問這么簡單的問題)接著老師提出問題:如果紙理想化的大,對折42下,這些紙的厚度將會多高? 這個教室一下就熱鬧起來了,學生們紛紛給出自己想像的答案,有些同學比劃出手勢:伸開雙手說:有那么高,有人說桌子那么高的,有說房子那么高的。又有人馬上否定,哪有那么高。有些同學拿起筆就開始算,算著算著就不知道該從哪兒下手了。 這個時候老師組織安靜課堂,叫同學分組給出自己心里傾向的答案,可以估計,可不說理由。 四個小組分別給出的答案是:1:書桌那么高(大概50cm)。2:人的高度(大概170cm)。3:樓房的高度(大概3000cm)。4:大概10厘米。 老師不說哪一組對,只是問同學們,這個高度該怎么算? 接下來和同學一起分析得出以下結論: 1、紙張的厚度h? 2、有多少張紙n? 3、高度=h*n.解決問題1:同學自行測量(4組同學各自準備100頁紙,測出總高度/100,取4個小組的平均值)。最后得出一張紙的厚度約=0.1mm。 這個環節的主要目的是讓每個學生動手,鍛煉他們的動手實踐,合作交流的集體合作精神。 解決問題2:有多少張紙?2的42次方。接下來利用循環語句來做(即有42個2相乘)。 編寫源程序 所用方法:學生自己編寫,小組同學相互交流。 目的:培養并鍛煉學生將心中已明確的算法落實到具體的程序語句上。 教師活動 這個時候巡查教室,檢查并了解學生完成情況,對部分有小問題的同學給予及時幫助。 組上有成績比較好的同學很快就把程序編寫完畢,我看了一下,選了一個同學到教室機給大家調試展示。該同學給出的程序如下: main(){ int i,k=1;float s;for(i=1;i<=42;i++)k=k*2;/* k是紙張的張數 */ s=k*0.1*1.0e-6;/* 將mm轉換成km */ printf(“將一張紙折42下的高度為:%.2f公里”,s);} 調試結果:將一張紙折42下的高度為:0.00公里.這個時候老師提問:為什么會出現0.00的情況?請同學們為他指出問題。同學們思考了一會無人作答。這個時候老師提醒:k的值將會很大.結果部分同學作恍然大悟狀態,有同學馬上舉手:老師,變量k的值不能定義為int,應定義為long;問他為什么?他說:int類型的取值范圍是:32767,裝不下k。老師微笑表揚:方向對了。改好,調試,結果還是0.00公里。這個時候又有同學發言了:老師,不會定義為long都裝不下k吧。這個時候老師提問:如果整型數據long都裝不下的數據該定義為什么?學生回答:實型float。 改好,調試,Ok,成功!源程序如下 main(){ int i;float s,k=1;for(i=1;i<=42;i++)k=k*2;/* k是紙張的張數 */ s=k*0.1*1.0e-6;/* 將mm轉換成km */ printf(“將一張紙折42下的高度為:%.2f公里”,s);} 調試結果:調試結果:將一張紙折42下的高度為:439804.66公里.全班同學的臉上都露出成功的喜悅。可同學們看到結果,表示不太相信,問老師,是不是算錯了,有這么高呀。老師作肯定的答復:沒錯,就有這么高。比地球到月亮的距離(384,401公里)都還要高。這里可以告誡學生,科學不是憑想像,實踐出真知。 問題延伸:已知太陽離地球有1.5億公里,如果理想化的去折紙,最多折多少下有這么高? 學生分組討論,用什么語句最恰當。得出結論。(用 do while語句)給同學們五分鐘,請同學們給出程序并且調試出結果。教師點評學生的程序,指出程序中容易出現錯誤的地方。源程序如下: main(){ int i,k=1;float s;do { k=k*2;S=k*0.1*1.0e-6;i++;} while(s<=1.5e8);printf(“最多可折%d下有地球到太陽那么高”,i);} 案例反思: 通過這案例教學也給我留下了很多啟示: 1、根據C語言的學科特點,和學生的現狀,特別是根據學生平時厭理論而樂操作、解決實際問題能力較差的特點,采用案例教學可以充分調動學生學習C語言的興趣和積極性,使學生處于精神集中的狀態,確保學生將知識真正學到手。通過新鮮的案例引領課堂,平時上課精神不集中的學生都認真分析問題了,個別平時打瞌睡的學生精神也集中了。 2、學生編程的信心需要老師去引導和激發。因為C語言程序對于中職學生來講有些難度,部分學生一看到編程就放棄了,想都不會去想。這個時候老師就要從案例中去引導學生,和學生一起從案例去分析解決這個問題的算法,激發他們編程的嘗試。隨著程序的成功調試,信心就有了。一個人有了足夠的自信,他將有無窮的力量去面對將來的學習和生活。第四篇:C語言循環結構實習報告 - 副本
第五篇:《C語言循環程序設計for語句》教學案例