ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció: Bemenet: 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.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.2/ Keresés Algoritmus 1 : Megjegyzés: Többlet tudás: a megoldás az első adott tulajdonsá- gú elemet adja meg. i:=1 i N és nem T(X[i]) i:=i+1 Van:=i N Van S:=i I N
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.3/ Keresés Algoritmus 2 : Megjegyzés: Többlet tudás: a megoldás az első adott tulajdonsá- gú elemet adja meg. i:=0 Van:=Hamis i<N és nem Van i:=i+1 Van:=T(X[i]) Van S:=i I N
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.4/ Megszámolás Specifikáció: Bemenet: N:Egész, X:Tömb[1..N:Valami] Kimenet: Db:Egész Előfeltétel: N 0 Utófeltétel: Db=
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.5/ Megszámolás Algoritmus: Db:=0 i=1..N T(X[i]) Db:=Db+1 I N
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.6/ Maximumkiválasztás Specifikáció: Bemenet: 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 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.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.7/ Maximumkiválasztás Algoritmus: Megjegyzés: 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? Max:=1 i=2..N X[i]>X[Max] Max:=i I N
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.8/ Maximumkiválasztás (maximális értékkel) MaxÉrt:=X[1] i=2..N X[i]>MaxÉrt MaxÉrt:=X[i] Specifikáció: Kimenet: MaxÉrt:Valami Utófeltétel: i (1 i N): MaxÉrt=X[i] és i (1 i N): MaxÉrt X[i] Algoritmus: I N