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