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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 2 ภาษาปาลคาลเบื้องต้น.
Advertisements

การทำงานแบบเลือกทำ (Selection)
ลักษณะโครงสร้างของผังงาน
LAB 1 ให้นักศึกษาเขียน Flowchart โดยใช้โปรแกรม Microsoft Word วาดรูป Flowchart ส่ง Flowchart ที่วาดเสร็จแล้วในชั่วโมง และ print ใส่กระดาษ ส่งในครั้งหน้า.
Control Statement if..else switch..case for while do-while.
User Defined Simple Data Type
บทที่ 3 ตอนที่ 1 คำสั่งเงื่อนไขและการตัดสินใจ(p
โครงสร้างควบคุมและคำสั่งแบบเงื่อนไข
Lecture no. 5 Control Statements
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
เฉลย Lab 10 Loop.
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
ผังงานโปรแกรม (Program Flowchart)
คำสั่งแบบเลือกทำ Week 6.
การแสดงผลและ รับข้อมูล. คำสั่ง Write เป็นคำสั่งที่นำข้อมูลที่ ต้องการแสดงผลที่ จอภาพเมื่อตอนสั่งรัน โปรแกรมไม่ว่าจะ เป็นข้อมูลประเภทข้อความ ตัวเลข การ.
บทที่ 4 การตัดสินใจในการเขียนโปรแกรม
Lab 4: คำสั่ง if - else อ.ณัฐพงศ์ พยัฆคิน.
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
Repetitive Statements (Looping)
โครงสร้างคำสั่งแบบเลือก (Selection)
Repetitive Instruction
ภาษาปาสคาล ผู้สร้าง Dr.Niklaus Wirth ปี 2513
การรับข้อมูล และ การแสดงผล
คำสั่งควบคุมการทำงาน
PROCEDURE <<โปรแกรมย่อย>>
คำสั่งแบบมีเงื่อนไข IF Statement
การควบคุมทิศทางการทำงานของโปรแกรม
การเขียนผังงานแบบโครงสร้าง
ตัวอย่างการใช้คำสั่ง IF_THEN
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
คำสั่ง Repeat...Until คำสั่งควบคุมให้ทำงานซ้ำ
ตัวอย่างคำสั่ง FOR.
ตัวอย่างคำสั่ง CASE.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 3 ตัวดำเนินการ และ นิพจน์
บทที่ 9 การรับและแสดงผลข้อมูล
บทที่ 7 การกำหนดชนิดข้อมูลใหม่
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
Flowchart รูปแบบ If ซ้อน If ก็คือ การเอา If ไปไว้ใน If ทางฝั่ง True  โดยโครงสร้าง If ซ้อน If นั้นเอาไว้ใช้กับ กรณีตรวจสอบเงื่อนไขที่มากกว่า 2 กรณี เพราะเนื่องจาก.
คำสั่งควบคุมการทำงาน
Chapter 5 คำสั่งควบคุมการทำซ้ำ
Chapter 4 คำสั่งควบคุมทิศทาง
โครงสร้างควบคุมการทำงาน
ครูรัตติยา บุญเกิด.
ครูรัตติยา บุญเกิด.
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
คำสั่งเงื่อนไข ง การเขียนไดนามิก เว็บเพจ ศูนย์คอมพิวเตอร์โรงเรียนปลวกแดงพิทยาคม.
คำสั่ง while และ do…while
โครงสร้างแบบลำดับ คำสั่ง x คำสั่ง y.
การเขียนผังงาน (Flowchart)
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
คำสั่งควบคุมการทำงานของ ActionScripts
Week 3 Flow Control in PHP
การเขียนผังงานแบบทำซ้ำ
พื้นฐานการเขียนโปรแกรม
บทที่ 10 คำสั่งควบคุม OUTLINE 1. คำสั่งแบบเรียงลำดับ (Sequence)
บทที่ 9 เซต (Set) เซต หมายถึงกลุ่ม ฝูง พวก ชุด ของสิ่งใดสิ่งหนึ่ง เช่น เพศ ประกอบด้วย หญิง และ ชาย รายการที่อยู่ในเซต เรียกว่าสมาชิก เซตย่อย (Subset) คือ.
บทที่ 8 ตัวดำเนินการ และ นิพจน์
การออกแบบโครงสร้าง (Structured Design)
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
Control Flow.
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
บทที่ 7 เงื่อนไขในภาษาซี
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
การรับและแสดงผลข้อมูล (Input/Output)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
1 บทที่ 5 โปรแกรมย่อย Part II Function. 2 ฟังก์ชัน (Function) เป็นชุดคำสั่งย่อยที่มีหน้าที่เฉพาะอย่างใดอย่างหนึ่ง เหมือนกับ procedure สามารถมีการรับส่งค่าข้อมูล.
บทที่ 5 โปรแกรมย่อย.
ผังงานโปรแกรม (Program Flowchart)
ใบสำเนางานนำเสนอ:

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

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

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

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

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

ตัวอย่าง 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);

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

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 ; …..

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

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

ตัวอย่าง 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);

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

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;

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

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

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

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

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

ตัวอย่างเช่น . . . . . . . . . . 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, 3 : WRITELN( 'First Quarter’ ); 4, 5, 6 : WRITELN( 'Second Quarter’ ); 7, 8, 9 : 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;

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

ตัวอย่าง 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 );

ตัวอย่าง จงเขียนโปรแกรมเพื่อแสดงรายการเป็นข้อๆ(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 );

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.

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

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

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

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.