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

Правило:

Ввод и вывод текстовой информации только форматный.

Ввод-вывод текстовой информации осуществляется по спецификации А:

Aw

где w– количество позиций, из которых считывается текстовая информация или куда выводится текстовая информация.

Мини задача:

Написать программу, в которой исходные данные читаются из файла, имя которого нужно вводить с клавиатуры.

CHARACTER*8 IMFILE

WRITE (6,*)’Введите имя файла исходных данных’

READ (5,10) IMFILE

10 Format (a8)

OPEN (UNITE=4, FILE=IMFILE) Обратите внимание, что переменная IMFILE записывается без кавычек

READ (4,*) A,B,C

С экрана будет вводиться форматно имя файла (например, DAN.DAT) и присваивается текстовой переменнойIMFILE(имя открываемого файла). Текстовая информацияDAN.DATвводится без кавычек и считывается по форматуA8.

Допускается использовать спецификацию А без количества позиций w, например:

10 Format (a)

Тогда ширина считываемого поля принимается равной длине, указанной в операторе CHARACTER.

Можно использовать форматизированный ввод без оператора FORMAT. Например:

READ (5,’(A)’)IMFILE

Процесс ввода текстовой информации и размещения ее в памяти ЭВМ протекает следующим образом. Считанная по формату А информация в количестве символов Awсначала помещается в буфер ЭВМ, а затем записывается в отведенное поле памяти.

Если имя файла меньше 8 символов и набрано без пробела впереди (в конце можно) – например,DAN.DAT , то информация прочитается правильно. Но если впереди поставить пробел ( -DAN.DAT), то файл DAN.DAT на диске никогда не найдём. Это происходит из-за того, что для ЭВМ имя DAN.DAT совершенно отличается от имени этого же файла, но с пробелом впереди.

Если ввод имени файла осуществляется по формату А8, но:

1) Вводится меньше 8 символов, то они помещаются в переменную imfile, а недостающие до 8 позиции дополняются пробелами.

2) Вводится имя большего размера, чем 8 позиций, то будут восприняты только первые 8 символов и они будут записаны в переменную imfile;

Задача:

Файл с именем TEX.DAT содержит две записи: фамилию и адрес.

Сёмин А.В.

ул. Могилёвская д.37 кв.6

Задача: Прочитать первую строку как переменную, вторую строку как текстовый массив. Вывести считанную информацию форматно.

Разобьём строки на переменные, в которые мы и будем производить считывание.

Сёмин А.В.

АT

ул. Могилёвская д.37 кв.6

В1 В2 В3 В4 В5

CHARACTER*10 AT,B(5)*5

С Пример 1: w=len

Количество позиций ширины поля w оператора Format совпадает с длиной переменной, описанной в CHARACTER*10 AT,B(5)*5

OPEN (4, FILE=’TEX.DAT’)

READ (4,8) AT,(B(J),J=1,5)

Открываем TEX.DAT, читаем из него переменную АT и массив В.

8 Format (a10/5a5)

WRITE (6,8) AT,B

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

При вводе ширина полей считывания спецификации оператора FORMATравна длине описания текстовых переменных в оператореCHARACTER.

Правильный вывод:

WRITE (6,9) AT,B

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