ПОИСК Статьи Чертежи Таблицы Графический алгоритмический язык (ГАЛГОЛ) из "Элементы теории автоматизации машиностроительного проектирования с помощью вычислительной техники " Решению любой задачи на электронной цифровой вычислительной машине предшествует составление алгоритма и машинной программы. [c.28] Алгоритмы задач, решаемых на машинах, обычно очень сложны и содержат много этапов, по-разному связанных между собой. Этапы различаются по своему назначению. Одни заключаются в проведении вычислений по определенным формулам (арифметические этапы), другие состоят в проверке выполнения определенных условий, устанавливающих моменты перехода от одного арифметического этапа к другому (логические этапы). Алгоритм составляется после того, как окончательно установлен метод решения задачи. [c.28] По описанию алгоритма решения задачи составляется рабочая программа для ЭЦВМ. Таким образом, рабочая программа— это алгоритм, записанный с помощью системы команд ЭЦВМ. [c.28] Одним из промежуточных этапов постановки задачи на ЭЦВМ является построение общего плана вычислений, который изображается графически с помощью блок-схемы. Блок-схема представляет собой графическое изображение структуры программы, т. е. ее отдельных составных частей и их взаимосвязей. Блок-схема часто бывает полезна с точки зрения большей наглядности структуры программы, и поэтому она обычно предшествует непосредственному программированию независимо от того, какими средствами будет осуществляться программирование — в машинных командах или с помощью алгоритмических языков [39]. [c.29] Блок-схемы используются также в качестве основного и окончательного документа, содержащего информацию об алго-j ритме, как форма публикации алгоритмов, а также в качестве 1 метаязыка при описании искусственных языков. Часто работа по составлению блок-схемы алгоритма и его программированию ведется разными людьми (это имеет место в задачах нематематического характера). В этом случае блок-схема является исходным документом для программирования. [c.29] При описании ГАЛГОЛа были использованы официальное сообщение о языке АЛГОЛ-бО [41] и руководство по этому языку [42]. Прежде чем приступить к описанию языка, кратко перечислим те понятия, которыми будем пользоваться. Это поможет составить представление об их взаимосвязи и структуре описаний вычислительных процессов, сделанных на этом языке. [c.29] В блок-схеме операторы выполняются в последовательности, определяемой главным образом направлением дуг граф-схемы. Такая естественная последовательность выполнения операторов нарушается, когда при переходе к следующему оператору приходится пересечь штриховую линию, окаймляющую некоторую совокупность операторов. Возникающие при этом особенности будут указаны при рассмотрении операторов цикла. Нарушение естественной последовательности выполнения операторов вызывается также операторами перехода. [c.31] Операторы бывают следующих типов операторы присваивания, операторы перехода,операторы процедур,условные операторы, операторы циклов и блоки. Операторы первых четырех типов не содержат внутри себя других операторов. Остальные два типа включают другие операторы и предназначены для организации их работы. [c.31] Оператор присваивания осуществляет вычисление значения некоторого выражения и присваивание этого значения одной или нескольким переменным. На рис. 3 операторы присваивания обозначены цифрами 1—13. [c.31] Условный оператор проверяет выполнение некоторых условий и в зависимости от результатов проверки указывает, по какой из двух дуг, выходящих из этого оператора, следует двигаться дальше. На рис. 3 условные операторы обозначены цифрами 14—20. [c.32] Оператор процедуры служит для обращения к соответствующему описанию процедуры. Он заставляет выполняться оператор, входящий в состав описания процедуры и называемый телом процедуры. Предварительно оператор процедуры для некоторых переменных, фигурирующих в теле процедуры, либо задает начальные значения, либо указывает, какими выражениями эти переменные должны быть заменены. В то же время блок-схема алгоритма не содержит описаний процедур. В ГАЛГОЛе описание процедуры является законченной и самостоятельной формой представления блок-схемы и в свою очередь не может содержать других описаний процедур. [c.32] Описания, включенные в блок, имеют силу только внутри данного блока. Таким образом, в каждом блоке описывать следует лишь те объекты, которые используются только в нем. [c.32] Операторы и описания строятся из более мелких единиц, называемых выражениями, которые но определенным правилам соединяются между собой специальными символами — ограничителями. В качестве ограничителей используются обычные знаки арифметических и логических операций, знаки равенств и неравенств, скобки и небольшое количество специально введенных графических символов. [c.32] Выражения строятся из первичных выражений, к которым относятся числа, переменные, указатели функций и логические значения. Числа записываются в десятичной системе счисления по правилам, очень близким к общепринятым. Для обозначения переменных служат идентификаторы. Идентификаторами могут быть просто буквы, как например А, F, п, х, группы букв или букв и цифр, но начинающиеся обязательно с буквы, например sin, exp, а 12, integral, х П а% t, а также более сложные обозначения с верхними или нижними буквенно-т1ифровыми позициями. [c.32] Кроме скалярных величин, переменными считаются также компоненты массивов. Такие переменные изображаются идентификаторами, снабженными индексами. Идентификатор должен быть одним и тем же для любой компоненты данного массива. В качестве индексов могут использоваться любые арифметические выражения, значения которых определяют место компоненты в массиве. [c.32] Указатель функции также изображается идентификатором, за которым в скобках следует список аргументов, от которых должна быть вычислена данная функция. Способ вычисления значения функции задается описанием процедуры специального вида. Указатель функции служит для обращения к этому описанию. [c.33] Введем понятие граф-схемы алгоритма. Граф-схемой Г алгоритма А назовем конечный связный ориентированный граф, удовлетворяющий следующим условиям (рис. 4). [c.33] Граф-схема Г алгоритма А должна удовлетворять также определению процедурного подграфа, приведенному ниже. [c.34] Пусть Х = В[ Е[]Ф( [ 0[ С[]Р. Тогда имеем граф Г= Х, U), который состоит из множества вершин X и множества и дуг графа. Расширенным подграфом графа Г = X, U) назовем объект Г = X, и ), состоящий из множества вершин Х Х и множества дуг U = i, ОФ li X j X , где i, j — граничные вершины дуги (t, j) U. [c.34] Вернуться к основной статье