6
aLista Complementar de Exercícios de CI208
Programação de Computadores
13/02/2014
Parte A - Exercícios de Fixação de Aprendizagem
1. Faça um programa em C++ que leia do teclado uma sequência de 10 números inteiros e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar na tela os números armazenados no vetor.
2. Faça um programa em C++ que leia do teclado uma sequência de 15 números inteiros e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar os números armazenados no vetor e deve mostrar quantos números deste vetor são positivos.
3. Faça um programa em C++ que leia do teclado uma sequência de 20 números inteiros e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar os números armazenados no vetor e deve mostrar quantos números deste vetor são pares e quantos são ímpares.
4. Faça um programa em C++ que leia do teclado uma sequência de 10 números e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar os números armazenados no vetor multiplicados por sua posição. Exemplo:
Entrada Saída
1 2 3 4 5 6 7 8 9 10 1 4 9 16 25 36 49 64 81 100
5. Faça um programa que leia do teclado uma sequência de 20 números e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar na tela os números entre as posições 5 e 15 do vetor.
6. Modifique o programa do exercício 5 para ler uma quantidade Q de números. Crie uma função que recebe como parâmetros o vetor e duas chaves i e j que correspondem a um intervalo de posições do vetor (i.e. o usuário entrará com um intervalo e seu programa deve mostrar na tela os números armazenados nas posições do vetor neste intervalo). Caso alguma das chaves sejam menor que 0 ou maior que Q você deve mostrar uma mensagem na tela.
7. Faça um programa que leia do teclado uma sequência de 20 números e utilize um vetor para armazená-los. Seu programa deve substituir no vetor todos os números negativos por 0. Como saída, seu programa deve mostrar os números armazenados no vetor na tela.
8. Faça um programa que leia do teclado duas sequências de 10 números e salve-as em dois vetores A e B. Em seguida, seu programa deve fazer a multiplicação entre os elementos de A e B cujos índices são ímpares e salvar cada produto em um vetor C. Ao final, mostre o vetor C
na tela. Obs: Considere que o indice da primeira posição é igual a 1. Exemplo: A = 1 2 3 4 5 6 7 8 9 10
B = 2 2 2 2 2 2 2 2 2 2 C = 2 6 10 14 18
9. Faça um programa que leia do teclado duas sequências de 10 números e salve-as em dois vetores A e B. Em seguida, seu programa deve salvar em um vetor C a seguinte multiplicação entre os elementos de A e B:
C[1] = A[1] . B[10] C[2] = A[2] . B[9] C[3] = A[3] . B[8] …
Ao final seu programa deve mostrar na tela os dados do vetor C.
10. Aldo sempre participa de promoções do estilo “para participar, envie N rótulos de produtos ...” e assim tem o costume de guardar o rótulo de todos os produtos que compra. Sempre que uma empresa faz uma promoção ele tem vários rótulos para mandar.
A SBC está fazendo uma promoção, e para participar é preciso enviar um envelope contendo um rótulo de cada tipo de produto que a SBC produz. Por exemplo, se a SBC produz 3 tipos de produtos (A, B e C), e uma pessoa tem 3 rótulos de A, 3 de B e 2 de C, ela pode enviar no máximo 2 envelopes, já que falta um rótulo de C para compor o terceiro envelope. Não há limite para o número de envelopes que uma pessoa pode enviar.
Sua tarefa é escrever um programa que, a partir da lista de rótulos de Aldo, calcula o número máximo de envelopes válidos que ele pode enviar. Assim, seu programa deve ler do teclado um número inteiro N (que indica a quantidade de rótulos que Aldo possui da SBC) e um número K (que indica o número de tipos diferentes de rótulos da SBC). Em seguida seu programa deve ser os N rótulos que Aldo possui da SBC, onde cada tipo de rótulo consiste de um número de 1 a k. Ao final, seu programa deve mostrar o número de envelopes que ele pode enviar. Utilize um array para facilitar o cálculo. Exemplo:
Entrada Saída Rótulos: 10 Envelopes: 5 Tipos de rótulos: 2 Rótulos: 1 1 1 1 1 2 2 2 2 2 Entrada Saída Rótulos: 20 Envelopes: 2 Tipos de rótulos: 5 Rótulos: 1 2 3 4 1 2 3 4 1 2 3 4 5 1 2 3 4 5 4 4
Parte B – Exercícios de Prática
1. Escreva uma função genérica para leitura de um vetor. Sua função deve receber como parâmetros um inteiro Q (que indica a quantidade de dados a serem lidos) e um vetor V (para armazenar os dados lidos). Utilize essa função nos próximos programas.
2. Escreva uma função genérica para mostrar os dados armazenados em um vetor na tela. Sua função deve receber como parâmetros um inteiro Q (que indica a quantidade de posições do vetor que possuem dados) e um vetor V (onde os dados estão armazenados). Utilize essa função nos próximos programas.
3. Faça um programa em C++ que leia do teclado uma sequência de Q números e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar os números na tela em ordem inversa da leitura. Considere Q a quantidade de números a serem lidos na entrada e deve ser lido do teclado. Seu programa deve executar até que Q = 0. Exemplo:
Entrada Saída 5 1 5 9 7 8 8 7 9 5 1 7 4 5 6 7 8 9 0 0 9 8 7 6 5 4 0
4. Faça um programa em C++ que leia do teclado uma sequência de Q números e utilize um vetor para armazená-los. Como saída, seu programa deve mostrar somente os números ímpares na tela. Seu programa deve executar até que Q = 0.
5. Faça um programa em C++ que leia do teclado uma sequência de Q números e utilize um vetor para armazená-los. Após a entrada dos dados, seu programa deve utilizar uma função para alterar os números lidos, armazenados no vetor, respeitando as seguintes condições. - Se a posição do vetor é um número par, então o número deve ser multiplicado por 2; - Se a posição do vetor é um número ímpar, então o número deve ser multiplicado por 3; Então, seu programa deve mostrar na tela os números armazenados no vetor. O programa deve ser executado até que Q = 0.
6. Faça um programa em C++ que leia do teclado uma sequência de Q números. Após a entrada dos dados, seu programa deve mostrar na tela o seguinte menu de opções (deve ser mostrado na tela até que a opção 4 seja escolhida):
1 - Números primos 2 - Números positivos
3 - Números negativos
4 - Ler uma nova sequência de números
Após a escolha da opção pelo usuário, o programa deve chamar a função correspondente e mostrar na tela o(s) dado(s) solicitados. O programa deve ser executado até que Q=0
7. Faça um programa em C++ que leia do teclado uma sequência de Q números. Após a entrada dos dados, seu programa deve mostrar na tela o seguinte menu de opções (deve ser mostrado na tela até que a opção 3 seja escolhida):
1 - Maior número 2 - Menor número
3 - Ler uma nova sequência de números
Após a escolha da opção pelo usuário, seu programa deve chamar a função correspondente e, então, deve mostrar na tela o dado retornado. O programa deve ser executado até que Q = 0.
8. Faça a seguinte modificação do programa do exercício 7: acrescente uma opção chamada "Buscar número". Ao escolher essa opção, o usuário deve informar um número que será pesquisado no vetor. A função chamada para esta operação de busca deve retornar o número de vezes que o valor aparece no vetor. Ao final da operação, seu programa deve mostrar na tela o número de ocorrências (se houver).
9. Faça um programa que leia do teclado 2 sequências de números inteiros. As 2 sequências devem ter uma quantidade Q de números e devem ser armazenadas respectivamente nos vetores A e B. Como saída, seu programa deve mostrar na tela a subtração entre as duas sequências (i.e. a subtração do primeiro elemento de A com o primeiro de B, a subtração do segundo elemento de A com o segundo de B, e assim por diante).
10. Faça um programa que leia do teclado duas sequências de números inteiros. As duas sequências devem ter uma quantidade Q de números (que deve ser lido na entrada) e devem ser armazenadas respectivamente nos vetores A e B. Como saída, seu programa deve mostrar na tela a soma entre as duas sequências.
11. Faça um programa que leia do teclado duas sequências de números inteiros. As duas sequências devem ter uma quantidade Q de números (que deve ser lido na entrada) e devem ser armazenadas respectivamente nos vetores A e B. Seu programa deve chamar uma função que recebe como parâmetros Q, A e B e retorna o produto escalar. Considere o produto escalar entre A e B como:
12. Escreva três funções: media, mínimo e máximo. As três funções devem receber dois parâmetros: um vetor de inteiros e seu tamanho; e então retornar a operação específica
(média, mínimo ou máximo).
Faça um programa em C++ que leia do teclado um conjunto de Q notas, onde Q é a quantidade de alunos de uma turma. Em seguida, você deve calcular a média, mínimo e máximo deste conjunto e mostrar os resultados na tela (utilize obrigatoriamente as funções feitas anteriormente).