Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (0) Programozási tételek (PrT) lényege
- Célja: Bizonyíthatóan helyes sablon, amelyre magasabb szinten
- lehet építeni a megoldást.
- Szerkezete: absztrakt feladat specifikáció, absztrakt algoritmus
- !A bemenet legalább egy sorozat...
- !Típusfeladat általános megoldása.
- 1. a konkrét feladat specifikálása
- 2. a specifikációban a PrT-ek megsejtése
- 3. a konrkét feladat és az absztrakt feladat
- paramétereinek egymáshoz rendelése
- 4. a konrkét algoritmus "generálása"
- a megsejtett PrT-ek absztrakt algoritmusok alapján,
- 3. szerint átparaméterezve
- 5. hatékonyítás programtranszformációkkal
- (1) Sorozatszámítás
- N "valamiből" kell kiszámolni "kumuláltan" egy "valamit"!
- ∑ (szumma = számsorozat összege)
- ∏ (produktum = számsorozat szorzata)
- ∪ (unió = halmazsorozat egyesítése)
- & (konkatenáció = szövegek „egymásutánírása”)
- Algoritmus (általánosan)
- S:=F0
- Ciklus i=1-től N-ig
- S:=f(S,X[i])
- Ciklus vége
- Algoritmus összegzés esetén
- S:=0
- Ciklus i=1-től N-ig
- S:=S+X[i]
- Ciklus vége
- (2) Megszámolás
- N darab "valamire" kell megadni,
- hogy hány adott tulajdonságú van közöttük.
- Db:=0
- Ciklus i=1-től N-ig
- Ha T(X[i]) akkor
- Db:=Db+1
- Ciklus vége
- (3) Maximum-kiválasztás
- N darab "valami" közül kell megadni a legnagyobbat (v. legkisebbet)
- Ha legalább 1 elemünk van, akkor legnagyobb (legkisebb) is biztosan
- van közöttük!
- Max:=1
- Ciklus i=2-től N-ig
- Ha X[i]>X[Max] akkor
- Max:=i
- Ciklus vége
- (Ha több maximális érték van, akkor az elsőt kapjuk meg.)
- MaxÉrt:=X[1]
- Ciklus i=2-től N-ig
- Ha X[i]>MaxÉrt akkor
- MaxÉrt:=X[i]
- Ciklus vége
- (4) Eldöntés
- Döntsük el, hogy N "valami" között van-e adott tulajdonsággal
- rendelkező elem!
- i:=1
- Ciklus i<=N és nem T(X[i])
- i:=i+1
- Ciklus vége
- Van:=i<=N
- (5) Kiválasztás
- N "valami" közül kell megadni adott tulajdonságút, ha tudjuk,
- hogy ilyen elem biztosan van.
- Ind:=1
- Ciklus nem T(X[nd])
- Ind:=Ind+1
- Ciklus vége
- (6) Keresés
- N darab "valami" közül kell megadni, egy adott tulajdonságút, ha nem
- tudjuk, hogy ilyen elem van-e.
- i:=1
- Ciklus i<=N és nem T(X[i])
- i:=i+1
- Ciklus vége
- Van:=i<=N
- Ha Van
- Ind:=i
Advertisement
Add Comment
Please, Sign In to add comment