Лабораторная работа 6
Программирование с использованием множеств
Цель работы: познакомить с понятием "множество" в языке программирования Pascal; выработать навыки работы со структурой данных множество.
Общие сведения
Под множеством понимают ограниченный, неупорядоченный набор различных элементов одного типа. В отличие от массивов к элементам множества нет прямого доступа (по индексам этих элементов, как в массивах). Поэтому ввод-вывод множеств производится с использованием операций объединения (при вводе) и проверки принадлежности (при выводе). Под мощностью множества понимают количество элементов, содержащихся в данном множестве.
Перед выполнением работы необходимо ознакомится с правилами описания и использования переменных типа множество, типизированных констант типа множество, переменных, заданных перечислением, изучить допустимые операции над переменными этих типов.
Пример
Пример1: Дан текст. Определить каких букв больше - гласных или согласных.
Этапы решения задачи: 1. Составим блок схему программы
Опишем подробнее блок "Подсчитываем количество гласных и согласных букв"
![](books/delphi/pascal/1/image086.gif)
Рассмотрим блок "Печатаем соответствующее сообщение"
![](books/delphi/pascal/1/image088.gif)
Запишем блок-схему целиком
2. Переведем алгоритм на язык Паскаль
program example1;
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('Согласных и гласных букв поровну');
readln;
end.
Контрольные вопросы
Что такое множество, как оно описывается в языке Pascal?
Как определить новый тип данных с использованием перечисления?
Как описываются типизированные константы типа множество?
Как осуществляется ввод-вывод значений переменных типа множество?
Какие типы данных используются в качестве базовых при объявлении типа множество?
Какие операции определены над множествами?
Какие операции допустимы над переменными, заданными перечислением?
Чем похожи и чем отличаются множества и массивы?
Какое значение у выражений: а) x in [x]; б) [ ] .