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

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

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

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

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

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

Adatszerkezetek I. 1. előadás

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

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

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

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

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

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

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

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

Az összetett programozási tételek is egy tőről fakadnak

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

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

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.

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

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

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

Ö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.

Egyszerű programozási tételek

Bevezetés az informatikába

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

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

Objektum Orientált Programozás VII.

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

PROGRAMOZÁSMÓDSZERTAN

Szövegfeldolgozás II.

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

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

Érdekes informatika feladatok

7. Strukturált típusok

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Összetett programozási tételek

Bevezetés a programozásba I.

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

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

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

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

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

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

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

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

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

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

ELEMI PROGRAMOZÁSI TÉTELEK

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

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Multihalmaz, intervallumhalmaz

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

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

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Adatszerkezetek I. 4. előadás

Programozási alapismeretek 3. előadás

Példatár a bevezetés a Matlab programozásába tárgyhoz

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Programozási alapismeretek 1. előadás

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

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

Programozási tételek. Dr. Iványi Péter

I. VEKTOROK, MÁTRIXOK

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

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

Informatikai tehetséggondozás:

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

Dinamikus modellek szerkezete, SDG modellek

Felvételi tematika INFORMATIKA

Adatszerkezetek 1. Dr. Iványi Péter

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Az informatika kulcsfogalmai

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

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

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

Struktúra nélküli adatszerkezetek

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

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

Programozási tételek. PPT 2007/2008 tavasz.

Matlab alapok. Baran Ágnes

Halmaz típus Értékhalmaz:

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

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

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Közismereti informatika I. 4. előadás

Operációs rendszerek gyak.

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

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

Szélsőérték-számítás

Numerikus módszerek beugró kérdések

Adatszerkezetek II. 1. előadás

Informatikai tehetséggondozás:

Matematika alapjai; Feladatok

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

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök. Adatfolyamok Hibalehetőségek

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

PROGRAMOZÁSMÓDSZERTAN

Átírás:

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

Összetett típusok 1 Rekord 2 Halmaz (+multialmaz, intervallumalmaz) 3 Tömb (vektor, mátrix) 4 Szekvenciális fájl (input, output) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 2/37

Sorozattípus műveletei Üres Létreoz Üres?/Teli? ElemSzám Beilleszt Kiagy Első/Utolsó Létreoz, elemek nélkül Létreoz, struktúrától függő elemekkel Ellenőrzi, ogy van-e eleme / bővítető lenne-e? Hány eleme van? Struktúrától függő elyre új elemet illeszt Struktúrától függő elyről elemet agy el Első / utolsó elemének értékét adja vissza Elejéről/Végéről Leválasztja a sorozat első / utolsó elemét, és értékét is visszaadja ElsőUtániak/UtolsóElőttiek Visszaadja a sorozatot az első / utolsó elem nélkül Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 3/37

Sorozattípus műveletei Elejére/Végére Elem ElemMódosít Elsőre/Utolsóra A sorozat első eleme elé / utolsó eleme mögé illeszt egy újat Struktúrától függően egy megatározott elemének értékét adja vissza Struktúrától függően megatározott elemének új értéket ad A struktúra első / utolsó elem lesz az aktuális (a volt ilyen) Előzőre/Következőre A struktúra aktuális eleme (a volt ilyen) legyen az eddigit megelőző / követő Első?/Utolsó? A struktúra aktuális eleme az első / utolsó elem-e? Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 4/37

Tömb típus Speciális vektorok, mátrixok (n*n-es négyzetes) Számtani, mértani sorozat, konstans sorozat Diagonális mátrix, tridiagonális mátrix Toeplitz-mátrix, Hankel-mátrix, Leslie-mátrix, Háromszög mátrix, szimmetrikus mátrix Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 5/37

Speciális szerkezetű tömbök Diagonális mátrix A 0-tól különböző elemei csak az ún főátlóban vannak (tetszőleges konstans érték is leetne a 0 elyett) Ábrázolása: Tömb(0n: Elemtípus) A 0 elem lesz a konstans érték, az i elem pedig a mátrix (i,i) indexű eleme a 0 0 Cím(i,j):Egész 0 b 0 0 Ha i=j akkor Cím:=i különben Cím:=0 0 0 c 0 Függvény vége 0 0 0 0 x 0 0 0 y Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 6/37

Speciális szerkezetű tömbök Tridiagonális mátrix A 0-tól különböző elemei csak az ún főátlóban, valamint az alatta és a fölötte levő átlóban vannak Ábrázolása: Tömb(03*n-2: Elemtípus) sorfolytonosan Cím(i,j):Egész Ha i-j 1 akkor Cím:=(i-1)*2+j különben Cím:=0 Függvény vége 2018 02 08 8:04??????? 8 7 6 5 4 3 2 1 t t 0 t t t 0 t t t t t 0 0 t t t 0 t t Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 7/37

Toeplitz mátrix Speciális szerkezetű tömbök A főátlóban és a vele páruzamos összes átlóban egyforma elemek vannak Ábrázolása: Tömb(12*n-1: Elemtípus) Első oszlop és első sor tárolásával: ( e c a b d ) 1: (n,1) átló, 2: (n-1,1) átló,, n: (1,1) átló,, 2*n-1: (1,n) átló Cím(i,j):Egész Cím:=n-(i-j) Függvény vége a b d c a b d e c a b Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 8/37 a b d c a b e c a

Hankel mátrix Speciális szerkezetű tömbök A mellékátlóban és a vele páruzamos összes átlóban egyforma elemek vannak Ábrázolása: Tömb(12*n-1: Elemtípus) Első sor és utolsó oszlop tárolásával: ( d b a c e ) 1: (1,1) átló, 2: (1,2) átló,, n: (1,n) átló,, 2*n-1: (n,n) átló Cím(i,j):Egész Cím:=i+j-1 Függvény vége d b a b a c a c e d b a d b a c a c e Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 9/37

Leslie mátrix Speciális szerkezetű tömbök Az első sorban és a (2,1)-ből induló átlóban vannak nem 0 elemek Ábrázolása: Tömb(02*n-1: Elemtípus) Az első n elem az első sor, amit az átló n-1 eleme követ Cím(i,j):Egész Ha i=1 akkor Cím:=j különben a i=j+1 akkor Cím:=n+j különben Cím:=0 Függvény vége 1 2 3 s s s sn á 2 0 0 0 0 á3 0 0 0 0 á 0 Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 10/37 n

Speciális szerkezetű tömbök Felső áromszög mátrix A főátlóban és felette vannak nem 0 elemek Ábrázolása: Tömb(0n*(n+1)/2: Elemtípus) Oszlopfolytonosan elyezzük el az elemeket a vektorban Cím(i,j):Egész Ha i j akkor Cím:=j*(j-1)/2+i különben Cím:=0 Függvény vége 0 0 0 1,1 1,2 2,2 0 0 1,3 2,3 3,3 0 0 1,n 2,n 3,n n,n Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 11/37

Speciális szerkezetű tömbök Alsó áromszög mátrix A főátlóban és alatta vannak nem 0 elemek Ábrázolása: Tömb(0n*(n+1)/2: Elemtípus) Sorfolytonosan elyezzük el az elemeket a vektorban Cím(i,j):Egész Ha i j akkor Cím:=i*(i-1)/2+j különben Cím:=0 Függvény vége 1,1 2,1 3,1 n,1 0 2,2 3,2 n,2 0 0 3,3 n,3 0 0 0 n,n Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 12/37

Speciális szerkezetű tömbök Szimmetrikus mátrix A főátlóra szimmetrikusak az elemek, azaz A(i,j)=A(j,i) Ábrázolása: Tömb(1n*(n+1)/2: Elemtípus) Oszlopfolytonosan elyezzük el az átló feletti elemeket a vektorban Cím(i,j):Egész Ha i j akkor Cím:=j*(j-1)/2+i különben Cím:=i*(i-1)/2+j Függvény vége 1,1 1,2 1,3 1,n Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 13/37 1,2 2,2 2,3 2,n 1,3 2,3 3,3 3,n 1,n 2,n 3,n n,n

Szövegfájlok Szövegfájl A szövegfájl karakterek sorozata: input fájl Műveletei: nyit, zár, olvas, vége? output fájl Műveletei: nyit, zár, ír Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 14/37

Szekvenciális fájl Fájl típus A szekvenciális fájl rekordok sorozata: input fájl Műveletei: nyit, zár, olvas, vége? output fájl Műveletei: nyit, zár, ír Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 15/37

Fájl feldolgozás Fájl típus FájlFeldolgoz(f,g): Nyit(f); Nyit(g) Ciklus amíg nem Vége?(f) Olvas(f,rek) Feldolgoz(rek,újrek) Ír(g,újrek) Ciklus vége Zár(f); Zár(g) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 16/37

Fájl típus Fájl feldolgozás előreolvasással FájlFeldolgoz(f,g): Nyit(f); Nyit(g); Olvas(f,rek) Ciklus amíg nem Vége?(f) Feldolgoz(rek,újrek); Ír(g,újrek) Olvas(f,rek) Ciklus vége Feldolgoz(rek,újrek) Ír(g,újrek) Zár(f); Zár(g) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 17/37

Fájl-vége kezelés logikai fájl-vége (saját megoldás) fizikai fájl-vége Eof függvény Státusz változó Fájl típus Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 18/37

Fájl típus Fájl feldolgozás előreolvasással státusz változó FájlFeldolgoz(f,g): Nyit(f); Nyit(g); Olvas(f,rek) Ciklus amíg Státusz(f)=OK Feldolgoz(rek,újrek) Ír(g,újrek) Olvas(f,rek) Ciklus vége Zár(f); Zár(g) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 19/37

Fájl típus Fájl feldolgozás előreolvasással logikai fájl-vége FájlFeldolgoz(f,g): Nyit(f); Nyit(g); Olvas(f,rek) Ciklus amíg nem Végjel?(rek) Feldolgoz(rek,újrek) Ír(g,újrek) Olvas(f,rek) Ciklus vége Zár(f); Zár(g) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 20/37

Másolás fájlból fájlba Programozási tételek szekvenciális fájlra Bemenet: XH *, f:h G Kimenet: YG * Előfeltétel: ossz(x)>0 Utófeltétel: ossz(y)=ossz(x) és i(i[1 ossz(x)]): Y i =f(x i ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 21/37

Programozási tételek szekvenciális fájlra Másolásfájlbólfájlba(fx,fy): Nyit(fx); Nyit(fy) Ciklus amíg nem Vége?(fx) Olvas(fx,x); y:=f(x); Ír(fy,y) Ciklus vége Zár(fx); Zár(fy) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 22/37

Programozási tételek szekvenciális fájlra Másolás fájlból vektorba Bemenet: XH *, f:h G Kimenet: Előfeltétel: YG ossz(x) ossz(x)>0 Utófeltétel: i(i[1ossz(x)]): Y i =f(x i ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 23/37

Programozási tételek szekvenciális fájlra Másolásfájlbólvektorba(fx,Y,N): Nyit(fx); N:=0 Ciklus amíg nem Vége?(fx) Olvas(fx,x) N:+1; Y(N):=f(x) Ciklus vége Zár(fx) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 24/37

Sorozatszámítás Programozási tételek szekvenciális fájlra Bemenet: XH *, F:H * H, f:hxh H, F 0 H F(X 1,,X N )=f(f(x 1,,X N-1 ),X N ), F()=F 0 Kimenet: SH Előfeltétel: ossz(x)>0 Utófeltétel: S=F(X 1,,X ossz(x) ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 25/37

Programozási tételek szekvenciális fájlra Sorozatszámítás(fx,S): S:=F0; Nyit(fx) Ciklus amíg nem Vége?(fx) Olvas(fx,y); S:=f(S,y) Ciklus vége Zár(fx) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 26/37

Programozási tételek szekvenciális fájlra Eldöntés Bemenet: Kimenet: Előfeltétel: Utófeltétel: XH *, T:H L VanL ossz(x)>0 Van=y(yX): T(y) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 27/37

Programozási tételek szekvenciális fájlra Előreolvasással: Eldöntés(f,Van): Nyit(f); Olvas(f,y) Ciklus amíg nem Vége?(f) és nem T(y) Olvas(f,y) Ciklus vége Van:=T(y); Zár(f) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 28/37

Kiválasztás Programozási tételek szekvenciális fájlra Bemenet: XH *, T:H L Kimenet: EH, SN Előfeltétel: y(yx): T(y) Utófeltétel: EX és T(E) és 1 S és E=X S Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 29/37

Programozási tételek szekvenciális fájlra Előreolvasással: Kiválasztás(f,E,S): Nyit(f); Olvas(f,y); S:=1 Ciklus amíg nem T(y) Olvas(f,y); S:=S+1 Ciklus vége E:=y; Zár(f) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 30/37

Maximumkiválasztás Bemenet: XH * Kimenet: Előfeltétel: Utófeltétel: Programozási tételek szekvenciális fájlra MaxIndN, MaxÉrtH ossz(x)>0 yx: MaxÉrt y és 1 MaxInd és MaxÉrt=X MaxInd Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 31/37

Programozási tételek szekvenciális fájlra Előreolvasással: Maximumkiválasztás(f,MaxÉrt,MaxInd): Nyit(f); Olvas(f,y); S:=1 MaxÉrt:=y; MaxInd:=1 Ciklus amíg nem Vége?(f) Olvas(f,y); S:=S+1 Ha MaxÉrt<y akkor MaxÉrt:=y; MaxInd:=S Ciklus vége Zár(f) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 32/37

Kiválogatás Bemenet: Kimenet: YH * Programozási tételek szekvenciális fájlra XH *, T:H L Előfeltétel: ossz(x)>0 Utófeltétel: YX és y(yy): T(y) és x(xx és xy): nem T(x) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 33/37

Programozási tételek szekvenciális fájlra Kiválogatás(f,g): Nyit(f); Nyit(g) Ciklus amíg nem Vége?(f) Olvas(f,y) Ha T(y) akkor Ír(g,y) Ciklus vége Zár(f); Zár(g) Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 34/37

Szétválogatás Bemenet: XH *, T:H L Kimenet: YH *, ZH * Előfeltétel: ossz(x)>0 Programozási tételek szekvenciális fájlra Utófeltétel: YX és y(yy): T(y) és ZX és z(zz): nem T(z) és X=ZY Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 35/37

Programozási tételek szekvenciális fájlra Szétválogatás(f,g,): Nyit(f); Nyit(g); Nyit() Ciklus amíg nem Vége?(f) Olvas(f,y) Ha T(y) akkor Ír(g,y) különben Ír(,y) Ciklus vége Zár(f); Zár(g); Zár() Eljárás vége Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2018 02 08 8:04 36/37

Algoritmizálás és adatmodellezés 2 előadás vége