Решение задач по ТОЭ, ОТЦ, Высшей математике, Физике, Программированию... |
[an error occurred while processing the directive] |
Теория / Фортран / 1. Обзор языка |
1. ОБЗОР ЯЗЫКА.ОБ ЭТОЙ ЧАСТИ. В этой части представлены как одно целое все компоненты языка МS-Фортран.Содержание:
1. Метакоманды MS-Фортрана.Метаязык - это язык управления компилятором MS-Фортрана. Метакоманды позволяют Вам определить варианты, воздействующие на все операции компиляции. Например, с помощью метакоманд Вы можете включить или выключить генерацию файла листинга, проверку кода при ошибке счета, или использовать такие возможности Фортрана, которые не входят в подмножество или в полный стандарт языка. Метаязык содержит команды, которые вставляются в файл исходного текста, каждая из которых занимает отдельную строку, и каждая из которых начинается с символа доллар ($) в первой колонке. Метаязык - это уровень языка, позволяющий расширить использование компилятора MS-Фортрана. Хотя в большинстве реализаций Фортрана есть средства управления компилятором, метакоманды MS-Фортрана не входят в стандарт Фортрана (и поэтому не мобильны). Ниже приведены существующие в настоящий момент метакоманды: $[NO]DEBUG $[NO]LARGE $PAGESIDE $DEVFNH $LINESIDE $STORAGE $DO66 $[NOT]LIST $[NOT]STRICT $[NO]FLOATCALLS $MESSADE $SUBTITLE $INCLUDE $PAGE $TITLE Смотрите часть 6 "Метакоманды MS-Фортрана" для подробного изучения метакоманд. 2. Программы и компилируемые части программ.Компилятор MS-Фортрана производит программные единицы. Ими могут быть основная программа, подпрограмма или функция. Вы можете откомпилировать любую из этих единиц отдельно и затем загрузить их вместе без объединения их еще до компиляции. 1.Программа. Любая программная единица, не начинающаяся с оператора FUNCTION или SUBROUTINE. Первым оператором может быть PROGRAM, но такой оператор не обязателен. Выполнение программы всегда начинается с первого выполняемого оператора в главной программе. Следовательно в каждой выполняемой программе должна быть единственная главная программа. 2.Подпрограмма. Программная единица,которая может вызваться из других программных единиц оператором CALL, будучи вызванной, подпрограмма осуществляет набор действий, определенных ее выполняемыми операторами, и затем возвращает управление на оператор, стоящий непосредственно за оператором вызова. Подпрограмма не возвращает прямо величины, хотя они могут быть переданы в вызывающую программную единицу через параметры или общие переменные. 3.Функция. Программная единица, которая может быть употреблена в выражении. Функция прямо возвращает величину, которая используется при вычислении этого выражения, и кроме того может возвращать величины через параметры. Существует три вида функций: внешние, внутренние и функция-оператор. (Функция-оператор не может быть скомпилирована отдельно). 4.Подпрограмма блока данных. Программная единица, обеспечивающая начальные значения переменных в COMMON-блоках. Переменные обычно заводятся оператором DATA, но переменные в COMMON не могут быть заведены нигде кроме подпрограммы блока данных. Подпрограммы и функции позволяет Вам создавать большие структурированные программы, которые можно делить на части. Это дает преимущества в следующих ситуациях:
Для получения полной информации о компилируемых программных единицах смотрите часть 5 "Программы, подпрограммы и функции." 3. Ввод / Вывод.Ввод - это передача данных из внешней среды или из внутренного файла во внутреннюю память. Процесс передачи называется чтением. Вывод - это передача данных из внутренней памяти во внешнюю среду или во внутренний файл. Этот процесс называется записью. В Фортране есть набор операторов, обеспечивающих такую передачу данных, кроме того существует набор операторов для редактирования таких данных. В дополнение к операторам передачи данных, существует несколько вспомогательных операторов ввода/вывода, управляющих внешней средой, или определяющих, или описывающих свойства соединения с внешней средой. В таблице 1-1 приведены операторы ввода/вывода, осуществляющие каждую из этих трех функций. ---------------------------T---------------------------¬ |Функции ввода/вывода | Операторы ввода/вывода | +--------------------------+---------------------------+ | Передача данных | READ | | | WRITE | | | | | Вспомогательные функции | OPEN | | ввода/вывода | CLOSE | | | BACKSPASE | | | ENDFILE | | | REWIND | | | INQUIRE | | | LOCKING | | | | | Определение положения | BACKSPASE | | в файле | ENDFILE | | | REWIND | L--------------------------+---------------------------- Таб. 1-1 операторы ввода/вывода. Для понимания системы ввода/вывода нужны также следующие положения:
4. Операторы.Операторы представляют собой набор функцый, таких как вычисления, запись результатов вычислений, изменение цепочек управления, чтение и запись файлов и определение информации для компилятора. Операторы Фортрана разделяются на два основных класса: выполняемые и невыполняемые. Выполняемые операторы вызывают требуемые действия. Невыполняемые операторы никаких действий не вызывают. Вместо этого они определяют, описывают или классифицируют элементы программ, такие как входные точки, данные или программные единицы. Таблица 1-2 описывает функциональные категории операторов. --------------------T------------------------------------¬ | Категория | Описание | +-------------------+------------------------------------+ | Присваивание | Выполняемый. Присваивает величину | | | переменной или элементу массива. | | | | | Комментарий | Невыполняемый. Допускает коммента- | | | рии внутри подпрограммы. | | | | | Управления | Выполняемый. Управляет порядком вы-| | | полнения операторов. | | | | | DАТА | Невыполняемый. Присваивает началь- | | | ные значения переменным. | | | | | FORMAT | Невыполняемый. Обеспечивает инфор- | | | мацию о редактировании данных. | | | | | Ввод/вывод | Выполняемый. Определяет тексты и | | | адреса передачи данных идругие осо-| | | бенности ввода/вывода. | | | | | Описание | Невыполняемый. Определяет отрибуты | | | переменных, массивов и имен функций| | | программиста. | | | | | Функция-оператор | Невыполняемый. Определяет простую, | | | локально используемую функцию. | | | | | | | | Заголовок | Невыполняемый. Определяет начало | | программной | программной единицы и описывает ее | | единицы | формальные параметры. | | | | L-------------------+------------------------------------- Таб. 1-2 Категории операторов Фортрана. Для полной информации об использовании операторов MS-Фортана смотрите часть 3 "Операторы". 5. Выражения.Выражение - это формула для вычисления величины, оно содержит последовательность операндов и операторов. Операнды могут содержать обращения к функциям, переменные, константы и даже другие выражения. Операторы определяют действия, которые необходимо произвести над операндами. В следующем выражении плюс (+) - это оператор, а A и B - операнды: A + B Существует четыре основных вида выражений в Фортране:
Каждый тип выражений работает с определенным типом операндов и использует определенный тип операторов. Результатом вычисления каждого выражения является величина определенного типа. Выражения не являются операторами, но могут входить в них как их части. В следующем примере вся строка - это оператор, но только часть его после знака равенства является выражением: X = 2.0/3.0 + A + B Для подробного рассмотрения выражений в MS-Фортране смотрите часть 2 "Термины и концепции". 6. Имена.Именами обозначают переменные, массивы, функции или подпрограммы в вашей программе, независимо от того определены ли они Вами или самой системой MS-Фортран. Имя в Фортране содержит последовательнось буквенноцифровых символов. Ограничения на имена таковы:
С учетом этих ограничений на имя, любая последовательность символов может быть использована как имя в Фортране. Здесь нет зарезервированных имен, как в других языках. Последовательности буквенных символов, используемые компилятором MS-Фортрана как ключевые слова, не смешиваются с именами пользователя. Компилятор различает ключевые слова по их контексту и поэтому на использование имен пользователями нет никаких ограничений. Поэтому, например, в программе могут быть массивы с именами IF,READ или GOTO и ошибок при этом не возникает (до тех пор пока не изменят правило, которому подчиняются все массивы). Однако использование ключевых слов как имен пользователя мешает "читабельности" программ, и его следует избегать. Для получения подробной информации об области действия и использовании имен в MS-Фортране смотрите часть 2 "Термины и концепции". 7. Типы.Данные в MS-Фортране относятся к одному из шести базовых типов:
Типы данных объявляются. Если он не объявлен, то тип данных определяется по первой букве имени (по умолчанию или из оператора IMPLISIT). Оператор описания типа может также включать информацию о размерности. Для более полной информации о типах данных смотрите часть 2. Для изучения детального описания оператора описание типа смотрите часть 3 "Операторы". 8. Строки.Строка состоит из последовательности символов. Символы после 72-го в строке игнорируются, строка короче 72 символов считается заплненой пробелами. Позиция символа в строке Фортрана имеет важное значение. Символы в позиции с 1-ой по 5-ую опознаются как метки операторов, символы в позиции 6 являются признаком продолжения, а символы в позициях с 7 по 72 является собственно оператором Фортрана. Коментарии опознаются по символу "С" или звездочке "*" в первой позиции, а метакоманды по знаку доллара в первой позиции. С некоторыми исключениями, пробелы не являются значащими в Фортране. Символы табуляции имеют значение при некоторых обстоятельствах, описанных в части 2 "Термины и концепции". Строки Фортрана представляют собой что-либо следующее:
У метакоманды в первой позиции знак доллара и она управляет прохождением компилятора МS-Фортрана. В строке коментария в первой позиции "С", "с" или звездочка, или вся строка пустая и игнорируется при обработке. Начальная строка оператора имеет пробел или нуль в 6-ой позиции и все пробелы или метку оператора в позициях с 1-ой по 5-ую. Строка продолжения - это не строка метакоманды, не строка коментария и не начальная строка. У нее с первой по пятую позиции пробелы, а в шестой символ, отличный от пробела или нуля. Смотрите часть 2 "Термины и концепции" для подробностей использования различных видов строк МS-Фортрана и как из операторов составлять программы и совместные части программ. 9. Символы.В основном, программы на Фортране - это последовательность символов. Когда эти символы обрабатываются компилятором, они интерпретируются в различных контекстах как символы, имена, метки, константы, строки и операторы. Символы, используемые в текстах программ на МS-Фортране, относятся к набору символов ASCII, полный список которого приведен
в приложении С "Коды символов ASCII".Однако набор символов можно поделить на три основных группы:
Для более полной информации об использовании символов в МS-Фортране смотрите часть 2 "Термины и концепции". [an error occurred while processing the directive] [an error occurred while processing the directive] [an error occurred while processing the directive] [an error occurred while processing the directive] |