Algoritmizálás és adatmodellezés tanítása 6. előadás

Hasonló dokumentumok
Halmaz típus Értékhalmaz:

Informatikai tehetséggondozás:

Multihalmaz, intervallumhalmaz

Informatikai tehetséggondozás:

Algoritmizálás és adatmodellezés tanítása 4. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás

Struktúra nélküli adatszerkezetek

Algoritmizálás, adatmodellezés 1. előadás

Algoritmizálás és adatmodellezés 2. előadás

Algoritmizálás és adatmodellezés tanítása 2. előadás

Adatszerkezetek I. 1. előadás

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Algoritmizálás és adatmodellezés tanítása 3. előadás

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

Algoritmizálás, adatmodellezés 1. előadás

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Algoritmizálás, adatmodellezés tanítása 1. előadás

Készítette: Ernyei Kitti. Halmazok

Összetett programozási tételek

Amortizációs költségelemzés

Diszkrét matematika 2. estis képzés

Programozási tételek. Jegyzet. Összeállította: Faludi Anita 2012.

A valós számok halmaza

Algoritmizálás, adatmodellezés tanítása 6. előadás

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Algoritmusok és adatszerkezetek I. 4. előadás

Algoritmusok és adatszerkezetek I. 1. előadás

Algoritmizálás és adatmodellezés tanítása 9. előadás

Bevezetés az informatikába

Adatszerkezetek II. 10. előadás

Egyszerű programozási tételek

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Haladó rendezések. PPT 2007/2008 tavasz.

ELEMI PROGRAMOZÁSI TÉTELEK

Algoritmizálás, adatmodellezés tanítása 1. előadás

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Hatékonyság 1. előadás

Kép mátrix. Feladat: Pap Gáborné-Zsakó László: Algoritmizálás, adatmodellezés 2/35

5. A kiterjesztési elv, nyelvi változók

1. előadás: Halmazelmélet, számfogalom, teljes

Adatszerkezetek II. 1. előadás

Algoritmusok Tervezése. Fuzzy rendszerek Dr. Bécsi Tamás

Programozási tételek általánosítása 2. Szlávi Péter 2015

Programozás II. előadás

Metrikus terek, többváltozós függvények

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Adatszerkezetek 1. Dr. Iványi Péter

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

MATLAB alapismeretek II.

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Informatikai tehetséggondozás:

Diszkrét matematika 2.C szakirány

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Hatékonyság 2. előadás

Adatszerkezetek I. 4. előadás

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Nagy Gábor compalg.inf.elte.hu/ nagy

Csoporthatások. 1 Alapfogalmak 1 ALAPFOGALMAK. G csoport hatása az X halmazon egy olyan µ: G X X leképezés, amelyre teljesül

Diszkrét matematika I. gyakorlat

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Smalltalk 2. Készítette: Szabó Éva

2014. szeptember 24. és 26. Dr. Vincze Szilvia

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Diszkrét matematika 2. estis képzés

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Diszkrét matematika 2.C szakirány

Programozási nyelvek Python

Nagy Gábor compalg.inf.elte.hu/ nagy

Matematika alapjai; Feladatok

Algoritmusok és adatszerkezetek I. 3. előadás

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Készítette: Nagy Tibor István

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

A Matematika I. előadás részletes tematikája

függvény grafikonja milyen transzformációkkal származtatható az f0 : R R, f0(

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Programozási Módszertan definíciók, stb.

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Kombinatorikai algoritmusok. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Átírás:

Algoritmizálás és adatmodellezés tanítása 6. előadás

Összetett típusok 1. Rekord 2. Halmaz (+multihalmaz, intervallumhalmaz) 3. Tömb (vektor, mátrix) 4. Szekvenciális file (input, output) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 2/51

Halmaz típus Értékhalmaz: Az alaphalmaz (amely az Elemtípus által van meghatározva) iteráltja ( mely elemek lehetnek benne a halmazban ). Az Elemtípus általában valamely véges diszkrét típus lehet, legtöbbször még az elemszámát is korlátozzák (<256). Ha nyelvi elemként nem létezik, akkor a megvalósításunkban lehet nagyobb elemszámú is és az Elemtípus sem feltétlenül diszkrét típus. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 3/51

Halmaz típus Műveletek metszet ( ) unió ( ) különbség ( ) komplemens eleme (egy elem benne van-e a halmazban) ( ) része (egyik halmaz részhalmaza-e a másiknak) ( ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 4/51

Halmaz típus Műveletek Halmazba (elem hozzávétele egy halmazhoz): H:=H e} Halmazból (elem elhagyása egy halmazból): H:=H e} Beolvasás (halmaz beolvasása) Kiírás (halmaz kiírása), Üres (üres halmaz létrehozás eljárás), vagy Üres'Halmaztípus előre definiált konstans Üres? (logikai értékű függvény). Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 5/51

Halmaz típus ábrázolása Elemek felsorolása Halmaz(Elemtípus)=Rekord(db: Egész, elem: Tömb(1..MaxDb:Elemtípus)) A halmaz elemeinek felsorolásával adjuk meg a halmazt, annyi elemű tömbben, ahány elemű éppen a halmaz (pontosabban az első db darab elemében). Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 6/51

Halmaz típus ábrázolása Eljárás Üres(Változó a: Halmaz(Elemtípus)): a.db:=0 Eljárás vége. Nem függ a halmaz elemszámától. Függvény Üres?(Konstans a:halmaz(elemtípus)): Logikai Üres?:=(a.db=0) Függvény vége. Nem függ a halmaz elemszámától. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 7/51

Halmaz típus ábrázolása Eljárás Beolvasás(Változó a:halmaz(elemtípus)): Be: a.db [a halmaz elemszáma] Ciklus i=1-től a.db-ig Be: a.elem(i) Eljárás vége. A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a halmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 8/51

Halmaz típus ábrázolása Eljárás Kiírás(Konstans a: Halmaz(Elemtípus)): Ki: a.db [a halmaz elemszáma] Ciklus i=1-től a.db-ig Ki: a.elem(i) Eljárás vége. A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a halmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 9/51

Halmaz típus ábrázolása Eljárás Halmazba(Változó a: Halmaz(Elemtípus), Konstans e: Elemtípus): i:=1 Ciklus amíg i a.db és a.elem(i) e i:+1 Ha i>a.db akkor a.db:+1; a.elem(a.db):=e Eljárás vége. A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a halmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 10/51

Halmaz típus ábrázolása Eljárás Halmazból(Változó a:halmaz(elemtípus), Konstans e: Elemtípus): i:=1 Ciklus amíg i a.db és a.elem(i) e i:+1 Ha i a.db akkor a.elem(i):=a.elem(a.db) a.db:-1 Eljárás vége. A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a halmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 11/51

Halmaz típus ábrázolása Függvény eleme(konstans e:elemtípus, a:halmaz(elemtípus)): Logikai i:=1 Ciklus amíg i a.db és e a.elem(i) i:+1 eleme:=i a.db Függvény vége. A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a halmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 12/51

Halmaz típus ábrázolása Függvény része(konstans a,b:halmaz(elemtípus)): Logikai i:=1 Ciklus amíg i a.db és eleme(a.elem(i),b) i:+1 része:=i>a.db Függvény vége. A ciklus az A halmaz elemszámaszor fut le, az eleme függvény pedig a B halmaz elemszámaszor, azaz a futási idő a két halmaz elemszámának szorzatával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 13/51

Halmaz típus ábrázolása Művelet unió(konstans a,b: Halmaz(Elemtípus)) er:halmaz(elemtípus) c:=a Ciklus i=1-től b.db-ig Ha nem eleme(b.elem(i),a) akkor c.db:+1; c.elem(c.db):=b.elem(i) er:=c Művelet vége. A külső ciklus a B halmaz elemszámaszor fut le, az eleme függvény pedig az A halmaz elemszámaszor, azaz a futási idő a két halmaz elemszámának szorzatával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 14/51

Halmaz típus ábrázolása Művelet metszet(konstans a,b:halmaz(elemtípus)) er:halmaz(elemtípus) c.db:=0 Ciklus i=1-től a.db-ig Ha eleme(a.elem(i),b) akkor c.db:+1; c.elem(c.db):=a.elem(i) er:=c Művelet vége. A külső ciklus az A halmaz elemszámaszor fut le, a belső legrosszabb esetben a B halmaz elemszámaszor, azaz a futási idő a két halmaz elemszámának szorzatával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 15/51

Halmaz típus ábrázolása Megjegyzések: A megoldás alapvető problémája, hogy sehol sem ellenőrizhető, hogy a halmazban valóban csak a benne előfordulható (alaphalmazbeli) elemek vannak. Az így ábrázolt halmazok elemtípusára semmilyen megkötést nem kell tennünk, hiszen egy tömbben bármilyen elem elhelyezhető. Arra sincs korlátozás, hogy mekkora lehet az alaphalmaz elemszáma, amiből a halmaz elemei származnak. Csak annyi a megkötésünk, hogy a konkrét halmazok elemszámát korlátozzuk. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 16/51

Halmaz típus ábrázolása Bittérkép logikai vektor Halmaz(Elemtípus)=Tömb(Min'Elemtípus.. Max'Elemtípus:Logikai) A halmazt {igaz,hamis} elemekből álló vektorként értelmezzük, ahol indexként használjuk az Elemtípusbeli értéket. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 17/51

Halmaz típus ábrázolása Eljárás Üres(Változó a: Halmaz(Elemtípus)): Ciklus i=min'elemtípus-tól Max'Elemtípus-ig a(i):=hamis Eljárás vége. A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a futási idő a halmaz elemtípusának számosságával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 18/51

Halmaz típus ábrázolása Függvény Üres?(Konstans a:halmaz(elemtípus)): Logikai i:=min'elemtípus Ciklus amíg i Max'Elemtípus és nem a(i) i:+1 Üres?:=(i>Max'Elemtípus) Függvény vége. A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a futási idő a halmaz elemtípusának számosságával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 19/51

Halmaz típus ábrázolása Eljárás Beolvasás(Változó a: Halmaz(Elemtípus)): Be: N [a halmaz elemszáma] Üres(a) Ciklus i=1-től N-ig Be: e; a(e):=igaz Eljárás vége. A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a halmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 20/51

Halmaz típus ábrázolása Eljárás Kiírás(Konstans a: Halmaz(Elemtípus)): Ciklus i=min'elemtípus-tól Max'Elemtípus-ig Ha a(i) akkor Ki: i Eljárás vége. A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a futási idő a halmaz elemtípusának számosságával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 21/51

Halmaz típus ábrázolása Eljárás Halmazba(Változó a: Halmaz(Elemtípus), Konstans e: Elemtípus): a(e):=igaz Eljárás vége. Nem függ a halmaz elemszámától. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 22/51

Halmaz típus ábrázolása Eljárás Halmazból(Változó a: Halmaz(Elemtípus), Konstans e: Elemtípus): a(e):=hamis Eljárás vége. Nem függ a halmaz elemszámától. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 23/51

Halmaz típus ábrázolása Függvény eleme(konstans e:elemtípus, a:halmaz(elemtípus)): Logikai eleme:=a(e) Függvény vége. Nem függ a halmaz elemszámától. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 24/51

Halmaz típus ábrázolása Függvény része(konstans a,b:halmaz(elemtípus)): Logikai i:=min'elemtípus Ciklus amíg i Max'Elemtípus és (nem a(i) vagy b(i)) i:+1 része:=i>max'elemtípus Függvény vége. A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a futási idő a halmaz elemtípusának számosságával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 25/51

Halmaz típus ábrázolása Művelet unió(konstans a,b: Halmaz(Elemtípus)) er:halmaz(elemtípus) Ciklus i=min'elemtípus-tól Max'Elemtípus-ig c(i):=a(i) vagy b(i) er:=c Művelet vége. A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a futási idő a halmaz elemtípusának számosságával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 26/51

Halmaz típus ábrázolása Művelet metszet(konstans a,b:halmaz(elemtípus)) er: Halmaz(Elemtípus) Ciklus i=min'elemtípus-tól Max'Elemtípus-ig c(i):=a(i) és b(i) er:=c Művelet vége. A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a futási idő a halmaz elemtípusának számosságával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 27/51

Halmaz típus ábrázolása Megjegyzések: Ennél az ábrázolásnál szigorú megkötés az, hogy a halmaz lehetséges elemei indexként használhatók legyenek! Emiatt így például nem definiálható síkbeli pontok halmaza, szavak halmaza, Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 28/51

Multihalmaz típus Értékhalmaz: Az alaphalmaz (amely az Elemtípus és egy darabszám direktszorzata által van meghatározva) iteráltja ( mely elem hányszoros multiplicitással van benne a multihalmazban ). Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 29/51

Multihalmaz típus Műveletek metszet ( ) (értékek metszete, multiplicitások minimuma) unió ( ) (értékek uniója, multiplicitások összege) max (értékek uniója, multiplicitások maximuma), különbség ( ) (értékek különbsége, multiplicitások különbsége; nincs benne egy elem, ha a multiplicitások különbsége 1-nél kisebb) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 30/51

Multihalmaz típus Műveletek eleme (egy elem benne van-e a multihalmazban) ( ) benne (egy elem legalább adott multiplicitással benne van-e a multihalmazban) multiplicitás (egy elem hányszoros multiplicitással van benne a multihalmazban) része (egyik multihalmaz részhalmaza-e a másiknak) ( ) mindközös? (a két multihalmaz az elemek multiplicitásától eltekintve azonos-e) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 31/51

Multihalmaz típus Műveletek Multihalmazba (elem hozzávétele egy multihalmazhoz): H:=H e,1} Multihalmazból (elem elhagyása egy multihalmazból): H:=H e,1} Beolvasás (multihalmaz beolvasása) Kiírás (multihalmaz kiírása), Üres (üres multihalmaz létrehozás eljárás), vagy Üres multihalmaz előre definiált konstans Üres? (logikai értékű függvény). Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 32/51

Multihalmaz típus Példák Típus Fajta=Rekord(érték: Szöveg, multi: Egész) Állomány=Multihalmaz(Fajta) Változó A: Állomány A:=Állomány(("nyúl",3),("kecske",5)) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 33/51

Multihalmaz típus ábrázolása Elemek felsorolása Típus Halmazelem=Rekord(érték: Elemtípus, multi: Egész) Multihalmaz(Elemtípus)= Rekord(db: Egész,elem: Tömb(1..MaxDb:Halmazelem)) Egy felsorolásként adjuk meg a multihalmazt, annyi elemű tömbben, ahány elemű éppen a multihalmaz (pontosabban az első db darab elemében). Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 34/51

Multihalmaz típus ábrázolása Eljárás Üres(Változó a:multihalmaz(elemtípus)): a.db:=0 Eljárás vége. Nem függ a multihalmaz elemszámától. Függvény Üres?(Konstans a:multihalmaz(elemtípus)):logikai Üres?:=(a.db=0) Függvény vége. Nem függ a multihalmaz elemszámától. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 35/51

Multihalmaz típus ábrázolása Eljárás Beolvasás(Változó a:multihalmaz(elemtípus)): Be: a.db [a multihalmaz elemszáma] Ciklus i=1-től a.db-ig Be: a.elem(i).érték,a.elem(i).multi Eljárás vége. A ciklus a multihalmaz elemértékeinek számaszor fut le, azaz a futási idő a multihalmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 36/51

Multihalmaz típus ábrázolása Eljárás Kiírás(Konstans a:multihalmaz(elemtípus)): Ki: a.db [a multihalmaz elemszáma] Ciklus i=1-től a.db-ig Ki: a.elem(i).érték,a.elem(i).multi Eljárás vége. A ciklus a multihalmaz elemértékeinek számaszor fut le, azaz a futási idő a multihalmaz elemszámával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 37/51

Multihalmaz típus ábrázolása Eljárás Multihalmazba(Változó a: Multihalmaz(Elemtípus),Konstans e:elemtípus): i:=1 Ciklus amíg i a.db és a.elem(i).érték e i:+1 Ha i a.db akkor a.elem(i).multi:+1 különben a.db:+1; a.elem(a.db).érték:=e a.elem(a.db).multi:=1 Elágazás vége Eljárás vége. Arányos a multihalmaz elemszámával. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 38/51

Multihalmaz típus ábrázolása Eljárás Multihalmazból(Változó a: Multihalmaz(Elemtípus),Konstans e: Elemtípus): i:=1 Ciklus amíg i a.db és a.elem(i).érték e i:+1 Ha i a.db akkor Ha a.elem(i).multi=1 akkor a.elem(i):=a.elem(a.db); a.db:-1 különben a.elem(i).multi:-1 Elágazás vége Elágazás vége Eljárás vége. Arányos a multihalmaz elemszámával. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 39/51

Multihalmaz típus ábrázolása Függvény eleme(konstans e: Elemtípus, a:multihalmaz(elemtípus)):logikai i:=1 Ciklus amíg i a.db és e a.elem(i).érték i:+1 eleme:=i a.db Függvény vége. Arányos a multihalmaz elemszámával. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 40/51

Multihalmaz típus ábrázolása Függvény multiplicitás(konstans e: Elemtípus, a: Multihalmaz(Elemtípus)):Egész i:=1 Ciklus amíg i a.db és e a.elem(i).érték i:+1 Ha i a.db akkor multiplicitás:=a.elem(i).multi különben multiplicitás:=0 Elágazás vége Függvény vége. Arányos a multihalmaz elemszámával. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 41/51

Multihalmaz típus ábrázolása Függvény benne(konstans e: Halmazelem, a:multihalmaz(elemtípus)): i:=1 Ciklus amíg i a.db és e.érték a.elem(i).érték i:+1 benne:=i a.db és e.multi a.elem(i).multi Függvény vége. Arányos a multihalmaz elemszámával. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 42/51

Multihalmaz típus ábrázolása Függvény része(konstans a,b:multihalmaz(elemtípus)):logikai i:=1 Ciklus amíg i a.db és benne(a.elem(i),b) i:+1 része:=i>a.db Függvény vége. A külső ciklus az A, a benne műveletben levő belső ciklus a B multihalmaz elemszámaszor fut le, azaz a futási idő a két multihalmaz elemszáma szorzatával arányos. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 43/51

Multihalmaz típus ábrázolása Művelet unió(konstans a,b:multihalmaz(elemtípus)) er:multihalmaz(elemtípus): c:=a Ciklus i=1-től b.db-ig j:=1 Ciklus amíg j a.db és b.elem(i).érték a.elem(j).érték j:+1... Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 44/51

Multihalmaz típus ábrázolása... Ha j>a.db akkor c.db:+1; c.elem(c.db):=b.elem(i) különben c.elem(j).multi:+b.elem(i).multi Elágazás vége er:=c Művelet vége. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 45/51

Multihalmaz típus ábrázolása Művelet max(konstans a,b:multihalmaz(elemtípus)) er:multihalmaz(elemtípus) c:=a Ciklus i=1-től b.db-ig j:=1 Ciklus amíg j a.db és b.elem(i).érték a.elem(j).érték j:+1... Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 46/51

Multihalmaz típus ábrázolása... Ha j>a.db akkor c.db:+1;c.elem(c.db):=b.elem(i) különben Ha b.elem(i).multi>c.elem(j).multi akkor c.elem(j).multi:=b.elem(i).multi Elágazás vége Elágazás vége er:=c Művelet vége. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 47/51

Multihalmaz típus ábrázolása Művelet metszet(konstans a,b: Multihalmaz(Elemtípus)) er:multihalmaz(elemtípus) c.db:=0 Ciklus i=1-től a.db-ig j:=1 Ciklus amíg j b.db és b.elem(j).érték a.elem(i).érték j:+1... Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 48/51

Multihalmaz típus ábrázolása... Ha j b.db akkor c.db:+1; c.elem(c.db):=a.elem(i) Ha b.elem(j).multi<a.elem(i).multi akkor c.elem(c.db).multi:=b.elem(j).multi Elágazás vége Elágazás vége er:=c Művelet vége. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 49/51

Multihalmaz típus ábrázolása Darabszám vektor Multihalmaz(Elemtípus)=Tömb(Min'Elemtípus.. Max'Elemtípus:Egész) Vegyünk fel egy annyi elemből álló sorozatot, amennyi az Elemtípus számossága! Legyen az i. elem x értékű, ha az i. lehetséges elem x-szer van benne a multihalmazban, illetve 0, ha nincs benne! Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2016.03.22. 50/51

Algoritmizálás és adatmodellezés tanítása 6. előadás vége