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

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 1/45  Algoritmizálás, adatmodellezés tanítása 2. előadás

Upload: riddick72

Post on 05-Mar-2016

217 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 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 1/45

 Algoritmizálás,

adatmodellezés tanítása

2. előadás

Page 2: 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

Page 3: 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 3/45

Page 4: 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 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

Page 5: 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 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

Page 6: 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 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

Page 7: 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 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

Page 8: 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 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

Page 9: 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 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

Page 10: 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 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

Page 11: 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 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

Page 12: 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 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

Page 13: 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 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.

Page 14: 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 14/45

Page 15: 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 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

Page 16: 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 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

Page 17: 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 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

Page 18: 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 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

Page 19: 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 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

Page 20: 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 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

Page 21: 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 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

Page 22: 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 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

Page 23: 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 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

Page 24: 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 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.

Page 25: 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 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

Page 26: 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 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

Page 27: 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 27/45

Page 28: 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 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

Page 29: 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 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.

Page 30: 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 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

Page 31: 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 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]

Page 32: 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 32/45

Page 33: 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 33/45

Ki ál á +

Page 34: 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 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 á +

Page 35: 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 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á +

Page 36: 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 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á +

Page 37: 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 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.

Page 38: 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 38/45

Page 39: 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 39/45

M im mki ál ztá +

Page 40: 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 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 +

Page 41: 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 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.

Page 42: 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 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

Page 43: 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 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

Page 44: 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 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

Page 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 45/45

 Algoritmizálás,

adatmodellezés tanítása

2. előadás vége