คำถามติดแท็ก structured-programming

4
ความแตกต่างระหว่างการเขียนโปรแกรมที่จำเป็นขั้นตอนและมีโครงสร้างคืออะไร?
จากการค้นคว้าข้อมูล (หนังสือ, Wikipedia, คำถามที่คล้ายกันใน SE และอื่น ๆ ) ฉันมาทำความเข้าใจว่าการเขียนโปรแกรมที่จำเป็นเป็นหนึ่งในกระบวนทัศน์การเขียนโปรแกรมที่สำคัญซึ่งคุณอธิบายชุดคำสั่ง (หรือคำสั่ง) เพื่อให้คอมพิวเตอร์ทำงานได้ มากเพื่อที่จะดำเนินการเฉพาะดังนั้นชื่อ "จำเป็น") จนถึงตอนนี้ดีมาก ในทางกลับกันการเขียนโปรแกรมตามขั้นตอนเป็นประเภทเฉพาะ (หรือชุดย่อย) ของการโปรแกรมเชิงซ้อนซึ่งคุณใช้ขั้นตอน (เช่นฟังก์ชั่น) เพื่ออธิบายคำสั่งที่คอมพิวเตอร์ควรทำ คำถามแรก : มีภาษาโปรแกรมที่จำเป็นซึ่งไม่ได้เป็นขั้นตอนหรือไม่? กล่าวอีกนัยหนึ่งคุณสามารถตั้งโปรแกรมที่จำเป็นโดยไม่ต้องดำเนินการได้หรือไม่? ปรับปรุง : คำถามแรกนี้ดูเหมือนว่าจะตอบ ภาษามีความจำเป็นโดยไม่ต้องมีขั้นตอนหรือโครงสร้าง ตัวอย่างคือภาษาแอสเซมบลีบริสุทธิ์ จากนั้นคุณก็มีโปรแกรมแบบมีโครงสร้างซึ่งน่าจะเป็นประเภทอื่น (หรือส่วนย่อย) ของการโปรแกรมแบบไม่มีความจำเป็นซึ่งเกิดขึ้นเพื่อลบการเชื่อมั่นในคำสั่ง GOTO คำถามที่สอง : ความแตกต่างระหว่างการเขียนโปรแกรมแบบขั้นตอนและแบบโครงสร้างคืออะไร คุณสามารถมีหนึ่งโดยไม่มีอื่น ๆ และในทางกลับกัน? เราสามารถพูดได้หรือไม่ว่าการเขียนโปรแกรมเชิงกระบวนงานเป็นส่วนหนึ่งของการเขียนโปรแกรมเชิงโครงสร้างเช่นเดียวกับในภาพ

7
รูปแบบการออกแบบของยุคการเขียนโปรแกรมขั้นตอนคืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ที่คล้ายกัน: การเขียนโปรแกรมทำได้อย่างไรเมื่อ 20 ปีที่แล้ว? OOPเป็นแฟชั่นค่อนข้างปัจจุบันมีรากในSimula 67ในปี 1960 และต่อมาได้รับความนิยมจากสมอลล์ทอล์คและC ++ เรามีหนังสือแห้งหนังสือหลายเล่มเกี่ยวกับรูปแบบการออกแบบในโลกแห่งวัตถุ แต่สิ่งที่เป็นหลักการสำคัญในการเขียนโปรแกรมก่อนที่จะนำ OOP กระบวนทัศน์ที่กว้าง? และรูปแบบการออกแบบที่สำคัญคืออะไร

6
ระดับเริ่มต้น: ทำไมไม่มีการดำเนินการภายในคำสั่งเอาต์พุต
ฉันกำลังอ่านหนังสือแนะนำการเขียนโปรแกรมเบื้องต้นและจะแสดงตัวอย่างง่าย ๆ ใน pseudocode: Start input myNumber set myAnswer = myNumber * 2 output myAnswer Stop ทำไมเราไม่ละเว้นการสร้างตัวแปรอื่นที่เรียกว่าmyAnswerและเพียงแค่ใส่การดำเนินการลงในคำสั่งเอาต์พุตเช่นนี้: Start input myNumber output myNumber * 2 Stop ทำไมอดีตถึงถูกต้องและไม่หลัง

6
Foreach-loop พร้อม break / return vs. while-loop ที่มี invariant และ post-condition อย่างชัดเจน
นี่เป็นวิธีที่นิยมมากที่สุด (ดูเหมือนฉัน) ในการตรวจสอบว่าค่าอยู่ในอาร์เรย์หรือไม่: for (int x : array) { if (x == value) return true; } return false; อย่างไรก็ตามในหนังสือที่ฉันอ่านเมื่อหลายปีก่อนโดยอาจ Wirth หรือ Dijkstra มันก็บอกว่าสไตล์นี้ดีกว่า (เมื่อเทียบกับ while-loop ที่มีทางออกด้านใน): int i = 0; while (i < array.length && array[i] != value) i++; return i < array.length; วิธีนี้เงื่อนไขการออกเพิ่มเติมกลายเป็นส่วนหนึ่งที่ชัดเจนของลูปค่าคงที่ไม่มีเงื่อนไขที่ซ่อนอยู่และออกจากภายในลูปทุกอย่างชัดเจนมากขึ้นและมากขึ้นด้วยวิธีการเขียนโปรแกรมแบบมีโครงสร้าง ฉันมักจะแนะนำนี้รูปแบบหลังเมื่อใดก็ตามที่เป็นไปได้และใช้for-loop เพียงสำทับจากไปab ถึงกระนั้นฉันก็ไม่สามารถพูดได้ว่ารุ่นแรกนั้นมีความชัดเจนน้อยกว่า บางทีมันอาจจะชัดเจนและเข้าใจง่ายกว่าอย่างน้อยก็สำหรับผู้เริ่มต้น ดังนั้นฉันยังคงถามตัวเองว่าคำถามใดดีกว่ากัน? บางทีใครบางคนสามารถให้เหตุผลที่ดีแก่คนใดคนหนึ่งในวิธีการ? …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.