
- •Управление векторами и матрицами
- •Компиляция и выполнение Компиляция
- •Связывание (редактирование связей )
- •Выполнение
- •Примеры
- •Соглашения о записи кода
- •Арифметические выражения
- •Операции отношения
- •Логические выражения
- •Сравнение символов
- •Переносимость результата
- •Спецификация массивов
- •Сечения массива Индивидуальные элементы
- •Сечения
- •Векторные указатели
- •Память для массива Физическая память:
- •Присваивание массива Присваивание всего массива
- •Присваивание секции (вырезки) массива
- •Повторная нумерация
- •Основные встроенные процедуры
- •Массивы нулевого размера
- •Массивы и производные типы
- •Инициализация массивов Конструкторы
- •Оператор data
- •Встроенные функции для массива
- •Пример упрощения
- •Пример исследования (запроса)
- •Пример конструирования
- •Пример локализации
- •Я Операторы управления
- •Вложения
- •Порядок операторов
- •Синтаксис программы Main
- •Формат представления программы
- •Программные единицы
- •Уровни доступа
- •Дополнения
- •Спецификация входных-выходных параметров
- •Использование модуля
- •Родовые подпрограммы
- •Интерактивный ввод-вывод
- •Простой Input и Output
- •Форматирование по умолчанию
- •Форматированный ввод-вывод I/o
- •Дескрипторы редактора
- •Вещественные - форма с фиксированной точкой
- •Вещественные - экспотенциальная форма
- •Символьные
- •Логические
- •Заполнение пробелами (пропуск символьных позиций)
- •Специальные символы
- •Списки ввода-вывода
- •Производные типы данных
- •Неявный цикл do
- •Ввод-вывод без продвижения
- •Файловый ввод-вывод
- •Номера устройств
- •Операторы read и write
- •Оператор write
- •Оператор open
- •Оператор close
- •Оператор inquirе
- •Динамический массив
- •Распределяемые массивы
- •Спецификация
- •Выделение и возвращение памяти
- •Статус распределяемых массивов
- •Потоки памяти (куча)
- •Что есть указатели?
- •Указатели и адресаты
- •Спецификации указателя Общая форма для операторов определения указателя и адресата такая:
- •Присваивание указателя
- •Разыменование (Dereferencing)
- •Статус (состояние) связи указателя
- •Динамическая память
- •Общие ошибки
- •Указатели в производных типах данных
- •Связанные списки
- •Параметры - указатели
- •Функции для указателей
Программные единицы
Уровни доступа |
Входные-выходные параметры |
Использование модуля |
Дополнения |
Модуль |
PRIVATE и PUBLIC |
В дополнение к четырем старым программным единицам: PROGRAM (которая является главной программой), SUBROUTINE, FUNCTION и BLOCK DATA, добавлена новая конструкция MODULE , которая хорошо вкладывает новый смысл в старые понятия.. Подпрограмма - это общее понятие для подпрограммы SUBROUTINE и функции FUNCTION.
Уровни доступа
Снова хочу подчеркнуть, что все программные Fortran 77 размещены по существу на одном и том же уровне, даже если главная программа логически стоит выше подпрограмм и функций, которые она вызывает. В действительности BLOCK DATA на более высоком уровне и все другие программные модули с точки зрения системы Fortran на том же уровне с главной программой, чуть-чуть немного выше. Исключение составляют так называемые операторы-функции, определения которых стоят первыми в программной единице, сразу после определений, и они являются внутренними для этой программной единицы и поэтому логически ниже по уровню. К сожалению, типичный программист на Fortran 77 не может использовать операторы-функции.
Вышесказанное означает, что имена всех программ на одном и том же логическом уровне, которое означает, что две различные процедуры и две различных части большой программы не могут иметь одинаковые имена. Часто численные и графические библиотеки включают тысячи функций и подпрограмм, а имя каждой программы состоит из более чем 6 символов по старому стандарту Fortran . Поэтому имеется большой риск конфликта имен. Эта проблема может быть частично решена с помощью функций-операторов, поскольку они внутренние по отношению к рассматриваемой программной единице , и поэтому различные функции-операторы могут иметь одни и те же имена в разных программных единицах. Недостаток в том, что они могут встретиться только в одной строке программы. Но они могут вызывать все другие и таким образом далее функции-операторы могут вызывать более ранние функции-операторы, но не наоборот.
Я
Дополнения
F90 добавляет внутренние функции и подпрограммы, предоставляя большую свободу. Они определяются в конце каждого программной единицы (но не в BLOCK DATA) после новой команды CONTAINS и перед END. Внутренняя подпрограмма может иметь доступ к именам программной единицы, включая вызовы других внутренних подпрограмм программной единицы. Она пишется как обычная подпрограмма, но она уже не может иметь своих внутренних функций или подпрограмм.. Внутренняя функция это более мощная замена для функций-операторов.
Обычные функции и подпрограммы остаются теми же самыми как и внешние подпрограммы и внешние функции, но они теперь должны иметь более существенные доводы для имен, чем прежде, покольку вы теперь имеете также и внешние подпрограммы. Прежде вы имели только встроенные функции как альтернативу при построении программы. В дополнение число встроенных функций значительно возросло и незначительно могут быть добавлены встроенные подпрограммы.
Я