Nested decisions · החלטות מובנות
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.
סימן אחד, שלושה תוצאות
- ציון של 80 ומעלה הוא מצוין, 50 ומעלה הוא עובר, והכל נמוך יותר הוא כשל.
IFאחד יש לו שני מסלולים. ההחלטה השנייה הולכת בתוך ה-ELSE, כה-IFמשלו.- לכל
IFיש את ה-ENDIFשלו. עשה הזזה פנימית כדי שתוכל לראות לאילוELSEהוא משתייך.
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.
ספור את הציונים שחשובים
- ספירת תקפות עוברת על הרשימה ומוסיפה 1 רק כאשר הערך בטווח.
- בדיקת הטווח היא ה-
ANDמהשיעור הקודם, בתוך הלולאה.
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.
שימו לב
- הפקודה
IFהפנימית מתחילה בשורה אחריELSE. היא אינה נכתבת בשורת ה-ELSE. - סגור את ה-
ENDIFהפנימי לפני החיצוני. ה-ENDIFהאחרון שייך ל-IFהראשון.
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
>=.
טעויות נפוצות
- פקודה
ENDIFבמקום לא נכון סוגרת את הבדיקה החיצונית ומשאירה את הפנימית פתוחה. - ציון של בדיוק 50 הוא מעבר, וציון של בדיוק 80 הוא מצוינות. הבדיקות משתמשות ב-
>=.
Now you try
- The first two tasks are nested decisions. The third counts with
AND. - Press Check answer to test it.
כעת תנסו בעצמכם
- שתי המשימות הראשונות הן החלטות מקודדות זו בתוך זו. השלישית מחושבת עם
AND. - לחץ על בדיקת תשובה כדי לבדוק אותה.
Read an INTEGER Mark. Output Distinction for 80 or more, otherwise Pass for 50 or more, otherwise Fail. Nest the second IF under ELSE. · קרא ערך INTEGER Mark. הפלט Distinction עבור 80 או יותר, אחרת הפלט Pass עבור 50 או יותר, אחרת הפלט Fail. תכנן את ה-IF השני בתוך ה-ELSE.
Click Run to see the output here. · לחץ על הרץ כדי לראות את התוצא כאן.
Same three outcomes as the previous task. This input should take the inner ELSE. · אותם שלושה תוצאות כמו במשימה הקודמת. כניסה זו צריכה לקבל את ה-ELSE הפנימי.
Click Run to see the output here. · לחץ על הרץ כדי לראות את התוצא כאן.
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). · המערך Mark מכיל 80, -1, 100, 40. ספור כמה ערכים נמצאים בטווח מ-0 עד 100 (כולל הקצוות) והפלט את הספירה (היא 3).
Click Run to see the output here. · לחץ על הרץ כדי לראות את התוצא כאן.