You are on page 1of 17

Algoritmizls, adatmodellezs

tantsa
4. elads

Programozsi ttelek listra s


szekvencilis fjlra
Sorozatszmts
Bemenet: XH*, F:H*H, f:HxHH, F0H
F(X1,...,XN)=f(F(X1,...,XN-1),XN), F()=F0
Kimenet: SH
Elfelttel: hossz(X)>0
Utfelttel: S=F(X1,...,XN)

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Sorozatszmts(L,S):
S:=F0; Elsre(L)
Ciklus amg nem Utols?(L)
S:=f(S,Elem(L)); Kvetkezre(L)
Ciklus vge
S:=f(S,Elem(L))
Eljrs vge.
Sorozatszmts(f,S):
S:=F0; Nyit(f)
Ciklus amg nem Vge?(f)
Olvas(f,y); S:=f(S,y)
Ciklus vge
Zr(f)
Eljrs vge.
2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Eldnts
Bemenet: XH*, T:HL
Kimenet: VanL
Elfelttel: hossz(X)>0
Utfelttel: Van=y(yX): T(y)

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Eldnts(L,Van):
Elsre(L)
Ciklus amg nem Utols?(L) s nem T(Elem(L))
Kvetkezre(L)
Ciklus vge
Van:=T(Elem(L))
Eljrs vge.
Eldnts(f,Van):
Nyit(f); Olvas(f,y)
Ciklus amg nem Vge?(f) s nem T(y)
Olvas(f,y)
Ciklus vge
Van:=T(y); Zr(f)
Eljrs vge.
2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Kivlaszts
Bemenet: XH*, T:HL
Kimenet: EH, SN
Elfelttel: y(yX): T(y)
Utfelttel: EX s T(E) s 1S s E=XS

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Kivlaszts(L,E,S):
Elsre(L); S:=1
Ciklus amg nem T(Elem(L))
Kvetkezre(L); S:=S+1
Ciklus vge
E:=Elem(L)
Eljrs vge.
Kivlaszts(f,E,S):
Nyit(f); Olvas(f,y); S:=1
Ciklus amg nem T(y)
Olvas(f,y); S:=S+1
Ciklus vge
E:=y; Zr(f)
Eljrs vge.
2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Maximumkivlaszts
Bemenet: XH*
Kimenet: MaxIndN, MaxrtH
Elfelttel: hossz(X)>0
Utfelttel: yX: Maxrty s
1MaxInd s Maxrt=XMaxInd

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Maximumkivlaszts(L,Maxrt,MaxInd):
Elsre(L); S:=1; Maxrt:=Elem(L); MaxInd:=1
Ciklus amg nem Utols?(L)
Kvetkezre(L); S:=S+1
Ha Maxrt<Elem(L) akkor Maxrt:=Elem(L)
MaxInd:=S
Ciklus vge
Eljrs vge.

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

Programozsi ttelek listra s


szekvencilis fjlra
Maximumkivlaszts(f,Maxrt,MaxInd):
Nyit(f); Olvas(f,y); S:=1
Maxrt:=y; MaxInd:=1
Ciklus amg nem Vge?(f)
Olvas(f,y); S:=S+1
Ha Maxrt<y akkor Maxrt:=y; MaxInd:=S
Ciklus vge
Zr(f)
Eljrs vge.

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

10

Programozsi ttelek listra s


szekvencilis fjlra
Kivlogats
Bemenet: XH*, T:HL
Kimenet: YH*
Elfelttel: hossz(X)>0
Utfelttel: YX s y(yY): T(y) s
x(xX s xY): nem T(x)

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

11

Programozsi ttelek listra s


szekvencilis fjlra
Kivlogats(L,M):
Elsre(L); res(M)
Ciklus amg nem Utols?(L)
Ha T(Elem(L)) akkor Beilleszt(M,Elem(L))
Kvetkezre(L)
Ciklus vge
Ha T(Elem(L)) akkor Beilleszt(M,Elem(L))
Eljrs vge.

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

12

Programozsi ttelek listra s


szekvencilis fjlra
Kivlogats(f,g):
Nyit(f); Nyit(g)
Ciklus amg nem Vge?(f)
Olvas(f,y)
Ha T(y) akkor r(g,y)
Ciklus vge
Zr(f); Zr(g)
Eljrs vge.

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

13

Programozsi ttelek listra s


szekvencilis fjlra
Uni rendezett halmazokra sszefuttats
Bemenet: X,YH*
Kimenet: ZH *
Elfelttel: halmazE(X) s halmazE(Y) s hossz(X)>0 s
hossz(Y)>0 s Utols(X)=+ s Utols(Y)=+
s i(i[1..hossz(X)): xi+ s rendezettE(X)
s i(i[1..hossz(Y)): yi+ s rendezettE(Y)
Utfelttel: z(zZ): zX vagy zY s halmazE(Z) s
x(xX): xZ s y(yY): yZ s
Utols(Z)=+ s rendezettE(Z)
2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

14

Programozsi ttelek listra s


szekvencilis fjlra
sszefuttats(L,M,P):
Elsre(L); Elsre(M); res(P)
Ciklus amg nem Utols?(L) vagy nem Utols?(M)
Elgazs
Elem(L)<Elem(M) esetn Beilleszt(P,Elem(L))
Kvetkezre(L)
Elem(L)=Elem(M) esetn Beilleszt(P,Elem(L))
Kvetkezre(L)
Kvetkezre(M)
Elem(L)>Elem(M) esetn Beilleszt(P,Elem(M))
Kvetkezre(M)
Elgazs vge
Ciklus vge
Beilleszt(P,Elem(L))
Eljrs vge.
2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

15

Programozsi ttelek listra s


szekvencilis fjlra
sszefuttats(f,g,h):
Nyit(f); Nyit(g); Nyit(h); Olvas(f,x); Olvas(g,y)
Ciklus amg nem Vge?(f) vagy nem Vge?(g)
Elgazs
x<y esetn r(h,x); Olvas(f,x)
x=y esetn r(h,x); Olvas(f,x); Olvas(g,y)
x>y esetn r(h,y); Olvas(g,y)
Elgazs vge
Ciklus vge
r(h,x); Zr(f); Zr(g); Zr(h)
Eljrs vge.

2010.10.06.

Zsak Lszl: Algoritmizls, adatmodellezs tantsa

16

Algoritmizls, adatmodellezs
tantsa
4. elads vge

You might also like