Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Algoritmizálás és adatmodellezés tanítása
INFOÉRA 2006 Algoritmizálás és adatmodellezés tanítása 4. előadás Juhász István-Zsakó László: Informatikai képzések a ELTE-n
2
Típusok osztályozása Összetettség (strukturáltság) szempontjából:
INFOÉRA 2006 Típusok osztályozása Összetettség (strukturáltság) szempontjából: skalár (más szóval elemi vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási módok Keresztszorzat AxB Unió AB Sokaság sok azonos típusú elem Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 2
3
Típusok osztályozása Sokaság osztályozása rákövetkezés szerint
INFOÉRA 2006 Típusok osztályozása Sokaság osztályozása rákövetkezés szerint Halmaz: nincs rákövetkezési reláció Sorozat: minden elemet egy elem követ és egy előz meg (kivéve esetleg a két szélső elemet) Hierarchikus struktúra: minden elemet egy előz meg, de több is követhet Hálós struktúra: minden elemet több előzhet meg és több is követhet Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 3
4
Típusok osztályozása Sokaságtípusok néhány megjelenése
INFOÉRA 2006 Típusok osztályozása Sokaságtípusok néhány megjelenése Halmaz: halmaz, multihalmaz, intervallumhalmaz, táblázat, diszjunkt halmazfelbontás Sorozat: tömb, verem, sor, prioritási sor, listák, szekvenciális fájlok, függvény Hierarchikus struktúra: bináris fa, nem bináris fa Hálós struktúra: irányítatlan gráf, irányított gráf, programgráf, háló Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 4
5
Típusok műveletei A típusműveletek osztályozása:
INFOÉRA 2006 Típusok műveletei A típusműveletek osztályozása: értékadás (azonos típusúak közötti adatmozgatás) konstrukciós műveletek (strukturált érték létrehozása) szelekciós műveletek (strukturált érték részei kiválasztása) azonosság és más relációk számosság-függvény Min és Max típusoperátor Sorszám- (vagy Rend-) függvény transzformációs (a típuson értelmezett, a típusra képező függvények) Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 5
6
INFOÉRA 2006 Elemi típusok 1. Egész típusok (előjeles, előjel nélküli, különböző méretben) 2. Valós típusok (különböző méretben és pontossággal) 3. Logikai típus 4. Karakter típus (értékhalmaz problémák) 5. Felsorolás típus 6. (Rész)intervallum típus 7. Mutató típusok Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 6
7
Programozási alapismeretek
Elemi típusok Egész típus Értékhalmaz: – (Min'Egész..Max'Egész) Problémái: túlcsordulás ( asszociativitás, disztributivitás sértés) Műveletek: +, – , *, Div (egészosztás), ^ (pozitív egészkitevős hatványozás), Mod (osztási maradék), – (unáris mínusz) Relációk: =, <, , , , > Ábrázolás: kettes komplemens kódú Változatai: méret és előjel szerint sokfélék Pascal: byte, shortint, smallint, word, integer, longint, longword, int64 Pl. 3-bites 2-es komplemens kódú egész számok: +0=0|002, +1=0|012, +2=0|102, +3=0|112, -1=1|112, -2=1|102, -3=1|012, -4=0|002, Vegye észre a „szabályszerűségeket”! Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 7 7
8
Programozási alapismeretek
Elemi típusok Egész típus Kettes komplemens ábrázolás: Pl. 3-bites 2-es komplemens kódú egész számok: +0=0|002, +1=0|012, +2=0|102, +3=0|112, -1=1|112, -2=1|102, -3=1|012, -4=0|002, Vegye észre a „szabályszerűségeket”! Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 8 8
9
Programozási alapismeretek
Elemi típusok Valós típus Értékhalmaz: ????..???? (Min'Valós..Max'Valós nem definiáltak, vagy implementációfüggőek) Problémái: túlcsordulás, alulcsordulás ( asszociativitás, disztributivitás sértés, egyenlőség kérdése) Műveletek: +, –, *, /, ^, – (unáris mínusz) Relációk: =, <, , , , > Ábrázolás: lebegőpontos ábrázolás (pontosabb lenne, ha e típust racionálisnak neveznénk, mert csak racionális számot képes ábrázolni) Pascal: real, single, double, extended Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 9 9
10
Programozási alapismeretek
Elemi típusok Valós típus Lebegőpontos ábrázolás: Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 10 10
11
Programozási alapismeretek
Elemi típusok Logikai típus Értékhalmaz: Hamis..Igaz (Min'Logikai..Max'Logikai: Hamis, illetve Igaz) Műveletek: nem, és, vagy, kizáró vagy (a szokásos logikai műveletek) Relációk: =, <, , , , > Ábrázolás: 0B = Hamis, –1B = Igaz (esetleg: 1B = Igaz) … ahol xB=x érték „bináris egészként” ábrázolva Megjegyzés: a rendezésnek nem nagy a gyakorlati jelentősége. Pascal: Boolean Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 11 11
12
Programozási alapismeretek
Elemi típusok Karakter típus Értékhalmaz: kódú jelek – ASCII (Min'Karakter..Max'Karakter: a 0, illetve a 255 kódú karakter) Műveletek: karakter-specifikus nincs (esetleg a Kód:KarakterEgész függvény, és inverze a Karakter:EgészKarakter függvény, amelyek a belső ábrázolással hozza kapcsolatba) Relációk: =, <, , , , > (a belső ábrázolásuk alapján → nem ABC-sorrend!) Pascal: char Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 12 12
13
Programozási alapismeretek
Elemi típusok Részintervallum típus Értékhalmaz: konstans1..konstans2 A származtatás által meghatározott bázistípus adott részhalmaza, helyesebben részintervalluma. Műveletek: a bázistípus műveletei Relációk: a bázistípus relációi Példa: Típus hónap=1..12 Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 13 13
14
Programozási alapismeretek
Elemi típusok Felsorolás típus Értékhalmaz: (konstans1, konstans2, ... , konstansN) Műveletek: Következő(kifejezés), Előző(kifejezés), Rend(kifejezés). Példa: Típus Hét=(hétfő,kedd,szerda,csütörtök,péntek, szombat,vasárnap) Munkanap=hétfő..péntek Változó tegnap, ma, holnap, h : Hét; i: egész Konstans ünnepnap : Hét(vasárnap) Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 14 14
15
Programozási alapismeretek
Elemi típusok Felsorolás típus Be: ma Ha ma=Min'Hét akkor tegnap:=Max'Hét különben tegnap:=Előző(ma) i:=Rend(ma) Ha ma=Max'Hét akkor holnap:=Min'Hét különben holnap:=Következő(ma) Ciklus hHét Ki: h Ciklus vége Pascal: for h in het do write(h); Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Szlávi-Zsakó: Programozás alapjai 2. Szlávi-Zsakó: Programozás alapjai 2. 15 15
16
Mutató típusok Tulajdonságok:
INFOÉRA 2006 Mutató típusok Tulajdonságok: A mutató típus memóriacímek, illetve azokon a címeken levő értékek kezelésére szolgál. Az ilyen típusú változók (ti. amire a mutató típus mutat) automatikusan nem születnek meg (nem kerülnek be a memóriába) és nem is szűnnek meg – erről magunknak kell gondoskodni. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 16
17
INFOÉRA 2006 Mutató típusok Tetszőleges (többnyire összetett) típushoz, mint bázistípushoz (TB) szervesen tartozhat egy-egy ilyen típus. Egy konkrét mutató típusú objektum csak egyfajta (nevezetesen TB-típusú) elemek kezdőcímeit hordozhatja. Kezdőérték: Sehova Műveletek: Lefoglal(m), illetve Lefoglal(m,e) Felszabadít(m) tartalom(m) vagy TB(m) Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 17
18
Mutató típusok Példa: Rendezzünk ábécé-sorrendbe N szöveget!
INFOÉRA 2006 Mutató típusok Példa: Rendezzünk ábécé-sorrendbe N szöveget! Alapmegoldás: Ciklus i=1-től N—1-ig Ciklus j=i+1-től N-ig Ha S(j)<S(i) akkor Csere(S(i),S(j)) Ciklus vége Eljárás vége. Probléma: Szöveg cseréje hosszú szövegek esetén sokáig tarthat. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 18
19
Mutató típusok Példa: Rendezzünk ábécé-sorrendbe N szöveget!
INFOÉRA 2006 Mutató típusok Példa: Rendezzünk ábécé-sorrendbe N szöveget! Ötlet: Vezessünk be N mutató típusú változót és beolvasáskor a szövegeknek foglaljunk helyet! Eljárás Beolvasás: Ciklus i=1-től N-ig Be: S; Lefoglal(M(i),S) Ciklus vége Eljárás vége. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 19
20
Mutató típusok Példa: Rendezzünk ábécé-sorrendbe N szöveget!
INFOÉRA 2006 Mutató típusok Példa: Rendezzünk ábécé-sorrendbe N szöveget! Eljárás Mutatós megoldás: Ciklus i=1-től N—1-ig Ciklus j=i+1-től N-ig Ha tartalom(M(j))<tartalom(M(i)) akkor Csere(M(i),M(j)) Ciklus vége Eljárás vége. Itt tehát nem a hosszú szövegeket cserélgetjük, hanem a rövid mutatókat. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 20
21
Modul - típusmegvalósítás
INFOÉRA 2006 Modul - típusmegvalósítás Típus értékhalmaz művelethalmaz Típusmegvalósítás modul (fordítási egység) specifikáció reprezentáció implementáció Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 21
22
Modul - típusmegvalósítás
INFOÉRA 2006 Modul - típusmegvalósítás Specifikáció – exportmodul ExportModul TípusModulNév(InputParaméterek): Típus Tip Konstans Konst1,Konst2,... Függvény Fv1(FormParam): FvTip1 Eljárás Elj1(FormParam) Operátor Op1(FormParam) név: OpTip1 ... Modul vége. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 22
23
Modul - típusmegvalósítás
INFOÉRA 2006 Modul - típusmegvalósítás Reprezentáció és implementáció Modul TípusModulNév(InputParaméterek): Reprezentáció Típus Tip=típuskonstrukció ... Implementáció Eljárás Elj1(FormParam): Eljárás vége. Modul vége. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 23
24
Modul - típusmegvalósítás
INFOÉRA 2006 Modul - típusmegvalósítás A modul Pascalban a modul önálló fordítási egység nincs modulparaméter nincs külön exportmodul a specifikáció és a reprezentáció nem választható szét a modul tartalmazhat inicializáló részt Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 24
25
Modul - típusmegvalósítás
INFOÉRA 2006 Modul - típusmegvalósítás Unit TípusModulNév; Interface Uses más modulok; ... {specifikáció és reprezentáció} Implementation ... {műveletek megvalósítása} Begin ... {kezdőértékek beállítása, ha szükséges} End. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 25
26
Modul - típusmegvalósítás
INFOÉRA 2006 Modul - típusmegvalósítás Problémák a modulbeli típusmegvalósítással Ugyanaz a művelet név lehet több célra is? IGEN, ha a paraméterekből kiderül, melyikről van szó. Lehet a típust paraméterezni (másik típussal?) IGEN, ha egyetlen paraméterezés kell (új modullal, ami csak a típust tartalmazza); más megoldás kell rá, ha többféle is lehet. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 26
27
Összetett típusok Direkt szorzat Sokaság 1. Rekord
INFOÉRA 2006 Összetett típusok Direkt szorzat 1. Rekord Sokaság 2. Halmaz (+multihalmaz, intervallumhalmaz) 3. Tömb (vektor, mátrix) 4. Szekvenciális fájl (input, output) (5. Sor 6. Verem) Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 27
28
INFOÉRA 2006 Rekord típus A rekord névvel ellátott részek (ún. mezők) direkt szorzata. Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 28
29
INFOÉRA 2006 Rekord típus Értékhalmaz: a mezők értéktípusai által meghatározott alaphalmazok direktszorzata. Műveletek: szelekciós függvény ('.mezőszelektor' nevű) , konstrukciós függvény (Rekordtípus nevű), elképzelhetők: transzformációs függvények, amelyek a teljes rekordstruktúrát érintik. Relációk: = (mezőnkénti egyezés-), . Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 29
30
Rekord típus Típus Komplex=Rekord(re,im: Valós)
INFOÉRA 2006 Rekord típus Típus Komplex=Rekord(re,im: Valós) Dátum=Rekord (év: , hó: 1..12, nap: 1..31) Változó a,b,c: Komplex; d: dátum; Konstans egység1 : Komplex(re:1,im:0) egység2 : Komplex(re:0,im:1) karácsony: Dátum(év:0,hó:12,nap:24) a.re:=1; d:=karácsony; d.év:=2014 Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 30
31
INFOÉRA 2006 Rekord típus Művelet +(a,b: komplex) osszeg: komplex osszeg:=komplex(a.re+b.re,a.im+b.im) Művelet vége. Eljárás ki(a: komplex) Ki: a.re,’+i*’,a.im Eljárás vége. ... c:=a+komplex(0,1); ki(c) Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 31
32
Rekord típus Rövidítés: a:=Pont(1,2) Típus Pont = Rekord(x,y: Egész)
INFOÉRA 2006 Rekord típus Típus Pont = Rekord(x,y: Egész) SzínesPont = Rekord (p: pont, szín: (piros,fehér,zöld)) Változó a: Pont b: SzínesPont i: egész a:=Pont(x:1,y:2); b.p:=a; b.szín:=piros i:=b.p.x Rövidítés: a:=Pont(1,2) Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 32
33
INFOÉRA 2006 Rekord típus Művelet <(a,b: Pont) kisebb: logikai kisebb:=a.x<b.x és a.y<b.y Művelet vége. Változó p,q: Pont ... ha p<q akkor ... Pap Gáborné – Zsakó László: Algoritmizálás, adatmodellezés Juhász István-Zsakó László: Informatikai képzések a ELTE-n 33
34
Programozási alapismeretek
Algoritmizálás és adatmodellezés tanítása 4. előadás vége 2008/2009.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.