- •1. Обзор языка.
- •1. Ввод/вывод.
- •2. Операторы.
- •3. Выражения.
- •4. Имена.
- •5. Типы.
- •6. Строки.
- •7. Символы.
- •2. Термины и концепции.
- •1. Запись программ.
- •1.1. Буквенноцифровые символы.
- •1.2. Пробелы.
- •1.3. Позиции.
- •2. Строки и операторы.
- •2.1. Начальные строки.
- •2.2. Строки продолжения.
- •2.3. Строки коментария.
- •2.4. Операторы описания данных и порядок следования операторов.
- •3. Типы данных.
- •3.1. Целые типы данных.
- •3.2. Тип действительных данных обычной точности ieee.
- •3.3. Действительный тип данных ieee двойной точности.
- •3.4. Формат десятичных чисел с плавающей точкой обычной и двойной точности.
- •3.5. Комплексные типы данных.
- •3.6. Логические типы данных.
- •3.7. Символьный тип данных.
- •4. Имена.
- •4.1. Имена Фортрана по умолчанию.
- •5. Выражения.
- •5.1. Арифметические выражения.
- •5.2. Деление целых.
- •5.3. Преобразования типов арифметических операндов.
- •5.4. Символьные выражения.
- •5.5. Выражения отношения.
- •5.6. Логические выражения.
- •5.7. Приоритеты операторов.
- •5.8. Правила вычисления выражений.
- •5.9. Ссылки на элемент массива.
- •3. Операторы.
- •1.Категории операторов.
- •1.1.Операторы program, subroutine, function и block data.
- •2.Операторы описания.
- •3.Cправочник операторов.
- •Часть 4 "Система ввода/вывода".
- •1.Записи.
- •2.Файлы.
- •2.1.Xapaктepиcтики фaйлoв.
- •2.2.Ocoбeннocти внутpeниx фaйлoв.
- •2.3.Устройства.
- •2.4.Наиболее широко используемыe cтpуктуpы фaйлoв.
- •2.5.Дpугиe cтpуктуpы фaйлa.
- •2.7.Совмещение фaйлa.
- •3.Oператоры ввода/вывода.
- •4.Форматный ввод/вывод.
- •4.1.Взаимодeйcтвиe фopмaтa и cпиcкa ввoдa/вывoдa.
- •4.Bвод/вывод списком.
- •5. Программы, подпрограммы и функции.
- •1. Основная программа.
- •2. Подпрограммы.
- •3. Функции.
- •3.1. Внешние функции.
- •3.2. Встроенные функции.
- •3.3. Функции-операторы.
- •4. Параметры.
- •5. Передача целых параметров.
- •1. Обзор языка.
- •2. Особенности графики системы matlab
- •3. Построение графика функций одной переменной
- •4. Построение в одном окне графиков нескольких функций
- •5. Графическая функция fplot
- •6. Столбцовые диаграммы
- •7. Построение трехмерных графиков
- •7. Контекстное меню графиков
- •8. Форматирование линий и маркеров для графика нескольких функций
- •9. Построение графиков отрезками прямых
- •10. Столбцовые диаграммы
- •11. Графики с зонами погрешности
- •12. График проекций векторов на плоскость
- •13. Построение графиков поверхностей
- •13. Tрехмерные контурные графики
1.2. Пробелы.
За исключением ниже приведенного списка символов пробел не является значащим в тексте программы на МС-Фортране и поэтому мо- жет использоваться для улучшения внешнего вида программы. Исклю- чения следующие: 1. Пробелы внутри строковых констант являются значащими. 2. Пробелы внутри холлеритовских полей являются значащими. 3. Пробел или нуль в шестов позиции отличает начальную строку от строки продолжения.
1.3. Позиции.
Символы в каждой строке расположены по позициям, первый - в первой позиции, второй - во второй и т.д.
Позиция, в которой находится символ, имеет существенное зна- чение в Фортране. Позиция 1 используется для указания коментария и метакоманды. Позиции с 1-ой по 5-ю зарезервированы для меток операторов, а 6-я позиция для указания продолжения.
2. Строки и операторы.
Вы можете также считать, что текст программы на Фортране - это последовательность строк. Для компилятора значащими являются только первые 72 символа в строке, остальные им игнорируются. Строки, длиной меньше, чем 72 символа, считаются заполненными пробелами до 72-ой позиции (для иллюстрации этого смотрите ниже в этой части в описании символьных констант).
2.1. Начальные строки.
Начальной строкой называется строка, не являющаяся строкой коментария или метакоманды и содержащая пробел или нуль в шестой позиции. В первых пяти позициях строки должны быть пробелы или должна стоять метка. За исключением оператора, следующим за логи- ческим IF, операторы Фортрана должны начинаться с начальной стро- ки.
Метка оператора - это последовательность от одной до пяти цифр, хотя бы одна из которых должна быть не нуль. Метка может находится в любом месте в позициях с 1-ой по 5-ю в начальной строке. Пробелы и предшествующие нули являются незначащими.
2.2. Строки продолжения.
Строка продолжения - это любая строка, не являющая строкой коментария или метакоманды и содержащая в позиции 6 любой символ отличный от пробела или нуля. Первые пять символов строки продол- жения позволяет существенно увеличить длину оператора. Если он не помещается в одну начальную строку, его можно продлить на 19 строк продолжения.
2.3. Строки коментария.
Строка считается строкой коментария, если выполняется одно из следующих условий: 1. В позиции 1 стоит "С" (или"с"). 2. В позиции 1 стоит звездочка (*). 3. Строка состоит из одних пробелов.
Строки комментария не оказывают никакого воздействия на вы- полнение программы на Фортране. После строки коментария должна идти начальная строка или другая строка коментария. Строка про- должения не может следовать за строкой коментария.
2.4. Операторы описания данных и порядок следования операторов.
Оператор Фортрана содержит начальную строку и от 0 до 19 строк продолжения. Оператор может содержать до 1320 символов в позициях с 7-ой по 72-ю начальной строки и с 7-ой по 72-ю строк продолжения. Оператор END должен быть записан в позициях с 7-ой по 72-ю начальной строки и в его строке не может быть никаких других операторов (в дальнейшем на отдельные операторы мы будем ссылаться просто по их именам; смотрите часть 3 "Операторы" для определения различных операторов и их свойств).
Язык Фортран требует определенного порядка следования опера- торов и строк, составляющих программную единицу Фортрана. Кроме того МС-Фортран накладывает дополнительные требования на порядок строк и операторов в транслируемом тексте МС-Фортрана.
В основном, транслируемый текст содержит одну или несколько программных единиц (для более полной информации о трансляции программных единиц и подпрограмм смотрите часть 5 "Программы, подпрограммы и функции"). Различные правила по порядку следования операторов проиллюстрированы на рис.2-1 и описаны в следующих па- раграфах.
-----------------------------------------------------T---------¬
| метакоманды $DO66,$STORAGE,$DECMATH | |
+----------------------------------------T-----------+ |
| операторы PROGRAM,FUNCTION, | | |
| BLOCK DATА,SUBROUTINE | | |
+-------------------T----------T---------+ другие | |
|оператор IMPLICIT |операторы | | мета- | строки |
+-------------------+ | | команды | |
|другие операторы |PARAMETER |операторы| | комен- |
|определения данных | | | | тариев |
+-------------------+----------+ FORMAT | | |
|функции-операторы |операторы | | | |
+-------------------+ | | | |
| выполняемые | DATA | | | |
| операторы | | | | |
+-------------------+----------+---------+-----------+ |
| оператор END | |
L----------------------------------------------------+----------
Рис.2-1 Порядок операторов в программых единицах и транслируемых
текстах.
Для рисунка 2-1 существуют следующие соглашения:
Классы строк или операторов, расположенные выше или ниже других классов, должны следовать в заданном порядке.
Классы строк или операторов могут быть перемешаны с другими классами, находящимися с боку от них.
Метакоманды $LARGE и $NOTLARGE не могут находиться в разделе выполняемых операторов.
Подпрограммы BLOCK DATA не могут содержать функции-операторы, операторы FORMAT или выполняемые операторы.
Подпрограмма начинается с оператора либо SUBROUTINE, либо FUNCTION, либо BLOCK DATA и заканчивается оператором END. Основ- ная программа начинается с оператора PROGRAM или любого другого оператора, отличного от операторов SUBROUTINE, FUNCTION или BLOCK DATA, и заканчивается оператором END. Подпрограмма и основная программа являются программными единицами.
В программной единице операторы должны следовать в порядке, соответствующем таким правилам:
Оператор PROGRAM, если он есть или оператор SUBROUTINE, FUNCTION, BLOCK DATA должны быть первым оператором программ- ной единицы.
Оператор FORMAT может встретиться в любом месте после операто- ра SUBROUTINE, FUNCTION,BLOCK DATA или PROGRAM, если он есть.
Все операторы определения типов должны предшествовать опера- торам DATA, операторам-функциям и выполняемым операторам.
Все операторы DATA должны стоять после операторов определения типов. Операторы DATA могут быть перемешаны с операторами- функциями и выполняемыми операторами.
Обычно оператор PARAMETER предшествует всем другим операторам определения типов. Однако, когда некоторый оператор определяет тип константы, используемой в операторе PARAMETER, оператор PARAMETER должен следовать за этим оператором определения типа.
В операторах определения типа оператор IMPLICIT должен пред- шествовать всем другим операторам, за исключением оператора PARAMETER.
Все операторы-функции должны предшествовать всем выполняемым операторам.
Метакоманды $DO66, $DECMATH и $STORAGE должны предшествовать любым другим операторам. Другие места команды могут находиться где угодно в программной единице.
