Рассмотрим форматированный вывод на экран с помощью процедур Write и WriteLn. Окончание ln-означает, что курсор должен перейти на начало следующей строки. Таким образом, эти функции почти идентичны.
Вывод строк
Write (Str : x);
Параметр x означает, что строка будет занимать x ячеек и выравниваться по правому краю.
Если его не указать, то строка выведется с выравниванем по левую сторону и будет занимать количество ячеек, равное длине строки.
Пример вывода с параметром x = 20 для строки 'тест' :
тест
Пример вывода с параметром x = 20 для строки 'ещё тест' :
ещё тест
Пример вывода без параметра x для строки 'тест' :
тест
Пример вывода без параметра x для строки 'ещё тест' :
ещё тест
Вывод целых чисел
Общий формат :
Аналогично со строками, x означает вывод числа с выравниванием по правую сторону.
Write (Num : x);
Вывод с выравниванием x = 10
writeln (12 : 10);
Пример вывода :
12
Вывод без выравнивания
writeln (12);
Пример вывода :
12
Вывод вещественных чисел
Появляется дополнительный параметр y, означающий количество знаков (цифр) после точки, которые мы хотим вывести. Например, с точностью y = 3 знаков. Его можно не указывать в случае, когда вы хотите вывести число в «научном» виде.
Общий формат:
Write (Num : x : y);
Научный вывод
writeln (12.304 : 10);
Пример вывода :
1.2E+0001
Стандартный вывод
writeln (12.304 : 10 : 2);
Пример вывода :
12.30
Одномерный массив A (M) целых чисел
writeln;
{ Выводит числа с промежутком в 4 позиции один от другого, выравнивая по правому краю }
for i:=1 to M do write (A[i] : 4);
Пример вывода:
-10 3 14 -87
Матрица A (MxN) из вещественных чисел
type arr= array[1..P,1..Q] of real;
procedure ShowMatrix(var A: arr; M,N: integer);
var i,j: word;
begin
Writeln;
For i:=1 to M do
begin
Writeln; { переход на следующую строку }
for j:=1 to N do Write (A[i,j]:8:2);
end;
end;
Пример вывода:
29.33 28.00 20.67 23.33 19.00 10.33
Записи, База Данных (БД)
type
TDataBook=record
Name: string[30];
Phone: string[10];
Street: string[30];
Gender: Char; {(M)ale/(F)emale}
end;
const Rec=3; { Count of Records }
var
DataBook: TDataBook;
A: Array[1..Rec] of TDataBook;
i: word;
begin
With DataBook do
begin
for i:=1 to Rec do
with A[i] do
begin
writeln;
write('Name: '); readln(Name);
write('Phone: '); readln(phone);
write('Street: '); readln(street);
write('Gender [(M)ale/(F)emale]: '); readln(gender);
end;
Writeln;
writeln ('Name':30, 'Phone':10, 'Street':30, 'Gender':7);
for i:=1 to Rec do
with A[i] do
writeln (Name:30, Phone:10, Street:30, Gender:2);
end;
writeln('Press Enter.');
readln;
end.
Пример вывода:
Name Phone Street Gender Ivan 2-3-4 Lenina M Peter 3-4-5 Vyazov M Vika 4-5-7 Duby F