編程特例篇——LOGO語言
發(fā)表時間:2024-05-26 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]LOGO語言是一種早期的編程語言,也是一種與自然語言非常接近的編程語言,它通過“繪圖”的方式來學(xué)習(xí)編程,對初學(xué)者特別是兒童進(jìn)行寓教于樂的教學(xué)方式,所以,本期將它作為一種編程語言的特例而選入。 LOGO語言的概述LOGO語言創(chuàng)始于1968年,是美國國家科學(xué)基金會所資助的一項專案研究,在麻省理工學(xué)院(...
LOGO語言是一種早期的編程語言,也是一種與自然語言非常接近的編程語言,它通過“繪圖”的方式來學(xué)習(xí)編程,對初學(xué)者特別是兒童進(jìn)行寓教于樂的教學(xué)方式,所以,本期將它作為一種編程語言的特例而選入。 LOGO語言的概述LOGO語言創(chuàng)始于1968年,是美國國家科學(xué)基金會所資助的一項專案研究,在麻省理工學(xué)院(MIT)的人工智能研究室完成。LOGO源自西臘文,原意即為思想,是由一名叫佩伯特的心理學(xué)家在從事兒童學(xué)習(xí)的研究中,發(fā)現(xiàn)一些與他的想法相反的教學(xué)方法,并在一個假日中出外散步時,偶然間看到一個像海龜?shù)臋C(jī)械裝置觸發(fā)靈感,于是利用他廣博的知識及聰明的才智而最終完成了LOGO語言的設(shè)計。
繪圖是LOGO語言中最主要的功能,佩伯特博士就是希望能通過繪圖的方式來培養(yǎng)學(xué)生學(xué)習(xí)電腦的興趣和正確的學(xué)習(xí)觀念。LOGO語言從開始發(fā)展到現(xiàn)在,已有Windows版本——MSWLogo,包括Windows 3.X版及Windows9X版(下載網(wǎng)址http://www.softronix.com/logo.html)等。在以前的LOGO語言中有一個海龜,它有位置與指向兩個重要參數(shù),海龜按程序中的LOGO指令或用戶的操作命令在屏幕上執(zhí)行一定的動作,現(xiàn)在,圖中的海龜由小三角形所替代。 LOGO語言的基本命令我們在下面介紹一些LOGO語言中最基本的繪圖命令:
1.與移動有關(guān)的指令:“前進(jìn)”、“后退”和“歸位”。前進(jìn)命令可讓海龜前移一定的單位數(shù),例如:執(zhí)行“Forward(前進(jìn)) 50”命令后,小海龜則會向前移動50個單位;后退命令則可讓小海龜向后移動,如果執(zhí)行“Back(后退) 50”命令,那么小海龜?shù)姆较虿粫l(fā)生改變,而會向后退50個單位;執(zhí)行歸位命令后,不論當(dāng)前小海龜?shù)奈恢眉胺较蛟鯓,它就會乖乖地回到繪圖區(qū)的中央位置,并且朝向屏幕的正上方。
2.與轉(zhuǎn)彎有關(guān)的指令:“右轉(zhuǎn)”和 “左轉(zhuǎn)”。右轉(zhuǎn)命令可讓小海龜按要求向右邊轉(zhuǎn)動一定的角度,例如:執(zhí)行“Right(右轉(zhuǎn)) 45”命令則小海龜?shù)某驅(qū)⑾蛴肄D(zhuǎn)動45度角;而左轉(zhuǎn)命令則可讓小海龜向左轉(zhuǎn)動,如:執(zhí)行“Left 45”命令則小海龜?shù)某驅(qū)⑾蜃筠D(zhuǎn)動45度角。這幾種命令可以驅(qū)動小海龜繞其中心旋轉(zhuǎn)一定的角度。
3.與控制有關(guān)的命令有REPEAT(重復(fù))、IF…THEN…ELSE…(條件執(zhí)行)等。如執(zhí)行REPEAT 4[FORWARD 200 RlGHT 9O]就能畫出圖2中的正方形,如果直接將移動命令和轉(zhuǎn)彎命令相結(jié)合,則寫出的語句就比較多,但都是一些重復(fù)地使用4次“Forward 100”和“Right 90”命令。 LOGO語言的特點LOGO語言之所以是兒童學(xué)習(xí)計算機(jī)編程最好的一種語言,就因為它是針對兒童而制作的編程語言,能使兒童在認(rèn)知與技能上得到較大的發(fā)展。LOGO語言具有較強(qiáng)的針對性,因為對于兒童來說,“畫畫”比“文字處理”更具有活力,充分發(fā)揮自己的想象進(jìn)行創(chuàng)作,而文字處理卻比較枯燥,不適合兒童。LOGO則主要用于“圖畫”制作,并且采用了“海龜繪圖”的方式,適合兒童的特點,能充分引起他們的興趣和學(xué)習(xí)該門語言的積極性,達(dá)到寓教于樂的目的。在LOGO語言中,它的作圖方式與現(xiàn)在所用的作圖軟件不一樣,主要區(qū)別就在于LOGO語言的基本作圖的方法可以不采用坐標(biāo)方式,而是通過向前,后退、向左轉(zhuǎn)、向右轉(zhuǎn)、回家等兒童易于理解的語言和命令,這非常適合兒童的知識水平,使這些還未接觸坐標(biāo)為何物的兒童更容易上手。在用LOGO語言作圖時,需要學(xué)習(xí)者對一些常見的幾何特性進(jìn)行理解,了解常用的距離、角度和度數(shù)的概念。 LOGO語言的編程一般的編程語言都需要編寫程序,當(dāng)然,LOGO語言也不例外。由于指令容易輸入錯誤,不易修改且無法保存,更不能重復(fù)使用,如果需要重新繪制相同的圖形,那么必須輸入與以前相同的指令,并且這些曾輸入的指令不能加以組合。至于程序的內(nèi)容,是由解決問題的步驟所需要的指令組合而成的,需由設(shè)計者賦予該程序以名稱,以供識別。使用LOGO語言作圖,雖然可以通過命令行方式進(jìn)行,但這僅針對初學(xué)LOGO語言時,可以開始學(xué)一些常用命令,作出一些簡單的圖形,以引起兒童的興趣。在對命令比較了解及熟悉以后,就可以進(jìn)行針對性地學(xué)習(xí)一些簡單的程序編寫,作出更加漂亮的圖形。下面我將以MSWLogo V6.4為例來介紹如何建立一個程序的基本語法:
1.作為一個程序是以“起始”為開始,“終止”為結(jié)束。當(dāng)選擇“編輯新程序”時,在程序編輯區(qū)中將會出現(xiàn)以下的字符,供程序者填入相應(yīng)的命令。
To(起始) 程序名稱 N //修改程序名稱以供識別
…………..
…………..//輸入解決問題所用到的命令
…………..
End(終止)
2.繪制不同大小的圖形時需要選擇不同的參數(shù),所以使用者在設(shè)計程序時,需要使用一個比較適合的并有意義的名稱來代表,傳給參數(shù)的數(shù)值資料不同則執(zhí)行結(jié)果也就不同,并且程序在執(zhí)行過程中,也會不斷地變化參數(shù)的內(nèi)容。在選擇參數(shù)時,需要在參數(shù)名稱前面加上冒號,用來與一般程序中的命令區(qū)別開。如:
起始 程序名稱 N :參數(shù)1 :參數(shù)2 … //定義列
…………….
Repeat :參數(shù) 1[Forward :參數(shù)2 …] //輸入解決問題所需的命令
…………….
終止
當(dāng)程序內(nèi)容含有參數(shù)時,必須將所有參數(shù)寫在定義列之后,以便執(zhí)行時能接收必要的資料。
3.IF…THEN …ELSE…條件執(zhí)行語句
基本格式為:IF 條件表達(dá)式 THEN [命令行1] ELSE [命令行2]
[命令行3]
當(dāng)條件表達(dá)式:成立時,執(zhí)行[命令行1]內(nèi)的命令;不成立時,執(zhí)行[命令行2]內(nèi)的指令;在執(zhí)行完[命令行1]或[命令行2]之后,則繼續(xù)執(zhí)行[命令行3]