Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PP_KR22.doc
Скачиваний:
5
Добавлен:
10.12.2018
Размер:
377.86 Кб
Скачать

24. Язык фортран 90. Общая характеристика.

Фортра́н (Fortran)  — первый язык программирования высокого уровня, имеющий транслятор. Создан в период с 1954 по 1957. Название Fortran является акронимом отFORmula TRANslator (переводчик формул). Фортран широко используется в первую очередь для научных и инженерных вычислений.

Фортран - язык фиксировано-свободных форматов записи. Любой оператор состоит из 80-ти символов. Состоит из метки (5 символов), далее пробел и до конца - операнды. Если не хватает 80 символов, то можно писать на следующей строке при условии, что шестым символом идет символ, отличный от пробела.

В качестве метки используются только целые положительные числа. Алфавит – только заглавные латинские буквы, знаки арифметических операций.

Если буква С в первой позиции то далее будет комментарий.

Типы данных: INTEGER, REAL, LOGICAL (bool). Все, которые начинаются с I,J,K,L,M,N – по умолчанию целые, а прочие – вещественные. Явное описание, возможно, любым INTEGER B5. Неявное описание IMPLICIT REAL J.

Массивы описываются словом DIMENSION A(10,10), в скобках указываются верхние границы индексов, а нижние всегда единица. Максимальное измерение 7. В памяти располагаются по столбцам.

Структура программы.

ОСНОВНАЯ

ПРОГРАММА

ПРОДПРОГРАММА1

ПРОДПРОГРАММА2

ПРОДПРОГРАММАn

Каждый раздел заканчивается словом «END». Описание переменных идет сначала раздела. Подпрограммы начинаются со слов SUBROUTINE или FUNCTION.

Операторы:

1. Оператор присваивания: <переменная> = <выражение>

** - возведение в степень

2. Логические отношения: .EQ, .NE, .LT, .GT, .GE, .LE

3. Логические операции .NOT, .AND, .OR, .XOR

4. Логические константы .TRUE, .FALSE

Переход GOTO <метка>

Логический IF <логическое выражение> <оператор1> <оператор2>

Арифметический IF <арифметическое выражение> (M1, M2, M3)

Если меньше нуля, то переход на M1, равно нулю M2, больше M3.

Цикл

DO <метка> <оператор цикла> = <начальное значение>, <верхняя граница>

<тело цикла>

<метка>

Оператор CONTINUE – аналогия break

Вызов процедуры CALL <имя процедуры> (список операторов)

Операторы ввода и вывода

В языке фортран осуществляется форматный ввод и вывод. Это означает что операторы ввода и вывода применяются в паре с форматом, которое может быть помещено в любой части программы.

Обычно номер канала: для ввода 5, для вывода 6.

READ (номер канала, метка формата) список ввода.

WRITE (номер канала) список вывода.

Метка формата это FORMAT (I4, F8.3 …). Каждая спецификация может иметь кратность повторения и заключаться в скобки : 2(4I4,5F8.3). Работает как цикл. Первый вывод при выводе – управляющий: 1X. Для размещения введенного формата есть спецификации целых I, (доп. еще E, F), затем идет число позиции, например I4. Для F – F8.3, затем число позиций после запятой. Для E10.5.1 : второе – для мантиссы, а третье для изображения чисел после запятой. Для порядка обозначатся E+01. Спецификация L – для логических переменных (например, L4), спецификация X – пробег (2X – два пробега)

Для ввода/вывода массива можно использовать неявный цикл

DIMENSION A(5), B(3,3)

WRITE (6,1) ((B(I,J), J=1,3), I=1,3)

1FORMAT(1X,3F8.3)

Отличия Fortran 90 (1991) от Fortran:

  • Введены управляющие операторы и конструкции. Добавлены DO … END DO (вместо завершения цикла меткой), DO WHILE, оператор передачи управления на начало цикла CYCLE, конструкция выбора SELECT CASE (для замены громоздких конструкций IF и операторов GOTO), а также заключительный оператор программной единицы, модульной или внутренней процедуры END[3].

  • Введён инструментарий указателей (по аналогии с языком С).

  • Операторы работы с динамической памятью: ALLOCATE, DEALLOCATE и т.д.

  • Добавлены компоненты MODULE, PRIVATE, PUBLIC, CONTAINS и т.д.

  • Введено маскирование присваивания массивов (присваивание при выполнении наложенного на элементы массива логического условия без использования операторов условия), а также работа с сечениями массивов. Введён оператор и конструкция WHERE для частичной замены циклов (правая часть оператора присваивания не изменяется). Маскирование присваивания распространяется почти на все операторы, конструкции и функции, оперирующие с массивами.

  • Стандартные операции присваивания, сложения, вычитания, а также деления и умножения на число распространены на массивы и их секции, определяемые сечениями. В этом случае осуществляется поэлементное присваивание.

  • Появились новые встроенные функции, в основном для работы с массивами.

  • В языке появились элементы ООП. Введены производные типы данных.

  • Добавлены дополнительные функции для работы со строковыми данными

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]