โลโก้ - คู่มือฉบับย่อ
โลโก้เป็นภาษาการเขียนโปรแกรมที่ง่ายและง่ายต่อการเรียนรู้ ใช้สำหรับสอนนักเรียนและเด็ก ๆ เกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์
ทำไมเราจึงควรเรียนรู้ภาษาโลโก้?
- เพราะมันสนุกฮามากมาย.
- ช่วยเพิ่มความรู้สึกเชิงตรรกะของเด็ก ๆ
- พัฒนาทักษะการเขียนโปรแกรม
- เป็นวิทยาศาสตร์คอมพิวเตอร์ที่แท้จริง
โลโก้เป็นภาษาโปรแกรมที่ง่ายและน่าสนใจในการเรียนรู้ มีความลึกเพียงพอที่จะทำอะไรก็ได้ซึ่งสามารถทำได้ในภาษาโปรแกรมคอมพิวเตอร์อื่น ๆ
จะดาวน์โหลดและติดตั้งซอฟต์แวร์ MSW Logo ได้อย่างไร?
หากไม่ได้ติดตั้ง Logo Programming Software ในคอมพิวเตอร์เราสามารถดาวน์โหลดได้ฟรีจากลิงค์ต่อไปนี้ -
www.softronix.com/mswlogo.htmlหลังจากติดตั้งแล้วไอคอนโลโก้จะปรากฏบนเดสก์ท็อปของคอมพิวเตอร์ของคุณ
หน้าจอโลโก้ MSW มีสองส่วน -
- หน้าต่างรูปวาดด้านบนโดยมี TURTLE รูปสามเหลี่ยมอยู่ตรงกลาง
- หน้าต่าง Commander ดังที่แสดงในภาพหน้าจอต่อไปนี้
เราจะเขียนคำสั่งในบรรทัดคำสั่งนั่นคือกล่องข้อความที่ด้านล่างของหน้าต่าง Commander ในการดำเนินการหรือเรียกใช้คำสั่งเหล่านี้ให้กด Enter หรือคลิกปุ่มดำเนินการ นอกจากนี้เรายังสามารถเขียนและรันคำสั่งออนไลน์ได้มากกว่าหนึ่งคำสั่งในแต่ละครั้ง
ประวัติคำสั่งจะปรากฏในกล่องสีเทา คลิกบรรทัดในประวัติเพื่อข้ามไปยังบรรทัดคำสั่งที่เกี่ยวข้องจากนั้นเราสามารถทำการเปลี่ยนแปลงได้ (หากจำเป็น) เมื่อเสร็จแล้วให้กด Enter หรือคลิกปุ่มดำเนินการ
คำสั่งการวาดโลโก้ที่เรียบง่ายจะเลื่อนเต่าไปข้างหน้าและข้างหลังและยังหมุนไปทางขวาหรือซ้าย คำสั่งและตัวย่อมีให้ด้านล่าง -
- fd - ไปข้างหน้า
- bk - ย้อนกลับ
- rt - ขวา
- lt - ซ้าย
- cs - ล้างหน้าจอ
สามารถใช้ได้ทั้งเวอร์ชันของคำสั่งเหล่านี้ ยกเว้นคำสั่ง cs แต่ละคำสั่งเหล่านี้ต้องตามด้วยค่าเดียวที่เรียกว่าอาร์กิวเมนต์ อาร์กิวเมนต์สำหรับ fd และ bk คือหน่วย rt และ lt คือมุมที่สามารถเป็นจำนวนเต็ม การหมุน 360 องศาเป็นการหมุนที่สมบูรณ์ดังนั้นการหมุน 375 องศาจึงเท่ากับ 1/15 องศา
forward 60 หรือ fd 60 หมายถึงก้าวไปข้างหน้า 60 ก้าว
right 90 หรือ rt 90 หมายถึงเลี้ยวขวา 90 องศา
left 90 หรือ lt 90 หมายถึงเลี้ยวซ้าย 90 องศา
back 60 หรือ bk 60 หมายถึงย้อนกลับไป 60 ก้าว
clearscreen หรือ csหมายถึงลบภาพวาดทั้งหมด สิ่งนี้ตั้งเต่าไว้ตรงกลาง
หน้าต่างกราฟิกมีระบบพิกัด ค่าของพิกัดทั้งสอง (ปกติเรียกว่า x และ y) ที่ศูนย์กลางคือ 0, 0 ที่มุมตะวันออกเฉียงเหนือคือ 250, 250; ที่มุมตะวันออกเฉียงใต้คือ 250, -250 ที่มุมตะวันตกเฉียงใต้คือ -250, -250; ฯลฯ หากเต่าพยายามเดินออกไปด้านใดด้านหนึ่งของหน้าจอมันจะพันรอบ ด้านขวาห่อไปทางด้านซ้ายและด้านบนห่อไปด้านล่าง
ระบบการเขียนโปรแกรมจำนวนมากทำงานบนระนาบพิกัด 'xy' สองแกนชนิดเดียวกันซึ่งเราทำงานร่วมกับพีชคณิตเช่นกัน
ที่นี่ '0 0' คือศูนย์กลางหรือจุดเริ่มต้น (ไม่มีเครื่องหมายจุลภาคหรือวงเล็บที่นี่!) ในสถานะซูมกึ่งกลาง - "ปกติ" หน้าจอรูปวาดของโลโก้จะแสดงพื้นที่ประมาณ 150 จุดขึ้นหรือลงและ 300 จุดทางขวาหรือซ้ายจากตรงกลาง
เต่าสามารถกำกับด้วยส่วนหัวที่สอดคล้องกับเข็มทิศโดยมี 0 หรือ 360 องศาชี้ขึ้นตรง 90 องศาไปทางขวาและอื่น ๆ คุณสามารถตั้งค่าตัวแปรเป็นตัวเลขระหว่าง 0 ถึง 360 แล้วเดินไปบนเส้นทางนั้น
คำสั่งเต่า
ตอนนี้ให้เราลองใช้คำสั่ง คำสั่งจะออกหนึ่งคำสั่งต่อบรรทัดตามด้วยการส่งคืนรถ คำสั่งเหล่านี้หลายคำสั่งสามารถพิมพ์ติดต่อกันได้ในหน้าต่างคำสั่งตามด้วยการส่งคืนแคร่ ผลกระทบต่อเต่าก็เช่นเดียวกัน อย่างไรก็ตามหากคุณพิมพ์คำสั่งซึ่งต้องใช้อินพุตตั้งแต่หนึ่งรายการขึ้นไปและระบุอินพุตที่ขาดหายไปในบรรทัดถัดไปโลโก้จะแสดงข้อผิดพลาด
ต่อไปนี้เป็นคำสั่งฝึกซึ่งแสดงผลลัพธ์ที่ต้องการทางด้านขวา
คำสั่ง - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120ทำให้เต่าวาดรูปสามเหลี่ยมดังที่คุณเห็นโดยการลองใช้
คำสั่งเหล่านี้อ่านจากด้านซ้ายไปทางขวา ตั้งแต่คำสั่งfdต้องการหนึ่งอาร์กิวเมนต์มันถูกนำมาเป็นค่าถัดไป ในทำนองเดียวกันrtจะโต้แย้งเช่นกัน ดังนั้นโลโก้สามารถให้ความหมายที่ชัดเจนสำหรับสตริงอักขระแต่ละตัวเหล่านี้ สำหรับคำสั่งโลโก้บางคำจำเป็นต้องใช้ตัวคั่น
ต่อไปนี้เป็นคำสั่งฝึกหัดบางคำที่มีผลลัพธ์ที่ต้องการทางด้านขวา
ต่อไปนี้เป็นแบบฝึกหัดเพื่อตรวจสอบความถนัดของคุณในสิ่งที่คุณได้เรียนรู้จนถึงตอนนี้ในบทนี้
โลโก้มีคำสั่งการวาดอื่น ๆ จำนวนมากซึ่งบางคำสั่งจะได้รับด้านล่าง
pu - penup
pd - เพนดาวน์
ht - ซ่อนเต่า
dt - การแสดงเต่า
setpensize
คำสั่ง pendown และ penup บอกให้เต่าทิ้งหมึกไว้บนหน้าจอในขณะที่มันเคลื่อนที่หรือไม่ให้ทิ้งหมึกตามลำดับ hideturtle และ showturtleคำสั่งซ่อนหรือแสดงเต่า แต่จะไม่ส่งผลต่อความสามารถในการทิ้งหมึกขณะเคลื่อนที่ คำสั่ง home ทำให้เต่ากลับไปที่กลางหน้าจอ มันอาจทิ้งหมึกไว้เมื่อเต่ากลับมาที่กลางหน้าจอ คำสั่ง setpensize กำหนดขนาดปากกาวาด
penup หรือ pu หมายถึงหยิบปากกาเพื่อให้คุณสามารถเคลื่อนย้ายเต่าได้โดยไม่ต้องออกจากราง
- pendown หรือ pd หมายถึงหยิบปากกาลงเพื่อให้คุณสามารถย้ายเต่าและออกจากรางได้
- hideturtle หรือ ht หมายถึงซ่อนเต่าเพื่อให้คุณได้ชื่นชมภาพวาดของคุณ
- showturtle หรือ st หมายถึงแสดงเต่าเพื่อให้คุณวาดภาพต่อไปได้
- setpensizeหมายความว่าสามารถทำให้ปากกามีขนาดใหญ่ขึ้นและมองเห็นได้ง่ายขึ้น ขนาดปากกาเริ่มต้นคือ - [1 1]
ต่อไปนี้เป็นคำสั่งฝึกหัดบางคำที่มีผลลัพธ์ที่ต้องการทางด้านขวา
โลโก้มีคำสั่งการวาดเพิ่มเติมอื่น ๆ หลายคำสั่งบางส่วนมีให้ด้านล่าง
- home
- cleartext หรือ ct
- label
- setxy
คำสั่ง label ใช้คำเดี่ยวเป็นสตริงที่ยกมา (เช่น“ a_string”) หรือรายการคำใน [] วงเล็บที่ไม่มีเครื่องหมายอัญประกาศ (เช่น [สตริงตัวอักษร]) และพิมพ์ลงบนหน้าต่างกราฟิกที่ตำแหน่งของเต่า . ให้เราพิจารณารหัสต่อไปนี้
setxyคำสั่งรับอาร์กิวเมนต์สองตัวถือว่าอันแรกเป็นค่าของ abscissa (แกนนอน) และอันที่สองเป็นค่าของการกำหนด (แกนแนวตั้ง) มันวางเต่าไว้ที่พิกัดเหล่านี้อาจจะทิ้งหมึกไว้ในขณะที่ไปถึงพิกัดเหล่านี้ ในสามรูปต่อไปนี้เราได้แสดงวิธีใช้คำสั่ง setxy
คำสั่ง cleartext ย่อ ctล้างขอบเขตข้อความของหน้าต่างคำสั่ง
ออกกำลังกาย
ต่อไปนี้เป็นแบบฝึกหัดเพื่อตรวจสอบความถนัดของคุณในสิ่งที่คุณได้เรียนรู้จนถึงตอนนี้ในบทนี้
ลำดับคำสั่งต่อไปนี้สร้างรูปแบบใด
cs pu setxy -60 60 pd home rt 45 fd 85 lt 135 fd 120
ตีความคำสั่งเหล่านี้เมื่อคุณอ่านจากซ้ายไปขวา ลองใช้เพื่อหาผลลัพธ์
ต่อไปนี้เป็นตารางสรุปคำสั่ง
ชื่อคำสั่ง | วัตถุประสงค์ |
---|---|
setx 100 | ตั้งค่าพิกัด x ของเต่าเป็น +100 ย้าย 100 จุดไปทางขวาของกึ่งกลาง ไม่มีการเปลี่ยนแปลงแนวตั้ง |
setx -200 | ย้ายเต่า 200 จุดไปทางซ้ายของกึ่งกลาง ไม่มีการเปลี่ยนแปลงแนวตั้ง |
เซตี้ 150 | ตั้งค่าพิกัด y ของเต่าเป็น 150 ย้าย 150 จุดเหนือกึ่งกลาง ไม่มีการเปลี่ยนแปลงในแนวนอน |
เซตี้ - 50 | ย้ายเต่า 50 จุดด้านล่างตรงกลาง ไม่มีการเปลี่ยนแปลงในแนวนอน |
setxy 100100 | ย้ายเต่าไปที่พิกัด xy 100100 |
แสดง xcor แสดง ycor |
รายงานพิกัด x ของเต่า รายงานพิกัด y ของเต่า |
การตั้งค่า 0 เซต 0 |
ชี้เต่าให้ตรงขึ้น“ high noon” |
เซท 120 | เลื่อนเต่า 120 องศาเพื่อชี้ไปที่ตำแหน่งสี่นาฬิกา |
ภาพหน้าจอต่อไปนี้เป็นการสาธิตที่ใช้ได้จริงของคำสั่งข้างต้นบางส่วน
ตัวแปรคือชื่อของตำแหน่งหน่วยความจำซึ่งสามารถมีค่าได้ ในคอมพิวเตอร์ตำแหน่งหน่วยความจำแต่ละตำแหน่งจะมีที่อยู่จำนวนเต็ม เนื่องจากจะเป็นการยากที่จะจำที่อยู่ของสถานที่แต่ละแห่งที่มีค่าที่โปรแกรมใช้นักวิทยาศาสตร์คอมพิวเตอร์จึงค้นพบวิธีการให้สถานที่เหล่านี้เป็นชื่อสัญลักษณ์ เมื่อตัวแปรมีชื่อเราสามารถใช้และจัดการได้
ตัวแปรเป็นชื่อที่กำหนดซึ่งเป็นสตริงของตัวอักษร ชื่อตัวแปรสามารถประกอบด้วยตัวอักษร (ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่) ตัวเลขและขีดล่าง ชื่อตัวแปรสามารถเข้าถึงได้ในการคำนวณโดยใช้ ":" นำหน้า ให้เราพิจารณาตัวอย่างต่อไปนี้ในภาพหน้าจอ
ในตัวอย่างข้างต้นเราได้กำหนดตัวแปรสองตัว first_name, 100_last_name_200 และเริ่มต้นด้วยค่า Amal และ Das โดยใช้ข้อความต่อไปนี้ -
- สร้าง“ first_name“ Amal
- สร้าง“ 100_last_name_200“ Das
นอกจากนี้เรายังพิมพ์ตัวแปรทั้งสองนี้ด้วยคำสั่ง print: first_name และ print: 100_last_name_200
ตัวอย่างต่อไปนี้แสดงวิธีกำหนดตัวแปรตัวเลข -
ที่นี่เราได้กำหนดตัวแปรตัวเลขสองตัวแปร val1 และ val2. เราได้ทำการบวกและลบโดยใช้มันด้วย
โลโก้แสดงการดำเนินการทางคณิตศาสตร์ตามปกติของการบวกการลบการคูณและการหารซึ่งแสดงด้วยสัญลักษณ์ +, -, *, / แต่ละการดำเนินการเหล่านี้ก่อให้เกิดผลลัพธ์ หากคุณไม่ได้ทำบางอย่างกับผลลัพธ์เช่นพิมพ์โลโก้จะแสดงข้อผิดพลาด
ด้วยคำสั่งพิมพ์ผลลัพธ์ของการดำเนินการทางคณิตศาสตร์สามารถใช้และพิมพ์ในหน้าต่างคำสั่ง ตัวอย่างที่ให้ไว้ในภาพหน้าจอต่อไปนี้แสดงให้เห็นถึงสิ่งเดียวกัน
คำสั่งที่มีประโยชน์อื่น ๆ ได้แก่ -
sqrt - ใช้อาร์กิวเมนต์ที่ไม่ใช่ค่าลบหนึ่งอาร์กิวเมนต์และส่งกลับค่ารากที่สอง
power - ต้องใช้สองอาร์กิวเมนต์เรียกว่า 'a' และ 'b' และสร้าง a ยกกำลัง b
ln - ใช้อาร์กิวเมนต์เดียวและส่งคืนลอการิทึมตามธรรมชาติ
exp - ใช้อาร์กิวเมนต์เดียวและคำนวณ e ให้เป็นกำลังนั้น e คือจำนวนธรรมชาติ 2.718281828
log10 - ใช้ลอการิทึมเป็นฐาน 10 ของอาร์กิวเมนต์เดียว
ภาพหน้าจอต่อไปนี้แสดงตัวอย่างของคำสั่งข้างต้นพร้อมเอาต์พุตตามลำดับ
ตัวดำเนินการเลขคณิตมีลำดับความสำคัญที่กำหนดลำดับที่พวกเขาได้รับการประเมิน
Note- พิมพ์ 60 * sqrt 2 และพิมพ์ sqrt 2 * 60 ให้คำตอบที่แตกต่างกัน ที่นี่ตัวดำเนินการ * มีความสำคัญเหนือกว่าตัวดำเนินการ sqrt ดังนั้น * จะดำเนินการก่อน sqrt หากมีตัวเลือกดังที่มีในกรณีที่สอง
ด้วยเหตุนี้คำสั่งแรกจะพิมพ์ค่า 60 เท่าของรากที่สองของ 2 ในขณะที่คำสั่งที่สองพิมพ์รากที่สองของ 120 ดังที่แสดงในภาพหน้าจอต่อไปนี้
เรามักจะทำซ้ำลำดับของคำสั่ง โปรแกรมคอมพิวเตอร์มักจะทำงานซ้ำ ๆ ระบบการเขียนโปรแกรมทุกระบบมีวิธีการทำซ้ำหรือการทำซ้ำตามที่นักวิทยาศาสตร์คอมพิวเตอร์เรียกว่า ให้เราพิจารณาตัวอย่างต่อไปนี้ -
สมมติว่าเราต้องการวาดรูปสี่เหลี่ยมจัตุรัสที่มีด้านยาว 100 เราทำได้ด้วยโปรแกรมต่อไปนี้ -
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
เราสังเกตว่าคำสั่งสองคำสั่ง - fd 100 และ rt 90 ซ้ำกันสี่ครั้ง จะไม่ง่ายไปกว่านี้หรือที่จะบอกคอมพิวเตอร์ว่าควรทำสองคำสั่งนี้ซ้ำสี่ครั้งแทนที่จะเขียนสี่ครั้งติดต่อกัน เราสามารถทำได้โดยใช้คำสั่งต่อไปนี้ -
ช่วยประหยัดเวลาในการพิมพ์เพื่อสร้างสี่เหลี่ยม รูปแบบทั่วไปคือ:repeat number [commands]. เราต้องใช้คีย์เวิร์ด -repeat ตามด้วยตัวเลขและลำดับของคำสั่งใน [วงเล็บเหลี่ยม]
บ่อยครั้งเราอาจต้องทำซ้ำภายในการทำซ้ำ นี้เรียกว่าnesting. ให้เราดูตัวอย่างบางส่วนในเรื่องนี้
ต่อไปนี้เป็นแบบฝึกหัดเพื่อตรวจสอบความถนัดของคุณในสิ่งที่คุณได้เรียนรู้จนถึงตอนนี้ในบทนี้
บางครั้งมันก็เป็นเรื่องสนุกที่จะได้ผลลัพธ์จากการคำนวณที่คาดเดาไม่ได้ โลโก้มีขั้นตอนการสุ่มเพื่อสร้างตัวเลขสุ่ม มีอาร์กิวเมนต์เดียวและสร้างค่าจำนวนเต็มที่เลือกแบบสุ่มโดยสุ่มซึ่งมากกว่าหรือเท่ากับ 0 และน้อยกว่าค่าของอาร์กิวเมนต์ ดังนั้นหากคุณต้องการมุมสุ่มระหว่าง 0 ถึง 359 องศาคุณสามารถใช้คำสั่งrandom 360เพื่อผลิตมัน โปรดทราบว่าโลโก้จะแสดงข้อผิดพลาดเว้นแต่คุณจะทำบางอย่างกับผลลัพธ์เช่นการพิมพ์
ให้เราดูตัวอย่างต่อไปนี้ -
เราได้ออกคำสั่ง - print random 360 หลายครั้งในหน้าต่างคำสั่งด้านบนและหากคุณสังเกตเห็นทุกครั้งที่สร้างเอาต์พุตแบบสุ่ม
ต่อไปนี้เป็นคำสั่งฝึกหัดบางคำที่มีผลลัพธ์ที่ต้องการทางด้านขวา
โพรซีเดอร์จัดเตรียมวิธีการห่อหุ้มชุดคำสั่ง เมื่อสร้างโพรซีเดอร์แล้วสามารถใช้วิธีการใช้คำสั่งในตัว “ ความหมาย” ของโพรซีเดอร์คือความหมายของแต่ละคำสั่ง
ขั้นตอนที่ไม่มีอาร์กิวเมนต์มีคำว่า 'ถึง' (คำสงวน) และชื่อของกระบวนงานในบรรทัดแรก (คำสงวนในโลโก้ไม่สามารถใช้เป็นตัวแปรและมีความหมายและการใช้งานที่กำหนดไว้อย่างชัดเจน) มีคำสงวน 'end' อยู่ในบรรทัดสุดท้าย
โปรแกรมย่อยคือลำดับขั้นตอนที่มีชื่อสำหรับโปรแกรมอื่นในการดำเนินการ ชื่ออื่น ๆ สำหรับโปรแกรมย่อยคือโพรซีเดอร์และฟังก์ชัน ในโลโก้คุณบอกคอมพิวเตอร์ถึงวิธีการทำบางสิ่งตัวอย่างเช่น -
to square
repeat 4 [fd 100 rt 90]
end
เมื่อเราได้อธิบายขั้นตอนของเราสำหรับ Logo แล้วเราสามารถป้อนชื่อในบรรทัดคำสั่งได้เช่นเดียวกับที่เราทำกับสิ่งต่างๆในตัว ในกรณีนี้เราจะพิมพ์ 'สี่เหลี่ยม' ในบรรทัดคำสั่งและโลโก้จะค้นหาคำสั่งเพื่อสร้างสี่เหลี่ยม
คลิกปุ่มที่ระบุว่า Edall(สำหรับแก้ไขทั้งหมด) เพื่อเปิดโปรแกรมแก้ไขในตัวของโลโก้ (หากโลโก้ของคุณไม่มีปุ่ม Edall ให้พิมพ์ 'edall' ในบรรทัดคำสั่ง) บล็อกโค้ดต่อไปนี้มีโครงสร้างที่ต้องการของโปรแกรมย่อย
to procedurename
steps of your procedure here
end
ขั้นตอนหรือโปรแกรมย่อยจะต้องขึ้นต้นด้วยคำว่า 'ถึง' ตามด้วยชื่อที่เราคิด ขั้นตอนต่อไปคือการป้อนขั้นตอนเดียวกับที่เราเขียนในบรรทัดคำสั่ง ขั้นตอนต้องลงท้ายด้วยคำว่า 'end' บรรทัดความคิดเห็นหรือหมายเหตุทั้งหมดควรนำหน้าด้วยเครื่องหมายอัฒภาค (;)
ต่อไปนี้คือการสาธิตเชิงปฏิบัติของตัวอย่างข้างต้น -
ตอนนี้จากบรรทัดคำสั่งดำเนินการตามขั้นตอนโดยใช้ชื่อ "สี่เหลี่ยม" ดังที่แสดงด้านล่าง -
โพรซีเดอร์ไม่เพียง แต่มีคำสั่งในตัวเท่านั้น แต่ยังมีโพรซีเดอร์อื่น ๆ
ในตัวอย่างต่อไปนี้กระบวนงาน 'ดอกไม้' เรียกกระบวนงานที่กำหนดไว้ล่วงหน้าของเราว่า 'สี่เหลี่ยม' จากตัวของมัน
ภาพหน้าจอต่อไปนี้แสดงผลลัพธ์เมื่อมีการเรียกขั้นตอน "ดอกไม้" -
เราไม่ต้องการให้ทุกสี่เหลี่ยมมีขนาดเท่ากัน - เราต้องการความหลากหลาย ในโลโก้เราสร้างตัวแปรซึ่งค่าที่เราสามารถเปลี่ยนแปลงได้ เราจะใช้ขั้นตอนสี่เหลี่ยมเดียวกันกับการเปลี่ยนแปลงเล็กน้อยในตัวอย่างต่อไปนี้
to square :n
repeat 4 [fd :n rt 90]
end
เราให้โลโก้เป็นค่าการแทนที่สำหรับ ': n' ในบรรทัดคำสั่งดังที่แสดงด้านล่าง
square 50
square 75
square 100
นี่คือการสาธิตเชิงปฏิบัติของตัวอย่างข้างต้น -
ตอนนี้ให้เราพูดถึงวิธีการส่งสองข้อโต้แย้งไปยังขั้นตอน ภาพหน้าจอต่อไปนี้เป็นการสาธิตที่ใช้ได้จริง
ในขั้นตอนการเรียกซ้ำจะมีการเรียกซ้ำของขั้นตอนภายในขั้นตอน ให้เราพิจารณารหัสต่อไปนี้ -
to spiral_recur :n
if :n < 1 [stop]
fd :n
rt 20
spiral_recur 0.95 * :n
end
มีการเรียกขั้นตอน spiral_recur จากตัวกระบวนงานเอง ภาพหน้าจอต่อไปนี้แสดงการทำงานและผลลัพธ์ของโค้ด
การตัดสินใจและตัวแปรไปด้วยกัน โปรแกรมต้องสามารถเปลี่ยนหลักสูตรได้ขึ้นอยู่กับสถานการณ์ ตัวอย่างเช่นที่นี่เป็นกรอบสำหรับการวาดเกลียว มันมีลูปรูปแบบของการทำซ้ำที่แสดงไว้ก่อนหน้านี้และเนื้อหาของลูปมีไว้ให้เรากรอก
to spiral
make "n 1
while [:n < 100] [
make "n :n + 5
fd :n rt 90
]
end
โค้ดด้านบนแสดงคุณสมบัติใหม่หลายประการของไวยากรณ์ของ MSW Logo เราตั้งค่าตัวแปรเป็นค่าใหม่โดยการป้อน "make" จากนั้นชื่อของตัวแปรจะนำหน้าด้วยเครื่องหมายคำพูดคู่ "แทนที่จะเป็นเครื่องหมายทวิภาค": "ดังที่แสดงด้านล่าง
make "n 1
แม้ว่าเราจะใช้ตัวแปรที่มีเครื่องหมายจุดคู่ ":" อยู่ข้างหน้าชื่อ
while [:n < 100]
โค้ดที่อยู่หลัง 'while [เงื่อนไข]' ถูกเรียกใช้งานในขณะที่เงื่อนไขเป็นจริง เมื่อไม่เป็นความจริงอีกต่อไปเนื่องจาก (ในกรณีนี้) ค่าของ ': n' เพิ่มขึ้นมากกว่า 100 รหัสที่อยู่ด้านหลังวงเล็บจะถูกเรียกใช้
ภาพหน้าจอต่อไปนี้แสดงการทำงานและผลลัพธ์ของโค้ดด้านบน
ตอนนี้เราจะพูดถึงการใช้ 'if statement' ซึ่งมีรหัสที่จะดำเนินการก็ต่อเมื่อเงื่อนไขที่กำหนดเป็นจริง
นอกจากนี้ยังแสดงโลโก้ในตัวที่สร้างตัวเลขสุ่ม คำสั่งrandom 3สร้างหมายเลข 0 หรือ 1 หรือ 2 โดยพลการในลำดับสุ่ม จากนั้นขั้นตอนจะตัดสินใจว่าจะไป "สุ่ม" ตัวเลขสุ่มที่สร้างขึ้นจะถูกเก็บไว้ใน 'r' และในภายหลังขึ้นอยู่กับค่าของตัวแปร 'r' หนึ่งใน if-statement จะถูกดำเนินการซึ่งจะเป็นไปตามเงื่อนไข ดังนั้นหาก -
- ค่าของ 'r' คือ 0 แล้ว [fd 20] จะถูกดำเนินการ
- ค่าของ 'r' คือ 1 แล้ว [rt 90 fd 20] จะถูกดำเนินการ
- ค่าของ 'r' คือ 2 แล้ว [lt 90 fd 20] จะถูกดำเนินการ
ภาพหน้าจอต่อไปนี้แสดงการดำเนินการและผลลัพธ์ของการสนทนาข้างต้น
ลำดับของอักขระที่เป็นตัวอักษรและตัวเลขเช่น -“ อเมริกา”“ emp1234” เป็นต้นเป็นตัวอย่างของสตริง การนับอักขระเป็นขั้นพื้นฐานที่สุดของกระบวนการสตริงทั้งหมด คำตอบสำหรับคำถามstringlength "abc12ef กำหนดโดยขั้นตอนต่อไปนี้ -
to stringlength :s
make "inputstring :s
make "count 0
while [not emptyp :s] [
make "count :count + 1
print first :s
make "s butfirst :s
]
print (sentence :inputstring "has :count "letters)
end
ในขั้นตอนข้างต้น –'s 'คือตัวแปรที่มีสตริงอินพุต สตริงอินพุตตัวแปรมีสำเนาของสตริงอินพุต การนับตัวแปรเริ่มต้นด้วย 0 ในลูป while เงื่อนไขจะตรวจสอบว่าสตริงว่างหรือไม่ ในการนับลูปแต่ละครั้งตัวแปรจะเพิ่มขึ้น 1 เพื่อรองรับการนับความยาว คำสั่งprint first :sพิมพ์อักขระตัวแรกของสตริงที่เก็บไว้ใน 's' เท่านั้น
คำสั่ง make "s butfirst :sดึงสตริงย่อยโดยไม่รวมอักขระตัวแรก หลังจากออกจาก while-loop เราได้พิมพ์จำนวนอักขระหรือความยาวของสตริงอินพุต ต่อไปนี้คือการดำเนินการและผลลัพธ์ของรหัส
หน้าจอคอมพิวเตอร์ทำงานร่วมกับส่วนประกอบของแสงสีแดงสีเขียวและสีน้ำเงินดังนั้นบางครั้งจึงเรียกว่า RGB screens.
ในเมนู Set ของ Logo เราสามารถกำหนดสีขององค์ประกอบหน้าจอได้สามแบบ -
- ปากกาของเต่า
- การเติมเต่า (เช่นถังสีสำหรับเปลือกหุ้ม)
- พื้นหลังหน้าจอ
เรากำหนดสีโดยเลื่อนแถบเลื่อนทั้งสามตัวนี้ไปทางซ้ายและขวา จำไว้ว่าสีดำคือการไม่มีสีทั้งหมดและสีขาวคือสีทั้งหมดด้วยกัน การผสมแสงไม่เหมือนกับการผสมสี ตัวอย่างเช่นหากคุณผสมสีแดงและสีเขียวคุณจะได้สีโคลน เนื่องจากเป็นคอมพิวเตอร์ทุกสีจึงมีการแสดงตัวเลขภายใน
ทางด้านซ้ายสุดของสเกลเลื่อนคือศูนย์ (0) ทางด้านขวาคือ 255 ซึ่งเหมือนกับ 99 สำหรับคอมพิวเตอร์ (เป็น 2 8 - 1) ดังนั้นสีดำคือ [0 0 0] สีแดงคือ [255 0 0] สีเขียวคือ [0 255 0] สีน้ำเงินคือ [0 0 255] คุณสามารถทำอะไรก็ได้ระหว่างสีเหล่านี้และทั้งหมดนี้มีสีที่เป็นไปได้ 256 * 256 * 256 นั่นคือ 2 8 * 2 8 * 2 8หรือ 24 บิตของสี - ตัวเลขไบนารี 24 หลักภายในเครื่อง
คำสั่งต่อไปนี้จะทำให้คุณได้ปากกาสีแดงตัวใหญ่ -
setpensize [5 5]
setpencolor [255 0 0]
เมื่อคุณพบสีที่คุณชอบโดยใช้แถบเลื่อนคุณสามารถถามโลโก้ว่ามันคืออะไร: เลือกสีปากกาจากนั้นในหน้าต่างคำสั่งให้ป้อนคำสั่งต่อไปนี้
show pencolor
ภาพหน้าจอต่อไปนี้แสดงการทำงานและผลลัพธ์ของโค้ดด้านบน
คุณสามารถสร้างสี่เหลี่ยมสีได้โดยใช้ขั้นตอนต่อไปนี้ -
Step 1 - วาดสี่เหลี่ยมที่มีความยาวด้านข้าง 40 โดยใช้คำสั่งต่อไปนี้
repeat 4 [fd 40 rt 90]
Step 2 - เพิ่มขีดความสามารถโดยใช้คำสั่งต่อไปนี้
pu
Step 3- ไปที่จุดภายในสี่เหลี่ยม ตัวอย่างเช่นวางเต่าไว้ที่พิกัด (20, 20) โดยใช้คำสั่งต่อไปนี้
setxy 20 20
Step 4- เติมช่องสี่เหลี่ยมด้วยสีน้ำท่วมที่ตั้งไว้ ตัวอย่างเช่นในการตั้งค่าสีน้ำท่วมเป็นสีน้ำเงินให้ใช้คำสั่งต่อไปนี้
setfloodcolor [0 0 255]
ตารางต่อไปนี้แสดงคำสั่งที่เกี่ยวข้องกับสีและปากกาอีกสองสามคำสั่ง
คำสั่ง Color & Pen | วัตถุประสงค์ของคำสั่ง |
---|---|
setpencolor [rgb] setpc [rgb] |
กำหนดสีสำหรับปากกาของเต่า rgb เป็นตัวเลขในช่วง [0, 255] |
setfloodcolor [rgb] setfc [rgb] |
ตั้งค่าสีสำหรับพื้นที่รับรอง |
setscreencolor [rgb] setsc [rgb] |
ตั้งค่าสีสำหรับพื้นหลัง |
แสดง pencolor แสดงสีน้ำท่วม แสดงหน้าจอสี |
ระบุค่าปัจจุบันสำหรับ [rgb] ของไอเท็มที่ระบุชื่อ |
เติม |
ทิ้งถังสีน้ำท่วมปัจจุบันที่ตำแหน่งของเคอร์เซอร์ |
เติม |
ทิ้งถังสีน้ำท่วมปัจจุบันที่ตำแหน่งของเคอร์เซอร์ |
ลองดำเนินการชุดคำสั่งต่อไปนี้ -
cs - เพื่อล้างหน้าจอ
home - นำเต่าไปไว้ที่บ้าน
setpensize [5 5] - การตั้งค่าขนาดปากกา
setpencolor [255 0 0] - การตั้งค่าสีปากกาเป็นสีแดง
setfloodcolor [0 0 255] - ตั้งค่าสีน้ำท่วมเป็นสีน้ำเงิน
setscreencolor [0 255 0] - การตั้งค่าสีของหน้าจอเป็นสีเขียว
repeat 4 [fd 40 rt 90] - วาดรูปสี่เหลี่ยมจัตุรัสด้านข้างยาว 40
pu - ปากกาขึ้น
setxy 20 20 - วางเต่าไว้ที่พิกัด (20, 20)
fill - เติมสี่เหลี่ยมด้วยสีน้ำเงินที่กำหนด
ht - ซ่อนเต่า
คุณควรได้รับผลลัพธ์ต่อไปนี้จากการดำเนินการคำสั่งข้างต้น