- •Управление векторами и матрицами
- •Компиляция и выполнение Компиляция
- •Связывание (редактирование связей )
- •Выполнение
- •Примеры
- •Соглашения о записи кода
- •Арифметические выражения
- •Операции отношения
- •Логические выражения
- •Сравнение символов
- •Переносимость результата
- •Спецификация массивов
- •Сечения массива Индивидуальные элементы
- •Сечения
- •Векторные указатели
- •Память для массива Физическая память:
- •Присваивание массива Присваивание всего массива
- •Присваивание секции (вырезки) массива
- •Повторная нумерация
- •Основные встроенные процедуры
- •Массивы нулевого размера
- •Массивы и производные типы
- •Инициализация массивов Конструкторы
- •Оператор data
- •Встроенные функции для массива
- •Пример упрощения
- •Пример исследования (запроса)
- •Пример конструирования
- •Пример локализации
- •Я Операторы управления
- •Вложения
- •Порядок операторов
- •Синтаксис программы Main
- •Формат представления программы
- •Программные единицы
- •Уровни доступа
- •Дополнения
- •Спецификация входных-выходных параметров
- •Использование модуля
- •Родовые подпрограммы
- •Интерактивный ввод-вывод
- •Простой Input и Output
- •Форматирование по умолчанию
- •Форматированный ввод-вывод I/o
- •Дескрипторы редактора
- •Вещественные - форма с фиксированной точкой
- •Вещественные - экспотенциальная форма
- •Символьные
- •Логические
- •Заполнение пробелами (пропуск символьных позиций)
- •Специальные символы
- •Списки ввода-вывода
- •Производные типы данных
- •Неявный цикл do
- •Ввод-вывод без продвижения
- •Файловый ввод-вывод
- •Номера устройств
- •Операторы read и write
- •Оператор write
- •Оператор open
- •Оператор close
- •Оператор inquirе
- •Динамический массив
- •Распределяемые массивы
- •Спецификация
- •Выделение и возвращение памяти
- •Статус распределяемых массивов
- •Потоки памяти (куча)
- •Что есть указатели?
- •Указатели и адресаты
- •Спецификации указателя Общая форма для операторов определения указателя и адресата такая:
- •Присваивание указателя
- •Разыменование (Dereferencing)
- •Статус (состояние) связи указателя
- •Динамическая память
- •Общие ошибки
- •Указатели в производных типах данных
- •Связанные списки
- •Параметры - указатели
- •Функции для указателей
Дескрипторы редактора
Дескрипторы редактора точно специфицируют, как будут конвертированы в символьную строку для устройства вывода или внутреннего файла I/O или как будут конвертированы из символьной строки на устройстве ввода или во внутреннем файле. В дескрипторах ниже ключевые буквы имеют следующий смысл:
a -число повторений
w -ширина поля - общее число символов
m -минимальное число цифр
d -цифры справа от десятичной точки
e -число цифр в экпоненте
Многие дескрипторы редактора могут предшествовать счету повторений и следовать за шириной поля, то есть общим числом цифр. Таким образом , 2I и 3F10.6 могут быть описаны как 2 целых и 3 вещественных числа с плавающей точкой. Ширина поля для целых чисел по умолчанию, 10 для вещественных определяется описанием.
В целом, если w больше чем число цифр, требуемых для представления числа, то добавляются ведущие пробелы. Если w слишком мало для представления числа , в выводе печатаются w звездочек и на вводе читаются w левых символов (число таким образом усекается)
Оператор I/O будет использоваться и как множество дескрипторов редактора, и элементов списка ввода-вывода. Процесс закончится в следующем дескрипторе редактора, который потребует значения из списка ввода-вывода.
Рассмотрим, каковы правила описания представлений для целых величин, вещественных (форма с фиксированным положением точки и в экспотенциальной форме), символьных, логических, как представлять группу пробелов, управлять переходом на строку, страницу и т.д.
Я
Целые
Дескриптор I для управления форматом целых и может иметь форму Iw или Iw.m. Несколько целых могут прочитаны (записаны) в одном и том же формате путем использования счетчика повторений - aIw или aIw.m. Например:
INTEGER :: itest=1234567 ! число для записи
...
WRITE(*,*) itest ! 1234567
WRITE(*,'(I6)') itest ! ******
WRITE(*,'(I10)') itest ! 1234567
WRITE(*,'(I10.9)') itest ! 001234567
WRITE(*,'(2I7)') itest, 7654321 ! 12345677654321
WRITE(*,'(2I8)') itest, 7654321 ! 1234567 7654321
Дескриптор I10.9 специфицирует всего 10 символов (включая знак минус, если потребуется) с минимальным числом цифр 9, поэтому в выводе появятся дополнительные ведущие нули.
Я
Вещественные - форма с фиксированной точкой
Дескриптор F используется для управления вещественными (или комплексными) числами, когда требуется нотация с фиксированной десятичной точкой. Она имеет форму Fw.d. Несколько вещественных чисел можно читать(писать), используя повторитель. - aFw.d. Например:
REAL :: itest=123.4567 ! число для записи
...
WRITE(*,*) itest ! 1.2345670E+02 -формат не F
WRITE(*,'(F8.0)') itest ! 123
WRITE(*,'(F10.4)') itest ! 123.4567
WRITE(*,'(F10.5)') itest ! 123.45670
WRITE(*,'(F10.9)') itest ! **********
WRITE(*,'(2F8.4)') itest, 7654321 ! 123.4567765.4321
WRITE(*,'(2F10.4)') itest, 7654321 ! 123.4567 765.4321
Важно помнить, что десятичная точка помещается в поле вывода ширины w . В верхнем примере, несмотря на то, что они записывали 7 цифр на экран, поле должно быть из 8 символов (или более), чтобы обеспечить место для десятичной точки.
Я
