- •Краткие теоретические сведения
- •Основные этапы подготовки задачи для решения на эвм
- •Математическое описание задачи
- •Разработка алгоритма решения задачи
- •Программирование.
- •Отладка программы
- •Непосредственное решение задачи на эвм
- •Введение в алгоритмический язык Фортран 90/95
- •Алфавит языка Фортран 90/95 Для записи текста программы на Фортране 90/95 используется алфавит, состоящий из:
- •Правила записи текста программы
- •Типы данных
- •Константы
- •Переменные
- •Имена (идентификаторы)
- •Описание переменных
- •Тип :: список объектов данных, разделенных запятыми
- •Структура программы
- •Встроенные функции
- •Выражения. Арифметические выражения
- •Оператор присвоения
- •Простой ввод/вывод
- •Программирование задач линейной структуры
- •Обработка ошибоккомпиляции
Переменные
Переменные в отличие от констант могут изменять свои значения в программе. Переменные в Фортране могут быть целыми, вещественными, логическими или символьными. Тип переменной во время выполнения программы не изменяется.
Переменные подразделяются на простые и составные. Простые переменные характеризуются одним значением, как в обычной алгебре. Составные переменные могут иметь несколько значений. Примером составных переменных являются массивы.
Имена (идентификаторы)
Для обозначения констант, переменных, программных компонентов используются имена.
Имя – это последовательность латинских букв, цифр, а также символов "$" и "_" (подчеркивание).
На имена накладываются следующие ограничения:
1) число символов в имени не должно превышать 31;
2) имя начинается с буквы или “$”;
3) между символами не должно быть пробелов.
Рекомендуется выбирать имена так, чтобы они по возможности указывали на естественный смысл именуемых объектов. Например, координаты центра окружности х0 и y0 обозначить X0 и Y0, длину окружности обозначить L, а число π – Pi.
Описание переменных
Стандарт Фортрана 90/95 разрешает, для согласования со старыми версиями языка, описывать не все объекты, однако такой подход считается устаревшим и всячески не рекомендуется стандартом. Поэтому все используемые переменные в программе следует описывать, то есть явно указывать их тип. Предложение implicit none отменяет правила неявного определения типов и указывает, что в программе все объекты будут описаны явно. При этом переменные могут быть определенными и неопределенными. Если переменной при описании присваивается значение, то она определена, в противном случае – не определена.
В Фортране 90/95 определены следующие базовые типы:
integerцелый;
realвещественный;
complexкомплексный;
logicalлогический;
characterсимвольный.
Целый, вещественный и комплексный типы относятся к числовым типам данных. Объекты числового типа используются при вычислениях.
Логический и символьный типы относятся к нечисловым типам данных.
Объекты логического типа используются для представления результатов логических операций в операторах управления.
Символьные типы используются для представления текстовых объектов.
Оператор описания переменных числового типа имеет вид:
Тип :: список объектов данных, разделенных запятыми
или
ТИП, АТРИБУТЫ :: список объектов данных, разделенных запятыми,
где ТИП – имя типа объектов (integer или real );
АТРИБУТЫуказывают дополнительные свойства объектов. Далее будет использоваться только один атрибутparameterдля описания именованных констант. Еслиparameterприсутствует в списке атрибутов оператора описания, то и назначение начальных значений должно производиться тем же оператором.
Пример:
implicit none
integer :: a, b=10, c
real :: d=5.5, abc=-.4, x
real, parameter :: Pi=3.1415, g=9.81
Здесь integerи real – имена типов объектов.
a, bиc - имена переменных целого типа, из них переменнаяbопределена.
d,abc, x– имена переменных вещественного типа, из них переменныеdиabcопределены.
Переменным b, dиabcв операторах описания заданы значения, которые в программе могут быть изменены.
Pi и g – имена именованных констант, значения которых в программе изменять уже нельзя.
Данные логического типа объявляются с помощью следующего оператора описания:
logical :: список объектов данных, разделенных запятыми
Пример.
implicit none
logical :: flag1=.true., flag2=.false.
logical :: prizn
…
Переменные flag1, flag2 и prizn объявлены логическими, причем переменным flag1 и flag2 в операторе объявления типа присваиваются соответственно начальные значения “истина” и “ложь”.
Объекты символьного типа объявляются с помощью следующего оператора описания:
character (n) :: список объектов данных, разделенных запятыми,
где n – длина строки символов, т.е. сколько символов может содержать объект данных.
Если строка состоит из одного символа, то атрибут (n) можно опустить, т.е.
character :: список объектов данных, разделенных запятыми
Пример.
…
implicit none
character :: symbol
character (17) :: str=’это строка текста’
…
Переменные symbol и str объявлены символьными, причем переменной str сразу присваивается значение, которое впоследствии можно изменить. Переменная symbol может хранить только один символ.
У каждого типа есть несколько разновидностей, которые отличаются друг от друга диапазоном значений и физическим размером абстрактной ячейки памяти, соответствующей данному типу. Одна из разновидностей определяется как стандартная и назначается типу по умолчанию. Например, для 32-разрядных компьютеров диапазон допустимых значений целого типа стандартной разновидности составляет [-231, 231- 1], а для стандартной разновидности вещественного типа типичным является диапазон от 10-38до 1038и шесть-семь значащих цифр.
Для представления объектов логического типа достаточно одного бита, но, как правило, отводится не меньше байта. По умолчанию для представления объектов логического типа отводится 4 байта.
Длина строкового значения n может быть произвольной и изменяться в диапазоне [1, 32767]. Длина символьного значения в байтах равна длине строки.