Книга Фортран Павловец 2008
.pdfB = (Bx1 + Bx2 )2 +(By1 + By2 )2
Выделим прямоугольную плоскость, которую перпендикулярно пересекают два бесконечных проводника. В каждой точке выделенной плоскости вычислим значение магнитной индукции и сохраним его в двухмерном массиве. Если координаты расчетных точек совпадают с координатами самих проводников, то в двухмерный массив вместо числа будем заносить символ «пробел».
DIMENSION B(60,70)
WRITE(*,*)’Введите координаты трех точек плоскости X1,Y1,X2,Y3’ READ(*,*)X1,Y1,X2,Y3
WRITE(*,*)X1,Y1,X2,Y3
WRITE(*,*)’Введите координаты проводников и их токов
*XP1,YP1,TOK1,XP2,YP2,TOK2’
READ(*,*)XP1,YP1,TOK1,XP2,YP2,TOK2
WRITE(*,*)XP1,YP1,TOK1
WRITE(*,*)XP2,YP2,TOK2
OPEN(UNIT=3,FILE='POLE.REZ') DX=(X2-X1)/69.
DY=(Y3-Y1)/59. Y=Y1
DO 1 I=1,60 X=X1
DO 2 J=1,70 IF(ABS(X-XP1).LT.0.001.AND.ABS(Y-YP1).LT.0.001) GO TO 22 IF(ABS(X-XP2).LT.0.001.AND.ABS(Y-YP2).LT.0.001) GO TO 22 CALL POLPR(XP1,YP1,X,Y,TOK1,BX1,BY1)
CALL POLPR(XP2,YP2,X,Y,TOK2,BX2,BY2)
B(I,J)=SQRT((BX1+BX2)**2+(BY1+BY2)**2) GO TO 2
22B(I,J)='_' При совпадении координат проводников и координат расчетной точки в двухмерный массив вместо числа заносится пробел
2 |
X=X+DX |
1 |
Y=Y+DY |
CALL POLE(B,60,70)
PAUSE
STOP
END
Двухмерный массив со значениями индукции магнитного поля в каждой точке выделенной плоскости направляем в подпрограмму вывода полевой картинки. Поскольку в дальнейшем картинка будет выводиться на принтер или в файл, то необходимо учесть ту особенность, что при печати расстояние между двумя символами по вертикали в 1,75 раза больше, чем расстояние между двумя символами по горизонтали. Поэтому в расчетной программе желательно подобрать параметры исходных данных таким образом, чтобы dy было больше dx в 1,75 раза.
121
c Павловец В.В. SUBROUTINE POLE(X,M,N)
DIMENSION S(125),X(M,N),RS(21) CHARACTER*1 R(21),S
DATA R/'.','0',',','L',':','2',';','3','^','4','>','5','<','6','+','7','О','8','*','9','M'/ DATA TEXT/' '/
XM=-1.E30
XI=1.E30
c определение максимума, минимума
DO 2 I=1,M
DO 2 J=1,N
c текстовые пробелы в исходном массиве не обрабатываются
IF (X(I,J).EQ.TEXT) GOTO 2 XM=AMAX1(XM,X(I,J)) XI=AMIN1(XI,X(I,J))
2 CONTINUE
A=XM-XI
IF (A.EQ.0.)GOTO 22
WRITE(3,15)XI,XM
15 FORMAT(5X,' Minimum=',G10.4,' Maximum=',G10.4) RS(1)=XI
DO 13 I=2,21 RS(I)=RS(I-1)+0.05*A J=I-1
13WRITE(3,14)R(J),RS(J),RS(I)
14FORMAT(5x,'символ ',A1,' имеет значение от ',G10.4,' до ',G10.4)
c определение количества этапов вывода рисунка на экран или в файл
K1=N/79
T1=FLOAT(N)/79.
IF(K1.LT.T1)K1=K1+1 NN=-78 WRITE(3,'(//)')
NK=0
ID=79
DO 11 KI=1,K1 IF(KI.EQ.K1)ID=N-NK
c определение номеров столбцов выводимой строки
NN=NN+79
NK=NK+ID
DO 3 K=1,M L1=0
DO 4 1=NN,NK L1=L1+1
IF(X(K,L).NE.TEXT) GOTO 24 S(L1)=TEXT
GO TO 4
24NI=INT(20.*(X(K,L)-XI)/A)+1 S(L1)=R(NI)
122
4 CONTINUE
c вывод строки на печать
3 WRITE(3,5)(S(I),I=1,L1)
5 FORMAT(1X,80A1)
11 WRITE(3,'(////)') RETURN
c обработка сбойной ситуации
22WRITE(3,23)XM
23FORMAT(1X,'массив имеет одинаковые значения =',G10.4) RETURN
END
При выводе картинки магнитного поля двух проводников с токами различного направления получим результат в виде распечатки:
Minimum= .5397E-03 Maximum= .1824E-01
Символ . имеет значение от .5397E-03 до .1425E-02 Символ 0 имеет значение от .1425E-02 до .2310E-02 Символ , имеет значение от .2310E-02 до .3195E-02 Символ l имеет значение от .3195E-02 до .4081E-02 Символ : имеет значение от .4081E-02 до .4966E-02 Символ 2 имеет значение от .4966E-02 до .5851E-02 Символ ; имеет значение от .5851E-02 до .6736E-02 Символ 3 имеет значение от .6736E-02 до .7621E-02 Символ ^ имеет значение от .7621E-02 до .8507E-02 Символ 4 имеет значение от .8507E-02 до .9392E-02 Символ > имеет значение от .9392E-02 до .1028E-01 Символ 5 имеет значение от .1028E-01 до .1116E-01 Символ < имеет значение от .1116E-01 до .1205E-01 Символ 6 имеет значение от .1205E-01 до .1293E-01 Символ + имеет значение от .1293E-01 до .1382E-01 Символ 7 имеет значение от .1382E-01 до .1470E-01 Символ o имеет значение от .1470E-01 до .1559E-01 Символ 8 имеет значение от .1559E-01 до .1647E-01 Символ * имеет значение от .1647E-01 до .1736E-01 Символ 9 имеет значение от .1736E-01 до .1824E-01
и саму картинку:
123
..................................................................... .
......................................................................
......................................................................
......................................................................
......................00000000000000000000000000......................
.................000000000000000000000000000000000000.................
.............0000000000000000,,,,,,,,,,,,0000000000000000.............
..........0000000000000,,,,,,,,,,,,,,,,,,,,,,,,0000000000000..........
........000000000000,,,,,,lllll::::::::lllll,,,,,,000000000000........
......000000000000,,,,,lll:::22;;3333;;22:::lll,,,,,000000000000......
.....00000000000,,,,,lll:::2;3^><+oo+<>^3;2:::lll,,,,,00000000000.....
....00000000000,,,,,,lll::2;3^>+9 9+>^3;2::lll,,,,,,00000000000....
...000000000000,,,,,,lll::22;3^45<66<54^3;22::lll,,,,,,000000000000...
...000000000000,,,,,,llll:::22;;;3333;;;22:::llll,,,,,,000000000000...
...0000000000000,,,,,,,lllll::::::::::::::lllll,,,,,,,0000000000000...
...00000000000000,,,,,,,,,llllllllllllllllll,,,,,,,,,00000000000000...
...0000000000000000,,,,,,,,,,,,,llllll,,,,,,,,,,,,,0000000000000000...
...000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000...
....000000000000000000000,,,,,,,,,,,,,,,,,,,,000000000000000000000....
.....00000000000000000000000000000,,00000000000000000000000000000.....
.....000000000000000000000000000000000000000000000000000000000000.....
......0000000000000000000000000000000000000000000000000000000000......
.......00000000000000000000000000000000000000000000000000000000.......
........000000000000000000000000000000000000000000000000000000........
........000000000000000000000000000000000000000000000000000000........
.........0000000000000000000000000000000000000000000000000000.........
.........0000000000000000000000000000000000000000000000000000.........
.........0000000000000000000000000000000000000000000000000000.........
.........0000000000000000000000000000000000000000000000000000.........
........000000000000000000000000000000000000000000000000000000........
........000000000000000000000000000000000000000000000000000000........
.......00000000000000000000000000000000000000000000000000000000.......
......0000000000000000000000000000000000000000000000000000000000......
.....000000000000000000000000000000000000000000000000000000000000.....
.....00000000000000000000000000000,,00000000000000000000000000000.....
....000000000000000000000,,,,,,,,,,,,,,,,,,,,000000000000000000000....
...000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000...
...0000000000000000,,,,,,,,,,,,,llllll,,,,,,,,,,,,,0000000000000000...
...00000000000000,,,,,,,,,llllllllllllllllll,,,,,,,,,00000000000000...
...0000000000000,,,,,,,lllll::::::::::::::lllll,,,,,,,0000000000000...
...000000000000,,,,,,llll:::22;;;3333;;;22:::llll,,,,,,000000000000...
...000000000000,,,,,,lll::22;3^45<66<54^3;22::lll,,,,,,000000000000...
....00000000000,,,,,,lll::2;3^>+9 M+>^3;2::lll,,,,,,00000000000....
.....00000000000,,,,,lll:::2;3^><+oo+<>^3;2:::lll,,,,,00000000000.....
......000000000000,,,,,lll:::22;;3333;;22:::lll,,,,,000000000000......
........000000000000,,,,,,lllll::::::::lllll,,,,,,000000000000........
..........0000000000000,,,,,,,,,,,,,,,,,,,,,,,,0000000000000..........
.............0000000000000000,,,,,,,,,,,,0000000000000000.............
.................000000000000000000000000000000000000.................
......................00000000000000000000000000......................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
......................................................................
Эта картина распределения магнитного поля характерна для всех двойных проводников с током туда-обратно.
124
Если при тех же геометрических параметрах задать токи одного направления, то получим такую картинку (поясняющий текст опускаем)
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000,,,,,,,,,,,,,,0000000000000000000000000000
000000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000000
00000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000
00000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000
000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000
0000000000,,,,,,,,,,,,,,,,,llllllllllllllll,,,,,,,,,,,,,,,,,0000000000
00000000,,,,,,,,,,,,,,,llllllllllllllllllllllll,,,,,,,,,,,,,,,00000000
0000000,,,,,,,,,,,,,lllllllll::::::::::::lllllllll,,,,,,,,,,,,,0000000
000000,,,,,,,,,,,,,llllll::::::22222222::::::llllll,,,,,,,,,,,,,000000
00000,,,,,,,,,,,,,lllll::::222;;;;;;;;;;222::::lllll,,,,,,,,,,,,,00000
00000,,,,,,,,,,,,lllll::::22;;3^444444^3;;22::::lllll,,,,,,,,,,,,00000
00000,,,,,,,,,,,,lllll:::22;3^4567887654^3;22:::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,lllll:::22;345+9 M+543;22:::lllll,,,,,,,,,,,,00000 000000,,,,,,,,,,,,lllll::22;3^45+ +54^3;22::lllll,,,,,,,,,,,,000000 000000,,,,,,,,,,,,,lllll:::22;33^4444^33;22:::lllll,,,,,,,,,,,,,000000 0000000,,,,,,,,,,,,,,llllll:::2222222222:::llllll,,,,,,,,,,,,,,0000000 000000000,,,,,,,,,,,,,,,,llllllllllllllllllll,,,,,,,,,,,,,,,,000000000 000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000 00000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000..............0000000000000000000000000000 0000000000000000000000000....................0000000000000000000000000 000000000000000000000000......................000000000000000000000000 000000000000000000000000......................000000000000000000000000 0000000000000000000000000....................0000000000000000000000000 0000000000000000000000000000..............0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000000 000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000 000000000,,,,,,,,,,,,,,,,llllllllllllllllllll,,,,,,,,,,,,,,,,000000000 0000000,,,,,,,,,,,,,,llllll:::2222222222:::llllll,,,,,,,,,,,,,,0000000 000000,,,,,,,,,,,,,lllll:::22;33^4444^33;22:::lllll,,,,,,,,,,,,,000000 000000,,,,,,,,,,,,lllll::22;3^45+ +54^3;22::lllll,,,,,,,,,,,,000000 00000,,,,,,,,,,,,lllll:::22;345+9 9+543;22:::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,lllll:::22;3^4567887654^3;22:::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,lllll::::22;;3^444444^3;;22::::lllll,,,,,,,,,,,,00000 00000,,,,,,,,,,,,,lllll::::222;;;;;;;;;;222::::lllll,,,,,,,,,,,,,00000 000000,,,,,,,,,,,,,llllll::::::22222222::::::llllll,,,,,,,,,,,,,000000 0000000,,,,,,,,,,,,,lllllllll::::::::::::lllllllll,,,,,,,,,,,,,0000000 00000000,,,,,,,,,,,,,,,llllllllllllllllllllllll,,,,,,,,,,,,,,,00000000 0000000000,,,,,,,,,,,,,,,,,llllllllllllllll,,,,,,,,,,,,,,,,,0000000000 000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000 00000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000 00000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00000000000000000 000000000000000000000,,,,,,,,,,,,,,,,,,,,,,,,,,,,000000000000000000000 0000000000000000000000000000,,,,,,,,,,,,,,0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000
125
Такое распределение магнитного поля характерно для параллельных проводников с одинаковыми токами, например, фазных проводов линий электропередач 300 кВ.
Программа вывода картинки поля создана четверть века назад. Анализ результатов расчетов различных физических процессов с ее помощью позволил сделать несколько изобретений по способам и устройствам поиска повреждений в шахтных кабелях, изобретений по конструкции трансформаторов. А анализ картины распределения магнитного поля установки типа ТОКОМАК еще в 80-е годы прошлого века позволил дать заключение о неработоспособности такой установки и принципиальной невозможности удержать плазму в такой конструкции. Не исключено, что новая международная термоядерная установка ИТЭР имеет те же недостатки.
С появлением версии Фортрана Power Station уже подготовлена версия подпрограммы вывода полевой картинки не в цифровой, а в цветовой гамме на экран дисплея или в файл.
56. Рекомендации по составлению программ
В основе алгоритма любой задачи лежит математическая модель. Не нужно жалеть времени на изучение свойств этой модели и разработку эффективного алгоритма. Желательно любую задачу решать в общем виде, не склоняясь к частным и временным решениям. Но при записи алгоритма следует придерживаться основного принципа: программа должна быть простой и понятной не только разработчику, но и любому, сведущему в программировании. Приступая к решению даже не очень сложной задачи целесообразно составить блок-схему алгоритма. А при решении сложных задач без блок-схемы просто не обойтись. Это же касается и таблицы идентификаторов. Игнорирование этих простейших истин приводит к потере дорогого рабочего времени на поиски ошибок. Приступая к составлению программы, будьте уверены, что ошибку в ней вы сделаете. И заранее предусмотрите способ, которым вы эту ошибку найдете. Опыт показывает, что программа, которую автор не видел полгода, воспринимается им как совершенно незнакомое творение. Поэтому важную роль в программе играют комментарии. В грамотно составленной программе комментарии занимают ¼ ее объема. Любая программа должна обладать следующими основными качествами:
•универсальность;
•самодокументирование;
•использование минимума времени на выполнение;
•использование минимума бумаги на распечатки;
•использование минимума оперативной памяти;
•разбиение на подпрограммы.
Помните об отладке с самого начала создания программы. Для этой цели следует широко использовать отладочную печать, вставляя необходимые операторы еще при написании программы. При многочисленных ветвлениях в алгоритме целесообразно при отладке печатать признаки прохождения программы по отдельным ветвям.
При написании программы желательно придерживаться следующих рекомендаций:
1.Не использовать имена переменных и массивов более 5 символов;
2.Не использовать имена переменных, совпадающих с именами встроенных функций AMAX, SIN, TAN …;
3.В идентификаторах цифры использовать в конце имени, осторожно использовать буквы О,I,Z,З,Ч,S. Желательно не использовать русские буквы вообще.
4.Проверять имена на соответствие типам данных;
5.При описании массивов большее измерение ставить на первое место;
126
6.После ввода исходных данных распечатать их значения для контроля правильности ввода;
7.Проверять, все ли переменные, входящие в выражение, определены;
8.Очередность вычислений задавать неоднозначно с помощью круглых скобок. Выражения внутри скобок выполняются в первую очередь;
9.Арифметические операции одного ранга выполняются поочередно слева направо. Но операции возведения в степень выполняются справа налево. A=B**C**2 выполняется как A=B**(C**2);
10.В арифметическом выражении нежелательно смешание типов переменных.
При вычислении выражения целого типа арифметические операции производятся с отбрасыванием дробной части в промежуточных вычислениях. Результатом деления целых чисел является целое число! Например, если K и N – целые переменные и N=2*(K/2), то K=N только тогда, когда K – четное число.
11.Тип результата арифметической операции зависит от типов переменных, участвующих в операции. Тип соответствует типу старшего из типов переменных. По возрастанию: I,R,C,D (соответственно типа целого, вещественного, комплексного, удвоенной значности);
12.Операции возведения в целую степень осуществляются перемножением взводимого на самого себя. Поэтому точку у показателя степени ставить не следует;
13.Отрицательное число возводить в вещественную степень нельзя;
14.В арифметическом выражении операции более высокого ранга ставить раньше;
15.По возможности использовать стандартные функции SQRT, AMAX1, и т.д.;
16.Отслеживать возможность деления но ноль или вычисление корня квадратного из отрицательного числа;
17.В операторах присваивания выделять общие части и присваивать их промежуточным переменным. Вместо T=(A+B)*Q+(A+B)**2 лучше записать
R=A+B и T=R*Q+R*R;
18.Часто встречающийся элемент массива заменять переменной и использовать ее в выражениях. Это сокращает время счета;
19.По возможности вместо IF арифметического использовать IF логический;
20.Меньше использовать оператор GO TO;
21. Не использовать конструкцию IF-THEN-ELSE там, где можно обойтись обычным IF;
22.Объединять циклы. Выражения, не изменяющиеся внутри цикла, выносить за его пределы;
23.Соблюдать вложенность циклов. Внутренний цикл желательно иметь с большим измерением;
24.Избегать выражений с индексами или присваивать их переменным;
25.Проверять, не превысит ли значение индекса размерности массива;
26.Проверять возможность затирания памяти программы в случаях типа
REAL X(10)
M=-3
N=17
X(M)=X(N);
27.Проверять соответствие списков формальных и фактических параметров подпрограмм по количеству параметров, очередности следование, типам данных, размерности массивов;
127
28.Проверять соответствие списков оператора COMMON по очередности следования и по типам данных;
29.В операторе FORMAT ширину поля задавать несколько большего размера, чем имеющиеся данные.
Никогда не начинайте создание программы, усевшись за дисплей компьютера. Искусство создания качественного программного продукта не терпит суеты над клавиатурой. Создайте программу сначала на бумаге. Затем мысленно прогоните ее многократно с анализом всевозможных ситуаций. И только после того, как многократно программа «прокрутится» у Вас в голове, ее исполнение можно доверить машине.
57. Командные файлы
Командные файлы используются для автоматизации обработки информации ЭВМ. Они имеют расширение .bat.
имя.bat
Командные файлы содержат последовательность команд системы DOS, в которых задаются определённые управляющие команды в системе математического обеспечения ЭВМ. Например, можно использовать командный файл для процесса трансляции и компоновки программ, созданных на ФОРТРАНе, содержащий следующую информацию:
ECHO OFF
ECHO*Компилятор языка ФОРТРАН
FL /C /4Yb /Ox /AH /FPc /Fs%1 /Tf%1.for /Fo% 1.OBJ
IF ERRORLEVEL 1 GO TO EXIT
При обнаружении ошибок во время трансляции происходит
переход на метку EXIT. Метки в bat-файлах начинаются с символа “ : ”.
LINK %1 %2 %3 %4 %5 %6 %7, , ,LLIBFORE /E;
IF ERRORLEVEL 1 GO TO DONE GO TO NORM
: EXIT
ECHO* При трансляции обнаружены ошибки. Исправьте файл .FOR GO TO END
:DONE
ECHO* При компиляции обнаружены ошибки
ECHO* Проанализируйте файл .LST и исправьте ошибки в файле .FOR GO TO END
:NORM DEL %1.obj DEL %1.map DEL %1.lst :NORM
ECHO* Компоновка завершена успешно. Запустите на выполнение файл .EXE :END
Командные файлы используют специальные операторы и команды.
128
Операторы: ECHO, GO TO, IF. Команды: FL, LINK, DEL.
ECHO OFF – очищает экран компьютера.
FL – команда на трансляцию программы. DEL – удаление файла.
FS%1 – запоминает имя обрабатываемого файла и далее %1 соответствует имени этого файла.
TF%.for – транслятор языка Фортран.
Fo%1.obj – создаёт объектный файл в виде: имя.obj.
В результате трансляции программы создаётся 3 файла:
имя.obj, имя.map, имя.lst.
После команды FL с помощью оператора IF анализируется уровень ошибки ERRORLEVEL. Он может содержать 0 или 1. Обычно результат ноль. Но, если в результате обработки текста программы транслятор обнаружил ошибки, то ERRORLEVEL устанавливается в 1.
LINK – компоновщик или компилятор – осуществляет оформление программы в единый модуль и к файлу типа .obj подключается модули стандартных программ языка ФОРТРАН и модули из библиотеки математического обеспечения. LINK собирает все файлы и формирует файл %.exe. Файл .exe является загрузочным модулем и может быть запущен на выполнение.
Этот модуль может работать и на компьютерах, на которых не установлена система программирования Фортрана.
129
Приложение 1. Сообщения транслятора фортран-95 об ошибках
Не только начинающему, но и умудренному опытом программисту не так часто удается написать программу, которая сразу прошла бы этап трансляции и компановки без ошибок. При обнаружении ошибок в программе, транслятор в файле типа .LST помещает сообщения или сразу после строки, в которой обнаружена ошибка, или в конце файла указывается номер строки, в которой обнаружена ошибка и текстовое сообщение о ней на английском языке. Учитывая, что далеко не все имеют глубокие познания в английском языке, приводим тексты возможных сообщений и их перевод.
Однако следует иметь ввиду, что далеко не все ошибки могут быть опознаны транслятором.
$ DEBUG:'<debug-list>' illegal with |
Список DEBUG не соответствует |
$FREEFORM |
свободному формату |
$DEBUG:'<debug-list>' : string expected |
Список $DEBUG: ожидается строковая |
|
(обозначение) |
$DECMATH not supported |
не поддерживается |
$INCLUDE:'<filename>' : string expected |
имя файла: ожидается строковое |
$ : integer constant out of range |
целая контстанта превышает размер (32767) |
$<integer constant> : integer constant expected |
ожидается константа целого типа |
$LARGE already set |
режим LARGE уже установлен |
$% LARGE illegal in executable statements |
режим LARGE неверен для управляющего |
|
оператора |
$MESSAGE:'<message>' : string expected |
в команде MESSAGE:'<message>' : ожидается |
|
строковая |
$STORAGE:<number> : 2 or 4 expected |
в команде STORAGE:<number> : ожидается 2 |
|
или 4 |
$SUBTITLE:'<subtitle>' : string expected |
в команде SUBTITLE:'<subtitle>' : ожидается |
|
строковая |
$TITLE:'<title>' : string expected |
в команде TITLE:'<title>' : ожидается |
|
строковая |
$IF : no matching $ENDIF |
в конструкции IF : нет ЕNDIF |
$DEFINE : %s : already defined |
в команде DEFINE : %s : уже определено |
$UNDEFINE : %s : not defined |
не определено |
$ illegal in C name |
неправильное имя в С |
%s only legal on formal arguments |
правильно только для формальных |
|
аргументов |
%fs : illegal use of active DO-loop variable |
неправильное использование переменной |
|
явного цикла DO |
%s : attributes on items illegal |
атрибуты элемента данных неверны |
%s name illegal |
имя неверное |
%s variable cannot be AUTOMATIC |
идентификатор не может быть AUTOMATIC |
%c or $ : nonstandard edit descriptor in format |
нестандартный разделитель в format |
%s : unrecognized value in option |
незарезервированная величина в опции |
'.' : expected in format |
символ . ожидается в format |
'%c' : unexpected character in format |
неожиданная строковая в format |
* : not last array bound |
не последнее ограничение массива |
130