ประเภทของอัลกอริธึม: เชิงเส้น การแยกสาขา วงจร ประเภทของอัลกอริทึมและตัวอย่าง
การเขียนโปรแกรมคือการเขียนบางอย่างโดยใช้ภาษาที่ไม่คุ้นเคยของผู้อื่น ด้วยการพัฒนาความรู้ในด้านนี้ นักพัฒนาได้ดำเนินการเพิ่มเติมและเรียนรู้ที่จะเขียน "บางสิ่ง" โดยไม่เข้าใจด้วยซ้ำว่าเสียงในภาษารัสเซียเป็นอย่างไร ผู้เริ่มต้นเรียนรู้การเขียนโค้ดโดยตรงด้วย C++ หรือ PHP โดยใช้ไลบรารีจำนวนมาก และไม่เข้าใจด้วยซ้ำว่าพวกเขาสร้างเสียงในภาษาของตนเองอย่างไร อัลกอริทึมเกี่ยวข้องกับการอธิบายและทำให้ "บางสิ่ง" นี้เข้าใจได้
อัลกอริทึม
ตัวอย่างของอัลกอริธึมในวิทยาการคอมพิวเตอร์ส่วนใหญ่ แม้แต่ในมหาวิทยาลัย ก็ยังได้รับการศึกษาในระดับปานกลาง เป็นเรื่องปกติที่จะเขียนโค้ดที่ซับซ้อนมากขึ้นเรื่อยๆ อย่างไม่มีที่สิ้นสุด ความพยายามของโปรแกรมเมอร์ที่ไม่มีประสบการณ์ในการเริ่มเขียนโปรแกรมทันทีในภาษาการเขียนโปรแกรมสามารถเปรียบเทียบได้กับงานของนักข่าวที่แทบไม่เชี่ยวชาญพื้นฐานของภาษาต่างประเทศเลยเขียนบทความสำหรับนิตยสาร คุณสามารถหลีกเลี่ยงปัญหานี้ได้หากคุณเริ่มบันทึกงานของคุณเป็นภาษาแม่ของคุณก่อน แก้ไข ตรวจสอบข้อผิดพลาด และสุดท้ายแปลเป็นภาษาที่ต้องการ
ข้อดีของแนวทางนี้คือนักพัฒนาจะใช้เวลาเพียง 25% ในการแปล ในขณะที่เมื่อเขียนโปรแกรมในภาษาใหม่ เขาจะใช้เวลา 100% ในการทำงานกับภาษาที่ไม่คุ้นเคย ในเวลาเดียวกันเขาจะพบว่าตัวเองอยู่ในสภาพที่คับแคบและจะไม่สามารถดำเนินการตรวจสอบข้อผิดพลาดที่ดีและเสร็จสิ้นโครงการได้
อัลกอริทึมช่วยในการดำเนินโครงการบนคอมพิวเตอร์เพื่ออธิบายกระบวนการแก้ปัญหาในภาษาพื้นเมืองและเข้าใจได้ในรูปแบบของไดอะแกรมของอัลกอริทึมที่เชื่อมต่อถึงกันวิเคราะห์แนวคิดและรับรหัสคุณภาพสูงสุดและรอบคอบซึ่งจะทนทานต่อข้อผิดพลาดและ ทำงานได้อย่างมีประสิทธิภาพมากขึ้น
แนวคิดอัลกอริธึม
คอมพิวเตอร์ไม่สามารถแก้ไขปัญหาได้ แต่สามารถดำเนินการง่ายๆ ในลำดับที่ระบุเท่านั้น “แล้วเครื่องคิดเลขล่ะ?” - คุณถาม. นอกจากนี้ยังเป็นผลจากการทำงานของโปรแกรมเมอร์ที่สร้างโปรแกรมที่ใช้อัลกอริธึมบางอย่างเพื่อให้ได้ผลลัพธ์ที่จำเป็น ลองพิจารณาสถานการณ์ที่เป็นนามธรรม คุณจะทำอย่างไรถ้าคุณถามคนที่ไม่คุ้นเคยกับวิธีการแก้สมการเพื่อหารากของตรีโกณมิติกำลังสอง?
แน่นอนว่าเขาต้องได้รับการฝึกฝนให้แก้สมการกำลังสอง สิ่งนี้เกิดขึ้นตามรูปแบบต่อไปนี้:
- เลือกวิธีแก้ปัญหา
- ศึกษารายละเอียดทั้งหมดของวิธีที่เลือก
- อธิบายสองประเด็นแรกให้กับนักแสดงในอนาคตในภาษาที่เขาเข้าใจ
จากนั้นจึงจะสามารถมอบหมายให้นักแสดงแก้สมการกำลังสองได้ และหากสองขั้นตอนแรกนั้นง่ายและเข้าใจได้ - วิธีการแก้ปัญหาทั้งหมดได้อธิบายไว้ในเอกสารที่เกี่ยวข้องแล้ว ขั้นตอนที่สามก็เป็นเรื่องยาก
คุณจะแน่ใจได้อย่างไรว่าแนวคิดที่ใช้ในการแก้ปัญหาจะถูกรับรู้โดยนักแสดงในลักษณะเดียวกับที่คุณเข้าใจ ที่นี่เราเข้าใกล้แนวคิดของอัลกอริทึมแล้ว ประสบการณ์แสดงให้เห็นว่าเพื่อที่จะอธิบายบางสิ่งให้ผู้อื่นได้อย่างถูกต้อง ต้องปฏิบัติตามขั้นตอนต่อไปนี้:
- กำหนดข้อมูลเริ่มต้น (ตัวแปรและสัมประสิทธิ์ของสมการกำลังสอง)
- แบ่งกระบวนการแก้ปัญหาออกเป็นองค์ประกอบที่ทราบชัดเจนสำหรับผู้ดำเนินการ (สูตรจำแนกและสูตรราก)
- ระบุลำดับในการดำเนินการขั้นตอนต่างๆ (ก่อนอื่นให้คำนวณการแบ่งแยกแล้วจึงระบุราก)
- สร้างเงื่อนไขที่ถือว่าการแก้ปัญหาเสร็จสมบูรณ์ (ตรวจสอบรากที่พบโดยแทนที่ลงในสมการแทนตัวแปร)
- ระบุว่าผลลัพธ์ของการแก้ปัญหาควรเป็นอย่างไร (รากอยู่ในเซตของจำนวนจริง)
ชุดขั้นตอนที่อธิบายไว้ในความหมายทั่วไปถือเป็นอัลกอริทึม ดังนั้นจึงสามารถเข้าใจอัลกอริธึมได้ว่าเป็นวิธีการแก้ปัญหาที่กำหนดโดยเขียนโดยใช้กฎบางอย่างที่ให้ความเข้าใจที่ชัดเจนเกี่ยวกับการกระทำที่ดำเนินการและลำดับ อัลกอริทึมและปัญหาตัวอย่างจะกล่าวถึงรายละเอียดเพิ่มเติมด้านล่าง
คุณสมบัติพื้นฐานของอัลกอริทึม
ความรอบคอบ. กระบวนการแก้ไขปัญหามักประกอบด้วยการกระทำที่แยกจากกันอย่างเคร่งครัด เรียกว่าขั้นตอนซึ่งมีลำดับการดำเนินการที่แน่นอน
ความแน่นอน. แต่ละขั้นตอนจะต้องมีความชัดเจนและไม่คลุมเครือทั้งในความหมายและเป็นกุญแจสำคัญในการดำเนินการ
ผลผลิต อัลกอริธึมจะต้องสร้างผลลัพธ์ ยิ่งกว่านั้น จำนวนขั้นตอนอาจเป็นหลักพันหรือเป็นล้านก็ได้ แต่ควรนำไปสู่ผลลัพธ์เสมอ
ตัวละครมวล อัลกอริธึมใดๆ ที่พัฒนาขึ้นเพื่อแก้ปัญหาจะต้องใช้ได้กับปัญหาทุกประเภทสำหรับข้อมูลอินพุตที่ถูกต้องทั้งหมด
ความสามารถของคอมพิวเตอร์
ในการสร้างอัลกอริทึมสำหรับคอมพิวเตอร์อย่างถูกต้อง สิ่งสำคัญคือต้องเข้าใจความสามารถของพวกเขา ให้เราพิจารณาปริมาณที่คอมพิวเตอร์ใช้งานได้ก่อน โดยทั่วไปสามารถแบ่งออกเป็นตัวเลขและข้อความ ค่าคงที่และตัวแปร
ตัวเลขคงที่หมายถึงตัวเลขทั้งหมด: 3.15, 100, 10 5 คุณลักษณะของพวกเขาคือยังคงไม่เปลี่ยนแปลงตลอดการทำงานของโปรแกรม ตัวแปรเปลี่ยนความหมายระหว่างการรันโค้ดและมักจะถูกกำหนดด้วยตัวอักษร: x, y, max, min เป็นต้น
ตัวแปรข้อความ เช่น ตัวเลข อาจเป็นค่าคงที่หรือตัวแปรก็ได้ ในกรณีแรกเป็นเพียงข้อความ: "ดี", "a และ b" ฯลฯ ในกรณีที่สองเป็นการกำหนดสัญลักษณ์แบบเดียวกับตัวแปรตัวเลข: ชื่อเมือง ฯลฯ ความแตกต่างระหว่างสิ่งเหล่านี้ส่วนใหญ่อยู่ ในหน่วยความจำคอมพิวเตอร์ที่จัดสรรไว้เพื่อจัดเก็บตัวแปรดังกล่าว
การดำเนินการที่คอมพิวเตอร์สามารถทำได้:
- อ่านข้อมูลจากอุปกรณ์อินพุต (คีย์บอร์ด เมาส์ ไฟล์)
- การคำนวณค่าโดยใช้ฟังก์ชันทางคณิตศาสตร์: การบวก การลบ บาป cos ln ฯลฯ - แต่ละภาษาการเขียนโปรแกรมมีชุดฟังก์ชันในตัวของตัวเอง
- เอาต์พุตข้อมูล (บนหน้าจอ บนกระดาษ ไปยังอินเทอร์เฟซเครือข่าย)
- การเปลี่ยนผ่านระหว่างขั้นตอนต่างๆ ของการทำงานของโปรแกรม
- การเปรียบเทียบปริมาณสองปริมาณ (มาก น้อย เท่ากัน)
สิ่งเหล่านี้เป็นการทำงานพื้นฐานที่สามารถทำได้ในภาษาการเขียนโปรแกรมส่วนใหญ่
วิธีอธิบายอัลกอริทึม
วาจา นี่เป็นวิธีที่ง่ายที่สุด ตัวอย่างนี้จะเป็นสูตรอาหาร อนุญาตให้ใช้สูตรทางคณิตศาสตร์อย่างง่ายได้
กราฟิก คำอธิบายโดยใช้ไดอะแกรม นี่เป็นวิธีพิเศษในการเขียนอัลกอริธึมโดยใช้ภาษาอัลกอริธึมที่เป็นที่ยอมรับโดยทั่วไป - รูปร่างและบล็อกที่มีความหมายเฉพาะ: สี่เหลี่ยมผืนผ้า - การกระทำอย่างง่าย, สี่เหลี่ยมด้านขนานแบบเอียง - อินพุต / เอาท์พุต, รูปสี่เหลี่ยมขนมเปียกปูน - เงื่อนไข ฯลฯ
การใช้ภาษาอัลกอริทึม เช่นเดียวกับกราฟิก นี่เป็นวิธีพิเศษในการเขียนอัลกอริทึมด้วย มีภาษาอัลกอริธึมมากมาย กฎของพวกเขาไม่เข้มงวด ไม่เช่นนั้นมันจะเป็นภาษาโปรแกรม ลองพิจารณาตัวอย่างอัลกอริทึมในการคำนวณค่าจ้างตามระยะเวลาการทำงานที่เขียนโดยใช้ภาษาอัลกอริทึม
เงินเดือน alg (int ST, ZP จริง) arg ST res ZP เริ่มต้นถ้า ST< 5 то zp = 150 иначе если ST <= 15 то ZP = 180 иначе ZP = 180 + (ST - 15)*10 конецภาษาอัลกอริธึมสามารถเรียกได้ว่าเป็นรูปแบบการบันทึกที่เข้มงวดกว่าเมื่อเปรียบเทียบกับภาษาวาจา มีการใช้ชุดคำและโครงสร้างของคำที่จำกัด รวมถึงการจัดรูปแบบที่มีการเยื้อง ข้อเสียของรูปแบบวาจาและภาษาอัลกอริธึมคือการมองเห็นอัลกอริธึมที่แย่ลงเมื่อขนาดของมันเพิ่มขึ้น ดังนั้นวิธีการเหล่านี้จึงสามารถใช้เพื่อถ่ายทอดความหมายของอัลกอริธึมขนาดเล็กเท่านั้น
ประเภทของอัลกอริทึม
มีอัลกอริธึมมากมายที่สร้างขึ้นเพื่อแก้ไขปัญหาต่างๆ ตัวอย่างเช่น หนังสือเรียนคณิตศาสตร์ชั้นสูงเล่มใดเล่มหนึ่งมีอัลกอริธึมหลายร้อยอัลกอริธึม: การแก้ระบบสมการเชิงเส้น, การค้นหาเอ็กซ์ตรีมของฟังก์ชัน, การคำนวณอินทิกรัล ฯลฯ อย่างไรก็ตามเมื่อตรวจสอบโครงสร้างอย่างใกล้ชิดปรากฎว่าอัลกอริธึมทั้งหมดสามารถแบ่งออกเป็น หลายประเภท ลองดูอัลกอริทึมประเภทนี้พร้อมตัวอย่าง
- เชิงเส้น (การคำนวณผลลัพธ์ของการบวกหรือการคูณการแลกเปลี่ยนค่าของตัวแปรหลายตัว)
- การแตกแขนง (กำหนดจำนวนที่ใหญ่ที่สุดจากหลาย ๆ ตัว)
- วงจร (การเรียงลำดับอาร์เรย์ การคำนวณแฟกทอเรียล)
เหล่านี้เป็นประเภทพื้นฐาน นอกจากนี้ยังเป็นที่น่าสังเกตว่าในวรรณกรรมบางประเภทมีการระบุประเภทที่สี่ด้วย - แบบเรียกซ้ำ แต่ไม่มีการกำหนดพิเศษในสัญกรณ์แผนผังและดำเนินการผ่านสัญกรณ์พื้นฐาน
แต่ละอัลกอริทึมการคำนวณพร้อมตัวอย่างจะกล่าวถึงรายละเอียดเพิ่มเติมด้านล่าง
หลักการของอัลกอริทึม
- กำหนดข้อมูลเบื้องต้น
- เลือกวิธีแก้ปัญหา
- แบ่งวิธีการที่เลือกออกเป็นขั้นตอนตามความสามารถของคอมพิวเตอร์ (ภาษาการเขียนโปรแกรม)
- ดำเนินการอัลกอริทึมในรูปแบบของไดอะแกรม โดยกำหนดลำดับขั้นตอนที่ชัดเจน
- ผลลัพธ์ของผลการคำนวณ
- ระบุการเปลี่ยนผ่านไปยังเอาต์พุตของวงจร
การดีบักอัลกอริทึม
ผู้คนทำผิดพลาด และนั่นคือข้อเท็จจริง พารามิเตอร์หลักของอัลกอริทึมใด ๆ ควรเป็นความถูกต้องของการดำเนินการ การดีบักเป็นกระบวนการในการระบุและแก้ไขข้อผิดพลาดในอัลกอริทึม เมื่อต้องการทำเช่นนี้ จะมีการใช้ชุดข้อมูลเริ่มต้นบางชุดที่เรียกว่าข้อมูลทดสอบ ตามกฎแล้วจะเป็นตัวแทนของแหล่งข้อมูลทุกประเภท ตัวอย่างเช่น หากอินพุตเป็นตัวเลข ควรตรวจสอบอัลกอริทึมสำหรับการทำงานที่ถูกต้อง โดยคำนึงถึง: บวก ลบ จำนวนเต็มและจำนวนจริง ค่าศูนย์ ฯลฯ
เครื่องมือหลักในการตรวจสอบความถูกต้องของอัลกอริธึมยังคงเป็นสมองของมนุษย์ แน่นอนว่าการใช้เครื่องมือคอมพิวเตอร์อื่นๆ เพื่อทำการทดสอบโดยอัตโนมัตินั้นเป็นที่ยอมรับได้ แต่ไม่ทางใดก็ทางหนึ่ง บุคคลนั้นมีส่วนร่วมในการเตรียมการทดสอบและวิเคราะห์ผลลัพธ์ ในกรณีนี้คำถามเกิดขึ้น: ทำไมเราต้องมีอัลกอริทึมถ้าคน ๆ หนึ่งทำทุกอย่างด้วยตัวเอง? เพราะงานหลักของอัลกอริธึมคือการแก้ปัญหาบางประเภทซ้ำแล้วซ้ำอีก
อัลกอริธึมเชิงเส้น
อัลกอริธึมเชิงเส้นเป็นขั้นตอนที่ขั้นตอนต่างๆ เกิดขึ้นตามลำดับ อัลกอริธึมใดๆ ที่ไม่มีสาขาหรือลูปจะเป็นแบบเส้นตรง ลองพิจารณาตัวอย่างอัลกอริทึมที่ช่วยแก้ปัญหาต่อไปนี้: หมาป่าและกระต่ายนั่งอยู่ในสองเซลล์ คุณต้องสลับพวกมัน
กุญแจสำคัญในการแก้ปัญหานี้คือกรงชั่วคราวเพิ่มเติมซึ่งควรใช้เพื่อสลับสัตว์
อัลกอริทึมการแยกสาขา
ตามชื่อที่แสดง อัลกอริธึมมีหลายสาขา สาระสำคัญของงานคือการเลือกตัวเลือกใดตัวเลือกหนึ่งที่เป็นไปได้สำหรับกระบวนการคำนวณโดยขึ้นอยู่กับเงื่อนไขบางประการ การแตกแขนงแผนผังจะแสดงด้วยบล็อกรูปเพชร ซึ่งภายในมีการระบุเงื่อนไข และด้านข้างของบล็อกจะมีกิ่งก้านให้เลือก ขึ้นอยู่กับว่าเงื่อนไขนั้นเป็นจริงหรือเท็จ อัลกอริธึมการแยกสาขาและตัวอย่างการใช้งานสามารถพบได้ทุกที่ ในการเขียนโปรแกรม นี่เป็นโครงสร้าง if-else ทั่วไปที่พบในเกือบทุกภาษา
ให้เรายกตัวอย่างอัลกอริธึมในการแก้ปัญหาการหาค่าที่ใหญ่ที่สุดในบรรดาตัวเลขสามตัว
อัลกอริธึมแบบ Round-Robin
อัลกอริธึมแบบวนเป็นขั้นตอนที่ทำซ้ำขั้นตอนเดียวกันหลายครั้ง ซึ่งเฉพาะค่าของตัวแปรเฉพาะที่ใช้คำนวณเท่านั้นที่สามารถเปลี่ยนแปลงได้ ประเภทของอัลกอริธึมแบบวนรอบและตัวอย่างจะกล่าวถึงด้านล่าง แต่สำหรับตอนนี้ เราจะแสดงรายการขั้นตอนหลักในการสร้างวงจร
- การกำหนดค่าเริ่มต้นให้กับตัวแปร หากไม่ตรงตามเงื่อนไขนี้ การวนซ้ำอาจล้มเหลวหรือทำให้เกิดข้อผิดพลาด
- บล็อกสำหรับการคำนวณผลลัพธ์ นี่คือเนื้อหาหลักของลูป
- การตรวจสอบสภาวะสิ้นสุดของกระบวนการแบบวนรอบ หากคุณลืมระบุเงื่อนไขที่ลูปควรสิ้นสุด อัลกอริธึมจะทำงานตลอดไป
- การเปลี่ยนแปลงตัวแปร บล็อกนี้จะมีผลหลังจากตรวจสอบเงื่อนไขสิ้นสุดแล้วว่าเป็นเท็จหรือไม่ หากคุณลืมเกี่ยวกับบล็อกนี้ ลูปจะดำเนินการอย่างใดอย่างหนึ่งตลอดไปและไม่มีวันเสร็จสมบูรณ์ ดังนั้นจึงเป็นสิ่งสำคัญที่ตัวแปรจะต้องได้รับการเปลี่ยนแปลงบางอย่างในการวนซ้ำแต่ละครั้ง
อัลกอริธึมแบบวนมีหลายประเภท: โดยมีเงื่อนไขภายหลัง เงื่อนไขเบื้องต้น และพารามิเตอร์
มาสร้างอัลกอริทึมแบบวนโดยใช้ตัวอย่างการค้นหาแฟกทอเรียลของจำนวน N
อัลกอริธึมประเภทอื่น
มีอัลกอริธึมอื่นๆ จำนวนหนึ่งที่แตกต่างกันในการจำแนกประเภทหรือที่มา
- อัลกอริธึมเครื่องกล ตัวอย่างเช่น การทำงานของเครื่องยนต์สันดาปภายในหรือสายการประกอบ
- อัลกอริธึมความน่าจะเป็น งานของพวกเขาอยู่บนพื้นฐานของทฤษฎีความน่าจะเป็นและสถิติทางคณิตศาสตร์
- อัลกอริธึมการเรียนรู้แบบฮิวริสติก พวกเขาใช้ข้อพิจารณาเชิงปฏิบัติในการทำงานโดยไม่มีการให้เหตุผลทางคณิตศาสตร์ที่เข้มงวด
- อัลกอริธึมทางพันธุกรรม พวกเขานำแนวคิดทางชีววิทยามาใช้ในงานของพวกเขา
>> ประเภทของอัลกอริทึม
ในอัลกอริธึม คำสั่งจะถูกเขียนทีละคำสั่งตามลำดับที่กำหนด ไม่จำเป็นต้องดำเนินการตามลำดับการเขียน: ขึ้นอยู่กับลำดับที่คำสั่งถูกดำเนินการ อัลกอริธึมสามประเภทสามารถแยกแยะได้:
อัลกอริธึมเชิงเส้น
อัลกอริธึมการแยกสาขา
อัลกอริธึมที่มีการทำซ้ำ
อัลกอริธึมเชิงเส้น
คำสั่งใดที่ถูกดำเนินการตามลำดับที่เขียนนั่นคือตามลำดับทีละคำสั่งเรียกว่าเชิงเส้น
ตัวอย่างเช่น อัลกอริธึมการปลูกต้นไม้ต่อไปนี้เป็นแบบเส้นตรง:
1) ขุดหลุมในดิน
2) ลดต้นกล้าลงในหลุม
3) เติมดินลงในหลุมด้วยต้นกล้า
4) รดน้ำต้นกล้าด้วยน้ำ
การใช้บล็อกไดอะแกรม อัลกอริธึมนี้สามารถอธิบายได้ดังต่อไปนี้:
อัลกอริทึมเกี่ยวกับการแตกแขนง
สถานการณ์ที่ทราบลำดับการดำเนินการที่จำเป็นล่วงหน้านั้นเกิดขึ้นได้ยากมาก ในชีวิตคุณมักจะต้องตัดสินใจขึ้นอยู่กับสถานการณ์ปัจจุบัน ถ้าฝนตกเราก็เอาร่มมาใส่เสื้อกันฝน ถ้าร้อนให้สวมเสื้อผ้าที่บางเบา นอกจากนี้ยังมีเงื่อนไขการเลือกที่ซับซ้อนมากขึ้น ในบางกรณี ชะตากรรมในอนาคตของบุคคลขึ้นอยู่กับการตัดสินใจที่เลือก
ตรรกะการตัดสินใจสามารถอธิบายได้ดังต่อไปนี้:
ถ้า<условие>ที่<действия 1>มิฉะนั้น<действия 2>
ตัวอย่าง:
ถ้าคุณต้องการที่จะเป็น สุขภาพดีจากนั้นทำให้แข็งแกร่งขึ้น ไม่อย่างนั้นก็นอนบนโซฟาทั้งวัน
ถ้านกนางแอ่นบินต่ำ ฝนก็จะตก ไม่เช่นนั้นฝนก็จะไม่ตก
หากคุณได้เรียนรู้บทเรียนของคุณแล้ว ไปเดินเล่น ไม่เช่นนั้นก็เรียนรู้บทเรียนของคุณ
ในบางกรณี<действия 2>อาจจะขาด;
ถ้า<условие>ที่<действия 1>
ตัวอย่าง:
ถ้าคุณเรียกตัวเองว่าเห็ดนมก็ให้เข้าไปด้านหลัง
รูปแบบของการจัดระเบียบการดำเนินการซึ่งขึ้นอยู่กับการปฏิบัติตามเงื่อนไขบางประการ จะดำเนินการอย่างใดอย่างหนึ่ง ลำดับต่อมาขั้นตอนเรียกว่าการแตกแขนง
ให้เราบรรยายในรูปแบบของผังงานลำดับการกระทำของนักเรียนชั้นประถมศึกษาปีที่ 6 Mukhin Vasya ซึ่งเขาจินตนาการดังนี้: “ ถ้า Pavlik อยู่ที่บ้านเราจะแก้ปัญหาทางคณิตศาสตร์ มิฉะนั้นเราควรโทรหา Marina และเตรียมรายงาน เรื่องชีววิทยาด้วยกัน ถ้ามาริน่าไม่อยู่บ้าน ก็ต้องนั่งเขียน"
ดังนั้น ด้วยความช่วยเหลือของผังงาน คุณสามารถนำเสนอเหตุผลได้อย่างชัดเจนเมื่อแก้ไขปัญหาต่อไปนี้
ในเหรียญสามเหรียญที่มีสกุลเงินเดียวกัน มีเหรียญหนึ่งเป็นของปลอม (ไฟแช็ก) จะค้นหาโดยใช้เครื่องชั่งน้ำหนักแบบถ้วยโดยไม่มีตุ้มน้ำหนักได้อย่างไร
อัลกอริทึมที่มีการทำซ้ำ
ในทางปฏิบัติมักมีปัญหาที่ต้องทำซ้ำการกระทำหนึ่งหรือหลายอย่างซ้ำหลายครั้งจนกว่าจะเป็นไปตามเงื่อนไขที่กำหนดไว้ล่วงหน้า
อัลกอริทึมที่มี รอบเรียกว่าอัลกอริธึมแบบวนหรืออัลกอริธึมที่มีการทำซ้ำ
สถานการณ์ที่การวนซ้ำไม่สิ้นสุดเรียกว่าการวนซ้ำ ควรพัฒนาอัลกอริทึมเพื่อป้องกันสถานการณ์ดังกล่าว
ลองดูตัวอย่างจากคณิตศาสตร์
จำนวนธรรมชาติเรียกว่าจำนวนเฉพาะหากมีตัวหารเพียงสองตัว คือ ตัวหนึ่งและตัวมันเอง1
2, 3, 5, 7 - จำนวนเฉพาะ; 4, 6, 8 - ไม่ ในศตวรรษที่ 3 ก่อนคริสต์ศักราช เอราทอสเธเนส นักคณิตศาสตร์ชาวกรีกเสนออัลกอริทึมต่อไปนี้เพื่อค้นหาจำนวนเฉพาะทั้งหมดที่น้อยกว่าจำนวนที่กำหนด n:
1) เขียนตัวเลขธรรมชาติทั้งหมดตั้งแต่ 1 ถึง n;
2) ขีดฆ่า 1;
3) ขีดเส้นใต้ตัวเลขที่เล็กที่สุดที่ไม่มีเครื่องหมาย
4) ขีดฆ่าตัวเลขทั้งหมดที่เป็นผลคูณของสิ่งที่ขีดเส้นใต้ในขั้นตอนที่แล้ว
5) หากมีตัวเลขที่ไม่ได้ทำเครื่องหมายในรายการ ให้ไปที่ขั้นตอนที่ 3 ไม่เช่นนั้นตัวเลขที่ขีดเส้นใต้ทั้งหมดจะเป็นจำนวนเฉพาะ
นี่คืออัลกอริธึมแบบวนรอบ เมื่อดำเนินการแล้ว ให้ทำซ้ำขั้นตอนที่ 3-5 จนกว่าจะมีตัวเลขที่ไม่มีเครื่องหมายอยู่ในรายการเดิม
นี่คือลักษณะของผังงานสำหรับเด็กนักเรียนที่ต้องทำการบ้านคณิตศาสตร์ก่อนไปเดินเล่นในตอนเย็น:
โปรดจำไว้ว่า จำนวน 1 ไม่ใช่จำนวนประกอบ (ที่มีตัวหารมากกว่าสองตัว) หรือจำนวนเฉพาะ
ที่สำคัญที่สุด
อัลกอริธึมสามประเภทสามารถแยกแยะได้ ขึ้นอยู่กับลำดับการดำเนินการคำสั่ง:
> อัลกอริธึมเชิงเส้น
> อัลกอริธึมการแยกสาขา
> อัลกอริธึมที่มีการทำซ้ำ
อัลกอริธึมที่คำสั่งถูกดำเนินการตามลำดับที่เขียนซึ่งก็คือตามลำดับทีละคำสั่งเรียกว่าเชิงเส้น
รูปแบบของการจัดระเบียบการดำเนินการซึ่งขึ้นอยู่กับการปฏิบัติตามเงื่อนไขบางประการการดำเนินการตามลำดับขั้นตอนหนึ่งหรืออย่างอื่นเรียกว่าการแตกแขนง
รูปแบบของการจัดระเบียบการดำเนินการซึ่งมีการดำเนินการตามลำดับคำสั่งเดียวกันซ้ำจนกระทั่งตรงตามเงื่อนไขที่กำหนดไว้ล่วงหน้าเรียกว่า วงจร (การทำซ้ำ)
คำถามและงาน
1. อัลกอริธึมอะไรที่เรียกว่าเชิงเส้น?
2. ยกตัวอย่างอัลกอริธึมเชิงเส้น
3. นักแสดง "เครื่องคิดเลข" สามารถทำได้เพียงสองคำสั่งเท่านั้น: คูณด้วย 2 แล้วบวก คิดแผนการที่สั้นที่สุดเพื่อให้เขาได้หมายเลข 50 จาก O
4. รูปแบบของการจัดระเบียบการกระทำใดที่เรียกว่าการแตกแขนง?
5. นางเอกของเรื่อง "ห่านและหงส์" ต้องปฏิบัติตามเงื่อนไขอะไรบ้าง?
6. ยกตัวอย่างอัลกอริทึมที่มีการแตกแขนง"
7. อ่านข้อความที่ตัดตอนมาจากบทกวีของ J. Rodari “ งานฝีมือมีกลิ่นอย่างไร”:
แต่ละตลับมีกลิ่นพิเศษ:
เบเกอรี่มีกลิ่นแป้งและขนมอบ
คุณเดินผ่านโรงช่างไม้ -
มันมีกลิ่นเหมือนขี้กบและกระดานสด
จิตรกรมีกลิ่นเหมือนน้ำมันสนและสีทา
กระจกมีกลิ่นเหมือนสีโป๊วหน้าต่าง
เสื้อแจ็คเก็ตคนขับมีกลิ่นเหมือนน้ำมันเบนซิน
เสื้อคนงาน-ทาน้ำมันเครื่อง
ใช้ถ้อยคำใหม่เกี่ยวกับวิชาชีพที่ใช้คำว่า “IF... THEN”/
8. จำไว้ว่าฮีโร่ในนิทานพื้นบ้านรัสเซียคนไหนที่ตัดสินใจเลือกชะตากรรมของพวกเขา
9. จากทั้งหมด 9 เหรียญที่เป็นสกุลเงินเดียวกัน มีเหรียญหนึ่งเป็นของปลอม (เบากว่า) คุณสามารถชั่งน้ำหนักบนตาชั่งถ้วยที่ไม่มีตุ้มน้ำหนักได้กี่ครั้ง
10. การดำเนินการในรูปแบบใดที่เรียกว่าการทำซ้ำ?
11.ยกตัวอย่างอัลกอริทึมที่มีการทำซ้ำ
12. คุณรู้ไหมว่างานวรรณกรรมใดมีรูปแบบการจัดระเบียบของการกระทำที่เป็นวัฏจักรเกิดขึ้น?
13. นักแสดงจะอยู่ที่ไหนซึ่งทำกลุ่มคำสั่งต่อไปนี้ครบ 16 ครั้งติดต่อกัน?
เดินไปข้างหน้า 10 เมตร
หมุน 90° ตามเข็มนาฬิกา
14. การกระทำกลุ่มใดและควรทำซ้ำกี่ครั้งเมื่อแก้ไขปัญหาต่อไป?
ทหารสี่สิบนายเข้ามาใกล้แม่น้ำซึ่งมีเด็กชายสองคนกำลังนั่งเรืออยู่ ทหารจะข้ามไปอีกฝั่งได้อย่างไร ในเมื่อเรือสามารถรองรับทหารได้เพียงคนเดียวหรือเด็กชายสองคนเท่านั้น แต่ไม่สามารถรองรับทหารและเด็กชายได้อีกต่อไป
15. จำปัญหาของเครื่องคิดเลขที่สามารถคูณด้วย 2 และเพิ่ม 1 ได้เท่านั้น มันจะง่ายกว่ามากในการพัฒนาอัลกอริธึมเชิงตรรกศาสตร์หากคุณใช้บล็อกไดอะแกรมต่อไปนี้:
ใช้ผังงานนี้พัฒนาอัลกอริทึมเชิงตรรกยะเพื่อให้ได้ตัวเลข 1024 และ 500 จาก 0
Bosova L. L. วิทยาการคอมพิวเตอร์: หนังสือเรียนสำหรับชั้นประถมศึกษาปีที่ 6 / L. L. Bosova - ฉบับพิมพ์ครั้งที่ 3, ฉบับที่. และเพิ่มเติม - ม.: บินอม. ห้องปฏิบัติการความรู้, 2548. - 208 หน้า: ป่วย.
เนื้อหาบทเรียน บันทึกบทเรียนและการสนับสนุนการนำเสนอบทเรียนแบบเฟรมวิธีการสอนแบบเร่งเทคโนโลยีแบบโต้ตอบ ฝึกฝน การทดสอบ การทดสอบงานออนไลน์ และแบบฝึกหัด การบ้าน และคำถามการฝึกอบรมสำหรับการอภิปรายในชั้นเรียน ภาพประกอบ วัสดุวิดีโอและเสียง ภาพถ่าย รูปภาพ กราฟ ตาราง แผนภาพ การ์ตูน อุปมา คำพูด ปริศนาอักษรไขว้ เกร็ดเล็กเกร็ดน้อย เรื่องตลก คำพูด ส่วนเสริม บทคัดย่อเคล็ดลับแผ่นโกงสำหรับบทความที่อยากรู้อยากเห็น (MAN) วรรณกรรมพื้นฐานและพจนานุกรมคำศัพท์เพิ่มเติม การปรับปรุงตำราเรียนและบทเรียน แก้ไขข้อผิดพลาดในตำราเรียนแทนที่ความรู้ที่ล้าสมัยด้วยความรู้ใหม่ สำหรับครูเท่านั้น ปฏิทิน แผน โปรแกรมการฝึกอบรม คำแนะนำด้านระเบียบวิธีภายในกรอบการทำงานของการเขียนโปรแกรมแบบมีโครงสร้าง ปัญหาที่มีวิธีแก้ปัญหาอัลกอริทึมสามารถอธิบายได้โดยใช้โครงสร้างอัลกอริทึมต่อไปนี้:
- กำลังติดตาม- ถือว่าการดำเนินการคำสั่งตามลำดับจากบนลงล่าง หากอัลกอริธึมประกอบด้วยโครงสร้างลำดับเท่านั้น ก็จะเป็นเชิงเส้น
- การแตกแขนง- การทำงานของโปรแกรมดำเนินไปตามหนึ่งในสองสาขาหรือหลายสาขา การเลือกสาขาขึ้นอยู่กับเงื่อนไขที่อินพุตสาขาและข้อมูลที่ได้รับที่นี่
- วงจร- ถือว่ามีความเป็นไปได้ที่จะเกิดซ้ำของการกระทำบางอย่าง จำนวนการทำซ้ำขึ้นอยู่กับสภาวะของรอบการปั่น
- ฟังก์ชั่น (รูทีนย่อย)- คำสั่งที่แยกออกจากโปรแกรมหลักจะถูกดำเนินการก็ต่อเมื่อมีการเรียกคำสั่งจากโปรแกรมหลักเท่านั้น (จากที่ใดก็ได้ในนั้น) ฟังก์ชั่นเดียวกันสามารถเรียกจากโปรแกรมหลักกี่ครั้งก็ได้ตามต้องการ
คำอธิบายโครงสร้างอัลกอริทึมต่างๆ ในภาษาของผังงาน
การแตกแขนงถ้า
นี่เป็นการแยกสาขาที่ง่ายที่สุด หากผลลัพธ์ของการคำนวณนิพจน์เงื่อนไขคืนค่าเป็นจริง การดำเนินการของอัลกอริทึมจะดำเนินการตามสาขา "ใช่" ซึ่งรวมถึงนิพจน์การดำเนินการเพิ่มเติม หากเงื่อนไขส่งคืนค่าเท็จ การดำเนินการของอัลกอริธึมจะดำเนินการตามสาขา "ไม่" กล่าวคือ สาขาหลักของโปรแกรมยังคงถูกดำเนินการต่อไป
การแยกส่วนแบบ if-else
หากนิพจน์เงื่อนไขคืนค่าเป็นจริง อัลกอริทึมจะดำเนินการตามสาขา "ใช่" หากเงื่อนไขไม่เป็นที่พอใจ (เท็จ) อัลกอริทึมจะดำเนินการตามสาขา "ไม่ใช่" สำหรับผลลัพธ์ใดๆ ของนิพจน์เงื่อนไข คุณจะไม่สามารถกลับไปยังสาขาโปรแกรมหลักโดยไม่ผ่านขั้นตอนเพิ่มเติมได้
การแตกแขนงของ If-elif-else
จำนวนเงื่อนไขอาจแตกต่างกันไป หากดำเนินการครั้งแรก จากนั้นหลังจากเสร็จสิ้นการดำเนินการ โปรแกรมจะย้ายไปยังสาขาหลักโดยไม่ตรวจสอบเงื่อนไขเพิ่มเติม หากเงื่อนไขแรกคืนค่าเป็นเท็จ เงื่อนไขที่สองจะถูกตรวจสอบ หากเงื่อนไขที่สองคืนค่าเป็นจริง การดำเนินการที่รวมอยู่ในสาขาที่สองของโครงสร้างจะถูกดำเนินการ เงื่อนไขสุดท้ายจะถูกตรวจสอบเฉพาะในกรณีที่ไม่มีก่อนที่จะให้ผลลัพธ์เป็นจริง โครงสร้างอัลกอริทึมนี้ (ถ้า – elif – อื่น) ไม่ควรสับสนกับโครงสร้างอัลกอริทึม “ตัวเลือก”
ในขณะที่วนซ้ำ
ตราบใดที่เป็นไปตามเงื่อนไข (ผลลัพธ์ของนิพจน์เชิงตรรกะเป็นจริง) การดำเนินการของเนื้อหาลูปจะถูกดำเนินการ หลังจากการดำเนินการที่ซ้อนกันครั้งถัดไป เงื่อนไขจะถูกตรวจสอบอีกครั้ง เพื่อป้องกันไม่ให้การดำเนินการของอัลกอริธึมเข้าสู่ลูป เนื้อความของลูป (รวมถึงการดำเนินการอื่นๆ) จะต้องมีนิพจน์ ซึ่งส่งผลให้ตัวแปรที่ใช้ในเงื่อนไขจะเปลี่ยนไป เนื้อความของลูปอาจไม่ถูกดำเนินการหากเงื่อนไขเป็นเท็จตั้งแต่เริ่มต้น
ทำวนซ้ำ
ในลูปนี้ เงื่อนไขจะถูกตรวจสอบเป็นครั้งแรกหลังจากที่การกระทำของตัวลูปเสร็จสิ้นแล้วเท่านั้น หากเงื่อนไขคืนค่าเป็นจริง นิพจน์การกระทำจะถูกทำซ้ำอีกครั้ง ไม่ว่าสภาพจะเป็นอย่างไร เนื้อความของลูปนี้จะถูกดำเนินการอย่างน้อยหนึ่งครั้ง
สำหรับวง
ลูปนี้เรียกอีกอย่างว่าลูป "สำหรับ" ส่วนหัวระบุพารามิเตอร์สามตัว ได้แก่ ค่าเริ่มต้นของตัวแปร (จาก) ค่าสุดท้าย (ถึง) และการเปลี่ยนแปลงโดยใช้การดำเนินการทางคณิตศาสตร์ในแต่ละ "เทิร์น" ของลูป (ขั้นตอน)
วัตถุประสงค์ของบทเรียน: | เพิ่มความสนใจในการศึกษาวิชา; การพัฒนาทักษะการคิดอย่างรวดเร็ว การพัฒนากิจกรรมสร้างสรรค์ของนักเรียน การพัฒนาความสนใจทางปัญญา |
วัตถุประสงค์ของบทเรียน: | 1. ทางการศึกษา: - เสริมสร้างแนวคิดของอัลกอริทึม ตัวดำเนินการ ระบบคำสั่งของตัวดำเนินการ และวิธีการนำเสนออัลกอริทึมกับนักเรียน - แนะนำนักเรียนให้รู้จักกับประเภทของอัลกอริธึม: เชิงเส้น, การแยกสาขา, วงจร - สอนการนำเสนออัลกอริธึมในรูปแบบ Flowchart 2. พัฒนาการ: - เปิดใช้งานกิจกรรมการรับรู้ของนักเรียนผ่านเครื่องมือการเรียนรู้มัลติมีเดีย - พัฒนาจินตนาการ มีวิจารณญาณ การคิดที่แตกต่าง 3. ทางการศึกษา: - การเพิ่มแรงจูงใจของนักเรียนในห้องเรียน - บรรลุระดับความเชี่ยวชาญของเนื้อหาโดยนักเรียนอย่างมีสติ - การก่อตัวของความรู้สึกร่วมกันและการแข่งขันที่ดี - การก่อตัวของการคิดอัลกอริทึม |
ข้อกำหนดสำหรับความรู้และทักษะ: | - รู้จักประเภทของอัลกอริธึม - รู้แนวคิด: อัลกอริธึมเชิงเส้น, การแตกแขนง, ไซคลิก - สามารถประยุกต์ความรู้ที่ได้รับเมื่อปฏิบัติงานจริงได้ |
ประเภทบทเรียน: | รวมกัน |
เทคโนโลยี: | การก่อตัวของความสามารถในการสื่อสาร |
วิธีการ: | - ค้นหาบางส่วนใช้งานได้จริง - ข้อมูล (วาจา); - ภาพและภาพประกอบ |
อุปกรณ์: | ฟลิปชาร์ตในหัวข้อ (ภาคผนวก 1) คอมพิวเตอร์ ทรัพยากร แผนที่เทคโนโลยีของนักเรียน (ภาคผนวก 2), การ์ดหลายระดับ (ภาคผนวก 3), เครือข่ายท้องถิ่น NetOp |
ในระหว่างเรียน
I. ช่วงเวลาขององค์กร
1. ทักทายหนุ่มๆ สวัสดีทุกคน! นั่งลง! อารมณ์ของคุณคืออะไร? ถ้ามันดีก็ยิ้มให้ทุกคนสิ! ถ้าไม่ก็มองหน้ากันแล้วยิ้ม! มาเริ่มบทเรียนกันเถอะ! ฉันนำเสนออัลกอริทึมให้คุณในรูปแบบวาจา ดูกระดานดำสิ อัลกอริธึมเดียวกันนี้แสดงเป็นภาพกราฟิก วันนี้ในบทเรียน เราจะเรียนรู้การแสดงประเภทของอัลกอริทึมโดยใช้ผังงาน (ฟลิปชาร์ตหน้า 1)
บทบรรยายของบทเรียนของเราจะเป็นคำพูดของนักวิทยาศาสตร์ชาวฝรั่งเศสชื่อดัง Gustave Guillaume: "ถนนนั้นควบคุมโดยผู้ที่เดิน แต่โดยผู้ที่คิดเกี่ยวกับวิทยาการคอมพิวเตอร์"
2. การประกาศวัตถุประสงค์ของบทเรียน
ครั้งที่สอง การอัพเดตความรู้ของนักเรียน
แต่ก่อนที่เราจะเริ่มเรียนรู้เนื้อหาใหม่ๆ เราต้องจำไว้ว่าเราเรียนอะไรในบทเรียนที่แล้ว
1. ตรวจการบ้าน
ตรวจสอบปริศนาอักษรไขว้ที่แก้ไขโดยนักเรียนที่บ้าน
คำตอบ:
1. 1. กราฟิก
2. แขนขา
3. ข้อมูล
4. นักแสดง
5. อัลกอริธึม
6. ซอฟต์แวร์
7. แผน
8. คอมพิวเตอร์
9. เครื่องมือ
10. การวาดภาพ
11. ขั้นตอน
ตัวเลือกที่ 1. “ การปลูกต้นกล้า”
ตัวเลือก 2 ตอนจากเทพนิยาย "ห่านและหงส์"
6. การบ้าน.
1. เรียนรู้บันทึกย่อ
2. วาดในรูปแบบ A4 ตัวอย่างของอัลกอริทึมแบบวนและบล็อกไดอะแกรมสำหรับเทพนิยาย "Kolobok"
7. คำถาม. 1. อัลกอริธึมประเภทใดบ้าง?
2. อัลกอริทึมประเภทใดที่แสดงในรูปภาพ
ภาคผนวกหมายเลข 3
การ์ดหลายระดับ1. ทำงานหมายเลข 1,2,3 บนทรัพยากรให้เสร็จสิ้น
กรอกตารางด้วยสองตัวอย่างสำหรับอัลกอริทึมแต่ละประเภท
สร้างอัลกอริทึมใน Paint โดยใช้คำสั่งย้ายและคัดลอก
ตัวเลือกที่ 1. (ฟลิปชาร์ตหน้า 25)
"การปลูกต้นกล้า"
ตัวเลือกที่ 2 (ฟลิปชาร์ตหน้า 26)
ตอนจากเทพนิยายเรื่อง "ห่านกับหงส์"
หลัก คุณสมบัติอัลกอริธึมคือ:
1.
2.
3.
4.
·เชิงเส้น;
การแตกแขนง;
· วัฏจักร
เชิงเส้น
การแตกแขนง
วัฏจักร
โครงสร้างโปรแกรมในภาษาปาสคาล
ปาสคาลเป็นภาษาที่สอนเรื่องความถูกต้องและชัดเจน (ส่วนของโปรแกรม ไม่สามารถสลับได้ ต้องเข้าใจการทำงานของโปรแกรมให้ชัดเจน เป็นต้น) ด้วยเหตุนี้จึงจำเป็นต้องรู้และเข้าใจโครงสร้างของโปรแกรม Pascal อย่างชัดเจน
โปรแกรมชื่อโปรแกรม;
(ในตัวอักษรภาษาอังกฤษคำเดียว อยากเจาะลึกไหม ต้องใช้กฎในการเขียนตัวระบุ)
การใช้งานไลบรารีปลั๊กอิน (โมดูล);
(คุณสมบัติเพิ่มเติมสามารถเชื่อมต่อกับโปรแกรมในบรรทัดนี้ได้)
ฉลากรายการแท็ก
(จากที่หนึ่งในโปรแกรมเพื่อ "ข้าม" ไปยังอีกที่หนึ่ง)
คงที่ส่วนคำอธิบายคงที่
(ค่าคงที่ไม่สามารถเปลี่ยนแปลงได้)
พิมพ์คำอธิบายประเภทตัวแปร (พิมพ์)
วีเออาร์การกำหนดตัวแปรระดับโลก
(คำอธิบายตัวแปรทั้งหมดที่สามารถเปลี่ยนได้ในโปรแกรม)
คำจำกัดความของขั้นตอน;
คำจำกัดความของฟังก์ชัน
บล็อกหลักของโปรแกรม
หลังจากเกือบทุกบรรทัดจะมีป้าย" ; “ ป้ายนี้แสดงว่าสายเสร็จแล้ว ป้าย " ; " ไม่ได้อยู่หลังคำฟังก์ชัน เริ่มและอันสุดท้าย จบ.(ซึ่งหมายถึงการสิ้นสุดโปรแกรม) ตามด้วยจุด
3. ตัวดำเนินการแบบมีเงื่อนไข ตัวดำเนินการเลือก การดำเนินการเชิงตรรกะในภาษาปาสคาล ตารางความจริง กฎพื้นฐานของพีชคณิตแห่งตรรกศาสตร์
คำสั่งแบบมีเงื่อนไข
IF [นิพจน์บูลีน] จากนั้น [คำสั่ง 1]; อื่น [คำสั่ง 2];
คำสั่ง IF ทำงานดังนี้: ขั้นแรกจะตรวจสอบผลลัพธ์ของนิพจน์บูลีน หากผลลัพธ์เป็น TRUE ดังนั้น [statement_1] ที่ตามหลังคำฟังก์ชัน That จะถูกดำเนินการ และ [statement_2] จะถูกข้ามไป หากผลลัพธ์เป็น FALSE ระบบจะข้าม [statement_1] และดำเนินการ [statement_2]
สำหรับ [loop_parameter] := [n_z_p_ts] ถึง [k_z_p_ts] Do [operator];
FOR, To, Do เป็นคำฟังก์ชัน [cycle_parameter] – พารามิเตอร์รอบ [n_z_p_ts] – ค่าเริ่มต้นของพารามิเตอร์รอบ [k_z_p_ts] – ค่าสุดท้ายของพารามิเตอร์รอบ [ตัวดำเนินการ] – ตัวดำเนินการโดยพลการ
พารามิเตอร์ลูปต้องเป็นตัวแปรลำดับ ค่าเริ่มต้นและสิ้นสุดของพารามิเตอร์ลูปจะต้องเป็นประเภทเดียวกันกับพารามิเตอร์ลูป
ในขณะที่ [เงื่อนไข] ทำ [ผู้ดำเนินการ];
WHILE, Do – ฟังก์ชั่นคำ [เงื่อนไข] – การแสดงออกของประเภทตรรกะ [ผู้ดำเนินการ] – ผู้ดำเนินการสามัญ
คำสั่ง While ทำงานดังต่อไปนี้ ประการแรก ผลลัพธ์ของเงื่อนไขลอจิคัลจะถูกตรวจสอบ หากผลลัพธ์เป็นจริง คำสั่งจะถูกดำเนินการ หลังจากนั้นคำสั่งจะกลับไปตรวจสอบเงื่อนไขด้วยค่าใหม่ของพารามิเตอร์ในนิพจน์เชิงตรรกะของเงื่อนไข หากผลลัพธ์เป็นเท็จ แสดงว่าการวนซ้ำถูกยกเลิก
ทำซ้ำ [วงจร_ร่างกาย]; จนกระทั่ง [เงื่อนไข];
คำสั่ง REPEAT ทำงานดังต่อไปนี้: ขั้นแรก คำสั่งในส่วนเนื้อหาของลูปจะถูกดำเนินการ หลังจากนั้นผลลัพธ์จะถูกตรวจสอบสำหรับเงื่อนไขลอจิคัล หากผลลัพธ์เป็นเท็จ ก็จะกลับไปดำเนินการคำสั่งของเนื้อหาลูปถัดไป หากผลลัพธ์เป็นจริง ผู้ดำเนินการจะออกจากระบบ
ตรรกะและการดำเนินการ
การดำเนินการแบบตรรกะ AND จะดำเนินการกับสองบิต ลองเรียกมันว่า a และ b ผลลัพธ์ของการดำเนินการเชิงตรรกะ AND จะเท่ากับ 1 ถ้า a และ b เท่ากับ 1 และในกรณีอื่น ๆ ทั้งหมดผลลัพธ์จะเท่ากับ 0 เราดูที่ตารางความจริงของการดำเนินการเชิงตรรกะและ
ก | ข | เอแอนด์บี |
ประเภทข้อมูล
ลำดับ:
ทั้งหมด; พัฒนาสมอง; อักขระ; รายการ; ช่วงเวลา;
จริง:
มีโครงสร้าง:
อาร์เรย์; สตริง; ชุด; บันทึก; ไฟล์;
ป้ายบอกทาง
6.อาร์เรย์ ความหมาย คำอธิบาย การจัดเก็บ และการใช้งาน
อาร์เรย์เป็นประเภทข้อมูลที่มีโครงสร้างซึ่งประกอบด้วยองค์ประกอบประเภทเดียวกันจำนวนคงที่
คุณสมบัติ:
องค์ประกอบอาเรย์ทั้งหมดเป็นประเภทเดียวกัน
อาร์เรย์มีชื่อเดียวสำหรับองค์ประกอบทั้งหมด
องค์ประกอบอาร์เรย์เฉพาะถูกเข้าถึงโดยดัชนี
7.ขั้นตอนและหน้าที่ ส่วนหัวและเนื้อหาของขั้นตอนและฟังก์ชัน การจำแนกพารามิเตอร์ ขั้นตอนการโทรและฟังก์ชั่นคุณสมบัติการใช้งาน
รูทีนย่อย นี่เป็นส่วนหนึ่งของโปรแกรม ซึ่งได้รับการออกแบบให้เป็นโครงสร้างวากยสัมพันธ์แยกต่างหากและมีชื่อมาให้ "การโทร" รูทีนย่อยเช่น การดำเนินการที่ระบุในรูทีนย่อยในรูปแบบของคำสั่งสามารถดำเนินการได้ในบางจุดของโปรแกรมโดยการระบุชื่อของรูทีนย่อยนี้ นอกเหนือจากการระบุลำดับของการดำเนินการแล้ว รูทีนย่อยใดๆ ยังสามารถประกอบด้วยคำอธิบายของชุดบางชุดได้ ท้องถิ่นวัตถุ - ค่าคงที่ ประเภท ตัวแปร ฯลฯ ออบเจ็กต์เหล่านี้มีจุดมุ่งหมายเพื่อจัดระเบียบการดำเนินการภายในรูทีนย่อยและมีความหมาย (เช่น เข้าถึงได้หรือมองเห็นได้) ภายในเท่านั้นของโปรแกรมย่อยนี้
กลไกของรูทีนย่อยในภาษา Turbo Pascal ถูกนำมาใช้ในรูปแบบของขั้นตอนและฟังก์ชัน มีโครงสร้างเกือบจะเหมือนกัน ความหมายเหมือนกัน แต่มีจุดประสงค์และวิธีการเรียกต่างกัน
ขั้นตอนทำหน้าที่ระบุลำดับของการดำเนินการที่มุ่งเปลี่ยนสภาพแวดล้อมภายนอกโปรแกรม โพรซีเดอร์ถูกเรียกโดยการระบุชื่อในตำแหน่งในโปรแกรมที่คำสั่งที่ระบุในโพรซีเดอร์ควรจะถูกดำเนินการ
ฟังก์ชั่นก่อนอื่นเลย ให้บริการเพื่อกำหนดอัลกอริทึมสำหรับการคำนวณค่าที่แน่นอน (แบบธรรมดา) ดังนั้น การเรียกใช้ฟังก์ชันจึงเป็นหนึ่งในตัวถูกดำเนินการที่ถูกต้องของนิพจน์ โดยระบุค่าที่ฟังก์ชันคำนวณ ("ส่งคืน")
ขั้นตอนชื่อขั้นตอน (FormalParametersList);
ฉลาก
การแสดงรายการป้ายกำกับภายในเนื้อหาของขั้นตอน
คงที่
คำอธิบายของค่าคงที่ท้องถิ่น
พิมพ์
คำอธิบายของประเภทท้องถิ่น
วีเออาร์
คำอธิบายของตัวแปรท้องถิ่น
เริ่ม
ขั้นตอนร่างกาย
จบ.
แนวคิดของอัลกอริทึม คุณสมบัติ วิธีการอธิบาย ประเภทของอัลกอริทึม
อัลกอริธึมเป็นคำสั่งที่แม่นยำและเข้าใจได้สำหรับนักแสดงในการดำเนินการตามลำดับที่มุ่งแก้ไขปัญหาที่กำหนด
หลัก คุณสมบัติอัลกอริธึมคือ:
1. ระดับ (ความแน่นอน) ถือว่าได้รับผลลัพธ์ที่ชัดเจนของกระบวนการคำนวณด้วยข้อมูลเริ่มต้นที่กำหนด เนื่องจากคุณสมบัตินี้ กระบวนการดำเนินการอัลกอริธึมจึงมีลักษณะเป็นกลไก
2. ประสิทธิผล. บ่งชี้ถึงการมีอยู่ของข้อมูลเริ่มต้นซึ่งกระบวนการคำนวณที่นำไปใช้ตามอัลกอริธึมที่กำหนดจะต้องหยุดลงหลังจากขั้นตอนจำนวนจำกัดและให้ผลลัพธ์ที่ต้องการ
3. ตัวละครมวล คุณสมบัตินี้บอกเป็นนัยว่าอัลกอริทึมควรเหมาะสมสำหรับการแก้ปัญหาทุกประเภทตามประเภทที่กำหนด
4. ความรอบคอบ หมายถึงการแบ่งกระบวนการคำนวณที่กำหนดโดยอัลกอริธึมออกเป็นขั้นตอนที่แยกจากกันซึ่งความสามารถที่นักแสดง (คอมพิวเตอร์) จะต้องดำเนินการนั้นไม่ต้องสงสัยเลย
ด้วยอัลกอริธึมที่หลากหลายสำหรับการแก้ปัญหา กระบวนการคำนวณสามประเภทหลักสามารถแยกแยะได้:
·เชิงเส้น;
การแตกแขนง;
· วัฏจักร
เชิงเส้นเป็นกระบวนการคำนวณที่ดำเนินการทุกขั้นตอนของการแก้ปัญหาตามลำดับธรรมชาติของการบันทึกขั้นตอนเหล่านี้
การแตกแขนงเป็นกระบวนการคำนวณที่การเลือกทิศทางในการประมวลผลข้อมูลขึ้นอยู่กับข้อมูลเริ่มต้นหรือข้อมูลกลาง (ขึ้นอยู่กับผลลัพธ์ของการตรวจสอบการปฏิบัติตามเงื่อนไขเชิงตรรกะใด ๆ )
วงจรเป็นส่วนหนึ่งของการคำนวณที่ทำซ้ำหลายครั้ง กระบวนการคำนวณที่มีหนึ่งหรือหลายรอบเรียกว่า วัฏจักร- ขึ้นอยู่กับจำนวนการดำเนินการ รอบจะถูกแบ่งออกเป็นรอบโดยมีจำนวนการทำซ้ำ (กำหนดไว้ล่วงหน้า) ที่แน่นอน และรอบที่มีจำนวนการทำซ้ำไม่จำกัด