簡介
LOGO語言創始於1968年,是美國國家科學基金會所資助的一項專案研究,在
麻省理工學院(
MIT)的人工智慧研究室完成。LOGO源自希臘文,原意即為思想,是由一名叫佩伯特的心理學家在從事兒童學習的研究中,發現一些與他的想法相反的教學方法,並在一個假日中出外散步時,偶然間看到一個像海龜的機械裝置觸發靈感,於是利用他廣博的知識及聰明的才智而最終完成了LOGO語言的設計。
繪圖是LOGO語言中最主要的功能,佩伯特博士就是希望能通過繪圖的方式來培養學生學習電腦的興趣和正確的學習觀念。LOGO語言發展至今,已有Windows版本——MSWLogo,包括Windows 3.X版及Windows9X版等。在以前的
LOGO語言中有一個海龜,它有位置與指向兩個重要參數,海龜按程式中的LOGO指令或用戶的操作命令在螢幕上執行一定的動作。現更新後系統圖中的海龜由小
三角形所替代。
LOGO語言
上世紀90年代,台灣推出繁體版的
LOGO語言,稱之為:【葛拉堡/Gerlabau】,其後中國大陸也推出了中文化的LOGO語言,分別是“
易樂谷/
ELOGO”和“創新CX-LOGO/微世界”,發揚了中文編程的優勢。
CX-LOGO語言是一種結構化
程式設計語言。它是互動式的,為少年兒童提供了良好的編程環境;它是
模組化的,便於程式的修改與擴充;它是過程化的,包含了過程、參數、變數等重要概念,並允許
遞歸調用;它有豐富的
數據結構類型,有生動的圖形處理功能。
CX-LOGO語言獨創的
流程圖工作方式和過程庫的建立,可方便的使用“搭積木”的方法,構建“知識”,使學習更容易、操作更簡便,學生只需簡單的學習就可以操作。
CX-LOGO語言不僅具備多種優秀程式設計語言的優點,而且更接近自然語言,生動有趣,簡單易學,它能用直觀的運動來體現編程的結果,讓少年兒童在遊戲中進行思考,在趣味中學習,深受少年兒童的歡迎。通過CX-LOGO語言的教學,以學習一種“玩具”為出發點,可以培養學生學習計算機的興趣,使他們初步了解計算機是如何工作的,為他們今後學習其他高級程式語言設計鋪設道路
CX-LOGO語言是專為我國少年兒童開發的創新平台,孩子們可以在電腦上指揮七色瓢蟲移動、轉向、行走、發光、回響外界刺激等。這些具有創造性的學習工具所倡導的“做中學”的學習理念,非常適合課堂教學,極大地激發了孩子們學習的興趣。
基本命令
1.與移動有關的指令:“前進”、“後退”和“歸位”。前進命令可讓海龜前移一定的單位數,例如:執行“
Forward(前進) 50”命令後,小海龜則會向前移動50個單位;後退命令則可讓小海龜向後移動,如果執行“Back(後退) 50”命令,那么小海龜的方向不會發生改變,而會向後退50個單位;執行歸位命令後,不論當前小海龜的位置及方向怎樣,它就會乖乖地回到繪圖區的中央位置,並且朝向螢幕的正上方。
2.與轉彎有關的指令:“右轉”和“左轉”。右轉命令可讓小海龜按要求向右邊轉動一定的角度,例如:執行“Right(右轉) 45”命令則小海龜的朝向將向右轉動45度角;而左轉命令則可讓小海龜向左轉動,如:執行“Left 45”命令則小海龜的朝向將向左轉動45度角。這幾種命令可以驅動小海龜繞其中心旋轉一定的角度。
3.與控制有關的命令有REPEAT(重複)、IF…THEN…ELSE…(條件執行)等。如執行REPEAT 4[FORWARD 200 RlGHT 9O]就能畫出圖2中的正方形,如果直接將移動命令和轉彎命令相結合,則寫出的語句就比較多,但都是一些重複地使用4次“Forward 200”和“Right 90”命令。
特點
LOGO語言之所以是兒童學習計算機編程最好的一種語言,就因為它是針對兒童而製作的程式語言,能使兒童在認知與技能上得到較大的發展。LOGO語言具有較強的針對性,因為對於兒童來說,“畫畫”比“文字處理”更具有活力,充分發揮自己的想像進行創作,而文字處理卻比較枯燥,不適合兒童。LOGO則主要用於“圖畫”製作,並且採用了“海龜繪圖”的方式,適合兒童的特點,能充分引起他們的興趣和學習該門語言的積極性,達到寓教於樂的目的。在LOGO語言中,它的作圖方式與新時代所用的作圖軟體不一樣,主要區別就在於LOGO語言的基本作圖的方法可以不採用坐標方式,而是通過向前,後退、向左轉、向右轉、回家等兒童易於理解的語言和命令,這非常適合兒童的知識水平,使這些還未接觸坐標為何物的兒童更容易上手。在用
LOGO語言作圖時,需要學習者對一些常見的幾何特性進行理解,了解常用的距離、角度和度數的概念。
編程指南
一般的程式語言都需要編寫程式,當然,
LOGO語言也不例外。由於指令容易輸入錯誤,不易修改且無法保存,更不能重複使用,如果需要重新繪製相同的圖形,那么必須輸入與以前相同的指令,並且這些曾輸入的指令不能加以組合。至於程式的內容,是由解決問題的步驟所需要的指令組合而成的,需由設計者賦予該程式以名稱,以供識別。使用LOGO語言作圖,雖然可以通過命令行方式進行,但這僅針對初學LOGO語言時,可以開始學一些常用命令,作出一些簡單的圖形,以引起兒童的興趣。在對命令比較了解及熟悉以後,就可以進行針對性地學習一些簡單的程式編寫,作出更加漂亮的圖形。 下面我將以MSWLogo V6.4為例來介紹如何建立一個程式的基本語法:
1.作為一個程式是以“起始”為開始,“終止”為結束。當選擇“編輯新程式”時,在
程式編輯區中將會出現以下的字元,供程式者填入相應的命令。
To(起始)程式名稱N //修改程式名稱以供識別
…………。。
…………。.//輸入解決問題所用到的命令
…………。。
End(終止)
2.繪製不同大小的圖形時需要選擇不同的參數,所以使用者在設計程式時,需要使用一個比較適合的並有意義的名稱來代表,傳給參數的數值資料不同則執行結果也就不同,並且程式在執行過程中,也會不斷地變化參數的內容。在選擇參數時,需要在參數名稱前面加上
冒號,用來與一般程式中的命令區別開。如:
起始程式名稱N :參數1 :參數2 …//定義列
……………。
Repeat :參數1[Forward :參數2 …] //輸入解決問題所需的命令
…………….
終止
當程式內容含有參數時,必須將所有參數寫在定義列之後,以便執行時能接收必要的資料。
3.IF…THEN …ELSE…條件執行語句
基本格式為:IF
條件表達式THEN [命令行1] ELSE [命令行2]
[命令行3]
當條件表達式:成立時,執行[命令行1]內的命令;不成立時,執行[命令行2]內的指令;在執行完[命令行1]或[命令行2]之後,則繼續執行[命令行3]
簡寫功能
基本繪圖
DRAW - 清屏、海龜回母位
CLEAN
CLEARSCREEN CS
CLEARTEXT CT
FD前進
BK後退
RIGHT TURN RT 右轉
LEFT TURN LT 左轉
PENUP PU 抬筆
PENDOWN PD 落筆
HIDETURTLE HT 藏龜
SHOWTURTLE ST 顯龜
CLEARSCREEN CS 清屏
HOME - 回家
REPEAT - 重複
SPLITSCREEN SS 圖文混合屏
FULLSCREEN FS 全圖形屏
TEXTSCREEN TS 全文字屏
NODRAW ND 全文字屏、清屏
WRAP - 環繞狀態
WINDOW - 視窗狀態
FENCE - 圍欄狀態
SHOW - 螢幕輸出
TO……END - 過程頭、尾
IF…THEN…ELSE
PAUSE
CONTINUE CO
EDIT ALL - 進入編輯部
STOP -
TOPLEVEL -
SETBG - 設定螢幕底色
坐標作圖
SETX - 指定海龜橫向位置
SETY - 指定海龜縱向位置
SETXY - 指定海龜任意位置
SETHEADING SETH - 指定海龜方向
XCOR - 顯示海龜當前位置的X坐標
YCOR - 顯示海龜當前位置的Y坐標
GETXY - 顯示海龜當前位置的X,Y坐標
HEADING - 顯示海龜指向角度
POTS - 顯示工作區內所有過程的標題
POPS(PO ALL)- 顯示工作區內所有過程的內容
PRINTOUT PO 顯示工作區內過程的內容
ERASE(ER ALL)ER 刪除工作區中的過程
DISK - 顯示當前盤
SETDISK - 設定當前盤
SAVE - 把程式存檔
LOAD - 讀程式檔案
SAVEPIC - 圖形存檔
LOADPIC - 讀圖形檔案
DELETE - 刪除檔案
RENAME REN 檔案改名
PRINT PR 換行列印
TYPE - 同行列印
SETCURSOR - 列印格式
OUTPUT OP 輸出
QUOTIENT - 求商函式
MAKE - 賦值
PRECISION - 數字顯示精度
字表處理
FIRST - 取首
LAST - 取尾
BUTFIRST BF 去首
BUTLAST BL 去尾
EMPTY?- 判斷是否為空
READ - 從鍵盤上接受一串字元
READCHAR RC 從鍵盤上接受一個字元
READLIST RL 從鍵盤上接受一個表
READQUOTE RQ 從鍵盤上接受一個字
RESULT:- 結果
TRUE - 真
FALSE - 假
COUNT - 測長函式
MAKE - 賦值
ITEM - 輸出表中第:K個元素
TEST - 測試條件
IFTRUE IFT 測試真
IFFALSE IFF 測試假
KEY?- 是否有鍵盤輸入
NUMBER?- 是否是數
WORD?- 是否是字
LIST?- 是否是表
WORD - 連線字
SENTENCE SE 字與表、表與表的連線
FPUT - 連線到表(字)首
LPUT - 連線到表(字)尾
LIST - 組成表
RUN - 運行表
DEFINE - 定義過程
ASCII - 輸出字元的ASCII碼
CHAR - 輸出ASCII碼值的字元