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

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

คำสั่งเงื่อนไขและการควบคุม

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


งานนำเสนอเรื่อง: "คำสั่งเงื่อนไขและการควบคุม"— ใบสำเนางานนำเสนอ:

1 คำสั่งเงื่อนไขและการควบคุม
บทที่ 4 คำสั่งเงื่อนไขและการควบคุม

2 คำสั่งเงื่อนไขแบ่งออกเป็น
1. คำสั่ง IF เป็นคำสั่งที่ระบุว่าจะทำงานก็ต่อเมื่อเงื่อนไขเป็นจริง ถ้าเงื่อนไขเป็นเท็จอาจทำงานตามหลัง ' ELSE ' หรือไม่ก็ได้ Syntax : Expression if then Statement 1 Statement 2 else

3 คำสั่ง if แสดงใน รูปผังงาน (Flowchart) ได้ดังนี้
เท็จ (No or False) จริง (Yes or True) เงื่อนไข Statements 2 Statements 1

4 โครงสร้างของคำสั่ง IF ในรูปของโปรแกรม
1. IF Expression THEN Statement 1 ELSE Statement 2; 2. IF Expression THEN Statement 1;

5 ตัวอย่าง PROGRAM Demo_IF_Condition_1; USES CRT; VAR score : REAL;
count : INTEGER; BEGIN READLN(score); IF score >= THEN WRITELN('PASS') ELSE WRITELN('FAIL'); END.

6 ตัวอย่าง IF score >= 60.00 THEN BEGIN WRITELN('Score = ',score);
WRITELN(' ','PASS') END ELSE WRITELN(' ','FAIL'); END; count := count + 1; IF count <= 80 THEN GOTO Looping; WRITELN('Total Student =',count); END. ตัวอย่าง PROGRAM Demo_IF_Condition_2; USES CRT; LABEL Looping; VAR score : REAL; count : INTEGER; BEGIN count := 0; Looping: READLN (score);

7 โจทย์การบ้าน ข้อที่ จงเขียนโปรแกรมเพื่อเอา วัน-เดือน-ปี ปัจจุบันไปตรวจสอบกับบัตรประจำตัวประชาชนว่า “ อายุของเจ้าของบัตรประจำตัวประชาชน ” มีสิทธิ์เข้าไปใช้บริการสถานบรรเทิงหลังเวลา น.หรือไม่ ถ้ามีสิทธิ์ก็ให้แสดงข้อความในเชิงอนุญาต ถ้าไม่มีสิทธิ์ก็ให้แสดงข้อความในเชิงปฏิเสธ ข้อที่ จงเขียนโปรแกรมเพื่อคำนวณดอกเบี้ย ณ.วันครบหนึ่งปี ของเงินฝากจำนวนหนึ่งโดยที่ธนาคาร เสนอเงื่อนไขว่า ถ้าฝากเงินตั้งแต่ 1,000,000 บาทขึ้นไปจะเพิ่มดอกเบี้ยจากอัตราดอกเบี้ยปกติ 3% ขึ้นไปอีก 1.5 %

8 Nesting or Nested IF คำสั่ง IF … IF สามารถใช้ซ้อนๆกันได้มากกว่าหนึ่งชั้น เรียกว่า “Nesting หรือ Nested IF” เช่น ….. IF ( condition 1 ) THEN IF ( condition 2 ) THEN IF ( condition 3 ) THEN Statement 4 ELSE Statement 3 ELSE Statement 2 Statement 1 ; …..

9 คำสั่ง Nested IF แสดงใน รูปผังงาน (Flowchart) ได้ดังนี้
No Yes cond 1 No Yes Statement 1 cond 2 No Yes Statement 2 cond 3 Statement 3 Statement 4

10 ……. IF ( Condition 1 ) THEN Statement 1 ELSE IF ( Condition 2 ) THEN Statement 2 ELSE IF ( Condition 3 ) THEN Statement 3 ELSE Statement 4;

11 ตัวอย่าง IF GPA > 2.00 THEN IF GPA > 3.25 THEN
WRITELN('เกียรตินิยมอันดับ 1') ELSE WRITELN('เกียรตินิยมอันดับ 2') WRITELN('จบ') WRITELN( 'ซ้ำชั้น’ ); END. ตัวอย่าง PROGRAM Demo_Nested_IF_1; USES CRT; VAR GPA : REAL; count : INTEGER; BEGIN CLRSCR; WRITE('Input GPA'); READLN(GPA);

12 ตัวอย่าง ให้เขียนโปรแกรม เพื่อทำการอ่านค่าใดๆ จากคีย์บอร์ดจำนวน 20 ตัวให้นับจำนวนตัวอักษรภาษาอังกฤษ ตัวเลข และ ตัว Special Characters พร้อมทั้งแสดงผลลัพท์ออกทางจอภาพ PROGRAM Demo_Characters_count; USES CRT; LABEL Looping; CONST amount = 20; VAR ch : CHAR; count, letters, digits, special_char : INTEGER;

13 IF ((ch >= 'A') AND (ch <= 'Z')) OR
((ch >= 'a') AND (ch <= 'z')) THEN letters := letters + 1 ELSE IF (ch >= '0') AND (ch <= '9') THEN digits := digits + 1 ELSE special_char := special_char + 1; IF count < amount THEN GOTO Looping; WRITELN('Amount of Characters = ',count); WRITELN('Amount of Letters = ',letters); WRITELN('Amount of Digits = ',digits); WRITELN('Amount of Special Characters = ',special_char); END. BEGIN count := 0; letters := 0; digits := 0; special_char := 0; Looping: READ(ch); WRITE(ch); count := count + 1;

14 โจทย์การบ้าน ข้อที่ 3 จงเขียนโปรแกรมเพื่อทำการตัด grade ตามช่วงของคะแนนข้างล่าง โดยรับข้อมูล รหัสชื่อ-สกุล และ คะแนนสอบของ นศ.ที่ลงเรียนวิชา Pascal ของ นศ. แต่ละคนดังนี้ :- คะแนน Grade F D C B A

15 2 Case Statement คำสั่ง CASE เป็นคำสั่งเงื่อนไขคล้ายกับคำสั่ง IF แต่สามารถ มีทางเลือกมากกว่า 2 ทางเลือกได้ซึ่งประกอบด้วย 1. Expression (the selector) 2. รายการของทางเลือก (Case Labels) ซึ่งมี Type เช่นเดียวกับ selector คำสั่งต่างๆ ที่ตามหลังทางเลือกจะถูกทำงานถ้าทางเลือกนั้นเป็นจริงเมื่อเทียบกับ Expression ถ้าเป็นเท็จแล้วจะทำงานตามหลัง ELSE หรือไม่ทำงานเลย ทางเลือก (Case Labels) ประกอบด้วยค่าคงที่ใดๆ แยกด้วย “ , ” หรือ Sub range หรือ Boolean ตามด้วย colon(:)

16 Syntax : OF .. , CASE ; END ELSE ; : Expression Case Labels Statements
Constant Constant ,

17 โครงสร้างของคำสั่ง CASE ในรูปของโปรแกรม
CASE Expression of CASE Label1 : Statement1; CASE Label2 : Statement2; . CASE Label_n : Statement_n [ ELSE Statement_n+1; ] END;

18 คำสั่ง CASE แสดงใน รูปผังงาน (Flowchart) ได้ดังนี้
Expression Statement 1 Statement 2 Statement n Statement n+1

19 ตัวอย่างเช่น . . . . . . . . . . CASE number MOD 2 of
0 : WRITELN(number :2, ’ is EVEN number '); 1 : WRITELN(number :2, ’ is ODD number '); END; CASE month of 1, 2, : WRITELN( 'First Quarter’ ); 4, 5, : WRITELN( 'Second Quarter’ ); 7, 8, : WRITELN( 'Third Quarter’ ); 10,11,12 : WRITELN( 'Fourth Quarter’ ); END; CASE code of true : WRITELN('True and Good'); false : BEGIN WRITELN('False'); WRITELN('I am Sorry'); END;

20 ตัวอย่าง . . . . . CASE year of min . . 1939 : BEGIN
time := per_world_war_2; WRITELN('The world at peace.'); END; max : BEGIN END ELSE

21 ตัวอย่าง CASE choice of '+' : result := first + second;
ELSE BEGIN result := 0; WRITELN('Invalid Operation Retry again'); END; WRITELN(first:4:2, choice, second:4:2, '=', result:8:2 ); END. เขียนโปรแกรมให้อ่านเลข 2 จำนวนจากคีย์บอร์ดเพื่อทำการบวก หรือคูณหรือหารอันใดอันหนึ่ง ตามแต่จะเลือกแล้วแสดงผลลัพธ์ด้วย PROGRAM Demo_CASE_Statement; USES CRT; VAR first, second, result : REAL; choice : CHAR; BEGIN WRITE('Enter two Numbers separated by space'); READLN( first, second ); WRITE('Enter Operation ( +, -, *, /)’ ); READLN( choice );

22 ตัวอย่าง จงเขียนโปรแกรมเพื่อแสดงรายการเป็นข้อๆ(Menu) และสามารถให้เลือกข้อที่ต้องการได้ PROGRAM DemoCaseStatement2; USES CRT; LABEL top, last; VAR number : INTEGER; Area, r : REAL; BEGIN top: WRITELN(' 1. คำนวณหาพื้นที่วงกลม '); WRITELN(' 2. คำนวณดอกเบี้ยเงินฝาก '); WRITELN(' 3. คำนวณหา grade โดยใช้คำสั่ง if '); WRITELN(' 4. คำนวณหา grade โดยใช้คำสั่ง case '); WRITELN(' 9. ออกจาก Menu '); WRITE(' คุณเลือกหมายเลข : '); READLN( number );

23 CASE number of 1 : BEGIN WRITE(' รัศมีวงกลม = '); READLN(r); Area := 3.14 * r * r; WRITELN(' พื้นที่วงกลม = ', Area:3:2 ); READLN; END; 2 : BEGIN WRITELN(' คำนวณดอกเบี้ยเงินฝาก ' ); READLN; 9 : GOTO last; (* ส่วนข้ออื่นๆให้คิดทำเอง *) ELSE BEGIN WRITELN(' สามารถเลือกได้เฉพาะที่มีราการ '); READLN; GOTO top; last: END.

24 โจทย์ ข้อที่ 4 จงเขียนโปรแกรมโดยใช้คำสั่ง case พื่อทำการตัด grade ตามช่วงของคะแนนข้างล่าง โดยรับข้อมูล รหัสชื่อ-สกุล และ คะแนนสอบของ นศ.ที่ลงเรียนวิชา Pascal ของ นศ. แต่ละคนดังนี้ :- คะแนน Grade F D C B A

25 โจทย์ ข้อที่ 5 จงเขียนโปรแกรมเพื่อทำการคำนวณภาษีเงินได้ ( อัตราก้าวหน้า ) ตามช่วงของภาษีดังนี้ :-
รายได้ / ปี อัตราภาษี < 50, % 50, , % 200, , % > 500, %

26 GOTO Statement เป็นคำสั่งที่ให้กระโดดข้ามไปทำ คำสั่งในบรรทัดที่ระบุ โดยไม่มีเงื่อนไข
รูปแบบ GOTO label; เช่น GOTO start_point; GOTO end_point;

27 PROGRAM Demo_GOTO_statement;
USES CRT; LABEL start_p, end_p; VAR id, cnt : INTEGER; BEGIN start_p: READLN(id); IF id > 0 THEN GOTO end_p ELSE writeln(‘ The number must be > 0 ’); writeln( ‘ Re-enter please ! ‘ ); GOTO start_p; end_p: writeln( ‘ The number = ‘, id); END.


ดาวน์โหลด ppt คำสั่งเงื่อนไขและการควบคุม

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


Ads by Google