Introduksjon til 2-D Arrays i C

En array er en gruppe av elementer med samme (homogene) datatype. Det kalles også en Derived datatype. Hvis vi vurderer en primitiv datatype og tildeler en verdi som vist nedenfor,

Og nå, hvis vi vil lagre en ny verdi i variabel a, erstatter den nye verdien den gamle verdien. Ved å bruke en primitiv variabel kan vi bare lagre en verdi av gangen, vi kan ikke lagre flere verdier.

For å lagre mer enn ett element i en enkelt variabel som studentmerker, medarbeider-ID, mobilnummer med en stor mengde data, må vi lage hundrevis av unike variabler, som er en veldig kompleks oppgave. Så derfor ble konseptet Arrays introdusert.

Konsepter i 2-D Arrays i C.

Vi kan definere matriser i

  • Single-Dimensional
  • Dobbelt Dimensional

Og så videre opp til N-Dimensional basert på kravet. Men her skal vi forholde oss til 2-D Arrays. Som navnet antyder, kan 2-D Arrays være en matrise-representasjon av data, som er laget for å implementere en relasjonsdatabas lookalike datastruktur og kan lagres i tabellformer. Det gir enkel tilgang til bulkdata som kan overføres til et hvilket som helst antall funksjoner basert på kravet. Dataene i disse gruppene kan nås gjennom rad- og kolonne-ID-ene.

Hvordan kan vi definere og implementere dem? Hvor kan vi bruke dem? Gå videre, la oss forstå disse begrepene.

I C kan dimensjonale matriser deklareres som følger:

syntax

Så på samme måte kan vi erklære 2-D-matrisen som:

Betydningen av representasjonen ovenfor kan forstås som:

  1. Minnet som er tilordnet variabel b er av datatype int.
  2. Dataene blir representert i form av 2 rader og 3 kolonner.


Dataene innenfor matrisen kan nås via representasjonen ovenfor. I representasjon av to-d arrays representerer den første firkantede braketten antall rader, og den andre er for antall kolonner. Indeksrepresentasjonen for matrisen for det første elementet starter alltid med null og slutter med størrelse-1. Array-variabel (her b) har alltid baseadressen til minneblokken og kalles en intern pekervariabel.

Så hvis antall rader for eksempel er 3, vil indeksrepresentasjonen for tilgang til dataene i rad være 0, 1 og 2. Den samme logikken gjelder også for kolonneindeksene. For å få presentasjonen ovenfor, kan vi få tilgang til b (1) (2) for å få data fra 2. rad 3. kolonne.

Initierer Arrays

Vi har to forskjellige metoder for å initialisere verdiene i C. Metodene avviker kun syntaktisk.

Nedenfor er en av dem.

En annen måte å initialisere er som følger:

Generelt foretrekkes den første metoden for initialisering da vi tydelig kan forstå og visualisere radene og kolonnene til 2-D Arrays i C.

Nedenfor er eksemplet for illustrasjon av elementer og deres adresse for matrise b.

Elementene i en gruppe blir vanligvis lagret i påfølgende minneposisjoner basert på datatypen til elementene.

Sette inn elementer i 2-D-matriser

For å sette inn elementer i 2-D Arrays, må vi sette inn dataene i både rader og kolonner. Så for dette bruker vi begrepet løkker. I prosessen ovenfor for å initialisere dataene i en matrise, hadde vi forhåndsdefinert verdiene.

Her kan elementer settes inn dynamisk av brukeren, i henhold til kravene. Nedenfor er en eksempelkode for å sette inn elementene.

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

Som observert i koden:

  1. Først erklærer vi arrayvariabelen og dimensjonene til arrayen med antall rader og kolonner.
  2. Deretter erklærer vi to variabler for å iterere over elementene i matrisen.
  3. Deretter brukes løkker. Utsiden for sløyfen er for iterasjonen av rader, og den indre løkken er for kolonnene.
  4. Scanf-funksjonen brukes til å lese dataene som vi legger inn, og deretter plassere verdien som er satt inn på de stedene i og j.

I eksemplet over satte vi inn dataene i en matrise med 2 rader og 3 kolonner. Resultatet av følgende kan oppnås som nedenfor:

Siden vi ikke har brukt printf-funksjonen for å vise utdataene, hadde det skrevne programmet bare lest brukerens innførte verdier. Etter at du har skrevet utskriftsfunksjonen (bruker for løkker), vil utdataene vises som:

Oppdater elementer i 2-D-matriser

Oppdateringen av elementer i en matrise kan gjøres ved enten å spesifisere et bestemt element som skal erstattes, eller ved å identifisere en posisjon der utskiftingen må gjøres. For oppdatering krever vi vanligvis følgende detaljer.

  1. Elementer av en matrise
  2. Posisjon / element, der det må settes inn
  3. Verdien som skal settes inn.

For å oppdatere dataene i en matrise gjennom elementdetaljer, må vi først søke etter det elementet i matrisen, forstå dets posisjon og deretter erstatte det gamle elementet med det nye elementet.

Her har vi gitt nedenfor to eksempler på oppdatering av elementet i en 2-D-matrise.

For det første, la oss gå gjennom et eksempel der posisjonen til elementet som skal oppdateres allerede er kjent.

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

I programmet over blir elementet på 1. rad og tredje kolonne valgt, og verdien av dataene i den posisjonen er oppdatert.

Output for ovenfor er som følger:

I det andre eksemplet skal vi vise hvordan elementets posisjon dynamisk kan tas som en bruker som er lagt inn verdi og oppdatere verdien til elementet på den aktuelle posisjonen.

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

Her brukte vi scanf-funksjonen til å lese verdien gitt av brukeren i henhold til deres valg for plasseringen av et element basert på rad- og kolonnetall.

Utgangen er som følger:

Kan du prøve å skrive et program ved å oppdatere hele rekken av matrisen med brukerinputte verdier?

Nå som vi vet, i 2-D-matrisen, erklærer vi størrelsen på matrisen i begynnelsen av seg selv. Vi er klar over størrelsen på matrisen, men hva om brukeren gir et tilfeldig rad- og kolonnenummer utenfor arraystørrelsen?

Legg merke til at ettersom vi ikke hadde skrevet noen om / annen tilstand eller prøv / fangstblokker, endres ikke matrisen. Vi kan imidlertid skrive koden ved å bruke de ovennevnte forholdene for å vise feil i slike tilfeller.

Slette elementer i 2-D-matriser

Etter konseptene om innsetting og oppdatering av dataene i arrayen, la oss nå se hvordan vi kan slette en hel rad fra matrisen.

Vi har skrevet et program i et enkelt format slik at konseptet med forskjellige operasjoner i en 2-d array lett kan forstås.

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

Trinnene som følges er:

  1. Tok verdiene til en matrise dynamisk
  2. Be brukeren legge inn nummeret (indeksen) på raden som må slettes.
  3. Ved å bruke for loop-iterasjon, sammenligner vi om radnummeret og brukerens inngangsnummer stemmer overens eller ikke.
  4. Hvis de stemmer overens, og hvis radnummeret er mindre enn størrelsen på en matrise, skriver vi ut neste rad. Ellers trykker vi raden slik den er.

Utgangen er som følger:

Hva om jeg gir radnummeret utenfor matrisegrensen?

Den vil ikke finne raden for å slette og avslutte programmet ved å skrive ut hele matrisen.

Som allerede kjent kan vi til og med erklære verdiene for rad- og kolonnetallene dynamisk og skrive programmet deretter.

Ser ikke dette enkelt og lett å lære?

Kan du prøve å slette et bestemt element for 2-d-arrayen nå?

Konklusjon

I dette avsnittet har vi lært de grunnleggende operasjonene på todimensjonale matriser. Disse 2-d-arrayene er nyttige i sanntid med matriseoperasjonene og mange matematiske beregninger.

Arrays kan til og med brukes i visning av kalendere, plassering av parkeringsplassen, og vi kan til og med ha et sjakkspill.

Mange andre datastrukturer som koblede lister, kø, grafer, trær må bruke dette konseptet av 2-D-matriser som det grunnleggende kravet for å lagre og få tilgang til plasseringene til forskjellige elementer. Prøv å løse de grunnleggende operasjonene til 2d-matriser og ha det gøy å lære C.

Anbefalte artikler

Dette er en guide til 2-D Arrays i C. Her diskuterer vi Introduksjon, Initialisering av Arrays, Inserting, Updateing, Delete Elements in a 2-D Arrays. Du kan også se på følgende artikler for å lære mer -

  1. Arrays i R
  2. Fordeler med array
  3. Arrays i C ++
  4. Arrays i JavaScript
  5. Eksempler på matriser i C #
  6. Arrays i PHP