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

Hasonló dokumentumok
Algoritmizálás és adatmodellezés 2. 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 tanítása 2. előadás

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

PROGRAMOZÁSMÓDSZERTAN

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

Objektum Orientált Programozás VII.

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

Összetett programozási tételek

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

Bevezetés az informatikába

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

Szövegfeldolgozás II.

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

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

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

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

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

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

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

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

Egyszerű programozási tételek

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

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

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

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Algoritmusok helyességének bizonyítása. A Floyd-módszer

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

Programozási alapismeretek 11. előadás

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

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

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

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

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

Az Összegfokozatos listázás téma 2. gyakorlata

ELEMI PROGRAMOZÁSI TÉTELEK

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

Tartalom. Programozási alapismeretek. 11. előadás

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

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

Mintavételes szabályozás mikrovezérlő segítségével

INFORMATIKAI ALAPISMERETEK

Konzolalkalmazások gyors tesztelése

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

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

Operációs rendszerek gyak.

BASH script programozás II. Vezérlési szerkezetek

Fordítás Kódoptimalizálás

INFORMATIKA javítókulcs 2016

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

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

Programozási alapismeretek 3. előadás

PROGRAMOZÁSMÓDSZERTAN

Bevezetés a C++ programozásba

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Informatikai tehetséggondozás:

Bevezetés a programozásba I.

Minta felvételi feladatsor programozásból

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

Objektumorientált Programozás VI.

Bevezetés a programozásba

Megoldott feladatok. Informatika

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

Összetett programozási tételek 2.

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

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

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

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

S z á m í t ó g é p e s a l a p i s m e r e t e k

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

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

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

Adatszerkezetek I. 1. előadás

DOKUMENTÁCIÓ KÉSZÍTETTE: Naszári László I. évf. levelező Informatika tanári szak 2003.

Felvételi tematika INFORMATIKA

84)Adott a következőképpen értelmezett f alprogram. Milyen értéket térit vissza f(1)? És f(100)? function f(x:integer):integer; begin

Függvényegyenletek 1. feladat megoldása

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

Szkriptnyelvek. 1. UNIX shell

Szerző. Természetesen aktualizálandó adatok.

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

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

Átírás:

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

Szövegfájl Fájl típus 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 2017.02.28. 2/32

Szövegfájl műveletek Nyit(f,Név) Fájl típus Pascalban assign(f,név); reset(f) assign(f,név); rewrite(f) close(f) Zár(f) Olvas(f,Adatok) read(f,adatok) SorOlvas(f,Adatok) readln(f,adatok) Ír(f,Adatok) write(f,adatok) SorÍr(f,Adatok) writeln(f,adatok) Vége?(f) eof(f) Adatok: tetszőleges elemi típusok sorozata, mintha billentyűzetről olvasnánk vagy képernyőre írnánk Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 3/32

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 2017.02.28. 4/32

Fájl típus Fájl műveletek Nyit(f,Név) Zár(f) Olvas(f,rekord) Ír(f,rekord) Vége?(f) Pascalban assign(f,név); reset(f) assign(f,név); rewrite(f) close(f) read(f,rekord) write(f,rekord) eof(f) a fájltípusok összehasonlítása Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 5/32

Fájl feldolgozás Fájl típus Eljárás 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. assign(f, input ); reset(f); assign(g, output ); rewrite(g); while not eof(f) do begin read(f,rek); feldolgoz(rek,ujrek); write(g,ujrek); end; close(f); close(g); Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 6/32

Fájl típus Fájl feldolgozás előreolvasással Eljárás 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. read(f,rek); while not eof(f) do begin feldolgoz(rek,ujrek); write(g,ujrek); read(f,rek); end; feldolgoz(rek,ujrek); write(g,ujrek); Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 7/32

Fájl típus 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ó Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 8/32

Fájl típus Fájl feldolgozás előreolvasással státusz változó Eljárás 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. read(f,rek); while... do begin feldolgoz(rek,ujrek); write(g,ujrek); read(f,rek); end; Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 9/32

Fájl típus Fájl feldolgozás előreolvasással logikai fájl-vége Eljárás 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. read(f,rek); while not Végjel?(rek) do begin feldolgoz(rek,ujrek); write(g,ujrek); read(f,rek); end; Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 10/32

Másolás fájlból fájlba Bemenet: X H *, f:h G Kimenet: Y G * Előfeltétel: hossz(x)>0 Utófeltétel: hossz(y)=hossz(x) és i(i [1.. hossz(x)]): Y i =f(x i ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 11/32

Tipus Tbe=Fájl(TH); Tki=Fájl(TG) Eljárás Másolásfájlbólfájlba(Változó fx:tbe,fy:tki): Változó x:th,y:tg 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. A deklarációs részeket a későbbiekben elhagyjuk, a lényegre koncentrálunk. Lásd rövidebben a tétel: Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 12/32

Eljárás 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 2017.02.28. 13/32

Másolás fájlból vektorba Bemenet: X H *, f:h G Kimenet: Y G hossz(x) Előfeltétel: hossz(x)>0 Utófeltétel: i(i [1..hossz(X)]): Y i =f(x i ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 14/32

Eljárás 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 2017.02.28. 15/32

Másolás vektorból fájlba Bemenet: N N, X H N, f:h G Kimenet: Y G * Előfeltétel: N>0 Utófeltétel: hossz(y)=n és i(i [1..N]): Y i =f(x i ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 16/32

Eljárás Másolásvektorbólfájlba(fy,X,N): Nyit(fy) Ciklus i=1-től N-ig y:=f(x(i)) Ír(fy,y) Ciklus vége Zár(fy) Eljárás vége. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 17/32

Sorozatszámítás Bemenet: X H *, 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: S H Előfeltétel: hossz(x)>0 Utófeltétel: S=F(X 1,...,X hossz(x) ) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 18/32

Eljárás 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 2017.02.28. 19/32

Eldöntés Bemenet: X H *, T:H L Kimenet: Van L Előfeltétel: hossz(x)>0 Utófeltétel: Van= y(y X): T(y) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 20/32

Előreolvasással: Eljárás 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. Figyelem! Vektorok esetén a Van:=T(X(i)) értékadás hibás volt! Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 21/32

Kiválasztás Bemenet: X H *, T:H L Kimenet: E H, S N Előfeltétel: y(y X): T(y) Utófeltétel: E X és T(E) és 1 S és E=X S Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 22/32

Előreolvasással: Eljárás 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 2017.02.28. 23/32

Maximumkiválasztás Bemenet: X H * Kimenet: Előfeltétel: hossz(x)>0 MaxInd N, MaxÉrt H Utófeltétel: y X: MaxÉrt y és 1 MaxInd és MaxÉrt=X MaxInd Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 24/32

Előreolvasással: Eljárás 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 2017.02.28. 25/32

Kiválogatás Bemenet: Kimenet: Y H * X H *, T:H L Előfeltétel: hossz(x)>0 Utófeltétel: Y X és y(y Y): T(y) és x(x X és x Y): nem T(x) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 26/32

Eljárás 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 2017.02.28. 27/32

Szétválogatás Bemenet: X H *, T:H L Kimenet: Y H *, Z H * Előfeltétel: hossz(x)>0 Utófeltétel: Y X és y(y Y): T(y) és Z X és z(z Z): nem T(z) és X=Z Y Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 28/32

Eljárás Szétválogatás(f,g,h): Nyit(f); Nyit(g); Nyit(h) Ciklus amíg nem Vége?(f) Olvas(f,y) Ha T(y) akkor Ír(g,y) különben Ír(h,y) Elágazás vége Ciklus vége Zár(f); Zár(g); Zár(h) Eljárás vége. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 29/32

Unió rendezett halmazokra összefuttatás Bemenet: X,Y H * Kimenet: Z H * Előfeltétel: halmaze(x) és halmaze(y) és hossz(x)>0 és hossz(y)>0 és Utolsó(X)=+ és Utolsó(Y)=+ és rendezette(x) és rendezette(y) Utófeltétel: z(z Z): z X vagy z Y és halmaze(z) és x(x X): x Z és y(y Y): y Z és Utolsó(Z)=+ és rendezette(z) Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 30/32

Előreolvasással: Eljárás Összefuttatás(f,g,h): Nyit(f); Nyit(g); Nyit(h); Olvas(f,x); Olvas(g,y) Ciklus amíg nem Vége?(f) vagy nem Vége?(g) Elágazás x<y esetén Ír(h,x); Olvas(f,x) x=y esetén Ír(h,x); Olvas(f,x); Olvas(g,y) x>y esetén Ír(h,y); Olvas(g,y) Elágazás vége Ciklus vége Ír(h,x); Zár(f); Zár(g); Zár(h) Eljárás vége. Pap Gáborné, Zsakó László: Algoritmizálás, adatmodellezés 2017.02.28. 31/32

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