Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


ПРОГРАММА ДЛЯ ЭВМ

Программа для вычислительной машины (от греческого слова programma - «объявление», «предписание», «указание», «распоряжение») - это запись на языке, понятном вычислительной машине, точно сформулированного задания на выполнение ей работы по обработке информации.

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

Программа обязательно содержит три раздела:

исходные данные или указание, где они находятся и откуда их можно взять (ввод);

правила получения результата по исходным данным (обработка);

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

Процесс составления программы называется программированием.

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

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

Блок-схема алгоритма Евклида. Условные обозначения основных типов блоков

253.jpg

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

Решение (логический блок) имеет 2 выходные стрелки - плюс-стрелку и минус-стрелку. Плюс-стрелка указывает последующий блок для этого логического блока при выполнении условия, указанного внутри блока, а минус-стрелка - в противном случае.

Ввод-вывод - это блок для обозначения операций ввода и вывода данных; от этого блока может отходить только одна стрелка.

Пуск-останов - блок для обозначения начала (в этом случае блок не имеет входных стрелок) или конца (в этом случае блок не имеет выходных стрелок) процесса обработки данных или выполнения программы.

Например, словесная запись алгоритма Евклида (нахождения наибольшего общего делителя  для двух целых чисел  и , таких, что ) приведена в левой части табл. 1; в правой части - соответствующие строки программы на русском диалекте языка программирования АЛГОЛ-60. Блок-схема алгоритма (программы) изображена на рисунке. Цифры, стоящие на блоках, соответствуют номерам пунктов в таблице.

Таблица 1

Словесная запись

Программа

1. Взять два целых числа  и , перейти на следующий пункт (далее переход на следующий пункт будет подразумеваться, если, конечно, явно не указано противоречащее действие)

ВВОД

2. Если , то перейти на пункт 6 (иначе, т.е. если , то на следующий пункт)

112: если , то на П6

3. Значение числа  сделать равным значению числа

4. Наибольший общий делитель чисел  и  есть число

ВЫВОД

5. Закончить работу

СТОП

6. Найти остаток  от деления числа  на число

П6:  ОСТАТОК

7. Значение числа  сделать равным значению числа

8. Значение числа  сделать равным значению числа

9. Перейти на пункт 2

на П2

Легко увидеть, что пункт 6 в левой части табл. 1 и, разумеется, в правой тоже требует уточнения. Это уточнение приведено в табл. 2. Если его внести в правую часть табл. 1, то полученная запись алгоритма будет вполне понятна вычислительной машине, снабженной транслятором, т.е. как бы переводчиком, с соответствующего языка программирования.

Таблица 2

Словесная запись

Программа

6.1. Найти частное  от деления числа  на число

П6:

6.2. Найти число , являющееся целой частью числа

6.3. Найти остаток  от деления числа  на число

 



<< ПредыдущаяОглавлениеСледующая >>