Fortran для персонального компьютера
..pdfМетакоманда |
Инструкции |
Значение |
|
КОМПИЛЯТОРУ |
по умолчанию |
$D066 |
Для операторов DO |
Не установлена |
|
используется семантика |
|
|
языка ФОРТРАН66. |
|
$ELSE |
Маркировка начала бло |
Нет |
|
ка условной |
|
|
компиляции, который |
|
|
компилируется, если |
|
|
логическое условие в со |
|
|
ответствующей метако |
|
|
манде $IF имеет |
|
|
значение FALSE. |
|
$ELSE1F |
Маркировка начала ново |
Нет |
<expr> |
го блока условной |
|
|
компиляции, который |
|
|
компилируется если ус |
|
|
ловие в соответствующей |
|
|
метакоманде $IF имеет |
|
|
значение FALSE, а |
|
|
<ехрг> есть TRUE. |
|
$END1F |
Прерывание блоков ус |
Нет |
|
ловной компиляции $IF, |
|
|
$IF...$ELSE или |
|
|
$IF...$ELSEIF. |
|
$FLOATCALLS Генерирует обращения к $NOFLOATCALLS подпрограммам из
библиотеки эмулятора. Метакоманда $NOFLOATCALLS ука зывает компилятору /ia генерацию встроенных команд прерывания.
$FREEFORM Использование для |
$NOFREEFORM |
исходного кода свободно |
|
го формата. В случае |
|
метакоманды |
|
$NOFREEFORM исполь |
|
зуется фиксированный |
|
формат. |
|
Метакоманда |
Инструкции |
Значение |
j |
|
КОМПИЛЯТОРУ |
по умолчанию |
! |
$IF <expr> |
Маркировка начала бло |
Нет |
|
|
ка условной |
|
|
|
компиляции. Операторы |
|
|
|
компилируются, если |
|
|
|
условное выражение |
|
|
|
возвращает значение |
|
|
|
TRUE. |
|
|
$INCLUDE: |
Указывает компилятору |
Нет |
| |
’<filc>’ |
на включение в данной |
|
|
|
точке исходной програм |
|
|
|
мы предложений из |
|
|
|
файла с указанным |
|
|
|
именем. |
|
|
$LARGE |
Указывает компилятору |
действие метако- |
j |
|:<name> |
имена массивов,,которые манды распростра- j |
||
|,,<name>]]... |
будут расположены вне |
няется на все |
| |
|
области DGROUP. Мета |
массивы. |
|
|
команда $NOTLARGE от |
|
|
|
меняет выше описанное |
|
|
|
действие для массивов с |
|
|
|
указанными именами. |
|
|
|
Если имя <name> |
|
|
|
отсутствует |
|
|
$LINESIZE:n |
Указывает компилятору |
$L1NESIZE:80 |
|
|
на размер строки, выда |
|
|
|
ваемой в файл с распе |
|
|
|
чаткой исходного текста |
|
|
|
(минимальный размер 40 |
|
|
|
позиций; максимальный |
|
|
|
размер 132 позиции). |
|
|
$L1ST |
Указывает компилятору |
$L1ST |
|
|
на вывод информации в |
|
|
файл листинга с распе чаткой исходного текста. Метакоманда $NOLIST прекращает вывод информации в файл листинга.
Метакоманда |
г |
Инструкции |
Значение |
|
КОМПИЛЯТОРУ |
по умолчанию |
|
$LOOPOPT |
Выполняется операция |
$ШОРОРТ |
|
|
оптимизации циклов в |
|
|
|
текущем программном |
|
|
|
|
коде. Метакоманда |
|
|
$NOLOOPOPT запреща |
|
|
|
ет оптимизацию циклов. |
|
|
' $MESSAGE: |
Компилятор пересылает |
Нет |
|
J <string> |
строку символов, задан |
|
|
|
ную в кавычках, на стан |
|
|
|
|
дартное устройство |
|
|
|
вывода. |
|
$PACK:n |
|
Устанавливает число |
2 или 4. |
|
|
байтов для упаковки. |
|
|
|
Переменная п должна |
|
|
|
иметь значения 1 |
|
$PAGE |
|
Указывает на новую |
Нет |
|
|
страницу в листинге |
|
|
|
исходного текста. |
|
$PAGESIZE:n Указывает на количество |
$PAGES1ZE:63 |
||
|
|
строк в странице |
|
|
листинга исходного тек |
|
|
|
ста (минимальное число |
|
|
|
|
строк 15). |
|
$STORAGE:n |
Указывает компилятору, |
$STORAGE:4 |
|
|
что все переменные типа |
|
|
|
LOGICAL или INTEGER |
|
должны занимать п байт памяти, (п имеет зна чение 2 или 4). Метако манда не влияет на распределение памяти для тех пременных, кото рые объявлены с явным
указанием их длины.
'
Метакоманда |
Инструкции |
Значение |
|
|
КОМПИЛЯТОРУ |
по умолчанию |
|
$STR1CT |
Делает недоступными не |
$NOSTRICT |
|
|
которые особенности |
|
|
|
языка, не включенные в |
|
|
|
стандартное подмножест |
|
|
|
во полного языка ФОРТ- |
|
|
|
РАН77. |
|
|
$SUBT1TLE: |
Устанавливает подзаго |
$SUBT1TLE:"C |
|
<subtitle> |
ловок (subtitle) для каж |
|
|
|
дой последующей |
|
|
|
страницы распечатки. |
|
|
$TITLE:<title> Устанавливает заголовок |
$TITLE:"C |
I |
|
|
(title) для каждой после |
|
|
|
дующей страницы |
|
|
|
распечатки. |
|
|
$TRUNCATE |
Усекает имена перемен |
$NOTRUNCATE 1 |
|
|
ных до шести символов. |
|
|
Метакоманда $NOTRUNCATE отменя ет действие, выполняе мое по команде
$TRUNCATE.
.
ОГЛАВЛЕНИЕ |
|
ПРЕДИСЛОВИЕ |
3 |
ВВЕДЕНИЕ |
5 |
Глава 1. ДАННЫЕ |
6 |
Имена |
6 |
Типы данных . |
6 |
Символьный тип |
7 |
Си-строки |
8 |
Символьные подстроки |
10 |
Записи |
10 |
Новые возможности'работы с массивами. |
12 |
Атрибуты ......................... |
14 |
АтрибутALLOCATABLE |
14 |
Атрибут ALIAS |
15 |
Атрибуте . . . . |
15 |
Атрибут EXTERN |
16 |
Атрибут FAR . |
16 |
Атрибут HUGE |
17 |
Атрибут LOADDS |
17 |
Атрибут N EAR . |
17 |
Атрибут PASCAL . . |
18 |
Атрибут REFERENCE |
18 |
Атрибут VALUE . |
18 |
Атрибут VARYING |
19 |
Преобразование типов арифметических операндов |
19 |
Символьные выражения |
20 |
Глава 2. СТРУКТУРА ПРОГРАММЫ |
22 |
Строки . |
22 |
Комментарии |
22 |
Начальные строки . |
22 |
Строки продолжения |
23 |
Метакоманды |
23 |
Отладочные строки |
23 |
Представление исходного кода в "свободном формате" 23
Последовательность операторов и метакоманд |
24 |
Параметры |
24 |
Программные модули |
27 |
Глава 3. СИСТЕМА ВВОДА/ВЫВОДА |
28 |
Общие сведения о системе ввода/вывода |
28 |
Операторы ввода/вывода . . . . |
28 |
Имена файлов (параметр FILE=) |
28 |
Устройства (параметр UNIT=) |
30 |
Метод доступа к файлу (параметр ACCESS=) |
31 |
|||
Последовательный метод доступа |
|
|
31 |
|
Метод прямого доступа |
|
|
|
32 |
Размер буфера ввода/вывода |
|
|
32 |
|
(параметр BLOCKSIZE=) . . . |
|
|
||
Список дескрипторов преобразования |
|
|
33 |
|
Управление ошибками и концом файла |
.. |
33 |
||
(параметры IOSTAT=, ERR=, ENL)=) |
|
|||
Спецификатор формата (параметр FMT=) |
34 |
|||
Метка оператора FORMAT |
|
|
34 |
|
Имя целочисленной переменной |
|
|
35 |
|
Символьные выражения |
|
|
|
35 |
Символьная переменная |
|
|
|
35 |
Звездочка (*) |
|
|
|
36 |
Имя символьного или несимвольного |
|
|
||
массива |
|
|
|
36 |
Элемент символьного массива |
|
|
36 |
|
Спецификатор списка именования |
|
|
36 |
|
(параметр NML=) |
|
|
|
|
Структура файла (параметр FORM=) |
|
|
37 |
|
Список ввода/вывода |
. . . |
|
|
37 |
Совместное использование файлов |
|
|
38 |
|
(параметры MODE=,SHARE=) |
|
|
||
Номер записи (параметр RЕС=) |
|
|
38 |
|
Выбор типов файлов |
|
|
|
39 |
Позиционирование файла |
|
|
|
41 |
Внутренние файлы |
|
|
|
41 |
Управление кареткой |
|
|
|
42 |
Форматированный ввод/вывод |
. |
. |
43 |
|
Неповторяющиеся дескрипторы преобразования |
43 |
|||
Преобразование апострофа |
|
|
43 |
|
Дескрипторы преобразования: Tab, |
|
|
|
|
Tab Left, Tab Right ( T, TL, TR ) |
|
|
43 |
|
Дескрипторы преобразования SP, SS, S |
|
|||
(управление выводом .знака) |
|
|
45 |
|
Обратный слэш (\) |
|
|
|
45 |
Прерывание процедуры управления форматом (:) 45
Преобразование коэффициента |
|
|
масштабирования (Р) |
. |
46 |
Дескрипторы преобразования BN,BZ |
|
|
(управление вводом пробелов) |
|
46 |
Повторяющиеся дескрипторы преобразования |
47 |
|
Дескриптор преобразования Z |
|
|
(преобразование шестнадцатеричных данных) |
47 |
Дескриптор преобразования А |
|
|
|
(преобразование символьных данных) |
|
48 |
|
Взаимодействие спецификации формата |
|
49 |
|
и списка ввода/вывода |
|
|
|
Ввод/вывод, управляемый списком |
|
|
49 |
Ввод, управляемый списком |
|
|
50 |
Вывод, управляемый списком |
|
|
51 |
Ввод/вывод, управляемый именованным списком |
52 |
||
Глава 4. ОПЕРАТОРЫ |
|
|
54 |
Операторы начала программного модуля. |
|
54 |
|
Объявление головной программы. |
|
|
54 |
Оператор PROGRAM . |
|
|
|
Заголовок подпрограммы. |
|
|
55 |
Оператор SUBROUTINE . . . . |
|
|
|
Заголовок подпрограммы-функции. . |
|
55 |
|
Блок данных. Оператор BLOCK DATА |
|
56 |
|
Описание связей с другими модулями. |
|
|
56 |
Оператор INTERFACE ТО |
|
|
|
Операторы описания |
|
|
57 |
Описание массивов. Оператор DIMENSION. |
|
57 |
|
Операторы описания типа: INTEGER, REAL. |
58 |
||
COMPLEX, DOUBLE PRECISION, LOGICAL |
|||
Комплексные переменные двойной точности. |
58 |
||
Операторы DOUBLE COMPLEX, COMPLEX*16 |
|||
Описание символьных переменных. |
|
|
59 |
Оператор CHARACTER. |
. |
. . . |
|
Составные переменные |
60 |
||
Описание типов, определяемых пользователем. |
|
||
Оператор STRUCTURE |
|
|
60 |
Описание переменных типа произвольных |
|
|
|
записей. Оператор R ECORD. |
|
|
61 |
Управление размещением в памяти. . . |
|
62 |
|
Задание последовательного размещения |
|
|
|
переменных. Оператор MAP...END МАР. |
|
62 |
|
Отображение нескольких переменных в одной |
|
||
области памяти. Оператор UNION..END UNION |
63 |
||
Изменение правил умолчания. Оператор IMPLICIT |
63 |
||
Передача имени встроенной функции в качестве |
64 |
||
параметра. Оператор INTRINSIC. |
|
|
|
Описание именованных констант. |
|
|
65 |
Оператор PARAMETER. |
|
|
|
Описание автоматических переменных. |
|
65 |
|
Оператор AUTOMATIC............. |
|
|
|
Описание сохраняемых переменных. |
|
|
67 |
Оператор SAVE. |
|
|
|
Вставка содержимого заданного файла. |
|
|
67 |
Оператор INCLUDE. |
|
|
Глава 6. ГРАФИЧЕСКОЕ ПРОГРАММИРОВАНИЕ |
108 |
Библиотека графических функций . . . |
108 |
Подключение графичекои библиотеки . |
111 |
Установка режима и среды изображения |
111 |
Установка палитры .................... |
113 |
Установка графических координат |
113 |
Установка атрибутов ф и г у р .............. |
115 |
Формирование графического изображения |
116 |
Отображение символов шрифтов |
117 |
Отображение текста |
117 |
Передача образов |
119 |
Изображение графических элементов |
119 |
Работа с графическими режимами |
120 |
Проверка текущего видеорежима |
121 |
Установка видео-режима |
121 |
Разработка графических программ |
122 |
Установка видео-режима |
123 |
Рисование линий н:* экране |
124 |
Рисование синусоиды |
126 |
Добавление образа |
126 |
Выход из графического режима работы |
127 |
Использование ц в ета .......................... |
128 |
Цветные графические режимы CGA |
128 |
Смешение цветов |
129 |
Цветные графические режимы EGA |
131 |
Цветные графические режимы VGA |
132 |
Пример программы цветной графики |
133 |
Использование цветного текста |
134 |
Координатные системы . . |
134 |
Физические координаты |
135 |
Координаты ’'порта просмотра” |
136 |
"Оконные координаты" |
136 |
Использование шрифтов |
137 |
Допустимые шрифты |
137 |
Использование шрифтов . . |
138 |
Выбор (регистрация) шрифта . . . . |
139 |
Установка шрифта и отображение текста . . . . |
139 |
Программа отображения текста с использованием |
141 |
шрифтов |
|
Глава 7. ГРАФИЧЕСКИЕ ФУНКЦИИ |
143 |
Рисование эллиптических дуг. ARC,ARC__W |
143 |
Очистка экрана. CLEARSCREEN............................. |
143 |
Включение/выключение курсора. DISPLAYCURSOR |
144 |
Рисование эллипса. ELLIPSE, ELLIPSE_W |
144 |
Закрашивание замкнутой области. FLOODFILL FLOODFILL_W
Получение номера активной страницы. |
145 |
|
GETACTIVEPAGE |
.................................... |
|
Получение индекса цвета фона. GETBKCOLOR |
146 |
|
Получение индекса текущего цвета. GETCOLOR |
146 |
|
Получение текущей позиции вывода. |
|
|
GETCURRENTPOSITION, |
147 |
|
GETCURRENTPQSITION_W |
||
Получение текущей маски заполнения. |
147 |
|
GETFILLMASK |
.................................... |
|
Получение информации о шрифте. GETFONTINFO |
148 |
|
Получение ширины заданного текста. |
148 |
|
GETGTEXTEXTENT ................................. |
||
Чтение области экрана в буфер. GETIMAGE, |
148 |
|
GETIMAGE_W |
........................... |
|
Получение маски линии. GETLINESTYLE |
149 |
|
Преобразование координат текущей точки. |
149 |
|
GETPHYSCOORD |
|
|
Получение значения заданной точки. |
150 |
|
GETPIXEL GETPIXEL_W |
|
|
Получение индекса текущего цвета текста. |
150 |
|
GETTEXTCOLOR |
|
|
Получение атрибута текстового курсора. |
150 |
|
GETT EXTCURSOR |
|
|
Получение текущей позиции вывода текста. |
151 |
|
GETTEXTPOSITION |
|
|
Получение конфигурации графической среды. |
151 |
|
GETVIDEOCONFIG |
|
|
Преобразование текущих координат. |
152 |
|
GETVIEWCOORD GETVIEWCOORD_W |
||
Получение номера видимой страницы. |
152 |
|
GETVISUALPAGE |
|
|
Преобразование координат текущей точки. |
152 |
|
GETWINDOWCOORD |
|
|
Вычисление размера области экрана. |
153 |
|
Ш AGESIZE IMAGESIZE_W . . |
||
Рисование линии. LINETO, LINETO_W |
153 |
|
Изменение текущей позиции. |
154 |
|
MOVETO, MOVETO_W |
|
|
Вывод текста с использованием шрифта. |
154 |
|
OUTGTEXT |
. . . |
|
Вывод текста на экран. OUTTEXT |
154 |
|
Рисование сектора эллипса. PIE PIE_W |
155 |
|
Вывод области памяти на экран. |
|
|
PUTIMAGE , PUTIMAGE_W |
|