algoritmizálás, adatmodellezés tanítása 3. előadás

12
Algoritmizálás, adatmodellezés tanítása 3. előadás

Upload: effie

Post on 05-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Algoritmizálás, adatmodellezés tanítása 3. előadás. Programozási tételek összeépítése. Másolással összeépítés – sorozatszámítás Bemenet: N N , X H N , F: G * → G , f: G x G → G , G 0  G , g : H → G, F(Y 1 ,...,Y N )=f(F(Y 1 ,...,Y N-1 ),Y N ), F()=G 0 Kimenet: S  G - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmizálás, adatmodellezés tanítása 3. előadás

Algoritmizálás, adatmodellezéstanítása

3. előadás

Page 2: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Másolással összeépítés – sorozatszámításBemenet: NN, XHN, F:G*→G, f:GxG→G, G0G,

g:H→G, F(Y1,...,YN)=f(F(Y1,...,YN-1),YN), F()=G0

Kimenet: SG

Előfeltétel: ─Utófeltétel: S=F(g(X1),...,g(XN) )

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 2/12

Page 3: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Másolás_sorozatszámítás(N,X,S): S:=G0 Ciklus i=1-től N-ig S:=f(S,g(X(i))) Ciklus végeEljárás vége.

Megjegyzés: A másolással összeépítés működik az összes programozási tételre, ha abban az Xi-re hivatkozást mindenhol g(Xi)-re cseréljük.

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 3/12

Page 4: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Megszámolással összeépítés – keresésBemenet: NN, XHN, T:H→L

Kimenet: VanL, SN

Előfeltétel: ─Utófeltétel: és Van=(DbK) és

Van 1≤S≤N és T(XS) és

Megjegyzés: a K. T tulajdonságú keresése.23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása

N

XT

i

i

Db1

1

S

XT

i

i

K1

1

4/12

Page 5: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Keresés(N,X,K,VAN,S): i:=0; DB:=0 Ciklus amíg i<N és DB<K i:=i+1 Ha T(X(i)) akkor DB:=DB+1 Ciklus vége VAN:=(DB=K) Ha VAN akkor S:=iEljárás vége.

Megjegyzés: A fentiek alapján elkészíthető a megszámolással eldöntés és a megszámolással kiválasztás össze-építése is.23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 5/12

Page 6: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Maximumkiválasztással összeépítés – kiválogatásBemenet: NN, XHN

Kimenet: MaxértH, DbN, YNN

Előfeltétel: N>0Utófeltétel: és Y(1,...,N) és

i,j (1≤i≤N, 1≤j≤Db): ésMegjegyzés: az összes maximális kiválogatása –

maximumkiválogatás.23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása

N

MaxértX

i

i

Db1

1

jYi XX 1Y

XMaxért

6/12

Page 7: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Maximumkiválogatás(N,X,Db,Y,Maxért): Maxért:=X(1); Db:=1; Y(Db):=1 Ciklus i=2-től N-ig Elágazás X(i)>Maxért esetén Maxért:=X(i) Db:=1; Y(Db):=i X(i)=Maxért esetén Db:=Db+1: Y(Db):=i Elágazás vége Ciklus végeEljárás vége.

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 7/12

Page 8: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Kiválogatással összeépítés – sorozatszámításBemenet: NN, XHN, F:H*→H, f:HxH→H, F0H,

T:H→L, F()=F0

Kimenet: SH

Előfeltétel: ─Utófeltétel: S=F(X1,...,XN)

Például T tulajdonságúak összege – feltételes összegzés.

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása

egyébkéntXXF

XThaXXXFfXXF

N

NNNN

11

111 ,...,

,,...,,...,

8/12

Page 9: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Kiválogatás_sorozatszámítás(N,X,S,Db): S:=F0; Db:=0 Ciklus i=1-től N-ig Ha T(X(i)) akkor Db:=Db+1; S:=f(S,X(i)); Ciklus végeEljárás vége.

Megjegyzés: Ugyanígy menne a szétválogatás és sorozat-számítás, a metszet és sorozatszámítás, az unió és sorozat-számítás.

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 9/12

Page 10: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Kiválogatással összeépítés – maximumkiválasztásBemenet: NN, XHN, T:H→L,

Kimenet: VanL, MaxN

Előfeltétel: ─Utófeltétel: Van=i (1≤i≤N): T(Xi) és

Van 1≤Max≤N és T(XMax) és i (1≤i≤N): T(Xi) Xi≤Xmax

Megjegyzés: A T tulajdonságúak maximuma – feltételes maximumkeresés.

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 10/12

Page 11: Algoritmizálás, adatmodellezés tanítása 3. előadás

Programozási tételek összeépítése

Kiválogatás_maximumkiválasztás(N,X,Van,Max): Maxért:=-; Max:=0 Ciklus i=1-től N-ig Ha T(X(i)) akkor Ha X(i)>Maxért akkor Maxért:=X(i); Max:=i Ciklus vége Van:=(MAXERT≠-)Eljárás vége.

Kérdés: Mi a teendő, ha nincs - érték?Megjegyzés: ez is működne szétválogatással, metszettel, unióval.

23.04.20. Zsakó László: Algoritmizálás, adatmodellezés tanítása 11/12

Page 12: Algoritmizálás, adatmodellezés tanítása 3. előadás

Algoritmizálás, adatmodellezéstanítása

3. előadás vége