บทที่ 5 คำสั่งแบบมีเงื่อนไข Conditional Statements

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คำสั่งควบคุมในโปรแกรม Interactive C
Advertisements

รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
อสมการ 1.1 อสมการเชิงเส้นตัวแปรเดียว
ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรม
CSI1201 การเขียนโปรแกรมเชิงโครงสร้าง Structured Programming
สรุปคำสั่ง if(เงื่อนไข)
ขอความคำสั่งควบคุม แบงเปนกลุมใหญ ๆ ได 2 กลุม คือ
Control Statement for while do-while.
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
การโปรแกรมควบคุมแบบทำงานซ้ำ
Lecture no. 5 Control Statements
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
ชนิดของข้อมูลและตัวดำเนินการ
จงหาระยะห่างของจุดต่อไปนี้ 1. จุด 0 ไปยัง จุด 0 ไปยัง 2
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
ฟังก์ชันตรวจสอบเงื่อนไข
บทนำ การเขียนโปรแกรมภาษาซี
บทที่ 2 Operator and Expression
บทที่ 4 การตัดสินใจในการเขียนโปรแกรม
คำสั่งเงื่อนไขและการควบคุม
โครงสร้างควบคุม 1. โครงสร้างควบคุมแบบวนทางเลือก
ตัวดำเนินการ (Operator) คือสัญลักษณ์หรือเครื่องหมายแทนการกระทำกับข้อมูล เพื่อบอกให้เครื่องคอมพิวเตอร์ทราบว่าจะต้องดำเนินการใดกับข้อมูลใดบ้าง แบ่งออกเป็น.
รายวิชา ง23101 การเขียนโปรแกรมเบื้องต้น
หน่วยที่ 2 วิธีการออกแบบโปรแกรม
Operators ตัวดำเนินการ
การสร้างเกี่ยวกับส่วนของเส้นตรง
ไวยากรณ์ของภาษาการทำโปรแกรม (1) (Syntax of programming languages)
คำสั่งควบคุมการทำงาน
ตัวดำเนินการ(Operator)
Chapter 5 คำสั่งควบคุมการทำซ้ำ
Chapter 3 เครื่องหมายและการคำนวณ
ครูรัตติยา บุญเกิด.
รายงาน เรื่อง ซอฟต์แวร์ตารางทำงาน
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
การทำซ้ำด้วยคำสั่ง while
คำสั่ง while และ do…while
DHTML ง40208 การเขียนเว็บไซต์สไตล์ ป.พ. ศูนย์คอมพิวเตอร์
การใช้คำสั่ง เงื่อนไข การเขียนเว็บเพจโดยใช้ ภาษาสคริปต์ ศูนย์คอมพิวเตอร์โรงเรียนปลวกแดงพิทยาคม.
นิพจน์และตัวดำเนินการ
การเขียนเว็บเพจด้วยภาษา php ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
คำสั่งลำลอง.
คุณสมบัติการหารลงตัว
ค33211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 5
ประโยคเปิดและตัวบ่งปริมาณ
จำนวนเต็มกับการหารลงตัว
ค33211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 5
ค33212 คณิตศาสตร์คอมพิวเตอร์ 6
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
อินเวอร์สของความสัมพันธ์
หมวดวิชาคอมพิวเตอร์ โรงเรียนพะเยาพิทยาคม โดย อ.วัชระ การสมพจน์
บทเรียนสาระการเรียนรู้คณิตศาสตร์ โดยใช้โปรแกรม Microsoft Multipoint
คำสั่งควบคุมการทำงานของ ActionScripts
เครื่องหมายและการดำเนินการ ในภาษา C
การเขียนผังงานแบบทำซ้ำ
การเขียนผังงานแบบทางเลือก
พื้นฐานการเขียนโปรแกรม
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
Operators ตัวดำเนินการ
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
การใช้คำสั่งเงื่อนไข
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
คำสั่งแบบมีเงื่อนไข Conditional Statements
สาระการเรียนรู้ที่ ๒ การเชื่อมประพจน์
หลักการเขียนโปรแกรม ( )
ครูชลภิรัตน์ แก้วมูล MAIL.COM O.COM facebook : krumoo ck O.COM ครูชลภิรัตน์ แก้วมูล MAIL.COM O.COM.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
PHP: [5] คำสั่งควบคุม (Control statement)
หลักการทั่วไปเกี่ยวกับการเขียนโปรแกรม
ใบสำเนางานนำเสนอ:

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

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

นิพจน์ตรรกศาสตร์ ตัวดำเนินการตรรกศาสตร์ ตัวอย่าง ความหมาย สัญลักษณ์คณิตศาสตร์ สัญลักษณ์ 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?

ตัวอย่าง: นิพจน์ตรรกศาสตร์ 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

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

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

ลำดับการประมวลผล (Precedence Rules) ( ) วงเล็บ *, / , % + – <, >, <=, >= ==, != ! && ││ ถ้าลำดับเท่ากันให้ประมวลผลจากซ้ายไปขวา

แบบฝึกหัด 5.1 กำหนดให้ 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 <= 'z')) ____________________ ((c >= 'A')&&(c <= 'Z')) ____________________ ((c >= '0')&&(c <= '9')) ____________________ (s != "Hello") ____________________ !(s != "Arthur") ____________________ x มีค่ามากกว่า 2 c เป็นอักขระระหว่าง '0' ถึง '9'

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

อนุญาตให้มีได้เพียงหนึ่งคำสั่งเท่านั้น คำสั่ง if START END condition true false Statement Flowchart if (condition) statement; C Syntax อนุญาตให้มีได้เพียงหนึ่งคำสั่งเท่านั้น

การผสมคำสั่ง เราสามารถสร้างคำสั่งได้มากกว่าหนึ่งคำสั่งโดยการใส่คำสั่งไว้ใน {...} START END Statement condition true false Flowchart if (condition) { statement1; statement2; : } C Syntax

ตัวอย่าง: คำสั่ง if อ่านตัวเลขหนึ่งจำนวน และหาว่าตัวเลขนั้นเป็นจำนวนคี่ หรือจำนวนคู่ n%2==0 false true #include <stdio.h> #include <conio.h> 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); } Print "even" n%2==1 false true Print "odd" END

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

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

คำสั่ง if…else… if (condition) statementt; else statementf; Flowchart START END Statementf condition true false Statementt Flowchart if (condition) statementt; else statementf; C Syntax

ตัวอย่าง: คำสั่ง if...else อ่านตัวเลขหนึ่งจำนวน และหาว่าตัวเลขนั้นเป็นจำนวนคี่ หรือจำนวนคู่ #include <stdio.h> #include <conio.h> 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 true false even odd END

if หลายชั้น condition1 condition2 condition3 stmt2a stmt2b stmt3a true false true condition2 false condition3 false true stmt2a stmt2b stmt3a

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

ตัวอย่าง: โปรแกรม C #include <stdio.h> #include <conio.h> 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); }

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

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

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

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

แบบฝึกหัด 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.

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

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

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

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

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

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