摘 要:本文通過Scratch軟件設(shè)計(jì)的幾款趣味游戲,以圖形化的方式講解了C語言程序設(shè)計(jì)中的變量、數(shù)組、分支和循環(huán)等知識(shí)點(diǎn),幫助學(xué)生由淺入深的理解上述知識(shí),把枯燥的程序設(shè)計(jì)中的基本知識(shí),變成有趣的動(dòng)畫角色的行為或是得分來講解,在實(shí)踐中上取得了不錯(cuò)的效果。
【關(guān)鍵詞】Scratch 圖形化 C語言程序設(shè)計(jì)數(shù)組循環(huán)
國外開展計(jì)算機(jī)編程時(shí),早已將Scratch作為中小學(xué)生入門軟件,即便是大學(xué)生也是同樣學(xué)習(xí)Scratch軟件,在中國中小學(xué)中才剛剛興起,但是在大學(xué)里普及不夠,作為一款計(jì)算機(jī)編程的圖形化入門軟件,對(duì)于幫助大學(xué)生學(xué)習(xí)C語言程序設(shè)計(jì)有很大的幫助。因此我將其作為C語言教學(xué)的輔助軟件,尤其在講解變量、數(shù)組、選擇和循環(huán)等知識(shí)點(diǎn)時(shí),收到了很好的效果,并想與同行們一起分享這些收獲。
1 變量
現(xiàn)在的學(xué)生都喜歡打游戲升級(jí)刷分?jǐn)?shù),那我就通過游戲中的分?jǐn)?shù)變化來講解變量是怎么回事。先定義一個(gè)變量scores來存放分?jǐn)?shù),設(shè)置初值為0分,每多買一個(gè)水果、蔬菜(簡稱果蔬)就加分,不同的果蔬的分值不一樣,這樣通過購買不同的果蔬增加不同的分?jǐn)?shù),通過分?jǐn)?shù)的增加變成新值,最后通過購買了5個(gè)果蔬之后分?jǐn)?shù)累計(jì)到了60分的過程,來給演示所謂的變量變化的過程(見圖1)。原來就是在游戲(程序)運(yùn)行過程中,隨著判斷條件不斷變化而變化的量(變量名是代號(hào)而已)。這樣學(xué)生很容易接受這樣的演示和說明,除此之外,我還列舉了people_size、interval、speed、sizeofarrow來講解有關(guān)變量的內(nèi)容。
2 數(shù)組
通過對(duì)游戲中的有序存放果蔬購物車來演示數(shù)組是如何實(shí)現(xiàn)的,盡管其實(shí)Scratch中使用的是鏈表來實(shí)現(xiàn)類似數(shù)組,我這里的元素都是果蔬的名稱(字符串),從圖1可以看出,每放入一個(gè)果蔬shoppingbox,則都會(huì)運(yùn)行“將potato加入鏈表shoppingbox”這樣的操作,其實(shí)是增加數(shù)組元素的操作,shoppingbox內(nèi)容增加一個(gè)果蔬名稱,數(shù)組長度從0到5的變化過程,來描述數(shù)組如何有序存放數(shù)據(jù)元素,來形象闡述數(shù)組這個(gè)概念和作用,包括訪問和使用這些元素,以及加入、獲取和刪除相應(yīng)位置的元素值的功能。
3 選擇結(jié)構(gòu)
選擇結(jié)構(gòu)就是根據(jù)判斷邏輯條件的“真”、“假”,來決定執(zhí)行哪個(gè)分支的語句。其實(shí)重要的在于邏輯條件的選擇上,可以是判斷算術(shù)表達(dá)式、邏輯表達(dá)式、比較表達(dá)式等,但是結(jié)果必須是非真即假,C語言中表示選擇結(jié)構(gòu)的語句有if、if...else、switch語句,以及它們之間可以嵌套使用。慶幸的是,在Scratch中判斷條件的類型很多,比如兩個(gè)對(duì)象是否碰到、是否碰到紅色或藍(lán)色等、或是否距離某個(gè)對(duì)象的距離范圍和是否碰到邊緣都成為了選擇結(jié)構(gòu)的判斷類型,這使得學(xué)生在邏輯判斷條件類型上的理解更加深入,擴(kuò)展學(xué)生對(duì)邏輯判斷條件的認(rèn)識(shí)的范圍。如圖2中,小藍(lán)人碰到藍(lán)色1次score扣1分,如果scores為0分,則游戲結(jié)束,否則碰到紅旗,則勝利,這個(gè)是對(duì)if的使用;小黃人,如果碰到淡綠色就向左(-90)的方向移動(dòng),否則接收到street2home廣播再向右(90)移動(dòng),這也是if...else的使用。
4 循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)其實(shí)就是判斷條件滿足為真的情況下,不斷執(zhí)行循環(huán)體的語句,直到條件不滿足為假時(shí)退出循環(huán),執(zhí)行下面的語句,這是正常的過程,對(duì)于特殊情況會(huì)在循環(huán)體內(nèi),再滿足另外條件式,強(qiáng)行退出循環(huán)。C語言表示循環(huán)結(jié)構(gòu)的語句有while、do...while和for語句三種。Scratch中也是這幾種基本的語句,但是判斷條件卻和選擇結(jié)構(gòu)一樣的類型豐富。通過圖2,我們可以看到可以無條件也可以有條件的重復(fù)執(zhí)行塊內(nèi)的順序和選擇結(jié)構(gòu)的語句,例如小藍(lán)人,再碰到小紅旗之前可以一直跟隨鼠標(biāo)坐標(biāo)移動(dòng),直到碰到小紅旗游戲才結(jié)束,小黃人則無條件的一直移動(dòng),或是循環(huán)結(jié)構(gòu)使得造型lion1-a和lion1-b相互切換,實(shí)現(xiàn)小動(dòng)物跑動(dòng)的動(dòng)作,通過游戲演示,學(xué)生們能夠很容易的掌握循環(huán)的概念和用法。
5 結(jié)論
通過使用Scratch軟件設(shè)計(jì)游戲的方式,來講解C語言程序設(shè)計(jì)中變量、數(shù)組、選擇和循環(huán)結(jié)構(gòu)的概念和作用。用Scratch游戲中的得分scores、shoppingbox、檢測(cè)是否碰到對(duì)象或顏色、實(shí)現(xiàn)小動(dòng)物的跑動(dòng)動(dòng)作等形式,來演示和闡述,使得學(xué)生對(duì)上述知識(shí)點(diǎn)獲得由淺入深的理解,提高了他們學(xué)習(xí)C語言程序設(shè)計(jì)的積極性,也得到了良好的教學(xué)效果,我建議講授C語言程序設(shè)計(jì)的教師都可以嘗試一下這種方式,相信會(huì)給你帶來一些幫助的。
參考文獻(xiàn)
[1]張俊竹.展示程序設(shè)計(jì)[J].設(shè)計(jì),2013,(06):79-81.
作者簡介
謝鵬(1975-),男,山西省運(yùn)城市人。碩士學(xué)位。現(xiàn)為銀川大學(xué)信息傳媒學(xué)院工程師。研究方向?yàn)閿?shù)字圖像融合。
作者單位
銀川能源學(xué)院 寧夏回族自治區(qū)銀川市 750100