《C語言程序設(shè)計(jì)》教案_第1頁
《C語言程序設(shè)計(jì)》教案_第2頁
《C語言程序設(shè)計(jì)》教案_第3頁
《C語言程序設(shè)計(jì)》教案_第4頁
《C語言程序設(shè)計(jì)》教案_第5頁
已閱讀5頁,還剩184頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論