Увод у вишедимензионални низ у Ц

Овај се чланак фокусира на вишедимензионални низ у ц који се претежно користи у рачунарској и истраживачкој анализи. Генерално, низ линеарно фокусира информације које су једнодимензионалне. Једнодимензионално чува податке само једне информације попут регно ученика. У неким је ситуацијама потребно похранити податке у формат таблице која садржи редове и ступце или обрађивати сложене податке. Да бисмо га визуализовали потребан нам је формат матрице који смо назвали дводимензионалним низовима у којима аранжмани захтевају пикселе слике, графике. Подаци се чувају табеларно. Манипулације арраиом изводе се преуређивањем елемента помоћу функција као што су преобликовање, прешање.

Како декларирати вишедимензионални низ у Ц?

Синтакса:

Општа декларација вишедимензионалног низа дана је као:

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

  • Овде је назив врсте података - Означава врсту елемената (интегер, флоат).
  • Назив матрице - Означава име додељено димензионалном низу.
  • Величина реда - Број елемената реда ров-сизе = 8, а низ има 8 редака.
  • Величина колоне - Број елемената ступаца.

Како иницијализирати вишедимензионални низ у Ц?

Величина вишедимензионалних низова предвиђа се множењем величине различитих димензија. И чувају вредности у облику два начина као што су главни ред и главни ступац. И распоређивање меморије потврђује својства дужине и ранга.

У Ц, вишедимензионални низ има три врсте:

  1. Дводимензионални низ
  2. Тродимензионални низ
  3. Четверодимензионални низ

1. Дводимензионални низ

Дводимензионални низ је структуриран као матрице и имплементиран је помоћу редака и ступаца, познатих и као низ матрица. Додјела меморије врши се или у главном реду или у главном ступцу. А подразумевани формат је Ров-Мајор. Када се узима дводимензионални низ, сваки се елемент сматра 1-Д матрицом или се зна да представља колекцију 1-Д матрице. Дводимензионални низ користи две за петље или угнијежђене петље у којима се спољашње петље извршавају од 0 до почетног претписа.

Синтакса:

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

Пример:

int td (4)(3);

овде 4 је бр. редака и 3 је бр. колона.

Иницијализација дводимензионалног низа

Иницијализација у 2-Д низу врши се на више начина, овде је приказано.

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

Овде смо поменули бр. редака и ступаца у пољу Обавезно је доделити други индекс да бисте разумели преводилац о завршетку и почетку реда. Доња табела приказује распоређивање меморије 2-Д матрице.

Број елемената одређује се манипулирањем бројем редака и ступаца и множењем бр. редака и ступаца. за инстанцу, бр. елемената низ садржи Б (-2… 4, -3.6). Израчунава се доњом и горњом границом.

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

Имплементација

Изводи се помоћу Ров главних и главних ступаца Имплементација

Главни редник:
Формула за манипулацију адресом је дата као:
= B +W ( n(I-1) +(J-1))
Где је б- основна адреса и н- Број ступаца за В бајтове.
Главни колона:
= B +W ( r(j-1) +(i-1))
где је р - не. редова.

Примери дводимензионалног низа

Примери дводимензионалног низа су:

Пример # 1

Сваки елемент низа А (-10.10, 20… 35) треба 1 бајт меморије. А низ се уклапа у главни стуб на адреси 400, пронађите локацију А (0, 30).

Решење

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

Позната операција изведена у дводневном низу је Алгебра матрица с м * н матрицом Б. Математички концепт матрице се имплементира исто као у програмирању.

Следећи пример чува елемент у формату матрице и исписује исти.

Шифра:

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

Излаз:

Пример бр. 2

Ц програм који се састоји од две матрице.

Шифра:

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

Горњи програм израчунава зброј две матрице А (20, 20) Б (20, 20) под условом да имају две идентичне матрице. Путем за петљу потребно је две улазне матрице и петље да би прихватили матрицу.

Излаз:

Пример # 3

Пребацивање матрице

Размењивање редака и ступаца ради формирања нове матрице која је позната и као преношење матрице.

Пример:

Онда Транспосе дај,

Матрик Транспосе користећи Ц програм

Шифра:

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

У горњем програму За читање матрице користили смо две за петље и за штампање његове транспозиције угнијежђена петља користи се за приказ излаза. Овде смо користили 3 * 3 матрицу.

Излаз:

2. Тродимензионални низ

Зове се низ елемената матрице или низ матрица. То је прилична зујање, али кад једном примите праксу ка логици, коју је лакше имплементирати. и овај 3-Д Арраи захтијева више од три димензије и захтева похрањивање већине меморије.

Може се прогласити као:

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

инт Л (3) (4) (2); Овде низ Л може да садржи 24 елемента. И све то се може иницијализирати током процеса компилације, али када се неиницијализовани ставе се у вредност смећа.

Иницијализација се може извести на исти начин као и дводимензионални низ. Ево примера,

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

Примери тродимензионалног низа

Ево неколико примера тродимензионалног низа који су наведени у наставку:

Пример # 1

Испод је једноставан пример програмирања Ц који илуструје тродимензионални низ. Изводи се помоћу петље узимајући у обзир 3 петље за 3д елементе.

Шифра:

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

Излаз:

Пример бр. 2

Још један пример 3-Д матрице за аутоматско штампање елемената.

Шифра:

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

Излаз:

3. Четверодимензионални низ

То је низ тродимензионалних низова и веома је тешко у управљању димензијама. Посматра се као гомила коцкица заједно и применљиво је за свемирске векторе.

Изјава 4-Д матрице:

Упишите назив матрице (1) (2) (3) (4) ……. (н) где 1, 2 означава димензије, а н подразумева н-е димензије.

Пример:

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

Пример четверодимензионалног низа

Ц програм за имплементацију 4- Д матрице.

Шифра:

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

Излаз:

Закључак

За крај, у овом чланку смо разговарали о вишедимензионалним низовима и њиховим подврстама у Ц програмирању. А исто тако, њихова декларација и приступ елементима у матричном формату. Ове технике се примењују у концепту као што је бинарна претрага и имплементација сортирања. Овде индекс игра кључну улогу у одређивању елемента у структури низа.

Препоручени чланци

Ово је водич за Мултидимензионални низ у Ц. Овде смо расправљали о томе како иницијализовати вишедимензионални низ у Ц заједно са примерима. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Бест Ц Цомпилерс
  2. 2Д низови у Ц #
  3. 2-Д низови на Ц
  4. Ц Класе складиштења
  5. Ц Програмирање множења матрице
  6. 3 различите врсте поља у ПХП-у (примери)
  7. Како Арраи ради у Унику са синтаксом?

Категорија: