บทท่ี 1 หลกั การเขยี นโปรแกรมเบอื้ งต้น อลั กอรทิ มึ (Algorithm)
ขน้ั ตอนการเขียนโปรแกรม การเขียนโปรแกรมท่ีดี จาเป็นต้องมีแบบแผนและสามารถ ถา่ ยทอดกันได้ ซงึ่ ประกอบดว้ ย 5 ข้ันตอนหลัก ดงั นี้ o การวเิ คราะหป์ ัญหา การวิเคราะห์ปัญหา o การออกแบบโปรแกรม การออกแบบโปรแกรม o การเขยี นโปรแกรม การเขยี นโปรแกรม o การทดสอบโปรแกรม การทดสอบโปรแกรม o การจดั ทาเอกสารประกอบโปรแกรม การจัดทาเอกสารประกอบโปรแกรม
การวิเคราะหป์ ัญหา • จาเปน็ ตอ้ งอ่านโจทย์อย่างระมัดระวัง เพอ่ื ให้เขา้ ใจถึงความตอ้ งการที่แท้จรงิ • หากตีความโจทย์ผิดพลาด จะส่งผลกระทบต่อเน่ืองเป็นทอดๆ ทาให้ โปรแกรมท่เี ขียนขึน้ ไมต่ รงกบั ความต้องการในท่ีสุด ทาให้สูญเสียงบประมาณ ตามมา • ขน้ั ตอนการวเิ คราะหป์ ญั หา แบ่งเป็น 4 สว่ นหลกั ดังน้ี o ส่วนนาขอ้ มูลเขา้ (Input) o ส่วนการประมวลผล (Processing) o ส่วนผลลัพธ์ (Output) o การกาหนดตวั แปร (Variable)
การออกแบบโปรแกรม เคร่อื งมอื ที่นามาใชใ้ นการออกแบบโปรแกรม เช่น • อัลกอริทึม (Algorithms) เป็นขั้นตอนที่ใช้อธิบายลาดับการทางานของ โปรแกรม โดยเป็นประโยคภาษาอังกฤษที่มีความคล้ายกับชุดคาส่ัง คอมพวิ เตอร์ • ผงั งาน (Flowchart) ประกอบด้วยสญั ลกั ษณท์ ี่ใช้แทนความหมายต่างๆ ว่า การประมวลผลมีลาดับข้ันตอนใดบ้าง แต่มีข้อจากัดคือ ยังมีรายละเอียดไม่ เพียงพอ • ซูโดโค้ด (Pseudo Code) มีรูปแบบเป็นโครงสร้างภาษาอังกฤษท่ี คล้ายคลงึ กบั ภาษาคอมพวิ เตอรร์ ะดับสงู
การออกแบบโปรแกรม • ข้นั ตอนการออกแบบโปรแกรมประกอบด้วย o กาหนดขั้นตอนการประมวลผลส่วนหลกั ๆ o การทางานของส่วนงานย่อย o การออกแบบสว่ นประสานการทางานระหวา่ งผูใ้ ช้ (User Interface) o โครงสร้างควบคุมการทางาน เช่น การทางานซ้า หรือการตรวจสอบ เงื่อนไข o ตัวแปร และโครงสรา้ งของเรคคอร์ด o ตรรกะโปรแกรม (Logic)
การเขยี นโปรแกรม • การนาอัลกอริทึมมาเขียนเป็นชุดคาสั่งด้วยภาษาคอมพิวเตอร์ โดยการเขียน โปรแกรมสามารถเลือกใช้ภาษาคอมพิวเตอร์ระดับสูงตามความเหมาะสม เช่น Pascal, C, C++ เป็นต้น
การทดสอบโปรแกรม • การทดสอบโปรแกรม หรือการดีบ๊ักโปรแกรม (Debugging) คือ การนา โปรแกรมมาแปลโดยตัวแปรภาษาคอมพิวเตอร์ (อาจเป็นตัวแปรชนิด คอมไพเลอร์ หรอื อนิ เตอร์พรีเตอรก์ ไ็ ด้) • คอมไพเลอร์ (Complier) จะทาการแปลท้ังโปรแกรม หากโปรแกรมมี ข้อผิดพลาด ต้องแก้ไขให้ถูกต้องก่อน แล้วแปลใหม่จนไม่พบข้อผิดพลาด โปรแกรมจึงจะสามารถใชง้ านได้ เชน่ C, C++, Pascal • อินเตอร์พรีเตอร์ (Interpreter) จะแปลชุดคาสั่งที่ละคาสั่งในแต่ละบรรทัด โดยโปรแกรมยังสามารถทางานต่อไปได้ ถึงจะมีข้อผิดพลาดในโปรแกรม ตราบ ใดท่ีตัวแปรภาษายังไม่ผ่านการแปลในบรรทัดท่ีเขียนชุดคาส่ังผิด เช่น Java, Perl, Python
การทดสอบโปรแกรม • การทดสอบด้วยการแปลรหัสชุดคาสั่ง เป็นการตรวจสอบข้อผิดพลาดของ ชุดคาส่ัง (Syntax Error) เช่น กรณีพิมพ์คาสั่งผิด พิมพ์คาส่ัง printf ผดิ เปน็ print ซง่ึ ตวั แปลภาษาไม่รจู้ กั กจ็ ะแสดงขอ้ ผดิ พลาดออกมา • แต่ถ้าผลลัพธ์ของโปรแกรมผิดพลาดจากการใช้สูตรคานวณท่ีผิด (Logic Error) เชน่ การตั้งสูตรผิด ซ่ึงไม่เป็นข้อผิดพลาดจากชุดคาส่ัง ตัวแปรภาษา ก็จะไมร่ ู้เลยว่า สูตรทีเ่ ขยี นข้ึนมา ผดิ หรอื ถกู • ดังนัน้ ในการทดสอบโปรแกรม ต้องทดสอบท้ังรปู แบบของชุดคาส่ัง และผลลัพธ์ ทรี่ นั ว่าถูกตอ้ งหรือไม่ และจาเป็นต้องทดสอบหลายๆ คร้ัง ด้วยการป้อนข้อมูล ทดสอบในหลายๆ กรณี
การจดั ทาเอกสารประกอบโปรแกรม • อาจจัดทาขึ้นตั้งแต่ข้ันตอนการกาหนดปัญหา จนถึงขั้นตอนสุดท้าย คือ การ ทดสอบโปรแกรม โดยเอกสารเหล่านี้จะนามาใช้สาหรับอ้างอิงถึงข้อผิดพลาดที่ เกิดขึ้น วิธีการแก้ไขข้อผิดพลาด รวมถึงการนาไปใช้ เพ่ือปรับปรุงโปรแกรมใน อนาคต • เอกสารสาหรับผูใ้ ช้โปรแกรม (User Documentation) จะเน้นการอธิบาย การใชง้ านโปรแกรมเป็นหลกั • เอกสารสาหรับผู้เขียนโปรแกรม (Technical Documentation) จะ อธิบายชอื่ ของโปรแกรมย่อย และการทางานของแตล่ ะโปรแกรมย่อย
รูปแบบของการเขยี นโปรแกรม โปรแกรมท่ีมีคุณภาพ ไม่ได้พิจารณาเพียงผลลัพธ์ท่ีถูกต้องเท่านั้น แต่ยังต้อง งา่ ยตอ่ การอา่ น และง่ายตอ่ การปรบั ปรุงในอนาคตดว้ ย รปู แบบในการเขียนโปรแกรม สามารถแบง่ ออกเปน็ 2 รปู แบบ คือ 1. การเขยี นโปรแกรมเชิงโครงสรา้ ง (Structured Programming) 2. การเขียนโปรแกรมเชิงวตั ถุ (Object-Oriented Programming)
การเขยี นโปรแกรมเชงิ โครงสร้าง • การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) ประกอบด้วยโครงสร้างควบคมุ การทางานหลกั 3 ส่วน คอื 1. ชดุ คาสงั่ ภายในโปรแกรม จะเปน็ ลาดบั ขน้ั ตอน (Sequence) ประกอบดว้ ยคาสัง่ อย่างงา่ ย ไม่มเี งอ่ื นไข ไมม่ ีการตดั สินใจ มที างเข้าทางเดียว และมีทางออกทาง เดียว ดาเนนิ การแบบเรียงลาดับตอ่ เนือ่ ง โดยแต่ละขั้นตอนมีการดาเนนิ งานเพียงครั้งเดยี ว 2. มีทางเลอื กในการตัดสินใจทางใดทางหน่ึง (Decision) เป็นโครงสร้างที่มีเงื่อนไข และมีการตรวจสอบค่าตัวแปรแล้วประมวลผลตามเง่ือนไขที่กาหนด ตรรกะค่าจริงหรือเทจ็ แล้วดาเนนิ งานตามคาสงั่ ทเี่ ปน็ ไปตามเงือ่ นไขทีก่ าหนด 3. มีชุดคาส่งั เพ่ือการทาซ้า (Repetition) เป็นการทางานในลักษณะวนซ้าหลายๆ รอบ (Loop) โดยจะหลุดออกจากเง่ือนไขก็ต่อเมื่อ เงื่อนไขตรงตามที่กาหนดไว้
การเขยี นโปรแกรมเชงิ โครงสรา้ ง ก. ลาดบั ขน้ั ตอน ข. ตัดสนิ ใจทางเลอื ก ค. ลปู ทาซา้
การเขยี นโปรแกรมแบบบนลงลา่ ง • การเขียนโปรแกรมแบบบนลงล่าง (Top-Down Programming) จะนา โปรแกรมมาแบ่งส่วนเปน็ โมดูลย่อยๆ เพ่อื ลดความซับซอ้ น • ภายในโปรแกรมประกอบด้วยหลายๆ โมดูลที่ทางานร่วมกัน เพ่ือแก้ไขปัญหา ซึง่ ชว่ ยใหง้ า่ ยต่อการอา่ นและง่ายต่อการแก้ไขโปรแกรม
การเขยี นโปรแกรมเชงิ วตั ถุ • การเขียนโปรแกรมเชิงวัตถุ จะมองวัตถุหน่ึงๆ เป็นแหล่งรวมของข้อมูลและ กระบวนการเข้าไว้ด้วยกนั โดยมี • คลาส (Class) เปน็ ตวั กาหนดคุณสมบตั ขิ องวัตถุ • คลาสสามารถสืบทอดคุณสมบัติ (Inheritance) ไปยังคลาสย่อย (Subclass) ตา่ งๆ ได้ • เกิดการนามาใช้ใหม่ (Reusable) ทาใหล้ ดขน้ั ตอนการพัฒนาโปรแกรมลง
เทคนิคการออกแบบโปรแกรมเชงิ โครงสร้าง จุดประสงค์หลักในการออกแบบโปรแกรม ประกอบด้วย • เพื่อสรา้ งโปรแกรมใหม้ ีคณุ ภาพ และทานายได้วา่ จะเกดิ อะไรขึน้ ในโปรแกรม • เพอื่ สรา้ งโปรแกรมที่งา่ ยต่อการปรับปรุงและแกไ้ ข • เพ่อื ให้ขน้ั ตอนการพัฒนาโปรแกรมมีระบบระเบยี บยิ่งขนึ้ • เพื่อใหก้ ารพฒั นาระบบมีความรวดเร็ว และประหยดั ตน้ ทุน
แนวทางในการประยกุ ตใ์ ชง้ าน • แตกปัญหาที่ซบั ซอ้ นให้ง่ายลง ดว้ ยการแตกโปรแกรมออกเป็นโมดลู ยอ่ ย • ออกแบบโปรแกรมให้ง่าย และหากมีการส่งผ่านข้อมูลระหว่างโมดูล จะต้อง กาหนดการสง่ ผ่านขอ้ มูลระหว่างโมดลู ใหช้ ัดเจน • สามารถควบคุมความซบั ซอ้ นของโปรแกรมได้ • เขยี นผงั งานใหเ้ ขา้ ใจงา่ ย • ปรับปรุงโปรแกรมใหอ้ า่ นง่าย • สื่อสารกบั ผ้ใู ชง้ านเพื่อให้ได้ความตอ้ งการที่แทจ้ รงิ • ใช้โครงสร้างท่คี วบคุมง่าย เช่น การควบคุมลปู หรือการตรวจสอบเงอ่ื นไข • ช่วยลดข้อผิดพลาดภายในโปรแกรม • สามารถนาโปรแกรมกลบั มาใชง้ านได้
อัลกอรทิ ึม (Algorithms) • ส่ิงสาคญั ของการเขียนโปรแกรม ไม่ใช่การลงมือเขียนโปรแกรมโดยทันที เพราะ อาจสง่ ผลให้ได้โปรแกรมท่ีมโี ครงสร้างทไี่ มด่ ี • อัลกอริทึม หมายถึง ข้ันตอนวิธีที่จะอธิบายว่า งานน้ันทาอย่างไร โดยจะ ประกอบไปด้วยกระบวนการทางานเป็นลาดับข้ันตอนที่ชัดเจน และมีการ รับประกันว่า เม่ือได้ปฏิบัติถูกต้องตามขั้นตอนจนครบแล้ว จะต้องได้ผลลัพธ์ที่ ถกู ต้องตามความต้องการ • ขั้นตอนการทางานของอัลกอริทึม อาจมีความแตกต่างกันได้ แต่จะได้ผลลัพธ์ เช่นเดียวกัน ทั้งนีข้ ึน้ อยู่กบั ความเหมาะสม
คุณสมบตั ขิ องอลั กอริทมึ • เป็นกระบวนการท่ีสรา้ งขึ้นจากกฎเกณฑ์ กฎเกณฑ์ในการสร้างกระบวนการ อาจอยู่ในรูปแบบของประโยคภาษาอังกฤษ สัญลักษณ์ หรือซูโดโค้ด ทีม่ คี วามเป็นสากล • กฎเกณฑท์ ่สี ร้างอัลกอรทิ มึ ตอ้ งไมค่ ลมุ เครอื ต้องเป็นกฎเกณฑ์ที่อ่านแล้วเข้าใจตรงกัน ควรหลีกเลี่ยงคาที่ก่อให้เกิดความเข้าใจได้หลาย ความหมาย • การประมวลผลตอ้ งเปน็ ลาดบั ขั้นตอน คาส่งั ตา่ งๆ จะตอ้ งประมวลผลเป็นลาดบั ตามขัน้ ตอนทแี่ น่นอน • กระบวนการตอ้ งใหผ้ ลลัพธต์ ามที่กาหนดในปญั หา กล่มุ ข้นั ตอนตา่ งๆ เมื่อดาเนินการแลว้ ต้องมผี ลลัพธ์ตรงตามท่กี าหนดในปัญหานน้ั ๆ • อัลกอริทึมต้องมีจุดสนิ้ สุด เนอ่ื งจาก คอมพิวเตอร์ไมส่ ามารถประมวลผลแบบไม่สิ้นสุดได้
ประสิทธภิ าพของอลั กอรทิ ึม • อัลกอรทิ มึ ท่ดี ีต้องใชเ้ วลาในการดาเนนิ การนอ้ ยที่สดุ ควรมขี นั้ ตอนต่างๆ เทา่ ที่จาเปน็ • อลั กอรทิ มึ ทีด่ ีต้องใชห้ น่วยความจานอ้ ยท่ีสดุ ภายในหนว่ ยความจาควรจะมีขอ้ มลู ทจี่ าเป็นตอ่ การดาเนนิ งานในขณะน้นั • อลั กอรทิ ึมทดี่ ีตอ้ งมีความยดื หยนุ่ ควรออกแบบให้สามารถปรบั ปรุงการใช้งานไดง้ ่าย • อลั กอรทิ ึมที่ดตี ้องใชเ้ วลาในการพฒั นานอ้ ยท่ีสดุ ควรใชเ้ วลาในการพัฒนาอัลกอริทึมให้เหมาะสมกบั เวลา • อัลกอรทิ มึ ที่ดตี ้องงา่ ยตอ่ การทาความเข้าใจ จะต้องออกแบบด้วยการใช้ประโยคคาสั่งที่เป็นมาตรฐาน เมื่ออ่านแล้วต้องตีความหมายที่เข้าใจ ตรงกัน ไมส่ บั สน
ตวั อย่างของอลั กอรทิ มึ • ตัวอยา่ งอลั กอริทมึ การตม้ บะหมส่ี าเรจ็ รปู o เทนา้ สะอาดใส่หม้อ และตม้ จนเดือด o ฉีกซอง และนาบะหม่ีก่ึงสาเร็จรปู ใส่ลงในชาม o ฉีกและเทเคร่ืองปรุงลงในชาม o นานา้ ทตี่ ้มเดือดเทลงในชาม o ปดิ ฝา o รอประมาณ 3 นาที
ใบงานครง้ั ที่ 1 อลั กอรทิ มึ
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ดว้ ยโครงสรา้ งควบคมุ แบบเรยี งลาดบั โครงสร้างควบคุมแบบเรียงลาดบั เป็นโครงสร้างควบคุมรูปแบบ ทงี่ ่ายท่สี ดุ โดยมกี ารกาหนดลาดับกอ่ นหลังของการทางาน เช่น ถ้าคาสั่ง A อยู่ก่อนคาสั่ง B คาสั่ง A จะต้องถูกทางาน ก่อน
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ดว้ ยโครงสรา้ งควบคมุ แบบเรยี งลาดบั • กรณีการป้อนข้อมูลเปน็ ปี ค.ศ. แลว้ ตอ้ งการให้โปรแกรมแสดงผลเป็น ปี พ.ศ. 1. การวเิ คราะหป์ ัญหา o ปญั หา คือ การแปลงปี ค.ศ. เปน็ ปี พ.ศ. o สว่ นนาขอ้ มลู เขา้ คอื ตัวเลขจานวนเต็ม 4 ตัว แทนปี ค.ศ. o ส่วนผลลัพธ์ คือ ตวั เลขจานวนเต็ม 4 ตวั แทนปี พ.ศ. o การกาหนดตวั แปร กาหนดให้ thai_year เปน็ ตวั เลข แทนปี พ.ศ. english_year เปน็ ตวั เลข แทนปี ค.ศ. o สว่ นการประมวลผล คือ ปี พ.ศ. = ปี ค.ศ. + 543 thai_year = english_year + 543
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเรยี งลาดบั 2. การออกแบบโปรแกรมด้วยอัลกอรทิ ึม Algorithm การแปลงปี ค.ศ. เปน็ ปี พ.ศ. ขัน้ ที่ 1 ทาการรับค่าปี ค.ศ. ท่ปี ้อน ขน้ั ที่ 2 แปลงปี ค.ศ. เปน็ ปี พ.ศ. โดยนาข้อมลู ปี ค.ศ. ทป่ี อ้ นเขา้ มา บวกกบั 543 ขน้ั ท่ี 3 แสดงผลลัพธท์ ีไ่ ดเ้ ป็นปี พ.ศ.
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเรยี งลาดบั • การหาค่าเฉลี่ยของตัวเลขจานวน 3 ตัว โดยให้แสดงผลเปน็ จดุ ทศนิยม 2 ตาแหน่ง 1. การวิเคราะหป์ ญั หา o ปญั หา คอื การหาค่าเฉลี่ยของตวั เลข 3 ตวั และแสดงผลเป็นจดุ ทศนยิ ม 2 ตาแหนง่ o ส่วนนาขอ้ มลู เข้า คือ ตวั เลขจานวนเตม็ 3 จานวน o ส่วนผลลพั ธ์ คือ ตัวเลขคา่ เฉลย่ี ทม่ี ที ศนยิ ม 2 ตาแหนง่ o การกาหนดตวั แปร กาหนดให้ number1 เปน็ ตัวเลข แทนจานวนที่ 1 number2 เปน็ ตวั เลข แทนจานวนที่ 2 number3 เปน็ ตัวเลข แทนจานวนที่ 3 average เป็นตวั เลข แทนคา่ เฉลย่ี o สว่ นการประมวลผล คอื คา่ เฉลี่ย = จานวนท่ี 1 + จานวนที่ 2 + จานวนที่ 3 หารด้วย 3 average = (number1 + number2 + number3)/3
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเรยี งลาดบั 2. การออกแบบโปรแกรมด้วยอลั กอรทิ มึ Algorithm การหาค่าเฉลี่ยของตัวเลข 3 จานวน ขัน้ ท่ี 1 ทาการรับคา่ ตวั เลขจานวนเตม็ 3 จานวน ขั้นท่ี 2 คานวณหาค่าเฉล่ยี โดยนาขอ้ มลู จานวนเต็มทัง้ 3 จานวนท่ี ปอ้ นเขา้ มาบวกกนั แล้วหารด้วย 3 ข้ันท่ี 3 แปลงรูปแบบการแสดงผลของค่าเฉลย่ี ทไ่ี ด้เปน็ ทศนิยม 2 ตาแหนง่ ข้ันท่ี 4 แสดงผลลพั ธท์ ีไ่ ด้
ใบงานครง้ั ที่ 2 การวิเคราะหโ์ จทยแ์ ละออกแบบโปรแกรม ดว้ ยโครงสรา้ งควบคมุ แบบเรยี งลาดบั
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ดว้ ยโครงสรา้ งควบคมุ แบบเลอื กทา โครงสร้างควบคุมแบบเลือกทา เปน็ โครงสร้างท่ีมีเงื่อนไข และมี การตรวจสอบค่าตัวแปร แล้วประมวลผลตามเง่ือนไขที่กาหนดว่าเป็นไป ตามเง่ือนไขหรือไม่ ซ่ึงการตรวจสอบจะเป็นการตรวจสอบทางตรรกะ เพื่อหาค่าจริงหรือเท็จอย่างใดอย่างหน่ึง โดยจะใช้เงื่อนไขของการ ตดั สนิ ใจ สัญลักษณ์ท่ีใช้คือ มากกว่า (>), น้อยกว่า (<), มากกว่า หรือเท่ากับ (>=), น้อยกว่าหรือเท่ากับ (<=), เท่ากับ (=), ไม่ เทา่ กบั (<>) และ Boolean (True หรือ False)
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเลอื กทา ตวั อยา่ งท่ี 1 การรบั ค่าจานวนเตม็ และแสดงผลลัพธ์ว่าเป็นเลขคู่ หรือเลขคี่ 1. การวิเคราะหป์ ัญหา o ปัญหา คอื การคานวณเพอ่ื ตรวจสอบค่าท่รี บั เขา้ มาว่าเป็นเลขคู่ หรือเลขค่ี o สว่ นนาขอ้ มูลเข้า คอื ตวั เลขจานวนเต็ม 1 จานวน o ส่วนผลลพั ธ์ คือ ผลการตรวจสอบเลขจานวนเตม็ ว่าเป็นเลขคู่ หรอื เลขคี่ o การกาหนดตัวแปร กาหนดให้ number เป็นตัวเลขจานวนเต็ม result เป็นผลการตรวจสอบตัวเลข o สว่ นการประมวลผล คือ ถา้ ค่าจานวนเต็ม หารด้วย 2 ได้เศษเทา่ กบั 0 แสดงวา่ เปน็ เลขคู่ ถา้ number mod 2 = 0 result เทา่ กับ เลขคู่ ถา้ คา่ จานวนเตม็ หารดว้ ย 2 ไดเ้ ศษไมเ่ ท่ากับ 0 แสดงว่าเปน็ เลขคี่ ถา้ number mod 2 <> 0 result เท่ากับ เลขคี่
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเลอื กทา 2. การออกแบบโปรแกรมด้วยอลั กอรทิ มึ Algorithm การคานวณเพอื่ ตรวจสอบค่าทรี่ ับเข้ามาวา่ เปน็ เลขค่หู รือเลขค่ี ขน้ั ที่ 1 ทาการรับค่าจานวนเตม็ 1 จานวน ขนั้ ที่ 2 ถ้าค่าจานวนเต็ม หารด้วย 2 แล้วมเี ศษเท่ากบั 0 แสดงวา่ เปน็ เลขคู่ ถา้ ค่าจานวนเต็ม หารดว้ ย 2 แล้วมเี ศษไม่เท่ากับ 0 แสดงวา่ เปน็ เลขคี่ ขน้ั ที่ 3 แสดงผลวา่ เป็นเลขคู่ หรอื เลขค่ี
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเลอื กทา ตวั อย่างท่ี 2 การคดิ ผลการสอบของนักศกึ ษาจากคะแนน โดยกาหนดให้ ถ้ามากกว่าหรือเท่ากับ 50 ถือว่า ผ่าน ถ้าต่ากว่า ถือว่า ไม่ผ่าน 1. การวิเคราะหป์ ญั หา o ปญั หา คอื การคิดผลการสอบของนกั ศึกษาจากคะแนน o สว่ นนาขอ้ มูลเขา้ คือ คะแนนของนกั ศกึ ษา o ส่วนผลลัพธ์ คือ ผลการสอบว่า ผา่ น หรือ ไม่ผ่าน o การกาหนดตัวแปร กาหนดให้ score เปน็ คะแนนของนักศึกษา result เป็นผลการสอบของนกั ศกึ ษา o สว่ นการประมวลผล คือ ถา้ ผลการสอบมากกวา่ หรอื เทา่ กับ 50 แสดงวา่ สอบผา่ น score >= 50 result = ผ่าน ถา้ ผลการสอบตา่ กวา่ 50 แสดงวา่ สอบไม่ผา่ น score < 50 result = ไม่ผา่ น
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเลอื กทา 2. การออกแบบโปรแกรมดว้ ยอัลกอรทิ มึ Algorithm การคดิ ผลการสอบของนักศกึ ษาจากคะแนน ข้ันที่ 1 ทาการรับคา่ คะแนนของนกั ศึกษา ขนั้ ท่ี 2 ตรวจสอบผลการสอบ โดย ถา้ คะแนนทีร่ ับมามีค่ามากกวา่ หรือเท่ากบั 50 แสดงว่า สอบผ่าน ถา้ คะแนนที่รบั มามีค่านอ้ ยกว่า 50 แสดงว่า สอบไมผ่ ่าน ขั้นท่ี 3 แสดงผลการสอบของนักศึกษา
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ดว้ ยโครงสรา้ งควบคมุ แบบวนซา้ โครงสร้างควบคมุ แบบวนซา้ เป็นโครงสรา้ งท่กี าหนดให้มีการวน คาส่งั ชดุ หน่ึงซา้ ๆ ตราบเท่าทเ่ี ง่ือนไขที่ใช้ควบคุมการวนซ้าเป็นเท็จ และ จะออกจากคาส่ังเมื่อเง่ือนไขเป็นจริง เรียกค่าความจริงลักษณะน้ีว่า Boolean (True, False)
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบวนซา้ ตวั อย่างที่ 1 เขียนโปรแกรมเพื่อรับค่าตัวเลข และทาการบวกค่าท่ีรับเข้ามาแบบวนซ้า โดยให้ออกจากโปรแกรม เม่ือผลลัพธ์มีค่ามากกว่า 1,000 และแสดงผลของผลลัพธท์ ี่ได้ 1. การวเิ คราะห์ปัญหา o ปัญหา คือ ทาการรับค่าและบวกค่าที่รับเข้ามาแบบวนซ้า จากน้ันตรวจสอบผลลัพธ์ หากมีค่ามากกว่า 1,000 ให้ แสดงผลลพั ธ์และออกจากโปรแกรม o สว่ นนาขอ้ มลู เขา้ คอื ตวั เลขจานวนเต็ม o ส่วนผลลพั ธ์ คือ ผลลัพธจ์ ากการบวกค่าทีร่ บั เข้ามา o การกาหนดตัวแปร กาหนดให้ number เปน็ จานวนเตม็ แทนคา่ ท่ีผู้ใช้ปอ้ นเขา้ มา total เปน็ จานวนเตม็ แทนผลบวกของค่าท่ีรับเข้ามา o ส่วนการประมวลผล คอื ผลบวกของค่าทรี่ ับเขา้ มา = ผลบวกของค่าที่รับเข้ามาก่อนหน้า + ค่าทรี่ บั เข้ามา total = total + number ถา้ ผลบวกของค่าทีร่ ับเขา้ มา < 1,000 ทาการรบั คา่ อกี คร้ัง ถ้า ผลบวกของค่าท่รี ับเข้ามา > 1,000 ออกจากโปรแกรม
การวเิ คราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบวนซา้ 2. การออกแบบโปรแกรมดว้ ยอลั กอรทิ ึม Algorithm การรบั ค่าตัวเลขจากผใู้ ช้ และบวกคา่ ท่ีรบั เข้ามาแบบวนซา้ ขั้นที่ 1 ทาการกาหนดตวั แปร total เทา่ กับ 0 และ number เทา่ กับ 0 ข้ันท่ี 2 รับคา่ ตวั เลขจากผู้ใช้ และเก็บไวใ้ นตัวแปร number ขนั้ ที่ 3 ทาการบวกค่าทีร่ บั เขา้ มากับค่า total total = total + number ขัน้ ที่ 4 ตรวจสอบค่า total ว่ามากกวา่ 1,000 หรือไม่ ถา้ นอ้ ยกว่า 1,000 วนกลบั ไปทาขั้นตอนท่ี 2 ถา้ มากกว่า 1,000 แสดงผลคา่ total ขน้ั ที่ 5 ออกจากโปรแกรม
ใบงานครง้ั ท่ี 3 การวิเคราะหโ์ จทยแ์ ละออกแบบโปรแกรม ด้วยโครงสรา้ งควบคมุ แบบเลอื กทา และแบบวนซา้
Search
Read the Text Version
- 1 - 36
Pages: