Johdatus moniulotteiseen taulukkoon C: ssä

Tämä artikkeli keskittyy moniulotteiseen taulukkoon c, jota käytetään pääasiassa tietokone- ja tutkimusanalyyseihin. Yleensä taulukko fokusoi lineaarisesti tiedon, jonka sanotaan olevan yhden ulottuvuuden. Yksiulotteinen tieto tallentaa vain yksittäisiä tietoja, kuten opiskelijoiden regno. Joissakin tilanteissa on välttämätöntä tallentaa tiedot taulukkomuotoon, joka sisältää rivejä ja sarakkeita, tai käsitellä monimutkaista dataa. Sen visualisoimiseksi tarvitaan matriisiformaatti, jota kutsuttiin kaksiulotteiseksi taulukkoksi, missä järjestelyt vaativat kuvan pikseliä, grafiikkaa. Tiedot tallennetaan taulukkoina. Matriisikäsittelyt suoritetaan järjestämällä elementti uudelleen käyttämällä muotoja, purista.

Kuinka ilmoittaa moniulotteinen taulukko C: ssä?

Syntaksi:

Moniulotteisen taulukon yleinen ilmoitus on seuraava:

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

  • Tietotyypin nimi - Siinä tarkoitetaan elementtityyppiä (kokonaisluku, kelluva).
  • Matriisin nimi - Ilmaisee mittasuhteelle määritetyn nimen.
  • Rivikoko - rivielementtien lukumäärä ex. rivikoko = 8, niin taulukossa on 8 riviä.
  • Pylväskoko - sarakeelementtien lukumäärä.

Kuinka alustaa moniulotteinen taulukko C: ssä?

Moniulotteisten taulukkojen koko ennustetaan kertomalla eri ulottuvuuksien koko. Ja ne tallentavat arvoja kahdella tavalla, kuten rivin ja sarakkeen suuret. Ja muistin varaus vahvistaa sekä pituuden että sijoituksen ominaisuudet.

C-ryhmässä moniulotteisessa taulukossa on kolme tyyppiä:

  1. Kaksiulotteinen ryhmä
  2. Kolmiulotteinen ryhmä
  3. Nelidimensioinen ryhmä

1. Kaksiulotteinen taulukko

Kaksiulotteinen taulukko on rakennettu matriiseiksi ja toteutettu käyttämällä rivejä ja sarakkeita, joka tunnetaan myös nimellä taulukkojoukko. Muistin allokointi tehdään joko rivin- ja sarakkeen-suurina. Ja oletusmuoto on Row-Major. Kun otetaan 2-D-taulukko, jokaista elementtiä pidetään itsessään 1-D-taulukkona tai tiedetään olevan 1-D-ryhmän kokoelma. Kaksisuuntainen taulukko käyttää kahta silmukoihin tai sisäkkäisiin silmukoihin, joissa ulkoiset silmukat suorittavat nollasta alkuperäiseen alaindeksiin.

Syntaksi:

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

Esimerkki:

int td (4)(3);

tässä 4 on ei. riviä ja 3 on ei. sarakkeista.

Kaksiulotteisen taulukon alustus

Alustaminen 2-D-ryhmässä tehdään monin tavoin, se esitetään tässä.

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

Täällä olemme maininneet ei. rivien ja sarakkeiden lukumäärä ruudussa On pakollista määrittää toinen hakemisto, jotta ymmärrät rivin lopun ja alkamisen kääntäjän. Seuraava taulukko näyttää 2-D-ryhmän muistin allokoinnin.

Elementtien lukumäärä määritetään manipuloimalla useita rivejä ja sarakkeita ja kertomalla ei. rivien ja sarakkeiden lukumäärä. esimerkiksi, ei. elementteistä taulukko pitää B (-2… 4, -3, 6). Se lasketaan alarajasta ja ylärajasta.

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

Toteutus

Se tehdään käyttämällä rivin ja sarakkeen suuria toteutuksia

Row-Major:
Osoitteen manipuloinnin kaava on annettu seuraavasti:
= B +W ( n(I-1) +(J-1))
Missä b- on perusosoite ja n- sarakkeiden lukumäärä W-tavuille.
Sarakkeen pääosa:
= B +W ( r(j-1) +(i-1))
missä r - on ei. rivejä.

Esimerkkejä kaksiulotteisesta ryhmästä

Esimerkkejä kaksiulotteisesta taulukosta ovat:

Esimerkki 1

Jokainen taulukon A (-10, 10, 20… 35) elementti tarvitsee 1 tavun muistia. Ja taulukko sopii sarakkeen päähän osoitteeseen 400, Etsi A: n sijainti (0, 30).

Ratkaisu

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

2-ryhmässä suoritettu tuttu toimenpide on matriisien Algebra, joiden m * n Matriisi on B. Matriisin matemaattinen käsite toteutetaan samalla tavalla kuin ohjelmoinnissa.

Seuraava esimerkki tallentaa elementin matriisimuodossa ja tulostaa sen.

Koodi:

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

lähtö:

Esimerkki 2

C-ohjelma suorittaa kahden matriisin summa.

Koodi:

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

Yllä oleva ohjelma laskee kahden matriisin A (20, 20) B (20, 20) summan, jos niillä on kaksi identtistä matriisia. Silmukan läpi tarvitaan kaksi syöttömatriisia ja silmukoita matriisin hyväksymiseen.

lähtö:

Esimerkki 3

Matriisin siirtäminen osaksi kansallista lainsäädäntöä

Rivien ja sarakkeiden vaihtaminen uuden matriisin muodostamiseksi, joka tunnetaan matriisin siirrolla.

Esimerkki:

Sitten siirrä antaa,

Matriisin siirtäminen C-ohjelmaa käyttämällä

Koodi:

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

Yllä olevassa ohjelmassa Matriisin lukemiseksi olimme käyttäneet kahta silmukoihin ja tulostamaan sen siirrettävän sisäkkäiset silmukkaa varten. Tässä olemme käyttäneet 3 * 3 -matriisia.

lähtö:

2. Kolmiulotteinen taulukko

Sitä kutsutaan taulukkoelementtien ryhmäksi tai matriisiryhmäksi. Se on melko sumea, mutta kun käytät logiikkaa, se on helppo toteuttaa. ja tämä kolmiulotteinen taulukko vaatii enemmän kuin kolme ulottuvuutta ja vaatii muistin tallentamisen.

Se voidaan julistaa:

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

int. L (3) (4) (2); Tässä taulukko L voi pitää 24 elementtiä. Ja kaikki nämä voidaan alustaa kokoamisprosessin aikana, mutta kun niitä ei käytetä, ne asetetaan roskien arvoon.

Alustus voidaan suorittaa samalla tavalla kuin kaksiulotteinen taulukko. Tässä on näyte,

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

Esimerkkejä kolmiulotteisesta ryhmästä

Tässä on esimerkkejä kolmiulotteisesta taulukosta, jotka on annettu alla:

Esimerkki 1

Alla on yksinkertainen esimerkki C-ohjelmoinnista, joka kuvaa kolmiulotteista taulukkoa. Se tehdään silmukalle ottamalla huomioon 3 silmukoille 3D-elementeille.

Koodi:

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

lähtö:

Esimerkki 2

Toinen esimerkki kolmiulotteisesta taulukosta, jolla tulostetaan elementtejä automaattisesti.

Koodi:

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

lähtö:

3. Nelidimensioinen ryhmä

Se on kolmiulotteinen ryhmä, ja ulottuvuuksien hallitseminen on erittäin vaikeaa. Sitä pidetään nippuina kuutioita yhdessä ja sovellettavissa avaruusvektoreihin.

4-D-ryhmän ilmoitus:

Tyypin taulukon nimi (1) (2) (3) (4) ……. (n) missä 1, 2 tarkoittaa mittoja ja n tarkoittaa n: nnetta mittaa.

Esimerkki:

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

Esimerkki neljäulotteisesta taulukosta

C-ohjelma 4-D-ryhmän toteuttamiseen.

Koodi:

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

lähtö:

johtopäätös

Lopuksi, tässä artikkelissa keskustelimme moniulotteisista taulukoista ja niiden alatyypeistä C-ohjelmoinnissa. Ja myös heidän ilmoituksensa ja elementtien käyttö matriisimuodossa. Näitä tekniikoita käytetään käsitteessä, kuten binaarinen haku ja lajittelu. Hakemistolla on tässä avainrooli, koska ne määrittelevät elementin taulukkorakenteessa.

Suositellut artikkelit

Tämä on opas moniulotteiseen taulukkoon C. Tässä keskustellaan siitä, kuinka moniulotteinen taulukko voidaan alustaa C: n muodossa yhdessä esimerkkien kanssa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Parhaat C-kääntäjät
  2. 2D-ryhmät C #: ssä
  3. 2-D-ryhmät C: ssä
  4. C Tallennusluokat
  5. C Matriisin kertolaskun ohjelmointi
  6. 3 erityyppistä taulukkoa PHP: ssä (esimerkit)
  7. Kuinka Array toimii Unixissä Syntaxin kanssa?