Buscar

etapa_4_ ALGORITMO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ALGORITMO
ETAPA 4
ESTRUTURAS DE DADOS HOMOGÊNEAS
CENTRO UNIVERSITÁRIO
LEONARDO DA VINCI
Rodovia BR 470, Km 71, nº 1.040, Bairro Benedito
89130-000 - INDAIAL/SC
www.uniasselvi.com.br
Curso sobre Algoritmo
Centro Universitário Leonardo da Vinci
Organização
Greisse Moser Badalotti
Autor
Marcio Poffo
Reitor da UNIASSELVI
Prof. Hermínio Kloch
Pró-Reitoria de Ensino de Graduação a Distância
Prof.ª Francieli Stano Torres
Pró-Reitor Operacional de Ensino de Graduação a Distância
Prof. Hermínio Kloch
Diagramação e Capa
Renan Willian Pacheco
Revisão
José Roberto Rodrigues
Caro acadêmico, parabéns por ter chegado a esta etapa. Agora você já conhece 
os conceitos fundamentais para a construção de algoritmos, a criação de variáveis e 
seus tipos de dados, além das estruturas de condições e comandos de repetição (loop).
A partir desta etapa, focaremos nas estruturas de dados homogêneas, que são 
caracterizadas por um conjunto de variáveis do mesmo tipo de dado, as quais podem 
ser unidimensionais ou multidimensionais. Estas estruturas facilitam o trabalho de 
programação, pois em alguns casos em que se necessite a criação de várias variáveis, 
cria-se uma estrutura destas para resolver o problema.
Mas, para isso, não esqueça, faça todos os exercícios propostos, analise e refaça os 
exemplos demonstrados que você vai conseguir aprender a utilizar estas estruturas de 
forma correta. A prática facilita e muito o desenvolvimento da lógica de programação. 
Este é o caminho para o bom aprendizado de programação. Portanto, bons estudos!
2 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
1 INTRODUÇÃO
Até aqui você aprendeu como utilizar os tipos de dados primitivos e uma 
breve conceituação de vetores e matrizes. Além disso, você aprendeu também as 
estruturas condicionais e de repetição, as quais são fundamentais para as linguagens 
de programação. 
Nesta etapa vamos nos aprofundar nas estruturas de dados chamadas de vetor 
(array) e matrizes, que são muito importantes para o desenvolvimento de software. 
Esta técnica de programação nos permite trabalhar com estas estruturas que são um 
agrupamento de dados, referenciado no código-fonte por uma mesma variável. Para o 
nosso estudo, consideraremos apenas as estruturas de dados que sejam formadas por 
grupo de dados do mesmo tipo, chamadas de estruturas de dados homogêneas. 
As estruturas de dados homogêneas são conhecidas no desenvolvimento de 
software por diversos nomes, como variáveis indexadas, variáveis compostas, arranjos, 
vetores, matrizes, arrays (do inglês) etc. Aqui serão denominadas de vetores (MANZANO; 
OLIVEIRA, 2014).
2 ESTRUTURA UNIDIMENSIONAL (VETORES OU ARRAYS)
As estruturas de dados unidimensionais são os conhecidos arrays, também 
chamados de vetores ou matrizes de uma dimensão, e representam um conjunto de 
dados que estejam em uma determinada posição (índice) de valores homogêneos, isto 
é, valores do mesmo tipo de dado (inteiro, real, caractere, booleano ou lógico). 
Neste sentido, vetores ou matrizes de uma dimensão são considerados estruturas 
de dados que são referenciados por um mesmo nome e que necessitam de um único 
índice para que seus elementos sejam acessados. Neste contexto, você pode imaginar 
um vetor como sendo uma tabela com apenas uma coluna, e para acessar seus dados, 
basta informar o número da linha (índice). Lembrando que para acessar a posição de um 
vetor em linguagem de programação real utiliza-se o número da linha menos um (n-1), 
isso porque vetor inicia-se da posição zero. Veja o exemplo a seguir que ilustra um vetor.
3
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
FIGURA 4.1 – ILUSTRAÇÃO DE UM VETOR
FONTE: O autor
No exemplo da Figura 4.1, o índice do modelo “Palio” é o 2, e do veículo “Fusca” 
é o índice 0 (zero).
2.1. UTILIZAÇÃO DE VETORES
Agora que aprendemos o que são vetores e para que servem, vamos aprender 
como utilizá-los. A utilização de vetores independe da linguagem de programação, isto 
é, todo vetor funciona da mesma forma, podendo apenas haver alguma diferença de 
sintaxe de uma linguagem de programação para outra.
Como podemos notar, uma variável do tipo vetor armazena vários dados 
ao mesmo tempo, porém a manipulação de cada um deles é individual, pois o 
armazenamento é realizado para cada valor em um índice do vetor, além do acesso 
de cada elemento que também é realizado pelo índice de cada um deles. Conforme já 
foi mencionado, a posição de cada elemento no vetor é chamada de índice, que nada 
mais é do que o número da posição, que é um intervalo da quantidade de elementos 
definida para um vetor.
Neste contexto, para realizar o acesso a um elemento de um vetor, utiliza-se o 
nome da variável (vetor) seguido do número do índice do elemento entre colchetes 
“[x]”. Veja a seguir um exemplo de como acessar um elemento de um vetor.
4 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
TABELA 4.1 – EXEMPLO DE ACESSO A UM ELEMENTO DE UM VETOR PELO SEU ÍNDICE
Algoritmo armazenaModelos
Declara
 vetorExemplo: vetor [0..2] de inteiro
Inicio
 vetorExemplo [0] ← 200
 vetorExemplo [1] ← 125
 vetorExemplo [2] ← 1999
 Escreva (“Escreva número: ”, vetorExemplo [0])
 Escreva (“Escreva número: ”, vetorExemplo [1])
 Escreva (“Escreva número: ”, vetorExemplo [2])
Fim
FONTE: O autor
A saída do programa acima está listada a seguir. Note que definimos a variável 
“vetorExemplo” com o tipo vetor de inteiro. Isso significa que apenas podem ser 
adicionados números inteiros como elemento deste vetor.
TABELA 4.2 – SAÍDA DO VETOR ANTERIOR
200
125
1999
FONTE: O autor
Este tipo de estrutura de dados é disponibilizado em uma única variável 
dimensionada com um determinado tamanho, o qual define-se em sua declaração. Neste 
sentido, a declaração de um vetor é determinada por constantes inteiras e positivas 
(MANZANO; OLIVEIRA, 2014). Este conceito de ter apenas um único índice é chamado 
de variável indexada unidimensional, que pode ser entendida como a estrutura de dados 
que a partir de um nome e um único índice permite o armazenamento e a localização 
de um conjunto de dados.
Digamos o caso de um prédio, por exemplo, que possui 10 andares, contando com 
o térreo. Cada andar possui um número, por exemplo, térreo, primeiro andar, segundo 
andar, e assim por diante. No térreo deste prédio encontra-se a recepção, e no quinto 
andar encontra-se um consultório odontológico. É necessário que haja uma placa no 
térreo informando em qual andar e sala está situado cada negócio. Por exemplo, uma 
pessoa que quer ir ao odontologista vai utilizar esta placa, que serve como mapa, para 
descobrir que o que ela está procurando situa-se no quinto andar.
5
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
O mesmo do exemplo do prédio acontece quando se deseja armazenar em 
memória uma lista de valores, todos do mesmo tipo de dado. Por exemplo, a Figura 4.1 
possui uma lista de modelos de carros. Caso fôssemos criar uma variável para armazenar 
cada modelo, nosso código-fonte ficaria mais complexo. Veja um exemplo no algoritmo 
a seguir, no qual atribuímos os valores para cada variável e depois escrevemos na tela 
o valor de cada variável.
TABELA 4.3 – EXEMPLO DE ALGORITMO PARA ARMAZENAR LISTA DE MODELOS 
EM VARIÁVEIS NORMAIS
Algoritmo armazenaModelos
Declara
 varFusca,
 varGol,
 varPalio,
 varMontana,
 varJetta,
 varGolf,
 varSaveito,
 varTucson :caractere
Inicio
 varFusca ← “Fusca”
 varGol ← “Gol”
 varPalio ← “Palio”
 varMontana ← “Montana”
 varJetta ← “Jetta”
 varGolf ← “Golf”
 varSaveiro ← “Saveiro”
 varTucson ← “Tucson”
 Escreva(“Escreva modelo: ”, varFusca)
 Escreva(“Escreva modelo: ”, varGol)
 Escreva(“Escreva modelo: ”, varPalio)
 Escreva(“Escreva modelo: ”, varMontana)
 Escreva(“Escreva modelo: ”, varJetta)
 Escreva(“Escreva modelo: ”, varGolf)Escreva(“Escreva modelo: ”, varSaveiro)
 Escreva(“Escreva modelo: ”, varTucson)
Fim
FONTE: O autor
6 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Agora desenvolvemos um algoritmo utilizando a estrutura de um vetor, código 
diferente, mas com o mesmo resultado final. Veja como o código-fonte torna-se mais 
legível e menos trabalhoso.
TABELA 4.4 – EXEMPLO DE ALGORITMO PARA ARMAZENAR LISTA DE MODELOS 
EM UM VETOR
Algoritmo armazenaModelos
Declara
 linha: inteiro
 vetorModelos: vetor [0..7] de caractere
Inicio
 vetorModelos[0] ← “Fusca”
 vetorModelos[1] ← “Gol”
 vetorModelos[2] ← “Palio”
 vetorModelos[3] ← “Montana”
 vetorModelos[4] ← “Jetta”
 vetorModelos[5] ← “Golf”
 vetorModelos[6] ← “Saveiro”
 vetorModelos[7] ← “Tucson”
 para linha de 0 ate 7 faca
 Escreva(“Escreva modelo: ”, vetorModelos[linha])
 fim_para
Fim
FONTE: O autor
2.2. REPRESENTAÇÃO DE VETOR NA MEMÓRIA DE UM COMPUTADOR
Quando um vetor é definido, requisita-se ao sistema operacional do computador 
que seja realizada uma reserva com área contínua de memória, cujo objetivo é armazenar 
uma lista de valores que tenham o mesmo tipo de dado (SOUZA et al., 2015). Esta área 
de memória reservada é, na realidade, um conjunto de posições simples e contínuas de 
memória reservadas uma após a outra (SOUZA et al., 2015). Neste sentido, você pode 
imaginar esta reserva de memória como se fosse uma caixa ao lado da outra, ou uma 
embaixo da outra, cada uma com seu endereçamento físico de memória. Cada um destes 
espaços (caixas) de memória possui um único índice para acesso a seu dado, isto é, cada 
dado armazenado possui um único índice.
7
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
FIGURA 4.2 – ARMAZENAMENTO DE UMA VARIÁVEL SIMPLES NA MEMÓRIA
FONTE: Souza et al. (2015, p. 168)
Observe a Figura 4.2, a qual ilustra o armazenamento de dados em memória por 
uma variável comum. No caso desta variável “A”, que possui o valor 15 como seu dado, 
está alocada no endereçamento 100 da memória (SOUZA et al., 2015). Neste sentido, caso 
tivéssemos criado várias variáveis, seria alocada uma variável em cada endereçamento da 
memória, ou seja, no endereço 100 teríamos a variável “A”, no endereço “102” teríamos 
a variável “B” e assim por diante.
Agora, consideremos que criamos um vetor com cinco posições, cujos elementos 
possuem os valores -3, 4, 5 e 0, nesta ordem (SOUZA, et al., 2015). Neste caso, os valores 
são armazenados nas “caixas” de memória, um após o outro, a partir de um determinado 
endereçamento da memória, por exemplo, no endereço de memória 100, 101, 102, cuja 
variável da memória é a mesma (SOUZA, et al., 2015).
FIGURA 4.3 – ARMAZENAMENTO DE UM VETOR NA MEMÓRIA
FONTE: Souza et al. (2015, p. 169)
8 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
Note na Figura 4.3, acima, o vetor, chamado de “A”, o qual foi definido com quatro 
posições, recebeu a reserva na memória de quatro endereçamentos físicos. Neste caso, 
cada endereçamento da memória é para armazenar os dados de cada índice do vetor. 
É desta forma que um vetor é armazenado em memória.
2.3. EXEMPLO PRÁTICO 1
Vamos agora desenvolver um exemplo prático? Vamos desenvolver para este 
problema desde o algoritmo passo a passo até o fluxograma e pseudocódigo, assim 
passamos a relembrar os conteúdos passados. Para facilitar a programação, vamos 
utilizar comandos de repetição.
Problema: Implementar um programa que leia as 10 notas de um aluno e então 
calcule a média das notas. Como saída do programa deve ser listado o nome do aluno 
mencionando sua situação (“aprovado” ou “reprovado”), sendo que a média mínima 
para aprovação é 7. Após esta saída, o programa deve listar todas as notas informadas, 
uma por linha.
Vamos iniciar escrevendo as instruções passo a passo do algoritmo, as quais 
seguem na próxima tabela.
TABELA 4.5 – INSTRUÇÕES PARA O ALGORITMO
Início
1.	 Solicitar o nome do aluno e armazenar em uma variável.
2.	 Solicitar as dez notas do aluno, armazenando em uma lista.
3.	 Calcular a média das notas e armazenar o resultado em uma variável. Fórmula do 
cálculo: 
4.	 Fazer um desvio condicional para verificar se o aluno foi aprovado ou não, exibindo 
seu nome e situação na tela.
5.	 Listar todas as notas informadas, uma por linha
Fim
FONTE: O autor
Agora que temos as instruções de nosso algoritmo, desenvolvemos um 
fluxograma, apresentado a seguir.
9
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
FIGURA 4.4 – FLUXOGRAMA PARA REPRESENTAR O ALGORITMO
FONTE: O autor 
Analise o diagrama acima, no qual foi realizado o início do processo, solicitado 
o nome do aluno, em seguida foi inserido um loop validando se a variável “i” é menor 
ou igual a 9, pois estamos tratando vetor da posição zero, isto é, índice zero. Sendo esta 
expressão verdadeira, a primeira vez sempre será, pois iniciamos a variável “i” com zero, 
e então é solicitada a nota do aluno e em seguida realizada a soma da nota à variável 
“media”. E então é validada a expressão “i <= 9” novamente, sendo esta verdadeira, 
o fluxo segue novamente para ser solicitada a próxima nota, a soma desta à variável 
“media” e em seguida a validação da expressão novamente. Assim que a expressão 
retornar false, devido a variável “i” ter o valor > 9, então será realizado o cálculo da 
média, feita a tomada de decisão para saber se o valor da variável “media” é maior igual 
a 7 para então apresentar a mensagem correta, e finalmente listar as notas informadas.
A seguir está nosso algoritmo implementado através de pseudocódigo, utilizando 
o portugol, facilitando o entendimento.
10 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
TABELA 4.6 – PSEUDOCÓDIGO PARA O ALGORITMO DA SOLUÇÃO
Algoritmo calculaMediaAluno
Declara
 i: inteiro
 media: real
 nome: caractere
 vetNotas: vetor [0..9] de real
Inicio
 media ← 0
 Escreva(“Escreva o nome do aluno”)
 Leia(nome)
 para i de 0 ate 9 faca
 Escreva(“Escreva a próxima nota do aluno”)
 Leia( vetNotas[i] )
 media ← media + vetNotas[i]
 fim_para
 media ← media / (i + 1)
 se media >= 7 então
 Escreva(“Aluno ”, nome, “ aprovado”)
 senão
 Escreva(“Aluno ”, nome, “ reprovado”)
 fim_se
 para i de 0 ate 9 faca
 Escreva(“Nota ”, vetNotas[i]) 
 fim_para
Fim
FONTE: O autor 
11
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Agora, analise o código-fonte acima. Esta é a solução para o problema apresentado. 
Perceba o quão importante é um vetor, que neste caso nos auxiliou em armazenar a lista 
de notas do aluno, e não precisamos criar uma variável para cada nota, que resultariam 
em dez variáveis. Ao invés disso, criamos apenas uma variável do tipo vetor. Note 
ainda que, caso tivéssemos criado uma variável para cada nota, teríamos a replicação 
de linhas, uma para cada variável, tanto para atribuir cada nota quanto para, no final, 
listar cada nota que foi informada pelo usuário.
2.4. EXEMPLO PRÁTICO 2
Vamos seguir nosso raciocínio lógico e desenvolver a solução para mais um 
problema através de vetores.
Problema: Implementar um programa que solicite ao usuário quatro marcas de 
carros. Após cada marca informada, deve ser solicitado um modelo da marca. Ambos 
devem ser gravados em listas diferentes para manter a mesma posição nas listas, 
facilitando a leitura. Após o usuário concluir a digitação, devem ser listados cada marca 
e seu modelo, por exemplo “Fiat Palio”, em uma única linha.
TABELA 4.7 – INSTRUÇÕES PARA O ALGORITMO
Início
1.	 Solicitar ao usuário as marcas e modelos, armazenando em listas diferentes.
2.	 Listar todas as marcas com seus modelos, uma marca/modelo por linha
Fim
FONTE: O autor 
Agora que temos as instruções de nosso algoritmo, desenvolvemos o fluxograma, 
apresentado a seguir.12 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
FIGURA 4.5 – FLUXOGRAMA PARA REPRESENTAR O ALGORITMO
FONTE: O autor 
O fluxograma, acima, representa o nosso algoritmo, sendo que inicialmente 
ele inicia em um loop, solicitando ao usuário a primeira marca, após primeira marca 
informada é solicitado um modelo desta marca, e então o fluxo do programa retorna 
para a expressão do loop, que se for ainda verdadeira, isto é, a variável “i” for menor ou 
igual a 3, solicita outra marca e modelo ao usuário novamente. Essa repetição continua 
até a variável “i” obter o valor 4, que então o fluxo é desviado para o próximo loop, em 
que serão listadas as marcas com os modelos, até que novamente a variável “i” tenha 
valor 4, enviando o fluxo do programa para o final.
A seguir está nosso algoritmo implementado através de pseudocódigo, utilizando 
o portugol, facilitando o entendimento.
13
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
TABELA 4.8 – PSEUDOCÓDIGO PARA O ALGORITMO DA SOLUÇÃO
Algoritmo listaMarcaModelos
Declara
 i: inteiro
 vetMarca: vetor [0..3] de caractere
 vetModelo: vetor [0..3] de caractere 
Inicio
 para i de 0 ate 3 faca
 Escreval("Escreva a próxima marca")
 Leia( vetMarca[i] )
 Escreval("Escreva o próximo modelo")
 Leia( vetModelo[i] )
 fim_para
 para i de 0 ate 3 faca
 Escreval("Marca: ", vetMarca[i], " - Modelo: ", vetModelo[i])
 fim_para
Fim
FONTE: O autor
Conforme pode-se observar, nosso algoritmo foi implementado de uma forma 
muito simples graças aos vetores. Neste caso teríamos que criar quatro variáveis para 
marcas e mais quatro para armazenar os modelos.
3. ESTRUTURA BIDIMENSIONAL (MATRIZES)
Estruturas de dados bidimensionais são referenciadas como tabelas, que é o 
termo normalmente utilizado em gerenciamento de banco de dados para a estrutura 
de gravação de dados (MANZANO; OLIVEIRA, 2014). Nesta seção são apresentadas 
as operações de entrada (atribuição de valores), processamento e saídas nas matrizes 
(estruturas bidimensionais) (MANZANO; OLIVEIRA, 2014). Nesta seção, sempre que 
mencionado o termo matriz, entenda como estrutura bidimensional (tabela). As matrizes 
também podem ser chamadas de variáveis indexadas bidimensionais.
3.1. MATRIZ BIDIMENSIONAL
Uma matriz pode ser descrita como uma tabela de valores, isto é, os valores são 
atribuídos entre linhas e colunas, como uma planilha, por exemplo. Para procurar um 
valor em uma matriz, é necessário saber em qual linha e em qual coluna o valor está 
14 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
armazenado, sendo esta a origem da nomenclatura bidimensional (SOUZA et al., 2015). 
Neste sentido, a matriz bidimensional possui duas dimensões, e possui mais de uma 
coluna e mais de uma linha. 
Observe a matriz que está sendo apresentada na Figura 4.6, a qual possui seis 
linhas e seis colunas. Além disso, como está sendo apresentado, a contagem inicia-se 
do zero, isto é, linha 0 e coluna 0, linha 1 e coluna 0 etc.
FIGURA 4.6 – FLUXOGRAMA PARA REPRESENTAR O ALGORITMO
FONTE: O autor 
Observe o exemplo na Figura 4.7 a seguir, o qual é uma tabela de valores ou 
uma matriz. Neste caso, para pegar o valor “Gol”, por exemplo, é necessário saber que 
este se encontra na linha 1 e coluna 1, iniciando pelo zero. Outro exemplo seria o valor 
“Palio”, o qual está armazenado na linha 2 e coluna 1, iniciando a contagem pelo zero.
FIGURA 4.7 – FLUXOGRAMA PARA REPRESENTAR O ALGORITMO
FONTE: O autor
Em quais situações pode ser utilizada uma matriz? Um exemplo seria no algoritmo 
de modelos de veículos, desenvolvido anteriormente, no qual não precisaríamos de dois 
vetores, mas sim de apenas uma matriz com duas colunas, uma seria para a marca e 
outra para o modelo. Facilita ainda mais o trabalho na programação. Para pegar o valor 
de uma matriz, chama-se o nome da variável seguida do número da linha vírgula o 
número da coluna, ambos entre colchetes, por exemplo: matriz[0, 4]. Veja a seguir um 
exemplo para utilização de uma matriz.
15
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
FIGURA 4.7 – FLUXOGRAMA PARA REPRESENTAR O ALGORITMO
TABELA 4.9 – EXEMPLO DE UTILIZAÇÃO DE UMA MATRIZ
Algoritmo "matrizModeloMarca"
 Var
 i: inteiro
 matriz : vetor[0..3, 0..1] de caractere
 Inicio
 para i de 0 ate 3 faca
 Escreval("Informe a marca")
 Leia( matriz[i, 0] )
 
 Escreval("Informe o modelo")
 Leia( matriz[i, 1] )
 Fimpara
 para i de 0 ate 3 faca
 Escreval("Marca ", matriz[i, 0], " - Modelo ", matriz[i, 1])
 fimpara
Fimalgoritmo
FONTE: O autor 
Perceba que no exemplo acima, o programa solicita ao usuário que informe a 
marca, a qual é armazenada na posição 0 (zero) da matriz, e logo em seguida solicita um 
modelo para que o usuário o informe, o qual é armazenado na posição 1 da matriz. No 
final, as marcas, juntamente com os modelos que estão na mesma linha, são impressos na 
tela. Porém, podemos tornar nossa lógica um pouco mais dinâmica, a última repetição, 
que lista as marcas e seus modelos, poderíamos implementar um comando “para” 
interno, assim não precisamos chamar a coluna com valor fixo. Veja como ficou.
16 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
TABELA 4.10 – EXEMPLO DE UTILIZAÇÃO DE UMA MATRIZ
Algoritmo "matrizModeloMarca"
 Var
 i: inteiro
 matriz : vetor[0..3, 0..1] de caractere
 Inicio
 para i de 0 ate 3 faca
 Escreval("Informe a marca")
 Leia( matriz[i, 0] )
 
 Escreval("Informe o modelo")
 Leia( matriz[i, 1] )
 Fimpara
 para i de 0 ate 3 faca
 para j de 0 ate 1 faca
 Escreval("Marca ", matriz[i, j], " - Modelo ", matriz[i, j])
 fimpara
 fimpara
Fimalgoritmo
FONTE: O autor 
3.2. LEITURA DOS DADOS DE UMA MATRIZ
Um exemplo exposto por Manzano e Oliveira (2014) é o caso da leitura de quatro 
notas (colunas da matriz) de oito alunos (linhas da matriz), que neste caso armazena 32 
valores ou elementos. Neste exemplo, citado por Manzano e Oliveira (2014), utiliza-se a 
variável “i” para controle das linhas e a variável “j” para controlar as colunas. Analise 
o diagrama apresentado, que representa o algoritmo.
17
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
FIGURA 4.8 – FLUXOGRAMA PARA LEITURA DOS ELEMENTOS DE UMA 
MATRIZ
FONTE: Manzano e Oliveira (2014)
A inicialização das variáveis “i” e “j” é com 1 neste caso, pois a matriz foi definida 
como de uma até oito linhas e de uma até quatro colunas. O diagrama acima nos mostra 
que a leitura é realizada na primeira linha da primeira coluna. Logo depois é iniciado 
o laço de repetição da variável “i”, controlando os elementos das linhas, e dentro deste 
laço de repetição é realizado um segundo laço de repetição para a variável “j”, a qual 
controla as colunas (MANZANO; OLIVEIRA, 2014).
Ao serem iniciados os valores para o preenchimento da matriz, eles são colocados 
na posição Notas [1, 1], sendo o primeiro valor a linha e o segundo a coluna, então 
informa-se para o primeiro aluno a sua primeira nota. Depois disso, incrementa-se 1 na 
variável “j” (coluna), sendo colocada a posição Notas[1, 2], sendo informada ao aluno 
1 a sua segunda nota (MANZANO; OLIVEIRA, 2014).
Assim que a variável “j” atingir o valor 4, o loop interno acaba, sendo incrementado 
1 na variável “i” que começará a executar a segunda vez o seu loop, ou seja, pegando a 
linha 2 da matriz. Neste caso, inicia-se o loop interno da variável “j” novamente, pegando 
a posição Notas[2, 1], ou seja, linha 2 (aluno) e a coluna 1 (primeira nota). Estas repetições 
acontecem até que a variável “i”,contador de linhas atinja seu número máximo, 4. Veja 
a seguir a implementação deste algoritmo em pseudocódigo.
18 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
TABELA 4.11 – EXEMPLO DE UTILIZAÇÃO DE UMA MATRIZ
Algoritmo "lerElementos"
Var
 i, j : inteiro
 Notas : vetor[1..8, 1..4] de real
Inicio
 para i de 1 ate 8 faca
 para j de 1 ate 4 faca
 Leia ( Notas[i, j] )
 fimpara
 fimpara
Fimalgoritmo
FONTE: O autor 
Este algoritmo funciona jogando o valor inicial para todas as posições, linhas 
e colunas, para zero na inicialização. O programa aguarda o usuário informar, 
sequencialmente, as notas de cada aluno. Assim que digitadas as quatro notas de um 
determinado aluno, inicia-se o próximo aluno, e assim sucessivamente até concluir a 
digitação das quatro notas dos oito alunos. É um algoritmo simples, mas que representa 
a mesma lógica desenvolvida no fluxograma acima. Este algoritmo nos apresenta como 
utilizamos uma matriz.
3.3. EXEMPLO PRÁTICO
Vamos aqui demonstrar uma aplicação prática de uma matriz.
Problema: Implementar um programa que utilize a estrutura de uma matriz 
para armazenar o contato de quatro pessoas, contendo o nome, e-mail e o seu telefone, 
os quais devem ser armazenados em coluna. Neste sentido, cada linha refere-se a uma 
pessoa diferente. No final, listar os dados de cada contato em uma única linha.
TABELA 4.12 – INSTRUÇÕES PARA O ALGORITMO ATUAL
Início
1.	 Solicitar ao usuário o nome do contato e armazenar na coluna zero.
2.	 Solicitar ao usuário o e-mail do contato e armazenar na coluna 1.
3.	 Solicitar ao usuário o telefone do contato e armazenar na coluna 2.
4.	 Listar todos os dados de cada usuário em uma única linha.
Fim
FONTE: O autor
19
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
Agora que desenvolvemos as instruções para a solução do problema atual, segue 
o fluxograma que representa nosso algoritmo.
FIGURA 4.9 – FLUXOGRAMA PARA SOLUÇÃO DO PROBLEMA ATUAL
FONTE: O autor 
Este algoritmo inicia-se com o loop da variável “i”, a qual é inicializada com 
zero, que se refere às linhas de nossa matriz, isto é, cada contato. Logo, um segundo 
loop, interno, para a variável “j” é iniciado, que equivale a cada coluna sendo passada 
na matriz. A cada incremento da variável “j”, é um campo que está sendo solicitado ao 
usuário. Quando a variável “j” estiver com zero, é solicitado o nome; quando estiver 
com 1, é solicitado o e-mail, e quando estiver com 2, é solicitado o telefone. Assim que 
concluir o loop interno, da variável “j”, é incrementado 1 na variável “i”, e realizada 
nova repetição, até que a variável “i” alcance seu valor máximo aceito, que neste caso 
é 4, isto é, quatro contatos a serem armazenados. 
Veja a seguir o algoritmo atual em pseudocódigo.
20 ALGORITMO
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
TABELA 4.13 – PSEUDOCÓDIGO PARA O ALGORITMO ATUAL
Algoritmo "armazenaContatos"
Var
 i, j : inteiro
 auxiliar : caractere
 contato : vetor[0..3, 0..2] de caractere
Inicio
 para i de 0 ate 3 faca
 para j de 0 ate 2 faca
 se j = 0 entao
 auxiliar <- "nome"
 senao
 se j = 1 entao
 auxiliar <- "e-mail"
 senao
 auxiliar <- "telefone"
 fimse
 fimse 
 Escreval("Informe o ", auxiliar)
 Leia ( contato[i, j] )
 fimpara
 fimpara
 
 para i de 0 ate 3 faca
 auxiliar <- ""
 para j de 0 ate 2 faca
 auxiliar <- auxiliar + " " + contato[i, j]
 fimpara
 Escreval(auxiliar)
 fimpara 
 Fimalgoritmo
FONTE: O autor 
Analise a lógica utilizada no código-fonte acima. Conforme representado pelo 
fluxograma, temos dois laços de repetição, um dentro do outro, sendo o mais externo o 
que sinaliza a próxima linha da matriz e o segundo troca a coluna da matriz. Apenas por 
uma questão visual, foi criada a variável “auxiliar”, do tipo caractere, a qual serve para 
receber o nome do campo atual que será solicitado para o usuário. No final do algoritmo, 
quando são listados na tela todos os contatos, a variável “auxiliar” é reutilizada com 
outro propósito, isto é, para serem concatenados todos os campos do contato atual, 
para a seguir ser impressa.
21
Copyright © UNIASSELVI 2016. Todos os direitos reservados.
ALGORITMO
REFERÊNCIAS
MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lógica para desenvolvimento de 
programação de computadores. São Paulo: Érica, 2014.
SOUZA, M. A. F. et al. Algoritmos e lógica de programação: um texto introdutório para a 
engenharia. São Paulo: Cengage Learning, 2015.
Centro Universitário Leonardo da Vinci
Rodovia BR 470, km 71, n° 1.040, Bairro Benedito
Caixa postal n° 191 - CEP: 89.130-000 - lndaial-SC
Home-page: www.uniasselvi.com.br

Continue navegando