โลโก้ - คู่มือฉบับย่อ

โลโก้เป็นภาษาการเขียนโปรแกรมที่ง่ายและง่ายต่อการเรียนรู้ ใช้สำหรับสอนนักเรียนและเด็ก ๆ เกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์

ทำไมเราจึงควรเรียนรู้ภาษาโลโก้?

  • เพราะมันสนุกฮามากมาย.
  • ช่วยเพิ่มความรู้สึกเชิงตรรกะของเด็ก ๆ
  • พัฒนาทักษะการเขียนโปรแกรม
  • เป็นวิทยาศาสตร์คอมพิวเตอร์ที่แท้จริง

โลโก้เป็นภาษาโปรแกรมที่ง่ายและน่าสนใจในการเรียนรู้ มีความลึกเพียงพอที่จะทำอะไรก็ได้ซึ่งสามารถทำได้ในภาษาโปรแกรมคอมพิวเตอร์อื่น ๆ

จะดาวน์โหลดและติดตั้งซอฟต์แวร์ 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 - ซ่อนเต่า

คุณควรได้รับผลลัพธ์ต่อไปนี้จากการดำเนินการคำสั่งข้างต้น