พ้นื ฐานการแกป้ ญั หาดว้ ยคอมพวิ เตอร์ Introduction to Problem Solvingอาจารยอ์ ดศิ ยา เจรญิ ผลคณะเทคโนโลยสี ารสนเทศและการสอ่ื สาร
พ้นื ฐานการแกป้ ญั หาดว้ ยคอมพวิ เตอร์ การทางานของเคร่อื งคอมพวิ เตอรจ์ ะทาตามโปรแกรมท่เี ขียนข้ึนมาทกุ ประการ ดงั น้นั การนาเคร่อื งคอมพวิ เตอรม์ าช่วยสาหรบั การแกป้ ญั หาจงึ จาเป็นตอ้ งมี โปรแกรมสาหรบั การแกป้ ญั หาน้นั เพอ่ื สงั่ ใหเ้ คร่อื งคอมพวิ เตอรท์ างานตาม ตอ้ งการ ผูท้ ่ที าการเขียนโปรแกรมจงึ ตอ้ งทราบถงึ วธิ ีการของการแกป้ ญั หาท่ี ตอ้ งการแกไ้ ขทกุ ขน้ั ตอน จากน้นั จงึ นามาเรยี บเรยี งเป็นลาดบั ขน้ั ตอน วธิ ีการทางานตง้ั แต่ขน้ั ตอนแรกจนถงึ ขน้ั ตอนสดุ ทา้ ย แลว้ นาขน้ั ตอนวธิ ที ่ไี ด้ เรยี บเรยี งน้นั มาเขียนเป็นโปรแกรมคอมพวิ เตอรต์ ่อไป
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา ขน้ั ตอนการพฒั นาโปรแกรมคอมพวิ เตอรม์ ี 5 ขน้ั ตอนดงั น้ี - วเิ คราะหป์ ญั หา (Problem Analysis) การวเิ คราะหร์ ะบบงานหรอื วเิ คราะหป์ ญั หา หมายถงึ กระบวนการศึกษา ลกั ษณะและ รายละเอยี ดท่ตี อ้ งการใหเ้ คร่อื งคอมพวิ เตอรช์ ่วยแกป้ ญั หา การวเิ คราะหเ์ ป็นแนวทาง ใหก้ ระบวนการประมวลผลและการแสดงขอ้ มูล ถกู ตอ้ งและสมบูรณ์มากท่สี ดุ เป็นกระบวนการหลกั ลาดบั แรกท่มี ีความสาคญั ตอ่ การพฒั นาโปรแกรมคอมพวิ เตอร์ ผูพ้ ฒั นาโปรแกรมคอมพวิ เตอร์ (Programmer) จาเป็นตอ้ งศึกษาและ กาหนดขอบเขตการวเิ คราะหใ์ หค้ รอบคลมุ ปญั หาอย่างละเอยี ดและครบถว้ น มากท่สี ดุ เช่น ลกั ษณะและท่มี าของปญั หา เงอ่ื นไขตา่ งๆ เป็นตน้
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา วเิ คราะหป์ ญั หา (Problem Analysis)การวเิ คราะหป์ ญั หา มหี ลกั เกณฑท์ ่ตี อ้ งดาเนินการตามลาดบั 6 ขน้ั ตอน ประกอบดว้ ย1. สง่ิ ท่ตี อ้ งการ ไดแ้ ก่ สง่ิ ท่มี นุษยต์ อ้ งการจากการทางานของระบบคอมพวิ เตอร์ เป็นการกาหนดขอบเขตแบบกวา้ งๆ เช่น ตอ้ งการคดิ อตั ราภาษีตอ่ ปี หรอื ตอ้ งการป้ อนขอ้ มลูดว้ ยบารโ์ คด้ (Barcode)2. รูปแบบผลลพั ธ์ ไดแ้ ก่ รูปแบบการแสดงขอ้ มลู สูอ่ ปุ กรณ์แสดงผล เป็นการกาหนดรูปแบบหรอื ลกั ษณะของการแสดงขอ้ มูล เช่น ตอ้ งการแสดงขอ้ มูลบนจอภาพ หรอื แสดงขอ้ มลู ภาพกราฟฟิ กบนจอและเคร่อื งพมิ พ์
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา วเิ คราะหป์ ญั หา (Problem Analysis)3. ขอ้ มลู นาเขา้ ไดแ้ ก่ ขอ้ มลู ท่นี าเขา้ สูส่ ว่ นความจาหลกั (RAM) ของคอมพวิ เตอร์การกาหนดขอ้ มูลนาเขา้ จาเป็ นตอ้ งสอดคลอ้ งกบั สง่ิ ท่ตี อ้ งการ และรูปแบบผลลพั ธ์ขอ้ มลู นาเขา้ จาแนกได้ 2 ประเภท คอื - ขอ้ มูลท่นี าเขา้ จากภายนอกระบบคอมพวิ เตอร์ เป็นการนาขอ้ มลู เขา้ โดยมนุษย์ ผ่านสอ่ื กลางประเภทต่างๆ เช่น แป้ นพมิ พ์ เมาส์ หรอื เคร่อื งอา่ นบารโ์ คด้ - ขอ้ มูลท่นี าเขา้ จากภายในระบบคอมพวิ เตอร์ เป็นการนาขอ้ มูลเขา้ จากกระบวนการภายในระบบคอมพวิ เตอรเ์ อง4. ตวั แปรท่ใี ช้ ไดแ้ ก่ ช่ือท่ใี ชเ้ ป็นตวั แทนขอ้ มลู ท่ีนาเขา้ เรยี กว่า ช่ือตวั แปร (VariableName) ซ่ึงการกาหนดช่ือตวั แปรตอ้ งตรงตามเงอ่ื นไขการตง้ั ช่ือตวั แปรของแต่ละภาษาท่ีใชเ้ ขียนโปรแกรมและสอดคลอ้ งกบั ชนิดขอ้ มูล เพ่อื ความสะดวกรวดเรว็ ในการแกไ้ ขหรอืพฒั นาปรบั ปรุงโปรแกรมในอนาคต
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา วเิ คราะหป์ ญั หา (Problem Analysis)5. วธิ ีการประมวลผล ไดแ้ ก่ วธิ ีการดาเนินงานเพ่อื ใหไ้ ดผ้ ลลพั ธส์ อดคลอ้ งกบั หวั ขอ้“สง่ิ ท่ตี อ้ งการ” “รูปแบบผลลพั ธ”์ และ “ขอ้ มูลนาเขา้ ” โดยท่วี ิธีการประมวลผลตอ้ งครอบคลมุ ตง้ั แตก่ ระบวนการรบั ขอ้ มลู เขา้ จนกระทงั่ แสดงผลลพั ธ์ กระบวนการตา่ งๆขน้ั ตอนน้ีเป็นขน้ั ตอนสาคญั ในกระบวนการเขียนผงั งานในลาดบั ต่อไป6. ภาษาท่ใี ช้ ไดแ้ ก่ ภาษาท่ใี ชเ้ ขียนชุดคาสงั่ หรอื โปรแกรม โดยพจิ ารณาจากปจั จยั หลกั3 ประการ คอื - ความถนดั หรือความชานาญของผูเ้ ขียนโปรแกรม - รูปแบบและประเภทของงานท่ีตอ้ งการ เช่น งานท่เี ก่ยี วขอ้ งกบั ฮารด์ แวร์ (Hardware)อาจเลอื กใชภ้ าษา C เป็นตน้ - คณุ สมบตั เิ ฉพาะของคอมพวิ เตอร์ (Computer Specification) ท่เี หมาะสมกบัโปรแกรมน้นั ๆ
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา- วางแผนและออกแบบ (Planning and Design) การวางแผน หมายถงึ การนาปญั หาท่วี เิ คราะหไ์ ดจ้ ากขน้ั ตอนท่ี 1 มาวางแผนอย่างเป็นขน้ั ตอนว่าจะตอ้ งเขียนโปรแกรมเพอ่ื แกป้ ญั หาอย่างไร กระบวนการวางแผนอย่างเป็นขน้ั ตอนน้ี เรยี กว่า อลั กอรทิ มึ (Algorithm) ซ่งึ แบ่งออกเป็น2 รูปแบบ คอื 1. Pseudo code คอื การเขียนอลั กอรทิ มึ โดยใชป้ ระโยคภาษาองั กฤษท่สี อ่ืความหมายงา่ ยๆ สามารถอา่ นแลว้ เขา้ ใจไดโ้ ดยทนั ที 2. Flowchart คอื การเขียนอลั กอรทิ มึ โดยใชส้ ญั ลกั ษณ์รูปภาพเป็นตวั สอ่ืความหมาย
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา วางแผนและออกแบบ (Planning and Design)เช่น โปรแกรมรบั ค่าจานวนเตม็ 2 ค่าและแสดงผลบวกของตวั เลขทง้ั 2 จานวนน้นัSTART STARTREAD X INPUT X, YREAD Y SUM = X + YCOMPUTE SUM = X + Y PRINT SUMPRINT SUMSTOPอลั กอรทิ มึ แบบ Pseudo Code STOP อลั กอรทิ มึ แบบ Flowchart
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา- เขียนโปรแกรม (Coding)การเขียนโปรแกรม หมายถงึ การนาอลั กอรทิ มึ จากขน้ั ตอนท่ี 2 มาเขียนโปรแกรมให้ถกู ตอ้ งตามหลกั ไวยากรณ์ (Syntax) ของภาษาน้นั ๆ จากตวั อยา่ งสามารถเขียนโปรแกรมภาษา C ไดด้ งั น้ี#include <stdio.h> READ Xvoid main(){ READ Y COMPUTE SUM = X + Y float x,y,sum; PRINT SUM printf(“Value of x is : \"); scanf(\"%f\",&x); printf(\"Value of y is : \"); scanf(\"%f\",&y); sum = x + y; printf(“Sum of %f + %f is %f\n\", x,y,sum);}
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา- ทดสอบและแกไ้ ขโปรแกรม (Testing and Debugging) การทดสอบและแกไ้ ขโปรแกรม หมายถงึ การตรวจความถกู ตอ้ งของโปรแกรมควบคู่กบัการตรวจสอบอปุ กรณ์กอ่ นนาไปใชง้ านจรงิ การตรวจสอบน้ีเร่มิ ตน้ จากการกระทาในหอ้ งปฏบิ ตั กิ ารดว้ ยขอ้ มูลสมมติ เรยี กว่า Alpha Testing และหลงั จากน้นั อาจมีการทดสอบนอกหอ้ งปฏบิ ตั กิ าร โดยใหผ้ ูใ้ ชม้ ีสว่ นร่วมในการทดสอบ เรยี กว่า Beta Testing โดยความผิดพลาดท่อี าจเกดิ ข้ึนจากกระบวนการทดสอบสามารถแบ่งได้ 3 ลกั ษณะ คอื 1. ความผิดพลาดทางไวยกรณ์ (Syntax Error) หรอื ความผิดพลาดจากการเขียนโปรแกรม ไดแ้ ก่ การสะกดคาสงั่ ผิดหรอื ใชค้ าสงั่ ผิดรูปแบบ (Syntax) เป็นตน้ ความผิดพลาดลกั ษณะน้ีจะสง่ ผลใหโ้ ปรแกรมคอมพวิ เตอรห์ ยุดการทางานและปรากฎขอ้ ความแสดงขอ้ ผิดพลาด (Error Massage) ทนั ทหี ลงั จากโปรแกรมเร่ิมทางาน(Execute Program)
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา ทดสอบและแกไ้ ขโปรแกรม (Testing and Debugging) 2. ความผิดพลาดทางเงอ่ื นไข (Logic Error) ไดแ้ ก่ ความผิดพลาดท่เี กดิ จากการกาหนดเงอ่ื นไขของคาสงั่ (Logic) ไม่ถูกตอ้ ง เช่น การกาหนดคา่ ตวั แปรผิด เป็นตน้ ความผิดพลาดทางเงอ่ื นไขไม่ทาใหโ้ ปรแกรมหยดุ แต่ใหผ้ ลลพั ธท์ ่ไี ม่ถกู ตอ้ งตามเงอ่ื นไขท่ตี อ้ งการเทา่ น้ัน การตรวจสอบและแกไ้ ขขอ้ ผิดพลาดน้ีกระทาไดโ้ ดยใชข้ อ้ มูลสมมติในหอ้ งปฏบิ ตั กิ าร ดว้ ยการป้ อนขอ้ มูลท่ที ราบคาตอบและตรวจสอบผลลพั ธ์เปรยี บเทยี บกบั คา่ ท่ถี กู ตอ้ ง เราเรยี กการตรวจสอบขอ้ มลู สมมติน้ีว่า Desk Checking ขอ้ ผิดพลาดท่เี กดิ ข้ึนทง้ั 2 กรณีน้ี นิยมเรยี กเป็นสานวนในกลมุ่ ผูพ้ ฒั นาโปรแกรมว่าบกั๊ (Bug) การตรวจสอบและแกไ้ ขความผิดพลาดดงั กล่าว เรยี กว่า Debugging 3. Runtime Error เป็นความผิดพลาดขณะการแปลโปรแกรมท่เี กดิ ข้ึนจากการทาคาสงั่ไม่สามารถประมวลผลได้ โปรแกรมจะหยดุ และแจง้ ความผิดพลาดใหท้ ราบ
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา- จดั ทาเอกสารเก่ยี วกบั โปรแกรม (Program Documentation) เอกสารเก่ยี วกบั โปรแกรม หมายถงึ เอกสารคูม่ อื ประกอบโปรแกรมท่พี ฒั นาข้ึน โดยขอ้ มูลสว่ นใหญ่ไดม้ าจากการทดสอบและแกไ้ ขโปรแกรม เอกสารเกย่ี วกบั โปรแกรมแบง่ออกเป็น 2 ประเภท ไดแ้ ก่ 1. คู่มอื สาหรบั ผูใ้ ชโ้ ปรแกรม (User’s Manual or User’s Guide) ไดแ้ ก่ คูม่ ือสาหรบัแนะนาวธิ กี ารใชง้ านโปรแกรมและอาจรวมถงึ การแนะนาคณุ สมบตั ขิ องเคร่อื งคอมพวิ เตอร์และอปุ กรณ์ประกอบท่จี าเป็ น คูม่ ือสาหรบั ผูใ้ ชโ้ ปรแกรมมสี ว่ นประกอบหลกั ท่ีสาคญั คอื - ช่ือโปรแกรมและช่ือผูเ้ ขียนโปรแกรม - คณุ สมบตั ขิ องโปรแกรม - คณุ สมบตั ขิ น้ั ตา่ ของเคร่อื งคอมพวิ เตอรแ์ ละสว่ นประกอบอน่ื ท่จี าเป็ น - วิธีการตดิ ตง้ั โปรแกรมลงสูเ่ คร่อื งคอมพวิ เตอร์ - ลาดบั ขน้ั ตอนการใชง้ าน
ขน้ั ตอนการนาคอมพวิ เตอรม์ าใชใ้ นการแกป้ ญั หา จดั ทาเอกสารเก่ยี วกบั โปรแกรม (Program Documentation) 2. คู่มอื สาหรบั ผูเ้ ขียนโปรแกรม (Programmer’s Manual or Programmer’sGuide) ไดแ้ ก่ คู่มอื ท่จี ดั ทาข้ึนเพอ่ื ผูพ้ ฒั นาโปรแกรมหรอื ช่างเทคนิค สามารถศึกษาและเขา้ ใจโปรแกรมท่เี ขียนไวใ้ นอดีต รวมทง้ั เป็นคู่มอื แนะนาเทคนิคพเิ ศษต่างๆ ของโปรแกรมเพอ่ื ใหส้ ะดวกต่อการพฒั นาปรบั ปรุง แกไ้ ขโปรแกรมท่มี ีอยู่เดิม โดยทวั่ ไปคูม่ ือน้ีมกั จดั ทาข้ึนเพอ่ื บคุ คลเป็นการเฉพาะและอาจไม่เผยแพรท่ วั่ ไป เรยี กว่า Undocument Manual
การเขียนอลั กอรทิ มึ แบบ FlowchartFlowchart คอื สญั ลกั ษณ์ท่ใี ชแ้ สดงขน้ั ตอนรายละเอยี ดของการทางานในแตล่ ะสว่ นงาน ตง้ั แต่ขน้ั ตอนการรบั ขอ้ มูล ขน้ั ตอนการประมวลผล จนถงึ ขน้ั ตอนการแสดงผลลพั ธ์ Flowchart น้ีเก่ยี วขอ้ งกบั “วธิ กี าร” เป็นสาคญั
การเขียนอลั กอรทิ มึ แบบ Flowchartประโยชนข์ อง FlowchartFlowchart ใช่ในการอธบิ ายกระบวนการท่สี ลบั ซบั ซอ้ นของคอมพวิ เตอร์ ทง้ั ยงั เป็นประโยชนต์ อ่ การพฒั นาโปรแกรมข้ึนใชง้ าน ประโยชนข์ องผงั งานในการพฒั นาโปรแกรมคอมพวิ เตอร์ ไดแ้ ก่- ช่วยใหส้ ามารถเขา้ ใจและจาแนกประเภทของปญั หาต่างๆ ไดง้ า่ ยข้ึน- ช่วยใหผ้ ูเ้ ขียนโปรแกรมทราบขน้ั ตอนการทางานของแต่ละสว่ นงานตามลาดบั กอ่ นหลงั ได้- ช่วยใหต้ รวจสอบขอ้ ผิดพลาดของโปรแกรมไดง้ า่ ยมากกว่าการตรวจสอบจากตวั โปรแกรมโดยตรง- ช่วยใหส้ ามารถทาความเขา้ ใจโปรแกรมท่ผี ูอ้ น่ื เขียนไดง้ า่ ยข้ึน- ช่วยใหก้ ารเขียนเอกสารประกอบโปรแกรมสะดวกและรวดเรว็ ข้ึน
การเขียนอลั กอรทิ มึ แบบ Flowchart สญั ลกั ษณ์ของ Flowchartสญั ลกั ษณ์ท่นี ิยมใชใ้ นการเขียน Flowchart แบ่งออกเป็น 3 กลมุ่1. กลมุ่ รบั -สง่ และเกบ็ ขอ้ มลู สญั ลกั ษณ์ ความหมายTerminal - การเร่มิ ตน้ (Start) และ - การส้นิ สดุ (Stop)Input/Output การรบั -สง่ ขอ้ มูล (Input and Output)Manual Input ** (ไม่เจาะจงตวั กลางท่ีใช)้ การบั ขอ้ มูลเขา้ โดยใชแ้ ป้ นพมิ พ์ (Keyboard)Punched Card การรบั -สง่ ขอ้ มูลโดยใชบ้ ตั รเจาะรู (Punch Card Input)
การเขียนอลั กอรทิ มึ แบบ Flowchart สญั ลกั ษณ์ของ Flowchart สญั ลกั ษณ์ ความหมายPunched Tape การรบั -สง่ ขอ้ มูลทางเทปกระดาษMagnetic Tape การรบั -สง่ ขอ้ มูลโดยใชเ้ ทปแม่เหลก็Magnetic Disk การบั -สง่ ขอ้ มูลโดยใชแ้ ผ่นจากแม่เหลก็Stored Data แสดงการเกบ็ ขอ้ มูลDelay แสดงการหน่วงเวลาการประมวลผล
การเขียนอลั กอรทิ มึ แบบ Flowchart สญั ลกั ษณ์ของ Flowchart สญั ลกั ษณ์ ความหมายOff-page Connector การแสดงจุดต่อเน่ืองท่ีอยูค่ นละหนา้ กระดาษ ใช้ เช่ือมต่อสว่ นของ Flowchart จากกระดาษแผ่นConnector หน่ึงไปสูอ่ กี แผ่นหน่ึง การแสดงจดุ ต่อเน่ือง ใชเ้ ช่ือมต่อสว่ นประกอบต่างๆ ของ Flowchart ท่อี ยูห่ นา้ กระดาษเดยี วกนัArrow ลกู ศรแสดงทิศทางของขอ้ มูลและการประมวลผลSumming Junction การแสดงจุดต่อรว่ มแสดงการรวมขอ้ มูลCommunication Line การสง่ ผ่านขอ้ มูลดว้ ยระบบสอ่ื สาร เช่น ระบบ โทรศพั ทห์ รอื ใชค้ ล่นื วทิ ยแุ ทนการสง่ ขอ้ มูลปกติ ภายในเคร่อื งคอมพวิ เตอร์
การเขียนอลั กอรทิ มึ แบบ Flowchart สญั ลกั ษณ์ของ Flowchart2. กลมุ่ ประมวลขอ้ มลู สญั ลกั ษณ์ ความหมายProcess - การประมวลผลขอ้ มูลอตั โนมตั ิ - การกาหนดค่าManual Operation การประมวลผลขอ้ มูลดว้ ยมอืExternal Subroutine การประมวลผลขอ้ มูลดว้ ยโปรแกรมยอ่ ยท่ีInternal Subroutine อยูภ่ ายนอกโปรแกรมหลกัPreparation การประมวลผลขอ้ มูลดว้ ยโปรแกรมย่อยท่ี อยู่ภายในโปรแกรมหลกั - การเตรยี มขอ้ มูล - ใชก้ าหนดช่ือและรูปแบบของขอ้ มูล
การเขียนอลั กอรทิ มึ แบบ Flowchart สญั ลกั ษณ์ของ Flowchart สญั ลกั ษณ์ ความหมายDecision การตดั สนิ ใจ3. กลมุ่ แสดงขอ้ มูล ความหมาย สญั ลกั ษณ์ การนาขอ้ มูลออกทางจอภาพ Visual Display การนาขอ้ มูลออกทางกระดาษในรูปของ เอกสาร Document
การเขียนอลั กอรทิ มึ แบบ Flowchartขอ้ กาหนดของการเขียน Flowchart1. Flowchart ตอ้ งแสดงจุดเร่มิ ตน้ และส้นิ สดุ ท่ชี ดั เจน2. Flowchart ตอ้ งครอบคลมุ การทางานในทกุ ขน้ั ตอนของกระบวนการปฏบิ ตั งิ านหน่ึงๆ3. เขียน Flowchart จากบนลงลา่ ง จากซา้ ยไปขวา โดยใชเ้ สน้ หวั ลูกศรเป็ นตวั แสดงเสน้ ทางการดาเนินงาน หากเป็นไปไดค้ วรเขียน Flowchart ใหจ้ บภายในหนา้ กระดาษเดียว4. ขนาดของสญั ลกั ษณ์ Flowchart ตามมาตรฐาน คอื ความยาวเป็นสองเท่าของความกวา้ ง5. ขอ้ ความหรอื ช่ืองานท่ีปรากฎในกรอบสญั ลกั ษณ์ ควรใชข้ อ้ ความท่กี ระชบั และไดใ้ จความไม่จาเป็นตอ้ งแสดงขอ้ ความท่เี ป็ นความหมายของสญั ลกั ษณ์น้นั ๆ6. ทกุ สญั ลกั ษณ์ตอ้ งเช่ือมตอ่ กบั สญั ลกั ษณ์อน่ื เสมอ เน่ืองจากไม่มีขน้ั ตอนใดไม่เก่ยี วเน่ืองกบัขน้ั ตอนอน่ื
ลกั ษณะโครงสรา้ ง Flowchartรูปแบบพ้นื ฐานของออกแบบโครงสรา้ งของโปรแกรมมี 3 แบบ ดว้ ยกนั คอื1. โครงสรา้ งแบบลาดบั (Sequence Structure) เป็นโครงสรา้ งท่มี กี ารทางานตามลาดบัเร่มิ จากคาสงั่ ท่ี 1 แลว้ จงึ ทาคาสงั่ ท่ี 2 และทาคาสงั่ ถดั ไป (ถา้ ม)ี จนหมด ตวั อย่าง Startคาสงั่ ท่ี 1คาสงั่ ท่ี 2 Read a,bคาสงั่ ท่ี 3 ������ = ������������ + ������������ Write X End
โครงสรา้ งแบบลาดบั (Sequence Structure)ผงั งานการหาพ้นื ท่วี งกลมStart Input radius ขอ้ มลู เขา้ รศั มขี องวงกลมArea = 3.1415*radius*radius การประมวลผล Display area พ้นื ท่วี งกลมคานวณไดจ้ ากสูตร 3.1415 x รศั มี x รศั มี End ผลลพั ธ์ พ้นื ท่วี งกลม
โครงสรา้ งแบบลาดบั (Sequence Structure)การหาผลบวกของเลขจานวนเตม็ 2 ตวั แลว้ แสดงผลลพั ธอ์ อกทางจอภาพStartInput A ขอ้ มลู เขา้ จานวนเตม็ A และ BInput B การประมวลผลC=A+B หาผลบวกของเลขจานวนเต็ม 2 จานวนDisplay C A+B End ผลลพั ธ์ ผลบวก สงั เกตว่าแตล่ ะขน้ั ตอนจะถกู ประมวลผลเพยี งครง้ั เดียวเทา่ น้นั
โครงสรา้ งแบบลาดบั (Sequence Structure)Assignment1. หาพ้นื ท่วี งกลมและเสน้ รอบวงของวงกลมท่มี รี ศั มี 3 หน่วย2. เปลย่ี นอณุ หภมู ิจากองศาเซลเซียสเป็ นฟาเรนตไ์ ฮท์ โดยป้ อนอณุ หภมู ิเป็นองศาเซลเซียสทางแป้ นพมิ พ์ แลว้ แสดงผลลพั ธท์ างจอภาพ3. รบั ขอ้ มลู พ้นื ท่นี า ของชาวนา 1 คน โดยรบั จานวนไร,่ จานวนงาน, จานวนตารางวาแลว้ เปลย่ี นหน่วยใหเ้ ป็ น เอเคอร์ แสดงผลลพั ธท์ างจอภาพ4. คานวณหาพ้นื ท่ขี องสเ่ี หล่ยี มรูปว่าว5. คานวณหาค่าไฟฟ้ า จากสูตร คา่ ไฟฟ้ า = จานวนหน่วยท่ใี ช้ * ราคาต่อหน่วย โดยคา่ ไฟในปจั จุบนั หน่วยละ 2.50 บาท6. จงเขียนผงั งานการหาพ้นื ท่สี เ่ี หลย่ี มใดๆ แลว้ แสดงผลลพั ธท์ ่ไี ด้7. จงเขียนผงั งานการหาพ้นื ท่ผี ิวทรงกระบอก แลว้ แสดงผลลพั ธท์ ่ไี ด้8. เปล่ยี น พ.ศ ใหเ้ ป็น ค.ศ และ จ.ส โดยใหร้ บั พ.ศ. ทางแป้ นพมิ พ์
ลกั ษณะโครงสรา้ ง Flowchart2. โครงสรา้ งแบบทางเลอื ก (Selection Structure) เป็นโครงสรา้ งท่มี ีการตรวจสอบเงอ่ื นไขและมที างเลอื กใหเ้ ลอื กทางาน ถา้ เงอ่ื นไขเป็นจรงิ ใหท้ าคาสงั่ ท่ี 1 แตถ่ า้ เงอ่ื นไขเป็นเทจ็ ใหท้ าคาสงั่ ท่ี 2 จากน้นั ทาคาสงั่ ถดั ไป (ถา้ ม)ี เช่น if, if…else, switch, case ตวั อยา่ ง Start เงอ่ื นไข Read a,bคาสงั่ ท่ี 1 คาสงั่ ท่ี 2 a>=b Write a Write b End
โครงสรา้ งแบบทางเลอื ก (Selection Structure) Assignment1. รบั ขอ้ มูลตวั เลข 1 ตวั ทางแป้ นพมิ พ์ แลว้ ใหแ้ สดงขอ้ ความน้ันเป็ นจานวนคู่หรอื จานวนค่ี2. จงเขียนผงั งานแสดงเกรดของนักเรยี นคนหน่ึงจากคะแนนสอบ(เต็ม 100) คะแนน 80 - 100 ไดเ้ กรด A คะแนน 70 - 79 ไดเ้ กรด B คะแนน 60 - 69 ไดเ้ กรด C คะแนน 50 - 59 ไดเ้ กรด D คะแนน 0 - 49 ไดเ้ กรด F
ลกั ษณะโครงสรา้ ง Flowchart3. โครงสรา้ งแบบทาซ้า (Iteration Structure) เป็นโครงสรา้ งท่มี ีการทาคาสงั่ ภายในลูป(loop) ซ้า ณ ขณะท่เี งอ่ื นไขเป็นจรงิ ถา้ เงอ่ื นไขเป็นเทจ็ ตจะไม่ทาคาสงั่ ภายในลูปและออกจากลปู มาทาคาสงั่ ถดั ไป (ถา้ ม)ี เช่น for, while, do…while, repeat…until ตวั อย่าง Start จรงิ i=1เงอ่ื นไข คาสงั่ No เทจ็ i<=50 Yes Write i End i=i+1
ตวั อยา่ งจงเขียน Flowchart แสดงการหาผลบวกของเลขคูท่ ่มี ีค่าอยู่ในช่วง 1 ถงึ 100วิเคราะหป์ ญั หา1. ปญั หา คอื ตอ้ งทาการคานวณหาผลบวกของเลขคู่ท่มี ีคา่ ในช่วง 1 ถงึ 100 2 + 4 + 6 + 8 + 10 + … + 98 + 100 = ? เลขคูต่ วั แรก คอื 2 และถดั ไป คอื 4, 6, 8, … คา่ เร่มิ ตน้ สาหรบั เกบ็ ผลบวก (sum) = 0 และตวั บวก (count) = 02. ตวั แปรท่ใี ช้ คอื count = count + 2 และ sum = sum + count3. ขอ้ มลู นาเขา้ ไม่มี4. ผลลพั ธ์ คอื ผลบวก (sum) ของเลขคูท่ ง้ั หมดท่อี ยู่ในช่วง 1 ถงึ 100
ตวั อย่างจงเขียน Flowchart แสดงการหาผลบวกของเลขคูท่ ่มี ีค่าอยู่ในช่วง 1 ถงึ 100รอบท่ี ค่าตวั บวก (count) ผลบวก (sum) 1 count = 0 + 2 sum = 0 + count =2 =0+2 2 count = 2 + 2 sum = 2 + 4 =4 =6 3 count = 4 + 2 sum = 6 + 6 =6 = 12 4 count = 6 + 2 sum = 12 + 8 =8 = 20
ตวั อย่างจงเขียน Flowchart แสดงการหาผลบวกของเลขคู่ท่มี ีค่าอยู่ในช่วง 1 ถงึ 100ขน้ั ตอนการทางาน1. กาหนดค่าเร่มิ ตน้ ใหก้ บั ตวั แปร count และ sum คอื count = 0 และ sum = 02. เพ่มิ คา่ ตวั บวก (count) เพ่อื เป็นตวั บวกตวั ถดั ไป คอื count = count + 23. ตรวจสอบตวั แปร count ว่ามีค่ามากกว่า 100 หรอื ไม่ - หากมากกว่า 100 ใหจ้ บการทางาน - หากไม่มากกว่า 100 ใหท้ าขน้ั ตอนต่อไป4. คานวณหาผลบวก (sum) จากสูตร sum = sum + count แลว้ กลบั ไปทาขน้ั ตอนท่ี 2ใหม่อกี ครง้ั
ตวั อย่างจงเขียน Flowchart แสดงการหาผลบวกของเลขคูท่ ่มี ีคา่ อยูใ่ นช่วง 1 ถงึ 100Flowchart Start count = 0 1 sum = 0 count = count + 2 2 3 count >100 Yes No End 4 sum = sum + count
โครงสรา้ งแบบทาซ้า (Iteration Structure)Assignment1. จงเขียนผงั งานรบั เลข 3 ค่า แลว้ แสดงค่าเฉล่ยี ออกมา2.2. จงเขียนผงั งานรบั จานวนเต็ม 2 ค่าแลว้ แสดงผลคา่ ท่มี ากท่สี ุด3. หาผลบวกของตวั เลข 5 , 10 , 15 ,…, 95, 1004. หาผลรวมของตวั เลข 1 -100 ท่ี 7 หารลงตวั5. คานวณหาผลรวมของเลขยกกาลงั 2 ของตวั เลข 1 -106. เปลย่ี นหน่วยความสูงของนักเรยี น 10 คน โดยรบั คา่ ความสูง เป็นเซ็นติเมตร แลว้ เปลย่ี นหน่วยใหเ้ ป็น คบื พรอ้ มทง้ั หาความสูงเฉลย่ี ของนกั เรยี น เป็นคบื7. คานวณหาราคาขายของสนิ คา้ 10 ชนิด โดยราคาขาย คานวณจากราคาทนุ + 20% แลว้แสดงผลลพั ธข์ องราคาขายสนิ คา้ แต่ละชนิดทางจอภาพ8. คานวณหาสว่ นลดในการซ้ือสนิ คา้ 3 ช้ิน โดยสว่ นลดไดม้ าจาก 10% ของผลรวมของราคาสนิ คา้ ทง้ั หมด
Flowchart ท่ดี ีตอ้ งสามารถสอ่ื ความหมายใหผ้ ูอ้ า่ น เขา้ ใจหลกั การหรอื กระบวนการของงานไดโ้ ดยงา่ ย ผูเ้ ขียนจาเป็นตอ้ งเขา้ ใจความหมายของสญั ลกั ษณ์Flowchart และเขา้ ใจกระบวนการของงานท่ตี อ้ งการเขียน อย่างชดั เจน
Search
Read the Text Version
- 1 - 34
Pages: