Adatbázis és szoftverfejlesztés gyakorlat - KÖZÉPSZINTŰ KÖVETELMÉNYEK - Programozási nyelv „A”
3. TÖBB SOROZATHOZ EGY SOROZATOT RENDELŐ TÉTELEK
3.1 Metszetképzés tétele
3.1.1 Kitűzés
Adott két sorozat, a sorozatokon belül egy-egy elem csak egyszer szerepel.
Feladat: Határozzuk meg azt a sorozatot, amely a két sorozat közös elemeit tartalmazza.
3.1.2 Specifikáció
A,B:Tömb[1..Max]:H
N,M:egész / A és B elemszáma
C:Tömb[1..Max]:H
L: egész / C elemszáma
Ef.: A,B adott, elemeik egyediek; 0<=N<=Max , 0<=M<=Max
Uf: C tartalmazza A és B közös elemeit, 0<=L<=Min(A,B) /a metszet legfeljebb annyi elemet tartalmaz, mint a kisebb elemszámú sorozat/
3.1.3 Algoritmus
Elve: minden A-beli elemet keresünk a B tömbben. Ha egy A-beli megtalálható a B-ben, akkor felvesszük a közös elemek közé, a C-be.
Eljárás: Metszet:
L:=0;
Ciklus I:=1-től N-ig
J:=1; / A[I] keresése B-ben
Ciklus amíg J<=M és A[I]<>B[J]
J:=J+1
Ciklus vége
Ha J<=M / Ha A[I] megtalálható B-ben
akkor
L:=L+1
C[L]:=A[I]
Elágazás vége
Ciklus vége
Eljárás vége