Introduktion till flerdimensionell matris i C

Den här artikeln fokuserar på den flerdimensionella matrisen i c som främst används i dator- och forskningsanalys. I allmänhet fokuserar en grupp linjärt en informationsdel som sägs vara en-dimensionell. Endimensionell lagrar bara data enstaka information som studenternas regno. I vissa situationer är det nödvändigt att lagra data i ett tabellformat som innehåller rader och kolumner eller för att hantera komplexa data. För att visualisera det behöver vi ett matrisformat som vi kallade som tvådimensionella arrayer där arrangemangen kräver pixlar av bilden, grafik. Uppgifterna lagras på tabellform. Arraymanipulationer utförs genom att ordna om ett element genom att använda funktioner som omforma, klämma.

Hur förklarar jag en flerdimensionell grupp i C?

Syntax:

Den allmänna deklarationen för flerdimensionell matris ges som:

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

  • Här, datatypens namn - Det anger typen av element (heltal, flyta).
  • Array name - Anger namn som tilldelats den dimensionella arrayen.
  • Radstorlek - Antal radelement ex. radstorlek = 8, sedan har matrisen 8 rader.
  • Kolumnstorlek - Antal kolumnelement.

Hur initierar jag den flerdimensionella matrisen i C?

Storleken på de flerdimensionella matriserna förutsäges genom att multiplicera storleken på olika dimensioner. Och de lagrar värden i form av två sätt som rad-major och column-major. Och minnesallokationen validerar både längd- och rangegenskaper.

I C har flerdimensionell matris tre typer:

  1. Två-dimensionell matris
  2. Tredimensionell matris
  3. Fyr-dimensionell matris

1. Två-dimensionell matris

Två-dimensionell array är strukturerad som matriser och implementeras med hjälp av rader och kolumner, även känd som en matris med matriser. Tilldelningen av minnet görs antingen i rad-major och column-major. Och standardformatet är Row-Major. När man tar en 2-D-grupp betraktas varje element som en 1-D-grupp eller känd för att vara en samling av en 1-D-grupp. Den två-d-matrisen använder två för slingor eller kapslade slingor där yttre slingor körs från 0 till det ursprungliga underskriptet.

Syntax:

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

Exempel:

int td (4)(3);

här 4 är nej. av rader och 3 är nej. av kolumner.

Initialisering av tvådimensionell matris

Initialisering i 2-D-arrayen görs på flera sätt, det visas här.

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);

Här har vi nämnt nej. av rader och kolumner i rutan Det är obligatoriskt att tilldela det andra indexet för att förstå kompilatorn om slutet och början av raden. Tabellen nedan visar minnesallokering av 2-D-arrayen.

Antalet element bestäms genom att manipulera ett antal rader och kolumner och multiplicera nr. av rader respektive kolumner. för instans, nr. av element som en grupp innehåller B (-2 … 4, -3.6). Det beräknas med nedre gräns och övre gräns.

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

Genomförande

Det görs med hjälp av Row major-och kolumn-major Implementations

Row-Major:
Formeln för adressmanipulation ges som:
= B +W ( n(I-1) +(J-1))
Där b- är basadressen och n- Antal kolumner för W-byte.
Kolumn Major:
= B +W ( r(j-1) +(i-1))
där r - är nej. av rader.

Exempel på tvådimensionell matris

Exempel på tvådimensionell matris är:

Exempel 1

Varje element i en matris A (-10, 10, 20 … 35) behöver 1 byte minne. Och matrisen passar i Column major på adressen 400, Hitta platsen för A (0, 30).

Lösning

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

En välkänd operation som utförs i 2-d-matrisen är Algebra av matriser med m * n Matrix of B. Matematikbegreppet för matrisen implementeras på samma sätt som vid programmering.

Exemplet nedan lagrar ett element i matrisformatet och skriver ut detsamma.

Koda:

#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;
)

Produktion:

Exempel 2

C-program som utför summan av två matriser.

Koda:

#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");
)
)

Programmet ovan beräknar summan av två matriser A (20, 20) B (20, 20) förutsatt att de har två identiska matriser. Genom för slinga tar det två ingångsmatriser och slingor för att acceptera matris.

Produktion:

Exempel 3

Transponera en matris

Utbytande rader och kolumner för att bilda en ny matris som kallas transponering av en matris.

Exempel:

Sedan Transpose ge,

Matrix Transpose med C-program

Koda:

#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;
)

I ovanstående program För att läsa en matris hade vi använt två för slingor och för att skriva ut dess transponering används det kapslade för slingan för att visa utgången. Här har vi använt 3 * 3-matris.

Produktion:

2. Tredimensionell matris

Det kallas en matris med arrayelement eller en matris med matris. Det är ganska buzzy men när du väl övar dig mot logiken gör det lättare att genomföra. och den här 3D-arrayen kräver mer än tre dimensioner och kräver att minneskroppen lagras.

Det kan förklaras som:

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

int L (3) (4) (2); Här kan matrisen L innehålla 24 element. Och alla dessa kan initialiseras under sammanställningsprocessen, men när de inte initialiseras läggs de in i ett skräpvärde.

Initialisering kan göras på samma sätt som en tvådimensionell matris. Här är ett exempel,

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)));

Exempel på tredimensionell matris

Här är några exempel på den tredimensionella matrisen som ges nedan:

Exempel 1

Nedan kommer ett enkelt exempel i C-programmering som illustrerar tredimensionell Array. Det görs med en slinga genom att överväga 3 för slingor för 3d-element.

Koda:

#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));
)
)
)
)

Produktion:

Exempel 2

Ett annat exempel på en 3D-matris för att skriva ut element automatiskt.

Koda:

#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;
)

Produktion:

3. Fyrdimensionell matris

Det är en matris med tredimensionell matris och det är mycket svårt att hantera dimensionerna. Det ses som ett gäng kuber tillsammans och är tillämpliga för rymdvektorer.

Förklaring om 4-D Array:

Skriv matrisnamn (1) (2) (3) (4) ……. (n) där 1, 2 anger dimensioner och n implicerar n: e dimensioner.

Exempel:

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

Exempel på fyrdimensionell matris

C-program för att implementera 4- D-array.

Koda:

#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;
)

Produktion:

Slutsats

Till slut, i den här artikeln, diskuterade vi multidimensionella matriser och deras subtyper i C-programmering. Och också deras förklaring och åtkomst till elementen i ett matrisformat. Dessa tekniker används i konceptet som binär sökning och sortering implementering. Här spelar ett index en nyckelroll i eftersom de anger ett element i matrisstrukturen.

Rekommenderade artiklar

Detta är en guide till flerdimensionell matris i C. Här diskuterar vi hur man initierar den flerdimensionella matrisen i C tillsammans med exempel. Du kan också titta på följande artiklar för att lära dig mer-

  1. Bästa C-kompilatorer
  2. 2D-matriser i C #
  3. 2-D-matriser i C.
  4. C Lagringsklasser
  5. C Programmering av matrismultiplikation
  6. 3 olika typer av matriser i PHP (exempel)
  7. Hur fungerar Array i Unix med Syntax?

Kategori: