algoritmizálás adatmodellezés tanítása 2. előadás
DESCRIPTION
Algoritmizálás adatmodellezés tanítása 2. előadásTRANSCRIPT
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 1/45
Algoritmizálás,
adatmodellezés tanítása
2. előadás
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 2/45
ELTE
Programozási tételek
Mi az, hogy programozási tétel? Típusfeladat általános megoldása.
Sorozat érték
Sorozat sorozat
Sorozat sorozatok
Sorozatok sorozat
2010.09.06. 2
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 3/45
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 4/45
ELTE
7. Másolás -
függvényszámítás
Feladatok:Ismerjük N hónap sorszámát, adjuk
meg a nevét!
Mi bennük a közös?N darab „valamihez” kell hozzárendel-
ni másik N darab „valamit”, ami akár
az előbbitől különböző típusú is lehet. A darabszám marad, a sorrend ismarad.
2010.09.06. 4
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 5/45
ELTE
7. Másolás -
függvényszámítás
Bemenet: N: Egész,X: Tömb[1..N: Valami1]
Kimenet: Y: Tömb[1..N: Valami2]
Előfeltétel: Utófeltétel: i (1≤i≤N): Y[i]=f(X[i])Másolás:
Ciklus i=1-től N-ig
Y[i]:=f(X[i])Ciklus vége
Eljárás vége.
2010.09.06. 5
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 6/45
ELTE
7. Másolás -
függvényszámítás
Vektorok összege:Bemenet: N: Egész,
X,Z: Tömb[1..N: Valós]
Kimenet: Y: Tömb[1..N: Valós ]Előfeltétel:
Utófeltétel: i(1≤i≤N): Y[i]=X[i]+Z[i]Másolás:
Ciklus i=1-től N-ig
Y[i]:=X[i]+Z[i]
Ciklus vége
Eljárás vége.
2010.09.06. 6
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 7/45
ELTE
7. Másolás -
függvényszámítás
Számok abszolút értéke:Bemenet: N: Egész,
X: Tömb[1..N: Valós ]
Kimenet: Y: Tömb[1..N: Valós ]Előfeltétel: Utófeltétel: i(1≤i≤N): Y[i]=abs(X[i])Másolás:
Ciklus i=1-től N-igHa X[i]≥0 akkor Y[i]:=X[i]
különben Y[i]:=-X[i]
Ciklus vége
Eljárás vége.2010.09.06. 7
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 8/45
ELTE
8. Kiválogatás
Feladatok: Adjuk meg egy osztály kitűnő tanulóit!
Adjuk meg egy természetes szám
összes osztóját! Adjuk meg egy mondat magas hang-
rendű szavait!
Adjuk meg emberek egy halmazából a180 cm felettieket!
2010.09.06. 8
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 9/45
ELTE
8. Kiválogatás
Feladatok: Adjuk meg egy év azon napjait, amikor
délben nem fagyott!
Adjuk meg egy szó magánhangzóit!Mi bennük a közös?
N darab „valami” közül kell megadni
az összes, adott T tulajdonsággalrendelkezőt!
2010.09.06. 9
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 10/45
ELTE
8. Kiválogatás
Bemenet: N: Egész,X: Tömb[1..N: Valami]
Kimenet: Db: Egész,
Y: Tömb[1..N: Egész]Előfeltétel:
Utófeltétel:
és i(1≤i≤Db): T(X[Y[i]]) és Y (1,2,…,N)
N
i X T i
Db
])[( 1
1
2010.09.06. 10
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 11/45
ELTE
8. Kiválogatás
Kiválogatás:Db:=0
Ciklus i=1-től N-ig
Ha T(X[i]) akkor Db:=Db+1
Y[Db]:=iCiklus 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.
2010.09.06. 11
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 12/45
ELTE
8. Kiválogatás
Adjuk meg egy év azon napjait, amikordélben nem fagyott!
Bemenet: N: Egész, X: Tömb[1..N: Valós ]
Kimenet: Db: Egész, Y: Tömb[1..N: Egész]Előfeltétel:
Utófeltétel:
és i(1≤i≤Db): X[Y[i]]≥0 és Y (1,2,…,N)
N
i X
i
Db
0][
1
1
2010.09.06. 12
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 13/45
ELTE
8. Kiválogatás
2010.09.06. 13
Zsakó László: Algoritmizálás, adatmodellezés tanítása
Kiválogatás:
Db:=0
Ciklus i=1-től N-ig
Ha X[i]≥0 akkor Db:=Db+1
Y[Db]:=iCiklus vége
Eljárás vége.
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 14/45
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 15/45
ELTE
10. Szétválogatás
Feladatok: Adjuk meg egy év azon napjait, amikor
délben fagyott, illetve nem fagyott!
Adjuk meg egy angol szó magán- ésmássalhangzóit!
Mi bennük a közös?
N darab „valami” közül kell megadniaz összes, adott T tulajdonsággalrendelkezőt, illetve nem rendelkezőt!
2010.09.06. 15
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 16/45
ELTE
10. Szétválogatás
Bemenet: N: Egész,X: Tömb[1..N: Valami]
Kimenet: Db: Egész, Y,Z: Tömb[1..N: Egész]
Előfeltétel:
Utófeltétel:
és i(1≤i≤Db): T(X[Y[i]]) ésés i(1≤i≤N-Db): nem T(X[Z[i]]) és
Y (1,2,…,N) és Z(1,2,…,N)
N
i X T i
Db
])[(1
1
2010.09.06. 16
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 17/45
ELTE
10. Szétválogatás
Szétválogatás:Db:=0; DbZ:=0
Ciklus i=1-től N-ig
Ha T(X[i]) akkor Db:=Db+1
Y[Db]:=ikülönben DbZ:=DbZ+1
Z[DbZ]:=i
Ciklus vége
Eljárás vége.
Itt is szerepelhetne :=i helyett :=X[i] ,ha csak az értékekre lenne szükségünk.
2010.09.06. 17
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 18/45
ELTE
10. Szétválogatás
Probléma: Y-ban és Z-ben együtt csak Ndarab elem van, azaz elég lenne az egyik.
Bemenet: N: Egész, X: Tömb[1..N: Valami]
Kimenet: Db: Egész, Y: Tömb[1..N: Egész]Előfeltétel:
Utófeltétel:
és i(1≤i≤Db): T(X[Y[i]]) ésés i(Db+1≤i≤N): nem T(X[Y[i]]) és
Y=permutáció(1,2,…,N)
N
i X T i
Db
])[(1
1
2010.09.06. 18
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 19/45
ELTE
10. Szétválogatás
Szétválogatás:Db:=0; DbZ:=N+1
Ciklus i=1-től N-ig
Ha T(X[i]) akkor Db:=Db+1
Y[Db]:=ikülönben DbZ:=DbZ-1
Y[DbZ]:=i
Ciklus vége
Eljárás vége.
A DbZ helyett jobb lenne pl. az IndZelnevezés.
2010.09.06. 19
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 20/45
ELTE
11. Metszet
Feladatok: Adjuk meg két természetes szám
közös osztóit!
A télen és a nyáron megfigyelhetőmadarak alapján adjuk meg a nemköltöző madarakat!
Két ember szabad órái alapjánmondjuk meg, hogy mikorbeszélgethetnek egymással!
2010.09.06. 20
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 21/45
ELTE
11. Metszet
Feladatok: Adjuk meg azokat az állatokat, ame-
lyeket a budapesti és a veszprémi ál-
latkertben is megnézhetünk!Mi bennük a közös?
Ismerünk két halmazt (tetszőleges
típusú elemekkel), meg kell adnunkazokat az elemeket, amelyek mindkéthalmazban szerepelnek!
2010.09.06. 21
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 22/45
ELTE
11. Metszet
Mit tehetünk a halmazokkal?Eddig a specifikációban használtunk, az
algoritmusban és a kódban nem.
A halmaz elemeit egy tömbben felsorolhat-juk, de ekkor ügyelni kell arra, hogy mindenelem csak egyszer szerepeljen!
Fogalom:
halmazf(X,N) = i,j (1≤i,j≤N):i≠j X[i]≠X[j]
2010.09.06. 22
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 23/45
ELTE
11. Metszet
Bemenet: N,M: Egész,X: Tömb[1..N: Valami]
Y: Tömb[1..M: Valami]
Kimenet: Db: Egész,Z: Tömb[1..min(N,M): Valami]
Előfeltétel: halmazf(X,N) és halmazf(Y,M)
Utófeltétel:
és i(1≤i≤Db): Z[i]X és Z[i] Y éshalmazf(Z,Db)
N
Y i X i
Db
][1
1
2010.09.06. 23
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 24/45
ELTE
11. Metszet
2010.09.06. 24
Zsakó László: Algoritmizálás, adatmodellezés tanítása
Metszet:
Db:=0
Ciklus i=1-től N-ig
j:=1
Ciklus amíg j≤M és X[i]≠Y[j]j:=j+1
Ciklus vége
Ha j≤M akkor Db:=Db+1
Z[Db]:=X[i]
Ciklus vége
Eljárás vége.
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 25/45
ELTE
11. Metszet
A megoldás egy kiválogatás és egyeldöntés.
Feladatvariációk:
Ismerünk két halmazt, meg kelladnunk a közös elemek számát!
Ismerünk két halmazt, meg kell
adnunk, hogy van-e közös elemük!Ismerünk két halmazt, meg kell
adnunk egy közös elemüket!2010.09.06. 25
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 26/45
ELTE
12. Unió
Feladatok:Két szakkör tanulói alapján adjuk meg
a szakkörre járókat!
A télen és a nyáron megfigyelhetőmadarak alapján adjuk meg amegfigyelhető madarakat!
Két ember szabad órái alapjánmondjuk meg, hogy mikor tudjukelérni valamelyiket!
2010.09.06. 26
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 27/45
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 28/45
ELTE
12. Unió
Bemenet: N,M: Egész,X: Tömb[1..N: Valami]
Y: Tömb[1..M: Valami]
Kimenet: Db: Egész,Z: Tömb[1..N+M: Valami]
Előfeltétel: halmazf(X,N) és halmazf(Y,M)
Utófeltétel:
és i(1≤i≤Db): Z[i]X vagy Z[i] Y éshalmazf(Z,Db)
M
X j y j
N Db
][1
1
2010.09.06. 28
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 29/45
ELTE
12. Unió
2010.09.06. 29
Zsakó László: Algoritmizálás, adatmodellezés tanítása
Unió:Z:=X; Db:=N
Ciklus j=1-től M-ig
i:=1
Ciklus amíg i≤N és X[i]≠Y[j]
i:=i+1
Ciklus vége
Ha i>N akkor Db:=Db+1
Z[Db]:=Y[j]
Ciklus végeEljárás vége.
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 30/45
ELTE
Programozási tételek
Sorozat sorozat7. Másolás – függvényszámítás8. Kiválogatás
9. Rendezés (később lesz)Sorozat sorozatok
10. Szétválogatás
Sorozatok sorozat11. Metszet
12. Unió2010.09.06. 30
Zsakó László: Algoritmizálás, adatmodellezés tanítása
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 31/45
ELTE
2010.09.06. 31
Zsakó László: Algoritmizálás, adatmodellezés tanítása
Kiválogatás + összegzés
Feladat: Adott tulajdonságú elemek összege( feltételes összegzés ).
Specifikáció:Bemenet: N:Egész,
X:Tömb[1..N:Egész ]Kimenet: S:Egész
Előfeltétel: N0Utófeltétel: S=
N
T(X[i])1i
X[i]
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 32/45
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 33/45
Ki ál á +
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 34/45
ELTE
2010.09.06. 34Zsakó László: Algoritmizálás, adatmodellezés tanítása
Kiválogatás +
maximumkiválasztás
Feladat: Adott tulajdonságú elemek maximuma ( fel-
tételes maximumkeresés ).
Specifikáció:Bemenet: N:Egész,
X:Tömb[1..N:Valami]Kimenet: Max:Egész, Van:Logikai
Előfeltétel: N0Utófeltétel: Van=i (1≤i≤N): T(X[i]) és
Van( 1≤Max≤N és T(X[Max]) ési(1≤i≤N): T(X[i])X[Max]≥X[i] )
Ki ál á +
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 35/45
ELTE
2010.09.06. 35Zsakó László: Algoritmizálás, adatmodellezés tanítása
Kiválogatás +
maximumkiválasztás
1. megoldási ötlet: Válogassuk ki az adott tulajdonságúakat,majd keressünk maximumot, ha van értelme!
Feltételes maximum:
Db:=0Ciklus i=1-től N-ig
Ha T(X(i)) akkor Db:=Db+1
Y(Db):=i
Ciklus vége
Van:=(Db>0)
…
Ki ál tá +
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 36/45
ELTE
2010.09.06. 36Zsakó László: Algoritmizálás, adatmodellezés tanítása
Kiválogatás +
maximumkiválasztás
1. megoldási ötlet: Válogassuk ki az adott tulajdonságúakat,majd keressünk maximumot, ha van értelme!…
Ha Van akkorMax:=Y(1)
Ciklus i=2-től Db-ig
Ha X(Y(i))>X(Max)
akkor Max:=i
Ciklus vége
Eljárás vége.
Ki ál tá +
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 37/45
ELTE
2010.09.06. 37Zsakó László: Algoritmizálás, adatmodellezés tanítása
Kiválogatás +
maximumkiválasztás
2. megoldási ötlet:Kiválogatás helyett azonnal válasszuk ki amaximumot! Kell egy fiktív 0. elem a maxi-mumkiválasztáshoz, ami kisebb minden
normál elemnél.Feltételes maximum:
X(0):=-; Max:=0
Ciklus i=1-től N-ig
Ha T(X(i)) és X(i)>X(Max)
akkor Max:=i
Ciklus vége
Van:=(Max>0)
Eljárás vége.
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 38/45
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 39/45
M im mki ál ztá +
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 40/45
ELTE
2010.09.06. 40Zsakó László: Algoritmizálás, adatmodellezés tanítása
Maximumkiválasztás +
kiválogatás
1. megoldási ötlet:
Határozzuk meg a maximumot, majd válo-gassuk ki a vele egyenlőket!
…Db:=0
Ciklus i=1-től N-ig
Ha X(i)=Maxért
akkor Db:=Db+1; Max(Db):=i
Ciklus vége
Eljárás vége.
Maximumkiválasztás +
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 41/45
ELTE
2010.09.06. 41Zsakó László: Algoritmizálás, adatmodellezés tanítása
Maximumkiválasztás +
kiválogatás
2. megoldási ötlet: A pillanatnyi maximálissal egyenlőket azonnal válogassuk ki!Maximumkiválogatás:
Db:=1; Max(1):=1; Maxért:=X(1)
Ciklus i=2-től N-ig
Ha X(i)>Maxért akkor
Db:=1; Max(1):=i; Maxért:=X(i)
különben ha X(i)=Maxért akkorDb:=Db+1; Max(Db):=i
Ciklus vége
Eljárás vége.
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 42/45
ELTE
2010.09.06. 42Zsakó László: Algoritmizálás, adatmodellezés tanítása
Eldöntés + megszámolás
Feladat: Van-e egy sorozatban K darab adott tulaj-donságú elem?
Specifikáció:Bemenet: N,K:Egész,
X:Tömb[1..N:Valami]Kimenet: Van:Logikai
Előfeltétel: N
0 [és K>0]Utófeltétel: db= és Van=db≥K
N
T(X[i])1i
1
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 43/45
ELTE
2010.09.06. 43Zsakó László: Algoritmizálás, adatmodellezés tanítása
1. megoldási ötlet:Számoljuk meg , hogy hány adott tulajdonsá-gú van, majd nézzük meg, hogy ez legalábbK-e! (Azaz valójában nincs: eldöntés tétel!)
Eldönt és megszámol:Db:=0
Ciklus i=1-től N-ig
Ha T(X(i)) akkor Db:=Db+1
Ciklus vége
Van:=(Db≥K)
Eljárás vége.
Eldöntés + megszámolás
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 44/45
ELTE
2010.09.06. 44Zsakó László: Algoritmizálás, adatmodellezés tanítása
2. megoldási ötlet:Ha már találtunk K darab adott tulajdonsá-gút, akkor ne nézzük tovább!
Eldönt és megszámol:
Db:=0; i:=1Ciklus amíg i≤N és Db<K
Ha T(X(i)) akkor Db:=Db+1
i:=i+1
Ciklus vége
Van:=(Db=K)
Eljárás vége.
Eldöntés + megszámolás
7/21/2019 Algoritmizálás adatmodellezés tanítása 2. előadás
http://slidepdf.com/reader/full/algoritmizalas-adatmodellezes-tanitasa-2-eloadas-56d9e8027474a 45/45
Algoritmizálás,
adatmodellezés tanítása
2. előadás vége