Процедуры вывода данных.
WRITE
Integer, Byte, Real, Char, String, Boolean.
WRITE ([< имя файла или устройства >,]<список выражений>);
OUTPUT
LST; при этом должен быть подключен стандартный модуль
PRINTER Uses Printer;
Например:
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- ширина поля.
Особенности вывода вещественных значений.
1) Write(R); (экспоненциальная форма):
| d.dddddddddd E +| dd
2) Write(R:N) ;
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 ([<имя файла или устройства>,]<список выражений>);
________________________________________________________
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
________________________________________________________
. . .
For I:=1 to M do
Begin
For J:=1 to N do
Write(A[I,J]:5);
Writeln
End;
________________________________________________________
Uses Printer;
Var A:array[1..10,1..10]of real;
M,N:integer;
Begin
Readln(M,N);
For I:=1 to M do
For J:=1 to N do
Read(A[I,J]);
For I:=1 to M do
Begin
For J:=1 to N do
Write(Lst,A[I,J]:6:1);
Writeln(Lst)
End;
Readkey
End.
Пример
Дана строка символов. Разделителями слов в строке являются пробелы, запятые, точки с запятыми, двоеточия. Составить массив из слов-палиндромов.
PROGRAM PAL;
USES CRT;
VAR S: STRING;
U: STRING[30];
A: ARRAY[1..127] OF STRING[30];
I, L, D, NS, K: INTEGER;
F: BOOLEAN;
MN: SET OF CHAR;
BEGIN
CLRSCR;
MN:=[ ‘ ‘, ‘ , ’, ‘ ; ’,’ : ’];
WRITELN(‘ VVEDITE STROKU’);
READLN( S);
S:=S+’ ‘;
K:=0;
I:=1;
WHILE I<= LENGTH (S) DO
IF S[I] IN MN THEN
I:=I+1
ELSE BEGIN
NS:=I; D:=0;
WHILE NOT (S[I] IN MN ) DO
BEGIN
D:=D+1; I:=I+1
END;
U:=COPY( S, NS, D);
F:=TRUE;
FOR L:=1 TO D DIV 2 DO
IF U[L]< > U[D +1 – L] THEN F:=FALSE;
IF F THEN BEGIN
K:=K+1;
A[K]:=U
END;
END;
FOR I:=1 TO K DO
WRITELN(A[I]);
READKEY
END.