Выравнивание
текста по правому краю.
|
Program
Pro_51 (Input, Output);
|
Объявление
имени программы
|
Var
|
Блок
объявления глобальных переменных
|
T
: Array [1..100] Of String;
|
T
- массив строк текста
|
i,
N : Integer;
|
i
- переменная цикла, N - число строк текста
|
L
: Integer;
|
L
- ширина страницы (в символах)
|
|
|
Begin
|
Начало
тела программы
|
|
|
WriteLn
('PASCAL: Выравнивание текста по правому
краю.');
|
Формулировка
цели алгоритма
|
Write
('Ширина строки (символов): ');
|
Запрос
ввода ширины строки
|
ReadLn
(L);
|
Ввод
ширины строки
|
WriteLn
('Введите текст (окончание ввода - пустая
строка): ');
|
Запрос
ввода исходного текста
|
i
:= 0;
|
Номер
вводимой строки
|
Repeat
|
Повторять
тело цикла...
|
i
:= i + 1;
|
Увеличиваем
номер вводимой строки на 1
|
ReadLn
(T [i] );
|
Считываем
очередную строку
|
Until
T [i] = '';
|
Пока
очередная введенная строка не является
пустой строкой
|
N
:= i - 1;
|
Заносим
в N число строк текста
|
|
|
For
i := 1 To N Do
|
Цикл
для i
от 1 до N
|
Begin
|
Начало
тела цикла
|
While
Copy (T [i], Length (T [i] ), 1) = ' ' Do
|
Пока
последний символ i-ой строки является
пробелом...
|
Delete
(T [i], Length (T [i] ), 1);
|
Удаляем
последний символ i-ой строки
|
While
Length (T[i]) < L do
|
Пока
длина i-й строки меньше ширины страницы...
|
Insert('
',T[i],1);
|
Вставляем
в начало текста символы пробела
|
End;
|
Конец
тела цикла
|
|
|
WriteLn;
|
Перевод
строки
|
For
i := 1 To N Do
|
Цикл
для i
от 1 до N
|
WriteLn
(T [i] );
|
Выводим
построчно строки преобразованного
текста
|
|
|
ReadLn;
|
Ожидание
нажатия клавиши Enter для завершения
|
End.
|
Конец
программы
|