Сверь числа и знаки с фото.
Информатика 7 класс
Бір ұпайлық тапсырмалар / Задания на один балл
- Что будет напечатано? (Индексация массива начинается с 1) arr = [2, 4, 6, 8] sum = 0 FOR i FROM 1 TO LENGTH(arr) DO sum = sum + arr[i] / 2 END FOR PRINT sum
A) 20 B) 12 C) 8 D) 10 E) 6
- Какой результат выполнения? x = 1 FOR i FROM 1 TO 4 DO x = x * 2 END FOR PRINT x
A) 8 B) 16 C) 32 D) 4 E) 12
- Что будет выведено? a = 3 b = 0 WHILE a > 0 DO b = b + a a = a - 1 [обрезано: конец программы и варианты ответов A–E]
Краткий ответ
| № | Ответ |
|---|---|
| 1 | D) 10 |
| 2 | B) 16 |
| 3 | 6 (при условии, что в конце стоит PRINT b — эти строки на фото обрезаны) |
Как это получается
Задание 1
Массив arr = [2, 4, 6, 8], значит \(\text{LENGTH(arr)} = 4\). Цикл выполнится 4 раза, причём arr[i] берётся с 1-м индексом.
Каждый раз к sum прибавляется половина текущего элемента (деление стоит внутри цикла — это главная ловушка):
\[ \text{sum} = \frac{2}{2}+\frac{4}{2}+\frac{6}{2}+\frac{8}{2} = 1+2+3+4 = 10 \]
Если бы сначала сложили все элементы, а потом делили, получилось бы \(\frac{20}{2} = 10\) — здесь совпало случайно, но вообще порядок действий важен.
Задание 2
x стартует с 1, и на каждом из 4 шагов удваивается:
| i | x после шага |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 8 |
| 4 | 16 |
\[ x = 1 \cdot 2^{4} = 16 \]
Задание 3
Здесь WHILE a > 0 — цикл идёт, пока a положительно:
| a до шага | b = b + a | a = a − 1 |
|---|---|---|
| 3 | 3 | 2 |
| 2 | 5 | 1 |
| 1 | 6 | 0 |
Когда a стало равно 0, условие a > 0 ложно — цикл останавливается. В b накопилось \(3+2+1 = 6\), поэтому PRINT b выведет 6.
На фото видно только тело цикла; строки END WHILE, PRINT b и варианты ответа A–E обрезаны — пришли более чёткий фрагмент низа листа, если нужно сверить с вариантами.
Проверка и принцип
- Цикл с параметром (
FOR i FROM 1 TO N) выполняется ровно \(N\) раз, границы включаются. - Цикл с условием (
WHILE) может не выполниться ни разу, если условие сразу ложно. - Надёжный способ не ошибиться — таблица трассировки: столбец на каждую переменную, строка на каждый шаг.
- Всегда смотри, стоит ли действие внутри цикла или после него:
sum = sum + arr[i] / 2иsum = sum + arr[i], а потом деление — разные программы.