Практическое занятие № 6

ТЕМА: Создание программ для обработки текстовых данных

ЦЕЛЬ РАБОТЫ: получить практические навыки по описанию и обработке текстовой информации

Ход работы

1. Определить, сколько слов в тексте начинается на заданную букву;

2. Вывести на экран заданное количество первых и последних символов текста (количество символов вводится с клавиатуры);

3. Из фрази "Доброе всем утро" получить фразу "Доброе утро" двумя способами (с помощью функции копирования и процедуры удаления);

4. С помощью функции вставки из фразы "Доброе утро" получить фразу "Доброе всем утро";

 

Пример выполнения задания

{Подключаем модуль по работе с экраном}

uses crt;

{Описываем необходимые переменные}

var str:string; s:string[1];

    i,kol:integer;

begin

     {Очищаем экран}

     clrscr;

     {Вводим исходный текст}

     write('Введите текст: ');

     readln(str);

     {Вводим искомую букву}

     write('Введите букву для поиска: ');

     readln(s);

     {В начале проверим первую букву во фразе}

     if str[1]=s then

                 kol:=1

                 else

                 kol:=0;

     {В цикле подсчитываем количество слов на указанную букву}

     for i:=1 to length(str)-1 do

         if (str[i]=' ') and (str[i+1]=s) then

                                      kol:=kol+1;

     {Выводим на экран найденное количество}

     writeln('Всего слов ',kol);

     writeln;

 

     {Вводим нужное количество букв для выделения}

     write('Сколько букв вы хотите выделить: ');

     readln(kol);

     {Выводим первые символы}

     writeln('Первые символы: ',copy(str,1,kol));

     {Выводим последние символы}

     writeln ('Последние символы: ',copy(str,length(str)-(kol-1),kol));

     writeln;

 

     {Получаем фразу с помощью функции копирования}

     str:='Доброе всем утро';

     writeln('Функция копирования: ',copy(str,1,6)+' '+copy(str,13,4));

            {Получаем фразу с помощью процедуры удаления}

     str:='Доброе всем утро';

     delete(str,8,5);

     writeln('Процедура удаления: ',str);

     writeln;

 

     {Получаем фразу с помощью процедуры вставки}

     str:='Доброе утро';

     insert('всем ',str,8);

     writeln('Процедура вставки: ',str);

 

     {Делаем паузу для просмотра}

     readln;

end.

Начальный уровень


1. Дана строка. Подсчитать, сколько в ней букв г, к, т.

2. Дана строка символов, среди которых есть двоеточие (:). Определить, сколько символов ему предшествует.

3. Дана строка. Определить, сколько раз входит в нее группа букв про.

4. Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке.

5. В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен.

6. В строке удалить символ «двоеточие» (:) и подсчитать количество удаленных символов.

7. В строке между словами вставить вместо пробела запятую и пробел.

8. В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее.

9. Строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).

10. Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке.

11. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы а.

12. В заданной строке удалить все лишние пробелы.
 

Средний уровень


1. Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова.

2. Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

3. Дана строка. Подсчитать количество букв к в последнем ее слове.

4. Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а.

5. Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри этих скобок.

6. Имеется строка, содержащая буквы латинского алфавита и цифры. Вывести на экран длину наибольшей последовательности цифр, идущих подряд.

7. Дан набор слов, разделенных точкой с запятой (;). Набор заканчивается двоеточием (:). Определить, сколько в нем слов, заканчивающихся буквой а.

8. Дана строка. Указать те слова, которые содержат хотя бы одну букву к.

9. Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой.

10. Удалить часть символьной строки, заключенной в скобки (вместе со скобками).

11. Определить, сколько раз в строке встречается заданное слово.
 

Выше среднего
 

1. Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.

2. В записке слова зашифрованы - каждое из них записано наоборот. Расшифровать сообщение.

3. Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.
 

Сложно

 

1. Даны две строки А и В. Составьте программу, проверяющую, можно ли из букв, входящих в А составить В (буквы можно использовать не более одного раза и можно переставлять).

Например, А: ИНТЕГРАЛ; В: АГЕНТ - составить можно; В: ГРАФ - составить нельзя.

2. Результаты вступительных экзаменов представлены в виде списка из N строк, в каждой строке которого записаны фамилия студента и отметки по каждому из М экзаменов. Определить количество абитуриентов, сдавших вступительные экзамены только на «отлично».

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

4. Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи должны быть только символы 0 и 1). Если число введено неверно, повторить ввод. При правильном вводе перевести число в десятичную систему счисления.

5. Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами.