Вопрос:

Выберите фрагмент программы, в котором ищется произведение 1*2*3*4*5

Смотреть решения всех заданий с листа

Ответ:

Привет! Давай разберемся, какой фрагмент программы нам нужен, чтобы найти произведение чисел от 1 до 5.

Первый вариант:

p:= 1; i:=1; while i>5 do begin p:=p*i; i:=i+1 end;

  • Здесь p и i начинаются с 1.
  • Цикл while i>5 означает, что он будет работать, пока i больше 5.
  • Первая итерация: i = 1, условие 1 > 5 ложно, цикл не выполняется.
  • Результат: p останется равным 1. Нам такое не подходит.

Второй вариант:

p:= 1; i:=1; while i<6 do begin p:=p*i; i:=i+1 end;

  • p и i начинаются с 1.
  • Цикл while i<6 будет работать, пока i меньше 6.
  • Разберем по шагам:
    • i=1: p = 1 * 1 = 1; i = 1 + 1 = 2
    • i=2: p = 1 * 2 = 2; i = 2 + 1 = 3
    • i=3: p = 2 * 3 = 6; i = 3 + 1 = 4
    • i=4: p = 6 * 4 = 24; i = 4 + 1 = 5
    • i=5: p = 24 * 5 = 120; i = 5 + 1 = 6
    • i=6: условие 6 < 6 ложно, цикл завершается.
  • В итоге p будет равно 120, что является произведением 1*2*3*4*5. Этот вариант подходит!

Третий вариант:

p:=0; i:=1; while i<=5 do i:=i+1; p:=p*i;

  • Здесь p начинается с 0.
  • Цикл while i<=5 работает, пока i меньше или равно 5.
  • Внутри цикла только i:=i+1, а умножение p:=p*i происходит после цикла.
  • Поэтому p сначала будет 0 * 1 = 0, потом 0 * 2 = 0 и так далее.
  • В конце p будет равно 0, а i будет равно 6 (так как последний шаг в цикле был i=5, потом i:=i+1 стало 6).
  • Результат: p равно 0. Нам такое не подходит.

Четвертый вариант:

p:= 1; i:=1; while i<6 do i:=i+1; p:=p*i;

  • Здесь p начинается с 1, а i с 1.
  • Цикл while i<6 работает, пока i меньше 6.
  • Но внутри цикла меняется только i, а умножение p:=p*i происходит после цикла.
  • Когда цикл закончится, i будет равно 6.
  • Тогда p станет равным 1 * 6 = 6.
  • Результат: p равно 6. Нам такое не подходит.

Вывод: Правильный вариант — второй, где произведение вычисляется внутри цикла.

Ответ: p:= 1; i:=1; while i<6 do begin p:=p*i; i:=i+1 end;

ГДЗ по фото 📸
Подать жалобу Правообладателю