Introdução à matriz multidimensional em C

Este artigo enfoca a matriz multidimensional em c, que é predominantemente usada em análises de computadores e pesquisas. Geralmente, uma matriz concentra linearmente uma informação que se diz unidimensional. A única dimensão armazena dados apenas informações únicas, como o número de alunos. Em algumas situações, é necessário armazenar dados em um formato de tabela que inclua linhas e colunas ou manipular dados complexos. Para visualizá-lo, precisamos de um formato de matriz que denominamos matrizes bidimensionais, em que os arranjos requerem pixels da imagem, gráficos. Os dados são armazenados de forma tabular. As manipulações de matriz são executadas reorganizando um elemento usando funções como remodelar, apertar.

Como declarar uma matriz multidimensional em C?

Sintaxe:

A declaração geral da matriz multidimensional é dada como:

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

  • Aqui, nome do tipo de dados - Denota o tipo de elementos (inteiro, flutuante).
  • Nome da matriz - indica o nome atribuído à matriz dimensional.
  • Tamanho da linha - Nº de elementos da linha ex. tamanho da linha = 8, em seguida, a matriz possui 8 linhas.
  • Tamanho da coluna - Nº de elementos da coluna.

Como inicializar a matriz multidimensional em C?

O tamanho das matrizes multidimensionais é previsto multiplicando o tamanho de várias dimensões. E eles armazenam valores na forma de duas maneiras, como linha principal e coluna principal. E a alocação de memória valida as propriedades de comprimento e classificação.

Em C, a matriz multidimensional possui três tipos:

  1. Matriz bidimensional
  2. Matriz tridimensional
  3. Matriz quadridimensional

1. Matriz bidimensional

Matriz bidimensional é estruturada como matrizes e implementada usando linhas e colunas, também conhecida como matriz de matrizes. A alocação de memória é feita na linha principal e na coluna principal. E o formato padrão é Row-Major. Ao usar uma matriz 2-D, cada elemento é considerado uma matriz 1-D ou é conhecido como uma coleção de uma matriz 1-D. A matriz two-d usa duas para loops ou loops aninhados, onde os loops externos são executados de 0 ao subscrito inicial.

Sintaxe:

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

Exemplo:

int td (4)(3);

aqui 4 é o não. de linhas e 3 é o não. de colunas.

Inicialização da matriz bidimensional

A inicialização na matriz 2-D é feita de várias maneiras, é mostrada aqui.

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

Aqui, mencionamos o não. de linhas e colunas na caixa É obrigatório atribuir o segundo índice para entender o compilador sobre o final e o início da linha. A tabela abaixo mostra a alocação de memória da matriz 2-D.

O número de elementos é determinado pela manipulação de um número de linhas e colunas e pela multiplicação de no. de linhas e colunas, respectivamente. para Instância, o não. de elementos que uma matriz contém B (-2… 4, -3, 6). É calculado pelo limite inferior e superior.

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

Implementação

Isso é feito usando implementações de linhas principais e de colunas principais

Linha principal:
A fórmula para manipulação de endereço é fornecida como:
= B +W ( n(I-1) +(J-1))
Onde b- é o endereço base e n-No. de colunas para W bytes.
Coluna principal:
= B +W ( r(j-1) +(i-1))
onde r - é o não. de linhas.

Exemplos de matriz bidimensional

Exemplos de matriz bidimensional são:

Exemplo 1

Cada elemento de uma matriz A (-10.10, 20… 35) precisa de 1 byte de memória. E a matriz se encaixa na coluna principal no endereço 400, encontre a localização de A (0, 30).

Solução

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

Uma operação familiar realizada na matriz 2-d é a Álgebra de matrizes com m * n Matriz de B. O conceito matemático da matriz é implementado da mesma forma que na programação.

O exemplo abaixo armazena um elemento no formato da matriz e imprime o mesmo.

Código:

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

Resultado:

Exemplo 2

Programa C realizando a soma de duas matrizes.

Código:

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

O programa acima calcula a soma de duas matrizes A (20, 20) B (20, 20), desde que tenham duas matrizes idênticas. Através do loop for, são necessárias duas matrizes de entrada e loops para aceitar a matriz.

Resultado:

Exemplo 3

Transposição de uma matriz

Trocando linhas e colunas para formar uma nova matriz, conhecida como transposição de uma matriz.

Exemplo:

Então Transpose give,

Transposição de matriz usando o programa C

Código:

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

No programa acima Para ler uma matriz, usamos dois para loops e para imprimir sua transposição, o loop aninhado é usado para exibir a saída. Aqui usamos matriz 3 * 3.

Resultado:

2. Matriz Tridimensional

É chamada de matriz de elementos da matriz ou matriz de matrizes. É bastante nebuloso, mas depois de praticar a lógica, torna-se mais fácil de implementar. e essa matriz 3D requer mais de três dimensões e requer o volume de memória para armazenar.

Pode ser declarado como:

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

int L (3) (4) (2); Aqui a matriz L pode conter 24 elementos. E tudo isso pode ser inicializado durante o processo de compilação, mas quando não inicializado, ele é colocado em um valor de lixo.

A inicialização pode ser feita da mesma maneira que uma matriz bidimensional. Aqui está uma amostra,

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

Exemplos de matriz tridimensional

Aqui estão alguns exemplos da matriz tridimensional que são dados abaixo:

Exemplo 1

Abaixo segue um exemplo simples na programação C, ilustrando a matriz tridimensional. Isso é feito usando um loop, considerando 3 para loops para elementos 3d.

Código:

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

Resultado:

Exemplo 2

Outro exemplo de uma matriz 3D para imprimir elementos automaticamente.

Código:

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

Resultado:

3. Matriz quadridimensional

É uma matriz tridimensional e é muito difícil gerenciar as dimensões. É visto como um monte de cubos juntos e aplicável a vetores espaciais.

Declaração de matriz 4-D:

Digite o nome do array (1) (2) (3) (4) ……. (n) onde 1, 2 indica as dimensões en implica enésima dimensão.

Exemplo:

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

Exemplo de matriz quadridimensional

Programa C para implementar a matriz 4-D.

Código:

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

Resultado:

Conclusão

No final, neste artigo, discutimos matrizes multidimensionais e seus subtipos na programação C. E também, sua declaração e acesso aos elementos em um formato matricial. Essas técnicas são aplicadas no conceito como pesquisa binária e implementação de classificação. Aqui, um índice desempenha um papel fundamental ao especificar um elemento na estrutura da matriz.

Artigos recomendados

Este é um guia para Matriz Multidimensional em C. Aqui discutimos como inicializar a matriz multidimensional em C junto com exemplos. Você também pode consultar os seguintes artigos para saber mais:

  1. Melhores Compiladores C
  2. Matrizes 2D em C #
  3. Matrizes 2D em C
  4. Classes de armazenamento C
  5. Multiplicação de matrizes de programação C
  6. 3 tipos diferentes de matrizes em PHP (exemplos)
  7. Como o Array funciona no Unix com sintaxe?