Nested decisions
This page needs a recent browser (with SharedArrayBuffer support). Please update Chrome, Edge, Firefox or Safari to the latest version. · Эта страница требует современного браузера (с поддержкой SharedArrayBuffer). Пожалуйста, обновите Chrome, Edge, Firefox или Safari до последней версии.
English
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
English
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
English
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.
English
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 — отличие. Для проверок используются
>=.
English
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.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Same three outcomes as the previous task. This input should take the inner 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).
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.