C# Programozás


Adatbázis és szoftverfejlesztés gyakorlat - KÖZÉPSZINTŰ KÖVETELMÉNYEK - Programozási nyelv „A”

figyelem

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

PÉLDA: A = { 3, 8, 20, 5, 1, 4, 13, 16, 10, 18, 69, 21 } B = { 10, 3, 8, 1, 17, 9, 4, 20, 18, 19, 21, 22, 69 }

MEGOLDÁS

2017_01_03 FELADAT


OraveczSzeliKláben