То есть, прежде чем приступать к непосредственному составлению программы или написанию последовательности операторов языка, необходимо отчетливо представить себе ход процесса вычислений, ту последовательность действий, которую должна реализовать программа. Первый этап не поддается строгой формализации и может быть достаточно сложным для больших задач, но в лабораторных работах постановка задачи приводится в самом задании.
Строгое представление последовательности действий, то есть алгоритм, наиболее удобно изображать графически с помощью блок-схем или граф-схем, хотя его можно представлять и другими способами, например словесно. На этапе обучения программированию использование детализированных блок-схем является обязательным.
Блок-схемы представляют собой набор элементов, называемых блоками, соединенных линиями или стрелками. Они отражают последовательность выполнения действий, определяемых каждым блоком. В этом случае выполнение схем алгоритмов строго регламентировано и должно соответствовать международным стандартам.
Линии, указывающие последовательность перехода от блока к блоку, называемые линиями потока, и линии контуров блоков должны иметь одинаковую толщину. Основное направление потока информации идет сверху вниз и слева направо, здесь стрелки на линиях не указывают. В остальных случаях наличие стрелок обязательно.
Блоки можно нумеровать. Тогда порядковые номера проставляются в верхней левой части блока в разрыве его контура. Если блоков много, то поле листа можно разбить на зоны наподобие географических карт. Зоны обозначаются по горизонтали арабскими цифрами слева направо в верхней части листа, по вертикали прописными буквами латинского алфавита сверху вниз в левой части листа. Каждый блок имеет свою зону и соответствующий номер.
Для представления широкого класса алгоритмов достаточно следующих основных типов блоков.
1. Блок начала программы, Пуск, представляет собой овал с выходящей из него линией . В овале может быть приведена вспомогательная или поясняющая информация. Аналогично блок окончания программы, Останов (рис.1.1).
Рис.1.1. Пример блоков Пуск-останов.
2. Вычислительный блок, Процесс, изображаемый прямоугольником с входящей и исходящей стрелками (рис.1.2). В блоке указывается (с различной степенью детализации) последовательность реализуемых действий.
Рис.1.2. Пример блоков Процесс.
3. Блоки ввода и вывода информации, Ввод-вывод, изображаются параллелограммом с входящей и исходящей стрелками. Это относится к любым носителям информации (рис.1.3). В блоке указываются вводимые или выводимые данные.
Рис.1.3 Пример блоков Ввод-вывод.
4. Логический блок, Решение, изображаемый в виде ромба с одной входящей и двумя или несколькими выходящими стрелками (рис.1.4). Внутри ромба помещается текст логического вопроса, допускающего или двоичный ответ (да/нет), или несколько вариантов выбора. В любом случае над стрелками пишутся условия прохождения по этой ветви.
рис.1.4 Пример блоков Решение.
5. Специально для отображения циклических структур введен блок заголовка цикла, Модификация, после которого идут блоки внутрицикловых операций (рис.1.5). С последнего блока линия потока должна возвращаться на заголовок цикла. Вторая линия из блока выходит по условию окончания цикла.
Рис.1.5. Пример блоков Модификация.
6. Если модуль или подпрограмма составлены и описаны отдельно, то используется блок Предопределенный процесс. В нем указывается название подпрограммы или программного модуля.
Рис.1.6. Пример блоков Предопределенный процесс.
7. Для пояснения отдельных блоков, их групп и линий потока используются комментарии. Они записываются справа от блоков и соединяются с ними пунктирной линией. В комментариях может находиться любая поясняющая информация.
Рис.1.7. Пример комментария.
8. При большом количестве блоков или линий связи линии потока можно прерывать, используя Соединители, изображаемые в виде круга. Внутри круга ставятся цифры или комбинации букв и цифр, но одинаковые в начале и в конце обрыва линии потока.
Рис.1.8. Пример соединителей.
Использование этих блоков позволяет наглядно представить алгоритм вычислений. Всего же ГОСТ 19002-80 и ГОСТ 19003-80 устанавливает для изображения схем алгоритмов и программ 42 символа. Из них 30 обязательных, а 12 рекомендуемых.
В качестве примера приведем блок-схему алгоритма определения максимального элемента из матрицы размером 20x30.
После того, как составлена блок-схема алгоритма, можно писать программу на любом языке программирования, подходящем для данной области. Для научно-технических задач это такие языки, как Паскаль, Фортран, ПЛ/1, Модула-2, Бейсик и другие. В данном курсе используется язык программирования Турбо Паскаль для IBM-совместимых компьютеров.