Você está na página 1de 23

Algoritmos e Lógica

de Programação
Aula Prática 4

Profa Ms. Adriane Ap. Loper


Algoritmos com
estrutura de dados
aplicados no Visualg
Estruturas de dados

 O que são estruturas de dados?


 Existem diversas maneiras de se organizar os dados em um
computador, cada uma das opções disponíveis é chamada
de estrutura de dados.
 Dentre as estruturas, uma das mais utilizadas é a variável
composta, pois em uma única estrutura é possível
armazenar (organizar) diversos dados, de forma rápida e
eficiente.
 Temos como exemplos : vetores, matrizes e registros.
Variável composta Unidimensional - VETOR

 Um vetor é uma variável composta que se divide em


apenas uma dimensão, ou seja, é como se fosse uma tabela
de uma linha e N colunas (O resultado é o mesmo se
pensarmos em um vetor como uma tabela de N linhas e
uma coluna).
 Na hora de criarmos o vetor devemos informar apenas a
quantidade de colunas que desejamos, além disso,
precisamos de apenas um índice para identificar os
elementos do vetor.
Criar o vetor idade de 3 pessoas: Vetor
Vetor

 Cada elemento do vetor x é localizado pelo seu índice, que


sempre começará pelo valor zero.
 O primeiro valor de qualquer vetor sempre estará no
índice zero.
 O vetor é do tipo inteiro, isso significa que só poderão ser
inseridos valores desse tipo, essa restrição caracteriza a
variável composta como sendo homogênea.
Exemplos Vetores
Resolvendo Vetores
Ex. 01 – Algoritmo que monta vetor de 10 posições
algoritmo "vetor10"
var
i: inteiro
vetor1:vetor[0..9] de inteiro
inicio
para i de 0 ate 9 faca
vetor1[i] <- i+10
fimpara
para i de 0 ate 9 faca
escreva(vetor1[i])
fimpara
fimalgoritmo
Resolvendo Vetores
Ex. 02 – Algoritmo que lê um Vetor com 4 Notas de 3 alunos e vê se eles foram
aprovados ou reprovados
Algoritmo "MediaDe3Alunose4provas"
var
nomes: vetor [1..3] de caractere
notas: vetor [1..3,1..4] de real
medias: vetor [1..3] de real
contadorLoop1, contadorLoop2: inteiro
inicio
//Leitura dos nomes e as notas de cada aluno
PARA contadorLoop1 DE 1 ATE 3 FACA
ESCREVA("Digite o nome do aluno(a) número ", contadorLoop1, " de 3: ")
LEIA(nomes[contadorLoop1])
Resolvendo Vetores
Ex. 02 – Algoritmo que lê um Vetor com 4 Notas de 3 alunos e vê se eles foram
aprovados ou reprovados
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
Resolvendo Vetores
Ex. 02 – Algoritmo que lê um Vetor com 4 Notas de 3 alunos e vê se eles foram
aprovados ou reprovados
//APRESENTAÇÃO DOS RESULTADOS
PARA contadorLoop1 DE 1 ATE 3 FACA
SE medias[contadorLoop1] >= 3 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
Variável composta multidimensional - Matriz
 Uma matriz é uma variável composta que se divide em
duas dimensões, ou seja, é “uma tabela” de M linhas e N
colunas .
 Na hora de criarmos uma matriz, devemos informar a
quantidade de linhas e de colunas que desejamos,
consequentemente, precisamos de dois índices para Fonte: Artero(2018, pg.97)

identificar os elementos da matriz.


 Declaração de
 Matriz
Vetores x Matrizes
Matrizes
3) Montagem de uma matriz 3x3
algoritmo "Matriz3x3"
var
i,j: inteiro
matriz:vetor[0..2,0..2] de inteiro
inicio
para i de 0 ate 2 faca
para j de 0 ate 2 faca
matriz[i,j] <- i+j
fimpara
Matrizes
3) Montagem de uma matriz 3x3
fimpara
escreval(" --------------")
para i de 0 ate 2 faca
para j de 0 ate 2 faca
escreva(" | ",matriz[i,j])
fimpara
escreval(" | ")
escreval(" --------------")
fimpara
fimalgoritmo
Matrizes
4) VENDA DE PASSAGENS
algoritmo "PASSAGENS"
var
polt1, polt2: vetor[1..12,1..2] de inteiro
cont1, cont2, num1, num2, op, poltVendida: inteiro
inicio
//Preenche a primeira fileira;
num1 <- 1
para cont1 de 1 ate 12 faca
para cont2 de 1 ate 2 faca
polt1[cont1,cont2] <- num1
num1 <- num1+1
fimpara
num1 <- num1+2
fimpara
Matrizes

4) VENDA DE PASSAGENS
//Completando os lugares da segunda fileira
num2 <- 3
para cont1 de 1 ate 12 faca
para cont2 de 1 ate 2 faca
polt2[cont1,cont2] <- num2
num2 <- num2+1
fimpara
num2 <- num2+2
fimpara
Matrizes
//Depois de preenchidas as matrizes começa o menu
escreval("Escolha uma opção do menu:")
escreval("1 - Mostrar poltronas")
escreval("2 - Vender passagem")
escreval("3 - Limpar") //Adicionei um limpar só para melhorar
visualização
escreval("4 - Sair")
leia(op)
enquanto op <> 4 faca
//Listagem de poltronas
se(op = 1)então
para cont1 de 1 ate 12 faca
para cont2 de 1 ate 2 faca
escreva(polt1[cont1,cont2])
fimpara
Matrizes
escreva(" ---- ")
para cont2 de 1 ate 2 faca
escreva(polt2[cont1,cont2])
fimpara
escreval("")
fimpara
fimse
//Venda de poltrona
se(op = 2)então
escreval("Digite o número da poltrona:")
leia(poltVendida)
para cont1 de 1 ate 12 faca
para cont2 de 1 ate 2 faca
Matrizes
se(polt1[cont1,cont2] = poltVendida)então
polt1[cont1,cont2] <- 0
fimse
se(polt2[cont1,cont2] = poltVendida)então
polt2[cont1,cont2] <- 0
fimse
fimpara
fimpara
fimse
se(op = 3)então
limpatela
fimse

//Refazendo as perguntas
escreval("Escolha uma opção do menu:")
escreval("1 - Mostrar poltronas")
escreval("2 - Vender passagem")
Matrizes

//Refazendo as perguntas
escreval("Escolha uma opção do menu:")
escreval("1 - Mostrar poltronas")
escreval("2 - Vender passagem")
escreval("3 - Limpar")
escreval("4 - Sair")
leia(op)
fimenquanto
escreval("Muito obrigado por utilizar nosso sistema!")
fimalgoritmo
Relatório
Registre suas observações em um relatório a ser entregue no
fim da prática.
Boa atividade a todos!
Obrigada!

Você também pode gostar