Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/312015. 03. 31.2015. 03. 31.2015. 03. 31.  További programozási.

Hasonló előadás


Az előadások a következő témára: "Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/312015. 03. 31.2015. 03. 31.2015. 03. 31.  További programozási."— Előadás másolata:

1 Programozási alapismeretek 8. előadás

2 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási tételek További programozási tételek  Másolás – függvényszámítás Másolás  Kiválogatás Kiválogatás  Szétválogatás Szétválogatás  Metszet Metszet  Unió Unió  Programozási tételek – visszatekintés Programozási tételek Programozási alapismeretek 8. előadás

3 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.3/ További programozási tételek Mi az, hogy programozási tétel? Típusfeladat általános megoldása.programozási tétel  Sorozat  érték  Sorozat  sorozat  Sorozat  sorozatok  Sorozatok  sorozat  Sorozat  sorozat  Sorozat  sorozatok  Sorozatok  sorozat

4 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.4/ Másolás – függvényszámítás Feladatok:  Egy számsorozat tagjainak adjuk meg az ab- szolút értékét!  Egy szöveget alakítsunk át csupa kisbetűssé!  Számoljuk ki két vektor összegét!  Készítsünk függvénytáblázatot a sin(x) függ- vényről!  Ismerjük N hónap sorszámát, adjuk meg a nevét!

5 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.5/ Másolás – függvényszámítás Mi bennük a közös? N darab „valamihez” kell hozzárendelni má- sik N darab „valamit”, ami akár az előbbitől különböző típusú is lehet. A darabszám ma- rad, a sorrend is marad. Az elemeken operá- ló függvény ugyanaz.

6 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.6/ Másolás – függvényszámítás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami 1 ]  Kimenet: Y:Tömb[1..N:Valami 2 ]  Előfeltétel: N  0  Utófeltétel:  i (1≤i≤N): Y[i]=f(X[i]) Algoritmus: i=1..N Y[i]:=f(X[i]) függvényszámítás f:Valami 1 →Valami 2

7 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.7/ Másolás – függvényszámítás Specifikáció (egy gyakori speciális eset) :  Bemenet: N:Egész, X:Tömb[1..N:Valami]  Kimenet: Y:Tömb[1..N:Valami]  Előfeltétel: N  0  Utófeltétel:  i (1≤i≤N): Algoritmus: i=1..N T(X[i]) Y[i]:=g(X[i])Y[i]:=X[i] IN f:Valami→Valami g:Valami→Valami

8 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.8/ Másolás – függvényszámítás Specifikáció:  Bemenet: N:Egész, X,Z:Tömb[1..N:Valós]  Kimenet: Y:Tömb[1..N:Valós]  Előfeltétel: N  0  Utófeltétel:  i(1≤i≤N): Y[i]=X[i]+Z[i] Algoritmus: i=1..N Y[i]:=X[i]+Z[i] (X[i],Z[i])  Valós  Valós f((X[i],Z[i])):=X[i]+Z[i]

9 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.9/ 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 hangrendű szavait!  Adjuk meg emberek egy halmazából a 180 cm felettieket!  Adjuk meg egy év azon napjait, amikor délben nem fagyott!  Adjuk meg egy szó magánhangzóit!

10 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.10/ Kiválogatás Mi bennük a közös? N darab „valami” közül kell megadni az összes, adott T tulajdonsággal rendelkezőt!

11 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.11/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]  Kimenet: Db:Egész, Y:Tömb[1..Db:Egész]  Előfeltétel: N  0  Utófeltétel: Db= és  i(1≤i≤Db): T(X[Y[i]]) és Y  (1,2,…,N)  L. Megszámolás tételt!Megszámolás tétel Statikus tömb-deklaráció esetében: N

12 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.12/ Kiválogatás Algoritmus: Megjegyzés: A sorszám általánosabb, mint az érték. Ha még- is érték kellene, akkor Y[Db]:=X[i] szerepelne. (Ekkor a specifikációt is módosítani kell!) Db:=0 i=1..N T(X[i]) Db:=Db+1  Y[Db]:=i I N L. Megszámolás tételt!Megszámolás tétel

13 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.13/ Kiválogatás Specifikáció:  Bemenet: N:Egész, H:Tömb[1..N:Valós]  Kimenet: Db:Egész, NF:Tömb[1..N:Egész]  Előfeltétel: N  0  Utófeltétel: Db= és  i(1≤i≤Db): H[NF[i]] > 0 és NF  (1,2,…,N)

14 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.14/ Kiválogatás Algoritmus: Db:=0 i=1..N H[i] > 0 Db:=Db+1  NF[Db]:=i I N

15 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.15/ Szétválogatás Feladatok:  Adjuk meg egy osztály kitűnő és nem kitűnő tanulóit!  Adjuk meg emberek egy halmazából a 180 cm felettieket és a nem 180 cm felettieket!  Adjuk meg egy számsorozatból a páros és a páratlan számokat is!  Adjuk meg egy év azon napjait, amikor dél- ben fagyott és amikor nem fagyott!  Adjuk meg egy angol szó magán- és mással- hangzóit!

16 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.16/ Szétválogatás Mi bennük a közös? N darab „valami” közül kell megadni az összes, adott T tulajdonsággal rendelkezőt, illetve nem rendelkezőt! Azaz az összes be- meneti elemet „besoroljuk” a kimenet vala- mely sorozatába.

17 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.17/ Szétválogatás Specifikáció:  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: N  0  Utófeltétel: Db= és  i(1≤i≤Db): T(X[Y[i]]) és  i(1≤i≤N – Db): nem T(X[Z[i]]) és Y  (1,2,…,N) és Z  (1,2,…,N)

18 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.18/ Szétválogatás Algoritmus: Megjegyzés: Itt is szerepelhetne :=i helyett :=X[i], ha csak az értékekre lenne szükségünk. (A specifikáció is módosítandó!) Db:=0 DbZ:=0 i=1..N T(X[i]) Db:=Db+1DbZ:=DbZ+1 Y[Db]:=iZ[DbZ]:=i I N

19 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.19/ Szétválogatás Permutáció(1,2,...,N):=az 1..N számok összes permutációjának halmaza Probléma: Y-ban és Z-ben együtt csak N darab elem van, azaz elég lenne egyetlen N-elemű tömb. Megoldá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: N  0  Utófeltétel: Db= és  i(1≤i≤Db): T(X[Y[i]]) és  i(Db+1≤i≤N): nem T(X[Y[i]]) és Y  Permutáció(1,2,…,N)

20 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.20/ Szétválogatás Algoritmus: Db:=0 DbZ:=N+1 i=1..N T(X[i]) Db:=Db+1DbZ:=DbZ–1 Y[Db]:=iY[DbZ]:=i I N

21 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.21/ Metszet Feladatok:  Adjuk meg két természetes szám közös osz - tóit!  A télen és a nyáron megfigyelhető madarak alapján adjuk meg a nem költöző madarakat!  Két ember szabad órái alapján mondjuk meg, hogy mikor beszélgethetnek egymással!  Adjuk meg azokat az állatfajokat, amelyeket a budapesti és a veszprémi állatkertben is megnézhetünk!

22 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.22/ Metszet Mi bennük a közös? Ismerünk két halmazt (tetszőleges, de azo- nos típusú elemekkel), meg kell adnunk azo- kat az elemeket, amelyek mindkét halmazban szerepelnek!

23 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.23/ Metszet Az elemtartalmazás egyértelmű-e. Specifikáció:  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..Db:Valami]  Előfeltétel: N  0 és M  0 és HalmazE(X) és HalmazE(Y)  Utófeltétel: Db= és  i(1≤i≤Db): (Z[i]  X és Z[i]  Y) és HalmazE(Z) Deklarációs méret lehet még: min(N,M)

24 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.24/ Metszet Algoritmus: Megjegyzés: A megoldás egy kiválogatás és egy eldöntés. Db:=0 i=1..N j:=1 j≤M és X[i]≠Y[j] j:=j+1 j≤M Db:=Db+1  Z[Db]:=X[i] I N Eldöntés tétel! Kiválogatás tétel!

25 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.25/ Metszet Feladatvariációk:  Ismerünk két halmazt, meg kell adnunk 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 egyet közös elemeik közül!

26 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.26/ Unió Feladatok:  Két szakkör tanulói alapján soroljuk fel a szakkörre járókat!  A télen és a nyáron megfigyelhető madarak alapján adjuk meg, hogy a milyen madarakat figyeltek meg!  Két ember szabad órái alapján mondjuk meg, hogy mikor tudjuk elérni valamelyiket!  Adjuk meg azokat az állatfajokat, amelyeket a budapesti vagy a veszprémi állatkertben megnézhetünk!

27 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.27/ Unió Mi bennük a közös? Ismerünk két halmazt (tetszőleges, de azo- nos típusú elemekkel), meg kell adnunk azo- kat az elemeket, amelyek legalább az egyik halmazban szerepelnek!

28 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.28/ Unió Specifikáció:  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..Db:Valami]  Előfeltétel: N  0 és M  0 és HalmazE(X) és HalmazE(Y)  Utófeltétel: Db=N+ és  i(1≤i≤Db): (Z[i]  X vagy Z[i]  Y) és HalmazE(Z) Deklarációs méret lehet még: N+M

29 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.29/ Unió Algoritmus: Z:=X Db:=N j=1..M i:=1 i≤N és X[i]≠Y[j] i:=i+1 i>N Db:=Db+1  Z[Db]:=Y[j] I N Másolás tétel! Eldöntés tétel! Kiválogatás tétel!

30 ELTE Szlávi-Zsakó: Programozási alapismeretek 8.30/ Programozási tételek  Sorozat  sorozat 7. Másolás – függvényszámítás 8. Kiválogatás 9. Rendezés (később lesz)  Sorozat  sorozatok 10. Szétválogatás  Sorozatok  sorozat 11. Metszet 12. Unió

31 Programozási alapismeretek 8. előadás vége


Letölteni ppt "Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/312015. 03. 31.2015. 03. 31.2015. 03. 31.  További programozási."

Hasonló előadás


Google Hirdetések