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

9 Format (1x,a10/1x,5a5)

В результате такого вывода получим:

Сёмин А.В.

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

Это наиболее благоприятный вывод текстовой информации, когда w=len.

w – ширина поля вывода.

len – длина текстовой переменной.

Рассмотрим случай, когда wменьше длины записи (w<len).

С Пример 2: w<len. При чтении информации.

Возвратимся в начало файла и прочитаем информацию с другим оператором FORMAT.

REWIND 4

READ (4,9) AT,B

  1. FORMAT (A8/5A4)

w

Переменной АTприсвоится значение аt=Сёмин А.В..

len=10 позиций

Так как w=8, аlen=10, то при чтении сначала будут восприняты первые 8 символов из первой строки и при размещении этой информации в память ЭВМ в переменную АTсправа произойдёт дополнение двумя пробелами до 10 позиций.

При чтении второй строки по формату 6A4 будет прочитано шесть раз по 4 символа текста и при заполнении памяти массива В каждый элемент будет дополнен пробелом.

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

В(1) В(2) В(3) В(4) В(5) не прочитает

Переменным массива В присвоятся значения:B(1)= ул. (дополнило одним пробелом); В(2)=Моги (w=4, аlen=5, поэтому считаетМогии недостающую позицию до 5 дополнит пробелом); В(3)=лёвс (дополнило пробелом); В(4)= ….

Если прочитанную и помещенную в память ЭВМ информацию вывести при помощи ранее используемых операторов

WRITE(6,10)AT,B

  1. FORMAT(1X,A10/1X,5A5)

То получим :

Семин А

ул._ _Моги_левс_кая_ _д.37_ _кв. _ _

Рассмотрим случай, когда w>len:

С Пример3: w>len. При чтении информации.

REWIND 4

READ (4,11) AT,B

  1. FORMAT (A12/5A6)

w=12

Прочитает первую строку:w=Сёмин А.В.

лen =10

Из первой строки по формату А12 будет прочитано 12 символов, включая два дополнительных пробела. При занесении в память ЭВМ

запишется только правая часть воспринятой информации: АT=мин А.В.

Две буквы слева будут утеряны.

Аналогично при чтении второй строки по формату 6А6 в буфер будет восприниматься по 6 символов текста

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

В(1) В(2) В(3) В(4) В(5)

А при занесении в память ЭВМ в каждом элементе массива В будет утеряно по одной букве слева.

Переменным массива В присвоятся значения:B(1)=л. Мо; В(2)=илёвс; В(3)=ая д.;

В(4)= ….

Если вывести эту информацию при помощи операторов

WRITE (6,9) AT,B

9 Format (1x,a10/1x,5a5)

то получим:

мин А.В.

л. Моилёвсая д.7 кв.

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

Предположим, в выше приведенном примере мы правильно прочитали переменную АTдлиной 10 символов и в памяти ЭВМ она содержит текст:

Семин а.В.

Выведем эту переменную с различной шириной поля оператора FORMAT .

C Пример 4. : w>len , При вводе текстовой переменной.

WRITE(6,9)AT

  1. FORMAT (1X,A12)

В результате получим:

len= 10

Семин А.В.

w= 12

Так же, как и при выводе информации целого и вещественного типа, если ширина поля больше, чем занимает место выводимая информация, то она прижимается к правому краю поля.

C Пример 5. :w < len. При выводе текста.

WRITE(6,10)AT

  1. FORMAT(1X,A8)

Выводимая информация не помещается в отведенное поле. При выводе цифровой информации во всех восьми позициях отпечатались бы символы “*”. При выводе текста отпечатается только левая часть текстовой переменной, которая помещается в отведенное поле. Поэтому получим :

Семин А.

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