====== Összefuttatás ====== **Általános feladat**: Két rendezett sorozat uniója úgy, hogy a rendezettség megmaradjon. 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 program osszefutatas; const n = 10; m = 5; var a:array[1..n] of integer; b:array[1..m] of integer; c:array[1..n+m] of integer; i,j,k:integer; begin randomize; // veletlen elemekbol allo tomb keszitese for i:=1 to n do begin a[i]:=10+random(89); write(a[i]:3); end; writeln; for i:=1 to m do begin b[i]:=10+random(89); write(b[i]:3); end; writeln; // az a rendezese for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin k:=a[i]; a[i]:=a[j]; a[j]:=k; end; for i:=1 to n do write(a[i]:3); writeln; // a b rendezese for i:=1 to m-1 do for j:=i+1 to m do if b[i]>b[j] then begin k:=b[i]; b[i]:=b[j]; b[j]:=k; end; for i:=1 to m do write(b[i]:3); writeln; // 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 k:=k+1; 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; for i:=1 to k do write(c[i]:3); readln; end. [[https://ideone.com/E19t9Z | Az forráskódjának futtatása online ]] Órai gyakorlat (szükséges könyvtárak: [[inf-prog-fszi:eljarasok_es_fueggvenyek#a_tomb_iopas_koenyvtar|tomb_io]], [[inf-prog-fszi:eljarasok_es_fueggvenyek#a_tomb_rendpas_koenyvtar|tomb_rend]]) program osszefuttatas; uses tomb_io, tomb_rend; var a,b,c:tomb; n,m,i,j,k:byte; begin beolvas(a,n,'a'); beolvas(b,m,'b'); kiir(a,n,'a'); kiir(b,m,'b'); minimum_rendezes(a, n); kiir(a,n,'a rendezett a'); minimum_rendezes(b, m); kiir(b,m,'a rendezett 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,k,'c'); readln; end.