- •«Информатика»
- •21. Оператор format
- •Спецификация X
- •Спецификация I
- •Правило:
- •Разделители
- •Спецификация f
- •Особенности набора числовых данных при вводе информации
- •Использование повторителей в операторе format
- •Примечание
- •Вывод по спецификации Fw.D
- •Ввод по спецификации Ew.D
- •Вывод информации по спецификации Еw.D
- •Примечание: При бесформатном выводе данные автоматически выводятся по спецификации е15.7. Ввод и вывод информации по спецификации Gw.D
- •22. Подпрограммы
- •23. Оператор-функция
- •24. Подпрограмма function
- •Правило:
- •Правило:
- •Мини задача 1:
- •If(y1(1).Gt.Y1(2)) write(*,*)'Максимум на левой границе
- •If(y1(100).Gt.Y1(99)) write(*,*)'Максимум на правой границе
- •25. Подпрограмма subroutine.
- •Примечания:
- •26. Способы передачи данных в подпрограмму.
- •If (логическое выражение 1) return 1
- •If (логическое выражение 2) return 2
- •Примечание:
- •27. Передача данных посредством оператора common
- •Правило:
- •28. Использование библиотек стандартных программ (бсп)
- •If(ier.Eq.1) write (6,*)’Нет решения. Проверьте исходные данные’
- •If(ier.Eq.2) write (6,*)’Неверное количество уравнений’
- •29. Графическое моделирование функции
Правило:
При форматном выводе в начале каждой новой строки нужно отступить хотя бы на один пробел, потому что первая позиция строки служит для управления режимом вывода информации.
При вводе информации можно пропускать, не читая, некоторые позиции. Например:
READ(5,6) K,L
6 FORMAT(2X, I3, 4X, I5)
разделители
Считывать значения, вводимые с клавиатуры, будем следующим образом:
Отступим две позиции от начала строки, из трех позиций прочитаем число и поместим его в переменную K, пропустим 4 позиции и прочитаем из следующих пяти позиций число в переменнуюL. Т.е. данные должны быть представлены следующим образом:
123 12345
2Х 4Х
I3I5
Если в конце строки ввести лишние цифры, то они не будут восприняты ЭВМ.
Если ввести не все цифры, то ЭВМ воспримет их как пробелы. Компилятор преобразовывает пробелы в нули и при неправильном вводе данных в программу считается, например не 1, а 100.
Так:
– считает как 0;
999 – максимальное число, которое можно читать по формату I3.
Разделители
Разделителем оператора FORMATможет быть запятая («,») или символ слэш («/»).
Символ слэш, расположенный в тексте оператора FORMAT, означает переход на новую строку или новую запись.
Пример:
6 FORMAT(2X,I3/4X,I5)
Первая позиция каждой строки при выводе информации служит для управления печатью.
Если в первой позиции стоит символ (пробел) или текстовый символ, то вывод осуществляется в следующую строку после текущей. При этом информация, попадающая в первую позицию,теряется.
Если в первую позицию заносится «0» (ноль), то информация выводится через одну строку).
Если заносится в первую позицию «1» (единица), то дальнейший вывод информации будет осуществляться с первой строки следующей страницы. Одна страница при выводе на печатающее устройство содержит 63 строки, а при выводе на экран – 25 строк.
Если в первой позиции символ «+», то вывод информации на принтер осуществляется без прогона строк на одно и то же место.
Пример:
WRITE(6,9) A,B
FORMAT(‘+’,F10.3,F6.2)
После выполнения оператора FORMATпроизойдёт автоматический переход на следующую строку для дальнейшего вывода информации, но можно установить гашение перехода на следующую строку с использованием символа обратный слэш («\»).
Пример:
WRITE(6,10)
FORMAT(1X,’Введите значение А=’\)
READ(5,*)А
Данный блок сработает следующим образом: появится надпись «Введите значение А=». Вводимое число будет отображаться сразу после знака равно (из-за знака обратный слэш). Если не использовать обратный слэш, то вводимое число будет отображаться на следующей строке, что менее наглядно.
Для вывода информации в конкретное место строки используется спецификация Т:
Tn
где n– номер позиции, начиная с которой будет обрабатываться информация.
Пример:
FORMAT(T5,I3) FORMAT(4X,I3)
Ввод-вывод данных вещественного типа осуществляется по спецификации Fили Е.
Спецификация f
Используется для ввода-вывода данных вещественного типа. Позволяет вводить и выводить информацию с фиксированной десятичной точкой.
Общая запись спецификации F:
Fw.d
где w– количество позиций, отведенных под число;
d– количество позиций изw, в которых размещается дробная часть числа.
Пример:
READ(5,11) A,B
11 FORMAT(F6.2,2X,F8.4)
Информация для ввода по спецификацииFможет быть представлена в 2-х формах:
1) без десятичной точки
2) с десятичной точкой
Первый вариант: ввод информации осуществляется без десятичной точки с первой позиции.Предположим, что на экране дисплея мы набрали следующую информацию:
01234567890123456789
d=2 2X d=4
w=6w=8
F6.2F8.4
Ввод значения переменной А производится по формату F6.2 (смотри пример). Это значит, что первое число будет читаться из первых 6 (w=6) позиций, из которых 2 последние позиции (d=2) будут считаться дробной частью вводимого числа. Переменной А присвоится значение А=0,12345*103. Затем будут пропущены два символа 6 и 7 (так как используется пропуск символов по формату 2X) и произведётся считывание значения переменной В по форматуF8.4, т. е. её значение составит: В=0,89012345*104.Последние цифры 6789 не входят в перечень описанных в операторе FORMAT полей, считываться и обрабатываться не будут.
Второй вариант: информация подготавливается с десятичной точкой. В этом случае параметр d не играет никакой роли, а число читается из отведенного для него количества позиций w.
Примеры:
для спецификации F6.2 можно задавать численные данные:
–123.5
99999.
.12345
.12 12 – пробелы внутри числа использовать не рекомендуется, т.к. на некоторых версиях компиляторов информация воспринимается не корректно.
При вводе данных с десятичной точкой в виде:
1. 234567890123. 456
d=2 2X d=4
w=6w=8
F6.2F8.4
получим значения переменных А=1,2345 В=890123,4. Цифры 6 и 7 будут пропущены по спецификации 2Х. Последние цифры 5 и 6 не прочитаются, так как выходят за пределы обрабатываемых полей.