4121103 การเขียนโปรแกรมและอัลกอริทึ่ม...
-
Upload
know-mastikate -
Category
Education
-
view
36 -
download
3
Transcript of 4121103 การเขียนโปรแกรมและอัลกอริทึ่ม...
บทที่ 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