Wprowadzenie do tablic 2-D w C

Tablica to grupa elementów o tym samym (jednorodnym) typie danych. Jest również nazywany typem danych pochodnych. Jeśli rozważymy prymitywny typ danych i przypiszemy wartość, jak pokazano poniżej,

A teraz, jeśli chcemy zapisać nową wartość w zmiennej a, nowa wartość zastępuje starą wartość. Używając jednej pierwotnej zmiennej, możemy przechowywać tylko jedną wartość na raz, nie możemy przechowywać wielu wartości.

Aby przechowywać więcej niż jeden element w jednej zmiennej, takiej jak oceny studentów, identyfikatory pracowników, numery telefonów komórkowych z dużą ilością danych, musimy stworzyć setki unikalnych zmiennych, co jest bardzo złożonym zadaniem. Dlatego właśnie wprowadzono pojęcie tablic.

Koncepcje w tablicach 2-D w C

Możemy zdefiniować tablice w

  • Jednowymiarowy
  • Dwuwymiarowy

I tak dalej do N-Dimensional w oparciu o wymagania. Ale tutaj zajmiemy się tablicami 2-D. Jak sama nazwa wskazuje, tablice 2-D mogą być macierzową reprezentacją danych, które są tworzone w celu implementacji relacyjnej bazy danych podobnej do struktury danych i mogą być przechowywane w postaci tabelarycznej. Zapewnia łatwość przechowywania danych zbiorczych, które mogą być przekazywane do dowolnej liczby funkcji w zależności od wymagań. Dostęp do danych w tych tablicach można uzyskać poprzez identyfikatory wierszy i kolumn.

Jak możemy je zdefiniować i wdrożyć? Gdzie możemy ich użyć? Idąc dalej, zrozummy te pojęcia.

W C tablice wymiarowe można zadeklarować w następujący sposób:

Składnia

W ten sam sposób możemy zadeklarować tablicę 2-D jako:

Znaczenie powyższej reprezentacji można rozumieć jako:

  1. Pamięć przydzielona do zmiennej b ma typ danych int.
  2. Dane są reprezentowane w postaci 2 wierszy i 3 kolumn.


Dostęp do danych w tablicy można uzyskać poprzez powyższą reprezentację. W reprezentacji tablic 2D pierwszy nawias kwadratowy reprezentuje liczbę wierszy, a drugi liczbę kolumn. Reprezentacja indeksu tablicy dla pierwszego elementu zawsze zaczyna się od zera i kończy na rozmiarze-1. Zmienna tablicowa (tutaj b) zawsze zawiera adres bazowy bloku pamięci i nazywa się ją wewnętrzną zmienną wskaźnikową.

Na przykład, jeśli liczba wierszy wynosi 3, wówczas reprezentacja indeksu dostępu do danych w wierszach będzie wynosić 0, 1 i 2. Ta sama logika dotyczy również indeksów kolumn. Dla powyższej reprezentacji, aby uzyskać dane z 2. rzędu 3. kolumny, możemy uzyskać dostęp za pomocą b (1) (2).

Inicjowanie tablic

Mamy dwie różne metody inicjowania wartości w C. Metody różnią się tylko składniowo.

Poniżej jest jeden z nich.

Inny sposób inicjowania jest następujący:

Ogólnie rzecz biorąc, preferowana jest pierwsza metoda inicjalizacji, ponieważ możemy jasno zrozumieć i wizualizować wiersze i kolumny tablic 2-D w C.

Poniżej znajduje się przykład obrazowej reprezentacji elementów i ich adresu dla tablicy b.

Elementy tablicy są zwykle przechowywane w kolejnych lokalizacjach pamięci w zależności od typu danych elementów.

Wstawianie elementów do tablic 2-D

Aby wstawić elementy do tablic 2-D, musimy wstawić dane zarówno w wierszach, jak i kolumnach. W tym celu używamy koncepcji pętli. W powyższym procesie inicjowania danych w tablicy wstępnie zdefiniowaliśmy wartości.

Tutaj elementy mogą być dynamicznie wstawiane przez użytkownika, zgodnie z wymaganiami. Poniżej znajduje się przykładowy kod do wstawiania elementów.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
)

Jak zaobserwowano w kodzie:

  1. Po pierwsze, deklarujemy zmienną tablicową i wymiary tablicy wraz z liczbą wierszy i kolumn.
  2. Następnie deklarujemy dwie zmienne do iteracji elementów w tablicy.
  3. Następnie używane są pętle. Zewnętrzna pętla for służy do iteracji wierszy, a wewnętrzna pętla służy do kolumn.
  4. Funkcja Scanf służy do odczytu danych podczas wprowadzania, a następnie umieszczenia wartości wstawionej w tych pozycjach i i j.

W powyższym przykładzie wstawiliśmy dane do macierzy mającej 2 wiersze i 3 kolumny. Wynik następujących działań można uzyskać jak poniżej:

Ponieważ nie użyliśmy funkcji printf do wyświetlenia wyniku, napisany program odczytał tylko wartości wprowadzone przez użytkownika. Po zapisaniu funkcji drukowania (przy użyciu pętli) dane wyjściowe będą wyświetlane jako:

Aktualizuj elementy w tablicach 2-D

Aktualizację elementów w tablicy można wykonać, określając konkretny element, który ma zostać zastąpiony, lub określając pozycję, w której należy dokonać zamiany. Do aktualizacji zazwyczaj wymagamy następujących informacji.

  1. Elementy tablicy
  2. Pozycja / element, w którym należy go wstawić
  3. Wartość do wstawienia.

Aby zaktualizować dane w tablicy poprzez szczegółowe informacje o elemencie, najpierw musimy wyszukać ten element w tablicy, zrozumieć jego położenie, a następnie zastąpić stary element nowym elementem.

Poniżej podajemy dwa przykłady aktualizacji elementu tablicy 2-D.

Po pierwsze przejdźmy do przykładu, w którym pozycja elementu do aktualizacji jest już znana.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
b(0)(2)=10;
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
printf("\n");
)
return 0;
)

W powyższym programie wybrano element w pierwszym rzędzie i trzeciej kolumnie, a wartość danych w tej pozycji została zaktualizowana.

Dane wyjściowe dla powyższych są następujące:

W drugim przykładzie pokażemy, jak pozycję elementu można dynamicznie przyjmować jako wartość wprowadzoną przez użytkownika, i aktualizujemy wartość elementu w tej konkretnej pozycji.

#include
int main()
(
int b(2)(3);
int i, j, num;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
printf("Enter the value of row and coulmn number :");
scanf("%d %d", &i, &j);
printf("Enter the number you want to update with: ");
scanf("%d", &num);
b(i)(j)=num;
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
printf("\n");
)
return 0;
)

W tym przypadku użyliśmy funkcji scanf do odczytania wartości podanej przez użytkownika zgodnie z jego wyborem pozycji elementu na podstawie numerów wierszy i kolumn.

Dane wyjściowe są następujące:

Czy jako ćwiczenie możesz spróbować napisać program aktualizujący cały wiersz macierzy o wartości wprowadzone przez użytkownika?

Teraz, jak wiemy, w tablicy 2-D deklarujemy rozmiar tablicy na samym początku. Zdajemy sobie sprawę z rozmiaru tablicy, ale co jeśli użytkownik poda losowy numer wiersza i kolumny poza naszym rozmiarem?

Zauważ, że ponieważ nie napisaliśmy żadnego warunku if / else ani bloków try / catch, dane wyjściowe macierzy się nie zmieniają. Możemy jednak napisać kod, korzystając z wyżej wymienionych warunków, aby wyświetlić błędy w takich przypadkach.

Usuwanie elementów w tablicach 2-D

Po koncepcjach wstawiania i aktualizacji danych wewnątrz tablicy, zobaczmy teraz, jak możemy usunąć cały wiersz z tablicy.

Napisaliśmy program w prostym formacie, aby łatwo zrozumieć pojęcie różnych operacji w tablicy 2-d.

#include
int main()
(
int b(2)(3), i, j, num, x;
printf("Enter elements into 2-D array: ");
for(i=0;i<2;i++)
(
for(j=0;j<3;j++)
(
scanf("%d", &b(i)(j));
)
)
printf("Enter the value of row number :");
scanf("%d", &x);
for(i=0;i<2;i++)
(
if(i==x)
(
for(j=0;j<3;j++)
(
if((i+1)<2)
(
printf("\t%d", b(i+1)(j));
)
)
i++;)
else
(
for(j=0;j<3;j++)
(
printf("\t%d", b(i)(j));
)
)
printf("\n");
)
)

Następujące kroki to:

  1. Wziął wartości tablicy dynamicznie
  2. Poprosił użytkownika o wprowadzenie numeru (indeksu) wiersza, który należy usunąć.
  3. Używając iteracji pętli, porównujemy, czy numer wiersza i numer wejściowy użytkownika są zgodne, czy nie.
  4. Jeśli są one zgodne, a numer wiersza jest mniejszy niż rozmiar tablicy, drukujemy następny wiersz. W przeciwnym razie drukujemy wiersz takim, jaki jest.

Dane wyjściowe są następujące:

Co jeśli podam numer wiersza poza granicą tablicy?

Nie znajdzie wiersza do usunięcia i wyjścia z programu poprzez wydrukowanie całej tablicy.

Jak już wiemy, możemy nawet dynamicznie deklarować wartości dla numerów wierszy i kolumn i odpowiednio pisać program.

Czy to nie wygląda na proste i łatwe do nauczenia się?

Czy jako ćwiczenie możesz teraz spróbować usunąć konkretny element dla tablicy 2-d?

Wniosek

W tej sekcji nauczyliśmy się podstawowych operacji na tablicach dwuwymiarowych. Te dwuwymiarowe tablice są przydatne w czasie rzeczywistym z operacjami macierzowymi i wieloma obliczeniami matematycznymi.

Tablic można nawet używać do wyświetlania kalendarzy, miejsc parkingowych, a nawet możemy grać w szachy.

Wiele innych struktur danych, takich jak Listy połączone, Kolejka, Wykresy, Drzewa, musi wykorzystywać tę koncepcję tablic 2-D jako podstawowy wymóg przechowywania i uzyskiwania dostępu do lokalizacji różnych elementów. Spróbuj rozwiązać podstawowe operacje tablic 2d i baw się dobrze, ucząc się C.

Polecane artykuły

Jest to przewodnik po tablicach 2-D w C. Tutaj omawiamy wprowadzenie, inicjowanie tablic, wstawianie, aktualizowanie, usuwanie elementów w tablicach 2-D. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Tablice w R.
  2. Zalety macierzy
  3. Tablice w C ++
  4. Tablice w JavaScript
  5. Przykłady tablic w C #
  6. Tablice w PHP