教材分析
《for…next循環(huán)》選自高中信息技術(shù)選修教材《算法與程序設計》(教科社版)中的《循環(huán)結(jié)構(gòu)》。教材中《循環(huán)結(jié)構(gòu)》主要包含《for…next循環(huán)》和《do while…loop循環(huán)》兩部分內(nèi)容,各用一課時,共計兩課時。本教學設計為第1課時。
循環(huán)結(jié)構(gòu)是最為常用的語法結(jié)構(gòu)之一,也是三大基本結(jié)構(gòu)中難度最大的一個,不僅是本章的重點與難點,也是全書的重點之一。學好程序的基本結(jié)構(gòu),是學生理解和學習后續(xù)章節(jié)的基礎。
學情分析
在學習本課之前,學生本應已熟悉VB程序的編程環(huán)境與運行方法,了解順序及選擇結(jié)構(gòu)的程序執(zhí)行流程,具備一定的算法基礎和歸納總結(jié)能力。但本次教學為借班上課,根據(jù)安排,授課對象為天津?qū)嶒炛袑W高一學生,絕大多數(shù)學生并沒有接觸過程序設計和VB環(huán)境、以及《算法與程序設計》≠某一編程工具(語言)的教學。故本課有意弱化學生在純VB環(huán)境中的代碼編寫,而重在理解循環(huán)結(jié)構(gòu)的基本思想,學會怎樣分析循環(huán)問題、設計算法,并提煉for語句的基本結(jié)構(gòu),旨在培養(yǎng)學生根據(jù)需要采用循環(huán)結(jié)構(gòu)解決實際問題的能力,故任務設置以完善半成品居多。
教學目標
知識與技能:了解循環(huán)的概念,理解循環(huán)結(jié)構(gòu)的基本思想;掌握for…next語句的基本結(jié)構(gòu);理解for…next語句的執(zhí)行過程;嘗試采用循環(huán)結(jié)構(gòu)編寫簡單的程序,解決實際問題。
過程與方法:經(jīng)歷分析、實踐、講解、探究、歸納,逐步深化對循環(huán)思想和執(zhí)行過程的理解。
情感、態(tài)度與價值觀:通過一個個任務的實戰(zhàn)演練,感知使用循環(huán)結(jié)構(gòu)解決問題的便捷和優(yōu)越,培養(yǎng)學生運用循環(huán)思想解決實際問題的能力,進一步激發(fā)學生學習編程的興趣;通過在實際的問題中分析提煉循環(huán)結(jié)構(gòu),進一步提升學生的信息素養(yǎng)。
教學重點、難點
教學重點:掌握for…next語句的基本結(jié)構(gòu);理解for…next語句的執(zhí)行過程。
教學難點:根據(jù)需要采用循環(huán)結(jié)構(gòu)解決實際問題,并提煉出for語句的基本結(jié)構(gòu)。
教學方法
講授演示法、對比分析法、任務驅(qū)動法、分層教學法等。
教學過程
?。ㄒ唬﹦?chuàng)設情境,激情導入
教師展示《找字母》游戲,請一個學生玩,其他學生積極出謀劃策。師生共同分析游戲,提出循環(huán)的概念。
說明:用游戲不僅僅是為了活躍課堂氣氛、引出概念,更為重要的是對游戲的算法分析本身即是對學生思維的訓練。
教師請學生舉一些日常生活中的關(guān)于循環(huán)的例子:星期(星期一~星期天)、時間(00∶00∶00~23∶59∶59)、月份(1~12);人造地球衛(wèi)星、繞月衛(wèi)星的運動;數(shù)學運算:1+2+3+…+10 (累加)、1*2*3*…*10(累乘)、50-1-2-3-…-10(累減)。
說明:從日常生活中循環(huán)的例子到數(shù)學中的一些運算,循序漸進,為學習后面的知識做鋪墊。
?。ǘ熒?,層層深入
由衛(wèi)星的運動,引出“嫦娥一號”的發(fā)射,提出我們雖然沒有能夠到現(xiàn)場觀看,但我們在教室中同樣可以模擬感受。教師展示火箭發(fā)射倒計時程序及其源代碼,讓學生借助注釋從整體上大概理解其實現(xiàn)的功能(教師不做詳細講解)。
能不能簡化呢?我們首先分析,有沒有重復的語句?能不能用一組通用的語句來表示呢?
Label1.Caption =n
Sleep (1000)
Cls
其中,n=5,4,…,1,每次遞減1。
在程序設計中,當需要重復執(zhí)行某一段代碼時,可以采用循環(huán)結(jié)構(gòu)。VB中實現(xiàn)循環(huán)結(jié)構(gòu)的語句主要有for…next和 do while…loop等。本節(jié)課我們學習for…next,do while…loop將在下一節(jié)課學習。
教師先不講for…next語句的格式和用法,而把重復的語句組提取出來,要求學生根據(jù)剛才的分析進行推測,把空白補充完整:
①n=to Step -1
Label1.Caption =n
Sleep (1000)
Cls
然后,用for語句修改源程序,并調(diào)試運行。
教師指出其中的循環(huán)體、循環(huán)變量、初值、終值、步長,進而由個別到一般,總結(jié)出for…next語句的基本格式:
For 循環(huán)變量=初值 To 終值 [Step 步長]
循環(huán)體
Next [循環(huán)變量]
說明:循環(huán)體在一定條件下也是可以省略的,并且可以強制退出循環(huán),但考慮到學生剛接觸循環(huán)結(jié)構(gòu),理解這部分知識有一定難度,故先不講,在后續(xù)課程中再介紹。
教師讓學生回答:當初值>終值時,步長<0;當初值<終值時,步長>0;教師指出:當步長=1時,可以省略不寫。教師提問:步長能否等于0?為什么呢?
教師接著分析for…next語句執(zhí)行過程,并由一般到個別,分析倒計時程序的執(zhí)行過程。
(1)學生活動1:體驗、理解。
說明:提示學生座位靠近的可以相互討論、交流;要善于捕捉學生錯誤點,引導學生思考,還可以通過多媒體廣播系統(tǒng)展示有代表性的錯誤,啟發(fā)學生的討論和思考。
為了祝賀你“涉足”VB的世界,請留下你的腳印吧!假設已經(jīng)給你提供輸出1對腳印的代碼,如果要輸出4對,可以如何實現(xiàn)呢?說說你的思路。
注意引導學生如何分析問題、設計算法,并請學生回答,然后再讓學生在VB中完善程序、調(diào)試運行。
Dim n As Integer
For n = To Step
……‘ 輸出一對腳印
Next
本例中,循環(huán)變量n僅僅用于控制循環(huán)體的執(zhí)行次數(shù)。初值、終值、步長的取值只需要滿足循環(huán)次數(shù)即可。
(2)【對比分析】而對于先前的倒計時程序:
Forn = 5To1Step -1
Label1.Caption =n
sleep(1000)
cls
Next
循環(huán)變量n的作用:①控制循環(huán)體的執(zhí)行次數(shù);②參與循環(huán)體的運算。教師啟發(fā)學生思考:這種情況下初值、終值、步長的取值只需滿足循環(huán)次數(shù)就可以嗎?還要考慮到什么要求呢?請學生總結(jié)循環(huán)變量的作用。
說明:循環(huán)變量的作用(尤其是參與循環(huán)體的運算的情況),學生普遍感到不好理解和容易混淆。如果對這個知識點不能很好地理解和掌握,將很難實質(zhì)性地理解for循環(huán),更談不上循環(huán)算法的優(yōu)化。通過對比分析等方法,加以區(qū)分,幫助理解消化,并通過任務2鞏固、夯實。
學生活動2:鞏固、夯實。
編程實現(xiàn):由小到大輸出2到20之間的偶數(shù)。
本題至少有兩種解決辦法:
?、貴or n= 2 to 20 step 2
Print n
Next n
?。ㄟ\行后,得到2、6、14,分析原因,并指出:一般情況下,不要在for循環(huán)內(nèi)部重新設置循環(huán)變量的值,否則可能導致循環(huán)出錯,甚至出現(xiàn)死循環(huán)。)
我們要編寫程序,首先要對問題進行分析、設計算法。如果屬于循環(huán)類問題,思考能否選用for語句來編程實現(xiàn)。
for…next比較適用于循環(huán)次數(shù)容易確定的情況。一般來說,用for…next實現(xiàn)循環(huán)結(jié)構(gòu),關(guān)鍵要做好:①提煉循環(huán)體;②確定循環(huán)次數(shù):循環(huán)變量的初值、終值和步長。
學生活動3:遷移、應用。
要求學生根據(jù)自己的學習基礎和課堂掌握的情況,選擇:A、基礎加強組;B、鞏固提高組,對應的題目完成。
A基礎組-1
A基礎組-2
B提高組-1
B提高組-2
說明:所出題目貼近生活,A、B組之間以及組內(nèi)之間都有一定的梯度(A組-1僅是基本