Предмет: Информатика, автор: supersonichedgehog

Определите значение переменной y, которое будет получено в результате выполнения следующей программы:

var y : real; i : integer;

begin y:=0; i:=1;

repeat i:=2*i;

y:=y+i

until i>5;

end.

Ответы

Автор ответа: olga0olga76
1

Ответ:

у=2

Объяснение:

начало программы

1) у=0, i=1

2) i=2*1=2, y=0+2=2

3) i=2>5 (нет)→

конец программы


supersonichedgehog: Тесты считывают ответ 2 как неправильный
olga0olga76: проверьте правильность условия, потому что оно крайне странное (увеличение i в 2 раза пока i>5)
olga0olga76: если бы первоначально было бы i больше 5, то программа вообще зациклилась бы
olga0olga76: может должен быть знак <, а не >?
supersonichedgehog: Я копирую условие. Возможно составитель ошибся. Если изменить условие на i<5, то какой будет ответ? Спасибо
supersonichedgehog: Ну, я вводила 2 и 3) Оба неверны
olga0olga76: а, извините, перепутала чутка условие
olga0olga76: посмотрите второй ответ, он верен
olga0olga76: хотя нет, стоп
olga0olga76: ну да, ответ 14
Автор ответа: valgrisa
1

Ответ:

14

Объяснение:

y = 0

i = 1

i = 2 * 1 = 2

y = 0 + 2 = 2

2 > 5 (нет)

i = 2 * 2 = 4

y = 2 + 4 = 6

4 > 5 (нет)

i = 2 * 4 = 8

y = 6 + 8 = 14

8 > 5 (да)

Цикл repeat выполняется пока условие ложно, при истинном условии выполнение цикла прекращается.

Похожие вопросы
Предмет: Русский язык, автор: милка193