1.1 Cəmilərlə tanışlıq
Cəmilərin anlayışı proqramlaşdırmaya riyaziyyatdan gəlib. Cəmi — bu, unikal elementlərdən ibarət bir qrupdur. Bu xüsusiyyət cəmiləri proqramlaşdırmada güclü bir alət edir, çoxlu unikal imkanlarla.
Unikal elementlər qrupu nədir? Təsəvvür edin ki, sizdə "Ölkədəki ən populyar 10 adın siyahısı" var. Bu tərif özü deyir ki, siyahıda hər bir ad unikaldır və təkrarlanmaz. Yalnız onun daşıyıcıları təkrarlanır.
Yaxud markalar kolleksiyasını təsəvvür edin. Hər ölkədən bir marka yığırsınız. Kolleksiyanız — bu markaların bir cəmidir, burada hər marka unikaldır və siz istəmirsiniz ki, iki eyni marka olsun. Bax, cəmilərin ideyası budur.
Cəmilərin əsas xüsusiyyətləri
Unikallıq
Cəmi — bu unikal əşyaların bir qrupudur. Təsəvvür edin ki, sizin zəng etmək üçün müştəri nömrələrinin siyahısı var. Bu siyahıda hər bir nömrə unikal olmalıdır ki, heç kimə təkrarlanan zənglər əziyyət verməsin.
Sırasızlıq
Cəmilər əşyaların sırasını nəzərə almır. Bu elədir ki, sanki meyvələri səbətə yığırsınız, altındakı və üstündəki yerləri düşünmədən, əsas odur ki, səbətdəki bütün meyvələr fərqlidir.
Dəyişkənlik
Cəminizə əşyalar əlavə edə və ya silə bilərsiniz. Bu sanki, istənilən anda səbətə yeni bir meyvə əlavə edə bilərsiniz və ya artıq ehtiyacınız olmayanı oradan götürə bilərsiniz.
1.2 Set-lər üzərində əməliyyatlar
Set-lər üzərində, yəni çoxlu sayda elementlər olan qruplar üzərində müxtəlif əməliyyatlar aparmaq olar. Budur 4 ən yayılmış əməliyyatın nümunəsi:
- Birləşmə (Union): İki set-in birləşməsi nəticəsində alınan set hər iki set-də olan bütün unikal elementləri özündə birləşdirir.
- Kəsişmə (Intersection): İki set-in kəsişməsi nəticəsində alınan set yalnız hər iki set-də mövcud olan elementləri ehtiva edir.
- Fərq (Difference): İki set-in fərqi nəticəsində alınan set birinci set-də mövcud olan, lakin ikinci set-də olmayan elementləri ehtiva edir.
- Simmetrik fərq (Symmetric Difference): İki set-in simmetrik fərqi nəticəsində alınan set bir set-də olan, lakin hər iki set-də eyni anda olmayan elementləri ehtiva edir.
Budur əməliyyatların mahiyyətini yadda saxlamağa kömək edəcək yaxşı bir şəkil:
Birləşmə (Union):
İki set olan A və B set-lərinin birləşməsi nəticəsində alınan set hər iki set-dən olan bütün unikal elementləri ehtiva edir.
Kəsişmə (Intersection):
İki set-in kəsişməsi nəticəsində alınan set yalnız hər iki set-də mövcud olan elementləri ehtiva edir.
Fərq (Difference):
İki set-in fərqi nəticəsində alınan set birinci set-də mövcud olan, lakin ikinci set-də olmayan elementləri ehtiva edir.
Simmetrik fərq (Symmetric Difference):
İki set-in simmetrik fərqi nəticəsində alınan set elementləri ya birinci, ya da ikinci set-də mövcuddur, lakin hər iki set-də eyni anda yoxdur.
1.3 Cəmlərin xüsusiyyətləri
Cəmlər təkcə öz xüsusiyyətləri ilə deyil, həm də onlarla edilən xüsusi əməliyyatlarla məşhurdur.
Unikal kolleksiyalar
Təsəvvür edin ki, siz məşhurların avtograflarını toplayırsınız. Siz istəyirsiniz ki, kolleksiyanızda hər avtograf unikallıqla olsun. Bu deməkdir ki, əgər artıq sevdiyiniz aktyorun avtografına sahibsinizsə, ikinci belə bir avtograf toplamayacaqsınız. Avtograf kolleksiyanız – unikal avtografların cəmi olacaq.
Duplicatelərin silinməsi
Tutalım ki, sizin partiyə gələcək qonaqların siyahınız var, amma təsadüfən bəzi şəxsləri iki dəfə daxil etmisiniz. Hər qonağın yalnız bir dəfə dəvət olunduğundan əmin olmaq üçün, qonaqların bir cəmini yarada bilərsiniz. Bu cəmdə avtomatik olaraq yalnız unikal adlar qalacaq, duplicatelər isə silinəcək.
Mövcudluğu yoxlamaq
Təsəvvür edin ki, müxtəlif növ xəzinələr topladığınız bir oyunda iştirak edirsiniz. Hər sandıqda cürbəcür xəzinələr ola bilər. Əgər siz artıq müəyyən xəzinəni tapıb-tapmadığınızı bilmək istəyirsinizsə, sadəcə olaraq, xəzinələr cəminizdə olub-olmadığını yoxlayırsınız.
Qrupların birləşdirilməsi
Təsəvvür edin ki, sizin iki dost siyahınız var: biri məktəbdən, digəri isə idman klubundan. Əgər sizin neçə unikal insanla tanış olduğunu bilmək istəyirsinizsə, bu iki siyahını bir cəmdə birləşdirə bilərsiniz. Beləliklə, təkrarsız bütün unikal dostlarınızın siyahısını əldə edəcəksiniz.
GO TO FULL VERSION