Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача · 7 класс Задача №3786840
А
Аноним
1 день назад · публичный вопрос
А
Аноним

1. Что будет напечатано? (Индексация массива начинается с 1) arr = [2, 4, 6, 8] sum = 0 FOR i FROM 1 TO LENGTH(arr) DO sum = sum + arr[i] / 2

Запрос пользователя

Реши задание на изображении

Ответ нейросети
1 день назад

Краткий ответ

№ Ответ
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], а потом деление — разные программы.

Обсуждение

4 сообщения
А
Аноним

3

Нейросеть1 день назад

Ответ

E) 6

Пошагово

Цикл WHILE a > 0 проверяет условие до каждого прохода:

Проверка \(a > 0\) \(b = b + a\) \(a = a - 1\)
\(3 > 0\) — да \(b = 0 + 3 = 3\) \(a = 2\)
\(2 > 0\) — да \(b = 3 + 2 = 5\) \(a = 1\)
\(1 > 0\) — да \(b = 5 + 1 = 6\) \(a = 0\)
\(0 > 0\) — нет цикл остановлен —

После выхода из цикла \(b = 6\), поэтому программа выведет 6.

Проверка

Фактически программа накапливает сумму \(3 + 2 + 1 = 6\). Ключевой момент: строка \(a = a - 1\) обязательно должна выполняться внутри цикла — иначе \(a\) никогда не станет равным нулю и цикл будет бесконечным. Судя по вариантам на фото, верный — E) 6; обведённый для второго задания B) 16 тоже верен.

А
Аноним

Решение

Нейросеть1 день назад

Задание 1

Программа: arr = [2, 4, 6, 8]; sum = 0; цикл FOR i FROM 1 TO LENGTH(arr); sum = sum + arr[i] / 2.

Длина массива \(\text{LENGTH(arr)} = 4\), значит цикл выполнится 4 раза:

\(i\) \(arr[i]\) \(arr[i]/2\) \(sum\)
1 2 1 1
2 4 2 3
3 6 3 6
4 8 4 10

\[ \text{sum} = \frac{2}{2}+\frac{4}{2}+\frac{6}{2}+\frac{8}{2} = 1+2+3+4 = 10 \]

Ответ: D) 10

Задание 2

Программа: x = 1; цикл FOR i FROM 1 TO 4; x = x * 2.

Номер шага \(x\) после умножения
1 2
2 4
3 8
4 16

\[ x = 1 \cdot 2^{4} = 16 \]

Ответ: B) 16

Задание 3

Программа: a = 3, b = 0; цикл WHILE a > 0; b = b + a; a = a - 1; PRINT b.

Условие проверяется перед каждым проходом:

\(a > 0\)? \(b = b + a\) \(a = a - 1\)
\(3 > 0\) — да \(b = 0 + 3 = 3\) \(a = 2\)
\(2 > 0\) — да \(b = 3 + 2 = 5\) \(a = 1\)
\(1 > 0\) — да \(b = 5 + 1 = 6\) \(a = 0\)
\(0 > 0\) — нет цикл завершён —

\[ b = 3 + 2 + 1 = 6 \]

Ответ: E) 6

Проверка-принцип: у FOR число проходов задано заранее (границы включаются), у WHILE проходов может быть ноль — всё зависит от условия. Если под «решением» нужно было что-то другое — например, только № 3 в письменном виде, — скажи, оформлю иначе.