Buscar

Algoritmos I (Unidade Curricular 5) - Positivo Tecnologia em Sistemas para Internet

Prévia do material em texto

Competências da Aula
• C5 - (N) - Identificar e aplicar estruturas 
homogêneas de armazenamento com uma 
dimensão em problemas algorítmicos.
Vetores
Introdução
• Até agora utilizamos variáveis definidas a partir de
tipos de dados básicos. Como já foi visto, uma
variável só é capaz de armazenar um dado de cada
vez.
• No entanto existem situações, em que há
necessidade de armazenar uma grande quantidade
de dados na memória ao mesmo tempo, tornando
inviável a criação de tantas variáveis.
Vetores
Introdução
• Por exemplo poderíamos ter uma situação que 
exigisse o manuseio de 100, 500, 1000 dados, o 
que tornaria inviável a criação de uma quantidade 
tão grande de variáveis. 
• É evidente que precisamos de outra maneira para 
referenciar tais coleções de dados similares.
• Para estes casos, podemos criar variáveis a partir 
de tipos de dados estruturados.
Vetores
Introdução
• Um tipo estruturado é aquele formado pela junção
ou combinação de tipos básicos, definindo apenas
uma variável que o represente.
• Para tanto, foi criado um novo conceito para
alocação de memória sendo, desta forma, também
criado uma nova maneira de definir variáveis, a
qual foi denominada de variável indexada.
Vetores
Introdução
• Uma variável indexada corresponde a uma
sequencia de posições de memória, a qual
daremos um único nome, sendo que cada uma
destas pode ser acessada através do que
conhecemos por índice.
• O índice corresponde normalmente a um valor
numérico.
Vetores
Introdução
• Cada uma das posições de memória de uma
variável indexada pode receber valores no
decorrer do algoritmo como se fosse uma
variável comum, a única diferença reside na
sintaxe de utilização desta variável.
Vetores Unidimensional
• Um vetor (também chamado de array) é uma
estrutura de dados composta por uma quantidade
determinada de elementos de um mesmo tipo
primitivo.
• Por ter como característica armazenar dados que
seguem um mesmo tipo básico, dizemos que os
vetores são estruturas de dados homogêneas.
Vetores Unidimensional
• Quando estudamos o conceito de variável,
dissemos que ela funciona como uma caixa na
memória do computador, capaz de armazenar um
único dado.
• Por analogia, podemos imaginar um vetor como
um conjunto de variáveis agrupadas sob um
mesmo nome, todas de um mesmo tipo.
Vetores Unidimensional
• O vetor passa a ser um conjunto de
caixinhas, contendo dados de mesma
natureza e que estejam agrupados
OU
Vetor Unidimensional
• Abaixo segue a forma de declaração de um 
vetor.
• Os colchetes indicam o intervalo que será 
utilizado para os índices de cada posição do 
vetor.
• Sintaxe:
<var>: vetor[inicio..fim] de <tipo>;
Vetor Unidimensional
• Exemplo: Declarando um vetor para
armazenar 500 números inteiros
numeros: vetor[1..500] de inteiro;
• A variável é uma só, no nosso caso
declarada como numeros, mas é capaz
de armazenar 500 valores inteiros
diferentes.
Vetor Unidimensional
• Cada posição de um vetor é referenciada 
pela seguinte sintaxe:
<nome_vetor>[<posição>]
Exemplo
Preco[5]
Nome do Posição em que 
vetor Armazenado 
Vetor Unidimensional
• Declaração: 
<var>: vetor[<ini>..<fim>] de <tipo>; 
Ex: armazenar os 100 preços dos produtos de 
uma loja:
Preco : vetor[1..100] de real;
Posição para referencia
Preco[59];
• Acesso a posição (gravação/leitura)
Preco[1]  20.0;
Preco[5]  35.39;
temp  Preco[4];
Preco[7] temp;
* Não sendo feito atribuição às outras 
posições, elas permanecem zeradas.
Vetor Unidimensional
2 6 8 3 10 9 1 21 33 14
1 2 3 4 5 6 7 8 9 10
As varáveis X=2 e Y=4, escreva o valor
Correspondente à solicitação.
a)V[X + 1]
b)V[X + 2]
e)V[X * 1]
i)V[X + y]
n)V[V[1]* V[4]]
m)V[V[V[7]]]
h)V[V[X+Y]]
Vetor Unidimensional
Algoritmo exemplo;
variaveis
numeros: vetor[1..500] de inteiro;
Inicio
numeros[11] 4;
numeros[10]  120;
leia(numeros[10]);
escreva(numeros[10] * numeros[11]);
fim.
• Exemplo: Declarando um vetor para
armazenar 500 números inteiros
Exercício
• Uma prova de algoritmos foi feita por um grupo
de 20 alunos. Faça um algoritmo para ler as notas
obtidas pelos alunos, armazene as notas em um
vetor e calcular a média da turma e após
armazenar todas as notas apresente na tela a
nota de todos os alunos.
algoritmo Média;
Var
real: notas[20];
media_T, Soma_T: real;
i : inteiro;
inicio
para(i=0; i<20; i++) faca
escreval(“favor informar a nota do aluno”, i,”:”); 
leia(notas[i]);
Soma_T  soma_T + notas[i];
fimpara
para(i=0; i<20; i++) faca
escreval(“A nota do aluno”, i “é”, notas[i]);
fimpara
media_T Soma_T/20; 
escreval (“A média da turma é:” media_T);
Fim.
Exercício
• Uma prova de algoritmos foi feita por um
grupo de 20 alunos. Faça um algoritmo para
ler as notas obtidas pelos alunos, e depois
exibir um relatório das notas iguais ou
superiores a 7,5. No final escreva a
quantidade de notas iguais ou superiores a
7,5.
algoritmo notas_boas;
variaveis
real: notas[20]
i, cont : inteiro;
\\ i é meu controle do número de alunos
\\ cont é minha variável que armazena o total de alunos com 
nota maior que 7,5
inicio
para(i=0; i<20; i++) faca
escreval(“Favor informar a nota do aluno”, i,”:”); 
leia(notas[i]);
fimpara
cont  0;//zero o contador antes de começar
escreva (“VERIFICAÇAO DAS NOTAS ACIMA DA MÉDIA”);
para(i=0; i<20; i++) faca
Se notas[i] >= 7.5 entao
escreval(notas[i]);
cont  cont + 1;
fimse;
fimpara;
escreva (“A quantidade de Notas Superiores:”,cont);
Fim. 
Exercícios
• Faça um algoritmo para gerar um vetor de 30 
posições, onde cada elemento corresponde ao 
quadrado de sua posição. Escreva depois o 
vetor resultante.
algoritmo carrega_vetor
variaveis
numeros : vetor[1..30] de inteiro;
i : inteiro;
inicio
para(i=1; i<=30; i++) faca
numeros[i]  i * i;
fimpara
para(i=1; i<=30; i++) faca
escreval (numeros[i]);
fimpara
fim.
Solução
Exercício
• Em um concurso público, um candidato
respondeu a uma avaliação com 80 questão
de múltipla escolha, onde cada questão tinha
respostas de A até D. Faça um algoritmo para
ler o gabarito da prova e as respostas do
aluno, informando quantas questões ele
acertou.
algoritmo concurso;
variaveis
caracter: gabarito[80], prova[80];
inteiro: acertos, i 
inicio
acertos  0;
para(i=0; i<80; i++) faca
leia(gabarito[i]);
fimpara
para(i=0; i<80; i++) faca
leia(prova[i]);
fimpara
para(i=0; i<80; i++) faca
se (prova[i] == gabarito[i]) entao
acertos  acertos + 1;
fim-se;
fimpara
escreva(“Você acertou”, acertos, “questões”);
fim.
Exercício
• Faça um programa para ler uma sequência de 
40 notas e mostrar quais as notas são maiores 
que a média (a média é referente a média das 40 notas 
lidas) . 
algoritmo nota_maior_que_media;
variaveis 
notas : vetor[1..40] de real;
i: inteiro;
soma, media : real;
inicio
soma  0;
para(i=1; i<=40; i++) faca
leia(notas[i]);
soma  soma + notas[i];
fimpara
media  soma/40;
escreva(“As notas acima da média são:”);
para i de 1 ate 40 faca
se notas[i] > media entao
escreva(notas[i]);
fim-se;
fimpara
fim.
Exercício
1) Faça um algoritmo que recebe 5 valores em R$
informados pelo usuário e armazene-os em um
vetor. Depois, leia esse vetor mostrando o valor
armazenado multiplicado por 2 (dois).
2) Faça um algoritmo que cadastra os 50 alunos
(código de matrícula) dos alunos de um curso em
um vetor. Posteriormente, dado uma matrícula
informada pelo cliente, verifique se o aluno está
matriculado no curso.

Continue navegando