28
บทที2 ขั้นตอนวิธีกับการแก้ปัญหา 2.1 ความหมายของขั้นตอนวิธี 2.2 ขั้นตอนการทำางานของ โปรแกรม 2.3 โครงสร้างแฟ้มข้อมูล 2.4 การแสดงขั้นตอนวิธี 2.5 โครงสร้างโปรแกรม

4121103 การเขียนโปรแกรมและอัลกอริทึ่ม SLIDE 2/7

Embed Size (px)

Citation preview

บทที่ 2 ขัน้ตอนวิธีกับการแก้ปญัหา

2.1 ความหมายของข้ันตอนวิธี2.2 ข้ันตอนการทำางานของโปรแกรม2.3 โครงสร้างแฟม้ข้อมลู2.4 การแสดงข้ันตอนวิธี2.5 โครงสร้างโปรแกรม

Copyright (c) 2006 by Sasalak Tongkaw2

COMPUTER PROGRAMMING AND ALGORITHM

ความหมายของขั้นตอนวิธี

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

ข้ันตอนวิธีจะประกอบด้วย วิธีการเป็นข้ันๆ และมสี่วนทีต่้องทำาซำ้าเป็นวงรอบ (iterate) มกีารตัดสนิใจโดยใช้ตรรกะ (logic) และ/หรือ การเปรียบเทยีบ (comparison)

Copyright (c) 2006 by Sasalak Tongkaw3

COMPUTER PROGRAMMING AND ALGORITHM

อัลกอริทึ่ม

คำาว่า อัลกอริทึม่ มทีีม่าจากชื่อของนกัคณิตศาสตร์ชาวเปอร์เซียในยคุศตวรรษที ่9 ชื่อ อาบู อับดุลลา บิน มซูา อัล-ควาริสม ี(Abu Abdullah Muhammad bin Musa al-Khwarizmi) ซึ่งได้กลายเป็นคำาว่า อัลกอริซึม หมายถึงกฎทีใ่ช้ในการคิดคำานวณเลขคณิต

Copyright (c) 2006 by Sasalak Tongkaw4

COMPUTER PROGRAMMING AND ALGORITHM

ขั้นตอนการทำางานของโปรแกรม

1. เข ้าใจปัญหา2. วางแผนลำาด ับข ั้นตอนการ

แกป้ ัญหา3. เข ียนโปรแกรม4. แปลงโปรแกรมเป ็นภาษา

เคร ื่อง5. ทดสอบโปรแกรม6. นำาโปรแกรมไปใช้

Copyright (c) 2006 by Sasalak Tongkaw5

COMPUTER PROGRAMMING AND ALGORITHM

เข้าใจปญัหา • ต้องการรายชื่อของพนกังานที่

ทำางานเกินกว่า 5 ปี• รายงานการขายประจำาปี 2547• รายงานการขายประจำาเดือน

มถิุนายน 2547• รายงานการขายของพนักงานขาย

ชื่อ สนุีย์• รายงานการขายวันนี้

Copyright (c) 2006 by Sasalak Tongkaw6

COMPUTER PROGRAMMING AND ALGORITHM

วางแผนลำาดับขั้นตอนการแก้ปัญหา• วางแผนลำาดับข้ันตอนของโปรแกรม • เครื่องมอืทีใ่ช้อาจเป็นผังงาน (flowchart)

และรหสัเทียมหรือรหสัลำาลอง (pseudocode)

• นำาอินพทุเข้ามาเพื่อใหไ้ด้เอาทพ์ทุที่ถูกต้อง

Copyright (c) 2006 by Sasalak Tongkaw7

COMPUTER PROGRAMMING AND ALGORITHM

โคด้เทียม• กำาหนดให้ค่าเงินเดือนเทา่กับ 0

• รับค่าเงินเดือนเข้ามา • ถ้าเงินเดือนมากกวา่ 15,000

บาท ให้คิดภาษี 7%• ถ้าเงินเดือนน้อยกว่า หรือเทา่กับ

15,000 ให้คิดภาษี 3%• คำานวณเงินได้สุทธิโดยเอาเงิน

เดือนลบด้วยภาษี• พิมพ์ค่าเงินเดือน ภาษี และเงิน

ได้สุทธิหลงัจากหกัภาษี

Copyright (c) 2006 by Sasalak Tongkaw8

COMPUTER PROGRAMMING AND ALGORITHM

ผังงาน

• ผังงานหรือแผนภาพการไหลของโปรแกรมมสีัญลักษณ์เบื้องต้นดังต่อไปนี้

การประมวลผลตัวเร ิ่ม/จบ การตัดส ินใจ

ข้อมลูเข ้า/ออกตัวเช ือ่ม

Copyright (c) 2006 by Sasalak Tongkaw9

COMPUTER PROGRAMMING AND ALGORITHM

เขียนโปรแกรม• เลือกภาษาทีเ่หมาะสมกับงาน• ลงโค้ดโปรแกรม

Copyright (c) 2006 by Sasalak Tongkaw10

COMPUTER PROGRAMMING AND ALGORITHM

แปลงโปรแกรมเปน็ภาษาเครื่อง• ภาษาเครื่อง (Machine Language)ม ี0 และ

1 เทา่นัน้ • การ Compile เป็นการเปลี่ยนจากโค้ดต้นฉบับ

(Source Code) เป็นภาษาเครื่อง• ตัวแปลภาษาม ี2 ชนิด– Compiler– Interpreter

Copyright (c) 2006 by Sasalak Tongkaw11

COMPUTER PROGRAMMING AND ALGORITHM

ทดสอบโปรแกรม• ทดสอบการรันโปรแกรมโดยใช้

ข้อมลูจริง• โปรแกรมอาจมข้ีอผิดพลาดได้ 2

แบบคือ• ผิดพลาดไวยกรณ์• ผิดพลาดทางตรรกะ

Copyright (c) 2006 by Sasalak Tongkaw12

COMPUTER PROGRAMMING AND ALGORITHM

ผิดพลาดทางตรรกะ• Get number• Answer = number *2 • Print Answer

• Get number• Answer = number * 20• Print Answer

Copyright (c) 2006 by Sasalak Tongkaw13

COMPUTER PROGRAMMING AND ALGORITHM

นำาโปรแกรมไปใชง้าน• ติดตั้งโปรแกรม• ทดสอบการใช้งาน• อบรมการใช้งาน• ประเมนิผลการใช้งาน

Copyright (c) 2006 by Sasalak Tongkaw14

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างแฟ้มขอ้มลูจำาแนกในรูปแบบตรรกะ

• ตัวอักษร(Character)

• เขตข้อมูล (Field)– แอททริบิวต์ของเอ็น

ทิตี• ระเบยีน (Record)• แฟ้มหรือไฟล์ (File)• ฐานข้อมลู

(Database)

Copyright (c) 2006 by Sasalak Tongkaw15

COMPUTER PROGRAMMING AND ALGORITHM

การแสดงขั้นตอนวิธี• ผังงาน• ภาษาข้ันตอนวิธี• ภาษาธรรมชาติ

Copyright (c) 2006 by Sasalak Tongkaw16

COMPUTER PROGRAMMING AND ALGORITHM

ผังงาน (flowchart)

• ผังงาน เป็นข้ันตอนวิธีทีเ่ขียนโดยใช้รูปสัญลักษณ์ มเีส้นเชื่อมและหวัลูกศรบอกข้ันตอนการทำางาน การเขียนข้ันตอนวิธีด้วยวิธีนีเ้ป็นที่นยิมมากกว่าแบบอ่ืน ๆ เนื่องจากมเีส้น

ลากโยงใยทำาใหเ้ห็นข้ันตอนการทำางานที่ชัดเจน มลีูกศรกำากบัทศิทางการทำางานช่วย

ใหเ้ข้าใจง่ายข้ึน และสามารถตรวจสอบความถูกต้องได้ง่าย

• สัญลักษณ์ของผังงานดูในหนังสือ• ผังงานม ี2 ชนิด คือ

– ผังงานระบบ (System Flowchart)– ผังงานโปรแกรม (Program Flowchart)

Copyright (c) 2006 by Sasalak Tongkaw17

COMPUTER PROGRAMMING AND ALGORITHM

Salary =0Income=0

Tax=0

Salary>15000

Begin

Read Salary

Tax=salary*3% Tax=salary*7%

Yes

No

Income=salary-tax

Print salaryPrint tax

Print income

End

Copyright (c) 2006 by Sasalak Tongkaw18

COMPUTER PROGRAMMING AND ALGORITHM

ภาษาขั้นตอนวิธี• ตัวแปร• การกำาหนดค่า• นิพจน์• GOTO• If-else• Repeat• comment

Copyright (c) 2006 by Sasalak Tongkaw19

COMPUTER PROGRAMMING AND ALGORITHM

ตัวแปร• ตัวแปรหมายถึงสิ่งทีใ่ช้สำาหรับ

การเก็บค่าต่างๆ ตัวอย่างเช่น salary, income,tax เป็นต้น

• ส่วนมากมกัจะกำาหนดค่าใหเ้ป็น 0 ก่อนเริ่มโปรแกรมเสมอ

Salary =0Income=0

Tax=0

Copyright (c) 2006 by Sasalak Tongkaw20

COMPUTER PROGRAMMING AND ALGORITHM

การกำาหนดคา่• มกัใช้เครื่องหมาย หรือ

เครื่องหมาย = เพื่อกำาหนดค่าให้กับตัวแปร เช่น

Salary =0Income=0

Tax=0

Salary ← 0Income ← 0

Tax ← 0

Copyright (c) 2006 by Sasalak Tongkaw21

COMPUTER PROGRAMMING AND ALGORITHM

นิพจน์ (expression)

• ( ) (วงเล ็บ)

• + (บวก) ∀ − (ลบ)• * (คูณ)• / (หาร)• ^ (ยกกำาล ัง)

• & (and) • | (or)• =• != หรือ <>• <• >

Copyright (c) 2006 by Sasalak Tongkaw22

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างทางตรรกะ• โครงสร้างทางตรรกะ(logic

structure) เชื่อมกนัเป็นโครงสร้างทางตรรกะได้ 3

ลักษณะ ได้แก่– ลำาดับ

– ทางเลือก– วงวน

Copyright (c) 2006 by Sasalak Tongkaw23

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างแบบลำาดับ(sequence structure)

• เป็นรูปแบบการทำางานแบบทำาคำาสั่งหนึง่ต่อจากอีกคำาสัง่หนึง่ ดังภาพ

• ตัวอยา่งเช่น– กำาหนดให ้ค่าเงินเดือน = 0

– รับค่าเงินเดือน statementstatementstatementstatement

statementstatementstatementstatement

Copyright (c) 2006 by Sasalak Tongkaw24

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างแบบทางเลือก(selection structure)

• เป็นรูปแบบทีม่กีารตัดสินใจเลือกข้อคำาสั่งทีจ่ะทำาต่อไป

• เช่น if-then-else ดังภาพ• โดยถ้าเงื่อนไขหลัง if เป็นจริง จะ

ทำาหลัง then ถ้าเงื่อนไขเป็นเทจ็จะทำาหลัง else

If If (test condition)(test condition)

ThenThen(statement)(statement)

ThenThen(statement)(statement)

ElseElse(statement)(statement)

ElseElse(statement)(statement)

Copyright (c) 2006 by Sasalak Tongkaw25

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างแบบวงวน(loop structure)

เรียกอีกชือ่หนึง่ว่า การวนซ้ำ้า(iteration)

ม ี2 รูปแบบคอื do until และ do while

loop

เงื่อนไข

yes

no

loop

เงื่อนไขyes

no

Copyright (c) 2006 by Sasalak Tongkaw26

COMPUTER PROGRAMMING AND ALGORITHM

คำาอธบิาย (Comment)

• คำาอธิบาย (comment) เป็นข้อความทีอ่ธิบายรายละเอียดของข้ันตอนการทำางาน ซ้ึ่งบางครั้งเราต้องการคำาอธิบายรายละเอียดเพิ่มเติมเพื่อใหเ้ข้าใจข้ันตอนวิธีชัดเจนยิง่ข้ึน โดยต้องเขียนอยูภ่ายในเครื่องหมาย

• /* comment */• // comment

Copyright (c) 2006 by Sasalak Tongkaw27

COMPUTER PROGRAMMING AND ALGORITHM

โครงสร้างโปรแกรม

Main

Compute-BillGet-Order Print-Bill

Compute-Tax

Compute-Discount

END OF CHEPTER 2

ANY QUESTION ?