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

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

Upload: sara-morrison

Post on 02-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Algoritmizálás, adatmodellezés tanítása 1. előadás. Specifikáció. A specifikáció elemei bemenet – mit ismerünk? kimenet – mire vagyunk kíváncsiak? előfeltétel – mit tudunk az ismertekről? utófeltétel – mi az összefüggés az ismertek és az ismeretlenek között?. Specifikáció. - PowerPoint PPT Presentation

TRANSCRIPT

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

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

1. előadás

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

Specifikáció

A specifikáció elemeibemenet – mit ismerünk?kimenet – mire vagyunk kíváncsiak?előfeltétel – mit tudunk az ismertekről?utófeltétel – mi az összefüggés az ismertek és az ismeretlenek között?

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

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

Specifikáció

A bemenet és a kimenet leírásaTípuskéntN: Egész, X: Tömb(1..N,Egész)

Halmazelemként (ha az egész típus a fentiekben ter-mészetes számot takart)NN, XN N (N *, ha az elemszám nem ismert)

azaz általánosan a be- és kimenetet halmazokkal adjuk meg, ami a típusfogalomnál általánosabb:változó: típus változóhalmaz23.04.20. 3Zsakó László: Algoritmizálás, adatmodellezés tanítása

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

Specifikáció

Specifikáció és algoritmus kapcsolata

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

y=f(g(x)) z:=g(x); y:=f(z)

Ha p(x) akkor y:=f(x) különben y:=g(x)

y=f*(x)

y:=f0

Ciklus ... y:=f'(y,x)Ciklus vége

egyébkéntxg

xphaxfy

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

Programozási tételek

SorozatszámításBemenet: NN, XHN, F:HN→H, f:HxH→H, F0H

F(X1,...,XN)=f(F(X1,...,XN-1),XN), F()=F0

Kimenet: SH

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

Megjegyzés: F sokszor , átlag, szórás, skalárszorzat, , , , , , egymás után írás, Max, Min.

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

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

Programozási tételek

SorozatszámításSorozatszámítás(N,X,S):

S:=F0

Ciklus i=1-től N-ig

S:=f(S,X(i))

Ciklus vége

Eljárás vége.

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

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

Programozási tételek

Sorozatszámítás műveletreBemenet: NN, XHN, T:H→L, vagy:LxL→L, F0L

F(X1,...,XN)=i(1≤i≤N): T(Xi)

i(1≤i≤N): T(Xi) = i(1≤i≤N-1): T(Xi) vagy T(XN),

F()=F0=hamis

Kimenet: VanL

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

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

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

Programozási tételek

Sorozatszámítás műveletreSorozatszámítás(N,X,S): Van:=hamis Ciklus i=1-től N-ig Van:=Van vagy T(X(i)) Ciklus végeEljárás vége.

Megjegyzés: S a ciklus során a következőképpen változhat:

hamis, ..., hamis, igaz, ..., igaz hamis, ..., hamisazaz az igazzá válás után meg lehetne állni!23.04.20. 8Zsakó László: Algoritmizálás, adatmodellezés tanítása

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

Programozási tételek

EldöntésBemenet: NN, XHN, T:H→L Kimenet: VanL

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

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

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

Programozási tételek

EldöntésEldöntés(N,X,Van): i:=1 Ciklus amíg i≤N és nem T(X(i)) i:=i+1 Ciklus vége Van:=(i≤N)Eljárás vége.

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

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

Programozási tételek

Eldöntés ()Bemenet: NN, XHN, T:H→L Kimenet: MindL

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

Mind=nem i(1≤i≤N) nem T(Xi)

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

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

Programozási tételek

EldöntésEldöntés(N,X,Van): i:=1 Ciklus amíg i≤N és nem (nem T(X(i)))→ T(X(i)) i:=i+1 Ciklus vége Van:=nem(i≤N) → (i>N)Eljárás vége.

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

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

Programozási tételek

Eldöntés vizsgálataAz eldöntés ciklusa befejezésekor az i változó értéke:egy T tulajdonságú elem sorszáma, ha tudjuk hogy van ilyen

→ Kiválasztás tételegy T tulajdonságú elem sorszáma, ha nem lépett túl a sorozat végénN+1, ha túl lépett a sorozat végén

→ Keresés tétel23.04.20. 13Zsakó László: Algoritmizálás, adatmodellezés tanítása

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

Programozási tételek

KiválasztásBemenet: NN, XHN, T:H→L, Kimenet: SN

Előfeltétel: i(1≤i≤N) T(Xi)

Utófeltétel: 1≤S≤N és T(XS)

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

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

Programozási tételek

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

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

Programozási tételek

KeresésBemenet: NN, XHN, T:H→L, Kimenet: VanL,SN

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

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

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

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

Programozási tételek

KeresésKeresés(N,X,Van,S): i:=1 Ciklus amíg i≤N és nem T(X(i)) i:=i+1 Ciklus vége Van:=(i≤N) Ha Van akkor S:=iEljárás vége.

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

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

Programozási tételek

Sorozatszámítás T tulajdonságú elemek számára – MegszámolásBemenet: NN, XHN, F:HN→N, f:NxN→N, F0N

F( )=0Kimenet: DbN

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

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

egyébkéntXXF

XThaXXFXXF

N

NNN

11

111 ,...,

1,...,,...,

N

XT

i

i

Db1

1

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

Programozási tételek

MegszámolásMegszámolás(N,X,S): Db:=0 Ciklus i=1-től N-ig Db:=f(Db,X(i)) → Ha T(X(i)) akkor Db:=Db+1 Ciklus végeEljárás vége.

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

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

Programozási tételek

Sorozatszámítás (maximális elem sorszáma) – MaximumkiválasztásBemenet: NN, XHN, F:HN→N, f:HxH→N, F1N

Kimenet: MaxIndN

Előfeltétel: N>0Utófeltétel: MaxInd=F(X1,...,XN)

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

egyébkéntXXF

XXFXhaNXXF

N

NNN

11

111 ,...,

,...,,...,

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

Programozási tételek

Sorozatszámítás (maximális elem sorszáma) – MaximumkiválasztásMegszámolás(N,X,MaxInd): MaxInd:=1 Ciklus i=2-től N-ig MaxInd:=max*(MaxInd,i) Ciklus végeEljárás vége.

→ Ha X(i)>X(MaxInd) akkor MaxInd:=i

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

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

Programozási tételek

Sorozatszámítás (maximális elem értéke) – MaximumkiválasztásBemenet: NN, XHN, F:HN→H, max:HxH→H, F1H

F(X1,...,XN)=max(F(X1,...,XN-1),XN), F(X1)=X1

Kimenet: MaxÉrtHElőfeltétel: N>0Utófeltétel: Maxért=F(X1,...,XN)

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

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

Programozási tételek

Sorozatszámítás (maximális elem értéke) – Maximumkiválasztás Maximumkiválasztás(N,X,MaxÉrt): MaxÉrt:=X(1) Ciklus i=2-től N-ig MaxÉrt:=max(MaxÉrt,X(i)) Ciklus végeEljárás vége.

→ Ha X(i)>Maxért akkor Maxért:=X(i)

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

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

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

1. előadás vége