Программа
разделения текста на подтексты.
В
качестве разделителя текста
принимается знак "." (точка).
|
Program
pr46 (Input, Output);
|
Объявление
имени программы
|
Label
1, 2;
|
Блок
объявления меток: задаем метки 1 и 2
|
Var
|
Блок
объявления глобальных переменных
|
A
: String;
|
Переменная
A - исходный текст
|
q
: Integer;
|
Переменная
q - номер позиции вхождения
|
i
: Integer;
|
Переменная
i - параметр цикла
|
|
|
Begin
|
Начало
тела программы
|
|
|
WriteLn
('PASCAL: Разделение текста на подтексты.');
|
Формулировка
цели алгоритма
|
WriteLn
('Введите текст, заканчивающийся точкой:');
|
Запрос
ввода A - исходного текста
|
ReadLn
(A);
|
Ввод
A
|
|
|
1:
q := Pos ('.', A);
|
Метка
1: Находим q - позицию вхождения
разделителя '.' в текст A
|
If
q = 0 Then
|
Если
больше нет разделителей, т.е. q = 0, то...
|
Goto
2;
|
Переход
на метку 2, т.е. конец программы
|
|
|
WriteLn
('Найден подтекст:');
|
Сообщение
пользователю о выделении очередного
подтекста
|
For
i := 1 To q - 1 Do
|
Цикл
для i от 1 до q-1, т.е. ДО первого
встретившегося разделителя
|
Write
(A [i] );
|
Вывод
i-го символа текста
|
WriteLn;
|
Перевод
строки
|
|
|
Delete
(A, 1, q);
|
Удаляем
из текста первые q символов, т.е.
последний найденный подтекст
|
Goto
1;
|
Переход
на метку 1
|
|
|
2:
WriteLn ('Поиск подтекстов в тексте закончен.');
|
Метка
2: Вывод сообщения об окончании поиска
подтекстов в тексте
|
|
|
ReadLn;
|
Ожидание
нажатия клавиши Enter для завершения
|
End.
|
Конец
программы.
|