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

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

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

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, 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 2. előadás

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

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

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

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.

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 és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

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

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

Egyszerű programozási tételek

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

PROGRAMOZÁSMÓDSZERTAN

Programozási alapismeretek 3. előadás

ELEMI PROGRAMOZÁSI TÉTELEK

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

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

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

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

Összetett programozási tételek

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

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

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

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

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

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

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

Bevezetés az informatikába

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

PROGRAMOZÁSMÓDSZERTAN

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

Informatikai tehetséggondozás:

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

Programozási alapismeretek 11. előadás

Programozási alapismeretek 1. előadás

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

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

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

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

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

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

1.félév/1. Programozásmódszertan 1. ZH

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

Objektum Orientált Programozás VII.

Felvételi tematika INFORMATIKA

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

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

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

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

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

Adatszerkezetek I. 1. előadás

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

Utolsó módosítás: Feladat egy kétváltozós valós függvény kirajzolása különféle megjelenítési módszerekkel.

Multihalmaz, intervallumhalmaz

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

Programozási segédlet

Objektumorientált Programozás VI.

Visszalépéses keresés

Adatszerkezetek II. 10. előadás

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

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

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

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

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

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

Informatikai tehetséggondozás:

Adatszerkezetek II. 1. előadás

PROGRAMOZÁSI TÉTELEK

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

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

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

Dinamikus modellek szerkezete, SDG modellek

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

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

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Számításelmélet. Második előadás

Egyszerű programozási tételek

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

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

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Egyszerű programozási tételek

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Láncolt listák Témakörök. Lista alapfogalmak

Informatikai tehetséggondozás:

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

Számítógép és programozás 2

Maximum kiválasztás tömbben

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Algoritmusok és Adatstruktúrák

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

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

Térinformatikai algoritmusok Elemi algoritmusok

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Átírás:

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

Tartalom Összegzés vektorra, mátrixra Megszámolás vektorra, mátrixra Maximum-kiválasztás vektorra, mátrixra Eldöntés vektorra, mátrixra Kiválasztás vektorra, mátrixra Keresés vektorra, mátrixra Kiválogatás vektorra, mátrixra Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 2/36

Specifikáció: S H, N,M N X H N Y H N M N a sorok, M az oszlopok száma Specifikáció- és algoritmusbeli jelölések H: Z vagy R vagy N a tömbök TH: a H Algoritmus: Konstans maximális méretei maxn,maxm:egész(???) Típus Ttomb=Tömb(1..maxN:TH) Tmatrix= Tömb(1..maxN,1..maxM:TH) Változó N,M:Egész; S:TH X:Ttomb; Y:Tmatrix Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. halmaznak megfelelő típus 3/36

1. Összegzés Specifikáció (összegzés): Bemenet: N N, X H N Kimenet: S H Előfeltétel: N Utófeltétel: S= Definíció: N Σ i 1 i 1 X i X i : 0 N i 1 Σ 1 X i X N,, H: Z vagy R vagy N N 0 N 0 Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 4/36

1. Összegzés Algoritmus: Konstans maxn:egész(???) Típus Ttomb=Tömb(1..maxN:TH) Változó N:Egész X:Ttomb S:TH Programparaméterek deklarálása maxn: a tömb maximális mérete TH: a H halmaznak megfelelő típus Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 5/36

1. Összegzés Eljárás Összegzés(Konstans N:Egész, X:Ttomb, Változó S:TH): Változó i:egész S:=0 Ciklus i=1-től N-ig S:=S+X(i) Ciklus vége Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 6/36

1. Összegzés mátrixra Specifikáció: Bemenet: N,M N, X H N M Kimenet: S H Előfeltétel: N Utófeltétel: S= i 1 M j 1 X i,j H: Z vagy R vagy N Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 7/36

1. Összegzés mátrixra Algoritmus: A megoldás lényegében csak abban különbözik az alapváltozattól, hogy a mátrix miatt két egymásba ágyazott ciklusra van szükség. Konstans maxn,maxm:egész(???) Típus Tmatrix=Tömb(1..maxN,1..maxM:TH) Változó N,M:Egész X:Tmatrix S:TH Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 8/36

1. Összegzés mátrixra Eljárás Összegzés(Konstans N,M:Egész, X:Tmatrix, Változó S:TH): Változó i,j:egész S:=0 Ciklus i=1-től N-ig Ciklus j=1-től M-ig S:=S+X(i,j) Ciklus vége Ciklus vége Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 9/36

2. Megszámolás Specifikáció: Bemenet: N N, X H N, T:H L Kimenet: Db N Előfeltétel: N Utófeltétel:Db= T(X i 1 ) i 1 H: tetszőleges halmaz T: tetszőleges tulajdonság-függvény Megjegyzés: A T tulajdonság egy logikai függvényként adható meg. X minden eleméről megvizsgálható, hogy rendelkezik-e az adott tulajdonsággal vagy sem. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 10/36

2. Megszámolás Eljárás Megszámolás(Konstans N:Egész, X:Ttomb, Változó Db:Egész): Változó i:egész Db:=0 Ciklus i=1-től N-ig Ha T(X(i)) akkor Db:+1 Ciklus vége Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 11/36

2. Megszámolás mátrixra Specifikáció: Bemenet: N,M N, X H N M, T:H L Kimenet: Db N Előfeltétel: N M Utófeltétel: Db= 1 i 1 j 1 T(X i,j ) H: tetszőleges halmaz T: tetszőleges tulajdonság-függvény Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 12/36

2. Megszámolás mátrixra Eljárás Megszámolás(Konstans N,M:Egész,X:Tmatrix, Változó Db:Egész): Változó i,j:egész Db:=0 Ciklus i=1-től N-ig Ciklus j=1-től M-ig Ha T(X(i,j)) akkor Db:+1 Ciklus vége Ciklus vége Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 13/36

3. Maximum-kiválasztás Specifikáció: Bemenet: N N, X H N Kimenet: Max N, Maxert H Előfeltétel: N>0 Utófeltétel: 1 Max N és i (1 i N): X Max X i és Maxert=X Max Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 14/36

3. Maximum-kiválasztás Eljárás Maximumkiválasztás(Konstans N:Egész X:Ttomb, Változó Max:Egész,Maxert:TH): Változó i:egész Max:=1; Maxert:=X(1) Ciklus i=2-től N-ig Ha X(i)>Maxert akkor Max:=i; Maxert:=X(i) Ciklus vége Eljárás vége. Kérdések: Több maximális esetén hányadik? Hogyan lesz belőle utolsó maximális? Hogyan lesz belőle (első) minimális? Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 15/36

3. Maximum-kiválasztás Specifikáció: mátrixra Bemenet: N,M N, X H N M Kimenet: Maxi,Maxj N, Maxert H Előfeltétel: N>0 és M>0 Utófeltétel: 1 Maxi N és 1 Maxj M és i,j (1 i N) (1 j M):X Maxi,Maxj X i,j és Maxert=X Maxi,Maxj Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 16/36

3. Maximum-kiválasztás mátrixra Eljárás Maximumkiválasztás(Konstans N,M:Egész, X:Tmatrix, Változó Maxi,Maxj:Egész,Maxert:TH): Változó i,j:egész Maxi:=1; Maxj:=1; Maxert:=X(1,1) Ciklus i=1-től N-ig Ciklus j=1-től M-ig Ha X(i,j)>Maxert akkor Maxi:=i; Maxj:=j; Maxert:=X(i,j) Ciklus vége Ciklus vége Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 17/36

Specifikáció: 4. Eldöntés Bemenet: N N, X H N, T:H L Kimenet: Vane L Előfeltétel: Utófeltétel: Vane= i(1 i N): T(X i ) Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 18/36

4. Eldöntés Eljárás Eldöntés(Konstans N:Egész, X:Ttomb, Változó Vane:Logikai): Változó i:egész i:=1 Ciklus amíg i N és nem T(X(i)) i:+1 Ciklus vége Vane:=i N Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 19/36

4. Eldöntés mátrixra Feladat: Van-e egy mátrixban adott tulajdonságú elem? Specifikáció: Bemenet: N,M N, X H N M, T:H L Kimenet: Vane L Előfeltétel: Utófeltétel: Vane= i,j(1 i N)(1 j M):T(X i,j ) 2015.02.17. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 20/36

4. Eldöntés mátrixra Eljárás Eldöntés(Konstans N,M:Egész, X:Tmatrix, Változó Vane:Logikai): Változó i,j:egész i:=1; j:=1 Ciklus amíg i N és nem T(X(i,j)) Ha j<m akkor j:+1 különben i:+1; j:=1 Ciklus vége Vane:=i N Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 21/36

Specifikáció: 5. Kiválasztás Bemenet: N N, X H N, T:H L Kimenet: Ind N Előfeltétel: N>0 és i (1 i N): T(X i ) Utófeltétel: 1 Ind N és T(X Ind ) Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 22/36

5. Kiválasztás Eljárás Kiválasztás(Konstans N:Egész, X:Ttomb, Változó Ind:Egész): Változó i:egész i:=1 Ciklus amíg nem T(X(i)) i:+1 Ciklus vége Ind:=i Eljárás vége. Többlet tudás: a megoldás az első adott tulajdonságú elemet adja meg. Hogy kellene az utolsót megadni? Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 23/36

Specifikáció: 5. Kiválasztás mátrixra Bemenet: N,M N, X H N M, T:H L Kimenet: Indi,Indj N Előfeltétel: N>0 és M>0 és i,j (1 i N) (1 j M): T(X i,j ) Utófeltétel: 1 Indi N és 1 Indj M és T(X Indi,Indj ) Megjegyzés: a kimeneti indexpárt egy rekordban is tárolhattuk volna! Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 24/36

5. Kiválasztás mátrixra Eljárás Kiválasztás(Konstans N,M:Egész, X:Tmatrix, Változó Indi,Indj:Egész): Változó i,j:egész i:=1; j:=1 Ciklus amíg nem T(X(i,j)) Ha j<m akkor j:+1 különben i:+1; j:=1 Ciklus vége Indi:=i; Indj:=j Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 25/36

Specifikáció: 6. Keresés Bemenet: N N, X H N, T:H L Kimenet: Van L, Ind N Előfeltétel: Utófeltétel: Van= i (1 i N): T(X i ) és Van 1 Ind N és T(X Ind ) Tehát a feladat egyik fele az eldöntésből, a másik fele a kiválasztásból jön. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 26/36

6. Keresés Eljárás Keresés(Konstans N:Egész, X:Ttomb, Változó Vane:Logikai, Ind:Egész): Változó i:egész i:=1 Ciklus amíg i N és nem T(X(i)) i:+1 Ciklus vége Vane:=i N Ha Vane akkor Ind:=i Eljárás vége. Többlet tudás: a megoldás az első adott tulajdonságú elemet adja meg. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 27/36

6. Keresés mátrixra Feladat: Van-e egy mátrixban adott tulajdonságú elem és ha van, akkor hol? Specifikáció: Bemenet: N,M N, X H N M, T:H L Kimenet: Vane L, Indi,Indj N Előfeltétel: Utófeltétel: Vane= i,j(1 i N)(1 j M): T(X i,j ) és Vane 1 Indi N és 1 Indj M és T(X Indi,Indj ) 2015.02.17. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 28/36

Algoritmus: 6. Keresés mátrixra Eljárás Keresés(Konstans N,M:Egész, X:Tmatrix, Változó Vane:Logikai, Indi,Indj:Egész): Változó i,j:egész... Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 29/36

Algoritmus (folyt): 6. Keresés mátrixra. i:=1; j:=1 Ciklus amíg i N és nem T(X(i,j)) Ha j<m akkor j:+1 különben i:+1; j:=1 Ciklus vége Vane:=i N Ha Vane akkor Indi:=i; Indj:=j Eljárás vége. Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 30/36

7. Kiválogatás Specifikáció: Bemenet: N N, X H N, T:H L Kimenet: Db N, Y N N Előfeltétel: Utófeltétel: Db= N T(X i 1 ) i 1 és i(1 i Db): T(X Y ) és Y (1,2,,N) i Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 31/36

7. Kiválogatás Típus Ttomb2=Tömb(1..maxN:Egész) Eljárás Kiválogatás(Konstans N:Egész, X:Ttomb, Változó Db:Egész, Y:Ttomb2): Változó i:egész Db:=0 Ciklus i=1-től N-ig Ha T(X(i)) akkor Db:+1; Y(Db):=i Ciklus vége Eljárás vége. A sorszám általánosabb mint az érték, ha mégis érték kellene, akkor Y(Db):=X(i) szerepelne. (Ekkor a specifikációt is módosítani kell!) Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 32/36

7. Kiválogatás mátrixra Specifikáció: Bemenet: N,M N, X H N M, T:H L Kimenet: Db N, Y Hely N*M, Hely=S O, S,O=N Előfeltétel: Utófeltétel: Db= N i 1 M j 1 T(X i,j 1 ) és i(1 i Db):T(X Y i.s,yi.o) és Y ((1,1), (1,2), (1,M), (2,1),. (N,M)) Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 33/36

7. Kiválogatás mátrixra Algoritmus: Típus THely=Rekord(s,o:Egész) Ttomb2=Tömb(1..maxN*maxM:THely) Eljárás Kiválogatás(Konstans N,M:Egész, X:Tmatrix, Változó Db:Egész, Y:Ttomb2): Változó i,j:egész Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 34/36

7. Kiválogatás mátrixra Algoritmus (folyt): Db:=0 Ciklus i=1-től N-ig Ciklus j=1-től M-ig Ha T(X(i,j)) akkor Db:+1; Y(Db).s:=i; Y(Db).o:=j Elágazás vége Ciklus vége Ciklus vége Eljárás vége. A sorszám itt is általánosabb mint az érték, ha mégis érték kellene, akkor Y(Db):=X(i,j) szerepelne. (Ekkor persze a specifikációt is módosítani kell!) Pap Gáborné Zsakó László: Algoritmizálás, adatmodellezés 2015.02.17. 35/36

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