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

Hasonló dokumentumok
Adatszerkezetek I. 1. előadás

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

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

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

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

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

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

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

Programozás alapjai. 5. előadás

Programozási alapismeretek. Bevezető

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

Halmaz típus Értékhalmaz:

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

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

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

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

Struktúra nélküli adatszerkezetek

Kifejezések. Kozsik Tamás. December 11, 2016

Prmea2_ Az a jelsorozat, amellyel hivatkozhatunk a tartalmára, amely által módosíthatjuk tartalmát. Például:

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Kifejezések. Kozsik Tamás. December 11, 2016

PASzSz. Dr. Kotsis Domokos

Occam 1. Készítette: Szabó Éva

Algoritmizálás + kódolás C++ nyelven és Pascalban

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

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

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Egyszerű programok készítése Kifejezések Bitszintű műveletek Relációs műveletek... 58

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

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Multihalmaz, intervallumhalmaz

Algoritmusok - pszeudókód... 1

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

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

Java II. I A Java programozási nyelv alapelemei

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

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

SZÁMÍTÁSTUDOMÁNY ALAPJAI

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Programozás alapjai. 10. előadás

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

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

Adatszerkezetek II. 1. előadás

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Bevezetés az informatikába

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Tartalomjegyzék Algoritmusok - pszeudókód

Adatszerkezetek II. 10. előadás

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

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

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

Típusok. Programozás módszertan p.1/98

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Mutatók és mutató-aritmetika C-ben március 19.

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Adatszerkezetek II. 2. előadás

Az informatika kulcsfogalmai

Készítette: Nagy Tibor István

A félév során előkerülő témakörök

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

Programozás I gyakorlat

Dinamikus modellek szerkezete, SDG modellek

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Bevezetés a programozásba. 5. Előadás: Tömbök

kész OraHalmazProgram.exe programot a OraHalmaz_Keret.zip kicsomagolása után!

Máté: Számítógép architektúrák

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Diszkrét matematika I.

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

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

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

7. Strukturált típusok

Hátizsák feladat. Példa: A tárgyak (súly, fontosság) párokban (4,6) (3,5) (2,3) (2,3) a hátizsák kapacitása 8.

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

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

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

10. gyakorlat Struktúrák, uniók, típusdefiníciók

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Kombinatorikai algoritmusok

Java II. I A Java programozási nyelv alapelemei

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

Programozási nyelvek (ADA)

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

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

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

1.1 Halmazelméleti fogalmak, jelölések

Programozás 5. Dr. Iványi Péter

Átírás:

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

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ó A B Sokaság sok azonos típusú elem Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.03.09. 2/34

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 2015.03.09. 3/34

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 2015.03.09. 4/34

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 2015.03.09. 5/34

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 2015.03.09. 6/34

Elemi típusok Egész típus Értékhalmaz: 2 31..+ 2 31-1 (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 Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.03.09. 7/34

Egész típus Kettes komplemens ábrázolás: Elemi típusok Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.03.09. 8/34

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 2015.03.09. 9/34

Valós típus Lebegőpontos ábrázolás: Elemi típusok Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.03.09. 10/34

Logikai típus Elemi típusok É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 2015.03.09. 11/34

Karakter típus Elemi típusok Értékhalmaz: 0..255 - 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:Karakter Egész függvény, és inverze a Karakter:Egész Karakter 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 2015.03.09. 12/34

Részintervallum típus Elemi típusok Értékhalmaz: konstans 1..konstans 2 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 2015.03.09. 13/34

Felsorolás típus Elemi típusok Értékhalmaz: (konstans 1, konstans 2,..., konstans N ) 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 2015.03.09. 14/34

Felsorolás típus Be: ma Elemi típusok 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 h Hé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 2015.03.09. 15/34

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 2015.03.09. 16/34

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 2015.03.09. 17/34

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 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 2015.03.09. 18/34

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 2015.03.09. 19/34

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 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 2015.03.09. 20/34

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 2015.03.09. 21/34

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 2015.03.09. 22/34

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 2015.03.09. 23/34

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 2015.03.09. 24/34

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 2015.03.09. 25/34

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 2015.03.09. 26/34

Ö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 2015.03.09. 27/34

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 2015.03.09. 28/34

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 2015.03.09. 29/34

Rekord típus Típus Komplex=Rekord(re,im: Valós) Dátum=Rekord (év: 0..2100, 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 2015.03.09. 30/34

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 2015.03.09. 31/34

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 2015.03.09. 32/34

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 2015.03.09. 33/34

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