บทที่ 2 อัลกอริธึมและการวิเคราะห์ปัญหา

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
System Requirement Collection (2)
Advertisements

เฉลยใบงานที่ 1 องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
PHPPHP การเขียนโปรแกรมคอมพิวเตอร์ 1 สาขาวิชาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ.
บทที่ 5 การควบคุมทิศทางการทำงานของโปรแกรม
BC322 : Computer Programing (ครั้งที่ 1)
การเขียนโปรแกรม ภาษาซีเบื้องต้น โดย คุณครูปวีณา แนววงศ์
ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
การเขียนผังงานเบื้องต้น (Flow chart)
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
MEE 231 Computer Programming สัปดาห์ที่ 6 ภาษา C หลักการของโปรแกรม ชนิดของตัวแปร การดำเนินการ คำสั่งการรับค่าตัวแปร และการแสดงผล.
เรื่อง หลักการเขียนโปรแกรม เบื้องต้น จัดทำโดย นางสาวชาดา ศักดิ์บุญญารัตน์
บทที่ 2 ขั้นตอนการ ทำงาน (Algorithm) รายวิชา สธ 113 การออกแบบโปรแกรมทางธุรกิจ เบื้องต้น อ. อภิพงศ์ ปิงยศ.
แบบทดสอบ MICROSOFT EXCEL มีข้อมูลในแผ่นงานตั้งแต่แถวที่ 1 ถึงแถว 500 และคอลัมน์ A จนถึงคอลัมน์ M วิธีการเลือกช่วง ข้อมูลวิธีใด อย่างไร ที่อำนวยความสะดวกได้ดีและให้ผลรวดเร็ว.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน เรื่อง หลักการทำงานของคอมพิวเตอร์ วิชาคอมพิวเตอร์พื้นฐาน สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 โรงเรียนเฉลิมราชประชาอุทิศ.
หลักการแก้ปัญหา อย่างมีขั้นตอน การแก้ปัญหาด้วย กระบวนการทาง เทคโนโลยี สารสนเทศ หลักการ แก้ปัญหา การใช้หลักการใน การแก้ปัญหา.
คำสั่งควบคุมการทำงาน
ผังงาน..(Flow Chart) หมายถึง...
การเขียนผังงานเบื้องต้น
เกม คณิตคิดเร็ว.
บทที่ 5 การใช้คำสั่ง Select Case , For Next และ Do While
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
START INPUT R = 1 R = R Yes R*R <=2 No R = R PROCESS
โครงสร้างภาษา C Arduino
การบัญชีต้นทุนช่วง (Process Costing).
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
Control Statement เงื่อนไขคำสั่งในโปรแกรม ภาษา C
บทที่ 8 เงื่อนไขตัดสินใจ
สาระการเรียนรู้ ความหมายของอัลกอริทึม วิธีการเขียนผังงานที่ดี
บทที่ 8 การควบคุมโครงการ
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
บัตรยิ้ม สร้างเสริมกำลังใจ
บทที่ 8 การควบคุมระบบสารสนเทศทางการบัญชี : การควบคุมเฉพาะระบบงาน
มหาวิทยาลัยราชภัฏนครปฐม
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
Data storage II Introduction to Computer Science ( )
บริษัท พัฒนาวิชาการ (2535) จำกัด
BC320 Introduction to Computer Programming
บทที่ 9 การทำซ้ำ (Loop).
บทที่ 3 Programming By Wathinee duangonnam
SMS News Distribute Service
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
การเขียนโปรแกรม ด้วยภาษาคอมพิวเตอร์
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
Chapter 3 : Array.
Array: One Dimension Programming I 9.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
Decision: Single and Double Selection (if and if-else statement)
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

บทที่ 2 อัลกอริธึมและการวิเคราะห์ปัญหา

นิยามอัลกอริธึม อัลกอริธึม (Algorithm) หมายถึง ลำดับขั้นตอนวิธีในการทำงานของโปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบัติตามขั้นตอนอย่างถูกต้องแล้ว จะต้องสามารถช่วยแก้ปัญหาหรือประมวลผลตามความต้องการได้สำเร็จ ในการเขียนอธิบายอัลกอริธึมนั้น เราสามารถคิดอัลกอริธึมเพื่อมาแก้ปัญหาได้หลายแบบ

ตัวอย่าง การต้มไข่ไก่ Algorithm 2 ต้มน้ำให้เดือด - ต้มน้ำให้เดือด วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ต้มสุก Algorithm 2 Algorithm 1 ต้มน้ำให้เดือด - ต้มน้ำให้เดือด ใส่ไข่ - ใส่ไข่ รอ 10 นาที - รอ 5 นาที ดับไฟ / ปิดเตา - ดับไฟ / ปิดเตา ปอกไข่

Algotithm 1 Vs Algotithm 2 ผลที่ได้เหมือนกันคือ ไข่ต้ม ผลลัพธ์อัลกอริธึม 1 สามารถทานได้เลย ส่วนอัลกอริธึม 2 ต้องปอกก่อนทาน สรุปคือ เราได้ผลลัพธ์ตามที่โจทย์ต้องการคือ ไข่ต้ม

การวิเคราะห์ปัญหา กระบวนการทำงานของคอมพิวเตอร์มีองค์ประกอบใดบ้าง Input Process Output การพิจารณา ขั้นตอนการทำงานเป็นการนำเข้า ป้อนเข้าระบบ Input Process ขั้นตอนเกี่ยวกับการกระทำ(กริยา) Output ขั้นตอนการนำข้อมูลออกจากระบบ แสดงผล

Example เราลองนำขั้นตอนการต้มไข่มาวิเคราะห์ ต้มน้ำให้เดือด => การกระทำ(Process) ใส่ไข่ => การป้อนข้อมูล(Input) รอ 10 นาที => การกระทำ(Process) ดับไฟ => การกระทำ(Process) การกระทำ(Process) ปอกไข่ => => ผลลัพธ์ (Output) ไข่ต้มสุก

เขียนขั้นตอนการแก้ปัญหา การวิเคราะห์ปัญหา ข้อมูลที่นำเข้าสู่ระบบคอมพิวเตอร์ประกอบด้วยอะไรบ้าง การวิเคราะห์ปัญหา วิเคราะห์ผลลัพธ์ (Output) วิเคราะห์ Input Process เขียนขั้นตอนการแก้ปัญหา - กำหนดวัตถุประสงค์ของงาน - รูปแบบของผลลัพธ์

ตัวอย่าง อัลกอริธึมเพื่อทำการบวกราคาโดยใช้เครื่องคิดเลข 1. เปิดเครื่องคิดเลข 2. พิมพ์ยอดเงิน 3. กดเครื่องหมาย (+) 4. กลับไปที่ข้อ 2 ทำจนกระทั่งราคาทั้งหมดถูกพิมพ์เข้าเครื่องและกดเครื่องหมาย = 5. เขียนยอดรวมราคา 6. ปิดเครื่องคิดเลข

การวิเคราะห์อัลกอริธึมเพื่อทำการบวกราคาโดยใช้เครื่องคิดเลข 1. วิเคราะห์ผลลัพธ์ : ยอดรวมราคา 2. กำหนดข้อมูลเข้า : ยอดเงิน 3. ขั้นตอนการประมวลผล 3.1 พิมพ์ยอดเงิน 3.2 กดเครื่องหมาย + 3.3 วนการทำงาน 3.4 กดเครื่องหมาย = 3.5 คำนวณยอดรวมราคา

ตัวอย่าง 4 การโยนเหรียญเสี่ยงทายเพื่อตัดสินใจว่าจะกินขนมปังหรือผลไม้ โดยมีเงื่อนไขว่า ถ้าออกหัวกินขนมปัง ถ้าออกก้อยกินผลไม้ วัตถุดิบ : ผลการโยน ผลลัพธ์ : กินอะไร(ผลไม้/ขนมปัง) โยนเหรียญ => การกระทำ ดูเหรียญ => รับข้อมูล ถ้าออกหัว => ไปขั้นตอนที่ 5 ถ้าออกก้อย => ไปขั้นตอนที่ 6 กินขนมปัง => ไปขั้นตอนที่ 7 กินผลไม้ => ไปขั้นตอนที่ 7 หยุด

การออกแบบอัลกอริธึม ในการเขียนอธิบายอัลกอริธึมนั้น เราสามารถคิดอัลกอริธึมเพื่อมาแก้ปัญหาได้หลายแบบ ซึ่งในแต่ละแบบเครื่องคอมพิวเตอร์ก็จะใช้ในหน่วยความจำ และเวลาในการประมวลผลไม่เท่ากัน ดังนั้น การจะเปรียบเทียบว่าโปรแกรมคอมพิวเตอร์ใครเก่งกว่ากันนั้นจึงใช้การเปรียบเทียบและประสิทธิภาพของอัลกอริธึมนั่นเอง อัลกอริธึมของใครใช้เวลาในการประมวลผลและหน่วยความจำน้อยกว่า ถือว่าอัลกอริธึมนั้นฉลาดกว่า

อัลกอริธึมที่ดีจะประกอบด้วยคุณสมบัติต่างๆดังนี้ อัลกอริธึมที่ดีต้องมีความถูกต้อง (correctness) อัลกอริธึมที่ดีต้องง่ายต่อการอ่าน(readability) อัลกอริธึมที่ดีต้องสามารถปรับปรุงได้ง่ายต่ออนาคต(ease of modification) อัลกอริธึมที่ดีสามารถนำกลับมาใช้ใหม่ได้(Reusability) อัลกอริธึมที่ดีต้องมีประสิทธิภาพ (efficiency)

การควบคุมการทำงานของโปรแกรม (Program Control Flow) การควบคุมการทำงานของโปรแกรม เป็นเครื่องมือที่ผู้พัฒนาโปรแกรมใช้ในการแสดงลำดับการทำงานของโปรแกรมหรือใช้อธิบายอัลกอริธึม ให้เป็นระบบและง่ายต่อความเข้าใจ โดยโครงสร้างอาจจะอยู่ในรูปแบบดังนี้คือ 1. ผังงาน (Flowchart) ซึ่งเป็น Flow Diagram ชนิดหนึ่งสำหรับใช้อธิบายขั้นตอนการทำงานของโปรแกรมในลักษณะรูปภาพ 2. ชุดคำสั่งเทียม (Pseudocode) จะมีสัญลักษณ์คล้ายกับภาษาอังกฤษ ก้ำกึ่งระหว่างภาษาอังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบายลักษณะโครงสร้างข้อมูล และการทำงานของอัลกอริธึมที่เราเขียนขึ้น

สัญลักษณ์ในผังงาน (Flow Chart)

สัญลักษณ์ในผังงาน (Flow Chart)

สัญลักษณ์ในผังงาน

ตัวอย่างการเขียนผังงาน จงเขียนผังงานแสดงการเขียนและส่งจดหมาย

วิธีการเขียนผังงานที่ดี 1. ใช้สัญลักษณ์ตามที่กำหนดไว้ 2. ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา 3. คำอธิบายในภาพสัญลักษณ์ผังงานควรสั้นกะทัดรัด และเข้าใจง่าย 4. ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า – ออก 5. ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน 6. ผังงานควรมีการทดสอบความถูกต้องของการทำงานก่อนนำไปเขียนโปรแกรมจริง

โครงสร้างพื้นฐานที่ใช้ในการเขียนโปรแกรม 1. โครงสร้างแบบลำดับ (Sequence Structure) 2. โครงสร้างแบบเลือก (Selection Structure) 3. โครงสร้างแบบทำซ้ำหรือวนรอบ (Repetition or Looping Structure)

1. โครงสร้างแบบลำดับ (Sequence Structure) มีจุดเริ่มต้นจุดเดียว – จุดสิ้นสุดจุดเดียว ทำงานตามลำดับ อาจเรียกใช้โมดูลอื่นได้ ทำงานจากบนลงล่าง (จุดเริ่มต้นถึงสิ้นสุด)

ผังงานโปรแกรมโครงสร้างแบบลำดับ คำสั่ง 1 คำสั่ง 2 คำสั่ง 3 START STOP

ตัวอย่าง โปรแกรมรับข้อมูลจำนวนสินค้าและราคาสินค้า ราคา = 0 รับจำนวนสินค้า และราคา ราคา = จำนวนชิ้น*ราคา พิมพ์ราคา START STOP Input Process Output ?

ตัวอย่าง โปรแกรมรับข้อมูลจำนวนสินค้าและราคาสินค้า อัลกอริธึม เริ่มต้นทำงาน รหัสเทียม (Pseudo Code) Begin End 2. กำหนดค่า จำนวนเงินที่ชำระ(Price) เท่ากับศูนย์ Price = 0 3.รับข้อมูล จำนวนสินค้า (Amt) และ ราคา (Cost) Read Amt, Cost 4. คำนวณจำนวนเงินที่ชำระ จาก Price = Amt x Cost Price = Amt x Cost 5.แสดงผล จำนวนที่ต้องชำระ Write Price 6. จบการทำงาน

มีเงื่อนไขที่ต้องตัดสินใจเลือกการทำงาน 2. โครงสร้างแบบเลือก (Selection Structure) มีเงื่อนไขที่ต้องตัดสินใจเลือกการทำงาน ผลลัพธ์ของเงื่อนไขคือ จริง หรือ เท็จ เท่านั้น

2.1 Flowchart แบบหนึ่งทางเลือก แบบ 1 ทางเลือก หรือ โครงสร้าง IF….THEN เป็นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทำหรือไม่ทำ ก่อนที่จะไปทำงานอื่นต่อไป เงื่อนไข งานที่ต้องทำ ใช่ งานต่อไป ไม่ใช่

2.1 Flowchart แบบหนึ่งทางเลือก - แบบ 1 ทางเลือก หรือ โครงสร้าง IF….THEN จะทำงานเมื่อเงื่อนไขเป็นจริง เท็จ/FALSE เงื่อนไข จริง/TRUE คำสั่ง A รหัสเทียม IF …………… THEN …(คำสั่งA)…

2.1 Flowchart แบบหนึ่งทางเลือก ตัวอย่าง โครงสร้าง IF….THEN แม่ถามว่าหิวข้าวหรือไม่ ถ้าหิวก็ให้กิน ถ้าไม่หิวไม่ต้องกิน แล้วจึง เดินงานไปโรงเรียน (งานต่อไป) หิวใช่ไหม? ใช่ งานกินข้าว ไม่ใช่ งานเดินทางมาเรียน

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ เงื่อนไข - ถ้าได้คะแนนสอบ 50 คะแนนขึ้นไป ให้พิมพ์ข้อความความ ‘You pass’ - ถ้าได้คะแนนต่ำกว่า 50 คะแนน ให้จบการทำงาน

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ START Input Process Output ? Read Score Score>=50 Y Write ‘You pass’ N STOP

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ อัลกอริธึม รหัสเทียม (Pseudo Code) Begin End เริ่มต้นทำงาน รับค่า คะแนนสอบ(Score) ถ้าคะแนนสอบตั้งแต่ 50 คะแนนขึ้นไป ให้พิมพ์ทางหน้าจอว่า ‘You pass’ จบการทำงาน Read Score IF Score >= 50 THEN Write ‘You pass’

2.2 Flowchart แบบสองทางเลือก แบบ 2 ทางเลือก หรือ โครงสร้าง IF…THEN...ELSE ไม่ใช่ ใช่ เงื่อนไข งาน 2 งาน 1

2.2 Flowchart แบบสองทางเลือก แบบ 2 ทางเลือก หรือ โครงสร้าง IF…THEN...ELSE เงื่อนไข เท็จ/FALSE จริง/TRUE คำสั่ง A คำสั่ง B รหัสเทียม IF …………….. THEN …..(คำสั่งB)….. ELSE ..…(คำสั่งA)...… END IF

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ เงื่อนไข ถ้าได้คะแนนสอบ 50 คะแนนขึ้นไป ให้พิมพ์ข้อความว่า ‘Pass’ - ถ้าได้คะแนนต่ำกว่า 50 คะแนน ให้พิมพ์ข้อความว่า ‘Fail’ ตัวแปร Grade เก็บค่าผลลัพธ์

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ START Read Score Score>=50 Y Grade = ‘Pass’ N Grade = ‘Fail’ Write Grade STOP

ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ อัลกอริธึม เริ่มต้นทำงาน รับค่า คะแนนสอบ (Score) ถ้าคะแนนสอบตั้งแต่ 50 คะแนนขึ้นไป ให้ทำนิพจน์ Grade=‘Pass’ ถ้าน้อยกว่า 50 คะแนน ให้ทำนิพจน์ Grade=‘Fail’ แสดงผล เกรด (Grade) จบการทำงาน รหัสเทียม (Pseudo Code) Begin Read Score IF Score >= 50 THEN Grade = ‘Pass’ ELSE Grade = ‘Fail’ END IF Write Grade End

2.2 Flowchart แบบหลายทางเลือก แบบหลายทางเลือก หรือ โครงสร้าง ELSE…IF เริ่มต้น คำสั่งเมื่อเป็นจริง เงื่อนไข 3 เงื่อนไข 1 เงื่อนไข 2 จบงาน ใช่ ไม่ใช่ รหัสเทียม IF …เงื่อนไข 1….. THEN …คำสั่งเมื่อเป็นจริง.. ELSE IF …เงื่อนไข 2….. …. ELSE …เมื่อไม่เข้าเงื่อนไขใดๆ 36

ตัวอย่าง โปรแกรมประมวลผลการเรียน เงื่อนไข คะแนนสอบสูงกว่า 80 คะแนน ได้เกรด A คะแนนสอบ 70-79 คะแนนขึ้นไป ได้เกรด B คะแนนสอบ 60-69 คะแนนขึ้นไป ได้เกรด C คะแนนสอบ 50-59 คะแนนขึ้นไป ได้เกรด D คะแนนสอบต่ำกว่า 50 คะแนน ได้เกรด F

ตัวอย่าง START Read Score N Y Y N N Y Y N Write Grade STOP Grade = ‘A’ Score>=70 N Y Score>=60 Grade = ‘B’ Grade = ‘C’ Y N Score>=50 Grade = ‘D’ Grade = ‘F’ Write Grade STOP

BC320 Introduction to Computer Programming หรือ BC320 Introduction to Computer Programming

ตัวอย่าง โปรแกรมประมวลผลการเรียน อัลกอริธึม เริ่มต้นทำงาน 5.จบการทำงาน รหัสเทียม (Pseudo Code) Begin End 2. รับค่า คะแนนสอบ (Score) READ Score IF Score >= 80 3. เปรียบเทียบคะแนนสอบ>=80 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘A’ ถ้าเป็นเท็จ ให้เปรียบเทียบคะแนนสอบ >=70 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘B’ ถ้าเป็นเท็จ ให้เปรียบเทียบคะแนนสอบ >=60 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘C’ ถ้าเป็นเท็จ ให้เปรียบเทียบคะแนนสอบ >=50 ถ้าเป็นจริง ให้ทำนิพจน์ Grade=‘D’ ถ้าเป็นเท็จ ให้ให้ทำนิพจน์ Grade=‘F’ THEN Grade = ‘A’ ELSE IF Score >=70 THEN Grade = ‘B’ ELSE IF Score >=60 THEN Grade = ‘C’ ELSE IF Score >=50 THEN Grade = ‘D’ ELSE Grade = ‘F’ 4. แสดงผล เกรด (Grade) WRITE Grade

ตัวอย่าง คำนวณหายอดเงินที่ลูกค้าต้องชำระ โดยตรวจสอบจากราคาสินค้า ตัวอย่าง คำนวณหายอดเงินที่ลูกค้าต้องชำระ โดยตรวจสอบจากราคาสินค้า - ถ้าซื้อสินค้า 0-100 บาท ได้ส่วนลด 5 บาท - ถ้าซื้อสินค้า 101-200 บาท ได้ส่วนลด 10 บาท - ถ้าซื้อสินค้าเกิน 200 บาท ได้ส่วนลด 20 บาท โดยแสดงผลลัพธ์เป็นยอดเงินที่ลูกค้าต้องชำระ

ตัวอย่างคำนวณหายอดเงินที่ลูกค้าต้องชำระ โดยตรวจสอบจากราคาสินค้า อัลกอริธึม เริ่มต้นทำงาน รับค่า ราคาสินค้า (price) เปรียบเทียบราคาสินค้า<=100 ถ้าเป็นจริง ให้ทำนิพจน์ price=price-5 ถ้าเป็นเท็จ ให้เปรียบเทียบราคาสินค้า<=200 ถ้าเป็นจริง ให้ทำนิพจน์ price=price-10 ถ้าเป็นเท็จ ให้ทำนิพจน์ price=price-20 แสดงผล ราคาสินค้า (price) จบการทำงาน รหัสเทียม (Pseudo Code) Begin End Flowchart ?

3. โครงสร้างแบบทำซ้ำหรือวนรอบ (Repetition or Looping Structure) การวนซ้ำแบบทดสอบเงื่อนไขก่อน 2. การวนซ้ำแบบทดสอบเงื่อนไขทีหลัง 3. การวนซ้ำแบบวนซ้ำแน่นอน

3. โครงสร้างแบบทำซ้ำหรือวนรอบ (Repetition or Looping Structure) 3.1 การวนซ้ำแบบทดสอบเงื่อนไขก่อน หรือ While ลูปแบบ While ในการทำงานครั้งแรกจะตรวจสอบเงื่อนไขก่อนทุกครั้ง ก่อนจะเข้าลูปการทำงาน แต่เมื่อพบว่าเงื่อนไขเป็นเท็จจะออกจากลูปทันที While (เงื่อนไข) จริง กลุ่มคำสั่งที่ ต้องทำซ้ำ เท็จ ออกจากวนรอบ(ลูป)

WHILE Loop มีเงื่อนไขในการหยุดการทำงาน ตรวจเงื่อนไขก่อนการทำงานทุกครั้ง ถ้าใช่ตามที่เงื่อนไขต้องการ จะให้ทำงานต่อไป อาจไม่ได้ทำเลยแม้แต่ครั้งเดียว

3.2 Flowchart แบบวนลูป ชนิด While ตัวอย่าง จงเขียนผังงานแสดงการทำงานของการแสดงค่าตัวเลขจำนวนเต็มบวก โดยเริ่มต้นตั้งแต่เลข 1-5 วิเคราะห์ เงื่อนไขในการหยุด แสดงตัวเลขมากกว่า 5 ผลลัพธ์ คือ ค่าตัวเลข <=5 แสดงตัวเลขจำนวนเต็มบวก ข้อมูลเข้า คือ กำหนดค่าเริ่มต้นของตัวเลขจำนวนเต็มบวก ใแปรเป็น numberตัวแปรเป็น number การประมวลผล คือ ตรวจสอบค่าตัวเลข <=5 พิมพ์ค่า วนรอบจนกว่าเงื่อนไขจะเป็นเท็จ

ตัวอย่าง แสดงการทำงานของการแสดงค่าตัวเลข ตั้งแต่เลข 1 ถึงเลข 5 โดยใช้ While START number = 1 NO While number <= 5 YES Print number number = number+1 END

ตัวอย่าง โปรแกรมแสดงเลข 1-5 อัลกอริธึม เริ่มต้นทำงาน กำหนดค่าเริ่มต้นตัวเลข Number=1 ถ้า Number ยังน้อยกว่าหรือเท่ากับ 5 ให้พิมพ์ค่าของ Number และให้เพิ่มค่า Number ครั้งละ 1 ค่า แต่ถ้าเป็นเท็จให้ออกจากการทำงาน จบการทำงาน รหัสเทียม (Pseudo Code) Begin End Number = 1 While Number <= 5 { Write Number Number=Number+1 }

3.1 Flowchart แบบวนลูป ชนิด While Loop START ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 5 Sum = 1+2+3+4+5 number = 1 , Sum=0 เงื่อนไขในการหยุด ? NO While number <= 5 YES Sum = Sum+number number = number+1 Print Sum END

ตัวอย่าง โปรแกรมแสดงผลบวกเลข 1-5 อัลกอริธึม เริ่มต้นทำงาน กำหนดค่าเริ่มต้นตัวเลข Number=1 และผลรวม Sum=0 ถ้า Number ยังน้อยกว่าหรือเท่ากับ 5 ให้บวกค่าของ Number เก็บไว้ที่ Sum วนรอบจนกว่าเงื่อนไขเป็นเท็จให้ออกจากการทำงาน แสดงผลการบวก จบการทำงาน รหัสเทียม (Pseudo Code) Begin End

3.2 Flowchart แบบวนลูป ชนิด Do-While กลุ่มคำสั่งที่ต้องการวนซ้ำ Do-While เงื่อนไข Yes No

DO WHILE มีเงื่อนไขในการหยุดการทำงาน ได้ทำงานอย่างน้อย 1 ครั้ง หลังจากนั้นในแต่ละครั้งจะมีตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงก็จะวนรอบทำงานต่อ ถ้าเป็นเท็จจะออกจากลูป

3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่าง จงเขียนผังงานแสดงการทำงานของการแสดงค่าตัวเลขจำนวนเต็มบวก โดยเริ่มต้นตั้งแต่เลข 1-5 เมื่อหยุดแสดงผลค่าตัวเลขแล้วให้แสดงข้อความ “I Love URU” วิเคราะห์ เงื่อนไขในการหยุด แสดงตัวเลขมากกว่า 5 ผลลัพธ์ คือ ค่าตัวเลข <= 5 แสดงตัวเลขจำนวนเต็มบวก ค่าตัวเลข > 5 แสดงข้อความ “I Love URU” ข้อมูลเข้า คือ กำหนดค่าเริ่มต้นของตัวเลขจำนวนเต็มบวก ใช้ตัวแปรเป็น number การประมวลผล คือ พิมพ์ค่าตัวเลข ตรวจสอบค่าตัวเลข <=5 วนรอบจนกว่าเงื่อนไขจะเป็นเท็จ ถ้าค่าตัวเลข > 5 แสดงข้อความ “I Love URU”

ตัวอย่าง แสดงการทำงานของการแสดงค่าตัวเลข START ตัวอย่าง แสดงการทำงานของการแสดงค่าตัวเลข ตั้งแต่เลข 1 ถึงเลข 5 โดยใช้ Do-While number = 1 Print number number = number+1 YES While number <= 5 NO Display “I love URU” END

ตัวอย่าง โปรแกรมแสดงเลข 1-5 อัลกอริธึม เริ่มต้นทำงาน กำหนดค่าเริ่มต้นตัวเลข number=0 เพิ่มค่า number ทีละ 1 ค่า number=number+1 และให้พิมพ์ค่าของ number ถ้าค่าของ number ยังน้อยกว่าหรือเท่ากับ 5 ให้ทำข้อ 3 ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ และออกจากการทำงาน จบการทำงาน รหัสเทียม (Pseudo Code) Begin number = 0 Do { number = number+1 write Number } While number <=5 End

3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่าง จงเขียนผังงานแสดงการทำงานของการแสดงการบวกเลข 1-10 วิเคราะห์ เงื่อนไขในการหยุด แสดงตัวเลขมากกว่า 10 ผลลัพธ์ คือ ผลรวมของการบวกเลข 1-10 ข้อมูลเข้า คือ กำหนดค่าเริ่มต้นของตัวเลขจำนวนเต็มบวก และผลรวมการบวก การประมวลผล บวกค่าเลขจำนวนเต็มบวก ตรวจสอบค่าของเลขจำนวนเต็มบวก <= 10 วนรอบจนกว่าเงื่อนไขจะเป็นเท็จ พิมพ์ค่าผลรวม

3.2 Flowchart แบบวนลูป ชนิด Do-While ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 10 Sum = 1+2+3+4+5+6+7+8+9+10 START i=0 , Sum=0 เงื่อนไขในการหยุด ? i = i+1 Sum=Sum+i จริง เท็จ i<=10 Print Sum STOP

ตัวอย่าง โปรแกรมแสดงผลบวก 1-10 อัลกอริธึม เริ่มต้นทำงาน กำหนดค่าเริ่มต้นตัวเลข i=0 และผลรวม sum=0 เพิ่มค่า i ทีละ 1 ค่า i=i+1 และหาผลรวมของการบวก sum=sum+i ถ้า i ยังน้อยกว่าหรือเท่ากับ 10 ให้ทำข้อ 3 ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จจึงออกจากลูป พิมพ์ค่าผลรวม จบการทำงาน รหัสเทียม (Pseudo Code) Begin End

3.3 Flowchart แบบวนลูป ชนิด For (เงื่อนไข) กลุ่มคำสั่งที่ ต้องทำซ้ำ จริง ออกจากวนรอบ(ลูป) เท็จ

FOR Loop งานที่ต้องทำซ้ำเป็นจำนวนรอบที่แน่นอน ไม่มีเงื่อนไขในการหยุดการทำงาน หยุดทำงานเมื่อทำครบเป็นจำนวนรอบที่ต้องการ มีตัวนับ (Counter) คอยควบคุมจำนวนรอบ

3.3 Flowchart แบบวนลูป ชนิด For ตัวอย่าง จงเขียนผังงานแสดงการทำงานของการแสดงค่าตัวเลข ตั้งแต่เลข 1 ถึงเลข 10 วิเคราะห์ จำนวนรอบ 10 รอบ ผลลัพธ์ คือ แสดงตัวเลข 10 จำนวน ตั้งแต่เลข 1 ถึงเลข 10 ข้อมูลเข้า คือ การกำหนดค่าเริ่มต้นให้ตัวแปรนับรอบใช้ตัวแปรเป็น i การประมวลผล คือ ทำการวนรอบแสดงตัวเลข 10 รอบ แสดงตัวเลข ตั้งแต่เลข 1 ถึงเลข 10

3.3 Flowchart แบบวนลูป ชนิด For START ตัวอย่าง แสดงการทำงานของการแสดงค่าตัวเลข ตั้งแต่เลข 1 ถึงเลข 10 ถ้าแสดงตัวเลขครบแล้วให้แสดงข้อความว่า “Very Good” i = 1 NO Print “Very Good” for i <= 10 YES Display i i = i+1 END

ตัวอย่าง โปรแกรมแสดงผลบวก 1-10 อัลกอริธึม เริ่มต้นทำงาน กำหนดค่าเริ่มต้นตัวเลข i=1 ถ้า i ยังน้อยกว่าหรือเท่ากับ 10 ให้พิมพ์ค่า i และเพิ่มค่า i ทีละ 1 ค่า i=i+1 ทำข้อ 3 ไปเรื่อยๆ จนกว่าค่าของ i จะเป็นเท็จ พิมพ์ข้อความ “Very Good” จบการทำงาน รหัสเทียม (Pseudo Code) Begin i=1 for i<=10 { Write i i=i+1 } Write “Very Good” End

จงเขียน Algorithm, Pseudo code, Flowchart ตัวอย่าง กำหนดให้โปรแกรมแสดงคำว่า “Hello” จำนวน 50 ครั้ง เมื่อแสดงครบแล้วให้แสดงคำว่า “Good buy” จงเขียน Algorithm, Pseudo code, Flowchart

ประโยชน์ของผังงาน 1. ลำดับขั้นตอนการทำงานของโปรแกรม และสามารถนำไปเขียนโปรแกรมได้โดยไม่สับสน 2. ตรวจสอบความถูกต้อง และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด 3. การปรับปรุง เปลี่ยนแปลง แก้ไข ทำได้อย่างสะดวกและรวดเร็ว 4. ทำให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น

แบบฝึกหัด 1. จงเขียน Algorithm, Pseudo code, Flowchart ของโปรแกรมที่กำหนดให้ต่อไปนี้ 1.1 โปรแกรมคำนวณหาค่า y ของสมการ y = x^2 + 2x +10 1.2 โปรแกรมแสดงยอดขาย ถ้าซื้อสินค้ามากกว่า 1000 บาทมีส่วนลดให้ 100 บาท 1.3 โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้ลูกค้า ถ้าเป็นชายจะลดให้ 50 บาท แต่ถ้าเป็นหญิง จะลดให้ 100 บาท

แบบฝึกหัด 1.4 โปรแกรมแสดงขนาดของการใช้ยาตามอายุของผู้ใช้ อายุมากกว่า 10 ปี แสดงข้อความรับประทานครั้งละ 3 ช้อนชา อายุ 6-10 ปี แสดงข้อความรับประทานครั้งละ 2 ช้อนชา อายุ 2-5 ปี แสดงข้อความรับประทานครั้งละ 1 ช้อนชา เด็กอายุต่ำกว่า 1 ปี ห้ามรับประทาน

แบบฝึกหัด 2. จงเขียน Flowchart สำหรับวนรอบรับค่าตัวเลข แล้วแสดงค่าตัวเลขที่รับเข้ามาออกทางจอภาพ โดยที่เมื่อรับค่าตัวเลขเป็น -999 จะสิ้นสุดการวนรอบและจบโปรแกรม 3. จงเขียน Flowchart สำหรับวนรอบรับค่าตัวเลข และในระหว่างรับให้หาผลรวมของตัวเลขที่รับเข้ามา โปรแกรมจะหยุดรับค่าเมื่อใส่ตัวเลข -999 และจะแสดงผลรวมของตัวเลขทั้งหมดที่รับเข้ามาและหยุดทำงาน

จงเขียน Algorithm, Pseudo code, Flowchart ตัวอย่าง ให้รับค่า A,B ถ้า A>B ให้หาค่าผลต่าง แต่ถ้าไม่ใช่ให้หาค่าผลรวม จงเขียน Algorithm, Pseudo code, Flowchart