Файл: Алгоритмизация как обязательный этап разработки программы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 06.04.2023

Просмотров: 221

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Цикл с постусловием (цикл «до»)

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

Запись на алгоритмическом языке:

повторять

< тело цикла >

до < условие >

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

Запись в виде графических схем такова.

Цикл с предусловием Цикл с постусловием

Условие

Тело цикла

Условие

да

нет

Тело цикла

да

нет

Пример

алг Бочка

нач

пока бочка не полная

нц

наполнить ведро

вылить его содержимое в бочку

кц

кон

алг Бочка

нач

повторять

наполнить ведро

вылить его содержимое в бочку

до бочка полная

кон

Тело цикла с условием должно содержать команды, которые влияют на выполнение условия, в противном случае цикл может оказаться бесконечным. В приведенном примере следует обратить внимание на формулировки условия и на то, что исполнение тела цикла приближает момент выполнения условия в цикле повторять – до и момент его невыполнения в цикле пока.

То же самое можно проследить и в следующем примере.

Пусть требуется сложить квадраты натуральных чисел, не превышающие заданного числа (для определенности возьмем число 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 операторные скобки не нужны, ибо тело цикла ограничивают сами служебные слова.

Цикл с условием является основным типом цикла в языке Паскаль: во-первых, потому, что это принципиально иная конструкция по сравнению с конструкцией следования, во-вторых, использование цикла с параметром в Паскале достаточно ограничено из-за того, что параметр может быть лишь переменной порядкового типа и изменяться только с единичным шагом. Это определено самой идеологией языка и является скорее достоинством, нежели недостатком.

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

ЗАКЛЮЧЕНИЕ

Понятие алгоритм – одно из основных понятий информатики. Это фундаментальное «первоначальное» понятие, которому нельзя дать строгого определения в терминах более простых понятий. Существуют описательные определения алгоритма, каждое из которых уточняет это понятие.

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