Файл: Алгоритмизация как обязательный этап разработки программы (Основные алгоритмические конструкции ).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операторные скобки не нужны, ибо тело цикла ограничивают сами служебные слова.

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

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

Заключение

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

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

На этом этапе выявляется, насколько построенная информационная модель соответствует реальности. Дело в том, что чем больше свойств объектов и явлений признано существенными и учтено, тем в большей степени модель отражает действительность. Однако учет большого числа характеристик ведет к усложнению модели, затруднениям в математическом выражении связей между характеристиками. Обычно стараются найти баланс между полнотой соответствия информационной модели реальному состоянию дел и ее сложностью в процессе уточнения модели (постепенного увеличения числа учитываемых существенных свойств).