1 รายงาน เรื่องพ้ืนฐานการเขียนคอมพิวเตอร์ โดย นางสาว อรปรียา บุญซอ้ น นาเสนอ อาจาร์ย วราภรณ์ อ่อนทุม วทั ยาลยั การอาชีพบาเหนจ็ ณรงค์ อาชีวศกึ ษาจงั หวดั ชยั ภูมิ สมั นกั งานคณะกรรมการอาชีวศกึ ษา กระทรวงศกึ าธิการ
2 คานา รายงานเล่มน้ีจดั ทาข้ึนเพ่ือเป็นส่วนหน่ึงของวชิ าหลกั การเขียนโปรแกรมช้นั ปวส1เพอ่ื ใหไ้ ด้ ศกึ ษาหาความรูใ้ นเร่ืองพ้ืนฐานการเขียนโปรแกรงและไดศ้ ึกษาอยา่ งเขา้ ใจเพอื่ เป็นประโยชนก์ บั การ เรียน ผูจ้ ดั ทาหวงั ว่า รายงานเล่มน้ีจะเป็นประโยชนก์ บั ผอู้ า่ น หรือนกั เรียน นกั ศึกษา ที่กาลงั หา ขอ้ มูลเร่ืองน้ีอยหู่ ากมีขอ้ แนะนาหรือขอ้ ผิดพลาดประการใด ผจู้ ดั ทาขอนอ้ มรับไวแ้ ละขออภยั มาณ ทีน่ ้ีดว้ ย ผจู้ ดั ทา นางสาว อรปรียา บุญซ้อน
3 สารบญั เรื่อง หนา้ หลกั การเขยี นโปรกรมและการวเิ คราะหง์ าน........................................................................... 5 ระบบคอมพวิ เตอร์....................................................................................................... 6 หลกั การเขียนโปรแกรม............................................................................................... 6 ผงั งาน....................................................................................................................................... 7 ความหมายของผงั งาน.................................................................................................. 7 สัญลกั ษณส์ าหรับการเขียนผงั งาน............................................................................... 8 หลกั การเขียนผงั งาน................................................................................................... 9 รหสั เทียม................................................................................................................................ 11 หลกั เกณฑใ์ นการเขยี นรหสั เทยี ม............................................................................... 11 รูปแบบการเขยี นรหสเทียม........................................................................................ 11 การเขยี นรหัสเทียมจากลาดบั ข้นั ตอนของวิธีการประมวลผล.................................... 12 ข้นั ตอนการแกป้ ัญหา(Algorithm).......................................................................................... 19 ความหมายของข้นั ตอนการแกป้ ัญหา........................................................................ 19 การเขียนข้นั ตอนการแกป้ ัญหา.................................................................................. 20 องคป์ ระกอบพ้นื ฐานของภาษาC........................................................................................... 21 โครงสรา้ งของโปรแกรมภาษาC................................................................................ 21 ชนิดของขอ้ มลู ............................................................................................................ 21
4 ตวั แปร........................................................................................................................... 22 การแสดงผลขอ้ มูล......................................................................................................... 23 การรบั ขอ้ มลู ................................................................................................................. 25 คา่ คงที่............................................................................................................................ 26 ตวั ดาเนินการ.................................................................................................................. 26 นิพจน์............................................................................................................................ 26 โครงสรา้ งควบคุมแบบเงอื่ นไขกรณี........................................................................................... 27 โครงสร้างแบบหลายทางเลอื ก....................................................................................... 27
5 1. หลักการเขยี นโปรแกรมและการวเิ คราะห์งาน หลักการเขียนโปรแกรม การเขียนโปรแกรมถอื ว่าเป็นการผสมผสานกนั ระหว่างศาสตร์ของศิลปะ วทิ ยาศาสตร์ คณิตศาสตร์และวศิ วกรรมเขา้ ดว้ ยกนั ผเู้ ขียนตอ้ งเขา้ ใจข้นั ตอนการแกไ้ ขปัญหาและ รูปแบบของภาษาท่จี ะใชเ้ ป็นอยา่ งดี จงึ สามารถเขียนโปรแกรมทคี่ วบคมุ เคร่ืองคอมพวิ เตอร์ให้ ทางานใหต้ ามความตอ้ งการ โดยผ่านข้นั ตอนการวิเคราะห์ วางแผนแกไ้ ขปัญหา และสร้าง แบบจาลองความคดิ เพอ่ื แสดงข้นั ตอนในการแกไ้ ขปัญหา จากน้นั จึงลงมอื แกไ้ ขปัญหาตามข้นั ตอน ท่อี อกแบบไว้ โดยใชเ้ คร่ืองมือในการแกไ้ ขปัญหา ซ่ึงหน่ึงในเครื่องมือแกไ้ ขปัญหาเหล่าน้นั คอื ภาษาคอมพิวเตอร์นนั่ เอง หลกั การเขียนโปรแกรมคอมพิวเตอร์เป็นข้นั ตอนจดั ทาโปรแกรมท่ีช่วยใหก้ าร เขยี นโปรแกรมเป็นไปอยา่ งมปี ระสิทธิภาพ และไดผ้ ลลพั ธ์ตามวตั ถุประสงค์ เนื่องจากแตล่ ะ ข้นั ตอนจะช่วยให้เกิดความเป็นระเบยี บ การเรียบเรียงแนวคดิ มคี วามชดั เจนไม่สบั สนและงา่ ยต่อ การเขยี นหรือพฒั นาโปรแกรม ซ่ึงการเขยี นโปรแกรมน้นั จะตอ้ งเก่ียวขอ้ งกบั คอมพวิ เตอร์เนื่องจาก จะตอ้ งนาโปรแกรมท่พี ฒั นาไดไ้ ปใชก้ บั คอมพวิ เตอร์ดงั น้นั เพ่อื ใหก้ ารเขียนโปรแกรมมปี ระสิทธิ ภาพจงั ควรเขา้ ใจหลกั การคอมพวิ เตอร์ดว้ ย การวเิ คราะห์งาน การวเิ คราะห(์ Analysis)เป็นความสามารถและทกั ษะท่ีสูงกว่าความเขา้ ใจและการนาไปปรบั ใชโ้ ดยมีลกั ษณะเป็นการแยกแยะส่ิงทจ่ี ะพิจารณาออกเป็นส่วนยอ่ ยท่มี คี วามสัมพนั ธก์ นั รวมท้งั การ สืบคน้ ความสัมพนั ธข์ องส่วนตา่ งๆ เพอ่ื ดวู า่ ส่วนประกอบปลีกยอ่ ยน้นั สามารถเขา้ กนั ไดห้ รือไมอ่ นั จะช่วยให้เกิดความเขา้ ใจต่อส่ิงหน่ึงส่ิงอยา่ งแทจ้ ริง
6 1.1 ระบบคอมพิวเตอร์ ระบบคอมพิวเตอร์ ( Computer System ) คือ องคป์ ระกอบทจี่ ะทาใหค้ อมพิวเตอร์สามารถ ทางานไดอ้ ยา่ งสมบูรณ์ ถา้ ขาดองคป์ ระกอบส่วนใดส่วนหน่ึงแลว้ เคร่ืองคอมพวิ เตอร์ก็ไมส่ ามารถ ทางานได้ ระบบคอมพวิ เตอร์น้ีประกอบไปดว้ ย องคป์ ระกอบหลกั ที่สาคญั 4 ประการคอื 1.ฮาร์ดแวร์ ( Hardware ) คือ อปุ กรณ์หรือช้ินส่วนของเครื่องคอมพวิ เตอร์ท่ีมี วงจรไฟฟ้าอยภู่ ายในเป็นส่วนใหญ่ สามารถจบั ตอ้ งได้ เช่น ตวั เครื่องคอมพวิ เตอร์ ตวั ซีพยู ู จอภาพ เมาส์ แป้นพิมพ์ ลาโพง สแกนเนอร์ เครื่องพิมพ์ ฯลฯ เป็นตน้ 2.ซอฟตแ์ วร์ ( Software ) คอื โปรแกรมหรือชุดคาสั่ง ทีจ่ ะสั่ง และควบคุมให้ ฮาร์ดแวร์คอมพวิ เตอร์ทางาน เราไมส่ ามารถจบั ตอ้ งซอฟตแ์ วร์ ไดโ้ ดยตรงเหมือนกบั ตวั ฮาร์แวร์ เพราะซอฟตแ์ วร์หรือโปรแกรมน้ีจะถูกจดั เกบ็ อยู่ ในส่ือ ทใ่ี ชใ้ นการบนั ทกึ ขอ้ มลู ท่ีใชใ้ นการบนั ทกึ ขอ้ มูล เช่น แผ่นดิสก์ ฮาร์ดดิส ซีดีรอม ดีวีดีรอม แฮนดีไร์ฟ เป็นตน้ ซอฟตแ์ วร์ทีม่ กั ตดิ ต้งั ไวใ้ น ฮาร์ดดิสกเ์ พอื่ ทางานทนั ทที ี่เปิ ดเคร่ืองคือ ซอฟตแ์ วร์ระบบปฏบิ ตั กิ าร 3.พเี พลิ แวร์ ( Peopleware ) คอื บุคคลทม่ี ีส่วนเก่ียวขอ้ งกบั การทางานของเครื่อง คอมพวิ เตอร์ พีเพลิ แวร์หรือบุคคลากรดา้ นคอมพวิ เตอร์นบั ว่าเป็นองคป์ ระกอบที่สาคญั ท่สี ุด เพราะ บคุ คลกรจะเป็นผจู้ ดั การหรือผดู้ าเนินงานให้ระบบ คอมพวิ เตอร์ดาเนินตอ่ ไปได้ 4.ขอ้ มูล ( Data) คอื รายละเอยี ดขอ้ เทจ็ จริงตา่ ง ๆ ท่ีเกี่ยวขอ้ งกบั บคุ คลสิ่งของ สถานท่หี รือเหตุการณใ์ ด ๆ ทส่ี นใจศกึ ษา และนาขอ้ มูลเขา้ สู่ระบบ การประมวลผลของ คอมพวิ เตอร์ เพอื่ ให้อยู่ ในรูปแบบท่ีสามารถนาไปใชป้ ระโยชนต์ ่อไปได้ 1.2 หลกั การเขยี นโปรแกรม คอมพิวเตอร์ เป็นอปุ กรณท์ างอิเล็กทรอนิกส์อยา่ งหน่ึง ซ่ึงไม่สามารถทางานดว้ ยตนเองได้ แตจ่ ะสามารถทางานไดต้ ามชุดคาส่งั ในโปรแกรมที่ป้อนเขา้ สู่เครื่อง ซ่ึงจะทางานตามคาส่งั ทลี ะ คาสงั่ (Step by Step) โดยคาส่ังทเ่ี คร่ืองคอมพวิ เตอร์สามารถเขา้ ใจได้ จะตอ้ งอยใู่ นรูปแบบของ
7 ภาษาเครื่อง (Machine Language) แตถ่ า้ มกี ารเขยี นดว้ ยภาษาอน่ื ทไ่ี ม่ใช่ภาษาเครื่อง หรือท่เี รียกวา่ ภาษาช้นั สูง (High-level Language) ก็จะตอ้ งมตี วั แปลภาษา เช่น คอมไพเลอร์ (Compiler) หรือ อนิ เตอร์พรีเตอร์ (Interpreter) ทาการแปลภาษาช้นั สูงน้นั ให้เป็นภาษาเครื่องอกี ทหี น่ึง ในการเขียนโปรแกรมหรือภาษาคอมพวิ เตอร์น้ี โดยทวั่ ไปแลว้ แตล่ ะภาษาจะมีหลกั เกณฑใ์ น การเขียนและการออกแบบโปรแกรมเหมือนกนั ซ่ึงสามารถทจ่ี ะแบ่งข้นั ตอนการเขยี นโปรแกรม ออกไดเ้ ป็น 7 ข้นั ตอน ดงั น้ี 1. ข้นั ตอนการวิเคราะหป์ ัญหา (Analysis the Problem) 2. ข้นั ตอนการออกแบบโปรแกรม (Design a Program) 3. ข้นั ตอนการเขยี นโปรแกรม (Coding) 4. ข้นั ตอนการตรวจสอบขอ้ ผิดพลาดของโปรแกรม (Testing and Debugging) 5. ข้นั ตอนการทดสอบความถูกตอ้ งของโปรแกรม (Testing and Validating) 6. ข้นั ตอนการทาเอกสารประกอบโปรแกรม (Documentation) 7. ข้นั ตอนการบารุงรกั ษาโปรแกรม (Program Maintenance) 2. ผงั งาน 2.1 ความหมายของผังงาน ผงั งาน คือ แผนภาพแสดงการทางานของโปรแกรม โดยใชส้ ญั ลกั ษณแ์ สดงข้นั ตอนและลกั ษณะ การทางานแบบตา่ งๆ สญั ลกั ษณเ์ หลา่ น้ีจะถกู เชื่อมโยงดว้ ยลูกศรเพือ่ แสดงลาดบั การ ทางาน ช่วยให้มองเหน็ ภาพการทางานโดยรวมของโปรแกรม สะดวกตอ่ การตรวจสอบความ ถกู ตอ้ งของลาดบั การทางานและการไหลของขอ้ มลู ในโปรแกรม การเขยี นผงั งานจะใชส้ ญั ลกั ษณ์ ส่ือสารความหมายให้เขา้ ใจตรงกนั ของสถาบนั มาตรฐานแห่งชาตอิ เมริกนั
8 2.2 สัญลักษณ์สาหรับการเขียนผังงาน สัญลกั ษณ์สาหรับการเขียนผงั งาน Symbol for Flowchart 1. จดุ เร่ิมต้นและจดุ สิ้นสุดของผังงาน 2. การประมวลผล 3. การนาเข้าข้อมูล การแสดงผลข้อมลู โดยไม่ระบุ ส่ือ 4. การนาเข้าข้อมูลผ่านทางแป้นพมิ พ์ keyboard 5. การแสดงผลข้อมลู ทางจอภาพ 6. การแสดงผลข้อมลู ทางเครื่องพมิ พ์ 7. การตดั สินใจเลือกทา 8. จดุ เช่ือมต่อภายในหน้าเดียวกนั 9. จุดเชื่อมต่อหน้าอน่ื ๆ 10 ทศิ ทางการทางานของผังงาน
9 2.3 หลกั การเขียนผงั งาน การเขยี นผงั งาน(Flowchart) มหี ลกั การงา่ ยๆท่คี วรคานึงดงั น้ี คอื 1. ผงั งาน (Flowchart) จะตอ้ งมจี ดุ เริ่มตน้ และจุดสิ้นสุดเสมอ 2. เลอื กใชส้ ัญลกั ษณเ์ พือ่ ส่ือความหมายใหถ้ ูกตอ้ ง 3. ใชล้ ูกศรเป็นตวั กาหนดทิศทางการทางานของโปรแกรมจากบนลงล่าง จากซา้ ยไปขวาโดยเรียงตามลาดบั 4. รูปสญั ลกั ษณท์ ุกตวั ตอ้ งมีลูกศรเขา้ และออก ยกเวน้ จุดเร่ิมตน้ จะมีเฉพาะ ออก จดุ ส้ินสุดจะมีเฉพาะเขา้ เทา่ น้นั 5. ลกู ศรทกุ ตวั จะช้ีออกจากรูปสญั ลกั ษณ์ตวั หน่ึงไปยงั รูปสัญลกั ษณ์อีกตวั 6. คาอธิบายภายในรูปสัญลกั ษณ์ ควรส้ันๆเขา้ ใจงา่ ย 7. ไมค่ วามใชล้ ูกศรช้ีไปไกลมากเกินไป หากจาเป็นให้ใชจ้ ุดเช่ือมแทน 2.4 รูปแบบเขยี นผงั งาน การเขียนผงั งานมี 3 รูปแบบ คอื 1. การทางานแบบตามลาดบั (Sequence) : รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคอื เขยี นให้ทางานจากบนลงล่าง เขยี นคาสง่ั เป็นบรรทดั และทาทีละบรรทดั จากบรรทดั บนสุดลงไป จนถงึ บรรทดั ลา่ งสุด สมมตใิ หม้ ีการทางาน 3 กระบวนการคอื อา่ นขอ้ มูล คานวณ และพิมพ์
10 2. การเลือกกระทาตามเง่อื นไข(Decision or Selection) : การตดั สินใจ หรือเลอื กเงอื่ นไขคือ เขยี น โปรแกรมเพอ่ื นาค่าไปเลอื กกระทา โดยปกตจิ ะมเี หตุการณใ์ หท้ า 2 กระบวนการ คือเงอื่ นไขเป็นจริง จะกระทากระบวนการหน่ึง และเป็นเทจ็ จะกระทาอกี กระบวนการหน่ึง แตถ่ า้ ซบั ซ้อนมากข้ึน จะตอ้ งใชเ้ งือ่ นไขหลายช้นั เช่นการตดั เกรดนกั ศึกษา เป็นตน้ ตวั อยา่ งผงั งานน้ี จะแสดงผลการเลอื ก อยา่ งง่าย เพอื่ กระทากระบวนการเพยี งกระบวนการเดียว 3. การทาซ้า(Repeation or Loop) : การทากระบวนการหน่ึงหลายคร้ัง โดยมเี ง่ือนไขในการ ควบคมุ หมายถึงการทาซ้าเป็นหลกั การที่ทาความเขา้ ใจไดย้ ากกวา่ 2 รูปแบบแรก เพราะการเขยี น โปรแกรมแต่ละภาษา จะไม่แสดงภาพอยา่ งชดั เจนเหมอื นการเขยี นผงั งาน ผเู้ ขียนโปรแกรมตอ้ ง จนิ ตนาการดว้ ยตนเอง
11 3.รหัสเทยี ม เป็นคาสง่ั ท่ีจาลองความคิดเป็นลาดบั ข้นั ตอนโดยใชป้ ระโยคภาษาองั กฤษอธิบายอยา่ งง่ายๆ ซ่ึงรหสั เทยี มไมใ่ ช่ภาษาโปรแกรมทางคอมพวิ เตอร์จงึ ไมส่ ามารถนาไปประมวลผลไดไ้ มส่ ามารถ ส่ังใหค้ อมพิวเตอร์ทางาน แต่เป็นการเขียนจาลองคาสั่งจริงแบบยอ่ ๆ ตามอลั กอริทมึ ของโปรแกรม เพื่อนาไปเป็นแบบในการเขยี นโปรแกรมภาษาคอมพวิ เตอร์ตอ่ ไป 3.1หลักเกณท์การเขยี นรหสั เทียม 1.ใชภ้ าษาองั กฤษท่ีเขา้ ในง่ายในการเขยี น 2.ในหน่ึงบรรทดั มีเพียงหน่ึงประโยคคาสงั่ เท่าน้นั 3.ใชย้ อ่ หนา้ แบง่ การแสดงการทางานเพ่ือให้อ่านงา่ ย 4.แตล่ ะประโยคคาสง่ั ใหเ้ ขยี นจากบนลงล่าง และมที างออกทางเดียว 5.กลุม่ ของประโยคคาสั่งอาจรวมเป็นหมวดหมูแ่ ลว้ เรียกใชเ้ ป็นโมดูล 3.2 รูปแบบการเขียนรหัสเทยี ม 1. การกาหนดคา่ และการคานวณ
12 name = expression name คอื ช่ือตวั แปรที่ใชส้ าหรบั เกบ็ คา่ expression คือ ค่าขอ้ มูลหรือนิพจน์ ตวั อยา่ ง salary = 1000 overTime = 2500 tax = 125 Income = salary + overTime - tag 2. การอา่ น/รบั ขอ้ มูล การอา่ นขอ้ มลู สามารถใชค้ าส่ัง READ, INPUT หรือ GET ได้ โดย Read variables_1 ,variables_2, variables_3 Input variables_1 ,variables_2, variables_3 Get variables_1 ,variables_2, variables_3 ตวั อยา่ ง Input a, b, c Answer = a + b + c Get current_date expire_date = current_date + 120
13 Open student_file Read Id, Name, Address, Sex 3. การแสดงผลขอ้ มลู การแสดงผลขอ้ มูลสามารถใชค้ าสง่ั Print , Prompt, Write print variables_1 ,variables_2, variables_3 prompt variables_1 ,variables_2, variables_3 write variables_1 ,variables_2, variables_3 PRINT และ PROMPT ใชส้ าหรับการพมิ พค์ ่าขอ้ มลู หรือขอ้ ความ WRITE ใชส้ าหรบั การบนั ทกึ ขอ้ มลู ลงในแฟ้มขอ้ มลู ตวั อยา่ ง Prompt \" Enter 3 Value ==> \" Input Value1 , Value2 , Value3 Sum = Value1 + Value2 + Value3 Print Sum Open Student _file Input Id, Name, Address, Sex Write Id, Name, Address, Sex
14 4. การกาหนดเงื่อนไข If < condition > Then Activity 1 Else Activity 2 Endif <condition> คอื เงอื่ นไขทก่ี าหนด ซ่ึงหากเง่ือนไขเป็นจริง จะทากิจกรรมหลงั THEN (activity1) แต่ถา้ เงอื่ นไขเป็นเทจ็ ก็จะทากิจกรรมหลงั ELSE (activity2) ตวั อยา่ ง IF sex = “M” THEN male = male + 1 ELSE female = female + 1 ENDIF IF score >= 80 grade = “A” ELSEIF score >= 70 grade = “B”
15 ELSEIF score >= 60 grade = “C” ELSEIF score >= 50 grade = “D” ELSE grade = “F” ENDIF 5. ในกรณีที่มหี ลายเงอ่ื นไข การใช้ IF อาจทาให้ตรวจสอบโปรแกรมไดย้ าก สามารถใชค้ าสั่ง CASE …. END CASE แทนได้ ตวั อยา่ ง CASE score OF >= 80 : grade = “A” >= 70 : grade = “B” >= 60 : grade = “C” < 60 : grade = “F” ENDCASE
16 6. การทางานเป็นรอบ (Loop) การทางานเป็นรอบดว้ ยลูป WHILE … ENDWHILE WHILE<condition> activity1 activity2 activity3 ENDWHILE การทางานของลปู WHILE จะมีการตรวจสอบเงื่อนไขกอ่ น โดยหากเงือ่ นไขเป็นจริง จะทากิจกรรมภายในลปู ซ้าไปเร่ือยๆ จนกระทงั่ เงอื่ นไขเป็นเท็จ กจ็ ะออกจากลปู แตห่ ากเงอ่ื นไขท่ี ตรวจสอบคร้งั แรกเป็นเท็จ กจ็ ะไมม่ ีการทากิจกรรมภายในลูปเลย ตวั อยา่ ง num = 1 WHILE num <= 20 PRINT num num = num + 1 ENDWHILE PRINT “STOP RUN”
17 7. การทางานเป็นรอบ (Loop) การทางานเป็นรอบดว้ ยลปู DO … UNTIL DO activity1 activity2 activity3 UNTIL <condition> การทางานของลูป DO … UNTIL จะทากิจกรรมภายในลูปกอ่ นหน่ึงรอบ จากน้นั จะ ทาการตรวจเงอื่ นไข โดยจะวนซ้าไปเร่ือยๆ จนกวา่ เงอ่ื นไขจะเป็นจริง จึงหลดุ ออกจากลปู และ ถึงแมเ้ งื่อนไขที่ตรวจสอบเป็นจริงต้งั แตแ่ รก แต่ลูป DO…UNTIL กจ็ ะมกี ารทากิจกรรมภายในลูป อยา่ งนอ้ ยหน่ึงรอบเสมอ ตวั อยา่ ง num = 0 DO PRINT “HELLO…” num = num + 1 UNTIL num > 20
18 8. การทางานเป็นรอบ (Loop) การทางานเป็นรอบดว้ ยลปู FOR … NEXT FOR i=1 to n activity1 activity2 activity3 Next 3.3 การเขียนรหัสเทียมจากลาดบั ข้นั ตอนของวธิ กี ารประมวล เป็นคาส่งั ท่จี าลองความคดิ เป็นลาดบั ข้นั ตอนโดยใชส้ ญั ลกั ษณ์เป็น ประโยคภาษาองั กฤษ ซ่ึงซูโดโคด้ ไมใ่ ช่ภาษาโปรแกรมทางคอมพิวเตอร์จงึ ไม่ สามารถนาไปประมวลผลได้ คือ ไม่สามารถสัง่ ให้คอมพวิ เตอร์ทางานตามคาสงั่ แต่เป็นการ เขียนจาลองคาสง่ั จริงแบบยอ่ ๆ ตามอลั กอริทมึ ของโปรแกรมระบบ เพอื่ นาไปพฒั นาเป็นการเขียนโปรแกรมภาษาคอมพวิ เตอร์ได้ รหัสเทยี ม (Pseudocode) คือ การเขยี นโปรแกรมในรูปแบบภาษาองั กฤษทมี่ ีข้นั ตอน และรูปแบบแน่นอนกะทดั รดั และมองดูคลา้ ยภาษาระดบั สูงทีใ่ ชก้ บั เครื่องคอมพวิ เตอร์ซ่ึงไมเ่ จาะจงภาษาใดภาษาหน่ึง ประโยชน์ของซูโดโคด้ • เป็นเครื่องมือในการกาหนดโครงร่างกระบวนการทางานของการเขยี นโปรแกรม แตล่ ะโปรแกรม
19 • เป็นตน้ แบบในการทบทวน ปรบั ปรุงแกไ้ ข และพฒั นาโปรแกรมของ โปรแกรมเมอร์ และนกั วเิ คราะห์ระบบ • เป็นตวั กาหนดงานเขียนโปรแกรม เพ่อื ใหโ้ ปรแกรมเมอร์นาไปพฒั นาเป็น โปรแกรมคอมพวิ เตอร์ เพ่ือสง่ั ใหค้ อมพวิ เตอร์ทางานตามกระบวนการที่ได้ จาลองกระบวนการจริงไวใ้ นซูโดโคด้ วิธีการเขยี นซูโดโคด้ • ประโยคคาส่งั (Statement) จะอยใู นรูปแบบของภาษาองั กฤษอยา่ งง่าย • ในหน่ึงบรรทดั ให้เขยี นประโยคคาส่งั เพยี งคาสั่งเดียว • ควรใชย้ อ่ หนา้ เพ่ือแยกคาเฉพาะ (Keywords) ไดช้ ดั เจน รวมถงึ จดั โครงสรา้ งการ ควบคมุ ให้เป็นสัดส่วน ซ่ึงช่วยให้อ่านโคด้ ไดง้ า่ ย • แต่ละประโยคคาสัง่ ใหเ้ ขยี นลาดบั จากบนลงลาง โดยมที างเขา้ เพยี งทางเดียว และมี ทางออกทางเดียวเท่าน้นั • กลมุ่ ของประโยคคาสัง่ ตา่ งๆ อาจจดั รวมกลุม่ เขา้ ดว้ ยกนั ในรูปแบบของโมดลู แต่ ตอ้ งมีการกาหนดช่ือของโมดลู ดว้ ย เพอื่ ใหส้ ามารถเรียกใชง้ านโมดลู น้นั ได้ 4. ข้นั ตอนการแก้ปัญหา (ALGORITHM) 4.1ความหมายของข้นั ตอนการแก้ปัญหา ในชีวิตประจาวนั ทุกคนตอ้ งเคยพบกบั ปัญหาต่างๆ ไมว่ า่ จะเป็นปัญหาดา้ นการเรียน การ งาน การเงนิ หรือแมแ้ ตก่ ารเล่นเกม เมอื่ พบกบั ปัญหา แตล่ ะคนมวี ธิ ีท่จี ะจดั การหรือแกป้ ัญหา เหล่าน้นั แตกตา่ งกนั ไป ซ่ึงแตล่ ะวิธีการอาจให้ผลลพั ธ์ท่เี หมอื นหรือแตกตา่ งกนั เลก็ นอ้ ย ท้งั น้ี ข้ึนอยกู่ บั ความรู้ ความสามารถ และประสบการณ์ของบคุ คลผูน้ ้นั อยา่ งไรก็ตาม หากเรานาวิธีการ
20 แกป้ ัญหาตา่ งวธิ ีน้นั มาวเิ คราะหใ์ หด้ ี จะพบวา่ สามารถสรุปวธิ ีการเหลา่ น้นั เป็นทฤษฎีซ่ึงมรี ูปแบบท่ี แน่นอนได้ และบางคร้ังตอ้ งอาศยั การเรียนรู้ในระดบั สูงเพอื่ แกป้ ัญหาบางอยา่ งให้สมบูรณ์แบบ นอกจากวิธีการแกป้ ัญหาท่ยี กตวั อยา่ งมาซ่ึงไดแ้ ก่ วิธีการลองผดิ ลองถกู การใช้ เหตุผล การใชว้ ิธีขจดั ยงั มวี ธิ ีการแกป้ ัญหาอีกมากมายทผี่ แู้ กป้ ัญหาสามารถเลือกใชใ้ หเ้ ขา้ กบั ตวั ปัญหาและประสบการณ์ของผแู้ กป้ ัญหาเอง แต่อยา่ งไรก็ตาม วธิ ีการเหลา่ น้นั ลว้ นมีข้นั ตอนท่ี คลา้ ยคลงึ กนั และจากการศกึ ษาพฤตกิ รรมในการเรียนรู้และแกป้ ัญหาของมนุษยพ์ บว่า โดยปกติ มนุษยม์ กี ระบวนการในการแกป้ ัญหา ซ่ึงประกอบดว้ ย 4 ข้นั ตอน ดงั น้ี 4.2 การเขยี นข้นั ตอนการแก้ปัญหา การแกป้ ัญหาเป็นกิจกรรมพ้ืนฐานในการดารงชีวติ ของมนุษย์ ปัญหาบางปัญหาสามารถคิด หาคาตอบไดท้ นั ที แต่ในบางปัญหาอาจตอ้ งใชเ้ วลานานในการคน้ หาคาตอบ ซ่ึงคาตอบท่ไี ดต้ อ้ ง สามารถพสิ ูจน์ไดเ้ ป็นเป็นคาตอบทดี่ ีท่ีสุด น่าเช่ือถือ และสามารถนาไปใชอ้ า้ งองิ ได้ การแกป้ ัญหา ประกอบดว้ ย 4 ข้นั ตอนดงั น้ี 1. วเิ คราะหแ์ ละกาหนดรายละเอยี ดของปัญหา เป็นการทาความเขา้ ใจเกี่ยวกบั รายละเอยี ด เงือ่ นไข ขอ้ กาหนด รวมถึงขอ้ จากดั ตา่ งๆ ของปัญหา วเิ คราะหว์ า่ ขอ้ มลู ทใ่ี ดมีความจาเป็นในการ แกป้ ัญหา 2. วางแผนการแกป้ ัญหา เป็นการคิดคน้ กระบวนการต่างๆ ทีเ่ ป็นลาดบั ข้นั ตอน ซ่ึงตอ้ ง อาศยั ประสบการณแ์ ละความรู้ของผแู้ กป้ ัญหา โดยอาจนาวธิ ีทเี่ คยแกป้ ัญหา หรือคน้ หาวธิ ีการอื่น แลว้ นามาประยกุ ตเ์ ขา้ กบั ปัญหาที่กาลงั แกไ้ ข เครื่องมอื ทีใ่ ชใ้ นการวางแผนแกไ้ ขปัญหาสาหรับการ พฒั นาโปรแกรม อาจเลือกใชร้ หสั ลาลอง หรือผงั งาน โดยวธิ ีการแกป้ ัญหาแบบน้ี เราเรียน กว่า “ข้นั ตอนวิธีหรืออลั กอริทมึ (algorithm)” 3. ดาเนินการแกป้ ัญหา เป็นการพฒั นาโปรแกรมตามอลั กอริทึมท่ไี ดว้ างไว้ โดยอาจใชภ้ าษา โปรแกรมช่วยในการดาเนินการ
21 4. ตรวจสอบปละประเมินผล ข้นั ตอนน้ีควรทาควบคู่ไปกบั ข้นั ตอนดาเนินการแกป้ ัญหา โดยตรวจสอบผลลพั ธ์ท่ีได้ หากผลลพั ธ์ทไี่ ดไ้ มถ่ กู ตอ้ ง หรือยงั มีส่วนท่ตี อ้ งแกไ้ ข ตอ้ งยอ้ นกลบั ไป ทาซ้าต้งั แต่ข้นั ตอนแรกจนกวา่ จะไดผ้ ลลพั ธ์ท่ถี กู ตอ้ ง 5. องค์ประกอบพ้ืนฐานของภาษาC 5.1โครงสร้งของโปรงแกรมภาษา c โครงสร้างการเขียนโปรแกรมภาษาซี (C/C++) รวมท้งั การเขยี นโปรแกรมอยา่ งง่าย ลกั ษณะ โครงสรา้ งของภาษาซีแบง่ ออกไดเ้ ป็น5 ส่วน ดงั น้ี 1. พรีโปรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives) 2. ส่วนการกาหนดค่า (Global declarations) 3. ส่วนฟังกช์ นั่ หลกั (The main() function) 4. การสร่้างฟังกช์ น่ั และการใชฟ้ ังกช์ นั่ (Uses-Defined function) 5. ส่วนอธิบายโปรแกรม (Program comments) 5.2 ชนิดของข้อมลู ประเภทของขอ้ มลู • 1.1 ขอ้ มลู ปฐมภูมิ (Primary data) • 1.2 ขอ้ มูลทตุ ิยภมู ิ (Secondary data) • 2.1 ขอ้ มลู ชนิดตวั เลข (Numeric data) • 2.2 ขอ้ มูลชนิดตวั อกั ษร/อกั ขระ (Character data) • 2.4 ขอ้ มูลชนิดมลั ติมเี ดีย (Multimedia data)
22 5.3 ตัวแปร ตวั แปร (Variables) ตวั แปร ตวั แปร คือ คุณลกั ษณะท่เี ปล่ยี นแปลงได้ ข้นึ อยกู่ บั ความแตกตา่ งเฉพาะบุคคลหรือกลมุ่ ตวั อยา่ ง เช่น อณุ หภมู ิ ของร่างกายคอื ตวั แปรที่เปลย่ี นแปลงไปในแตล่ ะบุคคล การนบั ถอื ศาสนา รายได้ อายุ ความสูง ตวั แปรคุณลกั ษณะ เหล่าน้ีข้นึ อยกู่ บั แต่ละบคุ คล 3 ชนิดของตวั แปร 1. ตวั แปรเชิงคณุ ภาพ เป็นตวั แปรท่ขี อ้ มลู ไม่ใช่ตวั เลขแตเ่ ป็นขอ้ มูลทมี่ ีลกั ษณะเป็นการ แบ่งประเภทใหเ้ ห็น ถึงความแตกตา่ งของกลุ่มตวั อยา่ งแตล่ ะกลุ่ม เช่น ศาสนา อาชีพ สถานภาพ สมรส ระดบั การศกึ ษา 2. ตวั แปรเชิงปริมาณ เป็นตวั แปรท่ีถกู วดั มามีค่าเป็นตวั เลข เช่น จานวนบุตร รายได้ คะแนนสอบ ราคา สิ่งของ ตวั แปรทใี่ ชใ้ นการวิจยั มี 3 ประเภท คือ 1. ตวั แปรตน้ หรือตวั แปรอสิ ระ (Independent Variable) เป็นตวั แปรทเ่ี กิดกอ่ น หรือ เป็น ตวั แปรทีเ่ ป็นตน้ เหตุทท่ี าใหเ้ กิดผลตามมา 2. ตวั แปรตาม (Dependent Variable) เป็นตวั แปรท่ีเกิดทหี ลงั หรื เป็นตวั แปรทีเ่ ป็นผลมา จากการกระทาของตวั แปรตน้ และ มกั เป็นตวั แปรท่ผี วู้ จิ ยั สนใจศกึ ษา ตวั อยา่ งการกาหนดตวั แปรตน้ ตวั แปรตาม นกั เรียนเพศชายกบั เพศหญงิ มีความสนใจในการอ่านขา่ วกีฬาแตกต่างกนั ตวั แปรตน้ คือ เพศ ตวั แปรตาม คือ ความสนใจในการอา่ นขา่ วกีฬา 3. ตวั แปรเกิน หรือตวั แปรแทรกซ้อน (Extraneous Variable) เป็นตวั แปรท่ีส่งผลตอ่ ตวั แปร
23 ตามแต่ผูว้ จิ ยั ไมต่ อ้ งการศึกษา ถา้ ไมค่ วบคุมไวจ้ ะทาให้ผลการวิจยั คลาดเคลื่อน บางคร้ัง เรียกว่า ตวั แปรควบคมุ (control Variable) ตวั อยา่ งการกาหนดตวั แปรตน้ ตวั แปรตาม ตวั แปรควบคุม นกั เรียนทเ่ี รียนดว้ ยวิธีสอนแบบนิรนยั มผี ลสมั ฤทธ์ิทางการเรียนสูงกวา่ นกั เรียนทีเ่ รียนดว้ ยวธิ ีปกติ ตวั แปรตน้ คือ วธิ ีสอน ตวั แปรตาม คือ ผลสัอนมฤทธ์ิทางการเรียน ตวั แปรเกืน คือ สตปิ ัญญาของนกั เรียน ความสามารถในการสอนของครู การนิยามตวั แปร เมอื่ ผวู้ ิจยั กาหนดตวั แปรทต่ี อ้ งการทาวิจยั แลว้ ตอ้ งให้นิยามความหมายตวั แปรให้ชดั เจน เพ่อื ประโยชนใ์ นการสร้างเครื่องมือวิจยั การให้นิยามตวั แปร ทาได้ 2 ลกั ษณะ คอื 1. นิยามทวั่ ไป (Genneral Deffinition) เป็นการอธิบายความหมายตวั แปรตามพจนานุกรม ตามทฤษฎี หรือตามที่ผเู้ ช่ียวชาญกาหนด เช่น ความคิดเห็น หมายถงึ ความคิด ความเชื่อ หรือ มมุ มองของบุคคลทม่ี ีตอ่ สิ่งหน่ึงสิ่งใด 2. นิยามปฏบิ ตั กิ าร(Operational Deffinition) เป็นการอธิบายความหมายตวั แปรใหม้ ี ลกั ษณะเฉพาะเจาะจงเป็นรูปธรรม โดยระบตุ วั บง่ ช้ขี องส่ิงท่ี ตอ้ งการศกึ ษาอยา่ งชดั เจน ใชใ้ นการ นิยามตวั แปรตาม เช่นความคิดเห็นท่ีมีต่อการจดั การเรียนการสอน หมายถงึ ความคิด หรือมุมมอง ของนิสิตมหาวิทยาลยั ราชภฏั ทมี่ ตี อ่ การจดั การเรียนการสอนของอาจารย์ 4 ดา้ น คอื ดา้ นการ เตรียมการสอน ดา้ นการดาเนินการสอน ดา้ นการใชส้ ื่อ และดา้ นการวดั ประเมนิ ผล 5.4 การแสดงผลข้อมูล หน่วยแสดงผลขอ้ มลู (Output Unit) ทาหนา้ ท่แี สดงผลลพั ธ์ไดจ้ ากการประมวลผล
24 ต่างๆ โดยอาจจะแสดงออกมา เช่น - จอภาพ - เคร่ืองพมิ พ์ - แฟกซ์ หมายถงึ การแสดงผลออกมาให้ผใู้ ชไ้ ดร้ บั ทราบในขณะน้นั แตเ่ มอ่ื เลิกการทางานหรือเลกิ ใชแ้ ลว้ ผล น้นั ก็จะหายไป ไมเ่ หลือเป็นวตั ถุใหเ้ กบ็ ได้ แตถ่ า้ ตอ้ งการเกบ็ ผลลพั ธน์ ้นั กส็ ามารถส่งถ่ายไปเกบ็ ใน รูปของขอ้ มลู ในหน่วยเกบ็ ขอ้ มูลสารอง เพอื่ ใหส้ ามารถใชง้ านในภายหลงั หน่วยแสดงผลทจี่ ดั อยใู่ น กลุ่มน้ี คอื จอภาพ (Monitor) อปุ กรณฉ์ ายภาพ (Projector) อปุ กรณเ์ สียง (Audio Output) คร่ืองพิมพ์ (Printer) 5.5 การรับข้อมูล ขอ้ มลู ทเี่ ราพบเหน็ ทกุ วนั น้ี มีหลายรูปแบบ เช่น เป็นตวั เลข ขอ้ ความ รูปภาพ เสียงตา่ ง ๆ เรา สามารถรับรู้ขอ้ มูลไดจ้ ากส่วนต่าง ๆ ดงั น้ี 1.การรับรู้ขอ้ มูลทางตา ไดแ้ ก่ การมองเหน็ เช่น ขอ้ มูลภาพ จากหนงั สือ โทรทศั น์ เป็นตน้ 2.การรบั รู้ทางหู ไดแ้ ก่ การไดย้ ินเสียงผา่ นเขา้ มาทางหู เช่น ขอ้ มลู เสียงเพลง เสียงพดู เสียง รถ เป็นตน้ 3.การรบั รู้ทางมือ ไดแ้ ก่ การสมั ผสั กบั ขอ้ มลู เช่น การจบั เส้ือผา้ แลว้ รูส้ ึกว่านุ่ม เป็นเน้ือผา้ เป็ นตน้
25 4.การรบั รู้ทางจมกู ไดแ้ ก่ การไดก้ ลิ่น เช่น หอมกลน่ิ อาหาร กล่ินดอกไม้ กลน่ิ ขยะ เป็นตน้ 5.การรบั รูท้ างปาก ไดแ้ ก่ การรู้สึกถงึ รส โดยการสมั ผสั ทางลิ้น เช่น เผด็ หวาน ขม เป็นตน้ 5.6 ค่าคงที่ คา่ คงท่ี (Constant) เป็นตวั แปรประเภทหน่ึงทไ่ี มส่ ามารถเปลยี่ นแปลงคา่ ไดใ้ นขณะที่ โปรแกรมทางาน นนั่ หมายความว่าเราจะตอ้ งกาหนดค่าให้ตวั แปรในเวลาท่ีคอมไพเลอร์ทางาน หรือในตอนแรกที่เราสรา้ งตวั แปรค่าคงทขี่ ้ึนมา ค่าคงท่ีทเี่ ราใชก้ นั บ่อยๆ น้นั เรียกวา่ Literal ซ่ึง Literal สามารถแบง่ แยกไดเ้ ป็น Integer, Floating-point, Characters, Strings, Boolean, Pointers และ ค่าคงที่ที่ผใู้ ชส้ รา้ งข้ึนเอง ในการใชข้ อ้ มลู คา่ ซ้ากนั บ่อยๆ และค่าขอ้ มูลน้นั ไม่มีการเปลย่ี นแปลงเลย ตลอดการใชง้ าน โปรแกรม ควรเก็บขอ้ มลู น้นั ไวใ้ นตวั แปรและ ประกาศตวั แปรใหเ้ ป็นแบบคา่ คงท่ี การประกาศตวั แปรให้เป็นแบบคา่ คงท่ีและกาหนดค่าคงทีเ่ อาไว้ ใชร้ ูปแบบคาสงั่ ดงั น้ี Const ช่ือตวั แปร = ค่าขอ้ มูล เช่น การประกาศตวั แปรให้เป็นแบบค่าคงท่ีช่ือ Pi เพ่ือกาหนดคา่ ของ \"พาย\" ให้เป็น ค่าคงท่ีเขยี นคาส่งั ไดเ้ ป็น Const Pi = 3.14159625358979 การประกาศตวั แปรคา่ คงท่ี อาจกาหนดแบบขอ้ มูลไวด้ ว้ ย โดยแบบดงั น้ี Const ชื่อตวั แปร As แบบขอ้ มูล = คา่ ขอ้ มูล เช่น Const Pi As Double = 3.14159625358979 หรือประกาศแบบขอ้ มลู ดว้ ยอกั ขระแทน เช่น
26 Const Pi# = 3.14159625358979 Const Respounse$ = “Yes” การประกาศค่าคงท่จี ะทาในบริเวณส่วนประกาศตอนตน้ ของโปรแกรมเช่นเดียวกนั การประกาศตวั แปร 5.7 ตัวดาเนินการ ตวั ดาเนินการ (Operator) ในการเขียนโปรแกรมตวั ดาเนินการจะเป็นตวั ทาหนา้ ท่ีรวมคา่ ตา่ งๆ และกระทากบั คา่ ต่างๆ ใหเ้ ป็นคา่ เดียวกนั ซ่ึงตวั ดาเนินการมีหลายประเภท ดงั ตอ่ ไปน้ี .1 ตวั ดาเนินการเลขคณิต 2 ตวั ดาเนินการเปรียบเทียบ 3 ตวั ดาเนินการทางตรรกะ 4 ตวั ดาเนินการเพมิ่ คา่ และลดคา่ 5 ลาดบั ความสาคญั ของตวั ดาเนินการทางคณิตศาสตร์ 5.8 นิพจน์ นิพจน์ คอื กลุ่มของขอ้ มูลซ่ึงอาจจะอยใู่ นรูปของคา่ คงท่หี รือตวั แปรมาดาเนินการโดยใช้ เคร่ืองหมายต่าง ๆ ไมว่ ่าจะเป็นเคร่ืองหมายทางคณิตศาสตร์ เคร่ืองหมายการเปรียบเทียบ หรือ เคร่ืองหมายทางตรรกศาสตร์ ตวั อยา่ ง นิพจน์ทางคณิตศาสตร์ เช่น (b * b – 4 * a + c) / (2 * a) หรือ 3y + 50 = 100 นิพจน์ทางตรรกศาสตร์ เช่น (c>100) && (a <= b) เป็นตน้
27 ดงั น้นั ในการเขียนผงั งานหรือการเขยี นโปรแกรมแตล่ ะระบบ อาจมกี ารใช้ เครื่องหมายหรือ ตวั ดาเนินการในการคานวณหลายอยา่ ง และมกี ารใชเ้ คร่ืองหมายหลายประเภท มี การเปรียบเทียบ หลายเงอ่ื นไข หรือมนี ิพจน์ท่ซี บั ซอ้ นนนั่ เอง 6.โครงสร้งควบคุมแบบเงื่อนไข 6.3 โครงสร้างแบบหลายทางเลือก หากรูปแบบการสร้างเงอื่ นไขที่ตอ้ งตรวจสอบหลาย ๆ กรณี ก็จะใชค้ าสงั่ if...else if เพ่ือ ตรวจสอบเป็นลาดบั ข้นั ยอ่ ย ๆ ตอ่ ไป ตัวอย่าง โปรแกรมแกรมตรวจสอบคะแนนสอบ 1 - 100 1. การวิเคราะห์และกาหนดรายละเอียดของปัญหา 1. การระบุข้อมลู เข้า (Input) ตัวเลขจานวนเตม็ 1 - 100 (score) 2. การระบุข้อมลู ออก (Output) ผลคะแนน
28 3. วิธีประมวลผล (Process) (1) เริ่มต้น (2) กาหนดตัวแปร score เป็ นจานวนเต็ม (3) รับค่า score (4) ตรวจสอบเงื่อนไขดังนี้ 4.1 เงื่อนไขที่ 1 ถ้า score >=70 and score <=100 - เป็ นจริง แสดงคาว่า \"Excellent pass \" - เป็ นเทจ็ ตรวจสอบเงื่อนไขถดั ไป 4.2 เงื่อนไขที่ 2 ถ้า score >=50 and score<=69 - เป็ นจริง แสดงข้อความ \" Passed\" - เป็ นเทจ็ ตรวจสอบเง่ือนไขถัดไป 4.3 เง่ือนไขท่ี 3 ถ้า score >=1 and score <=49 - เป็ นจริง แสดงข้อความ \"Fail \" - เป็ นเท็จ No Data!!! (5) จบ
29 อ้างองิ https://sites.google.com/ http://courseware.npru.ac.th/
Search
Read the Text Version
- 1 - 29
Pages: