7. Programozási tételek egymásra építése II
Maximumkiválasztás és kiválogatás:
- A maximumkiválasztással kapcsolatban megfogalmazható kérdések: 1.Hány darab maximális elem van? 2. Melyek a maximális elemek?
- A maximumkiválasztás tételt a megszámolás és a kiválogatás tétellel lehet egybeépíteni.
Típus feladat:Egy nyár folyamán minden nap feljegyezzük a napo középhőmérsékletet. Adjuk meg az összes olyan napot, amikor a legmagasabb volt ez az érték.
Pszeudokód(X: feldolgozandó tömb, N: a tömb elemeinek száma, DB: maximális elemek száma, Y: maximális elemek indexe, MAXERT: maximális érték):
Maximumkiválogatás(N, X, DB, Y, MAXERT)
MAXERT<- X[1]
DB<-1
Y[DB]<-1
Ciklus i<-2-től N-ig
Elágazás
X[i]>MAXERT esetén
MAXERT<-X[i]
DB<-1
Y[DB]<-i
X[i]=MAXERT esetén
DB<-DB+1
Y[DB]<-i
Elágazás vége
Ciklus vége
Eljárás vége
Kiválogatás és maximumkiválasztás:
Ha egy sorozat T tulajdonságú elemeinek a maximumát kell meghatározni, akkor a kiválogatás tételt a maximumkiválasztás tétellel építjük egybe.
Típusfeladat: Adjuk meg, hogy 2010 évben az esőmentes napok közül melyik volt a legmagasabb középhőmérsékletű.
Pszeudokód(X: feldolgozandó tömb, N: tömb elemeinek száma, T: tulajdonság függvény, VAN: logikai változó, MAX: a maximális értékű elem indexe, MAXERT: Maximális értékű elem értéke):
Eljárás_Kiválogatás_Maximumkiválasztás(N, X, VAN, MAX, MAXERT)
MAXERT<- -∞
Ciklus i<- 1-től N-ig
Ha T(X[i]) és X[i] > MAXERT akkor
MAXERT<-X[i]
MAX<-i
Elágazás vége
Ciklus vége
VAN<-(MAXERT!=-∞)
Eljárás vége
Kiválogatás és másolás:
Ha egy sorozat T tulajdonságú elemeit le kell másolni (egy függvény esetleges alkalmazását követően), akkor a kiválogatás és a másolás tételt építjük egybe.
Típusfeladat: Egy szöveg típusú változóból gyűjtsük ki az angol ábécé betűit úgy, hogy minden betűt nagybetűssé alakítunk.
Pszeudokód(X: feldolgozandó tömb, N: tömb elemszáma, T: tulajdonság függvény, f: végrehajtandó függvény, DB: T tulajdonságú elemek száma, Z: Feldolgozott sorozat):
Eljárás Kiválogatás_Másolás(N, X, DB, Z)
DB<-0
Ciklus i<-1-től N-ig
Ha T(X[i]) akkor
DB<-DB+1
Z[DB]<-f(X[i])
Elágazás vége
Ciklus vége
Eljárás vége
Felhasznált Irodalom: Sergyán Szabolcs – Programozás I – 7. előadás diasor
Kommentek
Powered by Facebook Comments