• Nenhum resultado encontrado

Lista5

N/A
N/A
Protected

Academic year: 2021

Share "Lista5"

Copied!
5
0
0

Texto

(1)

5ª LISTA DE EXERCÍCIOS VETORES

Disciplina: PC-I

Exercício 1: Construa um programa que coloque em um vetor os 10 primeiros valores da seqüência de Fibonacci. Dica: a seqüência de Fibonacci é definida pela seguinte fórmula recursiva:

     − + − = = = c.c. ), 2 ( ) 1 ( 1 se , 1 0 se , 1 ) ( n f n f n n n f

Exercício 2: Construa um programa que coloque em um vetor os 10 primeiros valores de uma progressão aritmética cuja fórmula é dada por: an =a1+(n−1)q. O programa deve solicitar os valores a1 e q para o usuário.

Exercício 3: Construa um programa que coloque em um vetor os 10 primeiros valores de uma progressão geométrica cuja fórmula é dada por: 1

1

= n

n aq

a . O

programa deve solicitar os valores a1 e q para o usuário.

Exercício 4: Construa um programa que coloque em um vetor os 10 primeiros valores da soma de uma progressão geométrica cuja fórmula é dada por:

2 / ) ( 1 n

n n a a

S = + . O programa deve solicitar o valor a1 e q para o usuário.

Exercício 5: Construa um programa que coloque em um vetor os 10 primeiros valores da soma de uma progressão geométrica cuja fórmula é dada por:

1 ) 1 ( 1 1 − − = − q q a S n

n . O programa deve solicitar os valores a1 e q para o usuário.

Exercício 6: Construa um programa que coloque em um vetor os 10 primeiros valores da função fatorial. Por exemplo, o elemento v[0] deve conter o fatorial de 0, o elemento v[1] o fatorial de 1 e assim por diante. Para calcular o valor do fatorial de cada número é útil empregar a seguinte definição:

   = = . . , 1 0 n , 0 ! c c se n

Exercício 7: Construa um programa que coloque em um vetor os 10 primeiros valores das sucessivas aproximações do valor de π utilizando a seguinte fórmula:

      + − + − + − = ... 11 1 9 1 7 1 5 1 3 1 1 4 π

(2)

Assim, o elemento v[0] deve conter apenas o primeiro termo da seqüência que aproxima o valor de π, ou seja, o valor 4. O elemento v[1] deve conter o resultado de 4-4/3 e assim por diante até o décimo elemento.

Exercício 8: O resultado k do produto interno de dois vetores v e t de dimensões 1 x n é calculado através da seguinte fórmula:

= >= =< n i i it v t v k 1 , . Escreva um

trecho de código que calcula o produto interno de dois vetores com n elementos. Exercício 9: A distância de Hamming fornece o número de posições de dois vetores binários que apresentam valores diferentes. Por exemplo, sejam os vetores v e t de tamanho 10: Valor 1 0 1 0 0 0 0 0 0 0 Índice v[0] v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] v[8] Comparação ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ Valor 1 1 0 0 1 0 1 0 0 0 Índice t[0] t[1] t[2] t[3] t[4] t[5] t[6] t[7] t[8] t[9] Diferença 0 1 1 0 1 0 1 0 0 0

Para os valores dos vetores binários v e t apresentados acima a distância de Hamming é igual a quatro, pois os elementos v[1], v[2], v[4] e v[6] são diferentes (ou seja, quatro componentes dos vetores diferem entre si). Construa um trecho de código que fornece a distância de Hamming para dois vetores binários v e t de tamanho n.

Exercício 10: Construir um programa que o simula 100 lançamentos de um dado de 6 faces e apresenta em um histograma o número de vezes que cada face saiu. Dica: Você irá precisar das funções srand(time(0)), rand() e a biblioteca <time.h>. Exercício 11: Generalize o Exercício 10 e construa um programa que pede para o usuário inserir o número de lançamentos e o número de faces que o dado possui. Apresente os resultados obtidos apenas mostrando o número de vezes que cada face foi sorteada.

Exercício 12: Construa aleatoriamente dois vetores binários v e t de tamanho n (especificado pelo usuário) e depois forneça o valor da distância de Hamming. Exercício 13: Uma seqüência de números gerados aleatoriamente para um dado de 6 faces é considerada adequada se qualquer valor não aparecer mais do que 2 lançamentos sucessivos. Por exemplo:

Seq. 1→ 2 1 3 1 4 1 5 2 1

(3)

A Seq. 1 é considerada apesar do número 1 aparecer mais de uma vez, pois ele não aparece em mais de 2 lançamentos sucessivos. A Seq. 2 não é considerada adequada, pois o valor 3 aparece em mais de 2 lançamentos sucessivos. Construa um programa que verifica se uma seqüência aleatória é adequada ou não para a simulação de 100 lançamentos de um dado de 6 faces.

Exercício 14: Generalize o Exercício 13 e crie um programa que pede para o usuário o número de lançamentos a serem realizados, o número de faces do dado e o número máximo de vezes que um valor pode aparecer sucessivamente e ainda assim a seqüência ser considerada adequada.

Exercício 15: Criar um programa que gera aleatoriamente os valores das notas de uma turma com 70 alunos e depois fornece a média, a maior e a menor nota e um histograma com a distribuição das notas.

Exercício 16: Criar um programa que gera aleatoriamente os valores das notas de uma turma com 70 alunos e depois ordena as notas pelo Bubble Sort Simplificado. O Bubble Sort Simplificado consiste em ordenar em ordem crescente os elementos de um vetor. Para tanto, os valores maiores “afundam” (submergem) para a parte de baixo do vetor. O Bubble Sort Simplificado varre (n-1) vezes todo o vetor, comparando os elementos dois a dois, (n-1) vezes. A cada varredura, se um par esta em ordem crescente, nada é feito. Caso contrário, os elementos no vetor são permutados. Um exemplo de execução é dado por:

Vetor inicial: 8 5 1 Varredura 1: Comparacao 1: 8 5 1 5 8 1 Comparação 2: 5 8 1 5 1 8 Varredura 2: Comparacao 1: 5 1 8 1 5 8 Comparação 2: 1 5 8 1 5 8

Exercício 17: Criar um programa que gera aleatoriamente os valores das notas de uma turma com 70 alunos e depois ordena as notas pelo Bubble Sort Aperfeiçoado. O consiste em Bubble Sort Aperfeiçoado em varrer (n-1) vezes todo o vetor, comparando os elementos dois a dois, (n-i-1) vezes, onde i é o número de varreduras. Um exemplo de execução é dado por:

Vetor inicial: 8 5 1 Varredura 1: Comparacao 1: 8 5 1 5 8 1 Comparação 2: 5 8 1 5 1 8 Varredura 2: Comparacao 1: 5 1 8 1 5 8

(4)

Exercício 18: Criar um programa que gera aleatoriamente os valores das notas de uma turma com 70 alunos e depois ordena as notas pelo Bubble Sort Simplificado Invertido. O Bubble Sort Simplificado Invertido consiste em ordenar em ordem decrescente os elementos de um vetor, varrendo (n-1) vezes todo o vetor, e em cada varredura são realizadas (n-1) comparações de elementos dois a dois. Um exemplo de execução é dado por:

Vetor inicial: 1 5 8 Varredura 1: Comparacao 1: 1 5 8 1 8 5 Comparação 2: 1 8 5 8 1 5 Varredura 2: Comparacao 1: 8 1 5 8 5 1 Comparação 2: 8 5 1 8 5 1

Exercício 19: Criar um programa que gera aleatoriamente os valores das notas de uma turma com 70 alunos e depois ordena as notas pelo Bubble Sort Invertido Aperfeiçoado. O Bubble Sort Invertido Aperfeiçoado consiste em varrer (n-1) vezes todo o vetor, comparando os elementos dois a dois, (n-i-(n-1) vezes, onde i é o número de varreduras. Um exemplo de execução é dado por:

Vetor inicial: 1 5 8 Varredura 1: Comparacao 1: 1 5 8 1 8 5 Comparação 2: 1 8 5 8 1 5 Varredura 2: Comparacao 1: 8 1 5 8 5 1

Exercício 20: Criar um programa que gera aleatoriamente 70 valores e depois solicita ao usuário uma chave de pesquisa. De posse da chave de pesquisa é aplicada uma Pesquisa Linear para determinar se a chave de pesquisa existe, e neste caso fornecendo o índice do vetor onde ela está localizada, ou não, neste caso retornando o valor -1.

Exercício 21: Criar um programa que gera aleatoriamente 70 valores e depois solicita ao usuário uma chave de pesquisa. De posse da chave de pesquisa é aplicada uma Pesquisa Binária para determinar se a chave de pesquisa existe, e neste caso fornecendo o índice do vetor onde ela está localizada, ou não, neste caso retornando o valor -1. Observe que neste caso, é necessário empregar um método que realize em ordem crescente os valores do vetor (tal como o Bubble Sort Simplificado ou Aperfeiçoado).

(5)

Exercício 22: Refazer o Exercício 21 de modo a modificar a Pesquisa Binária de modo que possa ser empregado o Bubble Sort Simplificado Invertido ou o Bubble Sort Aperfeiçoado Invertido. Dica: Observe que no Exercício 21 foi empregada uma ordenação em ordem ascendente antes de se utilizar a Pesquisa Binária e esta supõe que seus parâmetros a e b respeitam a condição a ≤ b. Neste exercício é necessário modificar a Pesquisa Binária de modo a funcionar com a ≥ b. Exercício 23: Use um vetor para resolver o seguinte problema. Uma empresa paga seus vendedores com base em comissões. O vendedor recebe um valor fixo de R$ 500,00 por mês mais 10 por cento de suas vendas brutas daquele mês. Por exemplo, um vendedor que teve vendas brutas de R$ 3000,00 em um mês recebe R$500,00 mais 10 por cento de R$ 3000,00, ou seja, um total de R$ 800,00. Escreva um programa (usando um vetor de contadores) que determine quantos vendedores receberam salários nos seguintes intervalos de valores (considere que o salário de cada vendedor é truncado para que seja obtido um valor inteiro):

Faixa 1 Faixa 2 Faixa 3 Faixa 4 Faixa 5 500-999 1000-1499 1500-1999 2000-2999 3000-em diante

Exercício 24: Refazer o Exercício 23, mas considerando que para cada Faixa de valor de vendas existe um percentual de comissão como dado na seguinte Tabela.

Faixa 1 Faixa 2 Faixa 3 Faixa 4 Faixa 5 Comissão 10% 12% 14% 15% 20%

Exercício 25: Elaborar um sistema de reservas de companhias áreas em que os assentos de cada vôo são representados por um vetor. Inicialmente todos os assentos estão vagos e todos os elementos do vetor possuem valor 0. A cada reserva realizada a posição do vetor correspondente ao assento deverá apresentar o valor 1. Assim, para cada usuário que utiliza o sistema deverá ser apresentado o seguinte menu:

Favor digitar: 1 – Para verificar ocupação do avião. 2 – Realizar reserva de um assento. 3 – Cancelar reserva de um assento.

Caso o usuário digite a opção 1 deverá ser mostrada na tela quais posições do avião estão disponíveis (lembre-se que a posição v[0] do vetor corresponde ao assento número 1 do avião e assim por diante). Caso a opção 2 seja selecionada, então, deverá ser verificado se a posição está ocupada ou não. Se estiver, imprimir uma mensagem falando isso. Caso contrário, realizar a reserva e mostra a nova ocupação do avião. Por último, caso a opção 3 seja selecionada, então, verificar se o assento está ocupado. Se estiver, então, tornar o assento vazio e mostrar a nova ocupação do avião. Caso contrário, imprimir uma mensagem de que o assento já está disponível.

Referências

Documentos relacionados

a) O modo de aplicação única ou parcelada do regulador de crescimento na densidade populacional de 6 a 14 plantas m -1 não interfere na produção de algodão em caroço das

O presente trabalho aborda a temática trânsito, especificamente seu processo administrativo, tendo por objetivo analisar como este deve se desenvolver, com observância dos

A indústria alimentar recorre usualmente a aditivos sintéticos para garantir ou melhorar as características e propriedades dos alimentos [1]. O sorbato de potássio (E202) é um dos

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Na aplicação das políticas contábeis da Companhia e das controladas, a Administração deve fazer julgamentos e elaborar estimativas a respeito dos valores contábeis

- Declaração de Imposto de Renda Pessoa Física - IRPF, completa, exercício 2017, ano base 2017, ou a mais recente, de todos os membros do Grupo Familiar maiores de

[r]

A metodologia utilizada para estimativa dos custos é do custeio do ciclo de vida, que é um método de apuração do custo de um produto ou equipamento