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

โครงสร้างการตัดสินใจและโครงสร้างลำดับในการเขียนโปรแกรมเชิงโครงสร้าง ที่มา: I.hidekazu CC BY-SA (httpscreativecommons.orglicensesby-sa4.0)
ด้วยการพัฒนาอย่างรวดเร็วของการประมวลผลข้อมูลด้วยคอมพิวเตอร์ในช่วงปลายทศวรรษ 1960 จึงสามารถแก้ปัญหาที่ซับซ้อนมากขึ้นได้ อย่างไรก็ตามการทำความเข้าใจการดีบักและการแก้ไขโปรแกรมเหล่านี้ทำให้เกิดปัญหาที่ทำให้ไม่น่าเชื่อถือ
โปรแกรมคอมพิวเตอร์ขนาดใหญ่ที่สร้างขึ้นสำหรับปัญหาเหล่านี้มีซอร์สโค้ดที่ยาวและไม่มีโครงสร้างจนกลายเป็นเรื่องซับซ้อนในการเข้าถึงและนำทางด้วยตรรกะบางอย่างแม้แต่กับผู้เขียนเองก็ตาม
ที่มา
โปรแกรมเมอร์ใช้คำสั่ง "goto" ในภาษาโปรแกรมเพื่อทำการแยกตามเงื่อนไขซึ่งมักจะนำไปสู่ความสามารถในการอ่านและบริบทเชิงตรรกะไม่ได้รับการรักษาไว้
ในวิกฤตซอฟต์แวร์นี้คำถามเกิดขึ้นว่าวิธีการทั่วไปและระเบียบวินัยสามารถพัฒนาได้อย่างเป็นระบบซึ่งจะช่วยให้โปรแกรมมีความละเอียดรอบคอบมากขึ้นหรือไม่ เพื่อตอบสนองต่อแนวทางนี้วิธีการเขียนโปรแกรมเชิงโครงสร้างจึงถือกำเนิดขึ้น
ในปี 1968 Dijkstra ตีพิมพ์บทความ "Goto คำสั่งถือว่าเป็นอันตราย" ซึ่งเขาชี้ให้เห็นว่าการใช้คำสั่งนี้อย่างไม่เลือกปฏิบัติมีผลเสียต่อการอ่านและเข้าใจโปรแกรมคอมพิวเตอร์
Niklaus Wirth ได้ออกแบบภาษาการเขียนโปรแกรมใหม่ที่เรียกว่า Pascal ซึ่งเปิดตัวในปี 1970 ตั้งแต่นั้นมาก็ถูกใช้อย่างกว้างขวางเพื่อสอนการออกแบบการเขียนโปรแกรมเชิงโครงสร้าง
ลักษณะเฉพาะ
โหมดการเขียนโปรแกรมนี้มีลักษณะเฉพาะคือการที่โปรแกรมเมอร์สามารถแยกส่วนซอร์สโค้ดของโปรแกรมลงในบล็อกที่มีโครงสร้างเชิงตรรกะซึ่งประกอบด้วยลูปบล็อกตรรกะและคำสั่งเงื่อนไข
เป้าหมายของการเขียนโปรแกรมเชิงโครงสร้างคือการสร้างโปรแกรมที่ง่ายต่อการเขียนดีบักและแก้ไข โปรแกรมที่ได้รับมีความชัดเจนเป็นระเบียบเข้าใจได้โดยไม่ต้องกระโดด
ทฤษฎีการเขียนโปรแกรมเชิงโครงสร้าง
Dijkstra ได้คิดค้นทฤษฎีที่เชื่อมโยงกับการเขียนโปรแกรมเชิงโครงสร้างซึ่งระบุว่าเมื่อออกแบบโปรแกรมใด ๆ จะสะดวกในการคำนึงถึงปัจจัยพื้นฐานต่อไปนี้:
- ทฤษฎีบทโครงสร้างซึ่งระบุว่าโปรแกรมใด ๆ สามารถคอมไพล์โดยใช้โครงสร้างควบคุมที่จำเป็นเพียงสามโครงสร้าง ได้แก่ โครงสร้างตามลำดับโครงสร้างทางเลือกและโครงสร้างซ้ำ
- เมื่อสรุปโปรแกรมจะแนะนำให้ใช้เทคนิคจากมากไปหาน้อยเรียกอีกอย่างว่าจากบนลงล่าง
- ช่วงของความถูกต้องและการมองเห็นของตัวแปรและโครงสร้างข้อมูลต้องถูก จำกัด
โครงสร้างการควบคุม
ทฤษฎีบทโครงสร้างบ่งชี้ว่าอัลกอริทึมใด ๆ ที่มีจุดเริ่มต้นและจุดสิ้นสุดเดียวสามารถประกอบเป็นองค์ประกอบของโครงสร้างควบคุมสามแบบได้
ด้วยการตั้งโปรแกรมโครงสร้างการควบคุมที่สนับสนุนเหล่านี้อย่างมีเหตุผลและชัดเจนการเขียนโปรแกรมแบบมีโครงสร้างช่วยให้สามารถใช้งานฟังก์ชันได้อย่างมีประสิทธิภาพโดยมีระดับความยากง่าย
ลำดับหรือโครงสร้างเชิงเส้น
โครงสร้างนี้เป็นเพียงลำดับหรือการสืบทอดของการดำเนินการหรือคำสั่งตั้งแต่สองคำสั่งขึ้นไป
โครงสร้างการตัดสินใจหรือทางเลือก
เป็นการเลือกคำสั่งระหว่างสองทางเลือกที่เป็นไปได้ นอกจากนี้ยังอนุญาตให้เลือกระหว่างทางเลือกมากกว่าสองทาง
โครงสร้างแบบวนซ้ำหรือทำซ้ำด้วยคำถามเริ่มต้น
คำสั่งบางคำสั่งซ้ำตราบเท่าที่ตรงตามเงื่อนไข นอกจากนี้ยังสามารถดำเนินการรอบด้วยตัวนับ
เป็นอิสระจากภาษาโปรแกรม
การเขียนโปรแกรมเชิงโครงสร้างขึ้นอยู่กับโมดูลการทำงานที่กำหนดไว้อย่างดีโดยจัดอันดับตามลักษณะเฉพาะของปัญหา การเขียนโปรแกรมนี้เป็นวิธีการที่เป็นอิสระของภาษาโปรแกรมซึ่งทำหน้าที่เหมือนรูปแบบของการเขียนโปรแกรมมากกว่า
เป็นวิธีการวางแผนโปรแกรมตามกฎที่กำหนดไว้อย่างดีโดยใช้ชุดโครงสร้างควบคุมสำหรับสิ่งนี้
การเขียนโปรแกรมแบบมีโครงสร้างช่วยให้สามารถเขียนโปรแกรมด้วยรหัสเทียมโดยไม่คำนึงถึงภาษาเครื่องใกล้เคียงกับธรรมชาติแปลงเป็นภาษาโปรแกรมใด ๆ ได้
ตัวอย่างการเขียนโปรแกรมที่มีโครงสร้าง
ข้อมูลโค้ดตัวอย่างเกือบทุกภาษาในภาษาการเขียนโปรแกรมสมัยใหม่จะเป็นตัวอย่างของการเขียนโปรแกรมที่มีโครงสร้าง
การเขียนโปรแกรมนี้ใช้ลูปเงื่อนไขและรูทีนย่อยเพื่อควบคุมโฟลว์และโมดูลาร์เพื่อทำให้โค้ดอ่านและใช้ซ้ำได้ง่ายขึ้น
ลำดับ
รายการคำสั่งสามารถดำเนินการตามลำดับจากบนลงล่าง ในกรณีนี้โปรแกรมภาษาธรรมชาติสำหรับการอบขนมปังจะได้รับเป็นตัวอย่าง:
- ใส่แป้ง
- ใส่ยีสต์
- ใส่เกลือ
- ผสม
- เติมน้ำ
- นวด
- ปล่อยให้แป้งขึ้น
- การอบ.
การทำซ้ำ
บล็อกของคำสั่งถูกทำซ้ำตราบเท่าที่เงื่อนไขเป็นจริง ตัวอย่างเช่นการล้างจาน

การเลือก
การกระทำส่วนใหญ่เลือกจากเงื่อนไขทางเลือกหลายประการ ตัวอย่างเช่นสั่งซื้อทางไปรษณีย์

การเขียนโปรแกรมเชิงโครงสร้างใน Visual Basic
ลำดับ
บรรทัดหรือบล็อกของโค้ดถูกเขียนและดำเนินการตามลำดับ ตัวอย่างเช่นคุณมี:
x = 6
y = 12
z = x + y
WriteLine (z)
การทำซ้ำ
บล็อกรหัสซ้ำในขณะที่ตรงตามเงื่อนไข ไม่มีการ จำกัด จำนวนครั้งที่สามารถดำเนินการบล็อกได้ ตัวอย่าง:
x = 2
ตราบเท่าที่ x <100
WriteLine (x)
x = x * x
ปลาย
การเลือก
บล็อกโค้ดจะถูกเรียกใช้งานหากเงื่อนไขเป็นจริง บล็อกโค้ดจะทำงานพร้อมกันมากที่สุด ตัวอย่าง:
x = ReadLine ()
ถ้า x Mod 2 = 0
WriteLine ("ตัวเลขเป็นเลขคู่")
สิ้นสุดใช่
ความได้เปรียบ
- เป็นโปรแกรมที่ตอบสนองความต้องการของลูกค้า
- แม้ว่าจะใช้เวลาสร้างโค้ดในตอนแรกนานกว่า แต่ก็มักจะส่งผลให้โค้ดทำงานโดยไม่มีข้อผิดพลาดเมื่อรันครั้งแรก
- คล้ายกับคำศัพท์และสัญลักษณ์ในภาษาอังกฤษ
- ง่ายต่อการจัดการกับการเปลี่ยนแปลงในโปรแกรมพร้อมข้อกำหนดใหม่ ๆ ในอนาคต
- ดูแลรักษาง่ายกว่า
- ใช้งานง่ายและเข้าใจ ในที่สุดก็ต้องใช้เวลาในการเขียนโค้ดน้อยลง มันง่ายกว่าที่จะเรียนรู้
- โปรแกรมที่เขียนด้วยภาษาระดับสูงสามารถแปลเป็นภาษาเครื่องได้หลายภาษา ดังนั้นจึงสามารถรันบนคอมพิวเตอร์เครื่องใดก็ได้ที่มีตัวแปลหรือคอมไพเลอร์ที่เหมาะสม
- เน้นปัญหาเป็นหลักมากกว่าเน้นเครื่องจักร
- ไม่ขึ้นอยู่กับคอมพิวเตอร์ที่ใช้ กล่าวอีกนัยหนึ่งคือโปรแกรมที่พัฒนาด้วยภาษาระดับสูงสามารถทำงานบนคอมพิวเตอร์เครื่องใดก็ได้
โปรแกรมที่ชัดเจนขึ้น
การเขียนโปรแกรมแบบมีโครงสร้างช่วยลดความเป็นไปได้ที่ฟังก์ชันหนึ่งจะส่งผลต่ออีกฟังก์ชันหนึ่ง สิ่งนี้ทำให้โปรแกรมชัดเจนขึ้นเนื่องจากตัวแปรส่วนกลางจะถูกแทนที่ด้วยตัวแปรภายใน
เนื่องจากการเปลี่ยนแปลงนี้สามารถบันทึกพื้นที่การจัดสรรหน่วยความจำที่ตัวแปรส่วนกลางครอบครองได้
เข้าใจง่าย
องค์กรช่วยให้เข้าใจตรรกะการเขียนโปรแกรมได้ง่ายเพื่อให้เข้าใจตรรกะเบื้องหลังโปรแกรม
นอกจากนี้ยังช่วยให้ผู้มาใหม่จาก บริษัท เทคโนโลยีใด ๆ เข้าใจโปรแกรมที่สร้างโดยคนงานในอุตสาหกรรมอื่น ๆ ซึ่งจะช่วยอำนวยความสะดวกในการดีบักโค้ดที่อาจเกิดขึ้น
ข้อเสีย
- นักแปลหรือคอมไพเลอร์ต้องแปลภาษาระดับสูงเป็นภาษาเครื่อง ดังนั้นจึงต้องจ่ายราคาในการใช้คอมพิวเตอร์
- รหัสออบเจ็กต์ที่สร้างโดยคอมไพลเลอร์อาจไม่มีประสิทธิภาพเมื่อเทียบกับโปรแกรมภาษาแอสเซมบลีที่เทียบเท่า
รหัสเดียวกันซ้ำ
โค้ดที่เขียนขึ้นสามารถปรากฏในส่วนต่างๆของโปรแกรม อาจเสี่ยงต่อปัญหาต่างๆเนื่องจากสถานที่ตั้ง โปรแกรมมีตัวแปรซึ่งหมายความว่าสามารถใช้ค่าต่างๆในส่วนต่างๆของโปรแกรมได้
การเปลี่ยนชนิดข้อมูลเป็นเรื่องยุ่งยาก
ประเภทของข้อมูลมาจากหลายฟังก์ชัน ดังนั้นเมื่อมีการเปลี่ยนแปลงเกิดขึ้นในข้อมูลประเภทนั้นจะต้องทำการเปลี่ยนแปลงที่เกี่ยวข้องในแต่ละตำแหน่งที่กระทำกับข้อมูลประเภทนั้นภายในโปรแกรม นี่เป็นงานที่ใช้เวลานานมากหากโปรแกรมมีขนาดใหญ่มาก
กรณีของการพัฒนาซอฟต์แวร์สามารถพิจารณาได้โดยที่โปรแกรมเมอร์หลายคนทำงานเป็นทีมในแอปพลิเคชัน ในโปรแกรมที่มีโครงสร้างโปรแกรมเมอร์แต่ละคนจะได้รับมอบหมายให้สร้างชุดฟังก์ชันและชนิดข้อมูลเฉพาะ
ดังนั้นโปรแกรมเมอร์ที่แตกต่างกันจะแยกกันจัดการฟังก์ชันต่างๆที่มีประเภทข้อมูลที่ใช้ร่วมกัน
โปรแกรมเมอร์คนอื่น ๆ ในทีมควรสะท้อนถึงการเปลี่ยนแปลงในประเภทข้อมูลที่ทำโดยโปรแกรมเมอร์ในชนิดข้อมูลที่พวกเขาจัดการ มิฉะนั้นจะต้องเขียนหลายฟังก์ชันใหม่
การประยุกต์ใช้งาน
การเขียนโปรแกรมแบบมีโครงสร้างทำงานได้ดีกับโปรแกรมนับล้านและโค้ดหลายพันล้านบรรทัด ไม่มีเหตุผลที่จะทิ้งมัน
โดยเฉพาะอย่างยิ่งมันทำงานได้ดีอย่างมากสำหรับโปรแกรมที่ประมวลผลข้อมูลและสำหรับการประมวลผลตัวเลขซึ่งทั้งสองอย่างนี้จะทำงานเพียงครั้งเดียวเพื่อสร้างการตอบสนอง
ลักษณะสองประการมีแนวโน้มที่จะกำหนดปัญหาที่สามารถเข้าถึงได้อย่างมีแบบแผน:
- ข้อมูลที่ต้องจัดการจะตรงกับประเภทของข้อมูลที่รวมเข้ากับภาษาอย่างใกล้ชิดโดยทั่วไปจะเป็นตัวเลขและสตริงอักขระ
- โปรแกรมทำตามขั้นตอนการควบคุมที่กำหนดไว้อย่างดีเพื่อสร้างผลลัพธ์เดียวตามข้อมูลเข้าบางส่วน
โปรแกรมคอมพิวเตอร์ที่มีคุณสมบัติเหล่านี้รวมถึงแอปพลิเคชันทางวิทยาศาสตร์วิศวกรรมและการประมวลผลคำนอกเหนือจากตัวอย่างตำราเรียนของหลักสูตรวิทยาการคอมพิวเตอร์แบบดั้งเดิม
ไม่น่าแปลกใจที่สิ่งเหล่านี้เป็นประเภทของโปรแกรมที่คนกลุ่มแรกที่คิดค้นภาษาโปรแกรมต้องการแก้ปัญหา
การจัดการวัตถุ
ภาษาโปรแกรมสมัยใหม่ส่วนใหญ่มีโครงสร้างในลักษณะนี้สิ่งที่คุณมีในโปรแกรมของคุณคือวัตถุและรหัสส่วนใหญ่ประกอบด้วยวิธีการต่างๆในการใช้ข้อมูลที่เก็บไว้ในวัตถุเหล่านั้น
โดยทั่วไปโปรแกรมที่มีโครงสร้างจะควบคุมสิ่งที่เกิดขึ้นและเมื่อเกิดขึ้นในขณะที่โปรแกรมตามเหตุการณ์จะต้องสามารถตอบสนองต่อเหตุการณ์ในช่วงเวลาที่คาดเดาไม่ได้
อ้างอิง
- MVPS (2020) การเขียนโปรแกรมที่มีโครงสร้าง นำมาจาก: mvps.net.
- Alexey (2019) กระบวนทัศน์การเขียนโปรแกรมที่มีโครงสร้าง ปานกลาง นำมาจาก: medium.com.
- รวมความช่วยเหลือ (2020) การเขียนโปรแกรมเชิงโครงสร้างข้อดีและข้อเสีย นำมาจาก: includehelp.com.
- ทิมทร็อตต์ (2019) ภาษาโปรแกรมที่มีโครงสร้าง Lonewolf Online นำมาจาก: lonewolfonline.net.
- OO Portal (2020) การใช้และประโยชน์ของการเขียนโปรแกรมแบบดั้งเดิมที่มีโครงสร้าง นำมาจาก: ooportal.com.
- Studeer Snel (2020). การตรวจสอบขั้นสุดท้าย - สรุปแอปพลิเคชันการเขียนโปรแกรมที่มีโครงสร้าง นำมาจาก: studeersnel.nl.
