![](/user_photo/_userpic.png)
книги из ГПНТБ / Мараева И.Б. Вычислительная техника в инженерных и экономических расчетах. Автокод Инженер для ЭЦВМ Минск-22 учеб. пособие
.pdf20 |
|
|
|
|
или полулогарифмической формах. |
|
|
||
При заш ей |
на информационном бланке чисел |
в полулогариф |
||
мической форме указываются мантисса числа, состоящей |
из 7 |
|||
цифр со своим |
знаком, |
а затем порядок числа, |
содераацнй |
2 |
цифры со овоны знаком. |
|
|
|
|
Например, |
числа - |
1 0 7 .8 5 ; 0 ,5 3 4 1 ; 14 ; |
-1 0 5 7 ; 0 .015782 |
на шфоршцюшюм бланке моцут быть записаны лвбо с десятич ной запятой;
/ -1 0 7 .8 5 . + 0 .5341 . + 1 4 ,0 . -1 0 5 7 ,0 . + 0,015782 ./ ;
либо в полулогарифмической форме;
/-1078500+03. +5341000+00. +1400000+02. -1057000+04. +157820002/.
Целые числа отделяются от действительных границами. Мас сивы чисел также отделяются от других чисел границами. При
атом существует следующий нередок ввода числовой информации;
действительные |
числа, одномерные массивы чисел действитель |
||||||
ного типа, двумерные массивы чисел действительного |
типа, |
це |
|||||
лые числа, |
одномерные массивы целых чисел, |
двумерные массивы |
|||||
целых чисел. При этом запись элементов двумерных |
|
массивов |
|||||
производится построчно. Отдельные числа одного типа |
принад |
||||||
лежат одноцу массиву. |
|
|
|
|
|
||
Например, нужно записать на информационном бланке |
сле |
||||||
дующие числа: |
|
|
|
|
|
|
|
3 ,1 5 1 ; |
- 2 ; |
2 - I 0 3 ; ( 1 ,2 ,3 ) ; |
/ 1 ,1 ; |
2 ,5 ;\ |
|
3 ,0 |
|
|
|
|
2 ,2 ; |
- 3 ,4 ; |
I |
0 ,4 |
;5 ' |
|
|
|
\ 5 ,1 ; |
- 2 .2 ;/ |
|
3 ,5 |
|
На информационном бланке это |
будет выглядеть |
так ; |
|
/ +3,151. +0,5. +2000000+03.// +1,1. +2,5. +3,0. +2,2. -3 ,4 .
+0,4. +5,1. -2 ,2 . +3,5.// -2 . +5./ /+1.+2.+3./
Еще пример:
1 ,1 ; - 3 ,0 ; (2 ,1 ; 3 ,5 ; - I ) ; |
^ 3 |
; I ; - I . |
На информационном бланке:
/+1,1, —3,0.// +2,1. +3,5. —1,0о// +1. —Х«// +2. +1. +3.-0./ .
Следует обратить внимание на т о , что при записи яа ин-
21
формационном бланке целых чисел в виде действительных (в фор ме с плавающей запятой) надо обязательно писать запятую и О,
как это показано в примерах |
(0 сзозно |
и опустить, но |
запятая - |
|||||
обязательна). |
|
|
|
|
|
|
|
|
|
Например, если число |
3 |
мы хотим использовать в |
программе |
||||
как |
число действительного |
типа, |
то на информационном |
бланке |
||||
его |
надо записать в вице: |
|
+ 3,0 |
или |
-'-3, |
. Точно |
так же, |
нуль до запятой на информационном бланке может быть опущен.
Например, |
-0 ,3 5 мэжно записать в виде |
—,35 |
|
Простые переменные |
|
Под этим термином в АКИ подразумеваются |
исходные данные |
|
задачи, промежуточные и конечные результаты, |
коэффициенты п |
|
т .д ., словом, |
любое число, обозначенное буквой шш набором |
|
букв в цифр. |
Для простых переменных используются буквы ’ ла |
тинского алфавита. Набор латинские букв и цифр, который при
меняется для обозначения переменной, должен начинаться обя
зательно с |
буквы» |
например,X JCO ,HELTR ,RES, |
Zi, R02 п |
||||
т.Д . |
|
|
|
|
|
|
|
Обозначение одной переменной (идентификатор) должно |
от |
||||||
личаться от |
идентификатора другой переменной хотя |
бы |
одним |
||||
из первых шести символов. Например, переменные SZE Тй 51 |
н |
||||||
DZETR 52 |
будут восприниматься машиной как одна и та же пе |
||||||
ременная DZETR 5». |
|
|
|
|
|||
Буквы I |
, J 9К , L |
не зюцут использоваться для |
простой |
||||
переменной, |
так как служат только для обозначения |
индексов. |
|||||
Для простых переменных они могут применяться только в |
соче |
||||||
тании с другими буквами и цифрами. |
|
|
|
||||
Например, X I |
, |
L i |
и т .д . |
|
|
|
|
В идентификаторе |
следует различать б у т у 0 от |
цифры 0 . |
Поэтому при записи программы на бланке букву 0 в идентифика
торе |
заменяют 6 . Например RQi читается как |
"ро один", а |
||
ROf |
- как "р |
ноль один" и воспринимаются они как различные |
||
переменные. |
|
|
|
|
Простая переменная не может иметь |
индекса.Например, р а з |
|||
ные корни одного и того же уравнения |
, хг , х , должны обо |
|||
значаться либо |
различными переменными X I ,Х2 ,ХЗ, либо как |
|||
индексированные |
элементы одномерного |
массива |
(см .нихе). |
2г
Массивы
При написании авто кодовых программ решения многочислен
ных инженерных задач часто приходится сталкиваться с выпол
нением |
операций над векторами и матрицами. Вектор, заданный |
||
своими |
проекциями на оси , определяется |
забором чисел, |
кото |
рые можно расположить в одну строку |
например, |
|
|
Такой набор чисел будем называть одномерным .массивом. |
Если |
обозначить весь массив одним идеьткпикегорол, то каждый эле мент массива отличается от другого индексом, указывающим его "кесто " в данном массиве. Для обозначения такого элемента ис
пользуется идентификатор данного массива, после которого |
ъ |
|||||||||||||
косых скобках ставится номер соответствующего элемента. |
|
|||||||||||||
|
Например, если X s* {■*,, |
х , * , } |
. то |
|
**Л |
/ { / |
, |
|
||||||
|
|
|
|
Ъ * Х / г / у |
|
а 3 = Х / з / . |
|
|
|
|
||||
|
Еще пр.-тмер: |
А 2 |
( 1 ;5 ; |
- 3 ;2 7 ;4 ) . Тогда |
А2 |
/3/~ - 3 ; |
|
|||||||
А2 /4/=27 и т . д . |
|
|
|
|
|
|
|
|
|
|
|
|||
|
Индекс элемента массива может быть и буквой. |
|
Для |
этою |
||||||||||
гфименявтся только 4 буквы: |
2 , U , К , L . |
|
|
|
|
|
|
|||||||
|
Например, R } / I / |
обозначает |
i |
-й элемент массива Я i . |
||||||||||
|
Наряду с одномерными массивами в АКИ можно |
использовать |
||||||||||||
,двумерные массивы - штрицу чисел. |
Каждый элемент двумерного |
|||||||||||||
массива имеет два индекса, которые |
по-прежнему указываются в |
|||||||||||||
косых скобках вслед за идентификатором, обозначающий |
данный |
|||||||||||||
массив. |
При этом первый индекс - |
это номер строки, |
а второй |
- |
||||||||||
номер столбца матрицы. |
Индексы обязательно |
отделяются |
друг |
|||||||||||
от друга |
запятой. |
|
|
|
|
|
|
|
|
|
|
|
||
|
Например, если |
В5 = |
f 2 ,7 ; |
- 3 ,1 ; |
|
4 ,1 'j |
|
|
||||||
|
|
|
|
|
|
\ - 0 . 2 ; |
2 ,7 ; |
- 3 ,8 / |
•то |
|
||||
В 5 |
/1,5/ |
= |
4 ,1 ; |
В 5 |
/2,1/ |
= - 0 , 2 ; |
|
|
|
|
|
|
|
|
В 5 |
/ I , J |
/ - |
элемент матрицы» |
стоящий s i |
- 8 |
строке a |
f -м |
|||||||
столбце. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Над индексами I, J , |
ft, L |
нельзя производить никаких |
ариш- |
ыетических операций. В качестве |
индексов могут удатрейяяться |
||
также выражения вида |
At В , где |
А - |
одна из буквI< Jt К L » а |
В - целое число. |
|
|
|
Например, й / l + |
i / s a iH |
f |
В ! К - 2 / |
|
|
|
|
|
|
25 |
Числовые значения |
индексов - |
обязательно |
положительные |
|||
числа |
(0 использовать |
н ельзя). |
|
|
|
|
Простые переменные |
и т сси вы |
в |
зависимости от вида |
со |
||
ставляющих элементов подразделяются |
на переменные и массивы |
|||||
действительного типа» |
а также на переменные н массивы целого |
|||||
т ш а . |
Действия над переменными и элементами массивов |
произ |
||||
водятся по тем же правилам, что |
и над действительными и це |
|||||
лыми числами. |
|
|
|
|
|
|
|
Элементарные функции |
|
|
|||
В |
азтокодовой программе используются элементарные |
функ |
||||
ции |
sm cc, cos сс, arc sin х, a r c tg x , Enx, e x, \cc\. |
|
Кякдая функция определяет некоторое числовое значение дейст
вительного типа для аргумента, представленного в виде ариф метического выражения и заключенного в круглые скобки. В АКИ элементарные функции записываются в виде:
s i n (x ), co s(x ) , t g (x ), a r c s i m (x ) , a r c c o s (x )}
ARCTG(X), L N (X ), £ X P (X ), МОЪ(х).
Все функции, кроме МОЛ , вычисляются по стандартным про
граммам библиотеки стандартных подпрограмм автокода (БСП АКИ).
Значения аргументов |
и данных функций могут быть только |
дей |
ствительного тиха. |
Что касается функции M OJ)(Xj , то |
зна |
чение самой функции совпадает со значением аргумента и может быть как действительным, так и целым, Обратные тригонометри ческие функции понимаются в смысле глазного значения.
Для тригонометрических функций принято редиаянес измере ние углов.
Рассмотрим примеры записи в символах АКИ следующих вы ражений:
I .
2.
а х 1 - s in г \jcc ^ В,
А Х ’2 |
- S IM (X J (l-- 2 ))’2 ^ (= B |
- |
s i-n *x + ?пос |
Уa r c s in fic
Y ~ (S IN (Х )’2 + L N (X )) ■A R C S IN (X , 0 ,5 ).
24
s in лх +■ cos5oo - tg x
УУ 2 s c n x + а осг
Y= (SIN (X )’5 + |
" |
3 |
- TO (5c))(2-SIN(X)+A-X2)’0'5 |
||||
4 . |
|
w |
t |
\ |
. V ^ |
-hatgx* |
|
y = a r c c o s ( £X |
~2 iXi ) + ]j s g |
+ cos* fie ’ |
|||||
Y=ARCCOS(EXP(-X)-T: (£ ■MOD ( X ) f = |
|
||||||
((X/2+A-TG. (Х ’$ :(2 -в +C0S(X’0 ,5 )fi))’( 1 -3) . |
|||||||
5 . |
и = tg(Aoc + -j |
-Tl) , |
|
|
|||
Y=TG (*ыХ+М-Р1:2). |
Здеоь |
предварительно |
|||||
|
|
|
|
|
|
долина быть определе |
|
|
|
|
|
|
|
на переменная |
|
|
coslnxl |
|
|
|
P I |
= 3,14159 . |
|
|
|
|
|
|
|
||
6« |
у = & |
у |
|
|
|
|
|
Y=EXP(C0S(M02 (N X ))). |
|
|
|||||
|
|
|
Операторы |
|
|
||
Элементами входного |
языка АКИ является операторы, общее |
||||||
количество которых около |
30. |
По их назначению операторы мож |
|||||
но разбить на группы: |
|
|
|
|
|
||
I . Ввода и размещения информации: |
|
|
|||||
1 ) В В 0 Д _ |
, |
|
|
|
|
|
|
2 ) |
MACCJB — , |
|
|
|
|
|
|
3 ) |
НАЗЗАТЬ.-. . |
|
|
|
|
|
П. Организующие счет во йорвдяам:
D выпоить,-;
2 ) |
ШТЕГРМ — ; |
3 ) |
АЛГЕБРАШЕСКИХ — УРА8НБНЙЙ _ СЖТЕМА — . |
Ш. Управляющие ходом вычислительного процесса (организа ция циклов, условные н безусловные переходы):
25
1) |
ЕСЛИ - |
, |
|
2 ) ВЫПОЛНИТЬ— , |
|
||
3) |
ПОВТОРИТЬ — . |
|
|
4 ) |
ПЕРЕИТИ — , |
|
|
5 ) |
КОНЕЦ — . |
|
|
IV. Осуществляющие вывод информации на печать: |
|||
1) |
НАПЕЧАТАТЬНА - БМ П - |
, |
|
2 ) |
НАПЕЧАТАТЬ— НА— ТЕЛЕТАЙПЕ- , |
||
3 ) |
НАПЕЧАТАТЬ— ТАБЛИЦУ- |
, |
|
4 ) НАПЕЧАТАТЬ— ТЕКСТ— , |
|
||
5 ) |
ВШ О Д - |
, |
|
6 ) |
ВШОД — ТАБЛИЦЫ- , |
|
|
7 ) |
ВШОД — ТЕКСТА - . |
|
V . Обращения к библиотеке стандартных программ,к прогр мам!, составленным в кодах машины и для работы с магнитной лентой:
1 ) |
БИБЛИОТЕЧНАЯ - ПРОГРАММА- , |
|
2 ) |
С П - |
, |
3) |
КО Д - |
, |
4 ) |
КОД — ПРОДОЛЖЕНИЕ— , |
|
5 ) |
ЗАПИСЬ— , |
|
6 ) |
ЧТЕНИЕ— . |
У1. Осуществляющие исправление автокодовой программы: 1 ) ВСТАВИТЬ- , 2 ) УДАЛИТЬ — , 3 ) ЗАМЕНИТЬ— .
УПо Действия с двоичными кодами: 1 ) ДВОИЧНЫЙ-ВЫЧИСЛИТЬ— , 2 ) ДВОИЧНЫЙ— ЕСЛИ— .
Кавдоацу оператору входного языка соответствует блок
транслятора, который расшифровывает его в составляет рабочую програмиу вычислений*
В |
этом учебном пособии при описании операторов„рада про |
||
стоты , |
ISB не будем различать оператора и соответствующий |
||
блок транслятора» |
|
|
|
Как видно s s обозначений, |
каадое наименование оператора |
||
записывается буквами русского |
алфавита. После |
иаинеяованш |
|
ставится символ — (пробел). |
Далее наносится |
остальная жн- |
26
формация, относящаяся к оператору, после чего |
ставится |
сим |
|||
вол 5 |
. Так как переводящая программа различает |
только |
пер |
||
вые три буквы, то каждое слово в названии оператора |
можно |
||||
сокращать до трех букв. |
|
|
|
|
|
Поскольку в программе, |
записанной в символах |
АКЛ, опера |
|||
торы обычно связаны между собой, то они часто |
снабжаются мет |
||||
ками, которые являются как бы адресами операторов при |
обра |
||||
щении к |
ним. Метка - целое |
положительное число, |
которое |
ста |
|
ви тся, |
если ято необходимо, |
перед наименованием |
оператора. |
После метки ставится точка. |
В качестве меток используются в |
||||
любой последовательности числа от I до 127. |
|
||||
Например, 187. ПСВТОРИТЬ2 . . . |
, |
|
|||
124. ПОДПРОГРАММА |
|
, |
41 . ВЫЧЮИГЬ |
|
|
Программа в АКй всегда |
начинается заглавием: или заменяю |
||||
щим его символом Z |
, |
поставленным в |
пятом столбце |
бланка |
|
автокодавой программы. |
Без |
заглавия трансляция автокодовой |
программ будет выполняться только со следующей строки, т .е .
ошибочно. Заканчивается запись программы словом НАЧАЛО, |
по |
|||||||
сле |
которого |
ставится пробел |
и метка оператора, |
открываюле- |
||||
IX» |
программу. |
Например, |
НАЧАЛО — I ! . |
|
|
|
||
|
Запись каждого оператора начинается с новой строки блан |
|||||||
ка |
автокодовой программы. |
|
|
|
|
|||
|
§ 5 . |
Операторы ввода и размещения информации |
|
|
||||
|
|
|
|
Оператор ВВОД |
|
|
|
|
|
Этот оператор производит |
обращение к информационному |
||||||
бланку, на котором записаны исходные данные задачи, |
перево |
|||||||
дит |
их в |
двоичную снстецу и размещает в памяти машины. |
|
|||||
|
Оператор ВВОД позволяет вводить переменные |
и массивы дей |
||||||
ствительного |
и целого типов. |
В автокодовой программе |
|
после |
||||
слова ВВОД пишется пробел, а |
затем идентификаторы, обозначаю |
|||||||
щие вводимые |
переменные и массивы, отделяемые |
друг от |
друга |
|||||
запятыми. |
Заканчивается |
информация об операторе ВВОД |
симво |
|||||
лом |
Е . |
При |
этом горддок размещения вводимых |
переменных и |
||||
массивов должен точно соответствовать порядку записи |
исход |
|||||||
ных данных на информационном б& шке. Напомним, |
что |
сначала |
||||||
записываются переменные |
и массивы действительного типа, |
а |
|
27 |
затем - целого. Перед первым из идентификаторов |
переменных |
или массивов целого типа пишется знак : , претем запятая пе ред ним не ставится.
Например,
ЗВОД- S . C !
ВВОД^ : Я / ,
RES9, Т1Х, Я=В, У ,Р 101 Р2, P3Z .
Для вводимых массивов указывается количество их элемен тов, а для двумерного массива, кроме того, количество строк и столбцов. Для одномерного массива после идентификатора в
круглых скобках указывается в виде целого положительного чис ла количество элементов массива.
Например, |
|
|
|
ВВОД о- |
С(100)1 |
|
|
ВВОД •—* •' Р(7), |
|
||
В первом случае |
одномерный массив А содержит 15 |
чисел; |
|
во втором случае вводятся одномерные массивы целого |
типа Р |
||
и С, состоящие |
из 7 |
и 100 чисел. |
|
Для двумерных массивов в скобках указывается максималь ное количество элементов и, кроме того, после пробела коли
чество строк и столбцов, отделенные друг от друга точкой ( * ) . Максимальное количество элементов массива должно быть выра
жено целым числом. В соответствии с этим числом под рассмат риваемый массив в памяти машины отводится необходимое коли
чество ячеек. Количество строк и столбцов может быть как це лым числом, так и простой переменной целого типа.
Например,
ВВОД^ В(2Ч^Р.6), x(H0~N-M)I
ВВОД ~ : М, N, Р, S, В/,300_ M-N)l
Ниже приведена примерная схема записи оператора ВВОД.
ВВШ Ь- |
|
fi'jW L, |
M-n ) , |
с ( 2 5 0 Л Щ : А / Д |
Т Щ . |
|
найме- |
промаксичисло |
описание двупростые |
опи |
|||
нов а - |
стые |
маль- |
строк |
мерногомае- |
перемен- |
сание |
ние |
пере- |
ное чи- |
и |
сива С |
чые ц е - |
масси- |
опера- |
менные ело |
столб- |
|
лого |
в а Т |
|
тора |
дей ст- |
элемен- |
цов |
|
типа |
|
|
витель- |
тов |
|
|
|
|
|
ного |
|
|
|
|
|
|
типа |
|
|
|
|
|
Элементы ввода действительного |
Элементы вво - |
тнпа |
д а целого ти |
|
па |
28
Рассмотрим несколько примеров записи оператора ВВОД и соответствуй]}их ецу исходных данных на информационном бланке.
I . Ввести в ЭЦ365 необходимую информацию для решения сле дующей системы уравнений;
7 ,9 x f + 5,8 |
х£+ |
5,7 зс3 - 7,2 х^~ 8,08 |
||
8,5 X, - |
8,8 |
Хг + |
0,8Xs +3,5х^ ~ 9,95 |
|
*f,3 x f + - |
8,2 x £ ~ 3,Zx3 + |
9,3 ~ 8,80 |
||
3,2 x f - |
U4 Xs ~ 8,9 X2 + |
3,3x^ = 1,00 |
Необходимая информация должна состоять из указания о по рядке системы, выраженном целым числом, и двух гдасснвоз - матрацы коэффициентов системы и столбца свободных членов.
ВВОД — В ( 4 ) , |
А ( 1 6 _ |
4 .4 ) : A/J |
|
|
|
|||
На информационном бланке соответствующие данные |
будут |
|||||||
иметь вид: |
|
|
|
|
|
|
|
|
граница |
|
|
граница |
|
|
граница |
||
+ 6,68 . |
|
|
|
+ 7 ,9 . |
+ 4 ,3 . |
|
|
+4. |
+ 9,95 . |
|
|
|
+ 5 ,6 . |
+ 4 ,2 . |
|
граница |
|
+ 8 ,6 0 . |
|
|
|
+ 5 ,7 . |
- 3 ,2 . |
|
|
|
+ 1 ,0 0 . |
|
|
|
- 7 ,2 . |
+ 9 ,3 . |
|
|
|
граница |
|
|
|
+ 8 ,5 . |
+ 3 ,2 . |
|
|
|
|
|
|
|
- 4 ,8 . |
- 1 .4 . |
|
|
|
|
|
|
|
+ 0 ,8 . |
—8 ,9 . |
|
|
|
|
|
|
|
+ 3 ,5 . |
+ 3 ,3 . |
|
|
|
|
|
|
|
|
граница |
|
|
|
2 . Найти произведение |
матриц А и В . |
|
|
|
||||
1 |
5 |
3 |
о\ |
|
3 |
2 |
|
|
2 |
1 |
- 1 |
4 |
|
В= |
Г - I |
|
|
-3 |
2 |
6 |
1 |
|
|
|
|
|
|
|
|
|
|
||||
О |
0 |
3 |
А |
|
|
|
|
Исходные данные считать числами целого типа. Элементы первой и второй матриц объединить в массивы А а В .
ВВОД — : А (16—. 4 . 4 ) , В ( 1 2 _ 4 ,3 ) Ж
29
На информационном бланке: |
|
|
|
граница |
|
граница |
|
+1. |
- 3 . |
+3, |
+3. |
+5. |
+2в |
+2» |
+7. |
+3. |
+6. |
+0о |
- 2 . |
+0. |
+1. |
+1. |
граница |
+2. |
|
- I . |
|
+1. |
+0. |
+3. |
|
- I . |
+3. |
+2. |
|
+4» |
44 . |
+1. |
|
|
граница |
+3. |
|
Оператор ЫАССЮ
В процессе решение многих инженерных задач часто образу ются промежуточные результаты» которые в дальнейшей мохут
неоднократно использоваться» Поэтому их необходимо сохранять,
отвода дая них в памяти машины необходимое количество ячеек. Эти же соображения относятся и к конечным результатам реше ния» В МИ дая этой цели, т .е » дая описания и размещения в памяти машины массивов, не входящих в состав исходных данных
задачи» служит оператор МАССИВ. Оператор МАССЮ записывается
по тем ке правилам, что |
и оператор ВВОД» |
|
Например, МАССИВ i _ |
Р (3 4 ), У (60 |
_ 1 0 ,6 )1 |
Если число строк или столбцов двумерного массива задает ся не числом» а простой переменной целого типа, то эта пере
менная должна быть введена перед использованием |
элементов |
||
кассива при помощи операторов ВВОД или ВЫЧИСЛИТЬ —■: |
. Опи |
||
сание массива должно предшествовать первояу |
использованию |
||
элементов массива в авто кодовой программе» Так как |
|
оператор |
|
МАССИЗ только отводит место дая элементов массива в |
|
памяти |
|
машины» то признак массива целого типа ( : ) |
писать |
|
необяза |
тельно» Оператнв МАССЮ сам числовых значений элементам мас
сивов не задаете |
Эти числовые |
значения должны |
вычисляться в |
|
программе при помощи оператора ВЫЧИСЛИТЬ. |
|
|||
П р и м е р. |
|
Рассчитать коэффициент сопротивления моде» |
||
ли по форвдяе |
? |
'z |
, если задано |
сопротивление |
= — гл— |
||||
|
|
у V* .0} |
|
|
модели в функции скорости: