КАТЕГОРИИ: Архитектура-(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" умножить на мантиссу. Примеры чисел в форме с плавающей точкой (в экспоненциальной форме) и в традиционной форме (с фиксированной точкой) даны в таблице. Примеры вещественных значений
Например: А:= -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; Просмотров: 831; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |