Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore การเขียนโปรแกรมเบื้องต้น

การเขียนโปรแกรมเบื้องต้น

Published by s_srisura, 2020-05-08 11:28:15

Description: การเขียนโปรแกรมเบื้องต้น

Search

Read the Text Version

การเขยี นโปรแกรม เบื้องต้น สาหรับนักเรียนชน้ั มัธยมศกึ ษาปีที่ 2 วิชา การออกแบบและเทคโนโลยี จดั ทาโดย นายยรุ นันท์ ศรีสรุ ะ ขอ้ มลู จากเวบ็ ไซต์ http://www.nrw.ac.thl

เอกสารฉบบั นีจ้ ดั ทาขีน้ เพือ่ ใหน้ ักเรียนไดศ้ ึกษาข้อมูลเกี่ยวกับการเขยี น โปรแกรมเบื้องต้น โดยได้จัดทาเนื้อหา 3 หวั ขอ้ ท่จี าเปน็ ประกอบไปดว้ ย 2 1. ผังงาน (Flowchart) 6 2. สัญลกั ษณท์ ใ่ี ชใ้ นการเขียนผงั งาน 9 3. หลกั เกณฑใ์ นการเขยี นโครงสรา้ งของผังงาน 1

ผังงาน (Flowchart) ความหมายของผังงาน ผังงาน (Flowchart) คอื รูปภาพ (Image) หรอื สัญลักษณ(์ Symbol) ที่ใช้เขียนแทนขน้ั ตอน คาอธบิ าย ขอ้ ความ หรอื คาพดู ท่ีใชใ้ นอัลกอรทิ มึ (Algorithm) เพราะการนาเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหวา่ งผู้เกย่ี วขอ้ ง ด้วยคาพูด หรือข้อความทาได้ยากกวา่ ผงั งานแบง่ ได้ 2 ประเภท 1. ผังงานระบบ (System Flowchart) คอื ผังงานทีแ่ สดงขนั้ ตอนการทางานในระบบอย่างกวา้ ง ๆ แต่ไมเ่ จาะ ลงในระบบงานย่อย 2. ผังงานโปรแกรม (Program Flowchart) คือ ผังงานที่แสดงถงึ ขน้ั ตอนในการทางานของโปรแกรม ตง้ั แต่รบั ข้อมูล คานวณ จนถึงแสดงผลลัพธ์ ประโยชน์ของผังงาน 1. ทาให้เขา้ ใจ และแยกแยะปัญหาได้ง่าย (Problem Define) 2. แสดงลาดบั การทางาน (Step Flowing) 3. หาข้อผดิ พลาดไดง้ ่าย (Easy to Debug) 4. ทาความเขา้ ใจโปรแกรมได้ง่าย (Easy to Read) 5. ไมข่ ้ึนกบั ภาษาใดภาษาหน่ึง (Flexible Language) 2

โครงสรา้ ง การเขยี นโปรแกรม (Structure Programming ) ประกอบด้วยหลกั การ 3 คอื 1. การทางานแบบตามลาดับ(Sequence) : รปู แบบการเขยี นโปรแกรมท่ีงา่ ยท่สี ุดคือ เขียนให้ทางานจากบน ลงล่าง เขยี นคาสง่ั เปน็ บรรทัด และทาทลี ะบรรทัดจากบรรทดั บนสดุ ลงไปจนถึงบรรทัดล่างสดุ สมมตใิ ห้มีการ ทางาน 3 กระบวนการคือ อ่านขอ้ มูล คานวณ และพิมพ์ 2. การเลือกกระทาตามเงื่อนไข (Decision or Selection) : การตดั สนิ ใจ หรอื เลือกเงอ่ื นไขคือ เขยี น โปรแกรมเพ่ือนาค่าไปเลือกกระทา โดยปกติจะมีเหตุการณ์ใหท้ า 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทา กระบวนการหนึ่ง และเป็นเท็จจะกระทาอีกกระบวนการหน่งึ แต่ถ้าซับซ้อนมากขึ้น จะต้องใชเ้ งื่อนไขหลายชน้ั เช่นการตัดเกรดนักศึกษา เป็นตน้ ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอยา่ งงา่ ย เพื่อกระทากระบวนการ เพยี งกระบวนการเดยี ว 3

3. การทาซ้า (Repetition or Loop) : การทากระบวนการหนึ่งหลายครั้ง โดยมเี งื่อนไขในการควบคุม หมายถึงการทาซา้ เป็นหลักการที่ทาความเขา้ ใจได้ยากกว่า 2 รปู แบบแรก เพราะการเขียนโปรแกรมแต่ละ ภาษา จะไม่แสดงภาพอยา่ งชัดเจนเหมอื นการเขียนผังงาน ผเู้ ขียนโปรแกรมต้องจินตนาการดว้ ยตนเอง โจทยท์ ่ี 1 - พมิ พ์เลข 0 ถงึ 4 ทางจอภาพ ตัวอย่างผังงาน 4

โจทย์ท่ี 2 - รบั คา่ จากแปน้ พมิ พเ์ ก็บลงตัวแปรอาร์เรย์ 5 ตวั - แล้วทาซ้าอีกครั้ง เพื่อหาค่าสูงสุด อัลกอริทึม 1. กาหนดค่าเร่ิมตน้ ให้ max, i และ ar 2. ทาซา้ เพ่ือรบั ค่าเก็บใน ar ใหค้ รบ 5 ครัง้ 3. กาหนดคา่ เริม่ ต้นให้ i อกี ครงั้ 4. ทาซา้ เพ่ือนาคา่ ทเ่ี กบ็ ไวใ้ น ar มาหาคา่ max 5. พมิ พ์ค่าสงู สดุ ทหี่ าได้ ตัวอยา่ งผงั งาน 5

สัญลักษณ์ทีใ่ ชใ้ นการเขียนผังงาน สัญลักษณแ์ ละความหมาย สญั ลกั ษณ์ ความหมาย การประมวลผล (Process) ใชใ้ นการประมวลผลทกุ ชนิด การตัดสิน (Decision) ใชแ้ สดงถึงการตดั สนิ เงื่อนไขว่าเป็นอยา่ งไร อาจใชแ้ สดงการทางานของสวิทชไ์ ด้ การเตรยี ม (Preparation) ใช้ในการกาหนดค่าเรมิ่ ต้นของการทางาน การเซ็ทคา่ ต่าง ๆ การประมวลผลทกี่ าหนดไวก้ ่อน (Predefined process) ใช้แทนการที่ถกู กาหนดไวแ้ ลว้ ณ.จดุ ใดจุดหนงึ่ ในโปรแกรม เชน่ โปรแกรมย่อยเป็นต้น หรอื อาจแสดงถึงกระบวนการประมวลผลชดุ ใด ๆ ท่ีประกอบขน้ึ จากคาส่งั จานวนหนึง่ การควบคุมด้วยมือ (Manual Operation) เป็นการแสดงถึงการควบคุมการทางานด้วยมนุษย์เขา้ ด้วย บางครงั้ เราเรียกว่าเปน็ การ ประมวลผลแบบออฟไลน์ (OFF-LINE processing) การทางานชว่ ย (Auxiliary operation) แสดงถงึ การทางานแบบออฟไลนข์ องอปุ กรณ์ทีไ่ มไ่ ด้ถูกควบคุมจากหน่วยประมวลผลกลาง โดยตรง การรวม (Merge) แสดงถึงการนาเอาเซ็ทของการบันทกึ ตั้งแต่ 2 ชดุ ข้นึ ไปมารวมกนั เปน็ ชุดเดยี ว การแยก (Extract) แสดงการแยกชุดของบนั ทึกท่ีเกิดจากการรวมหลาย ๆ ชดุ ออกเปน็ ชดุ ท่ตี ้องการ การเรยี ง (Collate) แสดงการแยกชุดของบันทึกที่เกดิ จากการรวมมาจากหลายชดุ ออกมาเปน็ ชดุ ของบนั ทึก จานวนที่ต้องการ 6

การคัดเลือก (Sort) เปน็ การคดั เลือกบันทึกภายในเซท็ ออกมาเรียงลาดบั ตามที่กาหนดไว้ การป้อนอินพุทดว้ ยมือ (Manual Input) เปน็ การควบคุมการป้อนอนิ พุทด้วยการใชม้ นุษยช์ ว่ ยอาจจะเปน็ การกดสวิทชข์ องเครื่อง แสดงถึงการปอ้ นอินพุทในขณะท่ีเครื่องกาลังประมวลผลอยู่ อนิ พุท/เอาท์พุท (Input/output) แสดงถงึ การป้อนข่าวสารทีป่ ระมวลผลได้เขา้ ไป หรือการแสดงขา่ วสารที่เกดิ จากการ ประมวลผลออกมา การเกบ็ แบบออนไลน์ (On-line Storage) แสดงถงึ การใช้อปุ กรณค์ วามจาแบบออนไลน์ในการอนิ พทุ /เอาท์พุท เช่น อุปกรณป์ ระเภท เทปแม่เหล็ก (Magnetic Tape) ครมั แมเ่ หล็ก (Magnetic Drum) หรือจานแมเ่ หลก็ (Magnetic Disk) เปน็ ตน้ การใชอ้ ปุ กรณ์ความจาแบบออฟไลน์ (Off-line Storage) แสดงการเก็บขา่ วสารในอุปกรณค์ วามจาแบบออฟไลนใ์ ด ๆ เอกสาร (Document) แสดงถงึ การอนิ พทุ /เอาท์พทุ ข้อมลู ประเภทเอกสารได้ ชดุ เอกสาร (Multidocument) แสดงถึงชุดข้อมลู ประเภทเอกสาร การ์ดกระดาษ (Purched card) แสดงถึงการอินพุท/เอาท์พุทด้วยการด์ กระดาษ แฟม้ ของการ์ด (File of Cards) แสดงถึงเซ็ทของบันทึกทีม่ ีการ์ดกระดาษจานวนหน่ึงท่สี ัมพันธ์กนั เทปกระดาษ (Punchcd) แสดงถงึ การอนิ พทุ /เอาท์พุทดว้ ยเทปกระดาษ เทปแม่เหลก็ (Magnetic Tape) แสดงถงึ การการอินพุท/เอาท์พุทด้วยเทปแมเ่ หล็ก ดรมั แมเ่ หลก็ (Magnetic Drum) แสดงถงึ การอินพทุ /เอาท์พุทดว้ ยดรมั แม่เหลก็ จานแมเ่ หล็ก (Magnetic Disk) แสดงถึงการอินพุท/เอาท์พทุ ด้วยจานแมเ่ หล็ก 7

แกน (Core) แสดงถึงการอนิ พุท/เอาท์พุทด้วย core การแสดงผล (Display) การแสดงขา่ วสารให้ทราบในขณะประมวลผล อาจผ่านทางอุปกรณ์ใด ๆ เชน่ อุปกรณ์ จอภาพ หลอดไฟ เครื่องวาดภาพ เสน้ แสดงการไหล (Flow line) แสดงการเชื่อมต่อระหว่างสัญลกั ษณ์โฟล์ชารด์ 2 สัญลักษณ์ การทางานแบบขนาน (Parallel Mode) แสดงการเริ่มหรือส้ินสุดของการทางานต้ังแต่ 2 ชนิดทเ่ี กิดขึ้นพร้อมกัน การติดต่อทางสาย (Communication link) แสดงถึงการสง่ ขา่ วสารไปตามสายสื่อสาร คอนเนคเตอร์ (Connector) แสดงการอินพุท / เอาท์พทุ ของโฟลวช์ าร์ตทท่ี ม่ี าจาก / ออกไปยงั จุดอ่ืน ๆ จดุ ปลาย (Terminal) แสดงการ เรม่ิ ต้น การจบ การหยุด ของโฟลวช์ ารต์ หมายเหตุ (Comment) แสดงถึงคาอธบิ ายเหตุตา่ ง ๆ เพ่ือใหเ้ ขา้ ใจง่ายข้ึน 8

หลักเกณฑ์ในการเขยี นโครงสร้างของผงั งาน ในการเขียนโปรแกรมคอมพวิ เตอร์ เ้ ขียนโปรแกรมจะต้องเข้าใจหลกั เกณฑ์ของภาษาโปรแกรม และระบบการ ทางานของคอมพวิ เตอร์ วา่ มีโครงสร้างและวธิ ีการใช้คาสัง่ อยา่ งไร ซึง่ ในการเขียนโปรแกรมคอมพวิ เตอร์ มี หลกั เกณฑก์ ารเขยี นโปรแกรม ประกอบดว้ ย 5 ขน้ั ตอนดงั นี้คอื o ทาความเข้าใจและวิเคราะหป์ ัญหา o กาหนดแผนในการแก้ปัญหา o เขียนโปรแกรมตามแผนท่ีกาหนด o ทดสอบและตรวจสอบความถูกต้องของโปรแกรม o นาโปรแกรมท่ีผ่านการทดสอบไปใช้งาน ทาความเขา้ ใจและวเิ คราะห์ปญั หา ผู้เขยี นโปรแกรมจะตอ้ งทาความเข้าใจและทาการวิเคราะห์ปัญหาเปนํ ลาดับแรก เพราะการทาความ เขา้ ใจและวเิ คราะห์ปัญหาเป็นส่งิ ทสี่ าคญั โดยท่ีผู้เขียนโปรแกรมจะตอ้ ง วิเคราะห์ปัญหารว่ มกับนกั วิเคราะห์ระบบว่าโจทย์ต้องการผลลพั ธ์อะไร และการใหไ้ ด้มาซ่ึงผลลพั ธน์ ้นั ตอ้ ง ปอ้ นข้อมลู อะไรบ้าง และเม่ือปอ้ นข้อมูลเข้าไปแล้ว จะทาการประมวลผลอยา่ งไร สงิ่ หล่านี้ผ้เู ขียนโปรแกรมจะต้องทาความเขา้ ใจให้ถูกตอ้ ง เพราะถา้ ผู้เขยี น โปรแกรมวเิ คราะห์ปัญหาไม่ถูกต้อง ผลลัพธ์ท่ีได้ออกมากอ็ าจจะไมต่ รงกบั ความตอ้ งการของโจทย์ได้ กาหนดแผนในการแกป้ ญั หา หลงั จากทาความเข้าใจและวเิ คราะห์ปญั หาโจทย์จนได้ข้อสรปวุ ่าโจทยต์ ้องการอะไรแล้ว ผู้เขียนโปรแกรมกจ็ ะทาการกาหนดแผนในการแกไ้ ขปญั หาโดยการเขยี นผงั งาน (Flowchart) ซึง่ การเขยี นผัง งานคือการเขยี นแผนภาพทีเ่ ป็นลาดบั เพอ่ื แสดงขัน้ ตอนการทางาน ของโปรแกรมเพื่อให้ง่ายตอ่ การทาความ เข้าใจ การเขียนผงั งานมี 3 แบบคอื แบบเรยี งลาดับ(Sequential) แบบมกี ารกาหนดเงอ่ื นไข(Condition) และ แบบมีการทางานวนรอบ(Looping) ซึง่ สัญลักษณ์ของผงั งาน(Flowchart Symbol) มดี ังนี้คือ 9

สญั ลักษณ์ ความหมาย เริม่ ต้นทางาน กาหนดคา่ หรือ ประมวลผล รบั ข้อมูลและ แสดงผลข้อมลู รับข้อมลู ทาง แปน้ พิมพ์ การตัดสินใจ ใช้แสดงผลข้อมูล ทางจอภาพ ใชแ้ สดงผลข้อมลู ออกทางเอกสาร ทิศทางการ ดาเนินงาน ตัวเช่อื มต่อภายใน หน้าเดียวกัน ตัวเชอ่ื มต่อไปหนา้ อ่ืน รูปแสดงสญั ลักษณท์ ีใ่ ชใ้ นการเขียนผงั งาน 10

1. ตวั อย่าง การบวกเลข 2 จานวน อธบิ ายผังความคิดการบวกเลข 2 จานวน • Start เรม่ิ ตน้ การทางาน • x=5 และ y=3 กาหนดค่าใหต้ ัวแปร x มคี ่าเท่ากบั 5 ตัวแปร y มีค่าเทา่ กบั 3 • z=x+y เมือ่ x+y ไดค้ ่าเท่าไรใหน้ าไปเก็บไวย้ งั ตวั แปร z • แสดงคา่ ท่เี กบ็ ไว้ในตัวแปร z • Stop จบการทางาน ตัวอยา่ ง การเขยี นผงั งานแบบเรยี งลาดบั 11

--------------------------------------------------------------------------------------------------------------------- ตวั อย่าง การเขยี นผังงานแบบมกี ารกาหนดเงื่อนไขโดยรบั ค่าความสูง 1-150 ซม. แสดงว่า เตย้ี แต่ถา้ เกนิ แสดงวา่ สงู อธบิ ายผงั ความคิดรับคา่ อายุ • Start เรมิ่ ตน้ การทางาน • รบั ค่าความสงู มาเกบ็ ไว้ในตวั แปร tall • ตรวจสอบเง่ือนไขวา่ ความสงู ุอยใู่ นช่วง 1 ถึง 150 ซม. หรือไม่ • ถ้าใช่แสดงข้อความ You are short ถา้ ไมใ่ ชใ่ ห้พิมพ์ You are tall • Stop จบการทางาน ตวั อยา่ ง การเขียนผังงานแบบมีการกาหนดเง่ือนไข 12

เขยี นโปรแกรมตามแผนทกี่ าหนด เมื่อผ้เู ขยี นโปรแกรมเขยี นผังงานเสรจ็ เรยี บรอ้ ยแลว้ ขัน้ ตอนต่อไปคอื การเขยี นโปรแกรมตามผงั งาน ที่ ไดก้ าหนดเอาไว้ ในกรณีทเี่ ขยี นดว้ ยภาษาซกี ารเขยี นโปรแกรมกต็ ้องเปน็ ไปตามกฎเกณฑ์และโครงสร้างของ ภาษาซี เท่านน้ั ทดสอบและตรวจสอบความถกู ตอ้ ง หลังจากขียนโปรแกรมเสรจ็ แลว้ ให้ทดลองคอมไพลโ์ ปรแกรมวา่ มจี ดุ ผิดพลาดทใ่ี ดบา้ ง ในภาษาซีการ คอมไพล์ โปรแกรมจะใชว้ ิธีการกดปมุ่ Alt + F9 ในกรณที ี่ มีข้อผดิ พลาด จะแสดงในช่องด้านลา่ งของหน้าจอ เอดิเตอร์ ในส่วนของกรอบ message ให้อ่านทาความเข้าใจ และแก้ไขตามทโ่ี ปรแกรมแจ้งข้อมูลผิดพลาด เมื่อ เสรจ็ แล้วใหท้ ดลองรันโปรแกรม นาโปรแกรมทีผ่ า่ นการทดสอบไปใชง้ าน ถา้ หากรนั โปรแกรมแล้วใช้งานได้แสดงว่าจะไดไ้ ฟล์ท่ีมีส่วนขยายเป็น EXE เพื่อนาไปทดสอบ้งานในท่ี ต่างๆ และถ้านาไปใชง้ านแลว้ มีปัญหากใ็ ห้ทาการแก้ไขโปรแกรมอีกคร้ัง แต่ถา้ รันโปรแกรมแล้วไม่มปี ัญหาใดๆ แสดงว่าโปรแกรมน้ีใชง้ านไดอ้ ยา่ งสมบูรณ์ จากนั้นผเู้ ขียนโปรแกรม ก็ต้องจดั ทาคู่มือประกอบการใชง้ านและ นาไปเผยแพร่ต่อไป อา้ งอิง ขอขอบคุณข้อมลู จากเว็บไซต์ http://www.nrw.ac.th บทเรียนคอมพิวเตอรอ์ อนไลน์ รปู ภาพจากเว็บไซต์ https://it.cleanpng.com 13

การเขยี นโปรแกรมเบื้องตน้ 14


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook