Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
อลกอรทมและผงงาน(Algorithm and Flowchart)
กระบวนการพฒนาโปรแกรมคอมพวเตอรม 6 ขนตอน ดงน1. วเคราะหปญหา2. ออกแบบวธการแกปญหา3. เขยนโปรแกรม4. ทดสอบและแกไขโปรแกรม5. จดท าเอกสารประกอบ6. บ ารงรกษาโปรแกรม
อลกอรทมและผงงาน
อลกอรทม (Algorithm) เปนสวนหนงในขนตอนการพฒนาโปรแกรมคอมพวเตอร เพอใหคอมพวเตอรท างานตามทตองการหรอแกปญหาใด ๆ ประกอบดวยชดของขนตอนการท างานทชดเจนและเกดจากแนวคดอยางมระบบ เพอน าไปสผลลทธทตองการ
ความหมายอลกอรทม
1. มความถกตองแมนย า2. แตละขนตอนในอลกอรทมเขยนใหเขาใจงาย3. ควรมการออกแบบอลกอรทมใหมระดบชน โดยประกอบขนตอนการท างานหลก ในแตละขนตอนสามารถแตกเปนขนตอนยอย ๆ
ลกษณะของอลกอรทมทด
1. ดานหนวยความจ าตวอยางการก าหนดคาใหกบตวแปร
ความรพนฐานส าหรบการเขยนอลกอรทม
2. ดานการค านวณล าดบความส าคญของสญลกษณหรอเครองหมายการค านวณ
ความรพนฐานส าหรบการเขยนอลกอรทม
3. ดานการเปรยบเทยบ
1. การเขยนรหสจ าลอง (Pseudo Code)2. การเขยนผงงาน (Flowchart)
วธการเขยนอลกอรทม
การเขยนรหสจ าลองคอ ค าสงหรอสญลกษณทนยมใชในการเขยนรหสจ าลองโดยใชขอความเปนประโยคภาองกฤษงาย ๆ อธบายแทน ซงประกอบดวยค าสงตาง ๆ ทใกลเคยงกบภาษาคอมพวเตอรทใชในการเขยนโปรแกรมจรง ๆ เชน begin..end, if..else, do.. while,For, read, print เปนตน
ตวอยาง 1 ก าหนดใหมการรบขอมลคะแนนเกบ คะแนนสอบกลางภาค และคะแนนสอบปลายภาค แลวแสดงเกรดทได โดยมเกณฑในการคดเกรดดงน
คะแนนรวม 0 – 49 เกรด Fคะแนนรวม 50 – 59 เกรด Dคะแนนรวม 60 – 69 เกรด Cคะแนนรวม 70 – 79 เกรด Bคะแนนรวม 80 ขนไป เกรด A
ก ำหนดตวแปรcollect = คะแนนเกบmid = คะแนนสอบกลางภาคfinal = คะแนนสอบปลายภาคtotal = คะแนนรวมgrade = เกรดทได
รหสจ ำลองAlgorithm Calculate GradeBegin
read collect, mid, finaltotal = collect + mid + finalif total between 0 to 49 then
grade = “F”else if total between 50 to 59 then
grade = “D”else if total between 60 to 69 then
grade = “C”else if total between 70 to 79 then
grade = “B”else grade = “A”print grade
End
ตวอยาง 2 ก าหนดใหมการรบขอมลเลขจ านวนเตมบวก โดยก าหนดใหปอนขอมลไดเรอยๆ จนกวาจะปอนขอมลทมคาเทากบ 0 จงสนสดการปอนขอมล แลวแสดงผลรวมของ เลขทงหมดทปอน
ก ำหนดตวแปรnumber = เลขจ านวนเตมsum = ผลรวมของเลขทปอน
รหสจ ำลองAlgorithm SummationBegin
sum = 0do
read numbersum = sum + number
while number not equal to 0print sum
End
ผงงาน (Flowchart) คอแผนภาพหรอสญลกษณทใชแสดงล าดบหรอขนตอนในการแกปญหาโปรแกรม เพอบอกลกษณะการท างานในขนตอนตาง ๆ โดยมการเชอมโยงดวยลกศร
การเขยนผงงาน
ประเภทของผงงาน
1. ผงงานระบบ (System Flowchart)2. ผงงานโปรแกรม (Program Flowchart)
ตวอยางผงงานระบบ (System Flowchart)
100
ผงงานระบบของการค านวณพนทสเหลยม 100 รป
ตวอยางผงงานโปรแกรม (Program Flowchart)
100
= X
ผงงานโปรแกรมของการค านวณพนทสเหลยม 100 รป
1. สามารถเรยนรและท าความเขาใจโปรแกรมไดงาย2. สอความหมายดวยภาพท าใหงาย และสะดวกตอการพจารณาล าดบขนตอนในการท างาน
3. ตรวจสอบความถกตองของล าดบขนตอนในการท างานในโปรแกรม
4. ท าใหเกดความสะดวก รวดเรวในการท างาน5. สะดวกในการปรบปรงแกไขกอนการแกไขโปรแกรม
ประโยชนของผงงาน
1. เปนการสอความหมายบคคลตอบคคลเทานน2. ไมสามารถทราบไดวาขนตอนใดมความส าคญมากกวากน3. อาจเปนการสนเปลอง เพราะตองใชวสดอน ๆ ประกอบในการเขยน4. ผงงานจะมขนาดใหญ ถาโปรแกรมทพฒนาเปนงานขนาดใหญ5. ผงงานบอกขนตอนการท างาน แตไมไดระบวาท าไมตองเปนเชนนน
ขอจ ากดของผงงาน
1. เปนการสอความหมายบคคลตอบคคลเทานน2. ไมสามารถวาขนตอนใดมความส าคญมากกวากน3. อาจเปนการสนเปลอง เพราะตองใชวสดอน ๆ ประกอบในการเขยน
4. ผงงานบอกขนตอนการท างาน แตไมไดระบวาท าไมตองเปนเชนนน
ขอจ ากดของผงงาน
โดยใชสญลกษณของ American National Standard Institute (ANSI)และ International Standard Organization (ISO) ก าหนดดงน
สญลกษณทใชในการเขยนผงงาน
สญลกษณทใชในการเขยนผงงาน
/
/
/
/
/
/
/
/
/
1. จดเรมตน/สนสด
2. การก าหนดคาเรมตน (Initialize)
3. การรบขอมล (Input)
4. การประมวลผล (Process)
หลกเกณฑในการเขยนผงงาน
5. การแสดงผลลพธ (Output)
6. การทดสอบ (Testing)
หลกเกณฑในการเขยนผงงาน
Price > 5000Discount = Price *
0.10
Discount = Price * 0.05
True
False
1. เรมจากสวนบนของกระดาษมายงสวนลาง และจากทางซายมอไปขวามอของหนากระดาษ
2. ใชรปแบบตามมาตรฐานทก าหนด3. ทศทางของผงงานควรเปนไปอยางมระบบ4. ควรเขยนค าอธบายภายในสญลกษณเพยงสน ๆ เขาใจงาย5. มความเปนระเบยบเรยบรอย สะอาด และมชอของผงงาน
หลกเกณฑการใชสญลกษณและทศทางของผงงาน
การเขยนผงงานโปรแกรมค านวณราคาสนคาของพนกงานขาย ก าหนดใหรบขอมลสนคาไมจ ากด โดยใหรบราคาเปน 0 หากปอนขอมลครบแลวก ำหนดตวแปร
Price = ราคาสนคา Qty = จ านวนทซอTotal = ราคารวมสนคาแตละรายการ Sum = ราคารวมสนคาทงหมดCash = จ านวนเงนทรบมา Change = เงนทอน
ผงงานStart
Read Price, Qty
Price != 0
Total = Price * QtySum = Sum + Total
Print Sum
A
A
True
False
Read Cash
Change = Cash - Sum
Print Change
Print Sum, Cash, Change
End
Sum = 0
Print Price, Qty, Total
1. โครงสรางแบบล าดบ (Sequential Structure)
โครงสรางของผงงาน
โครงสรางแบบล าดบ
ตวอยาง ก าหนดใหมการรบขอมลเปนความกวางและความยาวของสเหลยมผนผา แลวค านวณพนทพรอมทงแสดงผลลพธก ำหนดตวแปร
Width = ความกวาง Length = ความยาว Area = พนทผงงำน Start
End
Read Width, Length
Area = Width * Length
Print Area
อธบำยขนตอนกำรท ำงำน
1. รบขอมล Width และ Length2. ค านวณ Area = Width * Length3. แสดงผลลพธ Area
ผงงานการค านวณพนทสเหลยมผนผา
ตวอยาง ก าหนดใหมการรบคารศมของวงกลม แลวแสดงผลลพธเปนพนททค านวณไดก ำหนดตวแปร
Radius = รศมวงกลมArea = พนทวงกลมก ำหนดคำคงท
PI = 3.1416
ผงงำน
ผงงานการค านวณพนทวงกลม
อธบำยขนตอนกำรท ำงำน1. ก าหนดคาคงท PI = 3.14162. รบขอมล Radius3. ค านวณ Area = PI * Radius^24. แสดงผลลพธ Area
ตวอยาง ก าหนดใหมการรบขอมลเปนราคาสนคา แลวค านวณราคาสทธหลงจากคดภาษมลคาเพม 7 % จากนนใหมการรบขอมลเปนจ านวนเงนทจายแลวค านวณเงนทอนพรอมทงแสดงผลลพธก ำหนดตวแปร
Price = ราคาสนคา Vat = ภาษมลคาเพม Net = ราคาสทธหลงคดภาษมลคาเพมPay = จ านวนเงนทจาย Change = เงนทอน
ผงงำน
ผงงานการค านวณราคาสนคาและเงนทอน
อธบำยขนตอนกำรท ำงำน1. รบขอมล Price2. ค านวณ Vat = Price * 0.073. ค านวณ Net = Price + Vat4. แสดงผลลพธ Vat และ Net5. รบขอมล Pay6. ค านวณ Change = Pay – Net7. แสดงผลลพธ Change
Vat = Price * 0.07
Net = Price + Vat
Change = Pay - Net
Start
End
Read Price
Print Vat, Net
Read Pay
Print Change
2. โครงสรางแบบทางเลอก (Selection Structure)
โครงสรางของผงงาน
ConditionTrueFalse
โครงสรางแบบทางเลอก
ตวอยาง ก าหนดใหมการรบคาเงนฝาก การค านวณดอกเบยม 2 อตรา ถาเงนฝากตงแต 1 ลานบาทเปนตนไป คดอตราดอกเบย 2.5% แตถาเงนฝากต ากวา 1 ลานบาท คดอตราดอกเบย 1.0% แลวแสดงผลลพธดอกเบยเงนฝากทไดก ำหนดตวแปร
Deposit = เงนฝาก Interest = ดอกเบยทได
ผงงำน
ผงงานการค านวณดอกเบยเงนฝาก
Deposit >=
1,000,000
Interest = Deposit * 0.25
TrueFalse
Interest = Deposit * 0.10
Start
Read Deposit
Print Interest
End
อธบำยขนตอนกำรท ำงำน1. รบขอมล Deposit2. พจารณาเงอนไข : ถา Deposit >= 1000000
2.1 จรง : ค านวณ Interest = Deposit * 0.252.2 เทจ : ค านวณ Interest = Deposit * 0.10
3. แสดงผลลพธ Interest
ตวอยาง ก าหนดใหมการรบขอมลราคาสนคา แลวค านวณสวนลดทไดรบโดยมเงอนไขวา ถาราคาสนคาไมเกน 3,000 บาท ใหสวนลด 5% ถาราคามากกวา 3,000 บาท ใหสวนลด 10% พรอมแสดงผลลพธ
Price <= 3000
Discount = Price * 0.05
TrueFalse
Discount = Price * 0.10
Start
Read Price
Print Discount
End
อธบำยขนตอนกำรท ำงำน1. รบขอมล Price2. พจารณาเงอนไข : ถา Price <= 3000
2.1 จรง : ค านวณ Discount = Price * 0.052.2 เทจ : ค านวณ Discount = Price * 0.10
3. แสดงผลลพธ Discount
ก ำหนดตวแปรPrice = ราคาสนคาDiscount = สวนลด
ผงงำน
ตวอยาง ก าหนดใหมการรบคาชวโมงทท างาน แลวแสดงผลลพธคาแรงทได การค านวณคาแรงมเกณฑดงน
ท างานไมเกน 3 ชวโมง คาแรงชวโมงละ 50 บาทท างาน 4-6 ชวโมง คาแรงชวโมงละ 70 บาทท างาน 7 ชวโมงเปนตนไป คาแรงชวโมงละ 90 บาท
ก ำหนดตวแปร
Hour = ชวโมงทท างาน Money = คาแรงทได
ผงงำน
ผงงานการค านวณคาแรง
Start
Read Hour
Hour <= 3
Hour <= 6
Money = Hour * 50
Money = Hour * 70
Money = Hour * 90
Print Money
End
True
True
False
False
อธบำยขนตอนกำรท ำงำน1. รบขอมล Hour2. พจารณาเงอนไขท 1 : ถา Hour <= 3
2.1 จรง : ค านวณ Money = Hour * 502.2 เทจ : พจารณาเงอนไขท 2 : ถา Hour <= 6
2.2.1. จรง : ค านวณ Money = Hour * 702.2.2. เทจ : ค านวณ Money = Hour * 90
3. แสดงผลลพธ Money
ตวอยาง ก าหนดใหมการรบขอมลอายและความสง แลวแสดงผลลพธคาบตรผานประตสวนสนก โดยมเกณฑในการคดดงน
ผงงำน
ผงงานการค านวณคาบตรผานประต
Start
Read Age,
Height
Age <= 12 and
Height <= 120
Age <= 12 and
Height > 120
Ticket = 0
Ticket = 10
Ticket = 20
Money
End
True
True
False
False
Age <= 20
Ticket = 30
True
False
อธบำยขนตอนกำรท ำงำน1. รบขอมล Age, Height2. พจารณาเงอนไขท 1 : ถา Age <= 12 และ Height <= 120
2.1 จรง : Ticket = 02.2 เทจ : พจารณาเงอนไขท 2 : ถา Age <= 12 และ
Height > 1202.1.1. จรง : Ticket = 102.2.2. เทจ : พจารณาเงอนไขท 3 : ถา Age <= 20
2.2.2.1. จรง : Ticket = 202.2.2.2. เทจ : Ticket = 30
3. แสดงผลลพธ Ticket
3. โครงสรางแบบการท าซ า (Iteration Structure)
โครงสรางของผงงาน
โครงสรางแบบการท าซ า
Condition
Condition
True
True
False
False
1 2
ตวอยาง ก าหนดใหมการรบขอมลเงนฝาก จ านวนปทฝาก อตราดอกเบย (รอยละ) แลวแสดงเงนคงเหลอในบญชเมอครบจ านวนปทก าหนด (มการค านวณดอกเบยทบตน)ก ำหนดตวแปร
Deposit = เงนฝากYear = จ านวนปทฝากRate = อตราดอกเบยBalance = เงนคงเหลอในบญชN = ตวแปรส าหรบนบจ านวนปทผานไป
ผงงำน
ผงงานการค านวณเงนคงเหลอในบญช
Start
Read Deposit, Year, Rate
N = 0Balance = Deposit
N < YearBalance = Balance + (Balance * Rate/100)
N = N + 1
Print Balance
End
True
False
0
อธบำยขนตอนกำรท ำงำน
สมมตมการรบคา Deposit = 1,000 Year = 4 Rate = 3ก าหนดคาเรมตน N = 0 Balance = Deposit = 1,000
ตวอยาง ก าหนดใหมการรบขอมลคะแนนสอบของนกเรยน 10 คน แลวค านวณคะแนนรวมและคะแนนเฉลยพรอมทงแสดงผลลพธก ำหนดตวแปร
Score = คะแนนสอบTotal = คะแนนรวมAverage = คะแนนเฉลยCount = ตวนบล าดบทของนกเรยน
ผงงำน
ผงงานการค านวณคะแนนรวมและคะแนนเฉลยของนกเรยน 10 คน
Start
Total = 0, Count = 1
Count <= 10 Read ScoreTotal = Total + Score
Count = Count + 1
Average = Total / 10
Print Total,
Average
End
True
False
อธบำยขนตอนกำรท ำงำน1. ก าหนดคาเรมตน Total = 0 และ Count = 12. พจารณาเงอนไข : ถา Count <= 10
2.1 จรง : ใหท าค าสงตอไปน 2.1.1. รบขอมล Score2.1.2. ค านวณคะแนนรวม Total = Total + Score2.2.3. เพมคาตวนบ Count = Count + 12.1.4. กลบไปท าขอ 2. ซ า
2.2 เทจ : ออกไปท าขอ 3.3. ค านวณ Average = Total / 104. แสดงผลลพธ Total และ Average
ตวอยาง บรษท สยามมงคง จ ากด ผลตสนคาสงออกได 2,000 ชนตอป ในแตละปมก าลงการผลตเพมขนปละ 365 ชน ใหค านวณและแสดงผลลพธวาใชเวลากปบรษท สยามมงคง จ ากด จงจะผลตสนคาสงออกไดมากกวา 5,000 ชนตอปก ำหนดตวแปร
Product = จ านวนสนคาทผลตสงออกYear = นบจ านวนป
ผงงำน
ผงงานการค านวณจ านวนป
Start
Product = 2000
Year = 0
Product <= 5000
Product = Product + 365
Year = Year + 1
Print Year
End
True
False
อธบำยขนตอนกำรท ำงำน1. ก าหนดคาเรมตน Product = 2000 และ Year = 02. ใหท าค าสงตอไปน
2.1 ค านวณ Product = Product + 3652.2 นบจ านวนปเพมขน Year = Year + 12.3 พจารณาเงอนไข : ถา Product <= 5000
2.3.1. จรง : กลบไปท าขอ 2. ซ า2.3.2. เทจ : ออกไปท าขอ 3.
3. แสดงผลลพธ Year
ตวอยาง ก าหนดใหมการรบขอมลความสงของนกเรยนในหองเรยนแหงหนง โดยก าหนดใหปอนขอมลไดเรอยๆ จนกวาจะปอนความสงเปน 0 จงสนสดการปอนขอมล แลวแสดงความถของจ านวนนกเรยนทมความสงอยในชวงตางๆ พรอมทงแสดงผลลพธ
ก ำหนดตวแปรHeight = ความสงCount1 = ความถของนกเรยนทมความสงนอยกวาหรอเทากบ 149 ซม.Count2 = ความถของนกเรยนทมความสงในชวง 150 - 159 ซม.Count3 = ความถของนกเรยนทมความสงในชวง 160 - 169 ซม.Count4 = ความถของนกเรยนทมความสงในชวง 170 - 179 ซม.Count5 = ความถของนกเรยนทมความสง 180 ซม. ขนไป
อธบำยขนตอนกำรท ำงำน1. ก าหนดคาเรมตน Count1, Count2, Count3, Count4, Count52. ท าค าสงตอไปน
2.1 รบขอมล Height2.2 พจารณาเงอนไขท 1 : ถา Height > 0 และ Height < 150
2.2.1. จรง : ค านวณ Count1 = Count1 + 12.2.2. เทจ : พจารณาเงอนไขท 2 : ถา Height >= 150 และ Height < 160
2.2.2.1. จรง : ค านวณ Count2 = Count2 + 12.2.2.2. เทจ : พจารณาเงอนไขท 3 : ถา Height >= 160 และ Height < 170
2.2.2.2.1. จรง : ค านวณ Count3 = Count3 + 12.2.2.2.2. เทจ : พจารณาเงอนไขท 4 : ถา Height >= 170 และ Height < 180
2.2.2.2.2.1. จรง : ค านวณ Count4 = Count4 + 12.2.2.2.2.2. เทจ : พจารณาเงอนไขท 4 : ถา Height >= 180
2.2.2.2.2.2.1. จรง : ค านวณ Count5 = Count5 + 12.3 พจารณาเงอนไข : ถา Height ไมเทากบ 0
2.3.1. จรง : กลบไปท าขอ 2. ซ า2.3.2. เทจ : ออกไปท าขอ 3.
3. แสดงผลลพธ Count1, Count2, Count3, Count4, Count5
ผงงำน
ผงงานการค านวณความถของนกเรยนทมความสงในชวงตาง
Start
Count1 = 0, Count2 = 0, Count3 = 0,
Count4 = 0, Count5 = 0
Read Height
Height > 0 and Height < 150 Count1 = Count1 + 1
Height >= 150 and Height < 160 Count2 = Count2 + 1
True
False
True
Height >= 160 and Height < 170 Count3 = Count3 + 1
False
True
Height >= 170 and Height < 180 Count4 = Count4 + 1
False
True
Height >= 180 Count5 = Count5 + 1True
False
False
Height != 0
False
Print Count1, Count2,
Count3, Count4, Count5
End
True