Lecture 2(ต่อ) - การทำงานแบบลำดับ (Sequence) - การทำงานแบบเงื่อนไข (Decision)
การออกแบบโครงสร้าง (Structured Design) คือ เทคนิคที่ใช้ในการออกแบบอัลกอริทึม ซึ่งโครงสร้างของอัลกอริทึมมีอยู่ 3 โครงสร้าง ได้แก่ 1. โครงสร้างควบคุมการทำงานแบบเรียงลำดับ (Sequence Control Structure) 2. โครงสร้างควบคุมการทำงานแบบเลือกกระทำ (Selection Control Structure) 3. โครงสร้างควบคุมการทำงานแบบวนซ้ำ (Repetition Control Structure)
แสดงโครงสร้างควบคุมการทำงานแบบเรียงลำดับ โครงสร้างควบคุมการทำงานแบบเรียงลำดับ (Sequence Control Structure) เป็นโครงสร้างที่มีการทำงานทุกคำสั่งอย่างเป็นลำดับขั้นตอน ประกอบไปด้วยคำสั่งทั่วๆ ไป ไม่มีการตัดสินใจ ไม่มีการวนซ้ำ (Looping) ไม่มีการข้ามขั้นตอนหรือย้อยกลับไปทำขั้นตอนเดิม คำสั่งที่ 1 คำสั่งที่ 2 คำสั่งที่ 3 แสดงโครงสร้างควบคุมการทำงานแบบเรียงลำดับ
แบบที่ 1 แบบตามลำดับ ให้ใช้กล่องสี่เหลี่ยมพร้อมชื่อแทนขั้นตอนนั้น Input Output
ตัวอย่าง โปรแกรมรับข้อมูลจำนวนสินค้าและราคาสินค้า ราคา = 0 รับจำนวนสินค้า และราคา ราคา = จำนวนชิ้น*ราคา พิมพ์ราคา START STOP Input Process Output ?
ตัวอย่างผังงาน example: จงเขียนโปรแกรมคำนวณหาค่า y ของสมการ y = y2 + 2x +10 start Read x,y Y = 2*y + 2*x +10 Write y stop
ตัวอย่าง จงเขียนผังงานในการหาค่าเส้นรอบวงของรูปวงกลม วิเคราะห์ ผลลัพธ์ คือ เส้นรอบวงของรูปวงกลม ใช้ตัวแปรเป็น Tr ข้อมูลเข้า คือ ความยาวของรัศมี ใช้ตัวแปรเป็น r การประมวลผล คือ เส้นรอบวง = 2 * (22/7) * r
ตัวอย่าง (ต่อ) READ r START Input รับค่ารัศมีจากผู้ใช้ ตัวอย่าง (ต่อ) START Input รับค่ารัศมีจากผู้ใช้ READ r Process คำนวณหาค่าเส้นรอบวง Tr = 2*(22/7)*r Output นำค่าเส้นรอบวงที่คำนวณได้แสดงผลทางจอภาพ WRITE Tr END
ตัวอย่างโปรแกรมภาษาจาวา
โครงสร้างแบบเลือกทำ (selection) Decision ตัดสินใจเลือกทิศทางการทำงานของโปรแกรม โดยตรวจสอบจาก เงื่อนไข เงื่อนไขที่ตรวจสอบจะเป็นจริงหรือเท็จเท่านั้น No Yes
โครงสร้างแบบเลือกทำ (selection) (ต่อ) โครงสร้างแบบทดสอบเงื่อนไข 1 ทาง False True เงื่อนไข คำสั่งเดียวหรือหลายคำสั่ง
โครงสร้างแบบเลือกทำ (selection) (ต่อ) 2. โครงสร้างแบบทดสอบเงื่อนไข 2 ทาง False True เงื่อนไข คำสั่ง B คำสั่ง A
โครงสร้างแบบเลือกทำ (selection) (ต่อ) 3. โครงสร้างแบบทดสอบเงื่อนไข 2 ทางขึ้นไป เงื่อนไขที่1 true คำสั่ง A false เงื่อนไขที่2 true คำสั่ง B false เงื่อนไขที่ n true คำสั่ง N false
ตัวอย่างที่ ของโครงสร้างแบบเลือกทำ (ต่อ) ตัวอย่างที่ ของโครงสร้างแบบเลือกทำ (ต่อ) วิเคราะห์ ผลลัพธ์ คือ แสดงค่าในตัวแปร b ข้อมูลเข้า คือ ค่าตัวแปร a รับจากผู้ใช้ การประมวลผล คือ เปรียบเทียบค่า a ถ้า a 0 Output สามารถนำมาคำนวณในสมการได้ และแสดงผลลัพธ์ที่ได้จากการ คำนวณ ถ้า a < 0 Output ไม่ทำการคำนวณ
START Read a NO IF a 0 b = (a2-tan(a))/2 YES Display b END
ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ เงื่อนไข - ถ้าได้คะแนนสอบ 50 คะแนนขึ้นไป ให้พิมพ์ข้อความความ ‘You pass’ - ถ้าได้คะแนนต่ำกว่า 50 คะแนน ให้จบการทำงาน
ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ START Input Process Output ? Read Score Score>=50 Y Write ‘You pass’ N STOP
ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ อัลกอริธึม เริ่มต้นทำงาน รับค่า คะแนนสอบ(Score) ถ้าคะแนนสอบตั้งแต่ 50 คะแนนขึ้นไป ให้พิมพ์ทางหน้าจอว่า ‘You pass’ จบการทำงาน รหัสเทียม (Pseudo Code) Begin Read Score IF Score >= 50 THEN Write ‘You pass’ End
Flowchart แบบสองทางเลือก แบบ 2 ทางเลือก หรือ โครงสร้าง IF…THEN...ELSE ไม่ใช่ ใช่ เงื่อนไข งาน 2 งาน 1
ตัวอย่าง โปรแกรมแสดงผลการสอบทางหน้าจอ เงื่อนไข ถ้าได้คะแนนสอบ 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
Flowchart แบบหลายทางเลือก แบบหลายทางเลือก หรือ โครงสร้าง ELSE…IF เริ่มต้น คำสั่งเมื่อเป็นจริง เงื่อนไข 3 เงื่อนไข 1 เงื่อนไข 2 จบงาน ใช่ ไม่ใช่ รหัสเทียม IF …เงื่อนไข 1….. THEN …คำสั่งเมื่อเป็นจริง.. ELSE IF …เงื่อนไข 2….. …. ELSE …เมื่อไม่เข้าเงื่อนไขใดๆ
อัลกอริทึม CalGrade(score) กำหนดให้ score คือ คะแนนสอบ grade คือ เกรดที่ได้จากการคำนวณตามเกณฑ์ที่กำหนดไว้ [อ่านค่าคะแนนจากแป้นพิมพ์ เก็บในตัวแปร score] [ตรวจสอบว่า คะแนนตามเกณฑ์ที่กำหนด] if score >= 70 then grade = “S” else grade = “U” [end of if structure] [พิมพ์ผลลัพธ์] Print grade [จบการทำงาน]
แบบฝึกหัด (งานครั้งที่ 2) เขียนผังงานและซูโดโค้ด ของโปรแกรมคำนวณเกรดตามเกณฑ์คะแนนต่อไปนี้ คะแนนน้อยกว่า 50 ได้เกรด F คะแนนตั้งแต่ 50 แต่น้อยกว่า 60 ได้เกรด D คะแนนตั้งแต่ 60 แต่น้อยกว่า 70 ได้เกรด C คะแนนตั้งแต่ 70 แต่น้อยกว่า 80 ได้เกรด B คะแนนตั้งแต่ 80 ขึ้น25ไป ได้เกรด C เขียนผังงานและซูโดโค้ด ของโปรแกรมหาผลบวกของ 1 + 2 + 3 + … + N ส่งงานเป็นกระดาษโน้ต ภายในวันนี้
Thank You…