Nested decisions · Quyết định lồng nhau
One mark, three outcomes
- A mark of 80 or more is a distinction, 50 or more is a pass, and anything lower is a fail.
- One
IFhas two paths. The second decision goes inside theELSE, as its ownIF. - Each
IFhas its ownENDIF. Indent the inner one so you can see whichELSEit belongs to.
Một điểm, ba kết quả
- Điểm 80 hoặc hơn là xuất sắc, 50 hoặc hơn là đạt yêu cầu, và thấp hơn thế nào cũng bị trượt.
- Một
IFcó hai nhánh. Quyết định thứ hai nằm bên trongELSE, như mộtIFđộc lập. - Mỗi
IFcóENDIFriêng. Thu vào trong (indent) cái bên trong để bạn thấy nó thuộc vềELSEnào.
DECLARE Mark : INTEGER
Mark ← 72
IF Mark >= 80
THEN
OUTPUT "Distinction"
ELSE
IF Mark >= 50
THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
ENDIF
ENDIF
Count the marks that count
- A validation tally walks the list and adds 1 only when the value is in range.
- The range test is the
ANDfrom the previous lesson, inside the loop.
Đếm những điểm có ý nghĩa
- Đếm xác minh duyệt qua danh sách và cộng 1 chỉ khi giá trị nằm trong khoảng.
- Bài kiểm tra khoảng chính là
ANDtừ bài học trước, nằm bên trong vòng lặp.
DECLARE Mark : ARRAY[1:4] OF INTEGER
DECLARE I, Count : INTEGER
Mark[1] ← 80
Mark[2] ← -1
Mark[3] ← 100
Mark[4] ← 40
Count ← 0
FOR I ← 1 TO 4
IF Mark[I] >= 0 AND Mark[I] <= 100
THEN
Count ← Count + 1
ENDIF
NEXT I
OUTPUT Count // → 3
Watch out
- The inner
IFstarts on the line afterELSE. It is not written on theELSEline. - Close the inner
ENDIFbefore the outer one. The lastENDIFbelongs to the firstIF.
Lưu ý
IFbên trong bắt đầu trên dòng sauELSE. Nó không được viết trên cùng dòng vớiELSE.- Đóng
ENDIFbên trong trước khi đóng cái ngoài.ENDIFcuối cùng thuộc vềIFđầu tiên.
Common mistakes
- An
ENDIFin the wrong place closes the outer test and leaves the inner one open. - A mark of exactly 50 is a pass, and exactly 80 is a distinction. The tests use
>=.
Lỗi thường gặp
- Một
ENDIFđặt sai vị trí sẽ đóng bài kiểm tra ngoài và để lại bài kiểm tra bên trong mở. - Điểm đúng bằng 50 là đạt yêu cầu, và đúng bằng 80 là xuất sắc. Các bài kiểm tra sử dụng
>=.
Now you try
- The first two tasks are nested decisions. The third counts with
AND. - Press Check answer to test it.
Bây giờ bạn thử
- Hai nhiệm vụ đầu tiên là các quyết định lồng nhau. Nhiệm vụ thứ ba đếm bằng
AND. - Nhấn Kiểm tra đáp án để thử nghiệm.
Read an INTEGER Mark. Output Distinction for 80 or more, otherwise Pass for 50 or more, otherwise Fail. Nest the second IF under ELSE. · Đọc một INTEGER Mark. Xuất Distinction nếu từ 80 trở lên, ngược lại xuất Pass nếu từ 50 trở lên, ngược lại xuất Fail. Lồng IF thứ hai vào trong ELSE.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Same three outcomes as the previous task. This input should take the inner ELSE. · Cùng ba kết quả như bài tập trước. Dữ liệu đầu vào này sẽ đi vào nhánh trong ELSE.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
The array Mark holds 80, -1, 100, 40. Count how many values are from 0 to 100 inclusive and output the count (it is 3). · Mảng Mark chứa 80, -1, 100, 40. Đếm có bao nhiêu giá trị nằm trong khoảng từ 0 đến 100 (bao gồm cả hai đầu) và xuất số đếm (đó là 3).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.