Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaLászló Orbán Megváltozta több, mint 10 éve
1
Programozási alapismeretek 8. előadás
2
ELTE 2/312014. 07. 14.2014. 07. 14.2014. 07. 14. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8. előadás
3
ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.3/312014. 07. 14.2014. 07. 14.2014. 07. 14. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.4/312014. 07. 14.2014. 07. 14.2014. 07. 14. 7. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.5/312014. 07. 14.2014. 07. 14.2014. 07. 14. 7. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.6/312014. 07. 14.2014. 07. 14.2014. 07. 14. 7. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.7/312014. 07. 14.2014. 07. 14.2014. 07. 14. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.8/312014. 07. 14.2014. 07. 14.2014. 07. 14. 7. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.9/312014. 07. 14.2014. 07. 14.2014. 07. 14. 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 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.10/312014. 07. 14.2014. 07. 14.2014. 07. 14. 8. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.11/312014. 07. 14.2014. 07. 14.2014. 07. 14. 8. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.12/312014. 07. 14.2014. 07. 14.2014. 07. 14. 8. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.13/312014. 07. 14.2014. 07. 14.2014. 07. 14. 8. Kiválogatás Specifikáció: Bemenet: N:Egész, H:Tömb[1..N:Valós] Kimenet: Db:Egész,NF:Tömb[1..Db: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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.14/312014. 07. 14.2014. 07. 14.2014. 07. 14. 8. Kiválogatás Algoritmus: Db:=0 i=1..N H[i] > 0 Db:=Db+1 NF[Db]:=i I N
15
ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.15/312014. 07. 14.2014. 07. 14.2014. 07. 14. 10. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.16/312014. 07. 14.2014. 07. 14.2014. 07. 14. 10. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.17/312014. 07. 14.2014. 07. 14.2014. 07. 14. 10. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.18/312014. 07. 14.2014. 07. 14.2014. 07. 14. 10. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.19/312014. 07. 14.2014. 07. 14.2014. 07. 14. 10. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.20/312014. 07. 14.2014. 07. 14.2014. 07. 14. 10. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.21/312014. 07. 14.2014. 07. 14.2014. 07. 14. 11. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.22/312014. 07. 14.2014. 07. 14.2014. 07. 14. 11. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.23/312014. 07. 14.2014. 07. 14.2014. 07. 14. 11. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.24/312014. 07. 14.2014. 07. 14.2014. 07. 14. 11. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.25/312014. 07. 14.2014. 07. 14.2014. 07. 14. 11. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.26/312014. 07. 14.2014. 07. 14.2014. 07. 14. 12. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.27/312014. 07. 14.2014. 07. 14.2014. 07. 14. 12. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.28/312014. 07. 14.2014. 07. 14.2014. 07. 14. 12. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.29/312014. 07. 14.2014. 07. 14.2014. 07. 14. 12. 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 Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 8.30/312014. 07. 14.2014. 07. 14.2014. 07. 14. 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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.