Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие_ОП.doc
Скачиваний:
8
Добавлен:
22.12.2019
Размер:
894.46 Кб
Скачать

5.9.Процедуры вывода данных.

Процедура (оператор) WRITE предназначена для вывода выражений следующих типов: Integer, Byte, Real, Char, String, Boolean и др.

WRITE ([< имя файла или устройства >,]<список выражений>);

Если <имя файла> отсутствует, то вывод осуществляется в стандартный файл OUTPUT (на экран дисплея). Если указано < имя файла >, этот файл должен быть описан или подготовлен заранее.

Для вывода на печать используется логическое устройство LST; при этом должен быть подключен стандартный модуль PRINTER (т.е. в начале программы должно быть предложение Uses Printer;).

Оператор WRITE выводит значения выражений из списка на текущую строку до ее заполнения. Если за ним следует оператор вывода, а текущая строка еще не заполнена, то вывод осуществляется на ту же строку.

Например:

X:=5; Y:=10;

Write (‘X=’, X);

Write (‘ Y=’,Y); На печать:X=5 Y=10

При выводе на печать для величин стандартного типа отводится определенное число позиций, зависящее от реализации Паскаля. Существует возможность задавать ширину поля (число позиций) для выводимой величины.

Оператор вывода с форматом:

WRITE ([< имя файла или устройства >,]R1:N1,R2:N2,…, Rm:Nm);

Здесь - R1,R2,…,R m- выводимые переменные;

N1,N2,…,N m- ширина поля.

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

5.9.1.Особенности вывода вещественных значений.

Если описать переменную вещественного типа, то возможны следующие варианты вывода этой переменной:

1) Write(R); Вывод осуществляется в нормализованном виде (экспоненциальная форма):

| d.dddddddddd E +| dd

2) Write(R:N) ; Вывод в нормализованном виде с выравниванием по правой границе поля длиной N. Минимальное значение N равно 8. При задании меньшего размера ширины поля компилятор добавляет недостающие разряды до 8.

3) Write(R:N:M) ; Вывод в форме с фиксированной точкой и с М десятичными знаками после точки(0<=M<=24).

Например,

Var b,d:real;

C:integer;

A:string[10];

. . .

A:=’книга’;

B:=1253E-5;

C:=12;

d:=1253E2;

Write(LST,’B=’,B:10:3,’ C=’,C:8,’ A=’,A:7,’ b1=’,b:8,’ d=’,d:6);

На печать будет выведено (здесь _ означает символ пробел, который на экране не виден):

В=_ _ _ _ _ 0.013_С=_ _ _ _ _ _12_А=_ _книга_B1=_1.3E-02_D=_1.3E+05

Процедура WRITELN имеет аналогичный вид:

WRITELN ([<имя файла или устройства>,]<список выражений>);

При вызове этой процедуры завершается формирование текущей строки файла. Следующий оператор WRITE или WRITELN формирует новую строку. Можно использовать WRITELN без параметров.

Например, при совместном использовании операторов WRITE и WRITELN можно регулировать вывод по строкам:

Var a,b,c,d,e:integer;

Begin

A:=1; B:=2; C:=3; D:=4; E:=5;

Writeln (‘ A=’,A,’ B=’,B);

Write(‘ C=’,C);

Writeln(‘ D=’,D,’ E=’,E);

End.

На экран дисплея результат будет выведен в двух строках:

_A=1_B=2

_C=3_D=4_E=5

Вывод матрицы A (M,N) целых чисел на экран в виде прямоугольной таблицы можно реализовать следующими операторами:

. . .

For I:=1 to M do

Begin

For J:=1 to N do

Write(A[I,J]:5);

Writeln

End;

Вывод матрицы A(M,N) вещественных чисел на принтер в виде таблицы с одним разрядом после запятой представлен следующей программой:

Uses Printer;