Boneco 3DJá sabemos como são declaradas as matrizes unidimensionais (vetores), então agora vamos aprender a utilizar matrizes bidimensionais. A forma geral para declarar uma matriz bidimensional é muito parecida com a declaração de um vetor:

[clearboth]
[toggle title=”Forma geral das Matrizes Bidimensionais”]
tipo_da_variável nome_da_variável [altura][largura];

É muito importante destacar que, nesta estrutura, o índice da esquerda ‘[altura]’ indexa as linhas e o da direita ‘[largura]‘ indexa as colunas. Quando preenchemos ou lê-mos uma matriz bidimensional no C o índice mais à direita varia mais rapidamente do que o índice à esquerda. Mais uma vez lembre-se que, na linguagem C, os índices variam de zero até ao valor declarado, menos um (-1) devido ao caracter (/0) que se encontra incondicionalmente no final de cada matriz. O C não verifica os índices, manter os índices na faixa permitida é uma tarefa do programador.

[/toggle]
[toggle title=”Programa com Matrizes Bidimensionais”]

Abaixo encontra-se um exemplo com o uso de uma matriz bidimensional:

#include 
main (){
int mtrx [20][10];
int i,j,a,b,count;
count=1;
for (i=0;i<20;i++){
for (j=0;j<10;j++){
mtrx[i][j]=count;
count++;
}
}
for (a=0;a<20;a++){
for(b=0;b<10;b++){
printf("%dnn",mtrx[a][b]);
}
}
system("pause");
}

Programa 30 no C

No exemplo acima, a matriz ‘mtrx’ é preenchida, sequencialmente por linhas, com os números de 1 a 200. Depois de preenchida esta matriz é lida e são printados todos os valores armazenados dentro dela no ecrã. Antes de avançar para a próxima etapa deste tutorial, você deve entender primeiro o funcionamento do programa acima.

[/toggle]
[toggle title=”Matrizes de Strings”]

Matrizes de strings são matrizes bidimensionais. Uma string é um vetor, então se fizermos um vetor de strings estaremos a fazer lista de vetores. Esta estrutura é uma matriz bidimensional de chars. A forma geral para declarar-mos uma matriz bidimensional de strings é a seguinte:

char nome_da_variável [num_de_strings][comprimento_das_strings];

Aí surge a pergunta: como acessar uma string individual? Fácil. É só usar apenas o primeiro índice. Então, para acessar uma determinada string faça:

nome_da_variável [índice];

[/toggle]
[toggle title=”Programa com Matrizes de Strings”]

Abaixo encontrasse um programa que lê 5 strings e as mostra no ecrã:

#include 
main (){
char strings [5][100];
int count;
for (count=0;count<5;count++){
printf ("nnDigite uma string: ");
gets (strings[count]);
}
printf ("nnnAs strings que voce digitou foram:nn");
for (count=0;count<5;count++){
printf ("%sn",strings[count]);
}
system("pause");
}

Programa 31 no C

[/toggle]
[toggle title=”Matrizes Multidimensionais”]

O uso de matrizes multidimensionais na linguagem C é simples e a sua forma geral é:

tipo_da_variável nome_da_variável [tam1][tam2] ... [tamN];

Uma matriz N-dimensional funciona basicamente como outros tipos de matrizes. Basta lembrar que o índice que varia mais rapidamente é o índice mais à direita.

[/toggle]
[toggle title=”Inicialização de Matrizes Multidimensionais”]

Podemos inicializar matrizes, assim como podemos inicializar variáveis. A forma geral de inicialização de uma matriz é:

tipo_da_variável nome_da_variável [tam1][tam2] ... [tamN] = {lista_de_valores};

A lista de valores é composta por valores (do mesmo tipo da variável) separados por vírgula. Os valores devem ser dados na ordem em que serão colocados na matriz. Abaixo encontramos alguns exemplos de inicializações de matrizes:

float vect [6] = { 1.3, 4.5, 2.7, 4.1, 0.0, 100.1 };
int matrx [3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
char str [10] = { 'J', 'o', 'a', 'o', '' };
char str [10] = "Joao";
char str_vect [3][10] = { "Joao", "Maria", "Jose" };

O primeiro exemplo mostra a inicialização de vetores. O segundo exemplo mostra a inicialização de matrizes multidimensionais, onde matrx é inicializada com 1, 2, 3 e 4 na primeira linha, 5, 6, 7 e 8 na segunda linha e 9, 10, 11 e 12 na última linha. No terceiro exemplo vemos como inicializar uma string, no quarto exemplo, um modo mais compacto de inicializar uma string e o quinto exemplo combina as duas técnicas para inicializar um vetor de strings. Repare que devemos incluir o ‘;’ (ponto e virgula) no final da inicialização.

[/toggle]
[toggle title=”Inicialização sem especificação de tamanho”]

Podemos, em alguns casos, inicializar matrizes das quais não sabemos o tamanho apropriado. O compilador C neste caso vai verificar o tamanho do que você declarou e considerar como sendo o tamanho da matriz. Este processo ocorre na hora da compilação e não poderá ser mudado durante a execução programa, isto é muito útil, por exemplo, quando vamos inicializar uma string e não queremos contar quantos caracteres serão necessários. Alguns exemplos:

char mess [] = "Linguagem C: flexibilidade e poder.";
int matrx [][2] = { 1,2,2,4,3,6,4,8,5,10 };

No primeiro exemplo, a string mess terá tamanho 36. Repare que o artifício para realizar a inicialização sem especificação de tamanho é não especificar o tamanho! No segundo exemplo o valor não especificado será 5.

[/toggle]

Gostou do Tutorial? Então deixe um comentário abaixo!

Anúncios