Qual a lógica de uma matriz em C/C++?


Quando declaramos uma matriz em Linguagem C ou C++ utilizamos a seguinte sintaxe:


Isso falando de uma matriz de números inteiros, o primeiro valor [1] é o índice 1, ele representa o eixo Y, ou em outras palavras, as linhas. Mas vou entrar no contexto de “linhas” mais adiante, no caso de uma matriz de números inteiros é legal sabermos que o primeiro índice é o eixo Y.


Se o primeiro índice é o eixo Y, o segundo é o eixo X. Então já que sabemos disso vamos pegar um exemplo um pouco maior.


No exemplo acima nossa matriz tem três linhas e três colunas, tendo nove valores. Para entendermos o porque essa matriz tem nove valores, vamos utilizar um exemplo, use o código fonte a seguir:


Agora vamos entender esse código fonte linha por linha (ou quase isso)?


As duas primeiras são as bibliotecas necessárias para que o nosso código funcione.


Incluímos a função main com um void, isso porque o “resultado” pode ser vazio, por isso o uso do void.


Criamos uma matriz com três posições no eixo Y e três no eixo X, três linhas e três colunas. E criamos duas variáveis “y” e “x” pois precisaremos delas para declarar os valores da nossa matriz.


Criamos dois laços (for) logo em seguida utilizando a dupla printf e scanf dentro dessa repetição. Mas preciso entender muito bem o que está acontecendo aí.


O printf mostra algo na tela certo? E os nossos dois “for” diz que tanto a variável Y quanto a variável X tem 3 posições.


Já o scanf também irá se repetir o número de vezes que o nosso laço (for) “disser”. Mas como assim?


Temos a variável Y com 3 posições e a variável X com mais três, elas não se somam. O eixo Y é o número de linhas, então temos três linhas, e cada linha tem três colunas tendo ao total 9 posições em nossa matriz.


E o penúltimo trecho do nosso código fonte “roda” logo depois que o usuário digitar os nove valores da nossa matriz. O laço (for) tem a mesma lógica que a repetição anterior e o interessante é a posição aparecer junto com o valor que está nesta posição.


E por ultimo encerramos nosso programa.


Mas para explicar o que realmente é uma matriz achei interessante fazer uma tabela, se voltarmos um pouco e relembrarmos vetor em C saberemos que a primeira posição de um vetor é 0 (zero), o mesmo acontece com matrizes em C. O primeiro valor tanto do eixo Y, quanto do eixo X estarão na posição zero.


Na imagem abaixo utilizei como exemplo que a primeira linha (a de cima) é a de posição zero, por lógica a de baixo é a linha de posição 1 (segunda linha) e a terceira linha é a de posição 2.


Matriz em C/C++
Matriz em C/C++

Utilizando o código fonte acima insira os números de 1 até 9, e veja que conseguimos inserir os valores da nossa matriz, cada um em sua devida posição, veja na imagem a seguir.


Valores de uma matriz em C/C++
Valores de uma matriz em C/C++

Já vimos uma matriz de números inteiros certo? Agora veremos uma matriz de char.


Mas precisamos mudar o nosso exemplo, alguns parágrafos acima eu “falei” que o eixo Y poderia ser chamado de linha. Então se o eixo Y são linhas o eixo X são colunas. Olhe para a ultima imagem e veja que nós já vimos isso, eu só decidi não citar isso antes.


Mas acabei de falar que precisaria mudar o nosso exemplo, e aqui está ele.


Neste caso nós ainda temos três posições no eixo Y (3 linhas), mas o número de posições do eixo X (colunas) passou para 10.


Matriz com 3 linhas e 10 colunas
Matriz com 3 linhas e 10 colunas

Mas antes de mostrarmos um exemplo “utilizando” a imagem acima precisamos começar pela base/inicio de uma matriz de char.


Este é o primeiro exemplo de uma matriz de feito com char que demonstro, mas existe outro modo de declarar a mesma matriz.


Nos dois exemplos anteriores poderíamos inserir uma matriz de até 9 posições, pois a ultima para evitar bugs tem que estar vazia. Nos dois exemplos anteriores o valor da minha matriz na horizontal (em número de caracteres)  é 8. Essa matriz poderia ser descrita na imagem abaixo.


Exemplo de matriz em C/C++
Exemplo de matriz em C/C++

Agora que nós já sabemos como criar uma matriz de apenas uma linha quando essa matriz é de char. Vamos criar uma matriz com mais de uma linha.


OBS: Por favor realize este exemplo em seu computador só que, com o seu nome (ficará mais fácil de lembrar).


Agora deixo aqui o código fonte do vídeo número 24 do nosso tutorial de C/C++, repare e veja que este código fonte tem o que acabei de explicar, faça-o em seu computador utilizando seu nome.


A variável chamada “variável” tem a mesma função das variáveis X e Y do exemplo anterior, se ainda ficou com alguma duvida a respeito de matriz de char em C/C++? Assista esse vídeo [eu prefiro que você assista ao vídeo (também)].


Assista ao vídeo:


Agora precisamos “reaprender” outra coisa.


Precisamos reaprender como fazer para que o usuário digite os valores de uma matriz de char.


No vídeo número 25 do tutorial de C/C++ eu utilizo um exemplo que no eixo X se tem 100 posições. Não vou desenhar uma imagem com 5 linhas e 100 colunas.


Seguindo o que nós já sabemos, no exemplo acima nós criamos uma matriz de char cujo o usuário ira digitar os valores da matriz, igual já fizemos com uma matriz do tipo inteiro.


Precisaremos criar uma variável para inserirmos em nossa repetição


Neste caso (matriz de char) utilizamos apenas um laço (for), e se reparar não utilizei scanf e sim gets para “chamar” a variável.


Enfatizando agora que neste exemplo inseri um prnitf fora do segundo laço (for), só para ele não se repetir e neste momento o usuário já digitou os valores da nossa matriz em C/C++.


OBS: Isso mesmo, esse código fonte funciona tanto em Linguagem C tanto em C++.


E terminando o programa com getch e return (0).


Neste exemplo não citei a função main e nem as bibliotecas, mas caso tenha ficado alguma duvida segue o código fonte completo e sem quebras.


Matriz com 3 linhas e 10 colunas
Matriz com 3 linhas e 10 colunas

Faça esse exercício com o seu nome, ficou com alguma dúvida? Assista ao vídeo.


Assista ao vídeo:


Escrevi esse artigo pois na hora de explicar matriz de número inteiro inverti Y e X no vídeo número 23 do tutorial/curso de C/C++ (YouTube). Esse vídeo foi excluído e este artigo une os três vídeos da mini série de matriz em C (agora dois vídeos). Espero que seja útil e, se te ajudou comenta aí, mostra ele (este artigo) para o seu amigo que não consegue fazer uma matriz.


OBS: Antes de ser excluído o vídeo número 23 tinha sido visto por apenas 77 pessoas e foi uma pergunta no vídeo 25 que fez eu rever os três vídeos. Se você foi uma dessas 77 pessoas pessoa minhas sinceras desculpas, esse artigo que substitui esse vídeo foi feito com muito carinho.


Ainda não configurei o espaço de comentários dentro do site (embuscadocodigo.com), mas e aí, o que achou deste artigo? Vai lá na nossa página no Facebook ou acesse o nosso canal do YouTube (pelos vídeos deste link mesmo), as vezes publico coisas relacionadas ao site no meu inta, mas é meu insta e não do site, por isso você não encontra esse link aqui.


Espero que este "artigo"tenha sido útil, até mais.


Se estiver utilizando bloqueador de propaganda, por favor, coloque este site na lista branca (isto sempre será apenas um pedido). Obrigado pela escolha.