PROGRAM PRG5_1;
VAR STR, WRD: STRING; I, L: INTEGER; M: SET OF CHAR; BEGIN M:= ['.', ',', '!', ':',';', '?'.'-', ' ']; WRITELN('BBEДИTE СЛОВО');' READLN(WRD); WRD:= CONCAT(' ', WRD); STR:= ' '+STR; WRITELN('ВВЕДИТЕ ТЕКСТ'); READLN(STR); L:= LENGTH(WRD); REPEAT I:= POS(WRD, STR); IF (IO0) AND (STR[I+L] IN M) THEN DELETE(STR, I, L); UNTIL 1 = 0; WRITELN(STR) ЕND. Для решения задачи: - формируем тело программы и описываем переменные; - задаем значение множества М - множества знаков препинания и пробел; - вводим слово WRD; присоединяем вначале его пробел, чтобы не спутать с подсловом; находим длину слова; - вводим строку STR; - цикл REPEAT... UNTIL I = 0 осуществляет просмотр строки до тех пор, пока в ней встречается слово WRD; - значение I>0 указывает на номер символа в строке, с которого начинается слово WRD; - если такое слово найдено, то вырезаем его из строки; - выводим на экран модифицированный текст. Переменные: I - номер позиции, начиная с которой встречается слово WRD; L - длина слова; STR - строка текста; WRD - слово; М - множество знаков препинания и пробел.
ВВЕДИТЕ СЛОВО АВВА ВВЕДИТЕ ТЕКСТ DFE ABBA DFGSABBA ВВВВ DFE DFGSABBA ВВВВ
ВВЕДИТЕ СЛОВО ** ВВЕДИТЕ ТЕКСТ DFE** ** *** ** DFGSABBA **BBBB DFE** *** DFGSABBA **BBBB
Рис. 5.1. Результат работы PRG5_1
Задача 5.2 Дана строка символов. Выделить подстроку между первой и второй точкой. PROGRAM PRG5_2; VAR S1, STR: STRING; I: INTEGER; BEGIN WRITELN('BBEДИTE ТЕКСТ');
|