Baixe o app para aproveitar ainda mais
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
Compartilhar