Файл: Голембо, З. Б. Алгоритмизация и программирование электротехнических задач на электронных цифровых вычислительных машинах учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2024
Просмотров: 73
Скачиваний: 0
тела процедуры формальные параметры заменяются фактическими
(арифметические или булевые переменные, массивы |
и т. д.). При |
||
обращении к нужной подпрограмме в языке Алгол |
используется |
||
оператор |
обращения к процедуре. Для обращения |
к процедуре |
|
с идентификатором / служит оператор / (АРи АРг; |
...; АРп), где |
||
АРи APZ; |
АРп—фактические |
параметры процедуры, напри |
мер: площадь треугольника (а, в, с) здесь х = а; у = в; z — с. Для пояснения трудных мест программы в язык Алгол можно включать текст, комментарии, которые не меняют смысла программы. Ком ментариям предшествует символ comment, который можно ставить ' либо после символа begin либо после точки с запятой. Все, что на писано после comment и до ближайшей точки с запятой, есть текст;
_. |
|
^ , |
comment а + |
b—с |
• — здесь поло- |
||
например: D:=a+e |
— с^х+у |
. |
|
||||
жительно: then |
go |
to L. |
текст |
|
|
|
|
вводить и без символа comment. |
|||||||
Поясняющий |
текст можно |
||||||
В этом случае комментарии располагаются |
за словом |
end по сле |
|||||
дующему правилу: все, что написано после |
слов до |
ближайшего |
из трех символов: точка с запятой, end или else, есть текст, например: ifa = в then begin x:=g; y:=z end —.это довольно редкий случай else x:=g+l; end.
Таковы в общих чертах правила и алфавит, на которых построен универсальный язык программирования Алгол-60
Объем транслятора определяется сложностью алгоритмов, ко торые ему предстоит перерабатывать, и типом машины, для которой он предназначен. Например, различные модификации транслятора для машины содержат от 20 ООО до 30 ООО команд.
§ 2.4. Алгоритмический язык ФОРТРАН
Среди алгоритмических языков считается ФОРТРАН наиболее распространенным, на нем составляется подавляющее большинство программ в различных областях науки и техники. Дадим его крат кое описание.
Программа, составленная на языке ФОРТРАН, может опериро вать со следующими величинами: числами, логическими значениями и алфавитно-цифровыми данными. Числа могут быть различных ти пов. К первому типу (INTEGER) относятся целые числа. Обычно абсолютная величина целого числа не может превышать некоторой степени двойки (различной для разных машин). Чаще всего исполь зуются целые числа, не превышающие 21 5 или 21 7 , например, 0, 27, — 56, 12354. Ко второму типу относятся вещественные числа (REAL). Такие числа записываются в виде последовательности цифр и обязательно десятичной точки. Чаще всего вещественное число состоит не более чем из восьми цифр, например: 84.0, 0.42, 3.141593. Приведенная запись называется формой записи с фикси рованной запятой. Имеется также форма записи с плавающей за пятой XEY. Здесь X — число, записанное с фиксированной запя-
21
той (мантисса числа), a Y — целое число (порядок числа). Следо вательно, XEY соответствует числу X • 10Y .
Абсолютная величина вещественного числа может |
колебаться |
в пределах от Ю-^ до IQP, где величина р различна для различных |
|
машин. Например, в языке ФОРТРАН для IBM 709/7090 веществен |
|
ные числа могут изменяться от Ю - 3 8 до 1038. |
|
Последние варианты языка ФОРТРАН допускают |
использова |
ние комплексных чисел (COMPLEX), которые записываются в виде пары вещественных чисел, где первое из них является действитель ной, а второе — мнимой частью.
Точность представления чисел можно |
удваивать, записывая • |
перед ними букву D (первая буква названия |
DOUBLE PRECISION, |
т. е. удвоенная точность). В этом случае количество значащих цифр числа увеличивается вдвое.
К логическим значениям относятся категории TRUE (ИСТИННО) и FALSE (ЛОЖНО).
Алфавитно-цифровые данные представляют собой строки, сос тавленные из букв, цифр и других символов языка ФОРТРАН.
Естественно, что одних чисел недостаточно для |
составления |
про |
граммы. Необходимо вводить переменные, которые, сохраняя |
свое |
|
название, соответствуют различным числовым, |
логическим |
или |
алфавитно-цифровым значениям. Под переменной в языке ФОРТРАН подразумевается последовательность из букв и цифр, начинающая ся с буквы. Количество символов в названии переменной не может быть более шести. Переменные могут быть простыми или иметь инде ксы. Примерами простых переменных могут служить: IND, J54, TIME. Запись переменных с индексами происходит так: индексы записываются в скобках после названия переменной и отделяются друг от друга запятыми, их максимальное количество различно в различных вариантах ФОРТРАНа и может доходить до семи, на пример DELTA (35), SIGMA (J + 2 ^ К ) , MATR (5>|<1, 1, J). Из примера видно, что в качестве индексов можно использовать целые выражения. Чаще всего допускаются выражения вида а>}< I + Ь, где а и b — целые числа, а I — переменная, принимающая целые
значения. В некоторых вариантах ФОРТРАНа |
(например, |
||
UNIVAC 1108) в качестве |
индексных выражений можно |
использо |
|
вать |
суммы или разности |
произведений а1>)<аг>|<...>(са/; |
f5 ±>J<P2>J<--- |
~ ^ $ q |
; Ti >}<72>|<"->)<7r> гдеа, f}, 7—целые числа или переменные, при |
нимающие целые значения.
Так же, как и числа, переменные могут быть целыми (INTEGER), вещественными (REAL), комплексными (COMPLEX) и т. п. Тип каждой переменной указывается в начале программы, например, если написать REAL J21, то в дальнейшем переменная J21 смо жет принимать лишь вещественные значения. Можно и не разде лять переменные на целые и вещественные, и тогда это будет сделано автоматически по следующему правилу: если название пере менной начинается с буквы I , J, К, L, М или N, то она будет счи таться целой, в противном случае переменная будет вещественной. Это очень удобно, поскольку перечисленные буквы обычно исполь-
22
зуются в математических выражениях для обозначения целых чи сел (например, в качестве индексов).
Цель программы — указать, какие операции и в каком порядке следует произвести над переменными, чтобы получить искомый ре зультат. Кроме этого, необходимо отвести под всю информацию некоторые поля запоминающего устройства (ЗУ) и задать форму вводимых и выводимых из машины данных. Подобные указания и составляют программу на языке ФОРТРАН, которая записывается в виде последовательности операторов, представляющих собой эти указания.
Оператор перфорируется на отдельной карте, которая может иметь продолжения. Такой метод первоначального задания опе раторов очень удобен: при внесении исправлений или изменений в программу нужно просто вытащить из колоды определенную карту и заменить ее другой или вообще вставить дополнительные карты.
Любой оператор можно снабдить меткой, представляющей со бой целое число, записываемое перед названием оператора. Метки используются для управления порядком выполнения операторов или для указания в определенных операторах других, связанных с ними.
Операторы подразделяются на исполнимые или неисполняемые. Исполнимый оператор соответствует реальным расчетам, выполняе мым в программе. Неисполняемые операторы не соответствуют ни каким расчетам, но являются описаниями: они определяют поля ЗУ, отведенные под числовые массивы, задают форму представле ния исходных данных и результатов и т. п. Далее приводится при мерный перечень операторов языка ФОРТРАН (операторы объяс няются на примерах).
а. Исполнимые операторы
Оператор GOTO.Примеры: в результате выполнения оператора GO ТО 5 начинает работать оператор сметкой 5, а не следующий по порядку. При выполнении оператора GO ТО (3, 5, 7), М следующим выполняется оператор с меткой 5, если переменная М приняла зна
чение 2. После оператора |
GO ТО К, (7, 35, |
100) начинает работать |
||||
оператор с меткой 100, если переменная К приняла |
значение |
100. |
||||
Оператор GO ТО как бы «передает управление» на другой оператор, |
||||||
обладающий заданной меткой. Все метки |
должны |
быть |
различ |
|||
ными. |
|
|
|
|
|
|
Оператор |
ASSIGN. Метка в языке ФОРТРАН не является |
целой |
||||
переменной. Поэтому нельзя написать GO ТО J, присвоив перемен |
||||||
ной J целое значение. Вместо этого следует, например, |
написать |
|||||
ASSIGN 3 ТО J. Тогда в результате выполнения GO |
ТО J управле |
|||||
ние будет передано на оператор с меткой 3. |
|
|
|
|||
Оператор |
IF. Примеры: |
в результате |
выполнения |
оператора |
||
IF (а) 5, 13, |
34 начинает работать оператор |
с меткой 5, |
13 или 34 |
в зависимости от того, является ли значение выражения (а) соответ-
23
ственно отрицательным, нулевым или положительным. Оператор
IF(1)S работает следующим |
образом: если логическое выражение |
|
1 принимает значение TRUE, |
то выполняется оператор S (под этим |
|
оператором подразумевается |
любой исполнимый оператотр |
языка |
ФОРТРАН, кроме DO), а затем следующий по порядку. В против |
||
ном случае оператор S обходится. |
|
|
Оператор DO. С помощью этого оператора организуются циклы, |
||
т. е. указываются участки программы, которые повторно |
прора |
батывают заданное число раз; при этом каждый последователь ный проход участка соответствует значению индекса, получающего определенное приращение. Пример: в результате выполнения опе ратора DO 20/ = 2, 10, 1 участок программы в пределах от него самого до оператора с меткой 20 проработает 9 раз, причем индек сная переменная / примет значения: 2, 3, 10. В качестве преде лов изменения индекса можно указывать целые переменные. На пример, можно записать DO 3J = I , М, 1.
Внутри одного цикла может быть другой, содержащий в свою очередь третий и т. д. При использовании оператора DO необхо димо следовать некоторым разумным правилам. Например, запре щается передавать управление внутрь цикла, пропуская сам опера тор DO (программа в этом случае «не знает», в каких пределах изменяется индексная переменная).
Оператор CONTINUE. Этот оператор используется в качестве последнего в участке, который определяется в операторе DO.
Арифметический оператор. Такой оператор записывается в виде а = Ь, где а — переменная (простая или с индексами), a b — вы ражение. Смысл этого оператора состоит в том, что вначале вы числяется выражение Ь, и затем его значение присваивается пере менной а.
Выражения — это последовательности чисел и переменных, разделенных знаками арифметических операций. К последним отно
сятся -)f (умножение), |
+ |
(сложение), — (вычитание), / (деление) |
|||||||||
и |
^о}< |
(возведение |
в |
степень). |
Пример: |
А(/) |
= P(/)>j<-)f2 |
+ |
|||
+ |
Q (2^fd). |
Выражение в правой части оператора при обычной ма |
|||||||||
тематической записи выглядело бы так: аг = р\ + |
q2i. |
|
|
||||||||
|
Оператор CALL. Данный оператор используется для вызова |
||||||||||
подпрограммы. Пример: CALL SP |
(X, Y, 35). В результате |
прора |
|||||||||
ботает подпрограмма |
SP, причем в |
качестве аргументов (исходных |
|||||||||
данных |
и результатов) |
будут подставлены X, Y и 35. |
|
|
|||||||
|
Оператор RETURN. Этот оператор ставится в тех местах под |
||||||||||
программы, откуда следует |
возвратиться на |
вызывающую |
прог |
||||||||
рамму. |
|
|
|
|
|
|
|
|
|
|
|
|
Оператор READ. Пример: в результате выполнения оператора |
||||||||||
READ 5, X, Y с перфокарт будет введена информация, а именно |
|||||||||||
значения переменных X и Y. Их |
форма определяется оператором |
||||||||||
с |
меткой 5. |
|
|
|
|
|
|
|
|
|
|
|
Оператор WRITE. Пример: в результате выполнения оператора |
||||||||||
WRITE |
3, |
X, Y будут |
напечатаны значения |
переменных |
X |
и Y |
|||||
в форме, указанной |
в операторе FORMAT с меткой |
3. |
|
|
24
К исполнимым операторам относятся также перфорация, за пись на ленту и считывание с ленты и т. д.
б. Неисполняеныв операторы
Оператор DIMENSION. Пример: в результате выполнения опе ратора DIMENSION А (10, 20) определяется, что переменная А имеет два индекса, причем первый не может превосходить 10, а вто рой 20. Индексы в языке ФОРТРАН не могут принимать нулевых или отрицательных значений.
Оператор EQUIVALENCE. Пример: при выполнении |
оператора |
EQUIVALENCE ( I , J) значения переменных I и J будут |
храниться |
в одной и той же ячейке ЗУ. |
|
Оператор COMMON. Пример: в результате выполнения опера тора COMMON А под массив А отводятся некоторые ячейки ЗУ. Если в программе (или подпрограмме) встретится другой оператор:
COMMON Q, |
тогда значения переменной Q |
будут выбираться из |
тех же ячеек |
ЗУ, где располагается массив |
А. Данный оператор |
является очень важным средством обмена данными между отдель ными программами, работающими совместно.
Оператор FORMAT. Этот оператор используется для описания формы и расположения информации при ее вводе или выводе из машины. Пример: оператор FORMAT (14, 5Х, 5F 8.5) указывает, что первая выводимая величина является целой (буква I) и на нее отводится четыре позиции; далее следует пять пробелов, а затем — пять чисел с фиксированной запятой, причем на каждое из них отво дится восемь позиций, а после десятичной точки идут пять цифр. X означает пробел, a F —форму записи с фиксированной запятой.
Если |
вместе с этим оператором |
используется оператор вывода на |
|||
печать (WRITE), |
то отпечатанные данные могли бы иметь следую |
||||
щий |
вид: |
1451 |
.34671 |
1.56342 |
3.34555 |
7.67412 |
23.00721. |
|
|
Есть правила, согласно которым, используя оператор FORMAT, можно выводить текст, печатать таблицы, графики, карты и пр.
Функции и подпрограммы. Функции и подпрограммы в языке ФОРТРАН являются чрезвычайно мощным средством построения сложных разветвленных алгоритмов из взаимодействующих бло ков. Почти любая программа на языке ФОРТРАН состоит в основ ном из набора подпрограмм. Подпрограмма является самостоятель ным блоком, который можно транслировать отдельно от других блоков. Кроме того, каждую подпрограмму можно отлаживать независимо от других подпрограмм, т. е. в этом смысле она явля ется самостоятельной программой. В частности, в подпрограммах следует определять массивы с помощью оператора DIMENSION, хотя они и могут задаваться в вызывающей программе. Подпро граммы оформляются следующим образом. Вначале записывается заголовок подпрограммы:
SUBROUTINA NAME (ul t u 2 , . ., u„),
25