Wprowadzenie do macierzy wielowymiarowej w C

W tym artykule skupiono się na macierzy wielowymiarowej w c, która jest głównie wykorzystywana w analizie komputerowej i badawczej. Ogólnie, tablica liniowo skupia fragment informacji, o której mówi się, że jest jednowymiarowy. Jednowymiarowy przechowuje dane tylko pojedyncze informacje, takie jak regno studentów. W niektórych sytuacjach konieczne jest przechowywanie danych w formacie tabeli zawierającym wiersze i kolumny lub obsługa złożonych danych. Aby to zwizualizować, potrzebujemy formatu matrycowego, który nazwaliśmy tablicami dwuwymiarowymi, w których aranżacje wymagają pikseli obrazu, grafiki. Dane są przechowywane w formie tabelarycznej. Manipulowanie tablicą odbywa się poprzez zmianę układu elementu za pomocą funkcji takich jak zmiana kształtu, ściśnięcie.

Jak zadeklarować tablicę wielowymiarową w C?

Składnia:

Ogólna deklaracja tablicy wielowymiarowej jest podana jako:

type name ( size) (size)……. N;

  • Tutaj nazwa typu danych - oznacza typ elementów (liczba całkowita, liczba zmiennoprzecinkowa).
  • Nazwa tablicy - oznacza nazwę przypisaną do tablicy wymiarów.
  • Rozmiar rzędu - liczba elementów rzędu np. row-size = 8, następnie tablica ma 8 wierszy.
  • Rozmiar kolumny - liczba elementów kolumny.

Jak zainicjować tablicę wielowymiarową w C?

Rozmiar tablic wielowymiarowych jest prognozowany poprzez pomnożenie rozmiaru różnych wymiarów. I przechowują wartości w postaci dwóch sposobów, takich jak major-row i major-column. Przydział pamięci potwierdza zarówno właściwości długości, jak i rangi.

W C macierz wielowymiarowa ma trzy typy:

  1. Tablica dwuwymiarowa
  2. Trójwymiarowa tablica
  3. Tablica czterowymiarowa

1. Dwuwymiarowa tablica

Tablica dwuwymiarowa ma strukturę macierzy i jest implementowana za pomocą wierszy i kolumn, zwanych również tablicami tablic. Alokacja pamięci odbywa się albo w wierszu głównym, albo w kolumnie głównym. Domyślny format to Row-Major. Biorąc tablicę 2-D, każdy element jest uważany za tablicę 1-D lub znany jako zbiór tablicy 1-D. Tablica dwuwymiarowa używa dwóch dla pętli lub pętli zagnieżdżonych, w których pętle zewnętrzne są wykonywane od 0 do początkowego indeksu dolnego.

Składnia:

type array name ( no. of rows) ( no. of Columns);

Przykład:

int td (4)(3);

tutaj 4 to nie. wierszy i 3 to nie. kolumn.

Inicjalizacja macierzy dwuwymiarowej

Inicjalizacja w tablicy 2-D odbywa się na wiele sposobów, tutaj pokazano.

int m (3)(2) = ((10, 3) (4, 2) (6, 4) (5, 4) (3, 4));
int di (2)(4) = (10, 5, 8, 12, 45, 13, 11, 61);

Wspomnieliśmy tutaj o nie. wierszy i kolumn w polu Obowiązkowe jest przypisanie drugiego indeksu, aby zrozumieć kompilator na temat zakończenia i początku wiersza. Poniższa tabela pokazuje przydział pamięci dla tablicy 2-D.

Liczbę elementów określa się, manipulując liczbą wierszy i kolumn i mnożąc nr. odpowiednio wierszy i kolumn. na przykład, nie. elementów ma tablicę B (-2… 4, -3, 6). Jest obliczany na podstawie dolnej i górnej granicy.

No. of rows= UB-LB +1
=4-(-2) +1 = 4+2+1= 7
No. of columns = UB-LB +1
= 6-(-3) + 1= 11
No. of elements = Rows * columns = 7 * 11 =77 elements

Realizacja

Odbywa się to przy użyciu głównych wierszy i głównych kolumn

Rząd główny:
Wzór na manipulację adresem podano jako:
= B +W ( n(I-1) +(J-1))
Gdzie b- jest adresem bazowym, a n- liczbą kolumn dla W bajtów.
Główna kolumna:
= B +W ( r(j-1) +(i-1))
gdzie r - jest nie. rzędów.

Przykłady tablicy dwuwymiarowej

Przykładami macierzy dwuwymiarowej są:

Przykład 1

Każdy element tablicy A (-10.10, 20… 35) potrzebuje 1 bajta pamięci. A tablica mieści się w kolumnie Major pod adresem 400, Znajdź lokalizację A (0, 30).

Rozwiązanie

BA =400, W=1
R = no. of rows -> 10-(-10) +1 = 21
I= -10; J= 20
Address A (0, 30) = 400 + 1((0-(-10) +21(30-20))) =400 +(10+21*10)
=400 +(10+210) = 620

Znaną operacją wykonywaną w tablicy 2-d jest Algebra macierzy z m * n Matrycą B. Matematyczna koncepcja macierzy jest realizowana tak samo jak w programowaniu.

Poniższy przykład przechowuje element w formacie macierzowym i drukuje to samo.

Kod:

#include
int main ()
(
int a(3)(4), i, j;
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("Enter arr(%d)(%d): ", i, j);
scanf("%d", &a(i)(j));
)
)
printf("\nEntered 2-D array is: \n\n");
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("%3d ", a(i)(j) );
)
printf("\n");
)
return 0;
)

Wynik:

Przykład nr 2

Program C wykonujący sumę dwóch macierzy.

Kod:

#include
int main()
(
int mat(20)(20);
int i, j, r, c;
int s;
printf("Enter number of Rows :");
scanf("%d", &r);
printf("Enter number of Cols :");
scanf("%d", &c);
printf("\nEnter matrix elements :\n");
for(i=0;i< r;i++)
( for(j=0;j< c;j++)
(
printf("Enter the number of inputs (%d, %d) : ", i+1, j+1);
scanf("%d", &mat(i)(j));
)
)
printf("\n");
for(i=0;i< r;i++)
(
s=0;
for(j=0;j< c;j++)
(
printf("%d\t", mat(i)(j));
s+=mat(i)(j);
)
printf("\tSUM : %d", s);
printf("\n");
)
)

Powyższy program oblicza sumę dwóch macierzy A (20, 20) B (20, 20) pod warunkiem, że mają dwie identyczne macierze. Przez pętlę for wymaga dwóch macierzy wejściowych i pętli, aby zaakceptować macierz.

Wynik:

Przykład nr 3

Transpozycja macierzy

Wymiana wierszy i kolumn w celu utworzenia nowej macierzy, która jest znana jako transpozycja macierzy.

Przykład:

Następnie transponuj daj

Transpozycja macierzy za pomocą programu C.

Kod:

#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)

W powyższym programie Do odczytania macierzy użyliśmy dwóch pętli for i do wydrukowania jej transpozycji zagnieżdżona pętla for służy do wyświetlenia wyniku. Tutaj zastosowaliśmy matrycę 3 * 3.

Wynik:

2. Trójwymiarowa tablica

Nazywa się to Array of Array Elements lub Array of Matrices. Jest to dość żwawe, ale kiedy już ćwiczysz w kierunku logiki, łatwiej jest je wdrożyć. i ta trójwymiarowa tablica wymaga więcej niż trzech wymiarów i wymaga dużej ilości pamięci do przechowywania.

Można go zadeklarować jako:

data_type array_name (table name) ( no. of row) ( no. of column) int L(m)(n) (p);

int L (3) (4) (2); Tutaj tablica L może pomieścić 24 elementy. I wszystko to można zainicjować podczas procesu kompilacji, ale gdy nie jest zainicjowane, są ustawiane na wartość śmieci.

Inicjalizację można wykonać w taki sam sposób jak tablicę dwuwymiarową. Oto próbka

int L (2)(3)(4) = (((2, 2, 1, 3), (1, 6, 5, 11), (22, 11, 13, 5)), ((13, 5, 77, 8), (6, 8, 2, 4), (3, 2, 7, 8)));

Przykłady tablicy trójwymiarowej

Oto kilka przykładów trójwymiarowej tablicy, które podano poniżej:

Przykład 1

Poniżej znajduje się prosty przykład w programowaniu C ilustrujący trójwymiarową macierz. Odbywa się to za pomocą pętli, biorąc pod uwagę 3 pętle dla elementów 3d.

Kod:

#include
void main()
(
printf("three dimensional array!\n\n");
int i, j, k, s(2)(1)(2), siz;
siz=2*1*2;
printf("Enter %d elements: \n", siz);
for(i = 0; i < 2; ++i)
(
for (j = 0; j < 1; ++j)
(
for(k = 0; k < 2; ++k )
(
scanf("%d", &s(i)(j)(k));
)
)
)
printf("The stored values are:\n\n");
for(i = 0; i < 2; i++)
(
for (j = 0; j < 1; j++)
(
for(k = 0; k < 2; k++)
(
printf("sample(%d)(%d)(%d) = %d\n", i, j, k, s(i)(j)(k));
)
)
)
)

Wynik:

Przykład nr 2

Kolejny przykład trójwymiarowej tablicy do automatycznego drukowania elementów.

Kod:

#include
int main()
(
int m(2)(3)(2) =
(
( (1, 2), (3, 5), (6, 5) ),
( (8, 3), (8, 7), (9, 11) )
);
for (int i = 0; i <2; ++i)
(
for (int j = 0; j <3; ++j)
(
for (int k = 0; k <2; ++k)
printf("Value at m(%d)(%d)(%d) = %d\n", i, j, k, m(i)(j)(k));
)
)
)
return 0;
)

Wynik:

3. Tablica czterowymiarowa

Jest to tablica trójwymiarowej tablicy i bardzo trudno jest zarządzać wymiarami. Jest postrzegany jako wiązka kostek razem i ma zastosowanie do wektorów kosmicznych.

Deklaracja tablicy 4-D:

Wpisz nazwę tablicy (1) (2) (3) (4) ……. (n) gdzie 1, 2 oznacza wymiary, a n oznacza n-te wymiary.

Przykład:

int state (5)(6)(7)(8);

Przykład tablicy czterowymiarowej

Program C do implementacji tablicy 4-D.

Kod:

#include
int main()
(
int i, j, k, l, s;
int d(2)(2)(2)(2);
s = 2;
d(0)(0)(0)(0) = 4;
d(0)(0)(0)(1) = 3;
d(0)(0)(1)(0) = 2;
d(0)(0)(1)(1) = 6;
d(0)(1)(0)(0) = 6;
d(0)(1)(0)(1) = 8;
d(0)(1)(1)(0) = 1;
d(0)(1)(1)(1) = 2;
d(1)(0)(0)(0) = 6;
d(1)(0)(0)(1) = 9;
d(1)(0)(1)(0) = 5;
d(1)(0)(1)(1) = 1;
d(1)(1)(0)(0) = 9;
d(1)(1)(0)(1) = 7;
d(1)(1)(1)(0) = 5;
d(1)(1)(1)(1) = 7;
for (i = 0; i < s; i++) (
for (j = 0; j < s; j++) (
for (k = 0; k < s; k++) (
for (l = 0; l < s; l++) (
printf("Value of stdio(%d)(%d)(%d)(%d): %d ", i, j, k, l, d(i)(j)(k)(l));
printf("\n");
)
)
)
)
return 0;
)

Wynik:

Wniosek

Na koniec w tym artykule omówiliśmy tablice wielowymiarowe i ich podtypy w programowaniu C. A także ich deklaracja i dostęp do elementów w formacie macierzowym. Techniki te są stosowane w koncepcji, takiej jak wyszukiwanie binarne i implementacja sortowania. Tutaj indeks odgrywa kluczową rolę, ponieważ określają element w strukturze tablicy.

Polecane artykuły

Jest to przewodnik po macierzy wielowymiarowej w C. Omawiamy tutaj sposób inicjowania macierzy wielowymiarowej w C wraz z przykładami. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-

  1. Najlepsze kompilatory C.
  2. Tablice 2D w C #
  3. Tablice 2-D w C
  4. C Klasy pamięci
  5. Mnożenie macierzy programowania C.
  6. 3 różne typy tablic w PHP (przykłady)
  7. Jak działa tablica w Uniksie ze składnią?