版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《C程序設(shè)計(jì)項(xiàng)目教程》
教案
課時(shí)分配表
章序課程內(nèi)容課時(shí)備注
1C程序概述2
2算法4
3C語法基礎(chǔ)4
4分支語句4
5循環(huán)語句6
6數(shù)組8
7函數(shù)6
8指針6
9構(gòu)造數(shù)據(jù)類型4
10文件4
合計(jì)48
課題熟悉C程序開發(fā)環(huán)境
課時(shí)2課時(shí)(90min)
知識技能目標(biāo):
(1)了解C程序的開發(fā)步驟,熟悉C程序的開發(fā)環(huán)境,熟悉C程序的結(jié)構(gòu)及格式
特點(diǎn)。
(2)能在VisualC++2010中創(chuàng)建、運(yùn)行C程序,給出的常見錯(cuò)誤信息,分析并修
教學(xué)目標(biāo)
改程序。
素質(zhì)目標(biāo):
(I)養(yǎng)成腳踏實(shí)地、開拓進(jìn)取的工作作風(fēng)。
(2)發(fā)揚(yáng)服務(wù)集體、團(tuán)結(jié)協(xié)作的團(tuán)隊(duì)精神。
教學(xué)重點(diǎn):熟悉C程序的開發(fā)步驟,熟悉C程序的開發(fā)環(huán)境
教學(xué)重難點(diǎn)
教學(xué)難點(diǎn):熟悉VisualC++2010開發(fā)環(huán)境
教學(xué)方法案例分析法、問答法、討論法、講授法
教學(xué)用具電腦、投影儀、多媒體課件、教材
課前任務(wù)一考勤(2min)-新i顆5熱(10min)一問題導(dǎo)入(5min)一?傳授新知(28min)
教學(xué)設(shè)計(jì)一任務(wù)實(shí)施(15min)一>效果展示(lOmin)一■實(shí)操練習(xí)(15min)一課堂小結(jié)(3min)
一作業(yè)布置(2min)
教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計(jì)意圖
■【教師】布置課前任務(wù),和學(xué)生負(fù)責(zé)人取得聯(lián)系,讓其提醒同
學(xué)通過APP或其他學(xué)習(xí)軟件,完成課前任務(wù)
通過課前任務(wù),
請大家了解C語言程序設(shè)計(jì)的特點(diǎn),應(yīng)用領(lǐng)域。使學(xué)生了解所學(xué)
課前任務(wù)讓學(xué)生了解二級C語言程序設(shè)計(jì)考試大綱課程的重要性,增
如何下載并安裝VisualC++2010軟件加學(xué)生的學(xué)習(xí)興
趣
■【學(xué)生】完成課前任務(wù)
■【教師】清點(diǎn)上課人數(shù),記錄好考勤培養(yǎng)學(xué)生的組
考勤
織紀(jì)律性,掌握學(xué)
(2min)
■【學(xué)生】班干部報(bào)請假人員及原因生的出勤情況
■【教師】自我介紹,與學(xué)生簡單互動(dòng),介紹課程內(nèi)容.考核標(biāo)通過老師自我
準(zhǔn)等介紹,與學(xué)生相互
新課預(yù)熱
熟悉,并讓學(xué)生了
(10min)簡單介紹二級C語言程序設(shè)計(jì)考試大綱
解這門課的大致
■【學(xué)生】聆聽、互動(dòng)要求
■【教師】講一些涉及C語言的應(yīng)用領(lǐng)域解釋學(xué)習(xí)該軟件的作用
C語言是目前世界上使用最廣泛的高級程序設(shè)計(jì)語言之
一。它具有很強(qiáng)的數(shù)據(jù)處理能力,運(yùn)行效率高,故廣泛應(yīng)用
于操作系統(tǒng)、嵌入式系統(tǒng)等底層應(yīng)用的開發(fā)。同時(shí),它也是
學(xué)習(xí)C#、C++、Java等面向?qū)ο蟪绦蛟O(shè)計(jì)語言的基礎(chǔ)。
■【學(xué)生】聆聽、記錄、理解
■【教師】提出以下問題:
按照發(fā)展進(jìn)程分類,計(jì)算機(jī)編程語言有幾種?C語言屬
于哪種?通過問題導(dǎo)入
問題導(dǎo)入的方法,引導(dǎo)學(xué)生
C程序的開發(fā)分為哪些步驟?
(5min)主動(dòng)思考,激發(fā)學(xué)
生的學(xué)習(xí)興趣
■【學(xué)生】思考、舉手回答
■【教師】通過學(xué)生的回答引入要講的知識
一、C程序的開發(fā)步驟
■【教師】通過PPT講解c語言程序開發(fā)步驟
1.需求分析
需求分析就是對要解決的問題進(jìn)行詳細(xì)的分析,弄清楚
問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,得
到這個(gè)結(jié)果需要什么條件等。這個(gè)過程好比是考試時(shí)候的審
題,一定要領(lǐng)會(huì)題目的要求,否則解題過程再漂亮也無濟(jì)于通過教師的講
事。解和演示,使學(xué)
傳授新知
生C程序的開
(28min)2.算法設(shè)計(jì)
發(fā)環(huán)境
算法設(shè)計(jì)就是設(shè)計(jì)出解決問題的方法和具體步驟。例如,
要求解一個(gè)1到100的累加問題,首先要選擇用什么方法求
解(直接累加計(jì)算、用速算公式計(jì)算還是用等差數(shù)列的求和
公式計(jì)算),然后把求解的每個(gè)步驟清晰地描述出來。
3.編寫程序
編寫程序就是把算法設(shè)計(jì)的結(jié)果變成一行行代碼,輸入
到程序編輯器中,然后將此程序(即源程序)以文件形式保
存到指定的文件夾中。
4.編譯程序
編譯程序就是利用編譯器把輸入的源程序翻譯成機(jī)器語
言,即編譯器對源程序進(jìn)行語法檢查并將符合語法規(guī)則的源
程序翻譯成計(jì)算機(jī)能識別的語言。如果經(jīng)編譯器檢查,發(fā)現(xiàn)
有語法錯(cuò)誤,則必須修改源程序中的語法錯(cuò)誤,然后再編譯,
直至沒有語法錯(cuò)誤。此時(shí)會(huì)在源程序所在目錄中自動(dòng)生成一
個(gè)目標(biāo)文件。
■學(xué)【生】聆聽、記錄,理解
二、C程序的開發(fā)環(huán)境
■教【師】通過案例講解C程序的開發(fā)環(huán)境及步驟
一、新建項(xiàng)目
步驟1在VisualC++2010主窗口中選擇“文件”-“新
建”一“項(xiàng)目”菜單項(xiàng)(詳見教材)
步驟2在打開的“新建項(xiàng)目”對話框中,選擇“Win32
控制臺應(yīng)用程序”選項(xiàng),并在“名稱”編輯框中輸入項(xiàng)目的
名稱,單擊“位置”右側(cè)的“瀏覽”按鈕,選擇項(xiàng)目保存路
徑(也可在“位置”編輯框中輸入路徑),然后單擊“確定”
按鈕(詳見教材)
■教【師】提出問題:名稱與項(xiàng)目名相同,如不同如何解決?
解決方案名稱一般與項(xiàng)目名相同,如果要在一個(gè)方案中
包含幾個(gè)項(xiàng)目,則可使解決方案名稱與項(xiàng)目名不同。勾選右
側(cè)的“為解決方案創(chuàng)建目錄”復(fù)選框,便會(huì)在指定位置的目
錄下創(chuàng)建一個(gè)解決方案文件夾。
步驟3打開“Win32應(yīng)用程序向?qū)А睂υ捒?,在歡迎界
面中單擊“下一步”按鈕(詳見教材)
步驟4打開“應(yīng)用程序設(shè)置”界面,在“附加選項(xiàng)”
組中勾選“空項(xiàng)目”復(fù)選框后,單擊“完成”按鈕(詳見教
材)
步驟5返回主窗口,新建項(xiàng)目完成
■【教師】重點(diǎn)強(qiáng)調(diào)如下問題
主窗口的左側(cè)為“解決方案資源管理器”窗格,若此窗
格關(guān)閉,可選擇“窗口”一“重置窗口布局”菜單項(xiàng)將其恢
復(fù)。(詳見教材)
二、新建源程序
創(chuàng)建好項(xiàng)目后,就可以新建源程序文件了。
步驟1右擊項(xiàng)目名稱“1口”,在打開的快捷菜單中選
擇“添加”一“新建項(xiàng)”菜單項(xiàng)
步躲2在打開的''添加新項(xiàng)”對話框中,選擇“C++文
件(.cpp)”選項(xiàng),在“名稱”編輯框中輸入“l(fā)-l.c”,然后
單擊“添加”按鈕,
步驟3進(jìn)入編程界面,在源程序編寫區(qū)域輸
入C程序代碼(詳見教材)
三、編譯和連接程序
源程序編寫完成后,選擇“生成”一“生成解決方案”
菜單項(xiàng)即可對程序進(jìn)行編譯,編譯結(jié)果將顯示在“輸出”窗
口。(詳見教材)
四、運(yùn)行程序
編譯成功后,選擇“調(diào)試”一“開始執(zhí)行(不調(diào)試)”
菜單項(xiàng)此時(shí)會(huì)彈出運(yùn)行結(jié)果窗口顯示程序運(yùn)行結(jié)果。該窗口
下,可按任意鍵結(jié)束程序運(yùn)行并關(guān)閉窗口。(詳見教材)
■【教師】重點(diǎn)強(qiáng)調(diào)如下問題
初次安裝VisualC++2010學(xué)習(xí)版后,在默認(rèn)情況下,菜
單可能是簡化的。例如,“調(diào)試”菜單下沒有“開始執(zhí)行(不
調(diào)試)”等菜單項(xiàng),此時(shí)可通過選擇“工具”一“設(shè)置”一
“專家設(shè)置”菜單項(xiàng)將菜單設(shè)置為專家模式(詳見教材)
■【學(xué)生】聆聽、記錄、理解
+【教師】提出任務(wù)
仿照老師的操作步驟,完成任務(wù)實(shí)訓(xùn)中教材P15中程序
〉【學(xué)生】聆聽要求、進(jìn)行操作
■教【師】巡堂輔導(dǎo),幫助學(xué)生解決問題
■教【師】通過創(chuàng)建教材P18例子了解C語言結(jié)構(gòu)
一、C程序的基本結(jié)構(gòu)
任務(wù)一帶領(lǐng)大家在VisualC++2010中輸入了一個(gè)簡單
的C程序。
#include<stdio.h>/*引用庫文件*/
intmain()/*定義主函數(shù)*/
(
printf("WelcometoCProgramWorld!\n");/*輸出要顯示
的字符串*/
return0;/*函數(shù)返回值0*/
}
此程序是一個(gè)由預(yù)處理命令和主函數(shù)組成的簡單C程
序,下面分別解釋各行代碼的意義。
第1行:預(yù)處理命令。
#include<stdio.h>
■教【師】重點(diǎn)強(qiáng)調(diào)如下問題
程序中為什么有#include<stdio.h>
include稱為文件包含命令,后面尖括號中的內(nèi)容稱為頭
文件。stdio.h是C程序的系統(tǒng)文件,stdio是“standardinput
&output(標(biāo)準(zhǔn)輸入輸出)”的縮寫,.h是文件的擴(kuò)展名。由
于程序的第4行使用了庫函數(shù)printf(),編譯系統(tǒng)要求程序提
供有關(guān)此函數(shù)的信息(如對這些輸入輸出函數(shù)的聲明和宏的
定義、全局變量的定義等),所以此處需要這條命令。
第2行:函數(shù)頭。
intmain()
其中,main是函數(shù)的名字,表示“主函數(shù)",main前面
的int表示函數(shù)的返回值是int類型(整型)。
?【教師】重點(diǎn)強(qiáng)調(diào)如下問題
每個(gè)C程序都必須有一個(gè)main。函數(shù)。
第3行到第6行:函數(shù)體。
(
printff'WelcometoCProgramWorld!\n");/*輸出要顯示
的字符串*/
return0;/*函數(shù)返回值0*/
)
函數(shù)體必須用大括號{}括起來,函數(shù)體中每條語句后都要
加分號,表示語句結(jié)束。在該函數(shù)體中,printf()是C編譯系
統(tǒng)提供的函數(shù)庫中的輸出函數(shù),用于在屏幕輸出內(nèi)容,輸出
語句中雙引號中間可以是字母、符號及中文字符等(其中,
“\n”表示換行)?!皉eturn0;”的作用是當(dāng)main。函數(shù)執(zhí)
行結(jié)束時(shí)將整數(shù)0作為函數(shù)值返回到調(diào)用函數(shù)處。
在程序各行的右側(cè)可以看到關(guān)于這行代碼的文字描述
(用/*和*/括起來),稱為代碼注釋。其作用是對代碼進(jìn)行解
釋說明,以增加程序的可讀性。
■【教師】教師與學(xué)生互動(dòng)總結(jié)C語言的特點(diǎn)
C程序的結(jié)構(gòu)主要有以下特點(diǎn)。
(1)一個(gè)C程序由一個(gè)或多個(gè)源程序文件組成。一個(gè)規(guī)
模較小的程序,往往只包括一個(gè)源程序文件(本書中的例子
都是基于一個(gè)源程序文件的)。
(2)C程序是由函數(shù)構(gòu)成的,函數(shù)是C程序的基本單位。
任何一個(gè)C程序必須包含且僅包含一個(gè)main。函數(shù),可以包
含零個(gè)或多個(gè)其他函數(shù)。
(3)一個(gè)函數(shù)由兩部分組成:函數(shù)頭和函數(shù)體。函數(shù)頭
用于定義函數(shù)名和返回值類型,如intmain。;函數(shù)體為函數(shù)
頭下面大括號。內(nèi)的部分,用于實(shí)現(xiàn)函數(shù)的具體功能。
(4)C程序總是從main。函數(shù)開始執(zhí)行,到main()函數(shù)
結(jié)束,與main()函數(shù)所處的位置無關(guān)。
(5)C程序中每條語句和數(shù)據(jù)定義的最后必須有一個(gè)分
號。分號是C語句的必要組成部分,必不可少。
(6)一個(gè)好的、有使用價(jià)值的C程序都應(yīng)當(dāng)加上必要的
注釋,以增加程序的可讀性?!?詳見教材)
■【學(xué)生】自行掃碼觀看配套微課,按照要求進(jìn)行操作,如遇問
題可詢問老師
■【教師】巡堂輔導(dǎo),及時(shí)解決學(xué)生遇到的問題
通過模仿,讓學(xué)
任務(wù)實(shí)施■【學(xué)生】仿照案例實(shí)施的內(nèi)容完成任務(wù)工單中的任務(wù)實(shí)施
生加深本次任務(wù)
(20min)完成教材P22程序
的理解
使用任務(wù)驅(qū)動(dòng)
■【學(xué)生】每組派一名代表展示效果法教學(xué),通過展示
效果展示
任務(wù)實(shí)施效果,使
(10min)
■【教師】點(diǎn)評并打分學(xué)生帶著問題進(jìn)
行學(xué)習(xí)
【教師】通過實(shí)訓(xùn)中的案例對常見錯(cuò)誤分析
1.語句后少分號
分號是C程序語句的重要組成部分,每條語句及數(shù)據(jù)定通過實(shí)操練習(xí)
義末尾必須有分號。很多初學(xué)者在編寫程序時(shí)很容易漏使學(xué)生鞏固所學(xué)
寫。......(詳見教材)知識,并以學(xué)生為
主體,針對學(xué)生接
實(shí)操練習(xí)2.語句中出現(xiàn)中文字符
受能力的差異性,
(15min)
C程序的語句只識別英文字符(提示信息和注釋信息除
讓優(yōu)秀學(xué)生帶動(dòng)
外),中文字符無法編譯。
其他學(xué)生掌握知
3.大括號不成對出現(xiàn)識
C程序的函數(shù)體中,左右大括號要成對使用。初學(xué)者在
編寫程序時(shí)很容易忘掉右邊的大括號。
4.程序連接出錯(cuò)
一般情況下,程序編譯完成后如果沒有錯(cuò)誤,在連接程
序時(shí)就很少發(fā)生錯(cuò)誤了,除非是調(diào)用函數(shù)出了問題。
■【學(xué)生】按照上面老師要求,故意在程序中出現(xiàn)上面錯(cuò)誤,看
結(jié)果并修正。
■【教師】安排每組做得最快、最好的學(xué)生輔勒他學(xué)生進(jìn)行操
作,并解答其遇到的問題
■【學(xué)生】對比自己的操作,對比操作方法,提升操作技巧
■【教師】簡要總結(jié)本節(jié)課的要點(diǎn)
總結(jié)知識點(diǎn),鞏
簡要說明C語言的結(jié)構(gòu)。學(xué)會(huì)查看編譯器給出的錯(cuò)誤信
課堂小結(jié)固學(xué)生對C語言
息,分析并修改程序
(3min)創(chuàng)建程序的步驟
及特點(diǎn)
■【學(xué)生】總結(jié)回顧知識點(diǎn)
■【教師】布置課后作業(yè)通過課后作業(yè)
作業(yè)布置請根據(jù)課堂知識,自己新建教材P25編程題復(fù)習(xí)鞏固學(xué)到的
(2min)知識才是高實(shí)際操
作能力
■【學(xué)生】完成課后任務(wù)
本次課是學(xué)生的第一節(jié)C語言編程課,通過第一節(jié)課的介紹,學(xué)生對這門課程有了
基礎(chǔ)的印象,了解了該課程的教學(xué)內(nèi)容,以及本課程的定位和作用。提高了學(xué)生對本課
教學(xué)反思程的學(xué)習(xí)興趣。此外,對C語言環(huán)境和基本結(jié)構(gòu)進(jìn)行了介紹,學(xué)生對本課程的學(xué)習(xí)性質(zhì)
都很高,取得了不錯(cuò)的教學(xué)效果,但由于是第一次接觸C語言,學(xué)生理解不深刻,須課
下進(jìn)一步鞏固練習(xí).
課題解析漢諾塔游戲
課時(shí)2課時(shí)(90min)
知識技能目標(biāo):
(1)了解算法的概念和特點(diǎn).
(2)能分析具體問題,并能給出解決問題的方法和步驟。
教學(xué)目標(biāo)
素質(zhì)目標(biāo):
(1)學(xué)會(huì)多角度看待問題,轉(zhuǎn)換角度解決問題。
(2)養(yǎng)成事前規(guī)劃、事后總結(jié)的習(xí)慣。
教學(xué)重點(diǎn):算法的概念和特點(diǎn)
教學(xué)重難點(diǎn)
教學(xué)難點(diǎn):能分析具體問題,并能給出解決問題的方法和步驟。
教學(xué)方法案例分析法、問答法、討論法、講授法
教學(xué)用具電腦、投影儀、多媒體課件、教材、漢諾塔游戲模型
課前任務(wù)一考勤(2min)一新?顆?熱(1()min)一問題導(dǎo)入(5min)一傳授新知(30min)
教學(xué)設(shè)計(jì)
一任務(wù)實(shí)施(15min)—>效果展示(15min)—?課堂小結(jié)(lOmin)—?作業(yè)布置(3min)
教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計(jì)意圖
■【教師】布置課前任務(wù),提醒同學(xué)通過APP或其他學(xué)習(xí)軟件,
完成課前任務(wù)
通過課前假,
(1)制作一個(gè)3個(gè)圓盤的漢諾塔游戲模型,模擬漢諾塔游戲的
使學(xué)生了解所學(xué)
步驟,請記錄移動(dòng)圓盤的步驟并比一比誰完成得最快。
課前任務(wù)課程的重要性,增
(2)了解華羅庚先生在《統(tǒng)籌方法》這篇文章中介紹不同的泡
加學(xué)生的學(xué)習(xí)興
茶步驟.
趣
■【學(xué)生】完成課前任務(wù)
■【教師】清點(diǎn)上課人數(shù),記錄好考勤培養(yǎng)學(xué)生的組
考勤
織紀(jì)律性,掌握學(xué)
(2min)
■【學(xué)生】班干部報(bào)請假人員及原因,交假條生的出勤情況
■教【師】與學(xué)生簡單互動(dòng),介紹本節(jié)課的內(nèi)容等與學(xué)生相互熟
新課預(yù)熱悉,并讓學(xué)生了解
(10min)■學(xué)【生】每組推舉一名同學(xué)分享課前任務(wù)(1)和(2)這門課的大致要
■教【師】老師點(diǎn)評求
問題導(dǎo)入通過問題導(dǎo)入
■【教師】以上同學(xué)分享的步驟,就是完成工作的工程,即算法,
(5min)的方法,引導(dǎo)學(xué)生
10
引出算法的概念,并提出以下問題:主動(dòng)思考,激發(fā)學(xué)
生的學(xué)習(xí)興趣
算法有什么特點(diǎn)?
■【學(xué)生】分組討論并推舉一名同學(xué)回答問題
■【教師】通過學(xué)生的回答引入要講的知識
■【教師】通過PPT講解算法的概念
算法是為解決某一問題而提出的準(zhǔn)確而完整的方案,是
解決問題的方法和步驟。
【舉例】乘坐火車通??煞譃橐韵聨撞剑嘿徺I車票一
進(jìn)站一刷證件一上車f到達(dá)目的地f下車。這些步驟是按一
定順序進(jìn)行的,缺一不可。
在計(jì)算機(jī)領(lǐng)域,算法是對計(jì)算機(jī)中執(zhí)行的運(yùn)算過程的具
體描述,包括數(shù)值運(yùn)算算法和非數(shù)值運(yùn)算算法。數(shù)值運(yùn)算的
目的是求數(shù)值解,如求三角形面積、方程求解等。非數(shù)值運(yùn)
算涉及面比較廣,如人事信息管理、成績管理、圖書管理等。
對于同一個(gè)問題,不同的人往往會(huì)有不同的解題方法和
步驟。
通過教師的講
傳授新知廨口演示,使學(xué)
(30min)■【教師提問】提出問題生能很好掌握
請同學(xué)們分析求解S=l+2+3+…+99+100的方法和步驟。算法的概念
■【學(xué)生】分組討論,每組推舉一名同學(xué)分享
■【教師】通過總結(jié)學(xué)生的方法和步驟引出如下結(jié)論
對于同一個(gè)問題的解題方法也有優(yōu)劣之分,為了有效地進(jìn)
行解題,不僅需要保證算法的正確性,還需要考慮算法的質(zhì)量。
■【學(xué)生】聆聽、記錄、理解
?【教師】通過案例講解算法的概念
將漢諾塔游戲抽象為數(shù)學(xué)問題。如圖所示,從左到右有A、
B、C三根柱子,其中,A柱有從小疊到大的"個(gè)圓盤?,F(xiàn)要求
將A柱的圓盤移到C柱,期間應(yīng)遵守一個(gè)規(guī)則:一次只能移動(dòng)
一個(gè)圓盤,且大圓盤只能在小圓盤下面,求移動(dòng)的步驟和移動(dòng)
11
的次數(shù)。
4I
ABC
漢諾塔游戲框圖
■教【師】進(jìn)行算法分析
根據(jù)漢諾塔游戲的規(guī)則,要想將n個(gè)圓盤從A柱移到C
柱,須先將上面的n-1個(gè)圓盤移到B柱,然后就可以將第。個(gè)
圓盤直接從A柱移到C柱,最后將移走的n-1個(gè)圓盤從B柱移
到C柱。因此,該問題轉(zhuǎn)換成了移動(dòng)個(gè)圓盤的問題。
要將n-1個(gè)圓盤從A柱移到B柱,須先將上面的“-2個(gè)
圓盤移到C柱,然后將第n-1個(gè)圓盤從A柱移到B柱,最后
將移走的n-2個(gè)圓盤從C柱移到B柱??梢姡搯栴}轉(zhuǎn)換成
了移動(dòng)n-2個(gè)圓盤的問題。
依次類推,最終轉(zhuǎn)換成移動(dòng)最上面1個(gè)圓盤的問題。
為了便于理解,先來分析將3個(gè)圓盤從A柱移到C柱的過
程。
■【教師】結(jié)合實(shí)物模型或動(dòng)畫展示3個(gè)圓盤的移動(dòng)步驟
■【學(xué)生】觀察并記錄移動(dòng)步驟
移動(dòng)前的情況如圖2-1-3(a)所示。
移動(dòng)步驟如下:
(1)將上面的2個(gè)圓盤從A柱移到B柱(借助C柱),
如圖2-1-3(b)所示;
(2)將第3個(gè)圓盤從A柱移到C柱,如圖2-1-3(c)所
示;
(3)將2個(gè)圓盤移到C柱(借助A柱),如圖2-1-3(d)
所示。
12
AJL
ARC
czZ]i
ARC
<A)移動(dòng)前(B)第一步
iczZ]
ARC
L,
ABC
(C)第二步(D)第三步
圖2-1-33個(gè)圓盤的移動(dòng)過程
其中笫(2)步可直接實(shí)現(xiàn),第(1)步和第(3)步又可
分解為3步。
第(1)步可分解為:①將第1個(gè)圓盤從A柱移到C柱:
②將第2個(gè)圓盤從A柱移到B柱;③將第1個(gè)圓盤從C柱
移到B柱。
第(3)步可分解為:①將B柱上1個(gè)圓盤移到A柱;
②將B柱上剩下的圓盤移到C柱;③將A柱上圓盤移到C
柱。
將以上步驟綜合起來,將3個(gè)圓盤從A柱移到C柱共經(jīng)
歷7(BP23-1)步,即A-?C、A-B,C-B、A-C、B-A、B
-C、A—C。
將4個(gè)圓盤從A柱移到C柱共經(jīng)歷15(即24-1)步,即
將上面的3個(gè)圓盤從A柱移到B柱(7步),然后移動(dòng)第4
個(gè)圓盤(1步),再將上面的3個(gè)圓盤從B柱移到C柱(7步)。
由上面的分析可以推斷,將n個(gè)圓盤從A柱移到C柱需
經(jīng)歷2"-1步。這些步驟又可以概括為以下3步。
(1)將上面的n-1個(gè)圓盤從A柱移到B柱(借助C柱);
(2)將第n個(gè)圓盤從A柱移到C柱;
(3)將B柱上個(gè)圓盤移到C柱(借助A柱)。
13
■【教師】進(jìn)行算法描述
從算法分析可以看出,第(1)步和第(3)步都是把“1
個(gè)圓盤從一個(gè)柱移到另一個(gè)柱,采取的方法是一樣的,只是
柱子的名稱不同而已。將3個(gè)柱子分別用變量a、b和c表示,
設(shè)n個(gè)圓盤借助b柱從。柱移到c柱的函數(shù)為Hanoi(n,a,b,c),
則算法可用以下文字描述。
S1:如果n=l,輸出“Qfc",結(jié)束;否則,執(zhí)行S2。
S2:將n-1個(gè)圓盤從a移動(dòng)到b(借助c),即Hanoi
(n-l,a,c,fa)。
S3:將第"個(gè)圓盤從。移到c,即“a-c”。
S4:將n-1個(gè)圓盤從b移動(dòng)到c(借助a),即Hanoi
(n-l,b,o,c)o
這種使用SI、S2等序號代表執(zhí)行順序?qū)λ惴ㄟM(jìn)行描述的
方法稱為自然語言表示。用自然語言表示算法的優(yōu)點(diǎn)是通俗
易懂,缺點(diǎn)是文字冗長,不嚴(yán)謹(jǐn),表示復(fù)雜算法時(shí)不方便。
■教【師】提出任務(wù)
韓信點(diǎn)兵又稱中國剩余定理,相傳漢高祖劉邦問大將軍
韓信統(tǒng)御兵士多少,韓信答說,每3人一列余1人、每5人
一列余2人、每7人一列余4人、每13人一列余6人。劉邦
茫然而不知其數(shù)。
設(shè)韓信統(tǒng)御兵士人數(shù)介于5萬?6萬,你能幫他算出有
多少人嗎?寫出求解步驟
通過模仿,讓學(xué)
任務(wù)實(shí)施
生加深本次任務(wù)
(15min)■學(xué)【生】聆聽要求、進(jìn)行練習(xí)
的理解
■教【師】巡堂輔導(dǎo),幫助學(xué)生解決問題
■教【師】重點(diǎn)提示
設(shè)兵士人數(shù)為X,則x要同時(shí)滿足以下4個(gè)條件:①x
除以3余1;②x除以5余2;③x除以7余4;④x除以
13余6。
使用任務(wù)驅(qū)動(dòng)
效果展示
■【學(xué)生】每組派一名代表展示效果法教學(xué),通過展示
(15min)
任務(wù)實(shí)施效果,使
14
學(xué)生帶著問題進(jìn)
■【教師】點(diǎn)評并打分
行學(xué)習(xí)
■【教師】總結(jié)算法的特點(diǎn)
一般來講,一個(gè)有效的算法應(yīng)具有以下5個(gè)特點(diǎn)。
(1)有窮性。一個(gè)算法必須在執(zhí)行有限個(gè)操作步驟后終
止,且每一個(gè)步驟都須在有限的時(shí)間內(nèi)完成。例如,等差數(shù)
列求和時(shí),這個(gè)數(shù)列必須是有限的,如果沒有這個(gè)限制,計(jì)
算機(jī)將一直累加下去而無法停止。
(2)確定性。算法中每步操作的含義都必須是明確的,
即為要執(zhí)行的每步操作做出清晰而嚴(yán)格的規(guī)定。例如,在溫
度控制程序中,不能出現(xiàn)諸如“溫差較大時(shí),系統(tǒng)迅速升溫
或降溫”等模糊詞語。
(3)有效性,也稱可行性。即算法中的每步操作都應(yīng)該
能有效執(zhí)行,一個(gè)不可執(zhí)行的操作是無效的。例如,一個(gè)數(shù)
除以0就是一個(gè)無效操作,應(yīng)當(dāng)避免這種操作。
(4)有零個(gè)或多個(gè)輸入。這里的輸入是指在算法開始之
前所需要的初始數(shù)據(jù)。輸入的多少取決于特定的問題。例如,
總結(jié)知識點(diǎn),鞏
課堂小結(jié)和練求等差數(shù)列1+2+3+…+n的累加時(shí),需要輸入n的值;再如,
項(xiàng)目一中的任務(wù)只有輸出而沒有輸入。固學(xué)生對算法概
習(xí)
念的理解,能總結(jié)
(10min)
(5)有一個(gè)或多個(gè)輸出。在一個(gè)完整的算法中至少會(huì)有算法的特點(diǎn)
一個(gè)輸出。編寫程序的目的就是要得到一個(gè)結(jié)果,如果程序
運(yùn)行完沒有任何結(jié)果輸出,那編寫程序也就失去了意義。
?【學(xué)生】總結(jié)回顧知識點(diǎn)
■【教師】布置課程練習(xí)
(1)一個(gè)算法應(yīng)該具有"確定性"等5個(gè)特性,下面對另外4
個(gè)特性的描述中錯(cuò)誤的是()。
A.有零個(gè)或多個(gè)輸入
B.有零個(gè)或多個(gè)輸出
C.有窮性
D.可行性
參考答案:B
(2)算法具有五個(gè)特點(diǎn),以下選項(xiàng)中不屬于算法特點(diǎn)的是
()0
A.簡潔性B.有窮性
15
C.確定性D.可行性
參考答案:A
(3)算法的有窮性是指()。
A.算法程序的運(yùn)行時(shí)間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
參考答案:B
(4)以下敘述中正確的是()。
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
參考答案:C
(5)以下敘述中錯(cuò)誤的是()。
A.算法正確的程序最終一定會(huì)結(jié)束
B.算法正確的程序可以有零個(gè)輸出
C.算法正確的程序可以有零個(gè)輸入
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
參考答案:B
■【學(xué)生】獨(dú)立做課堂練習(xí)
■【教師】隨機(jī)抽取學(xué)生的結(jié)果檢查
■【教師】布置課后作業(yè)
(1)有3個(gè)同樣大小的瓶子,一個(gè)裝可樂,一個(gè)裝雪碧,通過課后作業(yè)
還有一個(gè)空瓶,將可樂和雪碧互換瓶子盛放。設(shè)計(jì)算法。
作業(yè)布置復(fù)習(xí)鞏固學(xué)到的
(3min)知識,提高實(shí)際操
(2)求兩個(gè)數(shù)a和b的最大公約數(shù)。設(shè)計(jì)該算法。
作能力
■【學(xué)生】完成課后任務(wù)
本次課是讓學(xué)生熟悉算法的概念和特點(diǎn)。通過實(shí)際案例?!陮W(xué)生能分析具體
問題,并能給出解決問題的方法和步驟。學(xué)生參與興趣較高,但語言表達(dá)和歸
教學(xué)反思
納總結(jié)能力個(gè)體差異性大,需強(qiáng)化學(xué)生的語言表達(dá)能力和歸納總結(jié)能力。
16
課題判定是否是閨年算法的表示
課時(shí)2課時(shí)(90min)
知識技能目標(biāo):
(1)掌握流程圖和N-S修成圖表示算法的方法。
(2)了解C程序的三種基本結(jié)構(gòu)。
教學(xué)目標(biāo)
素質(zhì)目標(biāo):
(1)學(xué)會(huì)多角度看待問題,轉(zhuǎn)換角度解決問題。
(2)養(yǎng)成事前規(guī)劃、事后總結(jié)的習(xí)慣。
教學(xué)重點(diǎn):掌握流程圖和N-S流程圖的繪制方法.
教學(xué)重難點(diǎn)
教學(xué)難點(diǎn):能分析具體問題,并能夠用流程圖和N-S流程圖表示算法
教學(xué)方法案例分析法、問答法、討論法、講授法
教學(xué)用具電腦、投影儀、多媒體課件、教材
課前任務(wù)—考勤(2min)一新課預(yù)熱(10min)一問題導(dǎo)入(5min)一傳授新知(38
教學(xué)設(shè)計(jì)min)一案例實(shí)施(10min)一任務(wù)實(shí)施(10min)一效果展示(10min)一課堂小結(jié)
(3min)作業(yè)布置(2min)
教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計(jì)意圖
■【教師】布置課前任務(wù),提醒同學(xué)通過APP或其他學(xué)習(xí)軟件,
完成課前任務(wù)通過課前任務(wù),
(1)常用的流程圖符號有哪些?使學(xué)生了解所學(xué)
課前任務(wù)課程的重要性,增
(2)討論判定某年為閏年的條件。
加學(xué)生的學(xué)習(xí)興
趣
■【學(xué)生】完成課前任務(wù)
■【教師】清點(diǎn)上課人數(shù),記錄好考勤培養(yǎng)學(xué)生的組
考勤
織紀(jì)律性,掌握學(xué)
(2min)■【學(xué)生】班干部報(bào)請假人員及原因,交請假條
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手寫訂單合同范例范例
- 充電樁投放合同范例
- 中級水利水電工程試題練習(xí)Ⅰ
- 市政類施工合同范例
- 商用射燈采購合同范例
- 上海模特簽約合同模板
- 做毛巾合同范例
- 2024年韶關(guān)煙臺客運(yùn)上崗證考試題
- 外賣快餐訂餐合同范例
- 2024年山西客運(yùn)資格證考試題目及答案解析
- 私立民辦高中學(xué)校項(xiàng)目招商引資方案
- 《快遞操作須知》課件
- 工商管理學(xué)科發(fā)展前沿
- 【臨床貓瘟的診斷與治療3500字(論文)】
- 2069-3-3101-002 WKB產(chǎn)品判定準(zhǔn)則-外發(fā)
- 小學(xué)生建筑課件詳解
- 愛物惜物教案反思
- 市政工程安全文明施工措施費(fèi)提取和使用計(jì)劃
- 天津市武清區(qū)2023-2024學(xué)年八年級上學(xué)期期中地理試題【含答案解析】
- 山東省臨沂市沂水縣2023-2024學(xué)年八年級上學(xué)期期中數(shù)學(xué)試題
- 15D501 建筑物防雷設(shè)施安裝
評論
0/150
提交評論