/ / อัลกอริธึมเชิงเส้น - โครงร่าง โครงสร้าง และการคำนวณ

อัลกอริทึมเชิงเส้น - โครงร่างโครงสร้างและการคำนวณ

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

ภาษาอัลกอริทึม

แนวคิดนี้เป็นคำสั่งที่แม่นยำสำหรับนักแสดงในการดำเนินการตามลำดับการกระทำ ซึ่งมุ่งเป้าไปที่การแก้ปัญหา

อัลกอริธึมเชิงเส้น

ภาษานี้เป็นวิธีการอธิบายอัลกอริธึมที่มักจะเน้นที่ผู้ใช้

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

การพัฒนาอัลกอริทึมเป็นกระบวนการที่ค่อนข้างซับซ้อนและใช้เวลานาน เป็นเทคนิคในการรวบรวม (พัฒนา) ลำดับของการกระทำที่มีไว้สำหรับการแก้ปัญหาด้วยความช่วยเหลือของคอมพิวเตอร์

คุณสมบัติของอัลกอริทึม

ท่ามกลางคุณสมบัติคือ:

  • ความจำกัด - ประกอบด้วยการทำงานให้เสร็จของอัลกอริธึมทั้งหมดในจำนวน จำกัด ของขั้นตอน (ขั้นตอน);
  • ความมั่นใจ (เอกลักษณ์) - แสดงถึงเอกลักษณ์ของการตีความกฎสำหรับการดำเนินการตลอดจนลำดับการดำเนินการ
  • ประสิทธิภาพ - ได้รับผลลัพธ์ที่ต้องการในจำนวนขั้นตอนที่ จำกัด
  • ความเข้าใจ - นักแสดงต้องเข้าใจคำแนะนำ;
  • อักขระมวล - อัลกอริธึมควรจะสามารถแก้ปัญหาเฉพาะทั้งระดับด้วยคำสั่งปัญหาทั่วไป

อัลกอริธึมเชิงเส้น วิทยาการคอมพิวเตอร์เกรด 9

เราได้พิจารณาคำจำกัดความและคุณสมบัติของแนวคิดนี้แล้ว ทีนี้มาพูดถึงประเภทของมันกันดีกว่า:

การแก้อัลกอริธึมเชิงเส้น

  • เส้นตรง;
  • แตกแขนง;
  • ด้วยวงจร

เราสนใจอัลกอริธึมเชิงเส้น พวกเขาคืออะไร? ประกอบด้วยคำสั่งที่ต้องดำเนินการตามลำดับที่ชัดเจน

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

นี่คือตัวอย่างที่เขียนในรูปแบบวาจา ดังนั้น ภารกิจ: เตรียมตัวให้พร้อมสำหรับการเรียน สารละลาย:

  • เริ่ม.
  • ตื่น.
  • เรียกเก็บเงิน
  • ล้างหน้าของคุณ.
  • แต่งตัว.
  • รับประทานอาหารเช้า.
  • รับกระเป๋าเอกสาร
  • ตอนจบ.

รูปแบบกราฟิกของกระบวนการข้างต้นจะเป็นดังนี้:

อัลกอริธึมเชิงเส้น วิทยาการคอมพิวเตอร์

อัลกอริธึมเชิงเส้นในรูปแบบของโฟลว์ชาร์ต

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

  • บล็อกของจุดเริ่มต้น-จุดสิ้นสุดของอัลกอริทึม บนบล็อกมีคำจารึกว่า "จุดเริ่มต้น" หรือ "จุดสิ้นสุด"
  • บล็อก "ข้อมูลอินพุต-เอาต์พุต"บล็อกนี้แสดงเป็นรูปสี่เหลี่ยมด้านขนาน มีจารึกต่อไปนี้: "อินพุต", "เอาต์พุต", "พิมพ์" นอกจากนี้ยังมาพร้อมกับรายการตัวแปรอินพุตหรือเอาต์พุตตามลำดับ
  • บล็อกเลขคณิตหรือบล็อกการตัดสินใจ มันสอดคล้องกับรูปสี่เหลี่ยมผืนผ้า บนบล็อกควรมีคำจารึก: "operation", "group of operation"

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

อัลกอริธึมการคำนวณเชิงเส้น

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

ตัวอย่างโซลูชันอัลกอริทึมเชิงเส้น

ให้เรายกตัวอย่างคำอธิบายกฎการหารเศษส่วนธรรมดาโดยใช้อัลกอริธึมเชิงเส้นซึ่งในหนังสือเรียนของโรงเรียนมีเนื้อหาดังต่อไปนี้:

  • ตัวเศษ 1 ต้องคูณด้วยตัวส่วนของเศษ 2;
  • ตัวส่วนของเศษ 1 ต้องคูณด้วยตัวเศษของ 2;
  • จำเป็นต้องเขียนเศษส่วนซึ่งตัวเศษเป็นผลมาจากการกรอกจุดที่ 1 และตัวส่วนเป็นผลมาจากการดำเนินการในจุดที่ 2 รูปแบบพีชคณิตของกฎนี้มีดังนี้:

a / b: c / d \u003d (a * d) / (b * d) \u003d m / n

โครงสร้างเชิงเส้นของอัลกอริทึม

เรามาสร้างอัลกอริทึมสำหรับการหารเศษส่วนของคอมพิวเตอร์กันเพื่อไม่ให้สับสน เราจะใช้การกำหนดแบบเดียวกันสำหรับตัวแปรตามสูตรที่ระบุไว้ข้างต้น a, b, c, d – ข้อมูลเริ่มต้นในรูปแบบของตัวแปรจำนวนเต็ม ผลลัพธ์จะเป็นค่าจำนวนเต็มด้วย การแก้ปัญหาในภาษาอัลกอริธึมจะเป็นดังนี้:

alg การหารเศษส่วน

แต่แรก

เหมือนเดิม a, b, c, d, m, n

อินพุต a, b, c, d

m:= a * d

n:= b * c

เอาต์พุต m, n

คอน

รูปแบบกราฟิกของโซลูชัน

โครงร่างของอัลกอริธึมเชิงเส้นที่อธิบายไว้ข้างต้นมีลักษณะดังนี้:

โครงร่างอัลกอริธึมเชิงเส้น

คำสั่งกำหนดค่ามีรูปแบบต่อไปนี้:

ตัวแปร:=นิพจน์

เครื่องหมาย ":=" อ่านว่าได้รับมอบหมาย

การมอบหมายคือคำสั่งที่จำเป็นสำหรับคอมพิวเตอร์เพื่อทำสิ่งต่อไปนี้:

  • การประเมินการแสดงออก
  • การกำหนดค่าที่ได้รับให้กับตัวแปร

อัลกอริธึมข้างต้นประกอบด้วยคำสั่งสองคำสั่ง ในผังงาน คำสั่งมอบหมายงานจะต้องเขียนเป็นรูปสี่เหลี่ยมผืนผ้าที่เรียกว่าบล็อกการคำนวณ

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

ในตัวอย่างของอัลกอริทึมที่กำหนด ยังมีคำสั่งอินพุต:

อินพุต a, b, c, d

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

อัลกอริธึมเชิงเส้น การเขียนโปรแกรมของเขา

ดังที่กล่าวไว้ในตอนต้นของบทความ โปรแกรมเชิงเส้นสามารถรวมข้อความดังกล่าวได้:

  • งานที่มอบหมาย;
  • ป้อนข้อมูล;
  • ข้อสรุป.

นั่นคือด้วยความช่วยเหลือของตัวดำเนินการที่ระบุไว้ อัลกอริธึมเชิงเส้นได้รับการตั้งโปรแกรมไว้

ดังนั้นตัวดำเนินการมอบหมายในภาษาการเขียนโปรแกรมจึงเขียนดังนี้:

LET A = B โดยที่ A เป็นตัวแปร B คือนิพจน์ ตัวอย่างเช่น A = Y + 20

ตัวดำเนินการอินพุตมีลักษณะดังนี้:

INPUT เช่น INPUT C

ตัวดำเนินการสำหรับการส่งออกข้อมูล ค่า ถูกเขียนดังนี้:

พิมพ์. ตัวอย่างเช่น PRINT C.

ลองมาดูตัวอย่างง่ายๆ เราจำเป็นต้องเขียนโปรแกรมที่จะหาผลรวมของตัวเลข A และ B ที่ป้อนจากแป้นพิมพ์

อัลกอริธึมการคำนวณเชิงเส้น

ในภาษาการเขียนโปรแกรมเราจะได้โปรแกรมซึ่งมีข้อความแสดงอยู่ด้านล่าง

การเขียนโปรแกรมอัลกอริธึมเชิงเส้น

ตัวดำเนินการอินพุตและเอาต์พุตในภาษาโปรแกรม Pascal

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

เมื่อป้อนข้อมูล คำสั่งดังกล่าวจะใช้เพื่ออ้างถึงขั้นตอนการป้อนข้อมูลมาตรฐานที่สร้างไว้แล้วในโปรแกรม

อ่าน (A, B, C) โดยที่ A, B, C เป็นตัวแปรที่ต้องป้อนลงใน RAM เพื่อท่องจำ

Readlnn (x1, y, x2) - หลังจากป้อนข้อมูลเสร็จแล้ว เคอร์เซอร์จะย้ายไปที่จุดเริ่มต้นของบรรทัดใหม่

readlnn; - ระบุความคาดหวังของการกด "Enter" โดยปกติคำสั่งนี้จะถูกแทรกลงในข้อความก่อนสิ้นสุด "สิ้นสุด" เพื่อบันทึกผลลัพธ์ของโปรแกรมในหน้าจอเนื้อหา

การแสดงข้อมูลบนหน้าจอมอนิเตอร์ทำได้โดยใช้ข้อความต่อไปนี้:

เขียน (A, B, C) - โดยการระบุค่า A, B, C ในหนึ่งบรรทัด เคอร์เซอร์จะไม่ออกจากบรรทัดปัจจุบัน

Writeln (z, y, z2) - หลังจากเสร็จสิ้นการแสดงค่า เคอร์เซอร์ที่ตำแหน่งนี้จะย้ายไปขึ้นบรรทัดใหม่

ไรเติลน์; - ระบุการข้ามบรรทัดหนึ่งและการเปลี่ยนไปยังจุดเริ่มต้นของบรรทัดใหม่

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