Разработка машинно-ориентированного алгоритма.

Разработка структуры входных и выходных данных.

Формализация задачи.

Под этим обычно понимается ее описание на языке математики. Например, дана словесная постановка задачи: вычислить площадь треугольника. Тогда формализованная математическая постановка задачи будет иметь следующий вид: S=, где p – полупериметр (p=) a,b,c – стороны треугольника. В случае работы с графикой формализацией задачи будет привязка рисуемого изображения к координатной сетке экрана.

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

Под машинно-ориентированным понимается алгоритм, удобный для решения данной задачи на ПК. Это очень важный этап, так как алгоритм определяет логическую структуру программы. Алгоритм может быть описан словесно или графом, называемым схемой алгоритма. Словесное описание применяется обычно для разрешения затруднений при построении графа. Граф состоит из вершин (блоков), объединенных ребрами, типы блоков представлены в таблице 1.

К вершине типа 1 подходит лишь одно ребро (либо входящее, либо выходящее). В таблице для типа 1 представлен вариант блока "Начало". К вершинам типа 4 подходят три ребра (одно входящее и два выходящих – для "да" и "нет"), причем одно из выходящих может начинаться из нижнего угла ромба. К вершинам типа 5 три ребра (два входящих и одно выходящее). Вершины типа 2 – 5 в блок-схеме обычно нумеруются. Движение по графу подразумевается сверху – вниз. При соблюдении этого правила стрелки не используются, а иное направление указывается ребром со стрелкой.

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

· последовательная структура (линейные алгоритмы);

· условная структура (разветвляющиеся алгоритмы);

· циклическая структура (циклические алгоритмы).

Линейные алгоритмы описывают действия, выполняющиеся последовательно одно за другим (Рис.1):

 

 

Рис.1. Структура линейного алгоритма

 

Таблица 1

Типы блоков алгоритма
  1.Начало или конец Начало или конец алгоритма.
    2.Ввод или вывод данных Преобразование данных в форму, пригодную для обработки (ввод) или для отображения результатов обработки (вывод).
  3.Процесс Означает какое-то вычислительное действие или последовательность вычислительных действий.
    4.Решение     Да Условие Нет Выбор направления выполнения алгоритма в зависимости от некоторых условий
5.Организация циклического процесса     Да Нет Организует цикл путем наращивания переменной до определенного значения

 

 

Разветвляющиеся алгоритмы описывают вычислительные процессы, в которых имеется два или более направлений хода вычислений. Выбор направления вычислений производится проверкой некоторого условия. На рис.2 приведены два примера циклических алгоритмов в зависимости от формирования условия и выполняемых затем действий.

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

 

Рис.2. Структуры разветвляющихся алгоритмов

 

· с известным числом повторений (цикл «До»);

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

Пример циклического алгоритма с циклом типа «До» приведен на рис.3:

Рис.3.Структура циклического алгоритма типа «До»

 

Пример цикла типа «Пока» показан на рис.4. Тело цикла - это последовательность действий, которые выполняется многократно в цикле.

Используя разработанный алгоритм, можно переходить к разработке текста программы на выбранном алгоритмическом языке программирования. Ниже кратко рассмотрены вопросы разработки программ на языке программирования Бэйсик.

 

 

Рис.4. Структура циклического алгоритма типа «Пока»