Курс "Алгоритмизация"
О главном

[ Главная |Теория | Практика | Тест |


Коротко о главном

Определения и свойства алгоритма

Слово "алгоритм" происходит от имени Мухаммеда аль - Хорезми, первым предложившего приемы выполнения арифметических операций с многозначными числами.
Исполнитель алгоритма – это тот объект или субъект, для управления которым составлен алгоритм.
Система команд исполнителя (СКИ) – это вся совокупность команд, которые исполнитель умеет выполнять (понимает). Алгоритм можно строить только из команд, входящих в СКИ исполнителя (свойство понятности).
Каждая команда алгоритма управления определяет однозначное действие исполнителя (свойства точности).
Выполнение алгоритма должно приводить к результату за конечное число шагов (свойство конечности).
Для успешного выполнения работы, решения задачи необходимо сообщить (передать) исполнителю полный набор исходных данных.
Выполнение алгоритма исполнителем производится исполнителем формально. Алгоритм от программы может отличаться по форме, но не по содержанию.
Программа - это алгоритм, записанный на языке исполнителя.

Вспомогательные алгоритмы и подпрограммыОпределения и свойства алгоритма

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

Циклические алгоритмы
Блок-схемы алгоритмов

Для программирования повторяющихся действий применяется команда цикла, которая имеет следующую структуру:
пока <условие>, повторять
нц
<тело цикла>
кц
Команда цикла использует обратную связь между объектом управления и управляющей системой. Проверка условия дает информацию управляющей системе о состоянии объекта управления.
Если проверяемое условие выполняется (истинно), то выполняются команды, составляющие тело цикла. Если условие ложно, то происходит выход из цикла.
При программировании цикла необходимо следить за тем, чтобы не допускалось зацикливание.
Блок-схема – это графический способ описания алгоритма. Блоки обозначают действия исполнителя, а соединяющие их стрелки указывают на последовательность выполнения действий.
Среда: лист (страница экрана) для рисования. На лист нанесена прямоугольная сетка.
ГРИС располагается в узлах сетки и может иметь одно из четырех направлений: вверх, вниз, налево, направо. Назначение исполнителя: получение рисунков, составленных из вертикальных и горизонтальных отрезков.
Данные: исполнитель работает «в обстановке». Исходными данными являются положение исполнителя на поле и его направление. Результатом – полученный рисунок.
Действия исполнителя: перемещение вдоль линий сетки с рисованием или без; поворот; проверка условия выхода на край поля.
Формат описания основной программы: программа имя {заголовок основной программы}
нач
<тело программы>
кон
Формат описания вспомогательного алгоритма (процедуры)
процедура имя {заголовок вспомогательного алгоритма}
нач
<тело процедуры>
кон
Реакция исполнителя:
1. «НЕ МОГУ» - исполнитель достиг края листа и не может выполнить следующую команду.
2. «НЕ ПОНИМАЮ» - исполнителю отдается команда, не входящая в СКИ или не описанная с помощью вспомогательного алгоритма.

Ветвление и последовательная детализация алгоритма

Структурная команда ветвления имеет следующий формат:
если <условие>
то <серия 1>
иначе<серия 2>
кв
Если <условие> истинно, то выполняются команды, составляющие <серию 1>, если ложно, то - <серия 2>. <Серия 1>называется положительной ветвью ветвления, <серия 2> - отрицательной ветвью.
Неполная команда ветвления имеет следующий формат:
если <условие>
то <серия >
кв
Если условие истинно, то выполняется <серия >, если ложно то сразу происходит переход к следующей команде алгоритма.
Сложные алгоритмы удобно строить путем многошаговой детализации.

Copyright © 2007