Содержание


Введение 3

Понятие алгоритма 3

Определение и типовая схема циклического алгоритма 4

Назначение блоков циклического алгоритма 5

Виды циклических алгоритмов 6

Отладка алгоритмов 7

Заключение 8

Задание 1.18 8

Задание 2.8 8

Задание 3.8 10

Задание 4.8 10

Список литературы 15


Введение

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


Понятие алгоритма

Термин алгоритм применяют весьма широко и не только в области вычислительной техники и программирования. Он происходит от имени средневекового математика Абу Джафара ибн Муссы аль-Хорезми. Редакция последней части имени ученого в европейских языках привела к образованию термина «алгорифм» или «алгоритм». Европейцы, начавшие осваивать современную десятичную систему счисления в XII в., знакомились с трудами арабских ученых, и труд упомянутого выше жителя Хорезма, посвященный правилам счета в десятичной системе счисления, был широко известен. Поэтому и наполнение термина «алгоритм» было следующим: операции над числами.

Современное содержание понятия алгоритма можно определить следующим образом.

Алгоритм – точное предписание, которое задает алгоритмический процесс, начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определенного этим исходным данным результата.

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

Как правило, для заданного алгоритма можно выделить семь характеризующих его независимых параметров:

* совокупность возможных исходных данных;

* совокупность возможных промежуточных результатов;

* совокупность результатов;

* правило начала;

* правило непосредственной переработки;

* правило окончания;

* правило извлечения результата.

В теории алгоритмов изучаются алгоритмы, заданные в строгом, формализованном виде.

На практике в программировании очень часто используется задание алгоритмов в виде блок-схем.

Блок-схема – это ориентированный граф, вершины которого могут быть одного из трех типов.

Функциональная вершина используется для представления функции

f: X>Y.

Предикатная вершина используется для представления функции (или предиката) p: X>(T,F), т.е. логического выражения, передающего управление по одной из двух возможных ветвей.

Объединяющая вершина представляет передачу управления от одной из двух входящих ветвей к одной выходящей ветви.


Определение и типовая схема циклического алгоритма

Циклические алгоритмы являются наиболее распространенным видом алгоритмов, в них предусматривается повторное выполнение определенного набора действий при выполнении некоторого условия.

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

Структуру любого циклического алгоритма можно изобразить схемами, представленными на рисунке ниже (а,б).

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


Назначение блоков циклического алгоритма

Вернемся к определению циклического алгоритма. Из него следует, что основой такого алгоритма являются операции, многократное выполнение которых дает искомый результат. Такие операции называют рабочими. Совокупность этих операций образует тело цикла.

Выполнение циклического алгоритма распадается на этапы – их называют циклами, на каждом из которых выполняются операции блоков 2, 3, 4, т.е. на каждом цикле вычисляются новые значения аргументов (в блоке 4) и соответствующие им новые значения результатов рабочих операций (в блоке 2), результатов промежуточных или окончательных.

Блоки 1 и 3 обычно задают диапазон изменения аргументов. Блок 1 присваивает всем аргументам начальные значения, обеспечивая тем самым