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