Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore unit03

unit03

Published by wiraya_srikarw, 2019-02-20 21:05:16

Description: unit03

Search

Read the Text Version

LOGO การออกแบบและพฒั นาโปรแกรม (Program Design and Development) นางสาววริ ยา สขี าว

ทางเลอื ก 2 ทางเลอื ก

ทางเลือกมากกวา 2 ทางเลอื ก





การพัฒนาอัลกอริทมึ โครงสราง IF  เปนโครงสรา งทที่ ดสอบเง่อื นไข แลว เลือกวาจะทาํ หรือไมทํา กอ นทจ่ี ะ ไปทํางานอน่ื ตอไป เงื่อนไข ใช งานทีต่ องทํา IF ระบเุ งื่อนไข Then งานทีต่ องทาํ เมอ่ื เง่อื นไข ไมใ ช เปน จริง งานตอไป 6

การพฒั นาอัลกอรทิ ึม ตวั อยา ง โครงสรา ง IF  แมถ ามวาหวิ ขา วหรอื ไม ถาหิวก็ใหก นิ ถาไมห ิวไมต อ งกิน แลว จึง เดินทางไปโรงเรยี น (งานตอ ไป) หิวใชไ หม? ใช งานกินขาว ไมใ ช งานเดินทางมาเรยี น 7

ตัวอยา ง ใหร บั คา A ถา A นอ ยกวา 0 ให A/2 แลว แสดงคา A

สงิ่ ทโ่ี จทยตองการ แสดงคา A รหัสเทียม รับคา A ตวั แปรท่ีใช A 1. begin รูปแบบผลลัพธ แสดงคา A 2. read A สูตร ถา A< 0 A = A/2 3. if A<0 3.1 then A = A/2  ขั้นตอนบรรยาย 4. write A 1. เรมิ่ ตน 5.end 2. รบั คา A 3. ถา A< 0 3.1 แลว ทํา A = A/2 4. แสดงคา A 5. จบการทํางาน

Begin Read A A<0 Y N A=A/2 write A End

การพฒั นาอลั กอรทิ ึม ตัวอยาง โครงสรา ง IF  จงเขียนการคํานวณสว นลด (discount) และเงินท่ี ตอ งจาย(paymoney) ถา ซื้อสนิ คา (price)มากกวา 1000 บาทมสี ว นลดให 10% 11

สิง่ ทโ่ี จทยตอ งการ สว นลด , เงินท่ีตองจา ย รบั คา ราคาสินคา ตัวแปรทใ่ี ช สวนลด = discount เงินท่ีตอ งจาย = paymoney ราคาสินคา = price รูปแบบผลลัพธ แสดงคาสว นลด และเงินท่ีตอ งจาย สูตร ถา ราคาสินคา >1,000 คํานวณ สวนลด = ราคาสนิ คา x 0.1 เงินที่ตองจาย = ราคาสนิ คา - สวนลด

ขัน้ ตอนบรรยาย รหสั เทียม 1. เรมิ่ ตน 1. begin 2. รับคา ราคาสินคา 2. read price 3. กําหนดคา สวนลด =0 3. discount=0 4. ถา ราคาสินคา >1,000 4. if price>1000 4.1 แลวทํา สวนลด = ราคาสินคา x 0.1 4.1 then discount=pricex0 5. เงินท่ีตองจา ย = ราคาสินคา – สวนลด 5. Paymoney = price-discount 6. แสดงคา สวนลด , เงินท่ีตองจา ย 6. write discount , paymoney 7. จบการทาํ งาน 7.end

Begin Read price discount=0 Price> Y Discount 1000 =pricex0.1 N . Paymoney = price-discount write discount , paymoney End

การพัฒนาอัลกอริทึม เริ่มตน อาน ยอดซ้อื ตวั อยาง(ตอ ) โครงสราง IF สว นลด = 0 ไมใช ใช ผังงาน ยอดซอ้ื >1000 สว นลด = ยอดซื้อ * 10/100 เงนิ ทต่ี อ งชําระ = ยอดซื้อ - สวนลด พิมพ เงนิ ท่ีตองชาํ ระ 15 จบ

ใหคํานวณเงินเดอื น และ คา ลวงเวลา โดยถาทาํ งานเวลาไป 1 ชว่ั โมงขน้ึ ไป ไดคาลวงเวลาเปนชวั่ โมงละ 150 บาทตอชวั่ โมง คา ลวงเวลา = OT ชว่ั โมง = Time เงนิ เดือน = salary เงนิ เดอื นสทุ ธิ = sumsalary

การพฒั นาอัลกอริทึม โครงสรา ง IF-else IF ระบุเงื่อนไข Then งานทต่ี องทําเม่อื เง่ือนไข ไมใช ใช เปน จรงิ เงือ่ นไข Else งาน 2 งาน 1 งานทต่ี อ งทําเม่ือเงอื่ นไขเปน เทจ็ 17

ตัวอยาง จงเขียนแสดงผลการเรียน โดยมคี ะแนนรวมเตม็ 100 คะแนน มีเงื่อนไขในการคิดผลการเรียน คือ ถา ไดคะแนน 60 คะแนน ข้ึนไป ใหแสดงผลการเรียนเปน ผา น ถาตํา่ กวา 60 คะแนน ใหแ สดงผลการเรยี นเปน ไมผาน (คะแนน = Score เกรด = Grade)

สง่ิ ที่โจทยที่โจทยต อ งการ เกรด ข้นั ตอนการบรรยาย เร่มิ ตน ขอ มูลเขา คะแนน รบั คา คะแนน ถา คะแนน >= 60 รปู แบบผลลพั ธ แสดงเกรด 3.1 แลว ทาํ เกรด= ผาน 3.2 มฉิ ะนน้ั แลว เกรด = ไมผาน เงอื่ นไข ถาคะแนน >= 60 4. แสดงคา เกรด เกรด= ผาน 5.จบการทํางาน ถาคะแนน < 60 เกรด = ไม ผา น

Begin Read score  รหัสเทียม YN 1. begin Score>=60 2. read score grade=“ผา น” grade =“ไมผ าน” 3. if score>=60 Write grade 3.1 then grade=“ผา น” 3.2 Else grade =“ไมผาน” 4. write grade end 5. end

ใหคาํ นวณการคิดภาษีสนิ คา ถาเปน สินคาราคา 10,000 บาทข้ึนไป คดิ ภาษี 10% ถา นอยกวา 10,000 บาท คิดภาษี 5% และคดิ ราคารวมภาษขี องสินคา สิง่ ท่โี จทยตอ งการ การคิดภาษี , ราคารวมภาษขี องสินคา ขอ มูลเขา ราคาสินคา ตวั แปร ราคาสนิ คา (Price) , ภาษี (Vat) , ราคาสินคารวมภาษี= (paymoney) สตู ร เง่ือนไข ถา ราคาสนิ คา > =10,000 ภาษี = ราคาสินคา * 0.1 ถา ราคาสินคา < 10,000 ภาษี = ราคาสินคา * 0.05 ราคาสินคารวมภาษี= ราคาสินคา + ภาษี

ขั้นตอนบรรยาย รหัสเทยี ม 1.เรม่ิ ตน 1. Begin 2. รบั คา ราคาสินคา 2. Read Price 3. ถา ราคาสนิ คา >= 10,000 3. If Price >= 10,000  3.1 Then Vat= Price * 0.1 3.1 แลว ภาษี = ราคาสนิ คา* 0.1  3.2 Else Vat = Price * 0.05 3.2 มฉิ ะน้นั แลว ภาษี = ราคาสินคา * 0.05 4. paymoney = Price + Vat 4. ราคารวมภาษีของสินคา = ราคาสนิ คา + ภาษี 5. Write paymoney 5. แสดงคา ราคาสินคา รวมภาษขี องสินคา 6. End 6. จบการทํางาน

IF-Then-ELSE Start Read price Y N Vat = Price * 0.05 price>=10,000 Vat= Price * 0.1 paymoney = price-vat Write paymoney Stop

การบาน  1. คํานวณหาคา จอดรถ(paymoney) โดยมีขอกาํ หนดวา ถา รถจอด 3 ชัว่ โมง จะไมค ิด คาจอดรถ แตถ าจอดเกนิ 3 ชัว่ โมง(time) ชว่ั โมงทเี่ กนิ คิดชวั่ โมงละ 50 บาท  สูตร คาจอดรถ=(ชวั่ โมง-3)*50  2. รบั คา A ทางแปน พมิ พ แลวกาํ หนดคา ให B =2 ถา A >0 ให A = A – B และ A=A^2 แลวแสดงคา A ออกทางจอภาพ  3. ใหค ดิ เงนิ เดอื นสุทธิ ถา เงินเดอื น มากกวา 25,000 บาท จะไดโ บนสั 50% ของ เงนิ เดือน ถา เงนิ เดอื นนอยกวา หรอื เทากบั 25,000 บาท จะไดโ บนัส 40% ของเงนิ เดือน  เงนิ เดือน Salary เงินเดือนสทุ ธิ SumSalary โบนสั = Bonus  4. รา นคาขายสบายใจ ตอ งการคดิ ราคาขายสินคา เพ่ือหา ราคาสุทธิ (Payment) จาก การคิดราคาขาย (SumPrice) ถา ราคาสนิ คา (Price) มากกวาหรือเทา กับ1,000 บาท คิดราคาขายจากราคาสนิ คา 15%  5. ใหค าํ นวณการคดิ ภาษสี นิ คา ถา เปนสนิ คา ราคา 10,000 บาทขน้ึ ไป คดิ ภาษี 10% ถา นอ ยกวา 10,000 บาท คดิ ภาษี 5% และคิดราคารวมภาษขี องสนิ คา

การพฒั นาอลั กอรทิ ึม โครงสราง IF-Else  ตวั อยาง รา นคาแหง หนึ่งมนี โยบาย ลดราคาใหลกู คา ถา เปน ชาย จะลดให 5% แตถาเปน หญิง จะลดให 10% จงเขยี นอลั กอรทิ ึม เพือ่ พิมพย อดขาย  วิเคราะหป ญหา • Output คอื ราคาสทุ ธิ • Input คือ ราคาสนิ คา และ เพศ • Process เขยี นดว ยผงั งาน ดังในหนา ตอไป 25

IF-ELSE เร่ิมตน รบั คา รวมเงิน no yes รวมเงนิ <=1,000 สวนลด = รวมเงิน * 0.1 สว นลด = รวมเงนิ * 0.05 เงนิ ทีต่ องชาํ ระ = รวมเงนิ - สวนลด 26 พมิ พ เงนิ ทต่ี อ งชําระ จบงาน

ตัวอยา ง โครงสรา งการทํางานแบบมกี ารเลอื ก (Selection) ในบรเิ วณ A และ B ของหนว ยความจํามี เร่ิมตน ใช C=A-B ตัวเลขเกบ็ อยู จงเขียนผังงานท่ีแสดงการ ใช C=A+B เปรยี บเทยี บระหวา ง A และ B A>B ไมใช ตามเงอื่ นไข ดังนี้ A<B ถา A>B คาํ นวณ A-B นําผลท่ไี ดไปเกบ็ ไวท่ี ไมใช C C=A ถา A<B คาํ นวณ A+B นําผลท่ไี ดไปเก็บไว ที่ C ถา A=B เอา ไปเก็บไวท่ี C จบงาน 27

ตวั อยางการเขียนผังงาน  เมอื่ เราซ้อื ยาจากรา นขายยาท่มี อี ยทู วั่ ๆ ไปนั้น ในสวนของ 1. เรม่ิ ตน วธิ ีใชยามกั จะแยกขนาดรับประทานไวตามอายุ เชน  2. รบั คา อายุ อายุมากกวา 10 ป รับประทานครง้ั ละ 3 ชอนชา  3. ถา อายุ > 10 ป อายุ 6-10 ป รบั ประทานครงั้ ละ 2 ชอนชา  3.1 แลว รับประทานคร้ังละ 3 ชอ นชา อายุ 2-5 ป รบั ประทานครั้งละ 1 ชอ นชา  3.2 มิฉะนั้นแลว ถา อายุ >=6 ป เด็กอายุตา่ํ กวา 1 ป หา มรับประทาน  3.3 แลว รับประทานครง้ั ละ 2 ชอนชา จงเขยี นผงั งานที่แสดงถึงขนาดของการใชย าตามอายนุ ี้  3.4 มิฉะนั้นแลว ถา อายุ >=2 ป ใหเขยี นขัน้ ตอนการทํางานแบบบรรยาย  3.5 แลว รับประทานครง้ั ละ 1 ชอ นชา  3.6 มิฉะนัน้ แลว หา มรบั ประทาน  4. จบการทาํ งาน 28

เร่ิมตน ใช รับประทานครั้งละ รบั คา อายุ 3 ชอนชา อายุ > 10 ใช ไมใช รับประทานคร้งั ละ 2 ชอ นชา อายุ > =6 ไมใช ใช รบั ประทานครง้ั ละ อายุ > =2 1 ชอนชา ไมใ ช 29 หามรับประทาน จบงาน

ตัวอยา งการเขียนผงั งาน  1. Begin  2. Read อายุ  3. IF อายุ > 10 ป  3.1 Then รับประทานครงั้ ละ 3 ชอ นชา  3.2 Else IF อายุ >=6 ป  3.3 Then รับประทานครั้งละ 2 ชอนชา  3.4 Else IF อายุ >=2 ป  3.5 Then รบั ประทานครงั้ ละ 1 ชอนชา  3.6 Else หา มรับประทาน  4. End 30

ใหเ ขียนขนั้ ตอนการทํางานและผงั งานไฟจราจร 1.เริ่มตน 2. รบั คา ไฟจราจร 3. ถา ไฟจราจร = สีเขียว  3.1 แลว รถว่ิง 3.2 มิฉะน้ันแลว ถา ไฟจราจร = สแี ดง 3.3 แลว รถหยดุ 3.4 มฉิ ะนนั้ แลว รถพรอ ม 4.จบการทํางาน

โจทย จงเขียนโปรแกรมคํานวณการขายสินคา โดยรับ ราคาสินคา /หนวย และจํานวนทซ่ี อื้ จากผใู ช ถายอด รวมเกิน 1000 บาท ลดราคาให 10% โดยใหแสดง ราคาสวนลด และราคาสทุ ธิ 1. ส่ิงทโ่ี จทยต องการ  ราคารวม  ราคาสว นลด  ราคาสุทธิท่ตี องชําระ

2. รปู แบบผลลัพธ ราคาสนิ คา/หนวย => <รอรบั คาราคา> จํานวน => <รอรบั คา จํานวน> ราคารวม => <แสดงคา ราคารวม> สว นลด => <แสดงคา สว นลด> ราคาสุทธิ => <แสดงคาราคาสุทธ>ิ 3. ขอ มูลนาํ เขา  ราคาสนิ คา / หนวย  จํานวน

4. กาํ หนดตวั แปรทีใ่ ช ความหมาย ชื่อตัวแปร ราคา/หนว ย UnitPrice จาํ นวนทซี่ ือ้ QTY ราคารวม TotalPrice ราคาสว นลด Discount ราคาสทุ ธิ NetPrice

5. วธิ กี ารประมวลผล 1. เรมิ่ ตน 2. รับคา จากตวั แปร UnitPrice , QTY 3. คาํ นวณ TotalPrice = UnitPrice * QTY 4. เปรยี บเทยี บ ถา TotalPrice > 1000 ดังน้ี • ถา เปนจริง ให Discount = TotalPrice * 0.10 ไปทําขอ 5 • ถา เปน เท็จ ให Discount = TotalPrice * 0 ไปทําขอ 5 5. คาํ นวณราคาสุทธิ NetPrice = TotalPrice - Discount 6. แสดงผลลัพธ 7. จบการทาํ งาน

โจทย จงเขียนโปรแกรมคํานวณคะแนนรวมจากการรบั คา คะแนนรายภาคและคะแนนปลายภาค เพอ่ื พิจารณาวา สอบผานหรอื สอบตก โดยแสดงผลการ สอบ ถาคะแนนรวมตา่ํ กวา 60 คะแนน ถอื วา สอบตก 1. สิ่งทโ่ี จทยตอ งการ  คะแนนรวม  ผลการสอบ

2. รปู แบบผลลัพธ กรอกคะแนนรายภาค => <รอรับคาคะแนนรายภาค> กรอกคะแนนปลายภาค => <รอรับคาคะแนนปลายภาค> คะแนนรวม => <แสดงคา คะแนนรวม> ผลการสอบ => <แสดงคา ผลการสอบ> 3. ขอมลู นําเขา  คะแนนรายภาค  คะแนนปลายภาค

4. กาํ หนดตวั แปรท่ใี ช ความหมาย ช่ือตัวแปร คะแนนรายภาค Mid_score คะแนนปลายภาค Final_score คะแนนรวม Total_score

5. วิธกี ารประมวลผล (แบบท่ี 1) 1. เริม่ ตน 2. รบั คาใสตวั แปร Mid_score , Final_score 3. คํานวณ Total_score = Mid_score + Final_Score 4. เปรียบเทยี บ ถา Total_score >= 60 ดงั นี้ • ถา เปนจรงิ ให พมิ พขอ ความ “สอบผา น” ไปทําขอ 5 • ถา เปน เท็จ ให พมิ พข อ ความ “สอบตก” ไปทําขอ 5 5. จบการทาํ งาน

5. วิธีการประมวลผล (แบบท่ี 2) 1. เรมิ่ ตน 2. รบั คาใสตัวแปร Mid_score , Final_score 3. คํานวณ Total_score = Mid_score + Final_Score 4. เปรียบเทยี บ คา Total_score ดังน้ี • ถา Total_score >= 60 ให พมิ พข อ ความ “สอบผาน” ไปทําขอ 5 • ถา Total_score < 60 ให พมิ พขอ ความ “สอบตก” ไปทาํ ขอ 5 5. จบการทาํ งาน

โจทย จงเขียนโปรแกรมคาํ นวณคา แรงและภาษีท่ตี อ ง จา ยของพนักงาน 1 คน โดยการรบั ขอมลู รหสั ประจาํ ตัวพนักงาน , อตั ราคาแรง , จาํ นวนช่วั โมงการ ทาํ งาน โดยมขี อกาํ หนดในการหกั ภาษี ณ ที่จาย ดังนี้ ถาคาแรงมากกวา 5000 คดิ ภาษี 5% ของคา แรงที่ได ถาคาแรงนอ ยกวาหรือเทา กบั 5000 คดิ ภาษี 2% 1. สง่ิ ที่โจทยต องการ  ภาษที ีห่ ักจากคา แรง ณ ทจี่ า ย  คา แรงที่ไดร บั

2. รปู แบบผลลพั ธ เลขประจาํ ตวั => <รอรบั คา เลขประจําตวั > จํานวนช่ัวโมง => <รอรับคา จํานวนชวั่ โมง> อัตราคา แรง => <รอรับคา อตั ราคาแรง> คา แรง => <แสดงคา คาแรง> ภาษี => <แสดงคา ภาษ>ี คา แรงสุทธิหลังหักภาษี => <แสดงคาคาแรงสทุ ธ>ิ

3. ขอมูลนําเขา  รหัสประจาํ ตวั พนกั งาน  จํานวนชวั่ โมง  อัตราคา แรง 4. กําหนดตวั แปรที่ใช ชอื่ ตวั แปร ความหมาย Emp_ID รหสั ประจําตวั พนกั งาน Hours จาํ นวนช่วั โมงท่ีทาํ งาน Rate อัตราคา แรง Pay คา แรง Tax ภาษี Net_Pay คา แรงสทุ ธิ

5. วิธกี ารประมวลผล 1. เรม่ิ ตน 2. รบั คาจากตวั แปร Emp_ID , Hours , Rate 3. คํานวณ Pay = Hours * Rate 4. เปรยี บเทยี บ Pay > 5000 • ถา เปน จริง ให Tax = Pay * 0.05 ไปทํางานขอ 5 • ถา เปน เทจ็ ให Tax = Pay * 0.02 ไปทํางานขอ 5 5. คาํ นวณคา แรงสุทธิ Net_Pay = Pay - Tax 6. แสดงผลลัพธ 7. จบการทาํ งาน

ตวั อยางที่ 6 โจทย จงเขียนโปรแกรมแสดงชื่อวนั ในสปั ดาห จากเลขวนั ท่รี บั จากผใู ช - ถา เลข เทา กบั 1 แสดง วนั อาทิตย - ถาเลข เทา กบั 2 แสดง วันจนั ทร - ถาเลข เทา กบั 3 แสดง วนั องั คาร - ถา เลข เทา กบั 4 แสดง วันพุธ - ถา เลข เทา กับ 5 แสดง วันพฤหัสบดี - ถาเลข เทา กับ 6 แสดง วันศกุ ร - ถาเลข เทา กบั 7 แสดง วันเสาร - ถาเปนเลขอนื่ ๆ แสดง ตวั เลขไมถูกตอง

1. ส่ิงทีโ่ จทยตอ งการ  แสดงช่ือวัน 2. รูปแบบผลลพั ธ เลขวัน => <รอรบั คา> วนั : <แสดงคา> 3. ขอ มลู นําเขา เลขวัน(1-7) 4. กาํ หนดตวั แปรท่ใี ช ชือ่ ตัวแปร ความหมาย day_no เลขวนั day_name ชือ่ วนั

5. วธิ กี ารประมวลผล 1. เริ่มตน 2. รับคาใสตัวแปร day_no 3. เปรียบเทียบคาของ day_no ดังนี้ ถา day_no = 1 ให day_name = “วนั อาทติ ย” ไปทํางานขอ 4 ถา day_no = 2 ให day_name = “วันจนั ทร” ไปทํางานขอ 4 ถา day_no = 3 ให day_name = “วันอังคาร” ไปทาํ งานขอ 4 ถา day_no = 4 ให day_name = “วันพธุ ” ไปทาํ งานขอ 4 ถา day_no = 5 ให day_name = “วนั พฤหสั บด”ี ไปทาํ งานขอ 4 ถา day_no = 6 ให day_name = “วนั ศกุ ร” ไปทํางานขอ 4 ถา day_no = 7 ให day_name = “วนั เสาร” ไปทาํ งานขอ 4 ถา day_no เปน เลขอน่ื ๆ ให day_name = “ตวั เลขไมถ กู ตอ ง” ไปทาํ งานขอ 4 4. พิมพผ ลลัพธ day_name 5. จบการทาํ งาน

การบา น โจทย จงเขียนโปรแกรมตัดเกรดวชิ าคอมพวิ เตอรและการเขียน โปรแกรม โดยรับคะแนนกลางภาคและคะแนนปลายภาค โดยมคี ะแนนรวมเตม็ 100 คะแนน มเี งอ่ื นไขในการคดิ เกรด ดังน้ี (คะแนน = Score เกรด = Grade) - ถาไดคะแนน 80 คะแนน ขึน้ ไปไดเ กรด A - ถาไดค ะแนน 70-79 คะแนน ไดเกรด B - ถาไดคะแนน 60-69 คะแนน ไดเกรด C - ถาไดคะแนน 50-59 คะแนน ไดเ กรด D - ถาไดคะแนนต่าํ กวา 50 คะแนน ไดเกรด F

ใหคํานวณหาราคาสทุ ธิ จากการซ้อื สนิ คา ถา ราคาสินคา 10,000 บาทขน้ึ ไป จะไดส วนลด 15 % ถา ราคาสินคา 9,000 บาทข้ึนไป จะไดสว นลด 12 % ถา ราคาสินคา 8,000 บาทขึ้นไป จะไดสวนลด 10 % ถา ราคาสินคา 7,000 บาทข้ึนไป จะไดสว นลด 8 % ถา ราคาสินคา 6,000 บาทขึ้นไป จะไดสว นลด 7 % ถา ราคาสินคา นอยกวา 6,000 บาท จะไดส วนลด 5 % สว นลด = sale ราคาสินคา = price ราคาสทุ ธิ = paymoney

ส่ิงทโี่ จทยตองการ ราคาสุทธิ ,สวนลด ขอมลู เขา ราคาสินคา รูปแบบผลลัพธ แสดงคาราคาสุทธิ และสว นลด ตวั แปร สวนลด = sale , ราคาสนิ คา = price, ราคาสุทธิ = paymoney สตู ร สวนลด = ราคาสินคา * อัตราสวนลด  ราคาสุทธิ = ราคาสนิ คา - สว นลด


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook