Programozsi alapismeretek 5 elads Tartalom Programozsi ELTE 10292021
- Slides: 48
Programozási alapismeretek 5. előadás
Tartalom Ø Programozási ELTE 10/29/2021 tételek – a lényeg Ø Sorozatszámítás Ø Eldöntés Ø Kiválasztás Ø Keresés Ø Megszámolás Ø Maximumkiválasztás Ø Programozás tételek – visszatekintés Ø Programozási tételek felhasználása Szlávi - Zsakó: Programozási alapismeretek 5. 2/48
Programozási tételek (Pr. T) lényege Célja: ELTE Bizonyíthatóan helyes sablon, amelyre magasabb szinten lehet építeni a megol-dást. (A fejlesztés gyorsabb és biztonsá-gosabb. ) Szerkezete: 1. absztrakt feladat specifikáció [+program-specifikáció] 2. absztrakt algoritmus Egy fontos előzetes megjegyzés: A bemenet legalább egy sorozat… 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 3/48
Programozási tételek (Pr. T) lényege Felhasználásának menete: 1. a ELTE 10/29/2021 konkrét feladat specifikálása 2. a specifikációban a Pr. T-ek megsejtése 3. a konkrét feladat és az absztrakt feladat paramétereinek egymáshoz rendelése 4. a konkrét algoritmus „generálása” a megsejtett Pr. T-ek absztrakt algoritmu-sok alapján, 3. szerint átparaméterezve 5. hatékonyítás Szlávi - Zsakó: Programozási alapismeretek 5. 4/48
Programozási tételek ELTE 10/29/2021 Mi az, hogy programozási tétel? Típusfeladat általános megoldása. Ø Sorozat érték Ø Sorozat sorozatok Ø Sorozatok sorozat Szlávi - Zsakó: Programozási alapismeretek 5. 5/48
1. Sorozatszámítás Feladatok: 1. Ismerjük ELTE 10/29/2021 egy ember havi bevételeit és kiadá-sait. Adjuk meg, hogy év végére mennyivel nőtt a vagyona! 2. Ismerjük egy autóversenyző körönkénti ide-jét. Adjuk meg az átlagkörének idejét! 3. Adjuk meg az N számhoz az N faktoriális ér-tékét! 4. Ismerjük egy iskola szakköreire járó tanulóit, szakkörönként. Adjuk meg, kik járnak szak-körre! 5. Ismerünk N szót. Adjuk meg a belőlük össze-állított mondatot! Szlávi - Zsakó: Programozási alapismeretek 5. 6/48
1. Sorozatszámítás ELTE Mi bennük a közös? N „valamiből” kell kiszámolni „kumuláltan” egy „valamit”! Pl. – bevétel/köridő; – faktoriális; – szakkörös; & – szó 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 7/48
1. Sorozatszámítás Specifikáció: Ø Bemenet: ELTE N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: S: Valami Ø Előfeltétel: N 0 Ø Utófeltétel: S=F(X[1. . N]) F: – N tagú összeg; – N tényezős szorzat; – N halmaz uniója; & – N szöveg konkatenációja … 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 8/48
1. Sorozatszámítás Ø Probléma: F: N paraméteres művelet, ahol az N válto-zó. ELTE 10/29/2021 Ø Megoldás: Visszavezetjük 2 -paraméteres műveletre (pl. helyett +) és egy nullelemre (+ esetén a 0). F(X[1. . N])= f(F(X[1. . N– 1]), X[N]) , ha N>0 F(–)=F 0 … és a többi esetén mi az f/F 0? – ? /? & – ? /? Szlávi - Zsakó: Programozási alapismeretek 5. 9/48
1. Sorozatszámítás Specifikáció (a végleges): Ø Bemenet: ELTE 10/29/2021 N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: S: Valami Ø Előfeltétel: N 0 Ø Utófeltétel: S=F(X[1. . N]) Ø Definíció: Szlávi - Zsakó: Programozási alapismeretek 5. 10/48
1. Sorozatszámítás Algoritmus: S: =F 0 i=1. . N S: =f(S, X[i]) ELTE esetén: Szum(X[1. . N]): = S: =0 i=1. . N S: =S+X[i] 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 11/48
1. Sorozatszámítás Specifikáció: Ø Bemenet: ELTE N: Egész, Be, Ki: Tömb[1. . N: Egész] Ø Kimenet: S: Egész Ø Előfeltétel: N 0 és i (1 i N): Be[i], Ki[i] 0 Ø Utófeltétel: S= Be[i]–Ki[i] Algoritmus: S: =0 i=1. . N S: =S+Be[i]–Ki[i] 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 12/48
2. Eldöntés Feladatok: 1. 2. ELTE 3. 4. 5. 6. 10/29/2021 Egy természetes számról döntsük el, hogy prímszám-e! Egy szóról mondjuk meg, hogy egy hónap-nak a neve-e! Egy tanuló év végi osztályzatai alapján álla-pítsuk meg, hogy bukott-e! Egy szóról adjuk meg, hogy van-e benne ma-gánhangzó! Egy számsorozatról döntsük el, hogy mono-ton növekvő-e! Egy tanuló év végi jegyei alapján adjuk meg, hogy kitűnő-e! Szlávi - Zsakó: Programozási alapismeretek 5. 13/48
2. Eldöntés ELTE Mi bennük a közös? Döntsük el, hogy N „valami” között van -e adott tulajdonsággal rendelkező elem! 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 14/48
2. Eldöntés Specifikáció: Ø Bemenet: ELTE N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: Van: Logikai Ø Előfeltétel: N 0 Ø Utófeltétel: Van= i(1 i N): T(X[i]) Megjegyzés: A T tulajdonság egy logikai függvényként adható meg. Minden elemről megvizsgálható, hogy ren-delkezik-e az adott tulajdonsággal. 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 15/48
2. Eldöntés Algoritmus 1: i: =1 ELTE i N és nem T(X[i]) i: =i+1 Van: =i N Algoritmus 2: i: =0 Van: =Hamis i<N és nem Van i: =i+1 Van: =T(X[i]) 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 16/48
2. Eldöntés Feladatvariáns: … az összes elem olyan-e … Specifikáció (csak a különbség): ELTE Ø Kimenet: Mind: Logikai Ø Utófeltétel: Mind= i(1 i N): T(X[i]) Algoritmus: i: =1 i N és nem T(X[i]) i: =i+1 Mind: =i>N 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 17/48
2. Eldöntés Specifikáció: Ø Bemenet: ELTE N: Egész, Jegy: Tömb[1. . N: Egész] Ø Kimenet: Bukott: Logikai Ø Előfeltétel: N 0 és i (1 i N): Jegy[i] [1. . 5] Ø Utófeltétel: Bukott= i (1 i N): Jegy[i]=1 i: =1 Algoritmus: i N és Jegy[i] 1 i: =i+1 Bukott: =i N 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 18/48
3. Kiválasztás Feladatok: 1. ELTE 2. 3. 4. 10/29/2021 Ismerjük egy ember havi bevételeit és kiadá-sait. Év végére nőtt a vagyona. Adjunk meg egy hónapot, amikor nőtt a vagyona! Adjuk meg egy természetes szám egytől kü-lönböző legkisebb osztóját! Adjuk meg egy magyar szó egy magánhang-zóját! Adjuk meg egy hónapnévről a sorszámát! Szlávi - Zsakó: Programozási alapismeretek 5. 19/48
3. Kiválasztás ELTE 10/29/2021 Mi bennük a közös? N „valami” közül kell megadni egy adott tulajdonságút, ha tudjuk, hogy ilyen elem biztosan van. Szlávi - Zsakó: Programozási alapismeretek 5. 20/48
3. Kiválasztás Specifikáció: Ø Bemenet: ELTE N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: S: Egész Ø Előfeltétel: N>0 és i (1 i N): T(X[i]) Ø Utófeltétel: 1 S N és T(X[S]) Megjegyzés: A T tulajdonság egy logikai függvényként adható meg, minden elemről megtudható, hogy rendelke-zik-e az adott tulajdonsággal. 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 21/48
3. Kiválasztás Algoritmus: i: =1 ELTE nem T(X[i]) i: =i+1 S: =i Megjegyzés: Többlet tudás: a megoldás az első adott tulajdonságú elemet adja meg – a program tudhat többet annál, mint amit várunk tőle. Hogy kellene az utolsót megadni? 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 22/48
3. Kiválasztás Specifikáció: Ø Bemenet: ELTE 10/29/2021 Szó: Szöveg Ø Kimenet: MH: Egész Ø Előfeltétel: hossz(Szó)>0 és i (1 i hossz(Szó)): magánhangzóE(Szó[i]) Ø Utófeltétel: 1 MH hossz(Szó) és magánhangzóE(Szó[MH]) Ø Definíció: magánhangzóE: Karakter Logikai magánhangzóE(c): = nagybetű(c) {'A'. . 'Ű'} Szlávi - Zsakó: Programozási alapismeretek 5. 23/48
3. Kiválasztás Algoritmus: i: =1 ELTE nem magánhangzóE(Szó[i]) i: =i+1 MH: =i Megjegyzés: a kódoláskor a nagybetűsítő toupper függvénynél ügyelni kell az ékezetes betűkre! (L. 4. előadásban. ) 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 24/48
4. Keresés Feladatok: 1. ELTE 2. 3. 4. 10/29/2021 5. Ismerjük egy ember havi bevételeit és kiadá-sait. Év végére nőtt a vagyona. Adjunk meg egy hónapot, amikor nem nőtt a vagyona! Adjuk meg egy természetes szám egy 1 -től és önmagától különböző osztóját! Adjuk meg egy ember nevében egy „a” be-tű helyét! Adjunk meg egy tanulóra egy tárgyat, ami-ből megbukott! Adjuk meg egy számsorozat olyan Szlávi - Zsakó: Programozási alapismeretek 5. 25/48
4. Keresés Mi bennük a közös? ELTE 10/29/2021 N darab „valami” közül kell megadni egy adott tulajdonságút, ha nem tudjuk, hogy ilyen elem van-e. Szlávi - Zsakó: Programozási alapismeretek 5. 26/48
4. Keresés Specifikáció: Ø Bemenet: ELTE N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: Van: Logikai, S: Egész Ø Előfeltétel: N 0 Ø Utófeltétel: Van= i (1 i N): T(X[i]) és Van 1 S N és T(X[S]) Tehát a feladat „egyik fele” az eldöntésből, a „másik fele” a kiválasztásból jön. 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 27/48
4. Keresés Algoritmus 1: i: =1 i N és nem T(X[i]) i: =i+1 ELTE Van: =i N I Van S: =i N Megjegyzés: Többlet tudás: a megoldás az első adott tulajdonsá-gú elemet adja meg. 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 28/48
4. Keresés Algoritmus 2: ELTE i: =0 Van: =Hamis i<N és nem Van i: =i+1 Van: =T(X[i]) Van I S: =i N Megjegyzés: Többlet tudás: a megoldás az első adott tulajdonsá-gú elemet adja meg. 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 29/48
4. Keresés Specifikáció: Ø Bemenet: ELTE 10/29/2021 N: Egész, Jegy: Tömb[1. . N: Egész] Ø Kimenet: Bukott: Logikai, T: Egész Ø Előfeltétel: N 0 és i (1 i N): Jegy[i] [1. . 5] Ø Utófeltétel: Bukott= i (1 i N): Jegy[i]=1 és Bukott 1 T N és Jegy[T]=1 Szlávi - Zsakó: Programozási alapismeretek 5. 30/48
4. Keresés Algoritmus: i: =1 ELTE i N és Jegy[i] 1 i: =i+1 Bukott: =i N Bukott I T: =i 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. N 31/48
5. Megszámolás Feladatok: 1. ELTE 2. 3. 4. 5. 10/29/2021 Ismerjük egy ember havi bevételeit és kiadá-sait. Adjunk meg, hogy hány hónapban nőtt a vagyona! Adjuk meg egy természetes szám osztói szá-mát! Adjuk meg egy ember nevében levő „a” be-tűk számát! Adjunk meg az éves statisztika alapján, hogy hány napon fagyott! Adjuk meg N születési hónap alapján, hogy közöttük hányan születtek télen! Szlávi - Zsakó: Programozási alapismeretek 5. 32/48
5. Megszámolás ELTE Mi bennük a közös? N darab „valamire” kell megadni, hogy hány adott tulajdonságú van közöttük. 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 33/48
5. Megszámolás Specifikáció: Ø Bemenet: ELTE 10/29/2021 N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: Db: Egész Ø Előfeltétel: N 0 Ø Utófeltétel: Db= Szlávi - Zsakó: Programozási alapismeretek 5. 34/48
5. Megszámolás Algoritmus: Db: =0 ELTE I i=1. . N T(X[i]) Db: =Db+1 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. N 35/48
5. Megszámolás Specifikáció: Ø Bemenet: ELTE N: Egész, Hó: Tömb[1. . N: Egész] Ø Kimenet: Db: Egész (télen születettek) Ø Előfeltétel: N 0 és i (1 i N): Hó[i] [1. . 12] Ø Utófeltétel: 10/29/2021 Db= Szlávi - Zsakó: Programozási alapismeretek 5. 36/48
5. Megszámolás Algoritmus: Db: =0 ELTE I i=1. . N Hó[i]<3 vagy Hó[i]=12 Db: =Db+1 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. N 37/48
6. Maximumkiválasztás Feladatok: 1. ELTE 2. 3. 4. 5. 10/29/2021 Ismerjük egy ember havi bevételeit és kiadá-sait. Adjunk meg, hogy melyik hónapban nőtt legjobban a vagyona! Adjuk meg N ember közül az ábécében utol-sót! Adjuk meg N ember közül azt, aki a legtöbb ételt szereti! Adjunk meg az éves statisztika alapján a leg-melegebb napot! Adjuk meg N születésnap alapján azt, akinek idén először van születésnapja! Szlávi - Zsakó: Programozási alapismeretek 5. 38/48
6. Maximumkiválasztás ELTE Mi bennük a közös? N darab „valami” közül kell megadni a legnagyobbat (vagy a legkisebbet). Fontos: Ha legalább 1 elemünk van, akkor legna-gyobb (legkisebb) is biztosan van közöttük! 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 39/48
6. Maximumkiválasztás Specifikáció: Ø Bemenet: ELTE N: Egész, X: Tömb[1. . N: Valami] Ø Kimenet: Max: Egész Ø Előfeltétel: N>0 Ø Utófeltétel: 1 Max N és i (1 i N): X[Max] X[i] Megjegyzések: Léteznie kell a : Valami Logikai rende-zési relációnak; Ø a sorszám általánosabb, mint az érték, ezért legtöbb-ször a sorszámot adjuk meg. Ø 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 40/48
6. Maximumkiválasztás Algoritmus: Max: =1 ELTE I i=2. . N X[i]>X[Max] Max: =i Megjegyzés: N Többlet tudás: ha több maximális érték is van, akkor közülük az elsőt kapjuk meg. Kérdések: Hogyan lesz belőle utolsó maximális? Hogyan lesz belőle (első) minimális? 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 41/48
6. Maximumkiválasztás (maximális értékkel) Specifikáció: Ø Kimenet: ELTE MaxÉrt: Valami Ø Utófeltétel: i (1 i N): MaxÉrt=X[i] és i (1 i N): MaxÉrt X[i] Algoritmus: MaxÉrt: =X[1] i=2. . N X[i]>MaxÉrt I MaxÉrt: =X[i] 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. N 42/48
6. Maximumkiválasztás Specifikáció: Ø Bemenet: ELTE 10/29/2021 N: Egész, Hó, Nap: Tömb[1. . N: Egész], Kimenet: Első: Egész Ø Előfeltétel: N>0 és i(1 i N): (Hó[i] [1. . 12] és Nap[i] [1. . 31]) Ø Utófeltétel: 1 Első N és i(1 i N): (Hó[Első]<Hó[i] vagy Hó[Első]=Hó[i] és Nap[Első] Nap[i]) Szlávi - Zsakó: Programozási alapismeretek 5. 43/48
6. Maximumkiválasztás Algoritmus: Első: =1 ELTE I i=2. . N Hó[i]<Hó[Első] vagy Hó[i]=Hó[Első] és Nap[i]<Nap[Első] Első: =i 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. N 44/48
Programozási tételek – visszatekintés Sorozatszámítás (összegzés) 2. Eldöntés 3. Kiválasztás 4. Keresés 5. Megszámolás 6. Maximumkiválasztás +1. Madártávlatból újra… 1. ELTE 10/29/2021 Szlávi - Zsakó: Programozási alapismeretek 5. 45/48
Pr. Tek felhasználása Árulkodó jelek (tételek madártávlatból): Øa Pr. T-felismeréshez – a specifikáció kimenete: ELTE Ø Ø Ø egy logikai érték eldöntés egy sorozat, amelynek azonos a hossza a bementi sorozatéval másolás…. . . az utófeltételben szerepel: Ø Ø 10/29/2021 egy sorozatművelet (Σ, Π …) sorozatszámítás … Szlávi - Zsakó: Programozási alapismeretek 5. 46/48
Programozási tételek felhasználása Árulkodó jelek (tételek madártávlatból): Ø Pr. T-kombináláshoz: Ø ELTE Ø Ø 10/29/2021 a kimenet egy logikai érték eldöntés tétel egy másik tétel tulajdonságának meg-valósítója a kimenet egy sorozat kombinálható, mint előfeldolgozó, bármely másik Pr. T-lel … Szlávi - Zsakó: Programozási alapismeretek 5. 47/48
Programozási alapismeretek 5. előadás vége
- Public candy companies
- Elads
- Elads crm
- Kós károly varju nemzetség elemzés
- Ménrót fiai
- Néhai bárány szereplők
- Hiszterézises komparátor
- Rania hasan
- Pneumatika alapismeretek
- Pótszögek
- Unità di governo cnc
- Progalap elte
- Cnc feladatok megoldással
- Honvédelmi alapismeretek tankönyv
- Jognyilatkozatok fajtái
- Közös megegyezéssel felmondás minta
- Munkajogi alapismeretek
- Elte wifi
- Elte gtk vizsgaidőpontok
- Elte seas library
- Seas elte
- Elte ik könyvtár
- Gsd elte
- Hkr elte
- Elte kredittúllépés
- Moodle elte
- Progalap elte
- Elte matematika bsc tantervi háló
- Elte ttk tanulmányi ösztöndíj
- Vadász péter elte ik
- Elte btk beiratkozás
- Html alapok elte
- Www.canvas.elte
- I fizika
- Elte ik doktori iskola
- Szendrei rudolf
- Elte merkur
- Elte ttk szakdolgozat
- Elte fizika doktori iskola
- Ppk elte
- Elte algoritmusok és adatszerkezetek
- Elte ik térkép
- Dorner helga
- Horváth ákos elte
- Hkr elte
- Elte gti
- De ik szakmai gyakorlat
- Illés zoltán elte
- Gyógypedagógus képzés diplomásoknak