งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 5 คำสั่งแบบมีเงื่อนไข Conditional Statements หลักการเขียนโปรแกรมคอมพิวเตอร์

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 5 คำสั่งแบบมีเงื่อนไข Conditional Statements หลักการเขียนโปรแกรมคอมพิวเตอร์"— ใบสำเนางานนำเสนอ:

1 บทที่ 5 คำสั่งแบบมีเงื่อนไข Conditional Statements หลักการเขียนโปรแกรมคอมพิวเตอร์

2 เนื้อหา นิพจน์ตรรกศาสตร์ นิพจน์ตรรกศาสตร์ คำสั่งแบบมีเงื่อนไข คำสั่งแบบมีเงื่อนไข ตัวอย่าง ตัวอย่าง โฟล์วชาร์ต โฟล์วชาร์ต

3 นิพจน์ตรรกศาสตร์ ตัวดำเนินการตรรกศาสตร์ ตัวดำเนินการตรรกศาสตร์ สัญลักษณ์ คณิตศาสตร์ สัญลักษณ์ C# ตัวอย่างความหมาย === x == y x เท่ากับ y? ≠!= x != y x ไม่เท่ากับ y? >> x > y x มากกว่า y? ≥>= x >= y x มากกว่าหรือเท่ากับ y? << x < y x น้อยกว่า y? ≤<= x <= y x น้อยกว่าหรือเท่ากับ y?

4 ตัวอย่าง : นิพจน์ ตรรกศาสตร์ float x = 4.0; Expression Value x < 5.0 ___________ x > 5.0 ___________ x <= 5.0 ___________ 5.0 == x ___________ x != 5.0 ___________ true false true false true

5 ตัวอย่าง float n1 = 78.0; float n2 = 80.0; n1 < n2__________ n1 >= n2__________ (n1 + 35) > n2__________ Math.Abs(n1-n2) <= __________ n1 == n2__________ n1 != n2__________ true false true false true

6 การผสมนิพจน์ตรรกศาสตร์ ตัวดำเนินการตรรกศาสตร์ ตัวดำเนินการตรรกศาสตร์  && - และ (AND)  || - หรือ (OR)  ! – ไม่ (NOT) ตัวอย่าง ตัวอย่าง  (x > 12) && (x 12) && (x < 20)  เป็นจริงถ้า x มีค่าอยู่ระหว่าง 12 และ 20  ถ้า x เท่ากับ 10 แล้วนิพจน์ ตรรกศาสตร์ข้างต้นเป็นเท็จ  ถ้า x เท่ากับ 15 แล้วนิพจน์ ตรรกศาสตร์ข้างต้นเป็นจริง

7 ลำดับการประมวลผล (Precedence Rules)  ( ) วงเล็บ  *, /, %  + – , =  ==, !=  !  &&  ││  ถ้าลำดับเท่ากันให้ประมวลผลจาก ซ้ายไปขวา

8 แบบฝึกหัด 5.1 กำหนดให้ x, y และ z เป็นตัวแปรชนิด int, กำหนดให้ x, y และ z เป็นตัวแปรชนิด int, c เป็นชนิด char และ s เป็นชนิด string จงอธิบายเงื่อนไขที่จะทำให้นิพจน์ทางตรรกศาสตร์ ในแต่ละบรรทัดมีค่าเป็น จงอธิบายเงื่อนไขที่จะทำให้นิพจน์ทางตรรกศาสตร์ ในแต่ละบรรทัดมีค่าเป็น x > 2 ____________________ x%2 == 0 ____________________ (x%5 == 0) ____________________ (x%y == 0) ____________________ ((x%y == 0)&&(z%y == 0)) ____________________ ch == 'a' ____________________ ((c >= 'a')&&(c = 'a')&&(c <= 'z')) ____________________ ((c >= 'A')&&(c = 'A')&&(c <= 'Z')) ____________________ ((c >= '0')&&(c = '0')&&(c <= '9')) ____________________ (s != "Hello") (s != "Hello") ____________________ !(s != "Arthur") !(s != "Arthur") ____________________ x มีค่ามากกว่า 2 c เป็นอักขระระหว่าง '0' ถึง '9'

9 คำสั่งแบบมีเงื่อนไข if...else if...else switch...case switch...case

10 คำสั่ง if if (condition) statement; statement; if (condition) statement; statement; C Syntax STARTSTART ENDEND conditioncondition true false StatementStatementFlowchart อนุญาตให้มีได้เพียง หนึ่งคำสั่งเท่านั้น

11 การผสมคำสั่ง เราสามารถสร้าง คำสั่งได้มากกว่า หนึ่งคำสั่งโดยการ ใส่คำสั่งไว้ใน {...} เราสามารถสร้าง คำสั่งได้มากกว่า หนึ่งคำสั่งโดยการ ใส่คำสั่งไว้ใน {...} if (condition) { statement1; statement1; statement2; statement2; :} if (condition) { statement1; statement1; statement2; statement2; :} C Syntax STARTSTART ENDEND StatementStatement conditioncondition true false StatementStatementFlowchart

12 ตัวอย่าง : คำสั่ง if อ่านตัวเลขหนึ่งจำนวน และหาว่า ตัวเลขนั้นเป็นจำนวนคี่ หรือ จำนวนคู่ อ่านตัวเลขหนึ่งจำนวน และหาว่า ตัวเลขนั้นเป็นจำนวนคี่ หรือ จำนวนคู่ #include #include void main(){ int n; scanf( “ %d ”,&n); if(n%2==0) printf( “ %d is even ”,n); if(n%2==1) printf( “ %d is odd ”,n); } #include #include void main(){ int n; scanf( “ %d ”,&n); if(n%2==0) printf( “ %d is even ”,n); if(n%2==1) printf( “ %d is odd ”,n); } n%2==0 n%2==1 Print "even" Print "odd" END false true false true

13 ตัวอย่าง : คำสั่ง if อ่านตัวเลข 2 จำนวน จากทางแป้นพิมพ์ให้ ตัวแรกเป็นตัวตั้งตัวที่ สองเป็นตัวหาร โดย การหารตัวหารจะเป็น 0 ไม่ได้ ถ้าใส่ตัวเลข ตัวที่ 2 เป็น 0 ให้ โปรแกรมสิ้นสุดการ ทำงาน และแสดง ผลลัพธ์ทางหน้าจอ อ่านตัวเลข 2 จำนวน จากทางแป้นพิมพ์ให้ ตัวแรกเป็นตัวตั้งตัวที่ สองเป็นตัวหาร โดย การหารตัวหารจะเป็น 0 ไม่ได้ ถ้าใส่ตัวเลข ตัวที่ 2 เป็น 0 ให้ โปรแกรมสิ้นสุดการ ทำงาน และแสดง ผลลัพธ์ทางหน้าจอ B!=0 X=A/B END false true START A,B X

14 แบบฝึกหัด 5.2 Q4 Q2 Q3 Q1 X Y พิจารณาระบบจตุภาค (quadrant) ในระนาบสองมิติ ดังรูป พิจารณาระบบจตุภาค (quadrant) ในระนาบสองมิติ ดังรูป จงเขียนผังงานเพื่อรับข้อมูลเป็นตัวเลขจำนวนจริงสอง ค่าเพื่อระบุพิกัด (x,y) และรายงานว่าพิกัดนี้ตกอยู่ใน จตุภาค (quadrant) ใด หากพิกัดที่ป้อนเข้ามาตกอยู่ บนแกน x หรือแกน y โปรแกรมจะแสดงข้อความ I don't know. จงเขียนผังงานเพื่อรับข้อมูลเป็นตัวเลขจำนวนจริงสอง ค่าเพื่อระบุพิกัด (x,y) และรายงานว่าพิกัดนี้ตกอยู่ใน จตุภาค (quadrant) ใด หากพิกัดที่ป้อนเข้ามาตกอยู่ บนแกน x หรือแกน y โปรแกรมจะแสดงข้อความ I don't know. ตัวอย่างผลการทำงาน Please input X: -50Please input X: 0 Please input Y: 10Please input Y: 50 (-50, 10) is in Q2. I don't know.

15 คำสั่ง if…else… if (condition) statement t ; statement t ;else statement f ; statement f ; if (condition) statement t ; statement t ;else statement f ; statement f ; C Syntax STARTSTART ENDEND Statement f conditioncondition truefalse Statement t Flowchart

16 ตัวอย่าง : คำสั่ง if...else อ่านตัวเลขหนึ่งจำนวน และหาว่า ตัวเลขนั้นเป็นจำนวนคี่ หรือ จำนวนคู่ อ่านตัวเลขหนึ่งจำนวน และหาว่า ตัวเลขนั้นเป็นจำนวนคี่ หรือ จำนวนคู่ #include #include void main(){ int n; scanf( “ %d ”,&n); if(n%2==0) printf( “ %d is even ”,n); else printf( “ %d is odd ”,n); } #include #include void main(){ int n; scanf( “ %d ”,&n); if(n%2==0) printf( “ %d is even ”,n); else printf( “ %d is odd ”,n); } n%2==0 even END falsetrue odd

17 if หลายชั้น condition1 condition2condition3 stmt2astmt2bstmt3a truefalse truefalse true false

18 ตัวอย่าง : if หลายชั้น อ่านตัวเลขหนึ่งจำนวน และหาว่าตัวเลข นั้นเป็นค่าบวก ค่าลบ หรือค่าศูนย์ อ่านตัวเลขหนึ่งจำนวน และหาว่าตัวเลข นั้นเป็นค่าบวก ค่าลบ หรือค่าศูนย์ n > 0 n < 0 Print "positive" truefalse Read n Print "negative" Print "zero" END truefalse

19 #include #include void main(){ int n; scanf( “ %d ”,&n); if(n>0) printf( “ %d is positive ”,n); else{ if(n<0) printf( “ %d is negative ”,n); else printf( “ %d is a zero ”,n); }} #include #include void main(){ int n; scanf( “ %d ”,&n); if(n>0) printf( “ %d is positive ”,n); else{ if(n<0) printf( “ %d is negative ”,n); else printf( “ %d is a zero ”,n); }} ตัวอย่าง : โปรแกรม C

20 การกำหนดหลายเงื่อนไข false Action1; x==1 Action2; x==2 Action3; x==3 Action4; x==4 true false Default_Action;

21 การกำหนดหลายเงื่อนไข กับคำสั่ง if if (x==1) Action1; Action1; else if (x==2) Action2; Action2; else if (x==3) Action3; Action3; else if (x==4) Action4; Action4;else Default_Action; Default_Action; if (x==1) Action1; Action1; else if (x==2) Action2; Action2; else if (x==3) Action3; Action3; else if (x==4) Action4; Action4;else Default_Action; Default_Action; false Action1; x==1 Action2; x==2 Action3; x==3 Action4; x==4 true false Default_Action;

22 การใช้คำสั่ง switch…case switch (x) { case 1: Action1; case 1: Action1; break; break; case 2: Action2; case 2: Action2; break; break; case 3: Action3; case 3: Action3; break; break; case 4: Action4; case 4: Action4; break; break; default: Default_Action; default: Default_Action; break; break;} false Action1; x==1 Action2; x==2 Action3; x==3 Action4; x==4 true false Default_Action;

23 ไวยากรณ์ switch…case Syntax: Syntax: ต้องเป็นประเภท ข้อมูล int, char หรือ string ต้องเป็นประเภท ข้อมูล int, char หรือ string switch ( ) { case : ; break; default: ; break; }

24 แบบฝึกหัด 5.3 บริษัทโทรศัพท์มือถือแห่งหนึ่งเสนอ โปรโมชั่นให้กับลูกค้าโดยมีการคำนวณ ค่าธรรมเนียมการใช้งานดังนี้   สองนาทีแรก คิดนาทีละห้าบาท   นาทีถัดมาคิดนาทีละสองบาท จงเขียนผังงานเพื่อรับค่าจำนวนนาทีจาก ผู้ใช้ และคำนวณค่าธรรมเนียมการใช้งาน นอกจากนี้ภายในโปรแกรมยังมีคอมเมนต์ กำกับเอาไว้หลายจุดเพื่ออธิบายการ ทำงานของโปรแกรมในส่วนต่าง ๆ ตัวอย่างผลการทำงาน Enter the number of minutes: 1 The air time fee is 5 baht. Enter the number of minutes: 5 The air time fee is 16 baht.

25 แบบฝึกหัด 5.4 พิจารณากระบวนการตัดเกรดนักเรียนโดย พิจารณาจากคะแนนสอบไล่ที่ได้ตาม เงือนไขดังนี้ เงื่อนไขระดับคะแนน ได้คะแนนน้อยกว่า 50 F ได้คะแนนตั้งแต่ 50 แต่น้อยกว่า 60D ได้คะแนนตั้งแต่ 60 แต่น้อยกว่า 70C ได้คะแนนตั้งแต่ 70 แต่น้อยกว่า 80B ได้คะแนนตั้งแต่ 80 ขึ้นไป A

26 แบบฝึกหัด 5.5   จงเขียนผังงานเพื่อรับตัวเลขจำนวนเต็ม 1 ตัว ถ้า ตัวเลขนั้นมีค่ามากกว่า 10 ให้แสดง   ข้อความ This valuable number is more than 10   จงเขียนผังงานเพื่อตรวจสอบเพศของผู้ใช้ โดยให้รับ ตัวอักขระจากผู้ใช้   ถ้าผู้ใช้ป้อนตัว m ให้ แสดงข้อความ You ‘re a man   ถ้าผู้ใช้ป้อนตัว f ให้ แสดงข้อความ You ‘re a woman   จงเขียนผังงานเพื่อรับตัวเลขมา 2 จำนวนแล้วทำการ เลือกว่าต้องการ + - * / แสดงผลลัพธ์ทางจอภาพ  ตรวจสอบว่าผู้ใช้ป้อนเลขคู่ เลขคี่ หรือ 0 โดยให้รับตัวเลขจำนวนเต็ม 1 ตัว  จงเขียนผังงานเพื่อตรวจสอบว่าผู้ใช้ป้อนเลขคู่ เลขคี่ หรือ 0 โดยให้รับตัวเลขจำนวนเต็ม 1 ตัว   จากแป้นพิมพ์แล้วไปตรวจสอบว่าเป็นเลขคู่หรือเลขคี่ แล้วแสดงผลลัพธ์ออกมา  Enter number :  ถ้าเป็นเลข 0 แสดงข้อความ This number is zero.  ถ้าเป็นเลขคี่ แสดงข้อความ This number is odd.  ถ้าเป็นเลขคู่ แสดงข้อความ This number is even.

27 แบบฝึกหัด 5.6 คำนวนค่าใช้จ่ายโทรศัพท์โดยคิดตาม เวลาที่ใช้ คำนวนค่าใช้จ่ายโทรศัพท์โดยคิดตาม เวลาที่ใช้ Operator: LEMON อินพุท : ประเภทโปรโมชั่น (promotion type) จำนวนเวลาที่ใช้ (usage time) เอาท์พุท : ค่าใช้จ่าย (payment price) Program Promotion Type Usage time Payment price

28 สรุป นิพจน์ตรรกศาสตร์ นิพจน์ตรรกศาสตร์ คำสั่งแบบมีเงื่อนไข คำสั่งแบบมีเงื่อนไข  if...else...  switch-case if…else… Condition Problems switch

29 แบบฝึกหัด จงเขียน Algorithm เพื่อหาค่า มากสุดของเลข 2 จำนวน   Input : n1, n2   Output : ค่ามาก   Process : 1. รับ n1, n2 2. เปรียบเทียบ n1>n2 ? - ใช่ พิมพ์ค่า n1 - ไม่ใช่ พิมพ์ค่า n2

30 หาค่ามากสุดของเลข 3 จำนวน   Input : n1,n2,n3   Output : ค่ามาก   Process : 1. รับ n1,n2,n3 2. เปรียบเทียบ n1 > n20 ? - ใช่ เปรียบเทียบ n1>n3? - ใช่ แสดงค่า n1 - ไม่ใช่ แสดงค่า n3 - ไม่ใช่ เปรียบเทียบ n2>n3? - ใช่ แสดงค่า n2 - ไม่ใช่ แสดงค่า n3


ดาวน์โหลด ppt บทที่ 5 คำสั่งแบบมีเงื่อนไข Conditional Statements หลักการเขียนโปรแกรมคอมพิวเตอร์

งานนำเสนอที่คล้ายกัน


Ads by Google