Научная литература
booksshare.net -> Добавить материал -> Математика -> Боглаев Ю.П. -> "Вычислительная математика и программирование " -> 43

Вычислительная математика и программирование - Боглаев Ю.П.

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 37 38 39 40 41 42 < 43 > 44 45 46 47 48 49 .. 168 >> Следующая

1М = 1 ХМ=Х(1)
DO 1 1 = 2,100 if (xm.lt:x(i)) THEN
IM = I
XM=X(I)
ENDIF 1 CONTINUE
Следующей конструкцией структурного логического оператора является
IF (логическое выражение) THEN
1-я группа операторов
Первая группа операторов выполняется, если логическое выражение истинно, вторая группа—если ложно. Эта конструкция полностью отвечает 2-й базовой логической схеме (см. гл. 2).
Например, вычисление функции
ENDIF
ELSE
2-я группа операторов
ENDIF
можно оформить с помощью этой конструкции так:
125
REAL FUNCTION Y(X)
REAL X
IF (X.GE.0.) THEN Y=EXP(—X*X)
ELSE
Y=EXP(X)
ENDIF
RETURN
END
«Хорошим стилем» в оформлении программ является сдвиг операторов, принадлежащих своему IF или ELSE, как это сделано выше в примере.
Наконец, последней конструкцией является вложенные логические операторы. Простейшей такой конструкцией является
IF (логическое выражение) THEN
ELSE IF (логическое выражение) THEN
ELSE
ENDIF
ENDIF
Заметим, что каждый оператор IF должен иметь закрывающий его оператор END IF, а после операторов IF, ELSE, ELSE IF могут отсутствовать операторы.
Например, вычисление функции
е*, х>2,
у=/(х)=ч sinx, 0<х<2, cosx, х<0,
можно оформить с помощью этой конструкции так:
REAL FUNCTION Y(X)
REAL X
IF (X.LT.2) THEN ELSE IF (X.GE.O) THEN Y=SIN (X)
ELSE
Y=COS(X)
ENDIF
ELSE
Y = EXP(X)
ENDIF
RETURN
END
126
\
V.,
Структурные логические операторы, образующие один уровень вложения, сдвигаются вправо на одинаковое число позиций. Например, если имеется три уровня вложения, то следует операторы представлять в форме
IF (LI) THEN gi
IF (L2) THEN g2
IF (L3) THEN g3
ELSE IF (L4) THEN g4
ELSE
g5
ENDIF
ELSE
g6
ENDIF
ELSE
g7
ENDIF
ENDIF
Заметим, что приведенная структура операторов эквивалентна логической схеме рис. 3.2, где L—логические выражения, g—операторы, истине логических выражений соответствует: да. Если, например, логическое выражение L1 ложно, то выполняется группа операторов g7 и затем происходит выход из всей схемы.
На основании приведенного примера можно заключить, что на фортране 77 можно написать достаточно сложные логические схемы, используя удобные структурные логические операторы.
В качестве основного ограничения использования вложенных логических операторов выступает следующее правило: недопустима передача управления извне IF или ELSE оператору, находящемуся внутри, т. е. без проверки логического выражения.
Ни один из операторов группы gl не может быть оператором GO ТО, передающим управление какому-либо оператору группы g2.
127
3.5.3. Расширение возможностей ввода—вывода. Единицей ввода— вывода в фортране 77 является запись. Физическое представление записи зависит от конкретной ЭВМ. Записью может быть строка печати или строка файла на магнитном диске.
Записи делятся на форматные и бесформатные. Последняя запись файла называется записью конца файла. Файлу можно дать имя, связать с определенным каналом ввода — вывода с помощью логического номера устройства. Запись в файл можно ввести, вывести в двух режимах: в последовательном доступе, в прямом доступе. В последовательном доступе N записей переписывается в файл последовательно начиная с 1-й: 1, 2, ..., N, записи считываются также последовательно в том же порядке 1, 2, ..., N. В прямом доступе можно ввести ц>и вывести любую запись, указав номер п, 1 ^ п ^ N.
Файл имеет указатель, который при первом обращении к нему или при открытии файла устаналивается на запись номер 1. При каждом следующем обращении указатель передвигается по записям до встречи записи конца файла.
В последовательном файле записи должны быть либо только форматные,, либо только бесформатные, длина записей может быть различной. В файле прямого доступа записи должны быть еще и одинаковой длины.
Обращение к файлам последовательного и прямого доступа — различное.
Общий вид операторов READ и WRITE в фортране 77 следующий:
READ ((управляющий список)) (список ввода),
WRITE ((управляющий список)) (список вывода),
где управляющий список может состоять из элементов
UNIT =, FMT = , REC = , END = , ERR = , IOSTAT =
или в переводе на русский язык
устройство = , формат = , запись = , конец файла = , ошибка = , статус вв-вы = ;
в правой части равенства помещаются элементы согласно Приложению 2.
Частным случаем ввода, вывода форматной записи является рассмотренный в 3.2. пример
READ (UNIT = 5, FMT = 1) X, Y 1 FORMAT (2F6.3)
WRITE (UNIT = 6, FMT=1) А, В, С
где опускались левые части равенств управляющего списка
READ (5, 1) X, Y 1 FORMAT (2F6.3)
WRITE (6, 1) А, В, С
Эта форма правильна и в фортране 77, но если в управляющем списке отсутствует UNIT = , то номер устройства должен стоять
128 N
V,
на первом месте, если отсутствует FMT = , то метка формата должна быть на втором месте списка. Например,
READ (5, 1, REC= 15, IOSTAT = I, ERR=10, END = 20) X
означает ввод на устройстве 5 по формату с меткой 1 записи 15, в случае ошибки переменной I будет присвоено положительное значение, равное индексу ошибки ввода, или отрицательное, если обнаружен конец файла, при безошибочном вводе или если не найден конец файла переменная I будет равна нулю.
Предыдущая << 1 .. 37 38 39 40 41 42 < 43 > 44 45 46 47 48 49 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed