Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
57
Добавлен:
02.05.2014
Размер:
527.87 Кб
Скачать

Особенности набора числовых данных при вводе информации

При бесформатном вводе данных вещественного типа при наборе целой константы и нажатии клавиши "ввод" число воспринимается как вещественное. Например:

READ(5,*)A

При вводе числа 17 и нажатии клавиши "ввод" переменной А будет присвоено число 0.1700000Е+02, т.е. вещественное число 17.

При форматном вводе данных без десятичной точки преждевременное нажатие клавиши "ввод" до заполнения форматного поля данными может привести нас к нежелательным результатам. Предположим, по формату F4.1 будем набирать вводимые данные и сразу после набора нажимать клавишу "ввод".

READ(5,3)A

  1. FORMAT(F4.1)

Набираем: 1"ввод". Число А воспримется как 0,1.

Набираем: 11"ввод". Число А воспримется как 1,1.

Набираем: 111"ввод". Число А воспримется как 11,1.

Набираем: 1111"ввод". Число А воспримется как 111,1.

Только последняя введенная информация заполнила поле ввода из 4 позиций и число воспринялось правильно.

Если в поле ввода набирать символ "пробел", то на персональных ЭВМ он не воспринимается. Будем вставлять символы "пробел" при вводе данных для вышеприведенного примера:

Набираем: 2---"ввод". Число А воспримется как 0,2.

Набираем: 2--2"ввод". Число А воспримется как 2,2.

Набираем: 2-22"ввод". Число А воспримется как 22,2.

Набираем: 2-2-"ввод". Число А воспримется как 2,2.

Использование повторителей в операторе format

Повторители рекомендуется использовать в тех случаях, когда форматно вводится или выводится несколько переменных. Используя повторители, строка оператора FORMATполучается короче и нагляднее. Работу с использованием повторителей рассмотрим на примере.

Пример:

READ(5,8) A,B,X,V

8 FORMAT(F4.2,3F5.3)

В этом примере переменная А будет читаться по формату F4.2, а переменныеB,X,Vбудут считываться по форматуF5.3, который из-за повторителя (цифра 3) сработает, как сработала бы следующая строка:

8 FORMAT(F4.2,F5.3, F5.3, F5.3)

В данном примере повторитель (цифра 3) заменил триF5.3.

Кроме того, повторители могут использоваться для группы форматов:

READ(5,9) X,B,C,K,D1,D2,M

9FORMAT(F6.2,2(2F4.2,I3))

повторитель, который обозначает,

что группа в скобках повторяется два раза

Порядок считывания по форматам: Х – по F6.2;B,C– поF4.2;K– поI3;D1,D2 – поF4.2;M– поI3.

Примечание

Если группа форматов заключена в скобки и число повторителей перед скобкой не указано, то группа форматов будет повторяться бесконечное число раз, до тех пор, пока не будет исчерпан список оператора ввода/вывода READ/WRITE.

Все данные должны быть расположены в одной строке. Для перехода на другую строку при вводе (выводе), информации в операторе FORMATв качестве разделителя используется символ “/” – слэш.

Рассмотрим, как можно считывать информацию из нескольких строк на дисплее. Для правильного ввода данных из нескольких строк необходимо:

1) правильно составить строку с оператором FORMAT(правильно расставить символы перехода на другую строку /, правильно выбрать спецификацию ввода/вывода данных –I,F,E,Gв зависимости от типа вводимых данных)

2) подготовить и правильно ввести необходимую информацию.

Примеры считывания из двух строк:

  1. FORMAT(F6.2,2(2F4.2/I3))

В последнем примере необходимо вводить информацию следующим образом:

Если разделитель «/» поставить после I3, т.е.FORMAT(F6.2,2(2F4.2,I3/)), то информацию необходимо будет представить в виде:

При вводе информации суммарная длинна одной строки (одной записи) не может превышать 80 символов.

При выводе информации на печатьсуммарная длинна одной строки может быть 120, 132 или 254 символов, в зависимости от типа принтера.

При выводе информации на экран дисплеядлина одной строки 80 символов.

Если список спецификаций оператора FORMATпо своему количеству больше, чем количество переменных в списке ввода, то используются только первоначальные спецификации из оператораFORMAT, лишние спецификации не используются.

Если список ввода/вывода по своему количеству больше, чем количество спецификаций оператора FORMAT, то после использования всех спецификаций оператор FORMAT повторит свою работу, начиная с первой открывающейся скобки и с новой строки. Это будет повторяться до тех пор, пока не будет исчерпан список ввода/вывода.

Пример:

READ(5,9) X,B,C,K,D1,D2

9 FORMAT(F6.3,F3.1,F4.2,I3)

В данном примере в списке спецификаций оператора FORMATчетыре спецификации (F6.3,F3.1,F4.2,I3), а список ввода содержит 6 переменных (X,B,C,K,D1,D2). Как видно список ввода больше списка спецификаций, поэтому вводимую информацию необходимо подготовить следующим образом:

Соседние файлы в папке Программирование на Фортране