O que são Vetores e Matrizes (arrays)
Vetores e Matrizes são estruturas de dados muito simples que podem nos ajudar muito quando temos muitas variáveis do mesmo tipo em um algoritmo. Imagine o seguinte problema: Você precisa criar um algoritmo que lê o nome e as 4 notas de 50 alunos, calcular a média de cada aluno e informar quais foram aprovados e quais foram reprovados. Conseguiu imaginar quantas variáveis você vai precisar? Muitas né? Vamos fazer uma conta rápida: 50 variáveis para armazenar os nomes dos alunos, (4 * 50 = ) 200 variáveis para armazenar as 4 notas de cada aluno e por fim, 50 variáveis para armazenar as médias de cada aluno. 300 variáveis no total, sem contar a quantidade de linhas de código que você vai precisar para ler todos os dados do usuário, calcular as médias e apresentar os resultados. Mas eu tenho uma boa notícia pra você. Nós não precisamos criar 300 variáveis! Podemos utilizar Vetores e Matrizes (também conhecidos como ARRAYs)!
O que são Vetores e Matrizes?
Vetor (array uni-dimensional) é uma variável que armazena várias variáveis do mesmo tipo. No problema apresentado anteriormente, nós podemos utilizar um vetor de 50 posições para armazenar os nomes dos 50 alunos.

Olá Algoritmizeiros, estamos chegando nos últimos posts da série, Aprenda a Programar, e hoje, iremos falar de vetores.
Até então, aprendemos o que é uma variável e como declarar variáveis em portugol, e fizemos isso inúmeras vezes em nossos algoritmos.
O nosso problema começa, quando temos que declarar inúmeras variáveis para atender a um fim.
Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e a média da turma.
Agora imagine você na declaração de variáveis, declarando uma a uma, as 50 variáveis para o nome, depois as 50 variáveis para as notas…
|
1 2 3 |
|
Cansativo não? Acho que se fosse realmente assim, não haveria tantos programadores quanto há hoje em dia…
É em casos como esse que entra o assunto desse post. Vetores.
Vamos imaginar um vetor como sendo uma “caixa” com vários lugares separados para guardar seus documentos, ou seja, uma variável onde se pode armazenar mais de um dado.

Vetor de 8 posições
No exemplo abaixo, temos um vetor com dados armazenados nas 5 primeiras posições.

Para poder acessar o conteúdo desse vetor, vamos utilizar a sintaxe: nome[posição].
Ex: meuvetor[2]
- O retorno será a letra B.
Interessante, mas como eu posso usar vetores nos algoritmos?
Para usar os vetores, primeiro temos que declará-lo na seção de variáveis. Sim, vetor também é uma variável!
A sintaxe para declaração do vetor é a seguinte:
|
1 2 |
|
Exemplo:
|
1 2 |
|
Primeiro vem o nome do vetor, então onde antes colocávamos apenas o tipo, que era caractere, real, inteiro, etc., agora vamos especificar que é um vetor, colocar quantas posições ele terá, e finalmente o tipo.
E não se confundam, no campo das posições, são apenas 2 (dois) pontos mesmo. Se colocar mais que isso seu vetor não irá funcionar. E as lendas urbanas dizem que se seu vetor estiver errado seu visualg trava. Não fiz todos os testes para confirmar isso.
Agora, um exemplo simples para facilitar a vida de vocês:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
E que tal, utilizar vetores junto com tudo o que aprendemos até aqui?
Atendendo ao pedido da leitora Fernanda no último post, dei início a um algoritmo que recebe 10 números, indica quais são os números ímpares maiores que 1 e menor que 726, qual a maior diferença entre dois números consecutivos informados pelo usuário e quais são múltiplos de 3.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
Agora é com vocês… aproveitem o exemplo acima e façam seus testes, crie novas funções e nos diga sobre suas experiências com vetores nos comentários.
Matriz (array multi-dimensional) é um vetor de vetores. No nosso problema, imagine uma matriz para armazenar as 4 notas de cada um dos 50 alunos. Ou seja, um vetor de 50 posições, e em cada posição do vetor, há outro vetor com 4 posições. Isso é uma matriz.

Cada item do vetor (ou matriz) é acessado por um número chamado de índice.
Vamos representar os vetores e matrizes graficamente para facilitar o entendimento do conceito.
Podemos ver na imagem acima que cada posição do vetor é identificado por um número (chamado de índice), no caso da matriz são dois números (um na vertical e um na horizontal).
Vetores e Matrizes na prática!
Tomando o exemplo apresentado no início deste artigo, vamos implementar o algoritmo utilizando o Visualg. Nele, vamos usar algumas estruturas básicas já apresentadas aqui, tais como A estrutura de repetição PARA e a estrutura de decisão SE-ENTÃO-SENÃO. (Neste algoritmo vamos reduzir o número de alunos de 50 para 5, para facilitar a visualização do resultado.)
Saiba o que é o Visualg, como instalar e criar os seus primeiros algoritmos!
Preste muita atenção no modo como é criado o Vetor e a Matriz e também a forma como é acessada cada posição.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
algoritmo "MediaDe5Alunos" // Função : Calcular a média das notas de 10 alunos e apresentar quem foi aprovado ou reprovado // Autor : Gustavo // Seção de Declarações var
nomes: vetor [1..5] de caractere notas: vetor [1..5,1..4] de real medias: vetor [1..5] de real contadorLoop1, contadorLoop2: inteiro
inicio
//Leitura dos nomes e as notas de cada aluno PARA contadorLoop1 DE 1 ATE 5 FACA ESCREVA("Digite o nome do aluno(a) número ", contadorLoop1, " de 5: ") LEIA(nomes[contadorLoop1]) PARA contadorLoop2 DE 1 ATE 4 FACA ESCREVA("Digite a nota ", contadorLoop2, " do aluno(a) ", nomes[contadorLoop1], ": ") LEIA(notas[contadorLoop1, contadorLoop2]) FIMPARA //CÁLCULO DAS MÉDIAS medias[contadorLoop1] := (notas[contadorLoop1, 1] + notas[contadorLoop1, 2] + notas[contadorLoop1, 3] + notas[contadorLoop1, 4]) / 4 FIMPARA
//APRESENTAÇÃO DOS RESULTADOS PARA contadorLoop1 DE 1 ATE 5 FACA SE medias[contadorLoop1] >= 6 ENTAO ESCREVAL("O aluno(a) ", nomes[contadorLoop1], " foi aprovado com as notas (", notas[contadorLoop1, 1], ", ", notas[contadorLoop1, 2], ", ", notas[contadorLoop1, 3], ", ", notas[contadorLoop1, 4], ") e média: ", medias[contadorLoop1]) SENAO ESCREVAL("O aluno(a) ", nomes[contadorLoop1], " foi reprovado com as notas (", notas[contadorLoop1, 1], ", ", notas[contadorLoop1, 2], ", ", notas[contadorLoop1, 3], ", ", notas[contadorLoop1, 4], ") e média: ", medias[contadorLoop1]) FIMSE FIMPARA
fimalgoritmo |
Repare que os arrays (vetores ou matrizes) aliados a estrutura de repetição PARA é um ótimo recurso para algoritmos que precisam de muitas variáveis do mesmo tipo.
Se você é iniciante em programação este algoritmo pode parecer complexo para você, se houver dúvidas não se acanhe em deixar um comentário aí em baixo que vamos te ajudar. Pra aprender programação (e qualquer outra coisa) o mais importante é a força de vontade!
Um resultado do algoritmo acima pode ser observado a seguir:
Digite o nome do aluno(a) número 1 de 5: Gustavo
Digite a nota 1 do aluno(a) Gustavo: 9
Digite a nota 2 do aluno(a) Gustavo: 10
Digite a nota 3 do aluno(a) Gustavo: 9,5
Digite a nota 4 do aluno(a) Gustavo: 8
Digite o nome do aluno(a) número 2 de 5: João
Digite a nota 1 do aluno(a) João: 5
Digite a nota 2 do aluno(a) João: 6
Digite a nota 3 do aluno(a) João: 4,5
Digite a nota 4 do aluno(a) João: 7
Digite o nome do aluno(a) número 3 de 5: Pedro
Digite a nota 1 do aluno(a) Pedro: 7
Digite a nota 2 do aluno(a) Pedro: 8,5
Digite a nota 3 do aluno(a) Pedro: 6
Digite a nota 4 do aluno(a) Pedro: 7
Digite o nome do aluno(a) número 4 de 5: Luciana
Digite a nota 1 do aluno(a) Luciana: 10
Digite a nota 2 do aluno(a) Luciana: 7
Digite a nota 3 do aluno(a) Luciana: 7,5
Digite a nota 4 do aluno(a) Luciana: 8
Digite o nome do aluno(a) número 5 de 5: Augusto
Digite a nota 1 do aluno(a) Augusto: 5
Digite a nota 2 do aluno(a) Augusto: 5,5
Digite a nota 3 do aluno(a) Augusto: 7,5
Digite a nota 4 do aluno(a) Augusto: 6
O aluno(a) Gustavo foi aprovado com as notas ( 9, 10, 9.5, 8) e média: 9.125
O aluno(a) João foi reprovado com as notas ( 5, 6, 4.5, 7) e média: 5.625
O aluno(a) Pedro foi aprovado com as notas ( 7, 8.5, 6, 7) e média: 7.125
O aluno(a) Luciana foi aprovado com as notas ( 10, 7, 7.5, 8) e média: 8.125
O aluno(a) Augusto foi aprovado com as notas ( 5, 5.5, 7.5, 6) e média: 6
*** Fim da execução.
*** Feche esta janela para retornar ao Visualg.
Finalizando nosso estudo de algoritmos, iremos aprender hoje sobre variáveis compostas homogenias, ou seja… Matriz.
Antes de dar continuidade na leitura, recomendo que já estejam familiarizados com o assunto do post anterior, Vetores.
Afinal, o que é uma matriz?
Uma matriz, é nada mais, do que Vetores bi-dimensionais. Onde podemos acessar os dados ali contidos através de dois valores. As “linhas” e as “colunas”. Vocês entenderão logo!
Sintaxe…
|
1 |
|
Exemplo:
|
1 |
|
Onde o primeiro valor refere-se as linhas e o segundo as colunas. O exemplo acima, refere-se a criação de uma matriz com 3 linhas e 3 colunas, conforme imagem abaixo:
Como eu posso atribuir ou visualizar dados de minha matriz?
Para atribuir dados a uma determinada posição em uma Matriz, manteremos o mesmo padrão para variáveis comuns ou vetores.
* Para atribuir um determinado valor:
|
1 |
|
Atribui a palavra Algoritmizando na posição (1,2) da matriz melhorblog.
* Para ler determinado valor:
|
1 2 3 |
|
Lê o valor que se encontra na posição (1,2) da matriz melhorblog.
E agora, um “pequeno” algoritmo, utilizando praticamente tudo o que vimos durante todos esses posts de algoritmos, inclusive o assunto desse post de hoje, Matriz:
Sistema de cadastro de alunos:
- Fazer um programa de cadastro de alunos;
- O programa deverá receber o nome, blog favorito e email de cada um dos alunos;
- Após o cadastro, fornecer as seguintes opções:
- Consultar alunos cadastrados
- Consultar blogs favoritos por aluno
- Lista de emails cadastrados
- Lista completa, com todos os dados dos alunos cadastrados
- Finalizar o programa
Observação: O Programa só poderá ser finalizado quando escolhida a opção nº 5
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
|
Não entendeu? veja abaixo onde foi explicado cada trecho de nosso programa…
- Nas linhas 4 a 6, temos nossa declaração de variáveis, explicada no Aprenda a Programar 3 – Variáveis e Aprenda a Programar 4 – Estrutura do Portugol;
- Nas linhas 10 a 23 temos a estrutura de repetição para .. faça e a utilização em massa dos comandos: escreva e leia;
- Na linha 31 demos início ao uso da estrutura de repetição enquanto .. faça;
- Nas linhas 47 a 73 foi utilizada a função escolha .. caso, explicada no Aprenda a Programar 8.
- E por fim, nossa matriz alunos, assunto desse post e do anterior sobre vetores. Esta que foi a base de todo o nosso programa.
Caso prefira, você pode fazer o download de nosso algoritmo e testar no VisualG:
Cadastro de Alunos - Aprenda a Programar #13 (197)
Que tal praticar agora tudo o que você aprendeu?
Disponibilizamos para vocês 40 exercícios de Algoritmos e suas respectivas soluções. Mais de 2 mil pessoas já baixaram, está esperando o que para baixar e começar a praticar?
E aqui termina o último post da série ‘Aprenda a Programar’!
Continue Estudando!!!
Quer continuar estudando e se tornar um excelente programador? Recomendo a leitura do livro: Algoritmos e Programação – Teoria e Prática da editora Novatec. Vale a pena dar uma olhada.
Aprenda PHP no Algoritmizando!
PHP é uma das linguagens de programação mais utilizadas nos dias atuais, com ela é possível desenvolver desde simples páginas web até mesmo poderosos sistemas que rodam em qualquer navegador.
E o Algoritmizando agora ensina vocês a aprender a programar em PHP partindo do zero!
Conclusão
Como você pode perceber nesse artigo, Vetores e Matrizes são, na verdade, a mesma coisa: array a diferença é que o vetor é um array de apenas 1 dimensão e a matriz é um array de 2 (ou mais) dimensões.
Array é uma das estruturas de dados mais simples que existe e uma das mais utilizadas também. Acho que todas as linguagens de programação têm arrays, pelo menos ainda não conheço uma linguagem que não tem. Porém, os índices podem mudar dependendo da linguagem, algumas começam os índices do array com 1 e outras com 0, essa é a grande diferença que geralmente encontramos entre linguagens. No caso das linguagens que começam os arrays com o índice 0, o último elemento do array recebe o índice (<tamanho do array> – 1).
