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

1. а:=0; i:=1; repeat a:=a*i; i:=i +1 until i>=6 ;
2. а:=1; i:=0; repeat a:=a*i; i:=i +1 until i<5 ;
3. а:=1; i:=1; repeat a:=a*i; i:=i +1 until i<6 ;
4. а:=1; i:=1; repeat a:=a*i; i:=i +1 until i>=6 ;

Ответы

Ответ дал: adisin
1

Ответ:

4. a : = 1; i := 1; repeat a := a * i; i := i + 1 until i >= 6.

Объяснение:

Каждый вариант ответа повторяет процесс повторения, но отличается условием и присваиванием значений переменным.

Поэтому посмотрим сначала на один и тот же процесс:

  • repeat a := a * i; i := i + 1

Мы умножаем переменную a на переменную i, после чего увеличиваем переменную i на + 1.

Посмотрим теперь на присваивания в разных ответах.

  • 1. a := 0; i := 1.

Здесь мы изначально присваиваем числу а значение 0, i значение 1, то есть мы можем уже понять, что этот вариант ответа неправильный, т.к. у нас постоянно будет 0*1, 0*2, 0*3 и т.д.

  • 2. a := 1; i := 0.

Здесь мы изначально присваиваем числу а значение 1, i значение 0, что тоже неверно, потому что это в итоге будет выглядеть так:

1*0, 0*1, 0*2 и т.д.

  • 3,4. a := 1, i := 1

Здесь в двух вариантах ответа мы присваиваем двум переменным значение 1, которое выглядит правильно, потому что будет выглядеть следующим образом: 1*1, 1*2, 2*3, и т.д.

Мы откинул 1 и 2 ответы, так что осталось лишь посмотреть на условия в двух последних ответах.

  • 3. until i < 6

То есть мы будем выполнять перемножение до тех пор, пока i не станет меньше 6, что означает что функция выполнится всего 1 раз, потому что i изначально равно 1, что меньше 6.

Остаётся только 4 вариант ответа, где условие:

  • 4. until i >= 6

Что означает, что функция будет повторяться до тех пор пока i не станет больше или равно 6, что правильно.

Вот как это бы выглядело:

1*1; (i теперь 2)

1*2; (i теперь 3)

2*3; (i теперь 4)

6*4; (i теперь 5)

24*5; (i теперь 6, что равно 6 и повтор больше не происходит)

Надеюсь, логика понятно.

Вас заинтересует