Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

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 ТЕКСТ');

READLN(STR);

IS1 := STR; I := POS('.', SI);

IF I<>0 THEN

BEGIN

DELETE(S1, 1,1);

I := P0S(7, SI);

IF I<>0 THEN

BEGIN

S1 := COPY(S1, 1, I-1);

WRITELN('ЧАСТЬ ТЕКСТА МЕЖДУ 1-Й И 2-Й ТОЧКОЙ');

WRITELN(SI)

END

ELSE

WRITELN('B ТЕКСТЕ ТОЛЬКО ОДНА ТОЧКА');

END

ELSE

WRITELN('B ТЕКСТЕ НЕТ НИ ОДНОЙ ТОЧКИ');

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим строку STR и присваиваем значение вспомогатель­ной переменной SI := STR;

- определяем местоположение первой точки в тексте; если точка есть, то вырезаем из S1 текст до нее;

- ищем вторую точку; если она есть, то вырезаем текст из S1 после нее;

- в зависимости от присутствия точек выводим результат на экран.

Переменные:

I - номер позиции, которая соответствует точке;

STR - строка текста;

S1 - вспомогательная переменная.

Задача 5.3 Дана строка символов. Выделить подстроку меж­ду первой и последней точкой.

PROGRAM PRG5_3;

Var s1, str: string;

J, L, I: INTEGER;

BEGIN

WRITELN('BBEДИTE ТЕКСТ');

READLN(STR);

S1 := STR;

I := P0S('.', S1);

J := I; L := 0;

IF I<>0 THEN

BEGIN

WHILE I<>0 DO

BEGIN

DELETE(S1, 1, I);

L := L+1;

I := P0S('.', S1);

END;

IF L <>J THEN

BEGIN

S1 :=COPY(STR, J+1, L-J-1);

WRITELN('ЧАСТЬ ТЕКСТА МЕЖДУ 1-Й И ПОСЛЕДНЕЙ ТОЧКОЙ');

WRITELN(SI)

END

ELSE

WRITELN('B ТЕКСТЕ ТОЛЬКО ОДНА ТОЧКА');

END

ELSE

WRITELN('B ТЕКСТЕ НЕТ НИ ОДНОЙ ТОЧКИ');

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим строку STR и присваиваем значение вспомогатель­ной переменной SI := STR;

- определяем местоположение первой точки в тексте; если точка есть, то вырезаем из S1 текст до нее;

- ищем последнюю точку в цикле WHILE I<>0 DO; если она есть, то значение переменной L указывает на ее местополо­жение;

- в зависимости от присутствия точек выделяем подстроку S1 := COPY(STR, J+1, L-J-1) и выводим результат на экран.

Переменные:

I - номер позиции, которая соответствует точке;

J - местоположение первой точки;

L - местоположение последней точки;

STR - строка текста;

S1 - вспомогательная переменная.

Задача 5.4 Дана строка символов до точки. Группы символов в ней между группами пробелов считаются слова­ми. Посчитать, сколько слов содержит данная строка.

Мы рассматривали подобную задачу в предыдущей теме. Од­нако с использованием стандартных функций она решается про­ще.

PROGRAM PRG5_4;