หุ่นยนต์นักแสดง. รอบ พอร์ทัลการศึกษา

หน้าที่ของครูคือเดินบนเส้นทางนี้กับลูกศิษย์ ไม่ใช่ประกันความล้มเหลว แต่ป้องกันความผิดหวังเนื่องจาก ความยากลำบากที่เป็นไปได้- การจัดชั้นเรียนเป็นสิ่งสำคัญมากเพื่อให้เด็กๆ ค้นพบสิ่งใหม่ๆ ผ่านกิจกรรมที่มีความหมายสำหรับพวกเขา
หุ่นยนต์ช่วยศึกษาวิทยาการคอมพิวเตอร์ได้อย่างไร? ฉันจะระบุหัวข้อวิทยาการคอมพิวเตอร์เพียงไม่กี่หัวข้อที่มีพื้นฐานด้านวิทยาการหุ่นยนต์
หัวข้อ "ไฟล์และระบบไฟล์"
นักเรียนมีไมโครคอมพิวเตอร์ LEGO®NXT จากชุดการศึกษา LEGO Mindstorms NXT Education ไว้ใช้งาน ควบคุมมัน ระบบไฟล์เกิดขึ้นโดยใช้คำสั่งมาตรฐาน แต่เนื่องจากปริมาณหน่วยความจำไม่มาก การควบคุมสิ่งที่จำเป็นและสิ่งที่ไม่จำเป็นจึงต้องดำเนินการอย่างต่อเนื่อง เพื่อที่จะส่งเสียงการกระทำของหุ่นยนต์ แสดงรูปภาพ หรือเพิ่มไปยังไลบรารีของโปรแกรมการทำงาน จำเป็นต้องดำเนินการ แนวคิดพื้นฐานวิทยาการคอมพิวเตอร์: ไฟล์, ประเภทไฟล์, เส้นทางไฟล์, เมนู, โฟลเดอร์
หัวข้อ: “กระบวนการข้อมูล”, “การเข้ารหัสข้อมูล”
ชุดหุ่นยนต์ประกอบด้วยเซ็นเซอร์ที่บันทึกเสียง การสัมผัส และวิดีโอ เมื่อแปลงเป็นดิจิทัลแล้ว ข้อมูลก็สามารถแสดงบนหน้าจอแสดงผลได้ ฟังก์ชั่นพิเศษของไมโครคอมพิวเตอร์ทำให้สามารถทดลองกับเซ็นเซอร์และมอเตอร์โดยใช้โปรแกรมที่พร้อมใช้งาน หลังจากทำการทดลองกับเซ็นเซอร์หลายครั้ง ก็มีความเข้าใจเกิดขึ้น: เหตุใดเซ็นเซอร์วัดระยะอัลตราโซนิกจึงทำงานช้ากว่าเซ็นเซอร์แสงอินฟราเรด เสียงจึงกลายเป็นอย่างไร รหัสดิจิทัลและอื่น ๆ ศึกษา กระบวนการข้อมูลและหลักการเข้ารหัสข้อมูลช่วยให้เข้าใจถึงสาระสำคัญของเทคโนโลยีสารสนเทศได้อย่างลึกซึ้งยิ่งขึ้น

หัวเรื่อง: เทคโนโลยีการสื่อสาร.
ไมโครคอมพิวเตอร์ LEGO®NXT รองรับเทคโนโลยี การสื่อสารไร้สาย- คุณสามารถตั้งค่าได้โดยใช้ฟังก์ชัน Bluetooth การเชื่อมต่อไร้สายระหว่างไมโครคอมพิวเตอร์ NXT และอุปกรณ์อื่นๆ ที่มี อุปกรณ์บลูทูธตัวอย่างเช่นกับ NXT อื่นด้วย โทรศัพท์มือถือหรือกับคอมพิวเตอร์ ด้วยการสร้างการเชื่อมต่อ Bluetooth คุณสามารถ: ดาวน์โหลดโปรแกรมจากคอมพิวเตอร์จากระยะไกล; ส่งโปรแกรมจากอุปกรณ์อื่น (ไม่ใช่จากคอมพิวเตอร์) รวมถึงจาก NXT ส่งโปรแกรมไปยังทั้ง NXT รายบุคคลและกลุ่ม เทคโนโลยีนี้ทำให้สามารถควบคุมหุ่นยนต์โดยใช้โทรศัพท์มือถือได้

หัวข้อ “อัลกอริทึม. ผู้ดำเนินการอัลกอริทึม”, “สภาพแวดล้อมการเขียนโปรแกรม”
สำหรับความคุ้นเคยเบื้องต้นกับหุ่นยนต์ คุณสามารถตั้งโปรแกรมหน่วย NXT ได้โดยตรงโดยไม่ต้องเข้าถึงคอมพิวเตอร์ คุณสามารถสร้างได้โดยตรงบนหน้าจอแสดงผลโดยใช้เทมเพลตห้าคำสั่ง โปรแกรมง่ายๆและวนซ้ำ อย่างไรก็ตาม มันเป็นไปไม่ได้ที่จะทำโดยปราศจากความรู้เกี่ยวกับโครงสร้างอัลกอริธึมพื้นฐานและเชี่ยวชาญสภาพแวดล้อมการเขียนโปรแกรม ความสามารถในการตั้งโปรแกรมหุ่นยนต์ทำให้หุ่นยนต์เป็นนักแสดงที่เป็นสากล ซึ่งสามารถแก้ไขปัญหาต่างๆ ได้ คุณควรเริ่มต้นการเรียนรู้เทคโนโลยีการเขียนโปรแกรมด้วยสภาพแวดล้อมการเขียนโปรแกรมด้วยภาพ จากนั้นจึงก้าวไปสู่สภาพแวดล้อมเชิงเหตุการณ์ที่ทรงพลังและทันสมัยยิ่งขึ้น
ดังนั้นหุ่นยนต์จึงจำเป็นต้องมี ความรู้พื้นฐานวิทยาการคอมพิวเตอร์ และความปรารถนาอย่างไม่สิ้นสุดของนักเรียนที่จะทำให้หุ่นยนต์ของเขา “ดีที่สุด” ผลักดันให้เขาเชี่ยวชาญความรู้ใหม่ๆ
เหตุใดหุ่นยนต์จึงถูกเรียกว่าเป็นเครื่องมือการสอนในอุดมคติ? เนื่องจากเครื่องมือนี้ทำให้สามารถสร้างสภาพแวดล้อมการเรียนรู้ที่จะใช้ความปรารถนาตามธรรมชาติของเด็กในการเล่น สร้างสรรค์ และสื่อสารกับเพื่อนๆ ได้ ดังนั้นเราจึงเน้นย้ำถึงข้อดีของวิทยาการหุ่นยนต์ในฐานะเครื่องมือการสอน:
- การได้รับความรู้เกิดขึ้นระหว่างเกม
- การสร้างหุ่นยนต์ให้อิสระในการสร้างสรรค์
- นักเรียนส่วนใหญ่มีความปรารถนาที่จะปรับปรุงงานของตนเอง

ตัวอย่างเช่น ฉันอยากจะยกตัวอย่าง "หุ่นยนต์ส่งขนมฟรี" ที่สร้างขึ้นโดยนักเรียนชั้นประถมศึกษาปีที่ 6 โดยเป็นส่วนหนึ่งของหลักสูตร "การเขียนโปรแกรมหุ่นยนต์" ในระหว่างกิจกรรมนอกหลักสูตร หุ่นยนต์ประกอบจากชุด LEGO MINDSTORMS NXT Education 9797 ตามรุ่น Alpharex 1.0 มาตรฐาน และเสริมด้วยเซ็นเซอร์สีเพื่อระบุสถานะของหุ่นยนต์และถาดใส่ขนม
เป้าหมายของงานคือการนำแบบจำลองการเดินของมนุษย์ไปใช้ให้มากที่สุดเท่าที่จะเป็นไปได้ด้วยทรัพยากรที่มีอยู่ การเคลื่อนไหวของขาแต่ละข้างถูกควบคุมโดยมอเตอร์และชุดเกียร์และคันโยกแบบกลไก คันโยกคันหนึ่งขยับขาขึ้นและลง ส่วนอีกคันขยับไปข้างหน้า ในกรณีนี้ ร่างกายจะเบนไปทางขารองรับ เนื่องจากหุ่นยนต์จะรักษาสมดุล การเดินนี้เรียกว่า "สับ"
มอเตอร์ที่แยกต่างหากจะควบคุมเซ็นเซอร์วัดระยะและแขนคันโยกที่ยึดเซ็นเซอร์สัมผัสและเซ็นเซอร์สี ถาดใส่ขนมได้รับการแก้ไขแล้ว
หุ่นยนต์ถูกตั้งโปรแกรมให้ทำหน้าที่เป็นผู้ส่ง เช่น ขนมฟรี ตามอัลกอริทึมพฤติกรรมต่อไปนี้ หุ่นยนต์ติดตามการเคลื่อนไหวด้วยวลีโดยตรง: “ฉันเป็นหุ่นยนต์ Alpharex ฉันให้ขนมฟรี!” ผู้ที่ต้องการติดต่อกับหุ่นยนต์สามารถหยุดหุ่นยนต์ได้ด้วยท่าทาง หลังจากหยุด หุ่นยนต์จะพูดว่า: “ช่วยตัวเองแล้วกดปุ่ม!” เมื่อรับขนมแล้ว บุคคลนั้นจะต้องกดปุ่มหนึ่งครั้งเพื่อแสดงความกตัญญู หลังจากหยุดสามวินาที หุ่นยนต์จะเคลื่อนที่ต่อไป เมื่อขนมหมด (หุ่นยนต์ถูกตั้งโปรแกรมให้มีลูกอมตามจำนวนที่กำหนดบนถาด) หุ่นยนต์จะกล่าวคำอำลา ไฟแสดงสถานะสีแดงจะสว่างขึ้น และหุ่นยนต์จะหยุด

โปรแกรมสำหรับควบคุมหุ่นยนต์ถูกเขียนในสภาพแวดล้อม NXT Programming 2.0




ระบบคำสั่งหุ่นยนต์บังคับสำหรับผู้แสดง คำสั่งการเคลื่อนที่ของหุ่นยนต์: ขึ้น ลง ซ้าย ขวา หุ่นยนต์จะเลื่อนหนึ่งเซลล์ขึ้น ลง ซ้าย ขวา คำสั่ง Paint จะทาสีเซลล์ที่หุ่นยนต์ยืนอยู่ การตรวจสอบความจริงของเงื่อนไข: ว่างบน, ว่างด้านล่าง, ซ้ายฟรี, อิสระทางขวา หุ่นยนต์ตรวจสอบความจริงของเงื่อนไขว่าไม่มีผนังที่เซลล์ที่หุ่นยนต์ตั้งอยู่ คุณสามารถใช้สัญลักษณ์ของเงื่อนไขประสมที่เกิดจากการดำเนินการเชิงตรรกะ AND, OR, NOT




หุ่นยนต์นักแสดง การแก้ไขสภาพแวดล้อมโดยตรง คำสั่งทั้งหมดสำหรับการแก้ไขสภาพแวดล้อมจะดำเนินการโดยใช้เมาส์: วาง/ลบกำแพง - คลิกที่เส้นขอบระหว่างเซลล์ ทาสี/ล้างเซลล์ - คลิกที่เซลล์ ย้ายหุ่นยนต์ - ลากเมาส์ ไปยังเซลล์ที่ต้องการ


Executor Robot Menu คำสั่ง Robot Show Robot ทำให้หน้าต่างการสังเกต Robot มองเห็นได้ การตั้งค่าการพิมพ์ สร้างไฟล์ใน รูปแบบ PDFแสดงถึงสถานการณ์ปัจจุบันในรูปแบบสีหรือขาวดำ บันทึกสภาพแวดล้อมเพื่อสร้างไฟล์ ไฟล์ข้อความพร้อมคำอธิบายสถานการณ์ในรูปแบบ *.fil ภายใน ไฟล์นี้สามารถโหลดเป็นสภาพแวดล้อมเริ่มต้นได้ในภายหลัง (คำสั่งเปลี่ยนสภาพแวดล้อมเริ่มต้น) หรือเมื่อแก้ไขสภาพแวดล้อมเริ่มต้น (คำสั่งหน้าต่างแก้ไขสภาพแวดล้อมเริ่มต้นเปิด) เปลี่ยนเป็นสภาพแวดล้อมเริ่มต้น ตั้งชื่อไฟล์สภาพแวดล้อมเริ่มต้นใหม่ (โดยใช้กล่องโต้ตอบมาตรฐาน) และโหลดสภาพแวดล้อมเริ่มต้นใหม่ กลับสู่สภาพแวดล้อมเริ่มต้น ทำให้สภาพแวดล้อมเริ่มต้นเป็นปัจจุบัน


รูปภาพหุ่นยนต์นักแสดงของสถานการณ์ปัจจุบันในหน้าต่างการสังเกต รูปภาพของสภาพแวดล้อมปัจจุบันจะถูกวางไว้อย่างสมบูรณ์ในฟิลด์การทำงานของหน้าต่างการสังเกตหุ่นยนต์ พื้นหลังของพื้นที่ทำงานเป็นสีเขียว เซลล์ที่เติมไว้จะเป็นสีเทา มีเส้นสีดำบางๆ ระหว่างเซลล์ ผนังจะแสดงเป็นเส้นหนาสีเหลือง ในห้องทำงานของหน้าต่างสังเกตการณ์ หุ่นยนต์จะมีลักษณะเป็นเพชร


หุ่นยนต์นักแสดง ตัวอย่างที่ 1 มาสร้างอัลกอริทึมที่เรียกว่า “การเคลื่อนไหวของอัศวิน” เพื่อให้หุ่นยนต์เดินทางจากจุด A ไปยังจุด B (รูปที่ 3) อัลกอริทึมมีลักษณะดังนี้ (รูปที่ 4.) หลังจากดำเนินการแล้ว หุ่นยนต์จะเคลื่อนที่ไปยังจุดที่ต้องการ (รูปที่ 5) อัลกอริธึมที่เขียนด้วยภาษาของนักแสดงเรียกว่าโปรแกรม รูปที่ 3 รูปที่ 4 รูปที่ 5











กระบวนการทั้งหมดประกอบด้วยสองขั้นตอน: การประกอบและการเขียนโปรแกรม หากต้องการประกอบหุ่นยนต์ที่ดี คุณต้องมีความรู้ด้านกลไก ในการตั้งโปรแกรมหุ่นยนต์ให้ดำเนินการบางอย่าง คุณจำเป็นต้องรู้ภาษาที่จะเข้าใจได้ เมนบอร์ดหรือบล็อกซอฟต์แวร์ ความรู้ด้านวิทยาการคอมพิวเตอร์ของโรงเรียนยังไม่เพียงพอ

ฉันจะรับวัสดุได้ที่ไหน?

ก่อนอื่น คุณต้องตัดสินใจว่าคุณต้องการประกอบหุ่นยนต์อย่างไร: จากชุดอุปกรณ์สำเร็จรูปหรือเลือกวัสดุด้วยตัวเอง ข้อดีของชุดอุปกรณ์นี้คือคุณไม่ต้องค้นหาชิ้นส่วนแยกกัน ส่วนใหญ่แล้วสามารถประกอบอุปกรณ์หลายชิ้นจากชุดเดียวได้

โครงสร้างที่ไม่ได้ประกอบจากชุดอุปกรณ์สำเร็จรูปเรียกว่า ระบบเปิด- นอกจากนี้ยังมีข้อดี: หุ่นยนต์ของคุณจะมีบุคลิกของตัวเองและคุณเองจะสามารถปรับปรุงการออกแบบได้ แต่คุณจะใช้เวลาและความพยายามมากขึ้นอย่างแน่นอน

หุ่นยนต์ประกอบด้วยอะไรบ้าง?

ตัวเรือน - โลหะหรือพลาสติก "ร่างกาย"ซึ่งส่วนที่เหลือจะติดอยู่ หุ่นยนต์แต่ละตัวมีแหล่งพลังงาน - แบตเตอรี่หรือตัวสะสม เซ็นเซอร์จะถูกเลือก ทั้งนี้ขึ้นอยู่กับงานที่หุ่นยนต์จะดำเนินการ โดยสามารถตรวจจับสีและแสง และตอบสนองต่อการสัมผัสได้

หากต้องการให้หุ่นยนต์เคลื่อนที่ คุณจะต้องมีมอเตอร์ "ศีรษะ"กลไกทั้งหมด - บอร์ดระบบหรือชุดซอฟต์แวร์ ด้วยความช่วยเหลือ หุ่นยนต์จะเชื่อมต่อกับคอมพิวเตอร์และรับชุดงาน

ฉันจะให้เขาทำอะไรบางอย่างได้อย่างไร?

เพื่อให้หุ่นยนต์ดำเนินการบางอย่าง คุณต้องสร้าง โปรแกรมคอมพิวเตอร์- ความยากของขั้นตอนนี้ขึ้นอยู่กับการประกอบ หากหุ่นยนต์ประกอบจากชุด Lego Mindstorms หรือ mBot แม้แต่เด็กๆ ก็สามารถจัดการซอฟต์แวร์ของตนได้

หากคุณกำลังสร้างหุ่นยนต์ด้วยตัวเอง คุณจะต้องเรียนรู้พื้นฐานของการเขียนโปรแกรมและภาษาที่คุณจะเขียนโปรแกรม เช่น C++

เหตุใดหุ่นยนต์จึงไม่สามารถรันโปรแกรมได้?

เมื่อไปถึงที่ใหม่อาจเกิดความสับสนและรันโปรแกรมไม่ถูกต้อง เพื่อให้หุ่นยนต์ทำทุกอย่างได้อย่างถูกต้อง จะต้องปรับเซ็นเซอร์ ตัวอย่างเช่น แสงสว่างที่สว่างเกินไปอาจทำให้คุณไม่สามารถแยกแยะสีได้เพียงพอ กำลังของมอเตอร์จะถูกปรับขึ้นอยู่กับพื้นผิวที่หุ่นยนต์เคลื่อนที่

คุณสามารถเรียนรู้การประกอบและเขียนโปรแกรมที่โรงเรียนได้หรือไม่?

แม้ว่าวิทยาการหุ่นยนต์จะไม่รวมอยู่ในหลักสูตรของโรงเรียน แต่ครูฟิสิกส์และวิทยาการคอมพิวเตอร์สามารถสอนเด็กถึงวิธีการประกอบและเขียนโปรแกรมได้ ในเบลโกรอด โรงเรียนบางแห่งมีชมรมสร้างหุ่นยนต์

“หลังจากเรียนกับครูฟิสิกส์และวิทยาการคอมพิวเตอร์แล้ว เราก็เรียนรู้การเขียนโปรแกรม เรารู้วิธีทำงานใน LegoMindstorms และ Robolab แล้ว ( ซอฟต์แวร์สำหรับหุ่นยนต์ - ประมาณ อัตโนมัติ- บางครั้งเรายังเรียนรู้ที่จะสร้างภาพวาด 3 มิติของชิ้นส่วนต่างๆ” นักเรียนของ Belgorod Engineering Youth Boarding Lyceum และผู้เข้าร่วม RoboFest 2018 กล่าว แอนตัน เพอร์ชินและ มิทรี เชอร์นอฟ.

นอกจากโรงเรียนแล้ว คุณยังสามารถเป็นนักหุ่นยนต์ได้ที่ไหนอีก?

ที่โรงเรียนวิศวกรรมศาสตร์ BelSU มีชั้นเรียนสอนวิธีประกอบและเขียนโปรแกรมหุ่นยนต์ ในปี 2017 Quantorium เปิดทำการในเมืองเบลโกรอด ซึ่งมีการสอนหุ่นยนต์ให้กับเด็กนักเรียนตั้งแต่อายุ 9 ขวบ

หากต้องการเป็นนักวิทยาการหุ่นยนต์ตัวจริง คุณสามารถลงทะเบียนในแผนกวิทยาการหุ่นยนต์ได้ ในเบลโกรอดยังไม่มีคนแบบนี้ แต่อยู่ที่ BSTU Shukhov มีแผนกเทคนิคไซเบอร์เนติกส์ นักเรียนของเธอได้รับรางวัลจากการแข่งขันหุ่นยนต์ออลรัสเซีย

เป็นไปได้ไหมที่จะเรียนรู้ด้วยตัวเอง?

ใช่. มีแหล่งข้อมูลมากมายบนอินเทอร์เน็ตที่คุณสามารถเรียนรู้สิ่งที่จะสร้างและวิธีตั้งโปรแกรมหุ่นยนต์

หุ่นยนต์จะมีประโยชน์หรือไม่?

สามารถนำไปปรับใช้กับงานประจำวันและทำเป็นผู้ช่วยในบ้านได้ มีตัวอย่างมากมายบนอินเทอร์เน็ตว่านักประดิษฐ์ประจำบ้านสร้างหุ่นยนต์สำหรับอบแพนเค้กหรือทำความสะอาดอพาร์ตเมนต์ได้อย่างไร

คุณจะพิสูจน์ความสำเร็จในการสร้างหุ่นยนต์ได้อย่างไร?

เข้าร่วมการแข่งขันเช่น RoboFest ขึ้นอยู่กับอายุและทิศทางมีการเสนอชื่อที่แตกต่างกัน โดยพื้นฐานแล้ว หุ่นยนต์แต่ละประเภทจะมีเส้นทางที่มันทำงาน: หยิบลูกบาศก์หรือวาดเส้น นอกจากนี้ยังมีระบบคงที่ซึ่งผู้ตัดสินประเมินการนำเสนอโครงการและการดำเนินงานของกลไก

ตามกฎแล้ว ผู้เข้าร่วมจะมาแข่งขันกับหุ่นยนต์ที่ประกอบขึ้น และในระหว่างการเตรียมการจะใช้เวลาในการสอบเทียบเซ็นเซอร์และปรับโปรแกรมเท่านั้น

บรรณาธิการขอขอบคุณผู้เข้าร่วม RoboFest 2018 สำหรับความช่วยเหลือในการสร้างเนื้อหา มิทรี อากาโฟนอฟ, มิทรี เชอร์นอฟ, แอนตัน เพอร์ชินาและ ดานิลา มิกรินา.

นาตาเลีย มาลิกินา

และวันนี้เราจะพูดถึงวัฏจักร เรามาดูกันว่าวงจรคืออะไรและจะสอนหุ่นยนต์ของเราให้ดำเนินการอัลกอริธึมแบบวนได้อย่างไร

ดังนั้น, วงจรคืออะไร- ลองนึกภาพเราอยู่ในชั้นเรียน วัฒนธรรมทางกายภาพและเรามีงานรออยู่ข้างหน้า ทำสควอท 7 ครั้ง- งานนี้สามารถเขียนเป็นอัลกอริธึมเชิงเส้น จากนั้นจะมีลักษณะดังนี้:

ทำหมอบ

ทำหมอบ

ทำหมอบ

ทำหมอบ

ทำหมอบ

ทำหมอบ

ทำหมอบ

นั่นคือเราทำซ้ำคำสั่ง "ทำหมอบ" 7 ครั้ง มันสมเหตุสมผลไหมที่จะเขียนคำสั่งที่เหมือนกัน 7 คำสั่ง? มันอาจจะง่ายกว่าที่จะออกคำสั่ง ทำสควอท 7 ครั้ง- แน่นอนว่ามันง่ายกว่าและถูกต้องมากกว่า นี่คือวงจร- คุณสามารถจำตัวอย่างวงจรชีวิตได้ด้วยตัวเอง - มีมากมายทีเดียว

ดังนั้น อัลกอริธึมเชิงเส้น เมื่อมีการทำซ้ำคำสั่งเดียวกัน เราก็สามารถจัดเรียงได้ เป็นอัลกอริธึมแบบวนรอบ- บางอย่างเช่นนี้:

ทำซ้ำ 7 ครั้ง

ทำหมอบ

สิ้นสุดรอบ

นี่คือวิธีที่เราออกแบบวงจรในภาษาที่เราคิดค้น นักแสดงหุ่นยนต์ยังมีความสามารถในการบันทึกรอบอีกด้วย นอกจากนี้, รอบจะแตกต่างกัน- ตัวเลือกที่เราเพิ่งดูเรียกว่า วนซ้ำกับเคาน์เตอร์หรือ วนซ้ำด้วยพารามิเตอร์.

ประเภทของรอบ

วนซ้ำกับเคาน์เตอร์

วนรอบกับเคาน์เตอร์ใช้เมื่อทราบล่วงหน้าว่าต้องทำซ้ำกี่ครั้ง ในตัวอย่างข้างต้นด้วยท่าสควอท จะเป็นเช่นนี้ทุกประการ

ในการเขียนลูปด้วยตัวนับสำหรับเอ็กซีคิวเตอร์ คุณจำเป็นต้องรู้ไวยากรณ์ของมัน และเขาก็เป็นแบบนี้:

nc<จำนวนการทำซ้ำ> ครั้ง

<команда 1>

<команда 2>

<команда n>

ที่นี่เราต้องระบุจำนวนการทำซ้ำ (จำนวน) และคำสั่งที่จะทำซ้ำ คำสั่งที่ทำซ้ำในลูปจะถูกเรียก ร่างกายของห่วง.

ลองดูตัวอย่างนี้ด้วย

เริ่มแรก หุ่นยนต์อยู่ในเซลล์ด้านซ้ายบน

ก่อนอื่นมาแก้ปัญหาเชิงเส้นตรงก่อน ในกรณีนี้ เราจะทาสีเซลล์ปัจจุบันและย้าย 1 เซลล์ไปทางขวา จากนั้นโปรแกรมจะมีลักษณะดังนี้:
ใช้หุ่นยนต์
แอลจี
จุดเริ่มต้น

ทาสีทับ

ขวา

ทาสีทับ

ขวา

ทาสีทับ

ขวา

ทาสีทับ

ขวา

ทาสีทับ

ขวา

ทาสีทับ

ขวา

ทาสีทับ

ขวา

อย่างที่คุณเห็นคำสั่งให้ทาสีและไปทางขวาซ้ำ 7 ครั้ง ตอนนี้เรามาเขียนโปรแกรมใหม่โดยใช้การวนซ้ำ อย่างไรก็ตาม หากต้องการแทรกวงจรลงในโปรแกรมของคุณ คุณสามารถไปที่เมนูได้ แทรกเลือกรายการ จุ๊ๆ-จุ๊ๆ-tskหรือกดคีย์ผสมอันใดอันหนึ่ง เอส, พี(ตัวอักษรรัสเซีย R) หรือ เอสซี, เอช(อักษรละติน ฮ) นอกจากนี้ ต้องกดปุ่มตามลำดับ- Esc แรกปล่อยแล้วจึงเฉพาะ P หรือ H

นี่คือของเรา โปรแกรมวนซ้ำจะมีลักษณะเช่นนี้:

ใช้หุ่นยนต์

ไม่ใช่ 7 ครั้ง

ทาสีทับ

ขวา

ถ้าเรารันเราจะเห็นว่าผลลัพธ์จะเหมือนเดิม - เซลล์ที่เต็มไป 7 เซลล์ อย่างไรก็ตาม โปรแกรมสั้นลงและชาญฉลาดมากขึ้นจากมุมมองของอัลกอริธึม!

เพื่อเป็นการอุ่นเครื่องและเสริมกำลัง ฉันขอแนะนำให้คุณเขียนโปรแกรมสำหรับหุ่นยนต์ด้วยตัวเอง ซึ่งจะวาดรูปสี่เหลี่ยมจัตุรัสที่มีด้านละ 7 เซลล์ โดยธรรมชาติแล้วจะใช้การวนซ้ำ ฉันกำลังรอวิธีแก้ปัญหาในความคิดเห็น

วนซ้ำแบบมีเงื่อนไข

เมื่อแก้ไขปัญหาข้อ 19 สารสนเทศวิชาการของรัฐสาขาวิทยาการคอมพิวเตอร์ด้วยหุ่นยนต์ จะไม่สามารถใช้ลูปกับตัวนับได้ เนื่องจากตามกฎแล้วสนามไม่มีที่สิ้นสุดและกำแพงไม่ได้มีความยาวเฉพาะ ดังนั้นเราจึงไม่สามารถระบุจำนวนครั้งของการวนซ้ำด้วยตัวนับได้ แต่มันไม่สำคัญ - มันจะช่วยเรา วนซ้ำอย่างมีเงื่อนไข.

กลับไปพลศึกษาและเปลี่ยนปัญหากัน ท้ายที่สุดบางคนอาจทำ 7 squats ไม่ได้ในขณะที่อีกคนทำได้ 27 ครั้ง เป็นไปได้ไหมที่จะคำนึงถึงสิ่งนี้เมื่อสร้างวงจร? แน่นอน. ตอนนี้เราจะไม่ใช้ตัวนับ (จำนวนการทำซ้ำ) แต่เป็นเงื่อนไข เช่น ทำสควอตจนกว่าคุณจะเหนื่อย ในกรณีนี้ บุคคลนั้นจะไม่ทำสควอตเป็นจำนวนเฉพาะ แต่จะหมอบจนกว่าเขาจะเหนื่อย และวัฏจักรของเราในภาษานามธรรมจะอยู่ในรูปแบบต่อไปนี้:

ลาก่อน ไม่เหนื่อย

ทำหมอบ

สิ้นสุดรอบ

คำพูดไม่เหนื่อยในกรณีของเรา - นี่คือเงื่อนไข เมื่อเป็นจริง ลูปจะถูกดำเนินการ หากเป็นเท็จ (เหนื่อย) เนื้อความของลูปจะไม่ถูกดำเนินการ นักแสดงหุ่นยนต์มีเงื่อนไขหลายประการ

ฟรีด้านบน

ฟรีจากด้านล่าง

ปล่อยให้เป็นอิสระ

ฟรีทางด้านขวา

ผนังด้านบน

ผนังด้านล่าง

ผนังด้านซ้าย

ผนังด้านขวา

แต่ในเงื่อนไขของภารกิจที่ 19 ของ GIA มีเพียง 4 รายการแรกเท่านั้นที่ถูกระบุ ดังนั้นเราจะใช้มันเท่านั้น

ตอนนี้เรามาแก้ไขงานต่อไปสำหรับหุ่นยนต์ - วาด เส้นแนวตั้งจากซ้ายไปขวาเส้นขอบของฟิลด์ฉันใช้การวนซ้ำพร้อมเงื่อนไข ในตอนแรก หุ่นยนต์จะอยู่ที่มุมซ้ายบน

ขั้นแรกเรามากำหนดอัลกอริทึมทางวาจา - นั่นคือ อธิบายด้วยคำพูดว่าหุ่นยนต์จำเป็นต้องทำอะไร อัลกอริทึมนี้จะมีลักษณะดังนี้:

« ในขณะที่มีพื้นที่ว่างทางด้านขวา ให้ก้าวไปทางขวาแล้วทาสีเซลล์ »

เป็นผลให้หุ่นยนต์จะวิ่งผ่านเซลล์ทั้งหมดทางด้านขวาและจะทาสีจนกว่าจะมีผนังทางด้านขวา

ซอร์สโค้ดของโปรแกรมของเราสำหรับ Robot จะเป็นดังนี้:

ใช้หุ่นยนต์

ตอนนี้สิทธิ์ฟรีแล้ว

ขวา

ทาสีทับ

จากการรันโปรแกรมนี้เราจะเห็นภาพดังนี้:

รายการไอดอล

หุ่นยนต์นักแสดง


นักแสดงหุ่นยนต์คือใคร?

  • ลองนึกภาพสนามตาหมากรุก (เช่น แผ่นงานจากสมุดบันทึกที่มีรูปแบบตาหมากรุก) ซึ่งมีวัตถุบางอย่าง ซึ่งเราจะเรียกว่าหุ่นยนต์ ด้วยการใช้คำสั่งพิเศษ เราสามารถควบคุมหุ่นยนต์ตัวนี้ได้ - เคลื่อนมันไปรอบๆ เซลล์, ทาสีทับเซลล์ และในกรณีส่วนใหญ่ งานของเราคือการเขียนโปรแกรมสำหรับหุ่นยนต์ โดยจะลงสีบางเซลล์

การจัดสภาพแวดล้อมไอดอลสำหรับนักแสดงหุ่นยนต์

  • รายการ Idol ที่เปิดมาหน้าตาประมาณนี้ครับ

สภาพแวดล้อมการเริ่มต้นของหุ่นยนต์

  • ก่อนที่จะเริ่มการทำงานของโปรแกรม จำเป็นต้องตั้งค่าสภาพแวดล้อมเริ่มต้นสำหรับผู้สั่งการหุ่นยนต์ ซึ่งหมายถึงการวางหุ่นยนต์ในตำแหน่งที่ต้องการ วางผนัง ทาสีเซลล์ที่ต้องการ ฯลฯ ขั้นตอนนี้สำคัญมาก หากคุณเพิกเฉย โปรแกรมอาจทำงานไม่ถูกต้องหรือเกิดปัญหาได้

คลิกที่ แก้ไขสภาพแวดล้อม



หุ่นยนต์นักแสดง. คำสั่งง่ายๆ

  • ขึ้น
  • ลง
  • ซ้าย
  • ขวา
  • ทาสีทับ

ผลลัพธ์ของการดำเนินการคำสั่งเหล่านี้ชัดเจนจากชื่อ:

  • ขึ้น - ย้ายหุ่นยนต์ขึ้นหนึ่งเซลล์
  • ลง - เลื่อนหุ่นยนต์ลงหนึ่งเซลล์
  • ซ้าย - ย้ายหุ่นยนต์ไปทางซ้ายหนึ่งเซลล์
  • ขวา - ย้ายหุ่นยนต์ไปทางขวาหนึ่งเซลล์
  • ทาสีทับ - ทาสีทับเซลล์ปัจจุบัน (เซลล์ที่หุ่นยนต์ตั้งอยู่)

ตัวอย่างอัลกอริทึม

  • ก่อนอื่นคุณต้องเขียนวลี:
  • ใช้ หุ่นยนต์

หากคุณรู้ว่าต้องทาสีจำนวนเซลล์เท่าใด อัลกอริธึมการแก้ปัญหาจะเป็นดังนี้!


ภารกิจที่ 1

  • เขียนโปรแกรมเพื่อแก้ปัญหาต่อไปนี้ หากคุณรู้ว่าต้องแรเงาจำนวนเซลล์กี่เซลล์

รอบ

  • 1. วนรอบกับเคาน์เตอร์ ใช้เมื่อทราบล่วงหน้าว่าต้องทำซ้ำกี่ครั้ง

nc ครั้ง

นอต

ที่นี่เราต้องระบุจำนวนการทำซ้ำ (จำนวน) และคำสั่งที่จะทำซ้ำ คำสั่งที่ทำซ้ำในลูปจะถูกเรียก ร่างกายของวงจร



ภารกิจที่ 2

  • เขียนโปรแกรมเพื่อแก้ปัญหาต่อไปนี้โดยใช้การวนซ้ำพร้อมตัวนับ

  • 2. วนซ้ำโดยมีเงื่อนไข - ในขณะที่เงื่อนไขเป็นจริง ลูปก็จะเป็นไปตามนั้น หากเป็นเท็จ ก็ไม่เป็นไปตามนั้น
  • นักแสดงหุ่นยนต์มีเงื่อนไขหลายประการ

ฟรีด้านบน

ฟรีจากด้านล่าง

ปล่อยให้เป็นอิสระ

ฟรีทางด้านขวา

ผนังด้านบน

ผนังด้านล่าง

ผนังด้านซ้าย

ผนังด้านขวา

  • อนุภาคที่คุณสามารถใช้: ไม่ใช่ และ หรือ

โครงสร้างการวนซ้ำแบบมีเงื่อนไข

ไม่ใช่ตอนนี้ ฟรีทางด้านขวา

ขวา

ทาสีทับ

นอต



ภารกิจที่ 3

  • เขียนโปรแกรมเพื่อแก้ไขปัญหาต่อไปนี้โดยใช้การวนซ้ำแบบมีเงื่อนไข:

ภารกิจที่ 4

  • เขียนโปรแกรมเพื่อแก้ไขปัญหาต่อไปนี้โดยใช้การวนซ้ำแบบมีเงื่อนไข:



การแก้ปัญหา:

  • 2. จะต้องย้ายหุ่นยนต์จากตำแหน่งเริ่มต้นไปยังตำแหน่งสุดท้าย โดยทาสีผนัง


ภารกิจที่ 5

  • มีกำแพงแนวนอนอยู่บนสนามที่ไม่มีที่สิ้นสุด ไม่ทราบความยาวของกำแพง หุ่นยนต์ตั้งอยู่ที่ด้านบนของผนังทางด้านซ้ายสุด รูปภาพแสดงตำแหน่งของหุ่นยนต์ที่สัมพันธ์กับผนัง (หุ่นยนต์ถูกกำหนดด้วยตัวอักษร “P”):

ตอบภารกิจที่ 5

  • ncยังไม่มี (ล่างฟรี)

ทาสีทับ

จุดเริ่มต้นของวงจร (nc) และเงื่อนไข (ยังไม่ใช่ (อิสระจากด้านล่าง)) จะถูกเขียนไว้ในบรรทัดเดียว



ออกแบบ ถ้า

  • ฟรีบน ฟรีล่าง ฟรี ซ้ายฟรี ขวาฟรี
  • คำสั่งเหล่านี้สามารถใช้ร่วมกับเงื่อนไขได้ "ถ้า"โดยมีรูปแบบดังนี้
  • ถ้า เงื่อนไข ที่
  • ลำดับของคำสั่ง
  • ตัวอย่างเช่น หากต้องการย้ายเซลล์หนึ่งไปทางขวา หากไม่มีผนังทางด้านขวา และทาสีเซลล์ คุณสามารถใช้อัลกอริทึมต่อไปนี้:
  • ถ้าสิทธินั้นฟรีแล้ว
  • ขวา
  • ทาสีทับ

ภารกิจที่ 7

ไม่ทราบความยาวของกำแพง


ตอบคำถามหมายเลข 7

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ

ขวา

ในขณะที่ด้านบนว่าง

ขวา

ในขณะที่สิทธินั้นฟรี

ทาสีทับ

ขวา

ยังไม่ว่างทางด้านขวา

ทาสีทับ

ลง

ในขณะที่สิทธินั้นฟรี

ลง

ยังไม่ว่างทางด้านขวา

ทาสีทับ

ลง


ภารกิจที่ 8

ไม่ทราบความยาวของกำแพง

ผนังแต่ละด้านมีทางเดินเดียวเท่านั้น ไม่ทราบตำแหน่งที่แน่นอนของทางเดินและความกว้าง


ตอบภารกิจที่ 8

ในขณะที่ด้านบนว่าง

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ

ในขณะที่ด้านบนว่าง

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ

จนกระทั่งด้านล่างเป็นอิสระ

ทาสีทับ

ในขณะที่ด้านล่างว่าง

จนกระทั่งด้านล่างเป็นอิสระ

ทาสีทับ


ภารกิจที่ 9

ไม่ทราบความยาวของกำแพง

ผนังแต่ละด้านมีทางเดินเดียวเท่านั้น ไม่ทราบตำแหน่งที่แน่นอนของทางเดินและความกว้าง


ตอบภารกิจที่ 9

ในขณะที่ด้านล่างว่าง

จนกระทั่งด้านล่างเป็นอิสระ

ทาสีทับ

ในขณะที่ด้านล่างว่าง

จนกระทั่งด้านล่างเป็นอิสระ

ทาสีทับ

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ

ในขณะที่ด้านบนว่าง

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ


ภารกิจที่ 10

ไม่ทราบความยาวของกำแพง

ผนังแต่ละด้านมีทางเดินเดียวเท่านั้น ไม่ทราบตำแหน่งที่แน่นอนของทางเดินและความกว้าง


คำตอบของภารกิจที่ 10

ในขณะที่ด้านซ้ายว่าง

ในขณะที่ด้านซ้ายว่าง

ทาสีทับ

ในขณะที่ด้านซ้ายว่าง

จนกระทั่งด้านซ้ายว่าง

ทาสีทับ

ยังไม่ว่างทางด้านขวา

ทาสีทับ

ในขณะที่มันว่างทางด้านขวา

ยังไม่ว่างทางด้านขวา

ทาสีทับ


ภารกิจที่ 11

ไม่ทราบความยาวของกำแพง

ผนังแต่ละด้านมีทางเดินเดียวเท่านั้น ไม่ทราบตำแหน่งที่แน่นอนของทางเดินและความกว้าง


ตอบภารกิจที่ 11

จนกระทั่งด้านบนเป็นอิสระ

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ

ในขณะที่ด้านล่างว่าง

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ


ภารกิจที่ 12

มีบันไดอยู่บนสนามอันไม่มีที่สิ้นสุด ขั้นแรกบันไดจะลงจากขวาไปซ้าย จากนั้นลงจากซ้ายไปขวา ความสูงของแต่ละขั้นคือหนึ่งช่องสี่เหลี่ยม ความกว้างคือสองช่องสี่เหลี่ยม หุ่นยนต์อยู่ทางด้านขวาของบันไดขั้นบนสุด ไม่ทราบจำนวนขั้นที่ทอดไปทางซ้ายและจำนวนขั้นที่ทอดไปทางขวา รูปนี้แสดงวิธีหนึ่งที่เป็นไปได้ในการวางตำแหน่งบันไดและหุ่นยนต์ (หุ่นยนต์ถูกกำหนดด้วยตัวอักษร "P")


ตอบภารกิจที่ 12

เราเลื่อนลงใต้บันไดจากขวาไปซ้ายจนกระทั่งถึงทางแยกของบันได:

ตอนนี้ด้านล่างฟรีแล้ว

ลง

ซ้าย

ซ้าย

เราเลื่อนลงไปจนสุดบันไดจากมากไปน้อยโดยทาสีเซลล์ที่จำเป็นไปพร้อมกัน:

ด้านซ้ายยังไม่ว่าง

ทาสีทับ

ขวา

ทาสีทับ

ขวา

ลง



ตอบภารกิจที่ 13

ตอนนี้ทางซ้ายว่างแล้ว

ทาสีทับ

ซ้าย

ขึ้น

ด้านซ้ายยังไม่ว่าง

ทาสีทับ

ขึ้น


ภารกิจที่ 14

บนสนามอันไม่มีที่สิ้นสุดจะมีรูปสี่เหลี่ยมผืนผ้าล้อมรอบด้วยกำแพง ไม่ทราบความยาวของด้านข้างของสี่เหลี่ยม หุ่นยนต์อยู่ในสี่เหลี่ยม รูปภาพแสดงวิธีหนึ่งที่เป็นไปได้ในการวางตำแหน่งผนังและหุ่นยนต์ (หุ่นยนต์ถูกกำหนดด้วยตัวอักษร "P")


ตอบภารกิจที่ 14

ในขณะที่สิทธินั้นฟรี

ขวา

ในขณะที่ด้านบนว่าง

ขึ้น

ทาสีทับ

ตอนนี้ทางซ้ายว่างแล้ว

ซ้าย

ทาสีทับ



ตอบภารกิจที่ 15

ในขณะที่สิทธินั้นฟรี

ทาสีทับ

ขวา

ในขณะที่ด้านล่างว่าง

ทาสีทับ

ลง

ทาสีทับ

ยังไม่มี (ล่างฟรี)

ซ้าย

ลง

ยังไม่มี (ว่างทางด้านขวา)

ทาสีทับ

ลง

ทาสีทับ

ขวา

ยังไม่มี (ฟรีด้านบน)

ทาสีทับ

ขวา



ตอบภารกิจที่ 16

ยังไม่ว่างทางด้านขวา

ทาสีทับ

ลง

ทาสีทับ

ขวา

จนกระทั่งด้านบนเป็นอิสระ

ทาสีทับ

ขวา

ในขณะที่ด้านบนว่าง

ขึ้น

ในขณะที่สิทธินั้นฟรี

ทาสีทับ

ขวา

ยังไม่ว่างทางด้านขวา

ทาสีทับ

ลง