1 / 41

คำสั่งแบบเลือกทำ

คำสั่งแบบเลือกทำ. Selection Statement. เครื่องหมายในการเปรียบเทียบเงื่อนไข. ลักษณะการเปรียบเทียบ. ต้องมีข้อมูล 2 ตัวเปรียบเทียบ ผลจากเปรียบเทียบจะได้ค่า จริง (True) หรือ เท็จ (False) เท่านั้น. การเปรียบเทียบที่เงื่อนไขมากกว่า 1 เงื่อนไข. มีตัวเชื่อมเงื่อนไข คือ AND OR NOT

alyson
Télécharger la présentation

คำสั่งแบบเลือกทำ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. คำสั่งแบบเลือกทำ Selection Statement

  2. เครื่องหมายในการเปรียบเทียบเงื่อนไขเครื่องหมายในการเปรียบเทียบเงื่อนไข

  3. ลักษณะการเปรียบเทียบ • ต้องมีข้อมูล 2 ตัวเปรียบเทียบ • ผลจากเปรียบเทียบจะได้ค่า จริง(True)หรือ เท็จ(False) เท่านั้น

  4. การเปรียบเทียบที่เงื่อนไขมากกว่า 1 เงื่อนไข • มีตัวเชื่อมเงื่อนไข คือ AND OR NOT • เช่น (A = B) OR (A = 20) • AND และ OR จะวางไว้ระหว่างเงื่อนไขที่ 1 และเงื่อนไขที่ 2 • เงื่อนไขต้องอยู่ในวงเล็บเสมอ

  5. การเปรียบเทียบที่เงื่อนไขมากกว่า 1 เงื่อนไข • การใช้ NOT ปฏิเสธเงื่อนไข • ให้ผลตรงข้ามกับเงื่อนไข

  6. การเปรียบเทียบที่เงื่อนไขมากกว่า 1 เงื่อนไข • ผลการเปรียบเทียบโดยใช้ AND และ OR เชื่อม

  7. คำสั่งเกี่ยวกับการเลือกทำคำสั่งเกี่ยวกับการเลือกทำ รูปประโยคที่ใช้ในการตรวจสอบเงื่อนไขในภาษาปาสคาล มี 3 รูปแบบคือ • คำสั่ง IF • คำสั่ง IF - ELSE • คำสั่ง CASE

  8. คำสั่ง IF – THEN • IF – THEN เป็นคำสั่งที่ใช้เพื่อการตัดสินใจเลือกทำงานอย่างใดอย่างหนึ่ง โดยอาศัยการทดสอบเงื่อนไขบางประการก่อน • ถ้าเงื่อนไขที่ตรวจสอบให้ผลลัพธ์เป็นจริง จึงทำคำสั่งที่กำหนด และไปทำงานที่คำสั่งอื่นต่อไป

  9. คำสั่ง IF – THEN • รูปแบบคำสั่ง IF <นิพจน์เงื่อนไข> THEN คำสั่งการทำงานเมื่อเงื่อนเป็นจริง ; IF <นิพจน์เงื่อนไข> THEN BEGIN คำสั่งการทำงานเมื่อเงื่อนเป็นจริง1; คำสั่งการทำงานเมื่อเงื่อนเป็นจริง2; คำสั่งการทำงานเมื่อเงื่อนเป็นจริงn; END;

  10. คำสั่ง IF – THEN • ตัวอย่าง 1 IF A > 20 THEN WriteLn(‘A is Big’) ; • ตัวอย่าง 2 IF (A > 20) THEN BEGIN WriteLn(‘A is Bigger than 20’); WriteLn(’20 is Less then A’); END;

  11. ตัวอย่างการใช้ IF (1) • เขียนโปรแกรมรับอายุ ถ้าอายุมากกว่า 60 แสดงข้อความ You are Old!!! • รูปแบบ Input your age = <รอรับค่าใส่ตัวแปร age> You areOld!! <ในกรณีอายุมากกว่า 60แต่ถ้าอายุไม่เกิน 60 ไม่ต้องแสดงข้อความใดๆทั้งสิ้น> *****************************************************

  12. Program If1; Uses wincrt; VAR Age : Integer; BEGIN Write(‘Input your age = ’); ReadLn(age); IF age > 60 THEN Write(‘You are Old!!!’); WriteLn(‘******************************************’) END. เงื่อนไข งานที่ต้องทำเมื่อเงื่อนไขเป็นจริง

  13. ตัวอย่างการใช้ IF (2) • รับค่า รหัสผ่านจากผู้ใช้ ถ้ารหัสผ่านที่ป้อนมีค่า GoodLuck ให้แสดงข้อว่า Welcome Manager และข้อความ Exit Password System • รูปแบบ Input Password => <รอรับค่าใส่ตัวแปร pwd> Welcome Manager Exit Password System ในกรณีที่ป้อนรหัสผ่านถูกต้อง

  14. Program If2; Uses wincrt; Var pwd : String[20]; BEGIN write(‘Input Password => ’); readLn(pwd); IF (pwd=‘GoodLuck’) THEN Begin writeLn(‘Welcome Manager’); writeLn(‘Exit Password System’); End; END.

  15. ตัวอย่างการใช้ IF (3) • บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ำกว่า 5000 อีกคนละ 10% และให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน • รูปแบบผลลัพธ์ Input Salary => <รอรับค่าเงินเดือน> Your salary = <แสดงค่าเงินเดือน> Your bonus = <แสดงค่าโบนัส>

  16. Program If3; Uses wincrt; Var salary , bonus :Real; BEGIN write(‘Input salary => ’); readLn(salary); IF (salary < 5000) THEN salary := salary * (10 / 100) ; bonus := salary * 3 ; writeLn(‘Your salary = ’ , salary:5:2); writeLn(‘Your bonus = ’ , bonus:5:2); END.

  17. คำสั่ง IF – THEN– ELSE • IF – THEN – ELSE เป็นคำสั่งที่ใช้เพื่อการตัดสินใจเลือกทำงานอย่างใดอย่างหนึ่ง โดยอาศัยการทดสอบเงื่อนไขบางประการก่อน • ถ้าเงื่อนไขที่ตรวจสอบให้ผลลัพธ์เป็นจริง จึงทำคำสั่งที่กำหนด และไปทำงานที่คำสั่งอื่นต่อไป • ถ้าเงื่อนไขที่ตรวจสอบให้ผลลัพธ์เป็นเท็จ จึงทำคำสั่งอีกแบบที่กำหนด และไปทำงานที่คำสั่งอื่นต่อไป

  18. คำสั่ง IF – THEN– ELSE • รูปแบบคำสั่ง IF <นิพจน์เงื่อนไข> THEN คำสั่งการทำงานเมื่อเงื่อนเป็นจริง ELSE คำสั่งการทำงานเมื่อเงื่อนไขเป็นเท็จ;

  19. คำสั่ง IF – THEN– ELSE • รูปแบบคำสั่ง IF <นิพจน์เงื่อนไข> THEN BEGIN คำสั่งการทำงานเมื่อเงื่อนเป็นจริง 1; คำสั่งการทำงานเมื่อเงื่อนเป็นจริง 2; คำสั่งการทำงานเมื่อเงื่อนเป็นจริง n; END ELSE BEGIN คำสั่งการทำงานเมื่อเงื่อนเป็นเท็จ 1; คำสั่งการทำงานเมื่อเงื่อนเป็นเท็จ 2; คำสั่งการทำงานเมื่อเงื่อนเป็นเท็จ n; END;

  20. ตัวอย่างการใช้ IF - ELSE(1) • เขียนโปรแกรมรับอายุ ถ้าอายุมากกว่า 60 แสดงข้อความ You are Old!!! แต่ถ้าน้อยกว่าหรือเท่ากับ 60 แสดงข้อความ You are Young!!! • รูปแบบ Input you age = <รอรับค่าใส่ตัวแปร age> You areOld!! <ในกรณีอายุมากกว่า 60แต่ถ้าอายุไม่เกิน 60> You are Young!!!

  21. Program If_Else1; Uses wincrt; VAR Age : Real; BEGIN Write(‘Input your age = ’); ReadLn(age); IF age > 60 THEN Write(‘You are Old!!!’) ELSE Write(‘You are Young!!!’); END. งานที่ต้องทำเมื่อเงื่อนไขเป็นจริง เงื่อนไข งานที่ต้องทำเมื่อเงื่อนไขเป็นเท็จ

  22. ตัวอย่างการใช้ IF - ELSE(2) • เขียนโปรแกรมคำนวณคะแนนรวมจากการรับค่าคะแนนรายภาคและคะแนนปลายภาค เพื่อพิจารณาว่าสอบผ่านหรือสอบตก โดยแสดงผลการสอบ ถ้าคะแนนรวมต่ำกว่า 60 คะแนน ถือว่าสอบตก • รูปแบบ Input midterm score => <รอรับค่าคะแนนกลางภาค> Input final score => <รอรับค่าคะแนนปลายภาค> You Pass!! <ในกรณีสอบได้มากกว่า 60คะแนน> You Fail!!!<ในกรณีสอบไม่ถึง 60คะแนน>

  23. Program If_Else2; Uses wincrt; Var mid_sc , final_sc , total_sc :Integer; BEGIN write(‘Input midterm score => ’); readLn(mid_sc); write(‘Input final score => ’); readLn(final_sc); total_sc := mid_sc + final_sc ; IF (total_sc >= 60) THEN writeLn(‘Your Pass!!!) ELSE writeLn(‘Your Fail!!!); END.

  24. ตัวอย่างการใช้ IF - ELSE(3) • เขียนโปรแกรมคำนวณภาษีเงินได้(Tax) ของพนักงานบริษัท โดยพิจารณาจากเงินเดือน(Income) ที่ได้รับ หากได้รับเงินเดือนเดือนละ 20000 บาทขึ้นไปให้คิดภาษี 15% แต่ถ้าได้รับเงินเดือนต่ำกว่า 20000 จะคิดภาษี 5% • รูปแบบผลลัพธ์ Input your income => <รอรับค่าเงินเดือน> ************************************************* Income tax is <แสดงค่าภาษีที่คำนวณได้>

  25. Program If_Else3; Uses wincrt; Var income , tax :Real; BEGIN write(‘Input your income => ’); readLn(income); IF (income >= 20000) THEN tax := income * (15 / 100) ELSE tax := income * (5 / 100); writeLn(‘********************************************’); writeLn(‘Income tax = ’ , tax:5:2); END.

  26. คำสั่ง IF แบบซ้อนกัน(Nested IF) • เป็นคำสั่งที่ใช้เพื่อการตัดสินใจเมื่อมีเงื่อนไขหลายเงื่อนไข • รูปแบบ IF <นิพจน์เงื่อนไข1> THEN คำสั่งการทำงานเมื่อเงื่อน1เป็นจริง ELSE IF <นิพจน์เงื่อนไข2>THEN คำสั่งการทำงานเมื่อเงื่อน2เป็นจริง ELSE IF<นิพจน์เงื่อนไข3>THEN คำสั่งการทำงานเมื่อเงื่อน3เป็นจริง ELSE IF<นิพจน์เงื่อนไขn>THEN คำสั่งการทำงานเมื่อเงื่อนnเป็นจริง ELSE คำสั่งเมื่อไม่มีเงื่อนไขใดเป็นจริงเลย ;

  27. ตัวอย่างการใช้ IF ซ้อน(1) • เขียนโปรแกรมรับชั้นปีของนักศึกษา แล้วตรวจสอบว่าเป็นชั้นปีอะไร มีเงื่อนไขดังนี้ • ถ้าเป็นเลข 1 ให้แสดง Freshman • ถ้าเป็นเลข 2 ให้แสดง Sophomore • ถ้าเป็นเลข 3 ให้แสดง Junior • ถ้าเป็นเลข 4 ให้แสดง Senior

  28. Program If_Nest1; Uses wincrt; Var year : Integer; status : string ; BEGIN write(‘Input your year class => ’); readLn(year); IF year = 1 THEN status := ‘Freshman’ ELSE IF year = 2 THEN status := ‘Sophomore’ ELSE IF year = 3 THEN status := ‘Junior’ ELSE IF year = 4 THEN status := ‘Senior’ ; writeLn(‘You are ’ , status); END.

  29. ตัวอย่างการใช้ IF ซ้อน(2) • เขียนโปรแกรมตัดเกรดวิชาคอมพิวเตอร์และการเขียนโปรแกรม โดยรับคะแนนกลางภาคและคะแนนปลายภาคโดยมีคะแนนรวมเต็ม 100 คะแนน มีเงื่อนไขในการคิดเกรดดังนี้ • ถ้าได้คะแนน 80 คะแนนขึ้นไป ได้เกรด A • ถ้าได้คะแนน 70-79 คะแนน ได้เกรด B • ถ้าได้คะแนน 60-69 คะแนน ได้เกรด C • ถ้าได้คะแนน 50-59 คะแนน ได้เกรด D • ถ้าได้คะแนนต่ำกว่า 50 คะแนน ได้เกรด F • แสดงผลเกรด

  30. Program IF_nest2; Uses wincrt; Var Mid_sc , Final_sc , Total_sc : integer; grade : char; BEGIN write('Input midterm score => '); ReadLn(Mid_sc); write('Input final score => '); ReadLn(Final_sc); Total_sc := Mid_sc + Final_sc; IF Total_sc >= 80 THEN Grade := 'A' ELSE IF Total_sc >=70 THEN Grade := 'B' ELSE IF Total_sc >=60 THEN Grade := 'C' ELSE IF Total_sc >=50 THEN Grade := 'D' ELSE IF Total_sc >=0 THEN Grade := 'F' ; WriteLn('You have total score = ' ,Total_sc); WriteLn('Your grade is ' , Grade) ; END.

  31. ตัวอย่างการใช้ IF ซ้อน(3) • จงเขียนโปรแกรมคำนวณภาษีเงินได้ของพนักงานบริษัท โดยมีอัตราภาษีดังนี้ • แสดงภาษีที่ต้องชำระ

  32. Program IF_nest3; Uses wincrt; Var income , tax_rate , tax : Real; BEGIN write('Input annual income => '); ReadLn(income); IF income <= 100000 THEN tax_rate := 0 ELSE IF income <= 500000 THEN tax_rate := 10 /100 ELSE IF income <= 1000000 THEN tax_rate := 20 /100 ELSE IF income <= 4000000 THEN tax_rate := 30 /100 ELSE tax_rate := 40 / 100; tax := income * tax_rate ; WriteLn('**************************************************************'); WriteLn(‘Annual income = ' , income:5:2) ; WriteLn(‘Tax rate = ’,tax_rate:3:2) WriteLn(‘Income tax = ' , tax:5:2) ; END.

  33. ตัวอย่างการใช้ IF ซ้อน(4) • จงเขียนโปรแกรมคำนวณหาค่าดัชนีมวลร่างกาย(Body Mass Index) โดยมีสูตรคำนวณดังนี้ BMI = น้ำหนัก(kg) / ส่วนสูง(m)2 • เปรียบเทียบดังนี้ • ถ้า BMI < 18 แสดงข้อความว่า You are thin • ถ้า 18<= BMI < 23 แสดงข้อความ Perfect Body • ถ้า 23 <=BMI < 25 แสดงข้อความ You look fat • ถ้า BMI >=25 แสดงข้อความ Hello Piggy!! และ Let’s Exercise

  34. Program If_nest4; Uses wincrt; Var H : Real; W : Real; BMI : Real; Begin write('Input your wieght(kg) => '); readLn(W); write('Input your height(m) => ') ; readLn(H); BMI := W/(H*H); writeLn('Your BMI = ' , BMI:3:2); If BMI < 18 Then writeLn('You are thin') ElseIf (BMI >= 18) AND (BMI < 23) Then writeLn('Perfect Body') Else If (BMI >= 23) AND (BMI < 25) Then writeLn('You look fat') Else Begin writeLn('Hello Piggy!!!!'); writeLn('Let''s exercise!!!'); End; End.

  35. คำสั่ง CASE • รูปแบบ CASEตัวแปร(นิพจน์) OF ค่าที่เปรียบเทียบ1 : งานกรณี 1 ; ค่าที่เปรียบเทียบ2 : งานกรณี 2 ; ค่าที่เปรียบเทียบ n : งานกรณี n; ELSE งานในกรณีที่ไม่เข้าเงื่อนไขใด ๆ เลย ; END;{จบประโยค Case}

  36. คำสั่ง CASE • นิพจน์หลัง CASE จะต้องเป็นชนิด จำนวนเต็ม อักขระ บูลีน พิสัยย่อย หรือข้อมูลแจงนับ ห้ามเป็น จำนวนจริงหรือสตริง • ค่าที่เปรียบเทียบ 1 ถึง ค่าที่เปรียบเทียบ n จะเป็นค่าคงที่ใด ๆ ก็ได้ แต่ต้องเป็นชนิดเดียวกับนิพจน์หลัง CASE อาจเขียนเป็นค่าเดียวโดด ๆ หรือ เขียนมากกว่าหนึ่งค่าก็ได้ • การทำงานจะคล้าย IF แบบซ้อน

  37. คำสั่ง CASE • ค่าที่เปรียบเทียบเป็นได้เฉพาะค่าคงที่ CASE Num OF 10 : Write(‘I am TEN’); 15 , 20 : Write(‘I am 15 or 20’); 30..40 : Write(‘I Between 30 AND 40’); END; • ค่าที่นำมาเปรียบเทียบทั้งหมด ต้องเป็นชนิดเดียวกับ Num • ในกรณีนี้ Num เป็นชนิดจำนวนเต็มได้อย่างเดียว

  38. ตัวอย่างการใช้ CASE(1) • ให้รับค่าวันจากผู้ใช้ แล้วแสดงข้อความ ดังเงื่อนไขต่อไปนี้ • ถ้า วัน มีค่า 2,3,4,5,6 แสดงข้อความ I must go to work • ถ้าวันมีค่า 7 แสดงข้อความ Let’s shopping • ถ้าวันมีค่า 1 แสดงข้อความ I want to stay at home • ถ้าวันมีค่าเป็นอย่างอื่นๆ แสดงข้อความ Invalid day!!

  39. Program case1; uses wincrt; Var day : char; Begin write('Input day number=> '); ReadLn(day); CASE day OF '2','3','4','5' , ‘6' : writeLn('I must go to work'); ‘7' : WriteLn('Let''s shopping') ; ‘1' : writeLn('I want to stay at home '); ELSE writeLn('Invalid day number'); END; End.

  40. ตัวอย่างการใช้ CASE(2) • จงเขียนโปรแกรมตัดเกรดวิชาคอมพิวเตอร์และการเขียนโปรแกรม โดยการรับคะแนนกลางภาคและคะแนนปลายภาคจากผู้ใช้ โดยมีคะแนนรวมเต็ม 100 คะแนน มีเงื่อนไขในการคิดเกรดดังนี้ - ถ้าได้คะแนน 80 คะแนนขึ้นไป ได้เกรด A - ถ้าได้คะแนน 70-79 คะแนน ได้เกรด B - ถ้าได้คะแนน 60-69 คะแนน ได้เกรด C - ถ้าได้คะแนน 50-59 คะแนน ได้เกรด D - ถ้าได้คะแนนต่ำกว่า 50 คะแนน ได้เกรด F • แสดงเกรดที่ได้รับ

More Related