ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยYaowalak Santisakul ได้เปลี่ยน 10 ปีที่แล้ว
1
บทที่ 10 คำสั่งควบคุม OUTLINE 1. คำสั่งแบบเรียงลำดับ (Sequence)
2. คำสั่งแบบทางเลือก (Selection) 3. คำสั่งแบบวนซ้ำ (Repetition)
2
คำสั่งเชิงกลุ่ม ปกติรูปแบบคำสั่งมักมีเพียงคำสั่งเดียวและจบด้วย ;
บางครั้งต้องการคำสั่งหลายคำสั่ง สามารถจัดกลุ่มคำสั่งโดยคำสั่งอยู่ระหว่าง BEGIN และ END เรียกว่า compound statement โครงสร้างมักจะเขียนในรูปของ compound statement เพื่อทำให้เห็นกลุ่มคำสั่ง เป็นคำสั่งเดียวกัน
3
คำสั่งแบบเรียงลำดับ รูปแบบ BEGIN Statement 1; Statement 2; :
Statement n; END เป็นการทำงานแบบเรียงลำดับ ทำตามคำสั่งตั้งแต่ต้นจนถึงคำสั่งสุดท้าย
4
คำสั่งแบบทางเลือก คำสั่งแบบทางเลือก
เป็นคำสั่งควบคุมให้ทำงานใด งานหนึ่งขึ้นอยู่กับเงื่อนไขที่ทดสอบ คำสั่งแบบทางเลือก มี 3 รูปแบบ IF ….. THEN IF……THEN …..ELSE CASE….
5
IF ….. THEN รูปแบบ IF expression THEN BEGIN statement 1;
statement n END; ผลลัพธ์ในการทอสอบมีค่า จริงกับเท็จ ถ้าผลทดสอบเป็นจริง จะทำงานตามคำสั่งหลัง THEN จบด้วย ; แสดงถึงการจบเงื่อนไข
6
ตัวอย่างการใช้เครื่องหมาย ;
IF small > big THEN temp := small; small := big; big := temp; N Y Small>big Temp := small Small := big Big := temp;
7
ตัวอย่างการใช้เครื่องหมาย ;
IF small > big THEN begin temp := small; small := big; big := temp end; N Y Small>big Temp := small Small := big Big := temp;
8
ตัวอย่างการใช้ IF……THEN
1. IF (enter < 0) or (enter > 100) THEN BEGIN Writeln(‘range is 1 to 100, please re-enter:’; Readln(enter); END;
9
ตัวอย่างการใช้ IF……THEN
2. บริษัทมีเงื่อนไขการจ่ายคอมมิสชันดังนี้ ถ้าขายไม่เกิน 1000 บาท ได้คอมมิสชัน 5% ของยอดขาย ถ้าขายระหว่าง 1001 ถึง 5000 บาทได้คอมมิสชัน จะได้ 5%ของส่วน 1000 และ 8% ของส่วนที่เกิน 1000 บาท ถ้าขายเกิน 5000 บาท ได้ 5% ของ 1000 บาทรวมกับ 8% ของ 4000 และรวมกับ 10% ของส่วนที่เกิน 5000 บาท
10
ตัวอย่างการใช้ IF……THEN
IF sale <= THEN commission := 0.05*sale; IF (sale > 1000) and (sale <= 5000) THEN commission := *(sale ); IF (sale > 5000) THEN commission := * (sale );
11
IF……THEN …..ELSE รูปแบบ ผลการทดสอบเป็นจริง ทำคำสั่งหลัง THEN
IF condition THEN begin statement (s); end ELSE end; ผลการทดสอบเป็นจริง ทำคำสั่งหลัง THEN ผลการทดสอบเป็นเท็จ ทำคำสั่งหลัง ELSE คำสั่ง END ก่อน ELSE ห้ามมีเครื่องหมาย ; เพราะยังไม่สิ้นสุดเงื่อนไข
12
ตัวอย่าง IF….THEN….ELSE
1. IF day > 31 THEN writeln (‘error’) ELSE writeln (‘day: ‘, day:2);
13
ตัวอย่าง IF….THEN….ELSE
IF (game <= 4) and (score < ) THEN BEGIN game := game + 1; writeln(‘new game’) END ELSE writeln (‘game over:’,’score = ‘,score:6:2);
14
ตัวอย่าง โปรแกรม IF….THEN….ELSE
Program ifelse; uses wincrt; var mark: integer; begin clrscr; write('Enter mark:'); readln(mark); if mark > 50 then writeln('You are above average') else begin writeln('You are under average'); writeln('Please test again') end; end.
15
IF ซ้อน IF มีการเช็คเงื่อนไขภายใต้เงื่อนไขอีกที จะมีการเช็คกี่ครั้งก็ได้ เรียกว่า Nested if statement IF codition1 THEN statement(s) ElSE IF condition2 THEN ELSE statement(s);
16
ตัวอย่างโปรแกรม IF ซ้อน IF
Program ifelse1; uses wincrt; var sale: integer; com : real; begin clrscr; write('Enter amount sale:'); readln(sale); if sale <= 1000 then com := 0.05 * sale else if sale <= 5000 then com := 50 +(sale -1000) * 0.08 com := 370 +(sale ) * 0.1; writeln('Your commission are: ',com:7:2); readln; end.
17
คำสั่ง CASE คำสั่ง CASE ทำให้การทำงานของโปรแกรมที่มีทางเลือกหลายทางอย่างเช่น IF ซ้อน IF ทำงานง่ายขึ้น CASE condition OF กรณี1 : คำสั่งในกรณีที่1; กรณีN : คำสั่งในกรณีที่N; ELSE คำสั่ง; END;
18
คำสั่ง CASE กรณี อาจเป็นค่าคงที่ หรือ ช่วงข้อมูล Program case1;
uses wincrt; var num : integer; begin write('Enter number 1 to 10:'); readln(num); CASE num OF 1,3,5,7,9 : writeln('It is odd number.'); 2,4,6,8,10: writeln('It is even number.'); END; end.
19
คำสั่ง CASE Program case2; uses wincrt; var key : char; begin clrscr;
writeln('Press any key'); Key := readkey; writeln; CASE key OF 'a'..'z': writeln('It is lowercase letter.'); 'A'..'Z': writeln('It is uppercase letter.'); '0'..'9': writeln('It is number key.'); ElSE writeln('It is special character.') END; end.
20
คำสั่งแบบวนซ้ำ คำสั่ง FOR คำสั่ง WHILE คำสั่ง REPEAT….UNTIL
21
คำสั่ง FOR คำสั่ง FOR เป็นคำสั่งควบคุมการวนซ้ำ มีการกำหนดจำนวนรอบ
มีการเพิ่ม/ลด ค่าการเช็ครอบโดยอัตโนมัติ
22
คำสั่ง FOR รูปแบบ FOR var := start TO end DO
FOR var := start DOWNTO end DO VAR ตัวแปรต้องเป็นข้อมูลแบบลำดับ คือ integer, byte, char, boolean ห้ามเป็น real start ค่าเริ่มต้น end ค่าสิ้นสุด TO เพิ่มค่า VAR ส่วน DOWNTO ลดค่าของ VAR
23
คำสั่ง FOR Program for1; uses wincrt; var next : char; begin
for next := 'A' TO 'G' DO writeLn(next,'***'); readln; end.
24
คำสั่ง FOR ซ้อน FOR Program for2; uses wincrt; const row = 5;
col = 20; var i,j : byte; begin for i:=1 TO row DO for j:= 1 to col do write('*'); writeln end; readln; end.
25
คำสั่ง FOR DOWNTO Program for3; uses wincrt; const max = 10; min = -5;
var i : integer; begin for i:= max DOWNTO min DO write(I:3); readln; end.
26
คำสั่ง FOR Program for4; uses wincrt var i : char; begin
for i:= 'A' TO 'Z' DO write(i:2); readln; end.
27
คำสั่ง WHILE คำสั่ง WHILE เป็นคำสั่งการทำงานแบบวนซ้ำ
โดยมีการเซ็คเงื่อนไขก่อนที่จะทำงานภายในลูป จะเข้าทำซ้ำเมื่อเงื่อนไขเป็นจริง หยุดทำงานเมื่อเป็นเท็จ ไม่กำหนดจำนวนรอบ แต่ขึ้นอยู่กับเงื่อนไข ภายในลูปมีคำสั่งที่ทำให้เงื่อนไขเป็นเท็จ เพื่อป้องกัน Infinity loop
28
คำสั่ง WHILE รูปแบบ WHILE condition DO Statement;
29
คำสั่ง WHILE เพื่อให้หยุดการรับข้อมูล มี 3 วิธี
รู้จำนวนข้อมูลว่ามีกี่ตัว ไม่รู้จำนวนข้อมูล จึ่งกำหนดค่าข้อมูลตัวสุดท้ายไม่ตรงกับข้อมูลอื่นๆ เช่น 999 END ดังนั้นเงื่อนไขทำการเช็คนี้เสมอก่อนทำงาน ไม่รู้จำนวนข้อมูล จึงตั้งคำถามให้ผู้ใช้ตอบ เช่น Y N นิยมใช้กับ REPEAT
30
คำสั่ง WHILE รู้จำนวนข้อมูล
Program while1; uses wincrt; const max = 10; var min : integer; begin min := 1; while min < max do write(min:2); min := min + 1 end; end.
31
คำสั่ง WHILE ใช้ ข้อมูลสุดท้ายเป็นตัวเช็ค
จงเขียนโปรแกรมหาค่าเฉลี่ย โปรแกรมมี 999 เป็นข้อมูลตัวสุดท้าย Program while2; uses wincrt; const eof = 999; var score,sum,count : integer; average : real; begin
32
คำสั่ง WHILE ใช้ ข้อมูลสุดท้ายเป็นตัวเช็ค
write('Enter score: '); readln(score); while score <> eof do begin sum := sum + score; count := count + 1; end; average := sum / count; writeln('Average is :',average:5:2); readln; end.
33
คำสั่ง REPEAT คำสั่ง REPEAT เป็นคำสั่งวนซ้ำเหมือน WHILE แต่มีข้อแตกต่างคือ While มีการเช็คเงื่อนไขก่อนดเข้าลูป นั้นหมายถึงอาจจะไม่มีการเข้าลูปก็ได้ แต่ Repeat ต้องเข้าลูปอย่างน้อย1 ครั้ง While ทำซ้ำเมื่อเงื่อนไขเป็นจริง แต่ Repeat ทำซ้ำเมื่อเงื่อนไขเป็นเท็จ
34
คำสั่ง REPEAT รูปแบบ REPEAT STATEMENT(S); UNTIL CONDITION;
35
คำสั่ง REPEAT Program Repeat1; uses wincrt; const password = ’pascal';
var pass: string; begin Repeat write('Enter password: '); readln(pass); Until pass = password; readln; end.
36
คำสั่ง REPEAT Program Repeat2; uses wincrt; const star = '*';
var ch: char; a,e,i,o,u : byte; begin Repeat write('Enter vowel(a,e,i,o,u) or * to end: '); ch := readkey; case ch of 'a','A' : a := a+1; 'e','E' : e := e+1;
37
คำสั่ง REPEAT 'i','I' : i := i+1; 'o','O' : o := o+1;
'u','U' : u := u+1; end; writeln; Until ch = star; writeln('A =',a:3); writeln('E =',e:3); writeln('I =',i:3); writeln('O =',o:3); writeln('U =',u:3); readln; end.
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.