kam99 Temat założony przez niniejszego użytkownika |
C++ Porównanie dwóch tablic dwuwymiarowych. » 2021-04-07 21:07:50 Witam,
Mam problem z porównaniem dwóch tablic dwuwymiarowych. Posiadam tablicę A z 20 wierszami i 2 kolumnami oraz tablicę B z 4 wierszami i 2 kolumnami. Tablica B jest tak jakby tablicą decyzyjną i chciałbym aby na jej podstawie przeszukać tablicę A i znaleźć id(znajdujące się w kolumnie nr.1) z podobnymi liczbami całkowitymi z kolumny nr.2 w dwóch tablicach, a następnie wypisać same Id do tablicy jednowymiarowej. Próbowałem robić to na kilka sposobów ale nie bardzo mam pomysł jak do tego podejść. Czy mógłbym prosić o pomoc w nakierowaniu mnie na skuteczne rozwiązanie?
Aby lepiej wyjaśnić:
Tablica A Tablica B Id | Int Id | Int --------- --------- 1 | 4 2 | 1 2 | 1 4 | 1 3 | 2 5 | 3 4 | 1 10 | 4 5 | 3 ...| ... 20 | 2
Chciałbym porównać obie tablice posługując się Int, jeżeli Int w 1 wierszu Tablicy B wynosi 1 to algorytm powinien przeszukać tablicę A w poszukiwaniu Int=1 i wpisać Id z tablicy A w którym Int=1 do nowej tablicy jednowymiarowej. Chciałbym jednocześnie uniknąć powtórzeń w tej nowej tablicy.
Także podsumowując dla tego przykładu powinna ukazać się tablica jednowymiarowa z pasującymi ID z tablicy A, czyli Tab={2,4,5,1}.
Prosiłbym o jakieś porady w sprawie rozwiązania.
|
darko202 |
» 2021-04-09 15:44:34 Zadanie nie jest skomplikowane musisz tylko zrozumieć problem
1. wersja uproszczona mamy tablicę tabA = { 4, 1, 2, 3, 5, 2, 7, 7} tablicę tabB = { 1, 1, 3, 4} tablicę Wyniki = { }
algorytm
pętla (B) po tablicy : tabB , iterator : iB bierzemy element tej tablicy tabB[iB] { pętla (A) po tablicy : tabA , iterator : iA { porównujemy czy tabA[iA] == tabB[iB] { // równe { bierzemy indeks elementu tab{iA} : iA pętla (W) po tablicy Wyniki { sprawdzamy, czy taki indeks jest już w tej tablicy jeśli taki indeks istnieje to wychodzimy z pętli (W) -> dalej szukamy w pętli (A)
jeśli nie ma -> to ten indeks dodajemy do tablicy Wyniki } // koniec peli (W) po Wyniki
} // koniec porónania tabA[iA] == tabB[iB] } // koniec pętli (A) po tabA } //koniec pętli (B) po tabB
2. wersja zadania mamy do czynienia z tablicami dwuwymiarowymi tablicę tabA = { (1, 4}, {2, 1}, {3, 2}, {4, 3}, {5, 5} , {6, 2}, {7, 7}, {8, 7} } tablicę tabB = { {1, 1}, {2, 1}, {3, 3}, {4, 4} } tablicę Wyniki = { }
algorytm z p 1 powtarzamy zastępując indeks elementem ID
3. algorytm z p.2 musi również zadziałać dla tablic
tablicę tabA = { (31, 4}, {102, 1}, {105, 2}, {204, 3}, {302, 5} , {367, 2}, {447, 7}, {581, 7} } tablicę tabB = { {1, 1}, {2, 1}, {3, 3}, {4, 4} } tablicę Wyniki = { }
Powodzenia
|