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:metszetkepzes [2017/06/18 13:47] beistvan |
inf-prog-fszi:metszetkepzes [2017/06/21 12:17] (aktuális) beistvan |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | ====== Metszetké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 metszetét a C() vektorba! | ||
+ | |||
+ | <code bash metszet.txt> | ||
+ | Eljárás: | ||
+ | CN:=0 | ||
+ | Ciklus I=1-től N-ig | ||
+ | J:=1 | ||
+ | Ciklus amíg J<=M és A(I)<> | ||
+ | J:=J+1 | ||
+ | Ciklus vége | ||
+ | Ha J<=M akkor CN:=CN+1 | ||
+ | C(CN): | ||
+ | Ciklus vége | ||
+ | Eljárás vége. | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pascal forráskód | ||
+ | |||
+ | <code pascal metszetkepzes.pas> | ||
+ | program metszetkepzes; | ||
+ | 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 metszetét!(kozos elemeit) | ||
+ | k:=0; | ||
+ | for i:=1 to n do begin | ||
+ | j:=1; | ||
+ | while (j<=m) and (a[i]<> | ||
+ | j:=j+1; | ||
+ | if j<=m then begin | ||
+ | k:=k+1; | ||
+ | c[k]:=a[i]; | ||
+ | end; | ||
+ | end; | ||
+ | writeln(' | ||
+ | for i:=1 to k do | ||
+ | write(c[i], ' '); | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Metszetképzés egyedi elemekből. | ||
+ | |||
+ | <code pascal metszetkepzes_egyedielemek.pas> | ||
+ | program metszetkepzes_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 metszetét!(kozos elemeit) | ||
+ | k:=0; | ||
+ | for i:=1 to n do begin | ||
+ | j:=1; | ||
+ | while (j<=m) and (a[i]<> | ||
+ | j:=j+1; | ||
+ | if j<=m then 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; | ||
+ | end; | ||
+ | writeln(' | ||
+ | for i:=1 to k do | ||
+ | write(c[i], ' '); | ||
+ | readln; | ||
+ | end. | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Órai gyakorlat | ||
+ | |||
+ | <code pascal metszetkepzes1.pas> | ||
+ | program metszetkepzes1; | ||
+ | const max_hossz=10; | ||
+ | type tomb = array [1..max_hossz] of integer; | ||
+ | var i,j, k, l : integer; | ||
+ | a,b,c: tomb; | ||
+ | procedure beolvas(var t : tomb; hossz: byte; nev: char ); | ||
+ | var i: integer; | ||
+ | begin | ||
+ | writeln(' | ||
+ | for i:=1 to hossz do | ||
+ | begin | ||
+ | write(nev, ' | ||
+ | end; | ||
+ | end; | ||
+ | procedure kiir(t : tomb; hossz: byte); | ||
+ | var i: integer; | ||
+ | begin | ||
+ | for i:=1 to hossz do | ||
+ | write(t[i]: | ||
+ | writeln; | ||
+ | end; | ||
+ | begin //foprogram | ||
+ | beolvas(a, n, ' | ||
+ | beolvas(b, m, ' | ||
+ | kiir(a,n); | ||
+ | kiir(b,m); | ||
+ | k:=0; | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | j:=1; | ||
+ | while (j<=m) and (a[i]<> | ||
+ | j := j + 1; | ||
+ | if j<=m then | ||
+ | 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; | ||
+ | end; | ||
+ | kiir(c, k); | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code pascal metszetkepzes2.pas> | ||
+ | program metszetkepzes2; | ||
+ | const maxhossz=10; | ||
+ | type tomb = array [1..maxhossz] of integer; | ||
+ | var i, k : integer; | ||
+ | a,b,c: tomb; | ||
+ | procedure beolvas(var t : tomb; hossz: byte; nev: char ); | ||
+ | var i: integer; | ||
+ | begin | ||
+ | writeln(' | ||
+ | for i:=1 to hossz do | ||
+ | begin | ||
+ | write(nev, ' | ||
+ | end; | ||
+ | end; | ||
+ | procedure kiir(t : tomb; hossz: byte); | ||
+ | var i: integer; | ||
+ | begin | ||
+ | for i:=1 to hossz do | ||
+ | write(t[i]: | ||
+ | writeln; | ||
+ | end; | ||
+ | function talal(t: tomb; hossz:byte; elem: | ||
+ | var i:integer; | ||
+ | begin | ||
+ | i:=1; | ||
+ | while (i< | ||
+ | i:=i+1; | ||
+ | talal: | ||
+ | end; | ||
+ | begin //foprogram | ||
+ | beolvas(a, n, ' | ||
+ | beolvas(b, m, ' | ||
+ | kiir(a,n); | ||
+ | kiir(b,m); | ||
+ | k:=0; | ||
+ | for i:=1 to n do begin | ||
+ | if talal(b, | ||
+ | if not talal(c, | ||
+ | k:=k+1; | ||
+ | c[k]:=a[i]; | ||
+ | end; | ||
+ | end; | ||
+ | end; | ||
+ | kiir(c, k); | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | <code pascal metszetkepzes3.pas> | ||
+ | program metszetkepzes3; | ||
+ | const maxhossz=10; | ||
+ | type tomb = array [1..maxhossz] of integer; | ||
+ | procedure beolvas(var t : tomb; hossz: byte; nev: char ); | ||
+ | var i: integer; | ||
+ | begin | ||
+ | writeln(' | ||
+ | for i:=1 to hossz do | ||
+ | begin | ||
+ | write(nev, ' | ||
+ | end; | ||
+ | end; | ||
+ | procedure kiir(t : tomb; hossz: byte; nev: char ); | ||
+ | var i: integer; | ||
+ | begin | ||
+ | write(nev+': | ||
+ | for i:=1 to hossz do | ||
+ | write(t[i]: | ||
+ | writeln; | ||
+ | end; | ||
+ | function talal(t: tomb; hossz:byte; elem: | ||
+ | var i:integer; | ||
+ | begin | ||
+ | i:=1; | ||
+ | while (i< | ||
+ | i:=i+1; | ||
+ | talal: | ||
+ | end; | ||
+ | var i, k : integer; | ||
+ | a,b,c: tomb; | ||
+ | begin //foprogram | ||
+ | beolvas(a, n, ' | ||
+ | beolvas(b, m, ' | ||
+ | kiir(a, | ||
+ | kiir(b, | ||
+ | k:=0; | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | if talal(b, | ||
+ | begin | ||
+ | k:=k+1; | ||
+ | c[k]:=a[i]; | ||
+ | end; | ||
+ | end; | ||
+ | kiir(c, k,' | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||