Buscar

AP_Modulo5_Vetores

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 50 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 50 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 50 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

Algoritmos e Programação
Prof. Dr. Éldman de Oliveira Nunes 1
Organização
Prof. Dr. Éldman de Oliveira Nunes 2
Algoritmos e Programação
Prof. Dr. Éldman de Oliveira Nunes 3
Organização
Prof. Dr. Éldman de Oliveira Nunes 4
Vetores
Prof. Dr. Éldman de Oliveira Nunes 5
Vetores
Prof. Dr. Éldman de Oliveira Nunes 6
Vetores
Prof. Dr. Éldman de Oliveira Nunes 7
Vetor
Declaração de Vetores
Prof. Dr. Éldman de Oliveira Nunes 8
Vetor 
A sintaxe básica para declaração de um vetor é:
<lista-de-variáveis>: vetor "["<lista-de-intervalos>"]" de <tipo-de-dado>
var vet: vetor [1..6] de real
vet[1] vet[2] vet[3] vet[4] vet[5] vet[6]
Declaração de Vetores
Prof. Dr. Éldman de Oliveira Nunes 9
Vetor 
Para referenciar o conteúdo de uma variável simples, basta indicar o
nome que foi definido.
Para o caso dos vetores, como ele armazena diversos valores ao
mesmo tempo, somente um nome não é suficiente para referenciar
um dado no seu interior.
Além de um nome, é preciso indicar a posição no vetor onde está o
dado que queremos utilizar, através de um índice.
<nomevetor> [<posição>]
Declaração de Vetores
Prof. Dr. Éldman de Oliveira Nunes 10
Vetor 
Se quiséssemos, por exemplo, guardar o valor R$ 32,50 na 2ª posição
e o valor R$ 40,00 na 4ªposição, usaríamos os comandos:
PRECO[2] <- 32.50
PRECO[4] <- 40.00
PRECO[1] PRECO[2] PRECO[3] PRECO[4] PRECO[5] PRECO[6]
32.50 40.00
Declaração de Vetores
Prof. Dr. Éldman de Oliveira Nunes 11
Vetor 
Não sendo feita nenhuma atribuição às outras posições, o valor delas
permanece indefinido, e o "chinês" seria assim:
PRECO[1] PRECO[2] PRECO[3] PRECO[4] PRECO[5] PRECO[6]
? 32.50 ? 40.00 ? ?
Declaração de Vetores
Prof. Dr. Éldman de Oliveira Nunes 12
Vetor 
Observe que um comando do tipo:
PRECO[7]<- 65.00
É um erro, pois é uma tentativa de armazenar um dado em um local
que não foi declarado para o vetor.
O programador deve seguir uma lógica que impeça este tipo de
situação, em que o índice do vetor está fora da faixa que foi definida.
Declaração de Vetores
Prof. Dr. Éldman de Oliveira Nunes 13
Vetor 
Fazendo a combinação correta nome + índice podemos escrever
comandos que manipulem os elementos do vetor, como nos exemplos
a seguir:
leia PRECO[3] 
escreva PRECO[99]
AUX <- PRECO[2] + PRECO[4] 
Organização
Prof. Dr. Éldman de Oliveira Nunes 14
Prof. Dr. Éldman de Oliveira Nunes 15
Exemplo 1: Uma prova de química foi feita por um grupo de 10 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 seguinte formato:
• Este exercício é uma aplicação simples de vetores.
• Uma repetição está embutida no problema, pois são 10 as notas a serem
lidas.
• Após a leitura, o computador deve exibir uma lista das notas que são iguais
ou superiores a 7.5.
• Se fôssemos usar uma variável de leitura simples dentro de uma repetição,
cada valor seria Sobreposto pelo seguinte;
• precisamos, portanto, ter as 10 notas armazenadas ao mesmo tempo na
memória, para depois decidir quais serão impressas.
• Como há uma quantidade fixa de iterações na leitura, podemos fazê-Ia
usando o comando Para.
Prof. Dr. Éldman de Oliveira Nunes 16
Exemplo 1: Uma prova de química 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 seguinte formato:
Prof. Dr. Éldman de Oliveira Nunes 17
Exemplo 2: Modifique o algoritmo anterior, de modo a escrever a quantidade de
notas boas obtidas pelos alunos.
• A leitura permanece igual, isto é, o usuário continua fornecendo 10 notas.
• Na impressão, entretanto, precisamos de outra variável que armazene
quantas notas boas são impressas.
• Na verdade, esta nova variável também é uma contadora,
mas que será incrementada somente se a nota for maior ou igual a 7.5.
Prof. Dr. Éldman de Oliveira Nunes 18
Exemplo 2: Modifique o algoritmo anterior, de modo a escrever a quantidade de
notas boas obtidas pelos alunos.
Prof. Dr. Éldman de Oliveira Nunes 19
Exemplo 3: Faça um algoritmo para ler no máximo 30 números reais informados
pelo usuário, e exibir depois a média destes números. Considere que o valor -99
encerra a entrada dos dados.
• Vamos criar um vetor de 30 posições para armazenar os números, mas como
o usuário não necessariamente vai fornecer 30, algumas posições podem
não ser utilizadas.
• Isto não é problema, desde que se saiba quantos números foram guardados
no vetor.
• A leitura dos números agora não pode ser feita com o comando Para, pois
não sabemos quantas vezes haverá repetição.
• Mas sabemos que o laço de leitura ocorre quando o usuário fornece um
número diferente de -99, e a quantidade de valores ainda é compatível com
o tamanho do vetor.
• Além disto, o valor -99 é um código de término da leitura (um sinalizador), e
não deve ser armazenado no vetor.
Prof. Dr. Éldman de Oliveira Nunes 20
Exemplo 3: Faça um algoritmo para ler no máximo 30 números reais informados
pelo usuário, e exibir depois a média destes números. Considere que o valor -99
encerra a entrada dos dados.
Prof. Dr. Éldman de Oliveira Nunes 21
Exemplo 4: Num concurso público, um candidato respondeu a uma avaliação
com 80 questões de múltipla escolha, onde cada questão tinha respostas de A
até D. Fazer um algoritmo para ler o gabarito da prova e as respostas do aluno,
informando quantas questões ele acertou.
• Precisamos armazenar 80 respostas referentes ao gabarito oficial, e mais
80 referentes às respostas do candidato.
• Toda vez que uma letra armazenada em uma posição do gabarito for igual
à letra da mesma posição do vetor de respostas, significa que houve um
acerto a ser contabilizado.
• Para descobrir quantas questões ele acertou, vamos usar uma contadora
ACERTOS dentro de um módulo, cuja função é percorrer o vetor para
descobrir os acertos.
Prof. Dr. Éldman de Oliveira Nunes 22
Exemplo 4: Num concurso público, um candidato respondeu a uma avaliação
com 80 questões de múltipla escolha, onde cada questão tinha respostas de A
até D. Fazer um algoritmo para ler o gabarito da prova e as respostas do aluno,
informando quantas questões ele acertou.
• Com o novo laço, comparamos as letras do gabarito e da resposta na
mesma posição.
• Achando uma igualdade, a variável ACERTOS é incrementada. Veja um
exemplo de comparação:
1 2 3 ... 79 80
B C C A C
1 2 3 ... 79 80
B C A A B
GABARITO
ACERTOS
Prof. Dr. Éldman de Oliveira Nunes 23
Exemplo 4: Num concurso público, um candidato respondeu a uma avaliação
com 80 questões de múltipla escolha, onde cada questão tinha respostas de A
até D. Fazer um algoritmo para ler o gabarito da prova e as respostas do aluno,
informando quantas questões ele acertou.
Prof. Dr. Éldman de Oliveira Nunes 24
Exemplo 4: Num concurso público, um candidato respondeu a uma avaliação
com 80 questões de múltipla escolha, onde cada questão tinha respostas de A
até D. Fazer um algoritmo para ler o gabarito da prova e as respostas do aluno,
informando quantas questões ele acertou.
Prof. Dr. Éldman de Oliveira Nunes 25
Exemplo 4: Num concurso público, um candidato respondeu a uma avaliação
com 80 questões de múltipla escolha, onde cada questão tinha respostas de A
até D. Fazer um algoritmo para ler o gabarito da prova e as respostas do aluno,
informando quantas questões ele acertou.
Prof. Dr. Éldman de Oliveira Nunes 26
1) Faça um algoritmo para gerar um vetor de 30 posições, onde cada elemento
corresponde ao quadrado de sua posição. Imprima depois o vetor resultante.
Solução
Prof. Dr. Éldman de Oliveira Nunes 27
1) Faça um algoritmopara gerar um vetor de 30 posições, onde cada elemento
corresponde ao quadrado de sua posição. Imprima depois o vetor resultante.
Solução
Prof. Dr. Éldman de Oliveira Nunes 28
2) Ler 20 números inteiros e depois imprimi-Ios em ordem inversa.
Solução
Prof. Dr. Éldman de Oliveira Nunes 29
2) Ler 20 números inteiros e depois imprimi-Ios em ordem inversa.
Solução
Prof. Dr. Éldman de Oliveira Nunes 30
2) Ler 20 números inteiros e depois imprimi-Ios em ordem inversa.
Solução
Prof. Dr. Éldman de Oliveira Nunes 31
3) Modifique o exercício anterior, de modo que haja dois vetores, o original e o
invertido. Imprima os vetores lado a lado no seguinte formato:
Solução
1 15 25 
2 18 32 
...
19 32 18 
20 25 15 
Prof. Dr. Éldman de Oliveira Nunes 32
3) Modifique o exercício anterior, de modo que haja dois vetores, o original e o
invertido. Imprima os vetores lado a lado no seguinte formato:
Solução
Prof. Dr. Éldman de Oliveira Nunes 33
4) Ler 30 números reais em um vetor e depois exibir os números localizados nas
posições ímpares.
Solução
Prof. Dr. Éldman de Oliveira Nunes 34
4) Ler 30 números reais em um vetor e depois exibir os números localizados nas
posições ímpares.
Solução
Prof. Dr. Éldman de Oliveira Nunes 35
5) Ler 50 valores reais e armazenar em um vetor. Modifique o vetor de modo que
OS valores das posições ímpares sejam aumentados em 5%, e os das posições
pares sejam aumentados em 2%. Imprima depois o vetor resultante.
Solução
Prof. Dr. Éldman de Oliveira Nunes 36
5) Ler 50 valores reais e armazenar em um vetor. Modifique o vetor de modo que
OS valores das posições ímpares sejam aumentados em 5%, e os das posições
pares sejam aumentados em 2%. Imprima depois o vetor resultante.
Solução
Prof. Dr. Éldman de Oliveira Nunes 37
5) Ler 50 valores reais e armazenar em um vetor. Modifique o vetor de modo que
OS valores das posições ímpares sejam aumentados em 5%, e os das posições
pares sejam aumentados em 2%. Imprima depois o vetor resultante.
Solução
Prof. Dr. Éldman de Oliveira Nunes 38
6) Faça um algoritmo para criar um vetor real de 20 posições: as 10 primeiras são
números informados pelo usuário, e as 10 seguintes são os mesmos números em
ordem inversa.
Solução
Prof. Dr. Éldman de Oliveira Nunes 39
6) Faça um algoritmo para criar um vetor real de 20 posições: as 10 primeiras são
números informados pelo usuário, e as 10 seguintes são os mesmos números em
ordem inversa.
Solução
Prof. Dr. Éldman de Oliveira Nunes 40
7) Ler dois vetores de números inteiros, cada um com 10 posições. Crie um
terceiro vetor onde cada valor é a soma dos valores contidos nas posições
respectivas dos vetores originais. Imprima os vetores lado a lado.
Solução
2 3 5 
2 4 6 
...
10 12 22 
8 12 20 
Prof. Dr. Éldman de Oliveira Nunes 41
7) Ler dois vetores de números inteiros, cada um com 10 posições. Crie um
terceiro vetor onde cada valor é a soma dos valores contidos nas posições
respectivas dos vetores originais. Imprima os vetores lado a lado.
Solução
Prof. Dr. Éldman de Oliveira Nunes 42
7) Ler dois vetores de números inteiros, cada um com 10 posições. Crie um
terceiro vetor onde cada valor é a soma dos valores contidos nas posições
respectivas dos vetores originais. Imprima os vetores lado a lado.
Solução
Prof. Dr. Éldman de Oliveira Nunes 43
8) Construa um algoritmo para ler dois vetores reais de 10 posições, e depois
criar um terceiro vetor cujo conteúdo de cada posição é: 1, se o número
armazenado em uma posição do 1º vetor é o mesmo armazenado na posição
respectiva do 2º, e 0, caso contrário.
Solução
Prof. Dr. Éldman de Oliveira Nunes 44
8) Construa um algoritmo para ler dois vetores reais de 10 posições, e depois
criar um terceiro vetor cujo conteúdo de cada posição é: 1, se o número
armazenado em uma posição do 1º vetor é o mesmo armazenado na posição
respectiva do 2º, e 0, caso contrário.
Solução
Prof. Dr. Éldman de Oliveira Nunes 45
8) Construa um algoritmo para ler dois vetores reais de 10 posições, e depois
criar um terceiro vetor cujo conteúdo de cada posição é: 1, se o número
armazenado em uma posição do 1º vetor é o mesmo armazenado na posição
respectiva do 2º, e 0, caso contrário.
Solução
Prof. Dr. Éldman de Oliveira Nunes 46
9) Mostre o resultado final impresso pelos algoritmos a seguir; use o "método
chinês“. Explique porque o resultado é diferente.
Solução
Prof. Dr. Éldman de Oliveira Nunes 47
10) Crie um vetor de 10 elementos onde cada dado é a letra "P" ou "I",
dependendo da sua posição ser par ou ímpar. Imprima depois o vetor.
Solução
Prof. Dr. Éldman de Oliveira Nunes 48
10) Crie um vetor de 10 elementos onde cada dado é a letra "P" ou "I",
dependendo da sua posição ser par ou ímpar. Imprima depois o vetor.
Solução
Organização
Prof. Dr. Éldman de Oliveira Nunes 49
APOIO INFORMÁTICA (Valença - Rj). VisuAlg. 2015. Disponível em:
<http://www.apoioinformatica.inf.br/produtos/visualg>. Acesso em: 10 ago. 2015.
NUNES, Eldman de Oliveira. Ambiente Virtual de Aprendizagem. 2015. Disponível em:
<disciplinas.eldman.com.br>. Acesso em: 10 ago. 2015.
VILARIM, Gilvan. Algoritmos: Programação para Iniciantes. 2. ed. Rio de Janeiro: Ciência
Moderna, 2004. 270 p.
Bibliografia
Prof. Dr. Éldman de Oliveira Nunes 50

Continue navegando