Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Бесформатный вывод данных в текстовый файл

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

1) целые значения выводятся в виде: -X...X (выводится только минус),

где X — разряды выводимого значения; при этом выделяются позиции для всех разрядов выводимого значения и его знака;

2) вещественные значения типа Real выводятся в виде:

-Х.Х...ХЕ±ХХ

мантисса порядок

количество выводимых разрядов мантиссы, т. е. разрядов числа до и после точки равно 11: один разряд до точки и 10 после нее. Е - признак начала по­рядка, который выводится со знаком + или -;

3) символы и строки выводятся без изменения;

4) значения логических выражений в зависимости от их значения выводятся в виде слов TRUE или FALSE.

Пример бесформатного вывода значений различных типов:

CONST А =123; AR =-45.678; В ='С'; С ='STROKA'; D =TRUE; E = FALSE;

BEGIN

WRITELN('A = ', A, ' AR = ', AR, 'B=', ' " ' B, ‘’ ' ', 'C=', C, 'D=', D, 'E=', E);

END.

Результатом работы приведенного оператора Writeln будет: А = 123 AR = -4.5678000000Е+01 В = 'С' С = STROKA D = TRUE E = FALSE

Форма выводимого вещественного значения зависит также от используемых типов выводимого значения: single, real, double или extended. Для использо­вания всех вещественных типов необходимо включение числового сопроцессора директивой компилятора N+. Для использования вещественных значений только типа Real это не требуется. Далее по тексту форма вывода значений и количест­во выводимых разрядов числа при использовании данных типа Real даны без скобок, а для типа Extended - в скобках.

Форматный вывод данных в текстовый файл

Форматы для вывода данных в текстовый файл

Для формирования документа в требуемой форме надо использовать формат­ный вывод. Элемент списка данных с форматом для вывода значений может быть в виде:

X: W [: d ]

где X - выражение для вычисления выводимого значения;

W, d - выражения (в частном случае - имена переменных или десятичные константы) целого типа; W определяет минимальное поле, в котором будет размещено выводимое значение; d - в том числе поле для дробной части числа.

Например: Write (А: 12: 4, В: 13);.

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

Форматный вывод целых, символьных, строковых и логических значений

При выводе целых чисел:

1) если поле W не менее требуемого для размещения значения, то выводимое зна­чение прижимается в этом поле вправо;

2) если W недостаточно для размещения выводимого значения или знака -, то ав­томатически выделяется поле для размещения значения и его знака -; для зна­ка + место не выделяется. Например:

А:=-12345; Write ('А= ', А:3); выведет А =-12345.

При выводе символов выделяется поле, определенное значением W, в котором значение символа прижимается вправо. Например:

В: = ' С '; Write (' В= ', ' ' ' ', В: 4, ' ' ' '); выведет В= ' С '.

Для вывода нескольких пробелов, например между двумя выводимыми арифметическими значениями, можно использовать следующее обращение к процедуре: Write (А, ' ': 5, В);.

В примере между значениями переменных А и В будет 5 пробелов. Например: А:.= 1234; В:=5678; Writeln (А, ' ': 5, В);.

В результате будет выведено: 1234 5678.

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

CONST А = 123; В = 'С'; С = 'STROKA1; D = TRUE; E = FALSE;

BEGIN

WRITELN('A=', A:4, 'B=', ' ' ' ': 2, В: 2, ‘’’’, 'C=',C:7, ' D = ', D: 5,'E=', E:6)

END.

Результатом работы приведенного оператора Writeln будет:

А = 123 В = ' С ‘ С = STROKA D = TRUE E = FALSE

Форматный вывод вещественных значений в форме с плавающей точкой

Для вывода вещественных значений можно использовать форматы в виде: либо только значение W, либо значение W и значение d. Если для вывода вещест­венного значения используется формат, содержащий значения W и d, значение выводится в форме с фиксированной точкой, т. е. в виде целой и дробной части числа, разделенных точкой. Если для вывода вещественного значения использу­ется формат, содержащий только поле W, значение выводится в форме с пла­вающей точкой (в экспоненциальной форме), т. е. в виде мантиссы и порядка.

Порядок числа п — это показатель степени, в которую надо возвести 10 - ос­нование системы счисления, и для получения значения числа в форме с фикси­рованной точкой надо 10" умножить на мантиссу. Примеры чисел в форме с плавающей точкой (в экспоненциальной форме) и в традиционной форме (с фиксированной точкой) даны в таблице.

Примеры вещественных значений

 

Значение числа в форме с плавающей точкой Соответствующая ему традиционная форма Значение числа с фиксированной точкой
-1.2345Е+03 -1.2345 ·103 -1234.5
5.678Е-02 5.678·10-2 0.05678

 

Например: А:= -123.456; Write ('А= ', А: 12, ' А= ', А: 9: 3 };. Оператор Write выведет: А = -1.23456Е+02 А = -123.456

При выводе вещественных значений с форматом, содержащим только W - по­ле для вывода значения в форме с плавающей точкой:

1) если W достаточно для размещения выводимого значения, то в этом поле веще­ственное значение выводится в виде:

W - размер поля для вывода


_..._-Х.Х...ХЕ+ХХ _..._-Х.Х...ХЕ±ХХХХ

       
   
 


мантисса порядок для типа extended

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

а) 11 для типа Real; если поле > 17, остаются пробелы

б) 17 для типа Extended; если выделенное поле равно 25, оно вмещает 17 разрядов мантиссы (один – до точки и 16 после точки); если поле более 25, то число с мантиссой из 17 разрядов смещается в выделенном поле вправо, оставляя слева пробелы;

2) если W < 8 (10) и недостаточно для размещения всех разрядов выводимого значения, то принимается W = 8 (10); округленное значение выводится в виде:

–Х.ХЕ ± ХХ (–Х.ХЕ ± ХХХХ)

real extended

3) если W > 8 (10) и оно недостаточно для размещения всех разрядов числа, то чис­ло округляется до количества разрядов, которое можно разместить в заданном по­ле, и выводится в виде –Х.Х...ХЕ ± ХХ (–Х.Х...ХЕ ± ХХХХ). Например:

А= 12.345; Write ('А=’, А:10);

выведет А = 1.235Е+01.

Выбор значения W – размера поля для размещения числа в форме с плаваю­щей точкой с требуемой m – разрядной мантиссой производится, исходя из требуе­мой разрядности мантиссы. Значение W для данных типа Real можно определить по формуле W = m + 6; где m - количество разрядов мантиссы;

6(8) – количество позиций для размещения порядка, знака числа и точки, для данных типа Real без (6) директивы N+ и с нею (8).

Таким образом, для вывода значения типа Real с 5-разрядной мантиссой не­обходимо W=5 + 6 = ll; для вывода числа с 8-разрядной мантиссой значение W = 8 + 6 = 14.

Пример вывода вещественных значений в форме с плавающей точкой:

CONST А:= 12.345; В:= 45.6789123; С;= 345.1234568;

BEGIN WRITELN ('А =', А: 11, ' В =', В: 14, ' С =', С: 14) END.

Результатом вывода будет:

А = 1.2345Е+01 В = 4.5678123Е+01 С = 3.4512347Е+02

Форматный вывод вещественных значений в форме с фиксированной точкой

Наиболее традиционен вывод вещественных значений в форме с фиксирован­ной точкой, т. е. в виде целой и дробной части. Для вывода вещественного зна­чения в форме с фиксированной точкой надо использовать форматы в виде W и d. При этом:

1) если W и d достаточны для вывода значения, то оно формируется в виде

W - размер поля для

_..._–Х…Х.Х...Х

d – количество дробных разрядов

мантисса – значение числа

Например, значение А = 3.141592 и выводится с помощью

Write (F, 'А = ', А: 10: 6);

В файл F будет выведено А = __3.141592, где__– пробелы;

2) если d - количество позиций для вывода дробных разрядов мало, недостаточно для вывода всех дробных разрядов значения, то дробная часть округляется до количества разрядов, которое определяется значением d; например: А: = 3.141592; Write ('А = ',А:7:3);в результате будет выведено А= 3.142.

3) если при выводе числа поле W недостаточно для вывода целых разрядов выво­димого значения, то выделяется дополнительное поле для вывода всех целых разрядов числа и знака -; для знака + поле не выделяется; например: А:= –1234.567; Write (' А =', А: 5: 3); будет выведено А = –1234.567– для выво­да целой части числа и знака числа дополнительно выделено 4 позиции;

4) если d < 0, то оно игнорируется и число выведется в формате с плавающей точкой в поле W. Например, то же значение А выводится с помощью

Write (F, 'А= ', А: 10: – 6);

В файл F будет выведено А= –1.235Е+03

С помощью Write (F, 'А= ', А: 13: –6); будет выведено:

А=-1.234567Е+03

5) если для значений типа Real d > 11(18), то оно уменьшается до d= 11 (18 -для типа extended).

Например, значение типа extended А = 3.141592 и выводится с помощью

Write { F, 'A= ', А: 22: 20);

В файл F будет выведено число с 18 дробными разрядами в виде:

А = _3.141592000000000000

Вывод символов псевдографики

Вывод на экран или в текстовый файл символов псевдографики можно осу­ществить несколькими способами с помощью:

1) функции CHR;

2) кодов символов в списке данных оператора Write;

3) самих символов в списке данных оператора Write.

Если в списке данных оператора Write в качестве элемента списка данных используется обращение к функции CHR, то в файл будет выведено значение символа, код которого дан в качестве фактического параметра функции. Если в списке данных оператора Write приведен код символа с предшествующим ему символом #, то в файл или на экран выводится значение соответствующего ему символа. Например, код символа || = 186 и размещение в списке данных #186 выведет символ ||. Для вывода того же символа можно поместить в список дан­ных для вывода само значение символа в апострофах: ||. Очевидно, третий спо­соб вывода символа псевдографики на экран наиболее лаконичен. Коды симво­лов псевдографики даны в табл. 4.2.

Пример трех разных способов вывода строки результатов с разделительными линиями между значениями различных граф таблицы: с помощью CHR, кодами с # и символами:

WRITELN (FR, CHR(186), NZ: 10, CHR(179): 8, ' ', GR, CHR(179): 2, 1 ', FIO, CHR(179): 13 - LENGTH(FIO), RS: 9: 2, CHR(186): 4);

WRITELN (FR, #186, NZ: 10, #179: 8, ' ', GR, #179: 2,

1 ', FIO, #179: 13 - LENGTH(FIO), RS: 9: 2, #186: 4);

WRITELN (FR, ' ||', NZ: 10, '|':8, ' ', GR, 4':2,

' ', FIO, 'I1: 13 - LENGTH (FIO), RS: 9: 2, ' ||': 4);

Результат вывода данных одной строки таблицы:

|| 88103 | ЭВМ1-1 | ИВАНОВ И.И. | 4000.00 ||

 

<== предыдущая лекция | следующая лекция ==>
Вывод данных в текстовый файл | Основные понятия. Типизированные файлы
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 804; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.052 сек.