Transcript Chapter 3
เนือ้ หา ประเภทของโปรแกรมภาษา ขัน้ ตอนการพัฒนาโปรแกรม กาหนดและวิเคราะห์ ปัญหา การเขียนผังงาน (Flowchart) 1 1.1 ประเภทโปรแกรมภาษา ประเภทของโปรแกรมภาษา 1. ภาษาระดับต่า (Low-Level Language) เช่น ภาษาเครื่ อง (Machine language) ภาษาแอสเซมบลี (Assembly Language) 2. ภาษาระดับกลาง (Middle-Level Language) เช่น ภาษาฟอร์ ท ภาษา C 3. ภาษาระดับสูง (High-Level Language) เช่น Basic, Pascal, Fortran, JAVA, Cobol 2 1.1.3 ภาษาระดับสูง ภาษาระดับสูง (High-Level Languages) ใช้ ภาษาที่มนุษย์เข้ าใจ (English-like language) เช่น Basic, Pascal, Fortran, JAVA, ... ใช้ คอมไพเลอร์ (Compiler) หรื อ Interpreter ในการแปลภาษาระดับสูงให้ เป็ นภาษาเครื่ อง Compiler แปลทังโปรแกรม ้ (เช่น Pascal, C, ...) Interpreter แปลทีละบรรทัด (เช่น Basic, ...) 3 1.2 การพัฒนาโปรแกรม 5 ขัน้ ตอนในการพัฒนาโปรแกรม 1. กาหนดและวิเคราะห์ปัญหา (State problem & Problem analysis) 2. เขียนผังงาน (Flowchart) 3. เขียนโปรแกรม (Programming) 4. ทดสอบและแก้ ไขโปรแกรม (Testing & debugging) 5. ทาเอกสารและบารุงรักษาโปรแกรม (Document & maintenance) 4 1.3 กาหนด&วิเคราะห์ ปัญหา กาหนดขอบเขตของปั ญหา (State problem) ให้ ชดั เจนว่า จะให้ คอมพิวเตอร์ ทาอะไร (What?) วิเคราะห์ ปัญหา (Problem analysis) Input: กาหนดลักษณะข้ อมูลเข้ า Process: กาหนดวิธีการประมวลผล (How?) Output: กาหนดลักษณะข้ อมูลออก 5 ตัวอย่ างที่ 1 ออกแบบโปรแกรมให้ คอมพิวเตอร์ ทางานเป็ น เครื่ องคิดเลขอย่างง่าย โดยรับข้ อมูล 2 ค่า (X, Y) และแสดงผลบวกทางจอภาพ Problem: คานวณผลบวกของ 2 ค่า Problem Analysis 1. Input: รับข้ อมูล (X, Y) จากคีย์บอร์ ด 2. Process: คานวณ sum = X + Y 3. Output: แสดงผลบวก (sum) ทางจอภาพ 6 1.4 การเขียนผังงาน ผังงาน (Flowchart) เป็ นแผนภาพที่ใช้ อธิบาย การทางานของโปรแกรมอย่างเป็ นขันตอน ้ ประโยชน์ ของ Flowchart 1. อธิบายลาดับขันตอนการท ้ างานของโปรแกรม 2. ทาให้ ตรวจสอบข้ อผิดพลาดของโปรแกรมได้ ง่าย 3. ทาให้ ผ้ อู ื่นสามารถศึกษาการทางานและแก้ ไข โปรแกรมได้ งา่ ย 7 1.4.1 ประเภทของผังงาน ผังงานระบบ (System Flowchart) แสดงขันตอนการท ้ างานภายในระบบงาน โดยจะกล่าวอย่างกว้ างๆ ผังงานโปรแกรม (Program Flowchart) แสดงขันตอนของค ้ าสัง่ ที่ใช้ ในโปรแกรม 8 1.4.2 สัญลักษณ์ ในผังงาน การเริ่ มต้ น และการสิ ้นสุดการทางาน ลูกศรแสดงทิศทางการทางาน และการไหลของข้ อมูล การประมวลผล หรื อการคานวณ การรับข้ อมูล หรื อแสดงผล (ไม่ระบุชนิดอุปกรณ์) การแสดงผลทางเครื่ องพิมพ์ การตรวจสอบเงื่อนไข จุดเชื่อมต่อของผังงาน 9 1.4.3 รูปแบบของผังงาน แบบลาดับ (Sequence) แบบมีทางเลือก (Selection) การเลือกทาแบบ 1 เส้ นทาง การเลือกทาแบบ 2 เส้ นทาง การเลือกทาแบบหลายเส้ นทาง แบบทาซา้ (Looping) 10 1.4.3.1 แบบลาดับ Flowchart แบบลาดับ (Sequence) start Input statement แสดงขันตอนการท ้ างานที่เรี ยงลาดับ ไม่มีการข้ ามขัน้ หรื อย้ อนกลับ output end 11 1.4.3.2 แบบมีทางเลือก แสดงการตรวจสอบเงื่อนไขให้ โปรแกรมเลือกทา อย่างใดอย่างหนึง่ ซึง่ มี 3 กรณี 1. การเลือกแบบ 1 เส้ นทาง check condition yes statement(s) no จะทางานเฉพาะเมื่อเงื่อนไข เป็ นจริงเท่านัน้ 12 1.4.3.2 แบบมีทางเลือก 2. การเลือกแบบ 2 เส้ นทาง yes statement 1 check condition no statement 2 เมื่อเงื่อนไขเป็ นจริงจะทาอย่างหนึง่ เมื่อเงื่อนไขเป็ นเท็จจะทาอีกอย่างหนึง่ 13 1.4.3.2 แบบมีทางเลือก 3. การเลือกแบบหลายเส้ นทาง (n) check condition 1 2 3 statement1 statement2 statement3 n ... statement n เมื่อเงื่อนไขเท่ากับทางเลือกใดจะทาตามทางนัน้ 14 1.4.3.3 แบบทาซา้ แสดงการทาซ ้าซึง่ มี 3 กรณี 1. การทาซา้ แบบเงื่อนไขเป็ นจริง ตรวจสอบเงื่อนไขก่อน check condition yes statement(s) no exit loop จะทางานซ ้าเมื่อเงื่อนไขเป็ นจริง (ออกจากทางานซ ้าเมื่อเงื่อนไข เป็ นเท็จ) 15 1.4.3.3 แบบทาซา้ 2. การทาซา้ แบบจนเงื่อนไขเป็ นจริ ง statement(s) check condition yes exit loop ทางานก่อนการตรวจเงื่อนไข ทางานซ ้าจนเงื่อนไขเป็ นจริง (จึงออกจากทางานซ ้า) no 16 1.4.3.3 แบบทาซา้ 3. การทาซา้ ตามจานวนที่ระบุ for i=1 to N iN statement(s) i>N exit loop ทางานตามรอบที่กาหนด โดยเริ่ มจากรอบเริ่มต้ น (i=1) ไปยังรอบสุดท้ าย (i=N) (ปกติการนับรอบจะเพิ่มที่ ละ 1 ค่า (i = i+1)) 17 1.4.4 ตัวอย่ างผังงาน ตัวอย่ างที่ 1: ออกแบบ Flowchart ให้ คอมพิวเตอร์ ทางานเป็ นเครื่ องคิดเลขอย่างง่าย โดยรับข้ อมูล 2 ค่า (X, Y) และแสดงผลบวกทางจอภาพ start Read X,Y sum = X+Y sum end 18 1.4.4 ตัวอย่ างผังงาน ตัวอย่ างที่ 2: ออกแบบ Flowchart ให้ คอมพิวเตอร์ รับข้ อมูล 3 ค่า (X1, X2, X3) คานวณค่าเฉลี่ย และแสดงค่าเฉลี่ย ทางจอภาพ start Read X1,X2,X3 sum=X1+X2+X3 mean = sum/3 mean end 19 1.4.4 ตัวอย่ างผังงาน ตัวอย่ างที่ 3: ออกแบบ Flowchart ให้ คอมพิวเตอร์ รับข้ อมูล N ค่า X (X1, X2, ..., XN) คานวณ ค่าเฉลี่ย (iN Xi/N) และแสดงค่าเฉลี่ย ทางจอภาพ start sum = 0 Read N for i=1 to N iN Read X i>N mean = sum/N mean sum=sum+X end 20 1.4.4 ตัวอย่ างผังงาน ตัวอย่ างที่ 5: ออกแบบ Flowchart ในการบวก 1+2+...+100 กาหนดให้ I = 1, 2, 3, ..., 100 และ SUM = 1+2+3+...+100 start I=1 SUM = 0 while I<=100 no yes SUM = SUM+I I = I+1 SUM 21 end 1.4.4 ตัวอย่ างผังงาน ตัวอย่ างที่ 6: ออกแบบ Flowchart ให้ คอมพิวเตอร์ รับคะแนนนักศึกษา (X) แล้ วนามาจัดกลุม่ ตามเงื่อนไข start และแสดงผลทางจอภาพ Read X เงื่อนไข คะแนน 80-100 กลุม่ G คะแนน 50-79 กลุม่ P คะแนนต่ากว่า 50 กลุม่ F X > 79 X > 49 yes yes grade = ‘G’ grade = ‘P’ grade = ‘F’ grade end 22 1.4.4 ตัวอย่ างผังงาน start ตัวอย่ างที่ 7: ออกแบบ Flowchart Read X ให้ คอมพิวเตอร์ รับคะแนนนักศึกษา (X)X > 79 แล้ วนามาตัดเกรดตามเงื่อนไขและ X > 69 แสดงผลทางจอภาพ X > 59 เงื่อนไข คะแนน 80-100 เกรด A คะแนน 70-79 เกรด B คะแนน 60-69 เกรด C คะแนน 50-59 เกรด D คะแนนต่ากว่า 50 เกรด F X > 49 yes yes yes yes grade = ‘A’ grade = ‘B’ grade = ‘C’ grade = ‘D’ grade = ‘F’ grade end 23 การใช้ IF รู ปแบบคาสั่ง IF เงื่อนไข[ทาเมื่อเงื่อนไขเป็ นจริง] หรื อ IF เงื่อนไข [ คาสั่งทาเมื่อเงื่อนไขจริง ] ทาต่ อไป....... 24 การใช้ IF ตัวอย่ างการใช้ งาน To Test :A IF :A>10[STOP] PRINT :A TEST :A+1 END 25 การใช้ IFELSE รู ปแบบคาสั่ง IFELSE เงื่อนไข[ทาเมื่อเงื่อนไขจริง] [ทาเมื่อเงื่อนไขเท็จ] หรื อ IFELSE เงื่อนไข [ คาสั่ง1ทาเมื่อเงื่อนไขจริง คาสั่ง2ทาเมื่อเงื่อนไขจริง ] [ คาสั่ง1ทาเมื่อเงื่อนไขเท็จ คาสั่ง2ทาเมื่อเงื่อนไขเท็จ ] คาสั่งต่ อไป 26 โปรแกรมสลับค่ าข้ อมูล มีวัตถุประสงค์ ท่ จี ะทาการสลับค่ า ข้ อมูลที่รับเข้ ามา 2 ตัว การเขียน โปรแกรมเพื่อให้ คอมพิวเตอร์ สลับ ค่ าโดยตรงไม่ ได้ จะต้ องมีตัวแปรอีก ตัวหนึ่งมาเป็ นที่พกั ข้ อมูลระหว่ าง ทาการย้ ายข้ อมูลต่ างๆ เพื่อให้ เข้ าใจการสั่งให้ คอมพิวเตอร์ สลับ ค่ าข้ อมูล 27 โปรแกรมสลับค่ าข้ อมูล A (2) B (1) C (3) 28