A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat | |||
inf-prog-fszi:oesszefuttatas [2017/06/22 14:12] beistvan |
inf-prog-fszi:oesszefuttatas [2017/06/22 14:20] (aktuális) beistvan |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | ====== Összefuttatás ====== | ||
+ | |||
+ | **Általános feladat**: Két rendezett sorozat uniója úgy, hogy a rendezettség megmaradjon. | ||
+ | |||
+ | <code bash osszefuttat.txt> | ||
+ | Eljárás: | ||
+ | I := 1 | ||
+ | J := 1 | ||
+ | K := 0 | ||
+ | Ciklus amíg I <= N és J <= M | ||
+ | K := K + 1 | ||
+ | Elágazás | ||
+ | A(I) < B(J) esetén | ||
+ | C(K) := A(I) | ||
+ | I := I + 1 | ||
+ | A(I) = B(J) esetén | ||
+ | C(K) := A(I) | ||
+ | I := I + 1 | ||
+ | J := J + 1 | ||
+ | A(I) > B(J) esetén | ||
+ | C(K) := B(J) | ||
+ | J := J + 1 | ||
+ | Elágazás vége | ||
+ | Ciklus vége | ||
+ | Ciklus amíg I <= N | ||
+ | K := K + 1 | ||
+ | C(K) := A(I) | ||
+ | I := I + 1 | ||
+ | Ciklus vége | ||
+ | Ciklus amíg J <= M | ||
+ | K := K + 1 | ||
+ | C(K) := B(J) | ||
+ | J := J + 1 | ||
+ | Ciklus vége | ||
+ | Eljárás vége. | ||
+ | </ | ||
+ | |||
+ | Pascal forráskód | ||
+ | |||
+ | <code pascal osszefutatas.pas> | ||
+ | program osszefutatas; | ||
+ | const n = 10; m = 5; | ||
+ | var a: | ||
+ | b: | ||
+ | c: | ||
+ | i, | ||
+ | begin | ||
+ | | ||
+ | // veletlen elemekbol allo tomb keszitese | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | | ||
+ | for i:=1 to m do | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | | ||
+ | // az a rendezese | ||
+ | for i:=1 to n-1 do | ||
+ | for j:=i+1 to n do | ||
+ | if a[i]> | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | for i:=1 to n do | ||
+ | | ||
+ | | ||
+ | // a b rendezese | ||
+ | for i:=1 to m-1 do | ||
+ | for j:=i+1 to m do | ||
+ | if b[i]> | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | for i:=1 to m do | ||
+ | | ||
+ | | ||
+ | // az a es a b rendezett tombok | ||
+ | // osszefutatatasa egy rendezett c tombe | ||
+ | i:=1; | ||
+ | j:=1; | ||
+ | k:=0; | ||
+ | while (i<=n) and (j<=m) do | ||
+ | begin | ||
+ | | ||
+ | if a[i]< | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | end else | ||
+ | if a[i]=b[j] then | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | end else | ||
+ | if a[i]> | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | end; | ||
+ | while i<=n do | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | while j<=m do | ||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | end; | ||
+ | for i:=1 to k do | ||
+ | | ||
+ | | ||
+ | end. | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Órai gyakorlat | ||
+ | |||
+ | (szükséges könyvtárak: | ||
+ | |||
+ | <code pascal osszefutatas.pas> | ||
+ | program osszefuttatas; | ||
+ | uses tomb_io, tomb_rend; | ||
+ | var a,b,c:tomb; | ||
+ | | ||
+ | begin | ||
+ | beolvas(a, | ||
+ | beolvas(b, | ||
+ | kiir(a, | ||
+ | kiir(b, | ||
+ | minimum_rendezes(a, | ||
+ | kiir(a, | ||
+ | minimum_rendezes(b, | ||
+ | kiir(b, | ||
+ | i:=1; | ||
+ | j:=1; | ||
+ | k:=0; | ||
+ | while (i <= n) and (j <= m) do | ||
+ | begin | ||
+ | k:= k+1; | ||
+ | if a[i] < b[j] then | ||
+ | begin | ||
+ | c[k]:= a[i]; | ||
+ | i:= i+1; | ||
+ | end; | ||
+ | if a[i] = b[j] then | ||
+ | begin | ||
+ | c[k]:= a[i]; | ||
+ | i:= i+1; | ||
+ | j:= j+1; | ||
+ | end; | ||
+ | if a[i] > b[j] then | ||
+ | begin | ||
+ | c[k]:= b[j]; | ||
+ | j:= j+1; | ||
+ | end; | ||
+ | end; | ||
+ | while i<= n do | ||
+ | begin | ||
+ | k:=k+1; | ||
+ | c[k]:= a[i]; | ||
+ | i:= i+1; | ||
+ | end; | ||
+ | while j<= m do | ||
+ | begin | ||
+ | k:=k+1; | ||
+ | c[k]:= b[j]; | ||
+ | j:= j+1; | ||
+ | end; | ||
+ | kiir(c, | ||
+ | readln; | ||
+ | end. | ||
+ | </ |