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

Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Algoritmizálás, adatmodellezés

tanítása

1. előadás

Page 2: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

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?

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 2/24

Page 3: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Specifikáció

A bemenet és a kimenet leírása

Típusként

N: 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óhalmaz

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 3/24

Page 4: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Specifikáció

Specifikáció és algoritmus kapcsolata

2015.09.08. 10:33 Zsakó 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

4/24

Page 5: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás

Bemenet: 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.

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 5/24

Page 6: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás Sorozatszá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.

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 6/24

Page 7: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás műveletre

Bemenet: 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)

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 7/24

Page 8: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

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

Van:=hamis Ciklus i=1-től N-ig

Van:=Van vagy T(X(i))

Ciklus vége

Eljárás vége.

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

hamis, ..., hamis, igaz, ..., igaz

hamis, ..., hamis

azaz az igazzá válás után meg lehetne állni!

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 8/24

Page 9: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Eldöntés

Bemenet: NN, XHN, T:H→L

Kimenet: VanL

Előfeltétel: ─

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

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 9/24

Page 10: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Eldöntés Eldö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.

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 10/24

Page 11: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

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)

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 11/24

Page 12: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Eldöntés Eldö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.

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

Page 13: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Eldöntés vizsgálata

Az 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étel

egy T tulajdonságú elem sorszáma, ha nem lépett túl a

sorozat végén

N+1, ha túl lépett a sorozat végén

→ Keresés tétel

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 13/24

Page 14: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Kiválasztás

Bemenet: 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)

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 14/24

Page 15: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Kiválasztás Kiválasztás(N,X,S):

i:=1 Ciklus amíg i≤N és nem T(X(i))

i:=i+1

Ciklus vége

S:=i

Eljárás vége.

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 15/24

Page 16: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Keresés

Bemenet: 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)

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 16/24

Page 17: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Keresés Keresé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:=i

Eljárás vége.

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 17/24

Page 18: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás T tulajdonságú elemek számára

– Megszámolás

Bemenet: NN, XHN, F:HN→N, f:NxN→N, F0N

F( )=0

Kimenet: DbN

Előfeltétel: ─

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

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

egyébkéntXXF

XThaXXFXXF

N

NN

N

11

11

1,...,

1,...,,...,

N

XT

i

i

Db1

1

18/24

Page 19: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Megszámolás Megszá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ége

Eljárás vége.

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 19/24

Page 20: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás (maximális elem sorszáma) –

Maximumkiválasztás

Bemenet: NN, XHN, F:HN→N, f:HxH→N, F1N

Kimenet: MaxIndN

Előfeltétel: N>0

Utófeltétel: MaxInd=F(X1,...,XN)

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

egyébkéntXXF

XXFXhaNXXF

N

NN

N

11

11

1,...,

,...,,...,

20/24

Page 21: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás (maximális elem sorszáma) –

Maximumkiválasztás Megszámolás(N,X,MaxInd):

MaxInd:=1 Ciklus i=2-től N-ig

MaxInd:=max*(MaxInd,i)

Ciklus vége

Eljárás vége.

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

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 21/24

Page 22: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Programozási tételek

Sorozatszámítás (maximális elem értéke) –

Maximumkiválasztás

Bemenet: NN, XHN, F:HN→H, max:HxH→H, F1H

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

Kimenet: MaxÉrtH

Előfeltétel: N>0

Utófeltétel: Maxért=F(X1,...,XN)

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 22/24

Page 23: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

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ége

Eljárás vége.

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

2015.09.08. 10:33 Zsakó László: Algoritmizálás, adatmodellezés tanítása 23/24

Page 24: Algoritmizálás, adatmodellezés tanítása 1. előadásalgtan.elte.hu/downloads/eloadas/Eloadas1.pdfSpecifikáció A specifikáció elemei bemenet – mit ismerünk? kimenet –

Algoritmizálás, adatmodellezés

tanítása

1. előadás vége