szuchi.hu

Szuchi Dániel Blogja

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

comments

Powered by Facebook Comments