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. | ||
| + | |||
| + | </ | ||