- •Предисловие
- •1. Элементы языка
- •1.1. Свободная форма записи программы
- •1.2. Консоль-проект
- •1.2.1. Создание проекта в CVF
- •1.2.2. Создание проекта в FPS
- •1.2.3. Операции с проектом
- •1.2.4. Файлы с исходным текстом
- •1.3. Операторы
- •1.4. Объекты данных
- •1.5. Имена
- •1.6. Выражения и операции
- •1.7. Присваивание
- •1.8. Простой ввод/вывод
- •1.8.1. Некоторые правила ввода
- •1.8.2. Ввод из текстового файла
- •1.8.3. Вывод на принтер
- •1.9. Рекомендации по изучению Фортрана
- •1.10. Обработка программы
- •2. Элементы программирования
- •2.1. Алгоритм и программа
- •2.2. Базовые структуры алгоритмов
- •2.2.1. Блок операторов и конструкций
- •2.2.2. Ветвление
- •2.2.3. Цикл
- •2.2.3.1. Цикл "с параметром"
- •2.2.3.2. Циклы "пока" и "до"
- •2.2.4. Прерывание цикла. Объединение условий
- •2.3. Программирование "сверху вниз"
- •2.3.1. Использование функций
- •2.3.2. Использование подпрограмм
- •2.3.3. Использование модулей
- •2.4. Этапы проектирования программ
- •2.5. Правила записи исходного кода
- •3. Организация данных
- •3.1. Типы данных
- •3.2. Операторы объявления типов данных
- •3.2.1. Объявление данных целого типа
- •3.2.2. Объявление данных вещественного типа
- •3.2.3. Объявление данных комплексного типа
- •3.2.4. Объявление данных логического типа
- •3.3. Правила умолчания о типах данных
- •3.4. Изменение правил умолчания
- •3.5. Буквальные константы
- •3.5.1. Целые константы
- •3.5.2. Вещественные константы
- •3.5.3. Комплексные константы
- •3.5.4. Логические константы
- •3.5.5. Символьные константы
- •3.6. Задание именованных констант
- •3.7. Задание начальных значений переменных. Оператор DATA
- •3.8. Символьные данные
- •3.8.1. Объявление символьных данных
- •3.8.2. Применение звездочки для задания длины строки
- •3.8.3. Автоматические строки
- •3.8.4. Выделение подстроки
- •3.8.5. Символьные выражения. Операция конкатенации
- •3.8.6. Присваивание символьных данных
- •3.8.7. Символьные переменные как внутренние файлы
- •3.8.8. Встроенные функции обработки символьных данных
- •3.8.9. Выделение слов из строки текста
- •3.9. Производные типы данных
- •3.9.1. Объявление данных производного типа
- •3.9.2. Инициализация и присваивание записей
- •3.9.2.1. Конструктор производного типа
- •3.9.2.2. Присваивание значений компонентам записи
- •3.9.2.3. Задаваемые присваивания записей
- •3.9.3. Выражения производного типа
- •3.9.4. Запись как параметр процедуры
- •3.9.5. Запись как результат функции
- •3.9.6. Пример работы с данными производного типа
- •3.9.7. Структуры и записи
- •3.9.7.1. Объявление и присваивание значений
- •3.9.7.2. Создание объединений
- •3.9.8. Итоговые замечания
- •3.10. Целочисленные указатели
- •3.11. Ссылки и адресаты
- •3.11.1. Объявление ссылок и адресатов
- •3.11.2. Прикрепление ссылки к адресатам
- •3.11.3. Инициализация ссылки. Функция NULL
- •3.11.4. Явное открепление ссылки от адресата
- •3.11.5. Структуры со ссылками на себя
- •3.11.6. Ссылки как параметры процедур
- •3.11.7. Параметры с атрибутом TARGET
- •3.11.8. Ссылки как результат функции
- •4. Массивы
- •4.1. Объявление массива
- •4.2. Массивы нулевого размера
- •4.3. Одновременное объявление объектов разной формы
- •4.4. Элементы массива
- •4.5. Сечение массива
- •4.6. Присваивание массивов
- •4.7. Маскирование присваивания
- •4.7.1. Оператор и конструкция WHERE
- •4.7.2. Оператор и конструкция FORALL
- •4.8. Динамические массивы
- •4.8.1. Атрибуты POINTER и ALLOCATABLE
- •4.8.2. Операторы ALLOCATE и DEALLOCATE
- •4.8.3. Автоматические массивы
- •4.9. Массивы - формальные параметры процедур
- •4.9.1. Массивы заданной формы
- •4.9.2. Массивы, перенимающие форму
- •4.9.3. Массивы, перенимающие размер
- •4.10. Использование массивов
- •4.11. Массив как результат функции
- •4.12. Встроенные функции для массивов
- •4.12.1. Вычисления в массиве
- •4.12.2. Умножение векторов и матриц
- •4.12.3. Справочные функции для массивов
- •4.12.3.1. Статус размещаемого массива
- •4.12.3.2. Граница, форма и размер массива
- •4.12.4. Функции преобразования массивов
- •4.12.4.1. Элементная функция MERGE слияния массивов
- •4.12.4.2. Упаковка и распаковка массивов
- •4.12.4.3. Переформирование массива
- •4.12.4.4. Построение массива из копий исходного массива
- •4.12.4.5. Функции сдвига массива
- •4.12.4.6. Транспонирование матрицы
- •4.13. Ввод/вывод массива под управлением списка
- •4.13.1. Ввод/вывод одномерного массива
- •4.13.2. Ввод/вывод двумерного массива
- •5. Выражения, операции и присваивание
- •5.1. Арифметические выражения
- •5.1.1. Выполнение арифметических операций
- •5.1.2. Целочисленное деление
- •5.1.3. Ранг и типы арифметических операндов
- •5.1.4. Ошибки округления
- •5.2. Выражения отношения и логические выражения
- •5.3. Задаваемые операции
- •5.4. Приоритет выполнения операций
- •5.5. Константные выражения
- •5.6. Описательные выражения
- •5.7. Присваивание
- •6. Встроенные процедуры
- •6.1. Виды встроенных процедур
- •6.2. Обращение с ключевыми словами
- •6.3. Родовые и специфические имена
- •6.4. Возвращаемое функцией значение
- •6.5. Элементные функции преобразования типов данных
- •6.6. Элементные числовые функции
- •6.7. Вычисление максимума и минимума
- •6.8. Математические элементные функции
- •6.8.1. Экспоненциальная, логарифмическая функции и квадратный корень
- •6.8.2. Тригонометрические функции
- •6.9. Функции для массивов
- •6.10. Справочные функции для любых типов
- •6.11. Числовые справочные и преобразовывающие функции
- •6.11.1. Модели данных целого и вещественного типа
- •6.11.2. Числовые справочные функции
- •6.12. Элементные функции получения данных о компонентах представления вещественных чисел
- •6.13. Преобразования для параметра разновидности
- •6.14. Процедуры для работы с битами
- •6.14.1. Справочная функция BIT_SIZE
- •6.14.2. Элементные функции для работы с битами
- •6.14.3. Элементная подпрограмма MVBITS
- •6.14.4. Пример использования битовых функций
- •6.15. Символьные функции
- •6.16. Процедуры для работы с памятью
- •6.17. Проверка состояния "конец файла"
- •6.18. Неэлементные подпрограммы даты и времени
- •6.19. Случайные числа
- •6.20. Встроенная подпрограмма CPU_TIME
- •7. Управляющие операторы и конструкции
- •7.1. Оператор GOTO безусловного перехода
- •7.2. Оператор и конструкции IF
- •7.2.1. Условный логический оператор IF
- •7.2.2. Конструкция IF THEN END IF
- •7.2.3. Конструкция IF THEN ELSE END IF
- •7.2.4. Конструкция IF THEN ELSE IF
- •7.3. Конструкция SELECT CASE
- •7.4. DO-циклы. Операторы EXIT и CYCLE
- •7.5. Возможные замены циклов
- •7.6. Оператор STOP
- •7.7. Оператор PAUSE
- •8. Программные единицы
- •8.1. Общие понятия
- •8.2. Использование программных единиц в проекте
- •8.3. Работа с проектом в среде DS
- •8.4. Главная программа
- •8.5. Внешние процедуры
- •8.6. Внутренние процедуры
- •8.7. Модули
- •8.8. Оператор USE
- •8.9. Атрибуты PUBLIC и PRIVATE
- •8.10. Операторы заголовка процедур
- •8.10.1. Общие характеристики операторов заголовка процедур
- •8.10.2. Результирующая переменная функции
- •8.11. Параметры процедур
- •8.11.1. Соответствие фактических и формальных параметров
- •8.11.2. Вид связи параметра
- •8.11.3. Явные и неявные интерфейсы
- •8.11.4. Ключевые и необязательные параметры
- •8.11.5. Ограничения на фактические параметры
- •8.11.6. Запрещенные побочные эффекты
- •8.12. Перегрузка и родовые интерфейсы
- •8.12.1. Перегрузка процедур
- •8.12.2. Перегрузка операций и присваивания
- •8.12.3. Общий вид оператора INTERFACE
- •8.13. Ассоциирование имен
- •8.14. Область видимости имен
- •8.15. Область видимости меток
- •8.16. Ассоциирование памяти
- •8.16.1. Типы ассоциируемой памяти
- •8.16.2. Оператор COMMON
- •8.16.3. Программная единица BLOCK DATA
- •8.17. Рекурсивные процедуры
- •8.18. Формальные процедуры
- •8.18.1. Атрибут EXTERNAL
- •8.18.2. Атрибут INTRINSIC
- •8.19. Оператор RETURN выхода из процедуры
- •8.20. Оператор ENTRY дополнительного входа в процедуру
- •8.21. Атрибут AUTOMATIC
- •8.22. Атрибут SAVE
- •8.23. Атрибут STATIC
- •8.24. Атрибут VOLATILE
- •8.25. Чистые процедуры
- •8.26. Элементные процедуры
- •8.27. Операторные функции
- •8.28. Строка INCLUDE
- •8.29. Порядок операторов и директив
- •9. Форматный ввод/вывод
- •9.1. Преобразование данных. Оператор FORMAT
- •9.2. Программирование спецификации формата
- •9.3. Выражения в дескрипторах преобразований
- •9.4. Задание формата в операторах ввода/вывода
- •9.5. Списки ввода/вывода
- •9.5.1. Элементы списков ввода/вывода
- •9.5.2. Циклические списки ввода/вывода
- •9.5.3. Пример организации вывода
- •9.6. Согласование списка ввода/вывода и спецификации формата. Коэффициент повторения. Реверсия формата
- •9.7. Дескрипторы данных
- •9.8. Дескрипторы управления
- •9.9. Управляемый списком ввод/вывод
- •9.9.1. Управляемый именованным списком ввод/вывод
- •9.9.1.1. Объявление именованного списка
- •9.9.1.2. NAMELIST-вывод
- •9.9.1.3. NAMELIST-ввод
- •9.9.2. Управляемый неименованным списком ввод/вывод
- •9.9.2.1. Управляемый неименованным списком ввод
- •9.9.2.2. Управляемый неименованным списком вывод
- •10. Файлы Фортрана
- •10.1. Внешние и внутренние файлы
- •10.2. Позиция файла
- •10.3. Устройство ввода/вывода
- •10.4. Внутренние файлы
- •10.5. Внешние файлы
- •10.6. Записи
- •10.6.1. Типы записей
- •10.6.2. Записи фиксированной длины
- •10.6.3. Записи переменной длины
- •10.6.4. Сегментированные записи
- •10.6.5. Потоки
- •10.6.6. CR-потоки
- •10.6.7. LF-потоки
- •10.7. Передача данных с продвижением и без
- •10.8. Позиция файла перед передачей данных
- •10.9. Позиция файла после передачи данных
- •10.10. Двоичные последовательные файлы
- •10.11. Неформатные последовательные файлы
- •10.12. Текстовые последовательные файлы
- •10.13. Файлы, подсоединенные для прямого доступа
- •10.14. Удаление записей из файла с прямым доступом
- •10.15. Выбор типа файла
- •11. Операции над внешними файлами
- •11.1. Оператор BACKSPACE
- •11.2. Оператор REWIND
- •11.3. Оператор ENDFILE
- •11.4. Оператор OPEN
- •11.5. Оператор CLOSE
- •11.6. Оператор READ
- •11.7. Оператор ACCEPT
- •11.8. Оператор FIND
- •11.9. Оператор DELETE
- •11.10. Оператор UNLOCK
- •11.11. Оператор WRITE
- •11.12. Оператор PRINT
- •11.13. Оператор REWRITE
- •11.14. Оператор INQUIRE
- •11.15. Функция EOF
- •11.16. Организация быстрого ввода/вывода
- •12.1. Некоторые сведения об объектах ActiveX
- •12.2. Для чего нужен конструктор модулей
- •12.3. Интерфейсы процедур управления Автоматизацией
- •12.4. Идентификация объекта
- •12.5. Примеры работы с данными Автоматизации
- •12.5.1. OLE-массивы
- •12.5.2. BSTR-строки
- •12.5.3. Варианты
- •12.6. Другие источники информации
- •12.7. Как воспользоваться объектом ActiveX
- •12.8. Применение конструктора модулей
- •12.9. Пример вызова процедур, сгенерированных конструктором модулей
- •Приложение 1. Вывод русского текста в DOS-окно
- •Приложение 2. Нерекомендуемые, устаревшие и исключенные свойства Фортрана
- •П.-2.1. Нерекомендуемые свойства Фортрана
- •П.-2.1.1. Фиксированная форма записи исходного кода
- •П.-2.1.2. Оператор EQUIVALENCE
- •П.-2.1.3. Оператор ENTRY
- •П.-2.1.4. Вычисляемый GOTO
- •П.-2.1.5. Положение оператора DATA
- •П.-2.2. Устаревшие свойства Фортрана, определенные стандартом 1990 г.
- •П.-2.2.1. Арифметический IF
- •П.-2.2.2. Оператор ASSIGN присваивания меток
- •П.-2.2.3. Назначаемый GOTO
- •П.-2.2.4. Варианты DO-цикла
- •П.-2.2.5. Переход на END IF
- •П.-2.2.6. Альтернативный возврат
- •П.-2.2.7. Дескриптор формата H
- •П.-2.3. Устаревшие свойства Фортрана, определенные стандартом 1995 г.
- •П.-2.4. Исключенные свойства Фортрана
- •Приложение 3. Дополнительные процедуры
- •П.-3.1. Запуск программ
- •П.-3.2. Управление программой
- •П.-3.3. Работа с системой, дисками и директориями
- •П.-3.4. Управление файлами
- •П.-3.5. Генерация случайных чисел
- •П.-3.6. Управление датой и временем
- •П.-3.7. Ввод с клавиатуры и генерация звука
- •П.-3.8. Обработка ошибок
- •П.-3.9. Аргументы в командной строке
- •П.-3.10. Сортировка и поиск в массиве
- •П.-3.11. Управление операциями с плавающей точкой
- •Литература
- •Предметный указатель
- •Оглавление
О. В. Бартеньев. Современный ФОРТРАН
c%e = 1 |
! c%e - целочисленный компонент типа feg |
$j = 5.0 |
! $j - Переменная типа REAL |
3.5. Буквальные константы
В Фортране различают именованные и буквальные константы. Буквальные константы (далее - просто константы) используются в выражениях и операторах Фортрана. Возможно задание арифметических,
логических и символьных буквальных констант.
3.5.1. Целые константы
Целые константы в десятичной системе счисления - целые числа (со знаком или без знака), например:
+2 2 -2
Константа может быть задана с указанием разновидности типа, значение которой указывается после значения константы и символа _ , например:
integer i*2, j*1 |
|
|
|
|
integer, parameter :: is = 1 |
|
|
|
|
i = -123_2 |
! Разновидность типа KIND = 2 |
|||
j = +123_is |
! Разновидность типа KIND = 1 |
|||
write(*, *) i, j, kind(123_is) |
! |
-123 |
123 |
1 |
Для указания разновидности может быть использована ранее определенная именованная константа (в примере is) стандартного целого типа.
Целые константы по произвольному основанию задаются так: [знак] [[основание] #] константа [_kind]
Знак это + или -. Для положительных констант знак может быть опущен. Основание может быть любым целым числом в диапазоне от 2 до 36. Если основание опущено, но указан символ #, то целое интерпретируется как число, заданное в шестнадцатеричной системе счисления. Если опущены и основание и символ #, то целое интерпретируется как имеющее основание 10. В системах счисления с основаниями от 11 до 36 числа с основанием 10, значения которых больше девяти, представляются буквами от A до Z. Регистр букв не является значащим. Константа может быть задана с указанием разновидности типа.
Пример. Представить десятичную константу 12 типа INTEGER(1) в системах счисления с основаниями 2, 10 и 16.
2#1100_1 12_1 или 10#12_1#C_1 или 16#C_1
По умолчанию буквальные целые константы имеют стандартный целый тип.
Помимо названных возможностей, в операторе DATA беззнаковые целые константы могут быть представлены в двоичной, восьмеричной
56
риложение3. Организация данных
или шестнадцатеричной форме с указанием системы счисления в виде символа, предшествующего значению константы (соответственно B или b, O или o, Z или z для двоичной, восьмеричной или шестнадцатеричной систем счисления). Сама же константа обрамляется апострофами (') или двойными кавычками. При этом константа должна использоваться для инициализации целой скалярной переменной.
integer i, j, k |
|
data i /b'110010'/ |
! Двоичное представление десятичного числа 50 |
data j /o'62'/ |
! Восьмеричное представление числа 50 |
data k /z'32'/ |
! Шестнадцатеричное представление числа 50 |
3.5.2. Вещественные константы
Вещественные константы используются для записи действительных чисел. Вещественные константы одинарной REAL(4) и двойной REAL(8) точности могут быть представлены в F-форме или в Е-форме. Помимо этого, вещественные константы двойной точности могут быть представлены и в D-форме. Память, занимаемая вещественной константой одинарной точности, равна 4 байтам, а двойной точности - 8 байтам.
Вещественные константы в F-форме записываются в виде: [+]|- [целая часть] . [дробная часть] [_разновидность типа]
Целая или дробная часть в F-форме может быть опущена, но не обе одновременно.
Пример:
+2.2 |
2.2_4 |
2.0_8 |
2. |
-0.02_knd |
-.02 |
Замечание. knd - ранее определенная константа стандартного целого типа
(knd = 4 или knd = 8).
Константы в Е-форме и D-форме имеют вид:
[+]|- [мантисса] E | e [+]|- порядок [_разновидность типа] [+]|- [мантисса] D | d [+]|- порядок
Мантисса - число в F-форме или целое число.
Порядок - однозначное или двузначное целое положительное число.
Пример 1:
Е- и D-формы числа 18.2*1011 |
: |
+18.2E11 |
18.2e+11_8 |
18.2D11 |
Е- и D-формы числа -0.18*10-5 |
: |
-.18E-05 |
-.18e-5 |
-.18d-5 |
Пример 2:
real(8) :: a*4 = +18.2E11, b = 18.2e+11_8, c /18.2D11/ ! a - переменная одинарной, b и c - двойной точности print *, a, b, c
57
О. В. Бартеньев. Современный ФОРТРАН
Результат:
1.820000E+12 1.820000000000000E+012 1.820000000000000E+012
Е- и D-формы также называются экспоненциальными формами числа и хороши для представления больших и малых чисел.
Вещественные константы одинарной точности могут представлять числа
вдиапазоне изменения значений типа REAL(4) (разд. 3.2.2). Дробная часть может содержать до шести десятичных знаков.
Вещественные константы двойной точности могут представлять числа
вдиапазоне изменения значений типа REAL(8) (разд. 3.2.2). Дробная часть может содержать до 15 десятичных знаков.
3.5.3. Комплексные константы
Комплексные константы используются для представления комплексных чисел и имеют вид:
[знак](действительная часть[_разновидность], |
& |
мнимая часть[_разновидность]) |
|
Если знак задан, то он применяется как для действительной, так и для мнимой части. Задание общего знака при инициализации комплексной переменной в операторах DATA и объявлениях типов недопустимо.
Действительная (мнимая) часть - целая или вещественная константы. Буквальные комплексные константы могут быть одинарной COMPLEX(4) и двойной COMPLEX(8) точности. В комплексных константах одинарной точности мнимая и действительная части занимают по 4 байта памяти; в комплексных константах двойной точности - по 8 байт. Поэтому комплексная константа одинарной точности занимает 8 байт памяти, а двойной - 16. При задании компонентов комплексной константы можно использовать одновременно для действительного и мнимого компонента константы Е-, D- и F-формы. В случае одновременного использования одинарной и двойной точности при задании комплексной константы компилятор выполнит преобразование типов в соответствии с рангом типов арифметических операндов: комплексная константа будет иметь двойную точность, а компонент одинарной точности будет
преобразован в форму с двойной точностью.
Пример 1. Число 36.8 - 263.3i в виде комплексной константы:
(36.8, -2.633E2)
или
(36.8, -263.3)
или
(36.8_4, -2.633E2_4)
58
риложение3. Организация данных
Пример 2. D-форма числа 3.8*10-5 - 2.6*10-2i задает комплексную константу двойной точности:
(3.8D-5, -2.6D-2)
3.5.4. Логические константы
Логические константы используются для записи логических значений истина (.TRUE.) или ложь (.FALSE.). Отсутствие хотя бы одной обрамляющей точки в записи буквальной логической константы является ошибкой.
По умолчанию буквальные логические константы занимают в памяти ЭВМ 4 байта. Разновидность типа буквальной логической константы может быть задана явно, подобно тому, как это выполняется для буквальных целых констант. Например: .true._1 или .false._2.
Пример задания именованных логических констант:
logical(1), parameter :: fl = .true._1 logical(2) gl
parameter (gl = .false.)
3.5.5. Символьные константы
Символьные константы - последовательность одного или более символов 8-битового кода. Далее последовательность символов мы будем называть строкой. Символьные константы могут быть записаны с указателем длины и без него.
Символьные константы с указателем длины, называемые также
холлеритовскими константами, имеют вид: nHпоследовательность символов,
где n - целая константа без знака, задающая число символов в строке (ее длину); H (h) - буква, являющаяся разделителем между n и строкой. Число символов в последовательности символов должно быть равно n.
Пример:
18hthis is a constant |
|
st = 16hthis is a string |
! Константа как элемент выражения |
Символьная константа без указателя длины - это строка, заключенная в ограничители, апострофы или двойные кавычки. Ограничители вместе со строкой не сохраняются. Если строка должна содержать ограничитель, то она либо заключается в ограничители другого вида, либо ограничитель должен быть указан в строке дважды.
Пример:
'Это константа' или "Это константа" "It's a constant" или 'It''s a constant'
59
О. В. Бартеньев. Современный ФОРТРАН
Замечание. Символьные константы с указателем длины относятся к устаревшим свойствам Фортрана и не рекомендуются для применения.
Можно задать СИ-строковую константу. Для этого к стандартной строковой константе Фортрана необходимо прибавить латинские буквы C или c. Как известно, CИ-строки заканчиваются нулевым символом, имеющим в таблице ASCII код 0.
Пример СИ-константы: 'Это константа'с
В СИ-строке символы могут быть представлены в восьмеричном или шестнадцатеричном коде, которые указываются при задании констант после обратной наклонной черты. Например, '\62'c и '\x32'c задают символ '2' в восьмеричном и шестнадцатеричном кодах (ASCII-код символа '2'
равен 50). |
Также |
в СИ существует |
специальная запись приведенных |
||
в табл. 3.2 часто используемых управляющих символов. |
|||||
Таблица 3.2. Управляющие символы |
|
||||
|
|
|
|
|
|
Символ |
|
|
ASCII-код |
|
Значение |
|
|
|
|
|
|
\0 |
|
0 |
|
|
Нулевой символ (null) |
|
|
|
|
|
|
\a |
|
7 |
|
|
Сигнал |
|
|
|
|
|
|
\b |
|
8 |
|
|
Возврат на шаг ("забой") |
|
|
|
|
|
|
\t |
|
9 |
|
|
Горизонтальная табуляция |
|
|
|
|
|
|
\n |
|
10 |
|
|
Новая строка |
|
|
|
|
|
|
\v |
|
11 |
|
|
Вертикальная табуляция |
|
|
|
|
|
|
\f |
|
12 |
|
|
Перевод страницы |
|
|
|
|
|
|
\r |
|
13 |
|
|
Возврат каретки |
\" |
|
34 |
|
|
Двойная кавычка |
|
|
|
|
|
|
\' |
|
39 |
|
|
Апостроф |
|
|
|
|
|
|
\? |
|
63 |
|
|
Знак вопроса |
|
|
|
|
|
|
\\ |
|
92 |
|
|
Обратная наклонная черта |
\ooo |
|
|
|
|
Восьмеричная константа |
|
|
|
|
|
|
\xhh |
|
|
|
|
Шестнадцатеричная константа |
|
|
|
|
|
|
Пример: |
|
|
|
|
|
character :: bell = '\a'c |
! или '\007'c, |
или '\x07'c |
|||
character(20) :: st = '1\a\a\t1-1\n\r2'c |
|
||||
write(*, *) bell |
|
|
! Звуковой сигнал |
||
write(*, *) st |
|
|
|
|
|
60