吳娜
摘?要:本文探討如何通過指導學生小組合作,運用for循環結構解決現實生活中實際問題的能力,體驗程序設計的魅力,產生對程序設計的求知欲,激發學生的學習興趣。
關鍵詞:C語言?循環語句?程序分析
在單片機的應用中,延時控制既重要又常用,而延時控制程序都由C語言的for語句來實現。在以往的教學過程中,教師一般是先分析for語句的結構,然后實例講解,最后學生自己上機練習,而這種方法對于學習能力不足的中職院校的學生來說沒有多大作用,根本無法達到教學目標。為了更好地調動學生的學習積極性,教師可以創設情境,進行小組協作學習,調動學生的學習興趣,以期達到更好的教學效果。
一、創設情境
學習C語言程序是件很枯燥的事情,但是教師可以告訴學生,C語言可以解決我們生活中常見的,而又不太好處理的事情。
教師可以講一個故事:相傳大將韓信有隊人馬,他想知道有多少人,便讓士兵排好隊報數:按從1至6報數,最末的士兵報的數為5;按從1至5報數,最末的士兵報的數為1;最后按從1至11報數,最末的士兵報的數為10。
教師問學生,能否算出韓信至少有多少兵?
二、講解新知
在學生的學習興趣高漲的時候,教師告訴學生,這個問題對于C語言程序中的for循環語句來說,非常簡單。寫出for語句的一般形式:
for(表達式1;表達式2;表達式3)
{循環體語句;}
for語句的執行過程:先計算表達式1(循環變量的初始化);然后計算表達式2(循環條件),如果表達式2條件成立,即循環條件成立,就執行一次循環體;接著計算表達式3(循環變量自增變化),為下一次判斷循環條件是否成立做準備,到此完成一次循環。以后,每次都是從計算表達式2開始,進入下一次循環。
學生只有掌握了for的格式及其功能,并理解其執行過程,才能讀得懂含有for的程序,才能運用for來解決生活中的簡單問題。學生們小組協作、頭腦風暴式的學習,分析實際問題來確定程序中的循環變量、循環條件和循環體語句。不管學生分析得正確與否,教師先不做評論。
三、上機實練
教師先將學生匯總的結果進行上機實練,這樣會出現各式各樣的問題,這時再針對學生在解題過程中遇到的問題進行討論,然后再次分析實例,總結出如下結果。
先設大將韓信有兵m人,那么m應同時滿足的條件:
m%5==1&&m%6==5&&m%11==10
指導學生讓m從1開始試驗,完成程序:
main()
{intm;
for(m=1;;m++)
{if(m%5==1&&m%6==5&&m%11==10)
{printf(“m=%d ”,m);
break;}}
學生們體會到運用計算機來快速解決生活中問題的便利,從而認識到循環語句在程序設計中的重要地位和作用,學會分析哪些問題需要循環結構來解決,哪些實際問題運用for語句會更加便捷。
四、探索理解
教師引導學生善于總結程序編程的常用方法,遇到類似的問題,要學會自己獨立思考并解決。另外還要給學生留出自主學習的空間,發揮學生的學習主動性。要重視學生對基礎知識的掌握,通過分組進行討論及做練習的方法,提高學生學習興趣及動手能力,注意舉一反三。
分析以下例子:某個暑假小明攜帶密碼行李箱外出旅游,旅行途中發現自己忘記了開鎖的密碼,怎么辦?(注:密碼只由5位數字組成,這樣問題會變得較為簡單,能夠被學生接受。)
main()
{intx,w;
scanf(“%d”,&);
for(x=0;x<=99999;x++)
{if(x==w)printf(“密碼是=%d ”,x);
break;}}
在編寫這個程序時,我們只判斷數字從0到99999。我們要帶著學生們分析,等后續章節講了數組以后,還要再用數組分析它。
下面有一個典型的題目(百雞問題):“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?”這里討論一般的n錢買n雞問題。
做的題目多了,了解的題型多了,學生們會越來越發現C語言能解決很多現實中的問題,學習的興趣會越來越濃厚。
教師要培養學生的競爭意識及團隊精神,告訴學生要注意轉換學習方法,要勤于動手,以動手帶動理解,注重實踐和應用能力的培養,同時還可以促進同學之間、師生之間分享思考、見解和知識。
參考文獻:
[1]王靜霞.單片機應用技術(C語言版)[M].北京:電子工業出版社,2012.
(作者單位:保定市高級技工學校)