страница 1
|
|
Похожие работы
|
Лабораторная работа №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, если второе множество включено в первое; 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
|
|