Quando falamos em uma matriz dentro da programação subentende-se uma variável que irá comportar mais de um valor. Desta forma pode-se dizer que as matrizes (tabelas em memória) são tipos de dados que podem ser "construídos" à medida que se fazem necessários, pois não é sempre que os tipos básicos (real, inteiro, caracter e lógico) e/ou variáveis simples são suficientes para representar a estrutura de dados utilizada em um programa.
Algo importante que irá caracterizar as matrizes e diferí-las de outras estruturas que também agrupam mais de um valor (por exemplo registros/structs) é o fator onde, uma matriz/vetor só poderá armazenar valores de um único e determinado tipo de dado.
De forma geral toda matriz possui pelo menos uma dimensão, isto é, uma forma de divisão que determinará o caminho, endereçamento ou a organização dos dados armazenados dentro dela.
OBS.: De forma geral (na teoria) uma matriz pode conter várias dimensões, no entanto quando falamos de interpretador/compilador o VisuAlg suporta no máximo duas dimensões enquanto que o Portugol IDE suporta as várias as quais me referi.
Quando falamos de vetor ou matriz unidimensional, nos referímos à uma única variável dimensionada com um determinado tamanho, isto é, uma variável que se divide em um único intervalo de valores (que por regra devem ser) constantes inteiros e positivos.
No desenho acima temos um vetor com nome A (que possui uma única dimensão que vai de 1 até 5) que consegue armazenar 5 valores, uma vez que equivale a 5 variáveis simples (A[1], A[2], A[3], A[4] e A[5]).
1. EXEMPLO 1
Faça um programa que leia 8 médias e no final apresente as 8 médias e a média geral que será a soma de todos os valore lidos dividida por 8.
algoritmo "MEDIA_GERAL"
// Função :
// Autor :
// Data : 27/05/2011
// Seção de Declarações
var
I:INTEIRO // declaração da variável contadora
MD: VETOR [ 1..8 ]DE REAL // declaração do vetor MD de uma dimensão que vai de 1 até 8 e é do tipo real
SOMA,MEDIA:REAL // declaração das variáveis SOMA e MEDIA que são do tipo real
inicio
SOMA <- 0 // SOMA será um acumulador e como tal recebe o elemento neutro da soma (que é o zero)
PARA I DE 1 ATE 8 FACA // Laço derepetição que irá fazer com que meu contador altere a variável vetor fazendo com que ela seja MD[1], MD[2], MD[3]... MD[8]
// Função :
// Autor :
// Data : 27/05/2011
// Seção de Declarações
var
I:INTEIRO // declaração da variável contadora
MD: VETOR [ 1..8 ]DE REAL // declaração do vetor MD de uma dimensão que vai de 1 até 8 e é do tipo real
SOMA,MEDIA:REAL // declaração das variáveis SOMA e MEDIA que são do tipo real
inicio
SOMA <- 0 // SOMA será um acumulador e como tal recebe o elemento neutro da soma (que é o zero)
PARA I DE 1 ATE 8 FACA // Laço derepetição que irá fazer com que meu contador altere a variável vetor fazendo com que ela seja MD[1], MD[2], MD[3]... MD[8]
// Em geral para cada dimensão da matriz utiliza-se um laço obrigatóriamente
ESCREVAL ("DIGITE O VALOR DA", I, "º MÉDIA:") // Solicitação do valor da média
LEIA (MD[I]) // leitura do valor digitado
SOMA <- SOMA + (MD[ I ]) // acumulador recebendo ele mesmo mais o valor digitado
FIMPARA // limite, finalização do laço
MEDIA <- SOMA / 8 // divisão do último valor da soma acumulada pelo número de médias
ESCREVAL (" _______") // desenho de uma tabela em torno do que será exibido
ESCREVAL ("|", MD[1], " |") // apresentação da 1ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[2]," |") // apresentação da 2ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[3]," |") // apresentação da 3ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[4]," |") // apresentação da 4ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[5], " |") // apresentação da 5ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[6], " |") // apresentação da 6ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[7], " |") // apresentação da 7ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[8], " |") // apresentação da 8ª média
ESCREVAL ("|_______|")
ESCREVAL (" ")
ESCREVAL ("A MÉDIA GERAL É", MEDIA) // apresentação da média geral
fimalgoritmo
ESCREVAL ("DIGITE O VALOR DA", I, "º MÉDIA:") // Solicitação do valor da média
LEIA (MD[I]) // leitura do valor digitado
SOMA <- SOMA + (MD[ I ]) // acumulador recebendo ele mesmo mais o valor digitado
FIMPARA // limite, finalização do laço
MEDIA <- SOMA / 8 // divisão do último valor da soma acumulada pelo número de médias
ESCREVAL (" _______") // desenho de uma tabela em torno do que será exibido
ESCREVAL ("|", MD[1], " |") // apresentação da 1ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[2]," |") // apresentação da 2ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[3]," |") // apresentação da 3ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[4]," |") // apresentação da 4ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[5], " |") // apresentação da 5ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[6], " |") // apresentação da 6ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[7], " |") // apresentação da 7ª média
ESCREVAL ("|_______|")
ESCREVAL ("|", MD[8], " |") // apresentação da 8ª média
ESCREVAL ("|_______|")
ESCREVAL (" ")
ESCREVAL ("A MÉDIA GERAL É", MEDIA) // apresentação da média geral
fimalgoritmo
Parabéns!
ResponderExcluirJà faz um tempo que você criou esse blog, porém só agora, que estou na faculdade e busquei na parte de imagens do Google, o desenho do seu vetor, é que pude conhecer seu trabalho.
Mais uma vez parabéns e obrigado.
Me ajudou muito.