Лабораторная работа №3 Множества - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Лабораторная работа Лабораторная работа Основы теории множеств 7 1675.01kb.
Лабораторная работа №1 Построение детерминированного синтаксического... 1 279.02kb.
Лабораторная работа №1 Установка и настройка сетевой карты. 1 58.04kb.
Вопросы (Коллоквиум) 1 10.99kb.
Лабораторная работа №1 по курсу "Информационная безопасность" Лабораторная... 1 122.31kb.
Лабораторная работа №6 по курсу "Информационная безопасность" Лабораторная... 1 57.72kb.
Лабораторная работа №10 множества цель работы: Изучить принципы работы... 1 63.55kb.
Лабораторная работа по курсу Радиотехника Москва 2003 1 183.89kb.
Теоретические вопросы из билетов к зачету (I семестр): 1 22.31kb.
Билет №1. Понятие множеств. Способы задания множеств. Основные числовые... 1 168.86kb.
Задача 1 Даны множества U={1, 2, …, 20}, A={1, 3, 8, 15}, B={8, 15... 1 8.38kb.
Лабораторная работа №10 множества цель работы: Изучить принципы работы... 1 63.55kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Лабораторная работа №3 Множества - страница №1/1

Лабораторная работа № 3

Множества


Множество – это неупорядоченный набор однотипных объектов. Количество элементов, входящих в множество, может меняться от 0 до 256. Множество, не содержащее элементов, называется пустым. Тип элементов, входящих в множество, называется базовым. Допускаются типы: byte, char, ограниченный и перечисляемый.

Два множества считаются эквивалентными, когда все их элементы одинаковы, причем порядок следования элементов в множестве безразличен. Если все элементы одного множества входят также и в другое, говорят о включении первого множества во второе.

Описание множества выполняется по одной из двух форм:

var<имя множества>:setof<базовый тип>;

или

type<имя типа>=setof<базовый тип>;



var<имя множества>:<имя типа>;

Например:

type en=set of 'A'..'z';

var s1:en;

s2:set of 'А'..'Я';

s3,s4,s5,s6:setof 0..9;

В операторной части программы значения элементов множества задаются конструктором – списком элементов в квадратных скобках. Элементами могут быть константы или выражения базового типа.

s1:=['A'..'z'];

s2:=['А'..'Я'];

s3:=[1..4];

s4:=[5..8];

s5:=[4,8];

s6:=[ ];

Здесь s1 – множество букв латинского алфавита, s2 – множество русских заглавных букв, s3, s4 – множества из четырех целых чисел, s5 – множество из двух целых чисел, s6 – пустое множество.

С множествами могут выполняться следующие операции:

+ объединение множеств; результат содержит элементы первого множества, дополненные теми элементами второго множества, которых нет в первом: s3 + s5 содержит [1..4,8];

- разность множеств; результат содержит те элементы первого множества, которых нет во втором: s4-s5 содержит [5..7];

* пересечение множеств; результат содержит элементы общие для обоих множеств: s3*s5 содержит [4];

= проверка эквивалентности; возвращает true, если множества эквивалентны;

<> проверка неэквивалентности; возвращает true, если множества неэквивалентны;

<= проверка вхождения; возвращает true, если первое множество включено во второе;

>= проверка вхождения; возвращает true, если второе множество включено в первое;

in проверка принадлежности; в этой бинарной операции первый элемент – выражение, а второй – множество того же типа; возвращает true, если выражение имеет значение, принадлежащее множеству:

2*2 ins3 возвращает true.


Пример подсчета количества элементов


Описать функцию, подсчитывающую количество элементов в множестве A, состоящем из целых чисел от 1 до 99.

Текстфункции

Type Iset=set of 0..99;

functionkol(A:Iset):integer;

var i:byte; j:integer;

begin j:=0;

for i:=1 to 99 do

if i in A then j:=j+1; kol:=j

end;

Пример определения простых чисел


Составить программу определения простых чисел в диапазоне от 2 до n(n<256), используя метод решета Эратосфена.

Суть этого метода: выписываются все целые числа диапазона; выбирается первое из них (это 2 – простое число) и вычеркиваются все кратные ему числа, кроме него самого; затем берется следующее из не вычеркнутых чисел (это 3 – также простое число) и вычеркиваются все кратные ему, кроме него самого; действия повторяются для всех не вычеркнутых ранее чисел; в конце концов останутся только простые числа, начиная с двух.


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

var s:set of 2..255;

c,m,n:integer;

begin n:=StrToInt(Edit1.Text);s:=[2..n];

for c:=2 to n do if c in s then

beginMemo1.Lines.Add(IntToStr(c)+’ ‘);

for m:=1 to n div c do s:=s-[c*m];

end;


end.

Результатдляn=40


Простыечисла 2 3 5 7 11 13 17 19 23 29 31 37

Пример нахождения и вывода чисел Фибоначчи


Сформировать и вывести множество чисел Фибоначчи.

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

typeM=byte;

T=set of M;

varFib:T; a,b,c:word;


procedurepprint; //вывод элементов множества

var k:T;


begin

for k:=low(M) to High(M) do

If k in Fib then Memo1.Lines.Add(IntToStr(k));

end;
//числаФибоначчи

begin

Fib:=[]; a:=1; b:=1;



repeat

Fib:=Fib+[b];

c:=a+b; a:=b; b:=c

until b>high(M);

pprint; //вызов процедуры вывода элементов множества

end;


Пример расчета частоты повторений


Определить какие русские буквы использовались в заданном тексте. Также определить число повторений каждой буквы (частоту). Количество символов в тексте равно 10.

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

const n=10;

type mas=array[1..n] of char;

mai=array[1..n] of integer;

const a:mas='лпвиилвлвл';

vari,j,k:integer; r:char;

{используетсятип -множество}

b:mas; c:mai; s:set of char;

beginclrscr;

s:=[]; k:=0;

for i:=1 to n do s:=s+[a[i]];

for r:='а' to 'я' do if r in s then

begin k:=k+1;b[k]:=r

end;


for j:=1 to k do

begin c[j]:=0;

for i:=1 to n do if a[i]=b[j] then c[j]:=c[j]+1

end;


for i:=1 to k do

Memo1.Lines.Add(b[i]+’ ‘+IntToStr(c[i]));

end.

Результат


л 4

п 1


в 3

и 2

Рабочее задание


Составить программув соответствии с вариантом задания.

Написать отчет, содержащий:



  • задание;

  • принятые обозначения;

  • текст программы;

  • результаты.

Варианты заданий к лабораторной работе №3


  1. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово.

  2. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят хотя бы в одно слово.

  3. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые не входят ни в одно слово.

  4. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят только в одно слово.

  5. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят хотя бы в одно слово.

  6. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят только в одно слово.

  7. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят в каждое слово.

  8. Дана последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все звонкие согласные буквы, которые не входят ни в одно слово.

  9. Дано сто целых чисел от 1 до 50. Определить сколько из них являются числами Фибоначчи и сколько чисел начинаются цифрами 1 или 2.

  10. Дана последовательность символов из латинских строчных букв. Вывести буквы, использованные в этой последовательности, в алфавитном порядке.

  11. Дан текст из цифр и строчных букв латинского алфавита. Определить каких букв – гласных (a, e, i, j, o, u) или согласных – больше в этом тексте.

  12. Дан текст из строчных латинских букв. Вывести первые вхождения букв в текст, сохраняя при этом их исходный взаимный порядок.

  13. Дан текст из строчных латинских букв. Вывести все буквы, входящие в текст не менее двух раз.

  14. Дан текст из строчных латинских букв. Вывести все буквы, входящие в текст по одному разу.

  15. Дан текст из строчных русских букв. Вывести все буквы, входящие в этот текст, в алфавитном порядке.

  16. Дан текст из строчных русских букв. Вывести все буквы, входящие в этот текст по одному разу.