ภาษาโลโก้เป็นภาษาโปรแกรมเพื่อการศึกษา ถูกพัฒนาขึ้นในปี ค.ศ. 1967 โดย Wally Feurzeig, Seymour Papert และ Cynthia Solomon คำว่า “Logo” นั่นไม่ได้เป็นชื่อย่อ แต่มีที่มาคำว่า “logos” ในภาษากรีกซึ่งหมายความว่า “thought” หรือ “ความคิด” ซึ่งเป็นการบอกถึงความแตกต่างจากภาษาโปรแกรมอื่น โดยภาษาโลโก้จะเน้นการคำนวณตัวเลขเป็นหลัก ไม่ใช่กราฟฟิคหรือตรรกะ
เมื่อพูดถึงภาษาโลโก้ สิ่งหนึ่งที่เป็นที่รู้จักของทุกคนนั่นก็คือ “เต่าโลโก้” ซึ่งจะเคลื่อนที่และวาดรูปตามคำสั่งของเรา ผู้เรียนจะสามารถเข้าใจ คาดเดา และให้เหตุผล เกี่ยวกับการเคลื่อนที่ของเต่าโลโก้ได้โดยจินตนาการว่าถ้าตัวเองเป็นเต่าโลโก้จะเคลื่อนที่เพื่อวาดรูปได้อย่างไร
ประวัติ
ภาษาโลโก้ถูกสร้างขึ้นในปี ค.ศ. 1967 ที่สถาบันวิจัย Bolt, Beranek and Newman (BBN), Cambridge, Massachusetts โดยผู้พัฒนาคือ Wally Feurzeig, Cynthia Solomon และ Seymour Papert ซึ่งสถาบันนี้มีความรู้ในด้านปัญญาประดิษฐ์ การคำนวณเชิงตรรกะ และพัฒนาการทางจิตวิทยา
4 ปีแรกในการวิจัยและพัฒนาภาษาโลโก้อยู่ที่ BBN ภาษาโลโก้เวอร์ชันแรกเรียกว่า Ghost ซึ่งถูกพัฒนาโดยใช้ภาษา LISP มีจุดประสงค์เพื่อให้เด็กๆ ได้เรียนรู้คณิตศาสตร์ผ่านคำสั่งที่เป็นคำและประโยคง่ายๆ จากนั้นจึงมีการใช้เต่าโลโก้เป็น Cursor ในภายหลัง (ค.ศ. 1969)
เต่าและกราฟฟิค
คุณสมบัติอันเนที่รู้จักมาที่สุดของภาษาโลโก้ก็คือเต่าโลโก้ ซึ่งเป็น Cursor ปรากฏบนหน้าจอ ทำหน้าที่แสดงผลลัพธ์จากคำสั่งเคลื่อนที่หลากหลายคำสั่งประกอบรวมกันเป็นรูปภาพต่างๆ กราฟฟิคเต่าโลโก้ถูกเพิ่มเข้าไปในภาษาโลโก้โดย Seymour Papert ในช่วงหลังของยุด 1960s เพื่อรองรับหุ่นยนต์เต่าซึ่งเป็นหุ่นยนต์อย่างง่ายทำหน้าที่ควบคุม workstation ที่ถูกออกแบบให้ดำเนินการวาดรูปโดยใช้ปากกาขนาดเล็กติดไว้กับตัวหุ่นยนต์
เต่าโลโก้เคลื่อนที่ด้วยคำสั่งที่สัมพัธ์กับตำแหน่งของตัวมันเอง เช่น LEFT 90 หมายถึง หมุนไปทางซ้าย 90 องศา ภาษาโลโก้บางเวอร์ชันอนุญาตให้มีเต่าโลโก้ได้หลายตัว รองรับการตรวจจับการชนกัน และอนุญาตให้ผู้ใช้สามารถเปลี่ยนหน้าตาของเต่าโลโก้ได้ด้วย
ตัวอย่างโปรแกรม
- โปรแกรมวาดรูปสี่เหลี่ยม
fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 |
- โปรแกรมวาดรูปดาว 5 แฉก
fd 100 rt 144 fd 100 rt 144 fd 100 rt 144 fd 100 rt 144 fd 100 rt 144 |
ตัวอย่างรูปภาพที่ได้
คำสั่งพื้นฐาน
คำสั่ง | ความสามารถ | ตัวอย่าง |
fd ระยะทาง bk ระยะทาง |
forward = เดินหน้า backward = ถอยหลัง |
fd 100 = เดินหน้า 100 pixel bk 50 = ถอยหลัง 50 pixel |
rt องศา lt องศา |
right turn = หมุนขวา left turn = หมุนซ้าย |
rt 90 = หมุนไปทางขวา 90 องศา lt 45 = หมุนไปทางซ้าย 45 องศา |
repeat จำนวนครั้ง [ คำสั่ง ] | repeat = ทำคำสั่งต่อไปนี้ ซ้ำ n ครั้ง | repeat 3 [ fd 100 rt 120 ] repeat 4 [ fd 100 rt 90 ] repeat 6 [ fd 100 rt 60 ] |
TO ชื่อฟังก์ชัน :ตัวแปร คำสั่ง END |
function = สร้างชุดคำสั่ง | TO square :size repeat 4 [ fd :size rt 90 ] END |
cs clean |
clear screen = ล้างหน้าจอ clean = ล้างหน้าจอ |
|
pu pd |
pen up = ยกปากกา pen down = วางปากกา |
|
ht st |
hide turtle = ซ่อนเต่าโลโก้ show turtle = แสดงเต่าโลโก้ |
|
setxy พิกัดx พิกัดy | set (x,y) = กำหนดตำแหน่งเต่าโลโก้ | setxy 200 100 |
setpensize ขนาด setpencolor รหัสสี fill setscreencolor รหัสสี |
set pen size = กำหนดขนาดปากกา set pen color = กำหนดสีปากกา fill = ระบายสี set screen color = กำหนดสีพื้นหลัง |
setpensize 5 setpencolor 10 fill setscreencolor 10 |
label ข้อความ setlabelheight ขนาด setlabelfont ชื่อฟอนต์ |
label = แสดงข้อความบนหน้าจอ set label height = กำหนดขนาดข้อความ (px) set label height = กำหนดฟอนต์ข้อความ |
label “hello setlabelheight 36 setlabelfont “Times\ New\ Roman |
แหล่งอ้างอิง