Дәріс мазмұны
Операции, определенные над множествами:
1. Объединение, пересечение и разность множеств – эти операции обозначаются символами ‘+’, ‘*’, ‘-’ соответственно и обозначают традиционные действия, принятые над множествами в математике:
- объединение множеств (A+B);
- пересечение множеств (A*B);
- разность множеств (A-B);
Например:
[10]+[100, 1000] = [10, 100, 1000];
[5..10]+[15] = [5, 6, 7, 8, 9, 10, 15];
[1..5]*[3..10] = [3..5];
[-10..10] - [-15..5] = [5..10].
2. Проверка принадлежности элемента множеству(X in A) – булевская операция, результат которой true, если элемент X содержится в множестве A, false – если не содержится. X имеет тот же тип, что и элементы множества A.
Например:
100 in [10, 100, 1000] = true;
X in [1,2,10] = true, если X=1 или X=2 или X=10.
Проверка на равенство, неравенство и включение двух множеств. Эти операции обозначаются следующими знаками:
A = B – равенство множеств;
A <> B – неравенство множеств;
A <= B – множество A входит в множество B;
A >= B – множество B входит в множество A.
Например:
-
операция
|
результат
|
[1, 3, 5, 7] = [1, 3, 5]
|
false
|
[1, 2, 3] = [3, 1, 2]
|
true
|
[2, 6, 18, 56] >= [6, 18]
|
true
|
и т.д.
Пример программы с использованием множества
Пусть дана строка символов с точкой в конце строки. Нужно определить число различных букв, входящих в данную строку.
1-й вариант
var
M : set of char;
str : string;
c : char;
i,n : integer;
begin
M := []; {M – пустое множество}
n:=0; {переменная, считающая количество различных букв в строке}
writeln ( ‘ Введите строку ‘ );
readln ( str );
for i:=1 to length(str) do M := M + [str[i]]; {формирование множества, содержащего все буквы, входящие в строку}
for c := ‘A’ to ‘z’ do {Подсчет количества элементов
if (c in M) then n:=n+1; в множестве}
writeln ( ‘ Количество различных элементов в строке равно ‘,n);
end.
2-й вариант
var
M : set of char; str : string; c : char; i,n : integer;
begin
M := []; {M – пустое множество}
n:=0; {переменная, считающая количество различных букв в строке}
writeln ( ‘ Введите строку ‘ );
readln ( str );
for i:=1 to length(str) do
if not( str[i] in M) then
begin
M := M + [str[i]]; {формирование множества, содержащего все буквы, входящие в строку}
n:=n+1;
end;
writeln ( ‘ Количество различных элементов в строке равно ‘,n);
end.
Одномерные массивы
Массивы — это множество элементов, причем все элементы могут быть разнородными. В Perl нет понятия массива чисел или массива строк. Массив не может быть многомерным. Можно реализовать массив массивов и, таким образом, сделать массив двумерным. Массив обозначается символом "@" перед именем. Примеры массивов:
@a = (1,2,3);
@b = (4,5,6,2.5,"test");
@c = (@a,@b);
@in =
$q = $c[3]; # 4
Индексирование элементов массива начинается с цифры 0. Поэтому в нашем примере четвертый элемент массива с будет индексироваться как $c[4].
Ассоциативные массивы
Ассоциативные массивы — это двухколоночная таблица. Первая колонка — ключ, а вторая колонка — связанное с ним значение. Ассоциативные массивы называют еще хешированными таблицами или просто хешами. Дело в том, что значение можно извлечь из таблицы прямо, указав ключ. При этом используется алгоритм хеширования по ключу.
Для краткости будем называть ассоциативный массив хешем. Обозначается переменная типа хеш символом "%" перед именем. Примеры хешей и обращений к их элементам:
%a = ("test",1,"test2",2);
$c = $a{test}; # $c=1
В первом случае хеш инициируется как обычный массив. Во втором примере мы выбираем значение определенным ключом "test". Результат этой операции, скаляр, помещается в переменную $c.
Дәріс 25
: Тақырыбы: Модельдер құру технологиясы.
Мақсаты : Мод ельдер түсінігі және оның түрлері
[1] 210-2213 беттер
Дәріс мазмұны:
Достарыңызбен бөлісу: |