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.

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.

vetor e matriz (array)

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.

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.

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

Gostou de conhecer os Arrays (Vetores e Matrizes)?

Deixe uma resposta

  1. muito bom mesmo show de bola, com essa linguagem clara e objetiva é bem mais simples de se
    aprender a Programar, Vetores e Matriz eh exatamente o conteúdo que estamos vendo agora em estrutura de Dados e lin. Programação.
    vou indicar esse site pro meus colegas, tenho certeza que eles iram gosta muito.

    • Que bom que gostou Lucas! E obrigado por ajudar a divulgar o { Dicas de Programação }. O conteúdo é escrito pensando em pessoas como você e seus colegas. Acho que assim vamos alcançando o objetivo do site que levar essa experiência de trabalho para quem quer aprender programação. Continue visitando que temos muita coisa pra ensinar por aqui.

      Abraço!

        • Olá Thiago, tem sim formas melhores de inserir dados no programa, por exemplo, ler um arquivo, ou inserir várias notas em uma linha só e tratar o texto para extrair as notas separadamente, etc. Mas não é o objetivo do artigo, tentei explicar aqui “o que” são vetores e matrizes, o problema das médias das notas foi apenas um exemplo.

          Talvez no seu caso seja interessante trabalhar com um arquivo. Na documentação de referência do visualg tem bastante informações para trabalhar com arquivos (Abaixo um texto extraído dessa documentação). Ainda não tem artigo sobre isso aqui no { Dicas de Programação }, mas já coloquei aqui na lista de futuros artigos.

          Abraço.

          Texto extraído da documentação do visualg:
          “Comando Arquivo

          Muitas vezes é necessário repetir os testes de um programa com uma série igual de dados. Para casos como este, o VisuAlg permite o armazenamento de dados em um arquivo-texto, obtendo deles os dados ao executar os comandos leia.
          Esta característica funciona da seguinte maneira:
          1) Se não existir o arquivo com nome especificado, o VisuAlg fará uma leitura de dados através da digitação, armazenando os dados lidos neste arquivo, na ordem em que forem fornecidos.
          2) Se o arquivo existir, o VisuAlg obterá os dados deste arquivo até chegar ao seu fim. Daí em diante, fará as leituras de dados através da digitação.
          3) Somente um comando arquivo pode ser empregado em cada pseudocódigo, e ele deverá estar na seção de declarações (dependendo do “sucesso” desta característica, em futuras versões ela poderá ser melhorada…).
          4) Caso não seja fornecido um caminho, o VisuAlg irá procurar este arquivo na pasta de trabalho corrente (geralmente, é a pasta onde o programa VISUALG.EXE está). Este comando não prevê uma extensão padrão; portanto, a especificação do nome do arquivo deve ser completa, inclusive com sua extensão (por exemplo, .txt, .dat, etc.).

          A sintaxe do comando é:

          arquivo

          é uma constante caractere (entre aspas duplas). Veja o exemplo a seguir:

          algoritmo “lendo do arquivo”
          arquivo “teste.txt”
          var x,y: inteiro
          inicio
          para x de 1 ate 5 faca
          leia (y)
          fimpara
          fimalgoritmo”

  2. Oi, gostei muito da explicação, faço curso na ifsp… e acabamos de entrar nessa materia, e o prfº esta correndo com ela essa eu consegui entender melhor ficou ma claro p mim a estrutura while, gostaria de tentar fazer esse codigo com while e a duvida que eu tiver posso postar ou vc prefere que seja por email?

  3. Muito bom esse artigo, vou começar a estudar vetores e matrizes queria ver esse programa em C++, tem como? se não, tudo bem já me ajudou bastante…

  4. Olá, estou com uma certa dificuldade em entender vetores e matrizes, por exemplo: estou com um algoritmo que tem que fazer um calculo de IPTU de uma cidade ficticia, aonde é dado o valor do IPTU e a esse valor deve ser acrescido uma multa de 5% e mais juros compostos de 1% ao mês,
    deve ser fornecido o nome do contribuinte, valor do IPTU e quantos meses de atraso e deve ser apresentado na tela o nome do contriuinte o valor que ele ira pagar e quantos meses de atraso.
    poderia me ajudar?
    obrigado.
    hmfbrasil@hotmail.com

    • Henrique,

      esse problema não tem muito a ver com vetores e matrizes, né? É um algoritmo simples, onde você faz a leitura das informações fornecidas, faz o cálculo e depois imprime na tela o resultado.

      • Gustavo, acho que simplifiquei demais o algoritmo, segue abaixo o problema completo:

        Em certo municipio, vários proprietários de imóveis estão com atraso com o pagamento do IPTU,
        Escreva um algoritmo que calcule o valor dos IPTU’s em atraso.
        Deve-se calcular a multa e juros a ser pagos por estes contribuintes considerando que:
        -Os dados da cada imóvel são: identificação, o valor do imposto e numero de meses em atraso.
        -Estes dados devem ser lido pelo algoritmo.
        -A multa por atraso é de 5% e o juros é composto e de 1% ao mes
        -A quantidade de imóveis deverá ser indicada pelo usuário durante a execução.
        -O programa deve exibir ao final, a identificação do imovel, o numero de meses em atraso, o valor da multa e o juros a serem pagos e o valor o imposto com a multa e os juros por atraso.

    • Marcelo, não sei se entendi sua dúvida, mas se for no sentido de estrutura de dados, é o seguinte … O Vetor e a Matriz já são estruturas de dados. São listas indexadas com tamanho fixo. Existem outros tipos de estruturas de dados que podem ou não usar vetores ou matrizes, por exemplo uma lista indexada de tamanho variável. Ela pode usar vetores internamente e eventualmente recriar o vetor com uma correção no seu tamanho, é uma possibilidade…

  5. OI Gustavo, só tem uma coisa, o programinha indicado por vc não um ícone na área de trabalho par nós usarmos, seja, toda vez que precisarmos de usar o programa temos que instalá-lo, o instalador não gera executável para usarmos o programa.

    • Olá Claudio, o programa é instalado sim, no meu caso fica na pasta “C:\Program Files (x86)\Apoio\Visualg Versão 2\visualg.exe”, nada impede de você criar um atalho para este executável na sua área de trabalho.

      Um abraço!

    • Olá John, cada elemento do vetor é uma variável. Para atribuir um valor a um elemento do vetor você utiliza um numero (índice) para indicar a posição do vetor. Por exemplo.

      vetor[3] := 1000;

      Neste caso a a posição 3 do vetor recebeu o valor 1000.

      Para fazer isso com todos os elementos de um vetor nós usamos um loop que vai de 1 ao tamanho do vetor.

  6. Olá , estou começando a ver esse negocio de programação agr ! ( mt por causa do filme “Matrix” kkk) .
    Mas tem uma coisa q eu não estou entendendo q é esse tal de loop. Me ajudem ai !

  7. Kra eu gostei muito do seu site, eu estava com duvidas nesse conteudo, por que estou no começo do curso de Programaçao de web(PHP).Agora vou seguir o seu site,ja conquistaram mais um leitor!