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 สตู ร สวนลด = ราคาสินคา * อัตราสวนลด ราคาสุทธิ = ราคาสนิ คา - สว นลด
Search