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

Var str : string;

L, I: INTEGER;

M : SET OF CHAR;

BEGIN

M := ['.', ',', '!', ':',';', '?'.'-'];

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

READLN(STR);

L := LENGTH(STR);

WRITELN('ПPEOBPA3OBAHHblЙ ТЕКСТ');

FOR I := 1 TO L DO

If not(str[I] in m) then write(str[I]);

WRITELN

END.

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

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

- задаем значение множества М - множества знаков препина­ния;

- цикл FOR I := 1 ТО L DO осуществляет вывод строки без знаков препинания;

- после вывода закрываем строку оператором WRITELN.

Переменные:

I - переменная цикла;

L - длина строки;

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

М - множество знаков препинания.

Задача 4.6 Дана строка символов. Заменить в ней все воскли­цательные знаки на точки.

Данная программа представляет собой примитивный трансля­тор, который транслирует все символы в строке как они есть, а восклицательные знаки транслирует в точки.

PROGRAM PRG4_6;

Var str : string;

L, I: INTEGER;

BEGIN

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

READLN(STR);

L := LENGTH(STR);

WRITELN('ПPE0БPA30BAHHblЙ ТЕКСТ');

FOR I := 1 TO L DO

If (str[I] - '!') then write(V)

ELSE WRITE(STR[I]);

WRITELN

END.

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

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

- цикл FOR I := I TO L DO осуществляет вывод строки с за­меной '!' на '.'

- после вывода закрываем строку оператором WRITELN.

Переменные:

I - переменная цикла;

L - длина строки;

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

Задача 4.7 Дана строка символов. Заменить в ней все 'А' на 'ААА'.

PROGRAM PRG4_7;

Var str : string;

L, I: INTEGER;

BEGIN

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

READLN(STR);

L := LENGTH(STR);

WRITELN('ПPEOБPA3OBAHHblЙ ТЕКСТ');

FOR I := 1 TO L DO

IF (STR[I] = 'A') THEN WRITE('AAA')

ELSE WRITE(STR[I]);

WRITELN

END.

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

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

- цикл FOR I := 1 ТО L DO осуществляет вывод строки с за­меной 'А' на 'ААА';

- после вывода закрываем строку оператором WRITELN.

Переменные:

I - переменная цикла;

L - длина строки;

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

ВВЕДИТЕ ТЕКСТ

DFGRA AA BNC.

ПРЕОБРАЗОВАННЫЙ ТЕКСТ

DFGRAAA AAAAAA BNC.

ВВЕДИТЕ ТЕКСТ

DFGR BNC.

ПРЕОБРАЗОВАННЫЙ ТЕКСТ

DFGR BNC.

Рис. 4.2. Результат работы PRG4_7

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

При решении данной задачи следует обратить внимание на три важные особенности.

Во-первых, основная сложность заключается в том, что слова могут быть разделены группой пробелов. Если бы слово от слова отделялось только одним пробелом, то мы могли бы посчитать количество пробелов и вычислить количество слов. В нашем случае необходимо ввести логический флаг F, по которому можно опре­делять начало слова (F := TRUE ) и конец слова (F := FALSE). При первом символе слова флаг поднимается, на первом пробеле за словом флаг опускается.

Во-вторых, по условию задачи текст вводится до точки, т. е. все слова за первой точкой игнорируются.

В-третьих, последнее слово в тексте может обрабатываться не совсем корректно. Если между последним словом и точкой есть хотя бы один пробел, то флаг F позволит обработать его. Если по­следнее слово кончается на точку, то счетчик слов его не обрабо­тает, т. к. флаг не найдет конца слова. В этом случае значения счетчика слов нужно увеличивать на единицу по выходе из цикла обработки.

PROGRAM PRG4_8;