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 Következő változat | Előző változat | ||
inf-prog-fszi:uniokepzes [2017/06/22 06:41] beistvan |
inf-prog-fszi:uniokepzes [2017/06/22 14:17] (aktuális) beistvan |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | ====== Únióképzés ====== | ||
+ | |||
+ | **Általános feladat**: Rendelkezésünkre áll egy N és egy M elemű halmaz az A() és a B() vektorban ábrázolva. Készítsük el a két halmaz egyesítését a C() vektorba! | ||
+ | |||
+ | <code bash uniokepzes.txt> | ||
+ | Eljárás: | ||
+ | Ciklus I=1-től N-ig | ||
+ | C(I): | ||
+ | Ciklus vége | ||
+ | CN:=N | ||
+ | Ciklus J=1-től M-ig | ||
+ | I:=1 | ||
+ | Ciklus amíg I<=N és A(I)<> | ||
+ | I:=I+1 | ||
+ | Ciklus vége | ||
+ | Ha I>N akkor | ||
+ | CN:=CN+1 | ||
+ | C(CN):=B(J) | ||
+ | Ha vége | ||
+ | Ciklus vége | ||
+ | Eljárás vége. | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pascal forráskód | ||
+ | |||
+ | <code pascal uniokepzes.pas> | ||
+ | program uniokepzes; | ||
+ | const n = 10; | ||
+ | m = 12; | ||
+ | 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; | ||
+ | //tömbök elkészítése | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | a[i]: | ||
+ | write(a[i], ' '); | ||
+ | end; | ||
+ | writeln; | ||
+ | for j:=1 to m do | ||
+ | begin | ||
+ | b[j]: | ||
+ | write(b[j], ' '); | ||
+ | end; | ||
+ | writeln; | ||
+ | //írjuk ki a c-be az a és b unióját! | ||
+ | // | ||
+ | for i:=1 to n do | ||
+ | c[i]:=a[i]; | ||
+ | k:=n; | ||
+ | for j:=1 to m do begin | ||
+ | i:=1; | ||
+ | while (i<=n) and (a[i]<> | ||
+ | i:=i+1; | ||
+ | if i>n then begin | ||
+ | k:=k+1; | ||
+ | c[k]:=b[j]; | ||
+ | end; | ||
+ | end; | ||
+ | writeln(' | ||
+ | for i:=1 to k do | ||
+ | write(c[i], ' '); | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Unióképzés egyedi elemekkel. | ||
+ | |||
+ | <code pascal uniokepzes_egyedielemek.pas> | ||
+ | program uniokepzes_egyedielemek; | ||
+ | const n = 10; | ||
+ | m = 12; | ||
+ | var a: array [1..n] of integer; | ||
+ | b: array [1..m] of integer; | ||
+ | c: array [1..n+m] of integer; | ||
+ | i, j, k, l: integer; | ||
+ | begin | ||
+ | randomize; | ||
+ | //tömbök elkészítése | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | a[i]: | ||
+ | write(a[i], ' '); | ||
+ | end; | ||
+ | writeln; | ||
+ | for j:=1 to m do | ||
+ | begin | ||
+ | b[j]: | ||
+ | write(b[j], ' '); | ||
+ | end; | ||
+ | writeln; | ||
+ | //írjuk ki a c-be az a és b unióját!(egyesítsünk) | ||
+ | k:=0; | ||
+ | for i:=1 to n do begin | ||
+ | l:=1; | ||
+ | while (l<=k) and (c[l]<> | ||
+ | l:=l+1; | ||
+ | if l>k then begin | ||
+ | k:=k+1; | ||
+ | c[k]:=a[i]; | ||
+ | end; | ||
+ | end; | ||
+ | // | ||
+ | for j:=1 to m do begin | ||
+ | i:=1; | ||
+ | while (i<=n) and (a[i]<> | ||
+ | i:=i+1; | ||
+ | if i>n then begin | ||
+ | l:=1; | ||
+ | while (l<=k) and (c[l]<> | ||
+ | l:=l+1; | ||
+ | if l>k then begin | ||
+ | k:=k+1; | ||
+ | c[k]:=b[j]; | ||
+ | end; | ||
+ | end; | ||
+ | end; | ||
+ | writeln(' | ||
+ | for i:=1 to k do | ||
+ | write(c[i], ' '); | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===== Órai gyakorlat ===== | ||
+ | (szükséges könyvtár: [[inf-prog-fszi: | ||
+ | |||
+ | <code pascal uniokepzes.pas> | ||
+ | program uniokepzes; | ||
+ | uses tomb_io; | ||
+ | var a,b,c:tomb; | ||
+ | | ||
+ | begin | ||
+ | beolvas(a, | ||
+ | beolvas(b, | ||
+ | kiir(a, | ||
+ | kiir(b, | ||
+ | for i:=1 to n do | ||
+ | c[i]:=a[i]; | ||
+ | k:=n; | ||
+ | for j:=1 to m do | ||
+ | begin | ||
+ | if not talal(a, | ||
+ | begin | ||
+ | k:=k+1; | ||
+ | c[k]:=b[j]; | ||
+ | end; | ||
+ | end; | ||
+ | kiir(c, | ||
+ | readln; | ||
+ | end. | ||
+ | </ |