
- •Lesson 1 Введение
- •Программа на Фортране-90
- •Комментарии
- •Соглашение об именах
- •Оператор Program – заголовок программы и приложения
- •Оператор End – конец программы
- •Среда проектирования программ
- •Компиляция и запуск приложения
- •Константы и переменные
- •Типы данных Целочисленные типы
- •Вещественные типы
- •Комплексные типы
- •Символьный тип
- •Логический тип
- •Переменные
- •Implicit None
- •Именованные константы
- •Ввод и вывод под управлением списка Вывод на экран
- •Ввод с клавиатуры
- •Диалог для ввода исходных данных
- •Работа с файлами
- •Оператор присваивания
- •Выражения
- •Числовые (арифметические) выражения
- •Тип результата арифметического выражения
- •Integer*2
- •Integer*8
- •Операция возведения в степень
- •Стандартные функции для работы с числами
- •Символьные выражения
- •Функции, используемые в символьных выражениях
- •Примеры символьных выражений
- •Логические выражения
- •Условие попадания точки в заданную область
Ввод с клавиатуры
Чтобы программа могла выполняться с разными наборами исходных данных, следует предусмотреть ввод этих данных в программу. Одна из возможностей этого – ввести данные с клавиатуры с помощью оператора Read.
Read(*,*)список ввода
Оператор состоит из ключевого слова Read, за которым следуетсписок ввода. Первый символ «*» после ключевого слова означает, что информация вводится с клавиатуры. Второй символ «*» означает, что формат ввода определяется компилятором по умолчанию. Переменные, значения которых вводятся, перечислены всписке вводаи разделены запятыми.
Пример:
Read(*,*) a, b
При выполнении оператора Readв программе возникает пауза, позволяющая набрать на экране вводимые значения переменных. Количества и типы набираемых значений должны соответствовать количеству и типам переменных в списке ввода оператора Read. После окончания набора и нажатия клавиши <Enter> данные с экрана вводятся в переменные из списка ввода и работа программы продолжается. Если список ввода пуст, для прекращения возникшей паузы следует нажать клавишу <Enter>.
Диалог для ввода исходных данных
Пауза, сопровождающая выполнение оператора Read(*,*), может обескуражить пользователя, если не пояснить, чем она вызвана. Грамотный ввод данных с клавиатуры предполагает запрос данных перед вводом. Для запроса используется операторWrite(*,*). Последовательное выполнение операторовWrite иRead будем называтьдиалогом. Пример диалога:
Write(*,*) "Введи два целых положительных числа"
Read(*,*) a, b
Во время паузы, возникшей при выполнении оператора Read,запрос на экране покажет пользователю, чего «ждет» компьютер.
Работа с файлами
Далеко не всегда удобно вводить данные в программу с клавиатуры и выводить их на экран компьютера. Для подготовки исходных данных и сохранения результатов работы программы используются файлы.
Файл – последовательный набор данных, хранящийся на каком-либо физическом носителе и имеющий собственное имя.
Перед началом работы с файломнеобходимо связать его имя с определенным номером (номером устройства). Для этого служит операторOpen. Примеры:
Open(1, file=’in.txt’)
Open(2, file=’out.txt’)
Здесь имя файла ’in.txt’ связано с номером устройства 1, а файла’out.txt’– с номером устройства 2. Чтобы прочитать или записать информацию в файл, нужно в операторахreadилиwriteиспользовать номер устройства:
Read(1,*) a, b
Write(2,*) "a =", a, " b =", b, " a+b =", a+b
Второй символ «*» в операторах ReadиWriteозначает, что формат выбирается компилятором по умолчанию.
Оператор Closeотсоединяет файл от логического устройства (“закрывает” файл):
Close (номер устройства)
Не обязательно явно закрывать открытые файлы. При нормальном завершении программы каждый файл, открытый в ней, закрывается.
Оператор присваивания
Оператор присваивания записывается в виде: переменная = выражение.
Оператор выполняется следующим образом: сначала вычисляется значение выражениясправа от «=», затем полученный результат присваиваетсяпеременнойслева от «=». После выполнения присваивания прежнее значение переменной утрачивается.
В отличие от математических формул знак «=» трактуется не как тождество, а как присваивание. К моменту выполнения оператора переменные, входящие в выражение, должны быть определены.
Нечисловые типыпеременной и выражения должны быть одинаковы.
Тип вычисленного значения зависит от операций и типов операндов; если он не совпадает с типом переменнойслева от знака присваивания, то выполняется преобразование значения вычисленного выражения к типу переменной.
Примечание.Поскольку выражение вычисляется раньше, чем выполняется присваивание, одно и то же имя может быть указано в операторе одновременно слева и справа от знака «=». Например,k=k+1означает, что текущее значение переменнойkувеличивается на 1.
Примеры операторов присваивания.
Н=14
Y=sin(x)
Line = ‘Fortran’