Рядом с вами находятся две корзины. первая наполнена яблоками разных размеров, вторая — пустая.

шаг 1. вы берёте любое яблоко из первой корзины и кладёте его на стол перед собой.

шаг 2. вы достаёте следующее яблоко из первой корзины и выполняете сравнение:

— если яблоко в руках больше, чем яблоко на столе, то вы опускаете яблоко, которое у вас в руках, во вторую корзину;
— если яблоко в руках меньше яблока на столе, вы кладёте яблоко на стол, а яблоко, которое лежало на столе, перекладываете во вторую корзину.
вы повторяете шаг 2 до тех пор, пока первая корзина не опустеет.

какое яблоко окажется на столе в самом конце? попытайтесь сформулировать, что является инвариантом цикла в алгоритме. сформулируйте условие с использованием терминологии, рассмотренной в этом параграфе.

Элис6666666666 Элис6666666666    2   07.12.2019 15:46    105

Ответы
aiphone20032 aiphone20032  07.12.2019 18:03

ответ:

после выполнения шага 1 на столе лежит яблоко, которое достали из корзины первым, а вторая корзина пуста. после каждого выполнения шага 2 большее яблоко перемещается в корзину, а меньшее остается на столе. в результате на столе окажется самое маленькое яблоко.

при обосновании корректности циклических алгоритмов полезно использовать понятие инварианта цикла. в случае алгоритма инвариантом цикла является такое условие «лежащее на столе яблоко — самое маленькое из всех взятых до сих пор». в начале алгоритма условие очевидно выполняется (любое яблоко удовлетворяет этому условию). условие остается истинным на каждом шаге в соответствии с правилами. таким образом, в конце алгоритма, когда все яблоки взяты, получим самое маленькое яблоко из всех.

подробнее - на -

объяснение:

ПОКАЗАТЬ ОТВЕТЫ
linanstyoxvdtf linanstyoxvdtf  11.01.2024 09:25
Пошаговое решение этой задачи:

1. В начале у нас есть две корзины - первая с яблоками разных размеров, вторая - пустая, и стол, на котором будет происходить сравнение яблок.

2. Берем любое яблоко из первой корзины и кладем его на стол пред собой.

3. Достаем следующее яблоко из первой корзины.

4. Выполняем сравнение:
- Если яблоко в руках больше чем яблоко на столе, то опускаем яблоко, которое у нас в руках, во вторую корзину.
- Если яблоко в руках меньше яблока на столе, то кладем яблоко на стол, а яблоко, которое лежало на столе, перекладываем во вторую корзину.

5. Повторяем шаг 4 до тех пор, пока первая корзина не опустеет.

Теперь давайте анализировать этот алгоритм, чтобы понять, какое яблоко окажется на столе в конце.

В самом начале, после первого шага, на столе лежит одно яблоко.

В каждом последующем шаге, мы сравниваем яблоко в руках с яблоком на столе. И, в зависимости от результата сравнения, происходят две возможные ситуации:

1. Яблоко в руках больше яблока на столе:
В этом случае мы кладем яблоко во вторую корзину, и оно дальше нас не интересует. На столе остается то же самое яблоко, с которым мы проводили сравнение.

2. Яблоко в руках меньше яблока на столе:
В этом случае мы кладем яблоко на стол, а яблоко, которое лежало на столе, перекладываем во вторую корзину. Таким образом, на столе остается новое яблоко, с которым мы будем проводить следующее сравнение.

Инвариант цикла в этом алгоритме - это состояние стола, то есть яблоко, которое остается лежать на столе после каждого сравнения. Это яблоко постоянно меняется, и, в конце концов, должно быть самым маленьким из всех изначальных яблок.

Таким образом, в самом конце на столе окажется самое маленькое яблоко из первой корзины.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика