Файл: Алгоритмизация как обязательный этап разработки программы (Основные алгоритмические конструкции ).pdf
Добавлен: 01.05.2023
Просмотров: 216
Скачиваний: 2
Тело цикла
да
нет
Пример
алг Бочка
нач
пока бочка не полная
нц
наполнить ведро
вылить его содержимое в бочку
кц
кон
алг Бочка
нач
повторять
наполнить ведро
вылить его содержимое в бочку
до бочка полная
кон
Тело цикла с условием должно содержать команды, которые влияют на выполнение условия, в противном случае цикл может оказаться бесконечным. В приведенном примере следует обратить внимание на формулировки условия и на то, что исполнение тела цикла приближает момент выполнения условия в цикле повторять – до и момент его невыполнения в цикле пока.
То же самое можно проследить и в следующем примере.
Пусть требуется сложить квадраты натуральных чисел, не превышающие заданного числа (для определенности возьмем число 45).
алг Сумма
нач
S:=0 ;n:=1
покаn*n<= 45
нц
S:= S + n*n
n:= n + 1
кц
ВывестиS
кон
алг Сумма
нач
S:=0 ;n:=1
повторять
S:=S + n*n
n:= n + 1
доn*n> 45
Вывести S
кон
Если в данный алгоритм ошибочно не включить команду n:= n + 1, это приведет к бесконечному циклу, т.к. в цикле пока условие будет выполняться всегда, а в цикле повторять – до оно никогда не будет выполнено.
Если подобную ошибку допустить в алгоритме решения другой задачи сколько квадратов натуральных чисел надо сложить, чтобы их сумма не превышала 45,это приведет лишь к ошибочному ответу, но не к зацикливанию.
алг Сумма 2
нач
S:=0 ;n:=1
покаS<= 45
нц
S:= S + n*n
n:= n + 1
кц
Вывестиn - 1
кон
алг Сумма 2
нач
S:=0 ;n:=1
повторять
S:=S + n*n
n:= n + 1
доS> 45
Вывестиn - 1
кон
Цикл с предусловием является наиболее универсальным. Его можно применять для решения любых задач, предусматривающих повторение действий, ибо при определенных обстоятельствах тело цикла может не исполниться ни разу. Однако в ряде случаев цикл с постусловием более удобен. Примером такой задачи является анализ правильности ввода исходных данных, ибо прежде чем проверять исходные данные, надо их хотя бы раз ввести.
Фрагмент алгоритма таков:
повторять
ввод данных
до момента ввода правильных данных
В любом случае цикл с постусловием можно заменить циклом с предусловием, хотя не всегда это будет рационально.
Цикл с параметром также можно заменить циклом с предусловием, хотя запись станет более громоздкой и потребуется заботиться о присвоении параметру начального значения и о его изменении перед каждым исполнением тела цикла (что происходит автоматически, если используется собственно цикл с параметром).
< параметр > := < начальное значение >
пока < параметр ><=<конечное значение>
нц
< тело цикла >
< параметр > := < параметр > + < шаг >
кц
Теперь о реализации циклов с условием в языках программирования.
Рассмотрим только реализацию в языке Паскаль.
Цикл с предусловием
While< условие >do
< оператор >
Цикл с постусловием
Repeat
<оператор>
Until< условие >
Оператор, составляющий тело цикла, чаще всего составной, поэтому в цикле While необходимо использование операторных скобок. В цикле Repeat-Untilоператорные скобки не нужны, ибо тело цикла ограничивают сами служебные слова.
Цикл с условием является основным типом цикла в языке Паскаль: во-первых, потому, что это принципиально иная конструкция по сравнению с конструкцией следования, во-вторых, использование цикла с параметром в Паскале достаточно ограничено из-за того, что параметр может быть лишь переменной порядкового типа и изменяться только с единичным шагом. Это определено самой идеологией языка и является скорее достоинством, нежели недостатком.
В языке Паскаль возможна многократная вложенность циклов (как и других структур), т.е. один цикл может входить в тело другого цикла. Правило таково: цикл, начатый первым, заканчивается последним.
Заключение
Понятие алгоритм – одно из основных понятий информатики. Это фундаментальное «первоначальное» понятие, которому нельзя дать строгого определения в терминах более простых понятий. Существуют описательные определения алгоритма, каждое из которых уточняет это понятие.
Какая бы технология решения задач на компьютере ни использовалась, необходимым этапом будет алгоритмизация: проверяется соответствие полученных результатов ожидаемому в рамках построенной информационной модели задачи, а также оценивается, насколько полученный результат соотносится с реальной практикой.
На этом этапе выявляется, насколько построенная информационная модель соответствует реальности. Дело в том, что чем больше свойств объектов и явлений признано существенными и учтено, тем в большей степени модель отражает действительность. Однако учет большого числа характеристик ведет к усложнению модели, затруднениям в математическом выражении связей между характеристиками. Обычно стараются найти баланс между полнотой соответствия информационной модели реальному состоянию дел и ее сложностью в процессе уточнения модели (постепенного увеличения числа учитываемых существенных свойств).