Logic: AND, OR, NOT
A club that checks both ends of the age
- A club takes members only from 11 to 16. One test cannot say both ends.
ANDisTRUEonly when both tests areTRUE:Age >= 11 AND Age <= 16.NOTflips a Boolean. The tasks use it on a flag, not on a number.
DECLARE Age : INTEGER
Age ← 14
IF Age >= 11 AND Age <= 16 THEN
OUTPUT "accepted"
ELSE
OUTPUT "no"
ENDIF
A fare that depends on either age
- A bus fare is free under 5, or at 65 and over. One of those tests is enough.
ORisTRUEwhen either operand isTRUE.
DECLARE Age : INTEGER
Age ← 70
IF Age < 5 OR Age >= 65 THEN
OUTPUT "free"
ELSE
OUTPUT "pay"
ENDIF
Nest the second decision
- 80 or more is a distinction. Otherwise, 50 or more is a pass, and the rest is a fail.
- The second
IFis the statement underELSE, with its ownENDIF. THENstays on theIFline, including the inner one.
DECLARE Mark : INTEGER
Mark ← 72
IF Mark >= 80 THEN
OUTPUT "Distinction"
ELSE
IF Mark >= 50 THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
ENDIF
ENDIF
Watch out
- Write the variable on both sides of
AND.Mark >= 0 AND <= 100is not a test. - IGCSE 0478 puts
THENon the following line. Do not mix the two papers.
Common mistakes
ELSEbelongs to theIFabove it. Indent the innerIFso the finalENDIFis the outer one.NOTapplies to a Boolean.NOT Markis not how you test a number.
Now you try
- One task is an
OR, one is aNOT, and one is the nested grade.
Read an INTEGER Age. Output free when Age is under 5 or at least 65, using OR. Otherwise output pay. · Đọc một số INTEGER Age. Xuất free khi Age nhỏ hơn 5 hoặc lớn hơn hoặc bằng 65, sử dụng OR. Ngược lại xuất pay.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Alarm is a BOOLEAN set to FALSE. If NOT Alarm, output quiet, otherwise output ring. · Alarm là một BOOLEAN để FALSE. Nếu NOT Alarm, xuất ra quiet, ngược lại xuất ra ring.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Read an INTEGER Mark. Output Distinction for 80 or more, otherwise Pass for 50 or more, otherwise Fail. Put the second IF under ELSE, with THEN on the IF line. · Đọc một INTEGER Mark. Trả về Distinction nếu lớn hơn hoặc bằng 80, ngược lại trả về Pass nếu lớn hơn hoặc bằng 50, ngược lại trả về Fail. Đặt IF thứ hai bên dưới ELSE, với THEN trên dòng IF.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.