徐晨
【摘 要】 數(shù)組是C語言中非常重要的概念,通常學(xué)生在初次接觸到這一概念時感到很抽象。本文通過生活中常常接觸到的超市儲物柜與數(shù)組進(jìn)行類比,將數(shù)組這一抽象概念與具體的物品建立聯(lián)系,再結(jié)合案例引出數(shù)組的定義、初始化和引用方法,以期提高C語言的教學(xué)效果。
【關(guān)鍵詞】 C語言;一維數(shù)組;教學(xué)設(shè)計(jì)
【中圖分類號】G64.26 【文獻(xiàn)標(biāo)識碼】A 【文章編號】2095-3089(2016)22-0-01
1 引言
數(shù)組是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,用編號區(qū)分這些變量的集合。這個名字稱為數(shù)組名,編號稱為下標(biāo),組成數(shù)組的各個變量稱為數(shù)組的元素。數(shù)組是C語言程序設(shè)計(jì)中非常重要的概念,學(xué)習(xí)數(shù)組的第一步是要掌握一維數(shù)組的定義、引用,以及初始化賦值方法。
2 教學(xué)方法簡述
(1)講授法
在理解數(shù)組的概念時需要使用講授法配合課件進(jìn)行活潑、有趣的講解。在教學(xué)過程中切忌照本宣科,這樣容易讓學(xué)生感到厭煩和枯燥,課件應(yīng)制作得美觀、生動,如選擇美觀大方的課件模板,結(jié)合節(jié)奏適宜的動畫,在舉例時盡量附上有關(guān)的圖片等。
(2)“教、學(xué)、做”三位一體教學(xué)法
對于出現(xiàn)的代碼示例,教師邊演示邊講解,學(xué)生隨后模仿學(xué)習(xí)、上機(jī)操作。既鍛煉了學(xué)生的實(shí)際動手能力,又使學(xué)生對所學(xué)知識有了更深刻的印象。
(3)協(xié)同學(xué)習(xí)法
由于學(xué)生學(xué)習(xí)水平有差異,基礎(chǔ)好的學(xué)生可以給基礎(chǔ)差的學(xué)生講解,學(xué)生之間傳遞的知識往往比老師傳授的更容易接受,這樣基礎(chǔ)差的學(xué)生有了初步的認(rèn)識,基礎(chǔ)好的學(xué)生得到知識的鞏固。
3 教學(xué)過程設(shè)計(jì)
(1)教學(xué)引入
教師用超市中可以存儲東西的儲物柜類比C語言中的數(shù)組,提及柜子上有編號,為后面介紹數(shù)組的下標(biāo)作鋪墊。
語言組織舉例:我們都見過超市的儲物柜,一排柜子上有編號,柜子中可以存儲東西,在C語言中也有類似的儲物柜——數(shù)組。
(2)數(shù)組的基本概念
教師將學(xué)過的概念——變量,比作小箱子,再將數(shù)組解釋為連著的小箱子,并且點(diǎn)出數(shù)組的重要特點(diǎn)——數(shù)組中的元素必須為相同的數(shù)據(jù)類型。
語言組織舉例:如果我們把變量比喻成小箱子,那么數(shù)組就是把這些小箱子都連起來。連起來的箱子的類型必須都是一樣的,這樣方便我們存儲一些同類型的內(nèi)容。比如,每門課的考試分?jǐn)?shù)裝入連著的一個個小箱子中,這些連著的小箱子就是一個數(shù)組。
教師用代碼段舉例不同類型的數(shù)組。例:
int array1[6];/*這個數(shù)組存的是整數(shù),能存6個整數(shù)*/
float array2[6];/*這個數(shù)組存的是實(shí)數(shù),能存6個實(shí)數(shù)*/
char array3[6];/*這個數(shù)組存的是字符,能存6個字符*/
(3)一維數(shù)組的定義
教師提問,能從上面的代碼段中總結(jié)出數(shù)組的定義方法嗎?
學(xué)生思考,通過觀察可以發(fā)現(xiàn)三個數(shù)組定義都是采用的數(shù)據(jù)類型 名字[數(shù)字]的格式,通過注釋可以猜測[]中的數(shù)字是數(shù)組能存放的數(shù)據(jù)個數(shù)。
教師分析并引出一維數(shù)組的定義方式:數(shù)據(jù)類型 數(shù)組名字[個數(shù)]
教師對定義語法進(jìn)行解釋,數(shù)據(jù)類型就是int,float,char等,表示這個數(shù)組能裝什么類型的數(shù)據(jù);數(shù)組名是自己取的,命名規(guī)則和變量名相同,并且要唯一,不能重復(fù);中括號[]必須要有,[]中的數(shù)字是指這個數(shù)組能存幾個元素。
(4)一維數(shù)組的初始化
教師提問,int a=0;這句C程序語句進(jìn)行了什么操作?
學(xué)生思考后回答,聲明int型變量a并對它賦初值。
教師將賦初值的概念引申到數(shù)組中,數(shù)組的初始化就好比變量賦初值。舉例,對“(2)數(shù)組的基本概念”中的數(shù)組進(jìn)行初始化。例:
int array1[6]={0,1,2,3,4,5};
char array2[6]={ h,e,l, l,o,c};
float array3[6]={1.1,1.2,1.3,1.4,1.5,1.6};
(5)一維數(shù)組元素的引用
學(xué)生上機(jī)練習(xí),結(jié)合“(4)一維數(shù)組的初始化”中的代碼段,在C程序中分別定義int型、char型、float型數(shù)組,并初始化。
學(xué)生在定義并初始化數(shù)組后,好奇數(shù)組是如何使用的,部分學(xué)生在嘗試直接修改數(shù)組內(nèi)容后失敗。
教師解釋,數(shù)組只能在初始化時用{}賦值,此后想要再修改、讀取數(shù)組中的內(nèi)容只能對數(shù)據(jù)中的某一個元素進(jìn)行操作。引用數(shù)組元素的方式是數(shù)組變量名[下標(biāo)],下標(biāo)是有序的,類似儲物柜下面的編號,范圍從0到數(shù)組長度-1。教師引導(dǎo)學(xué)生寫出將array1第6個元素值修改為10的代碼。
學(xué)生思考寫出代碼:array1[5]=10;部分學(xué)生容易錯寫為array1[6]=10;程序報(bào)錯。
教師強(qiáng)調(diào)數(shù)組下標(biāo)從0開始,最大下標(biāo)應(yīng)為長度-1。
教師提問,要想輸出整個數(shù)組中的內(nèi)容,應(yīng)該怎么辦呢?教師提示學(xué)生利用循環(huán)。
學(xué)生在教師提示下寫出代碼:
int i;
for(i=0;i<6;i++) printf(“%d”,a[i]);
(6)數(shù)組的一些獨(dú)特使用方法
教師介紹數(shù)組的一些獨(dú)特使用方法,學(xué)生上機(jī)驗(yàn)證。
①往數(shù)組中存儲時可以只存一部分,例如:int a[6]={0,1,2};
②申請數(shù)組時可以不寫[]中的數(shù)字,例如:int a[]={0,1,2,3,4,5};
4 結(jié)束語
通常學(xué)生在初次接觸到數(shù)組這一概念時,感到很抽象,難以理解。本文通過生活中常常接觸到的超市儲物柜與數(shù)組進(jìn)行類比,將數(shù)組這一抽象概念與具體的物品建立聯(lián)系,再結(jié)合案例引出數(shù)組的定義、初始化和引用方法這樣的教學(xué)設(shè)計(jì),將教學(xué)內(nèi)容自然串聯(lián)起來,步步深入,教學(xué)流程設(shè)計(jì)上符合認(rèn)知規(guī)律,學(xué)生學(xué)習(xí)起來更加輕松。
參考文獻(xiàn):
[1] 王宏旭. C程序設(shè)計(jì)中的數(shù)組的教學(xué)設(shè)計(jì)[J]. 信息技術(shù)與信息化, 2015(7): 122-123.
[2] 程妮. C語言中冒泡排序算法的教學(xué)設(shè)計(jì)與分析[J]. 現(xiàn)代計(jì)算機(jī), 2016(10): 59-63.
[3] 戴青云. VB教學(xué)中數(shù)組案例教學(xué)設(shè)計(jì)[J]. 科學(xué)中國人, 2014(11): 115-116.