1 / 30

บทที่4 การเขียนซูโดโคด หรือ รหัสจำลอง (Pseudo Code)

บทที่4 การเขียนซูโดโคด หรือ รหัสจำลอง (Pseudo Code). รูปแบบการเขียนอัลกอริทึม (ต่อ). การเขียนซูโดโคด (Pseudo Code)

atalo
Télécharger la présentation

บทที่4 การเขียนซูโดโคด หรือ รหัสจำลอง (Pseudo Code)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่4การเขียนซูโดโคด หรือรหัสจำลอง (Pseudo Code)

  2. รูปแบบการเขียนอัลกอริทึม (ต่อ) การเขียนซูโดโคด (Pseudo Code) หมายถึง การนำคำในภาษาอังกฤษ มาแสดงการทำงานของคอมพิวเตอร์ โดยเรียบเรียงเป็นประโยคให้สามารถสื่อความหมายให้ผู้อ่านเข้าใจได้ว่าแต่ละขั้นตอนของการแก้ปัญหานั้นทำได้อย่างไร ซูโดโคดที่ดีต้องมีความชัดเจน สั้น กระชับ ได้ใจความก่อนทำการเขียนอัลกอริทึม ต้องกำหนดตัวแปรก่อนที่จะใช้ก่อนเสมอ

  3. วิธีการเขียนรหัสจำลอง (Pseudo Code) Pseudo code สามารถกำหนดการทำงานได้เป็น 6 ข้อ ดังนี้ • การรับข้อมูลของคอมพิวเตอร์ • การแสดงผลข้อมูลของคอมพิวเตอร์ • การคำนวณหรือการทำงานทางคณิตศาสตร์ของคอมพิวเตอร์ • การกำหนดค่าข้อมูลของคอมพิวเตอร์ • การเปรียบเทียบข้อมูล 2 อย่าง และมีการเลือกทางเดียวหรือสองทางเลือกในการทำงานหรือหลายทาง • การทำงานซ้ำของคอมพิวเตอร์

  4. 1. การรับข้อมูลของคอมพิวเตอร์ การรับข้อมูล นิยมใช้คำว่า read หรือ inputตามด้วยชื่อตัวแปรที่ต้องการรับค่า ถ้าต้องการรับค่าหลายตัวแปรให้ใช้เครื่องหมายcommaคั่น inputตัวแปร1, ตัวแปร2, … readตัวแปร1, ตัวแปร2, …

  5. 1. การรับข้อมูลของคอมพิวเตอร์ Read : การอ่านข้อมูลจากที่มีเก็บอยู่ในไฟล์แล้ว Get หรือ Input : การรับข้อมูลมาจากคีย์บอร์ด Read student name Get system date Read number1, number2 Get tax_code

  6. 2. การแสดงผลข้อมูลของคอมพิวเตอร์ Print : การส่งผลลัพธ์ไปยังเครื่องพิมพ์ (Printer) Writeหรือ Put : การเก็บข้อมูลลงสู่ไฟล์ (File) Outputหรือ Display : การแสดงผลข้อมูลบนจอภาพ (Screen) Print ‘Program Completed’ Write customer record to master file Put name, address and postcode Output total_tax Display ‘End of data’

  7. 3. การคำนวณหรือการทำงานทางคณิตศาสตร์ของคอมพิวเตอร์ Add: การบวก Subtract : การลบ Multiply : การคูณ Divide : การหาร Add number to total total = total + number Divide total_marks by student_count sale_tax = cost_price * 0.10 Compute C = (F-32) * 5/9

  8. 4. การกำหนดค่าข้อมูลของคอมพิวเตอร์ Setหรือ Initialise: การกำหนดค่าเริ่มต้นให้กับข้อมูล ตาม to = : การกำหนดค่าผลลัพธ์ที่ได้จากการประมวลผล Saveหรือ Store : การเก็บค่าข้อมูลไว้ใช้งานในครั้งต่อไป Initialise total accumulators to zero Set student_count to 0 total_price = cost_price + sale_tax Store customer_num in last_customer_num

  9. 5. การเปรียบเทียบข้อมูล 2 อย่าง และมีการเลือกทางเดียวหรือสองทางเลือกในการทำงานหรือหลายทาง 5.1 การเปรียบเทียบระหว่าง 2 ค่า เป็นการเปรียบเทียบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะให้ทำคำสั่งกลุ่มหนึ่ง แต่ถ้าเงื่อนไขเป็นเท็จให้ทำคำสั่งอีกกลุ่มหนึ่ง ใช้คำว่า if..then..else..endif if (เงื่อนไข) thenกลุ่มคำสั่งกรณีเงื่อนไขเป็นจริง else กลุ่มคำสั่งกรณีเงื่อนไขเป็นเท็จ endif ตัวอย่าง if (x > 0) then read x else compute sum = x + y endif

  10. 5. การเปรียบเทียบข้อมูล 2 อย่าง และมีการเลือกทางเดียวหรือสองทางเลือกในการทำงานหรือหลายทาง 5.2 การเปรียบเทียบทางเลือกหลายทาง เป็นการเปรียบเทียบค่าของข้อมูล โดยจะไปทำกลุ่มคำสั่งตามค่าของตัวแปรที่ใช้เปรียบเทียบ ใช้คำว่า case case ตัวแปรที่ใช้เปรียบเทียบ of ค่าตัวแปร1 : กลุ่มคำสั่งกรณีตัวแปรมีค่าเท่ากับค่าตัวแปร1 ค่าตัวแปร2 : กลุ่มคำสั่งกรณีตัวแปรมีค่าเท่ากับค่าตัวแปร2 ... endcase

  11. 5.2 ตัวอย่างการทำงานหลายทางเลือก Case grade of 4 : write ‘A’ 3 : write ‘B’ 2 : write ‘C’ 1 : write ‘D’ 0 : write ‘F’ endcase

  12. 6. การทำงานซ้ำของคอมพิวเตอร์ การทำงานแบบวนซ้ำ มี 3 รูปแบบ คือ 6.1 do-whileมีการเปรียบเทียบเงื่อนไขก่อนที่จะทำคำสั่งภายใน แล้วจึงทำการเปรียบเทียบเงื่อนไขอีกครั้ง แต่ถ้าเงื่อนไขเป็นเท็จจะไม่ทำคำสั่งภายในแต่จะข้ามไปทำคำสั่งถัดไปจาก do-while do (เงื่อนไขที่ใช้เปรียบเทียบ) while กลุ่มคำสั่งกรณีเงื่อนไขเป็นจริง enddo end-of = ‘N’ do (end-of = ‘N’) while write ‘A’ compute x = y + 1 read end-of enddo

  13. 6. การทำงานซ้ำของคอมพิวเตอร์ 6.2 repeat-untilทำคำสั่งภายในก่อน แล้วจึงทำการเปรียบเทียบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จจะทำคำสั่งภายใน แต่ ถ้าเงื่อนไขเป็นจริงจะข้ามไปทำคำสั่งถัดไปจาก repeat-until repeat กลุ่มคำสั่งกรณีเงื่อนไขเป็นเท็จ until (เงื่อนไขที่ใช้เปรียบเทียบ) end-of = ‘N’ repeat write ‘A’ compute x = y + 1 read end-of until(end-of = ‘Y’)

  14. 6. การทำงานซ้ำของคอมพิวเตอร์ 6.3 for-endforทำคำสั่งภายในตามจำนวนครั้งที่กำหนด ซึ่งต้องมีตัวแปรนับมาช่วย เพื่อกำหนดจำนวนครั้งในการทำซ้ำ for ตัวแปรนับ = ค่าเริ่มต้น to ค่าสุดท้าย กลุ่มคำสั่ง endfor For counter = 1 to 3 write ‘A’ endfor

  15. 1 ตัวอย่าง (Nature language) ตัวอย่างที่1. จงเขียนอัลกอริทึมเพื่อคำนวณหาความยาวของที่ดินแปลงหนึ่ง โดยทราบค่าพื้นที่และความกว้าง แล้วแสดงผลทางหน้าจอ วิธีทำ (1). กำหนดค่าเริ่มต้นของความยาวที่ดิน เป็น 0 (2). รับค่าของข้อมูลพื้นที่และความกว้างของที่ดิน (3). คำนวณค่า ความยาวที่ดิน= พื้นที่ / ความกว้าง (4). แสดงผลค่าความยาวที่ดินที่ได้จากการคำนวณ

  16. ตัวอย่างที่2.จงเขียนอัลกอริทึมเพื่อรับข้อมูลราคาสินค้าต่อหน่วย และจำนวนที่ซื้อสินค้านั้น เพื่อคำนวณหาราคาสินค้ารวม ภายใต้เงื่อนไขต่อไปนี้ถ้าซื้อเป็นจำนวนน้อยกว่า 6 ชิ้น ลดราคา 10 % ถ้าซื้อเป็นจำนวนมากกว่าหรือเท่ากับ 6 ชิ้น ลดราคา 15 % วิธีทำ (1). กำหนดค่าเริ่มต้นของราคาสินค้ารวม เป็น 0 (2). รับข้อมูล ราคาสินค้าต่อหน่วย และจำนวนสินค้าที่ซื้อ (3). เปรียบเทียบจำนวนสินค้า ถ้าสินค้ามีน้อยกว่า 6 ชิ้น ให้คำนวณ ราคาสินค้ารวม = (ราคาสินค้าต่อหน่วยxจำนวนชิ้น) x 90/100 ถ้าสินค้ามีมากกว่าหรือเท่ากับ 6 ชิ้น ให้คำนวณ ราคาสินค้ารวม = (ราคาสินค้าต่อหน่วย xจำนวนชิ้น) x 85/100 (4). แสดงผลราคาสินค้ารวมที่คำนวณได้

  17. จากตัวอย่างที่ 2 ทำในรูปแบบของซูโดโคด คือ วิธีทำ กำหนดตัวแปร grandtotal = ราคาสินค้ารวม price = ราคาสินค้าต่อหน่วย , numbers= จำนวนสินค้า Start grandtotal = 0 read price, numbers if (numbers < 6) then compute grandtotal = (price * numbers) * 90/100 else compute grandtotal = (price * numbers) * 85/100 endif write grandtotal Stop

  18. ตัวอย่างที่ 3.จงเขียนอัลกอริทึมเพื่อรับข้อมูลราคาสินค้าต่อหน่วย และจำนวนที่ซื้อสินค้ามากกว่า 1 รายการสินค้า เพื่อคำนวณหาราคาสินค้ารวม ภายใต้เงื่อนไขคือ ให้หยุดเมื่อรายการสินค้ามากกว่า 10 รายการ วิธีทำ(1). กำหนดค่าเริ่มต้นของ ราคาสินค้า และราคาสินค้ารวม เป็น 0 และจำนวนรายการเป็น 0 (2). รับข้อมูลราคาสินค้าต่อหน่วย และจำนวนสินค้าที่ซื้อ (3). คำนวณ เพิ่มจำนวนรายการสินค้า นั่นคือ จำนวนรายการ = จำนวนรายการ + 1 (4). คำนวณ ราคาสินค้า = ราคาสินค้าต่อหน่วย x จำนวนสินค้า คำนวณสะสม ราคาสินค้ารวม = ราคาสินค้ารวม +ราคาสินค้า (5). เปรียบเทียบจำนวนรายการว่ามากกว่า 10 รายการหรือไม่ ถ้าไม่ ให้ทำวน ข้อ (2)ใหม่ ถ้ามากกว่าก็ให้ทำข้อ (6) (6). แสดงผลค่าราคาสินค้ารวม

  19. จากตัวอย่างที่ 3 ทำในรูปแบบของซูโดโคด คือ วิธีทำ กำหนดตัวแปร grandtotal = ราคาสินค้ารวม price = ราคาสินค้าต่อหน่วย numbers= จำนวนสินค้า grandprice = ราคาสินค้า counter = จำนวนรายการ เนื่องจากมีการวนซ้ำเกิดขึ้นเพราะโจทย์บอกให้ทำมากกว่า 1 รายการ ซึ่งการที่จะใช้ do-while , repeat-until และ for ให้ผลไม่เหมือนกัน เราต้องพิจารณาให้ดีว่าโจทย์ ต้องการอะไรและให้ทำกี่รอบกันแน่ รวมถึงการตั้งค่าเริ่มต้นให้กับตัวแปรนับที่จะใช้เป็น เงื่อนไขด้วย

  20. จากตัวอย่างที่ 3 ทำในรูปแบบของซูโดโคด คือ Start grandtotal = 0, grandprice = 0, counter = 0 repeat read price, numbers compute counter = counter + 1 compute grandprice = price * numbers compute grandtotal = grandtotal + grandprice until (counter > 10) write grandtotal Stop

  21. การเขียนซูโดโคด (Pseudo Code)เปรียบเทียบระหว่างการเขียนเป็นผังงาน

  22. จากตัวอย่างที่ 1 ทำในรูปแบบของflowchart คือ Start Lplace = 0 read surface, wplace compute lplace = surface / wplace write lplace Stop

  23. จากตัวอย่างที่ 2 ทำในรูปแบบของflowchart คือ Start grandtotal = 0 read price, numbers (numbers < 6) yes grandtotal = (price * numbers) * 90/100 no write grandtotal grandtotal = (price * numbers) * 85/100 Stop

  24. สรุปโครงสร้างพื้นฐานสำหรับการเขียนโปรแกรมแบบการเขียนซูโดโคด รหัสจำลอง (Pseudo Code) 1. โครงสร้างตามลำดับ (Sequence Structure) statement a statement b statement c Add 1 to page_count Print heading line Set linecount to zero Read customer record

  25. 2. โครงสร้างการเลือก (Selection Structure) IF condition p is true THEN IF student is part_time THEN statement(s) in true case add 1 to part_time_count ELSE ELSE statement(s) in false case add 1 to full_time_count ENDIF ENDIF

  26. 3. โครงสร้างการทำงานซ้ำ (Repetition Structure) DOWHILE condition p is true WHILE condition p is true DO statement block statement block ENDDO ENDWHILE

  27. ตัวอย่าง โปรแกรมมีการรับค่าตัวเลข 3 จำนวน แล้วนำมาบวกกัน จากนั้นพิมพ์ค่าผลบวกที่ได้ Input Processing Output number_1 Read three numbers total number_2 Add numbers together number_3 Print total number ตัวแปรที่ใช้สำหรับเก็บค่าตัวเลข 3 จำนวน คือ Number_1,Number_2,Number_3 ตามลำดับ ตัวแปรที่เก็บค่าผลบวก คือ Total

  28. รูปแบบการเขียนอัลกอริทึม (ต่อ) 4. การเขียนโครงสร้างการทำงาน (Structure Chart) เป็นการออกแบบอัลกอริทึมหรือออกแบบผังงานที่ไม่ซับซ้อนมากนัก โดยแบ่งงานเป็นงานย่อย (subtask) หรือ function หรือ module ซึ่งทำงานเฉพาะอย่าง โดยกำหนดชื่อของแต่ละโมดูลไว้ ทำให้สามารถทำความเข้าใจ งานใหญ่ๆและซับซ้อนได้ ผู้ออกแบบสามารถพัฒนาอัลกอริทึมของแต่ละโมดูลได้

  29. ตัวอย่าง

  30. ตัวอย่าง

More Related