Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ОАиП.doc
Скачиваний:
17
Добавлен:
01.04.2025
Размер:
5.06 Mб
Скачать

Лабораторная работа № 23.

Тема: Разработка алгоритмов и программ обработки строк. Использование множеств для решения задач.

Цель работы: Научиться разрабатывать алгоритмы и программы обработки строк. Научиться использовать множества для решения задач.

Средства: ПЭВМ, среда разработки Pascal.

Актуализация опорных знаний

1. Символьные переменные и строки.

2. Процедуры обработки строк.

3. Функции обработки строк.

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

Задание 1: Разработать программу решения задачи, в которой подсчитать количество слов в строке символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.

Решение: Для решения задачи необходимо определить длину строки. Далее подсчитать количество пробелов между словами и к этому количеству добавить единицу. Вывести полученный результат.

Текст программы

program lr101;

uses crt;

var

stroka:string;

var

i,dlst,kolsl:integer;

begin

clrscr;

writeln(‘Введите исходную строку на английском языке’);

readln(stroka);

dlst:=length(stroka);

kolsl:=0;

for i:=1 to dlst do

if stroka[i]=’ ‘ then kolsl:=kolsl+1;

kolsl:=kolsl+1;

writeln(‘Количество слов в строке:’,kolsl);

end.

Задание 2: Разработать программу решения задачи, в которой определить в строке каких букв больше, гласных или согласных. Исходные данные строки вводятся с клавиатуры.

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

Текст программы

program lr102;

uses crt;

const

glasn=['а','е','и','о','у','ы','э','ю','я'];

soglas=['б','в','г','д','ж','з','й','л','м',

'н','р','к','п','с','т','ф','х','ц','ч','ш','щ'];

var

st: string;

g,s,i:integer;

begin

write('Введите строку> '); readln(st);

g:=0; s:=0;

for i:= 1 to length(st) do

if st[i] in glasn then inc (g) else if st[i] in soglas then inc(s);

if g> s then writeln('Гласных больше')

else if g< s then writeln('Согласных больше')

else writeln('Согласных и гласных букв поровну');

end.

Результаты отладки программы

Исходные данные для задания 1:

My first programm.

результат: Количество слов в строке:3

Исходные данные для задания 2:

проверка программы

результат: Согласных больше

Задания

1. Разработать программу решения задачи, в которой найти и вывести на экран самую короткую группу нулей в строке, состоящей из групп нулей и единиц. Исходные данные строки вводятся с клавиатуры.

2. Разработать программу решения задачи, в которой подсчитать количество символов в самой длинной группе, в строке, состоящей из групп нулей и единиц. Исходные данные строки вводятся с клавиатуры.

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

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

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

6. Разработать программу решения задачи, в которой вывести на экран порядковый номер слова максимальной длины, из строки символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.

7. Разработать программу решения задачи, в которой подсчитать количество символов в самой короткой группе, в строке, состоящей из групп нулей и единиц. Исходные данные строки вводятся с клавиатуры.

8. Разработать программу решения задачи, в которой вывести на экран порядковый номер слова минимальной длины, из строки символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.

9. Разработать программу решения задачи, в которой заменить в каждом слове первую букву на прописную в строке символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.

10. Разработать программу решения задачи, в которой поменять местами первую и последнюю буквы каждого слова в строке символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.

11. Разработать программу решения задачи, в которой вывести на экран только строчные латинские буквы, входящие в строку символов. Исходные данные строки вводятся с клавиатуры.

12. Разработать программу решения задачи, в которой удалить первую букву каждого слова в строке символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.

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

14. Разработать программу решения задачи, в которой вывести на экран только прописные латинские буквы, входящие в строку символов. Исходные данные строки вводятся с клавиатуры.

15. Разработать программу решения задачи, в которой найти и вывести на экран самую короткую группу единиц в строке, состоящей из групп нулей и единиц. Исходные данные строки вводятся с клавиатуры.

16. Разработать программу решения задачи, в которой удалить последнюю букву каждого слова в строке символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры.