Lista de Exercícios Vetores LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. WWW.EDUARDOSILVESTRI.COM.BR ATUALIZADO EM: 13/03/2007 Página 1/1
1. Faça um programa que crie um vetor de inteiros de 50 posições leia os valores via teclado e os imprima na tela. 2. Faça um programa que crie um vetor de inteiros de 20 posições leia os valores e os imprima na sua ordem inversa. 3. Faça um programa que crie um vetor de inteiros de 10 posições leia os valores e imprima somente os valores do vetor que forem impares. 4. Faça um programa que crie um vetor de inteiros de 10 posições leia os valores e imprima os valores onde o índice for impar. 5. Faça um programa que leia pelo teclado um vetor numérico inteiro de tamanho 15, mostrando os elementos do vetor que estão em índice ímpar e os elementos do vetor que são ímpares. 6. Faça um programa em que armazene a temperatura (em Celsius) de 7 dias consecutivos e que as mostre na tela identificando a temperatura com o dia da semana em que ocorreu. 7. Dado dois vetores A e B contendo 20 elementos inteiros cada, gerar e exibir um vetor C do mesmo tamanho cujos elementos sejam a soma dos respectivos elementos de A e B. Exemplo: 8. Dado um vetor A contendo 100 elementos inteiros, gerar e exibir um vetor B cujos elementos estão na ordem inversa de A. Exemplo: 9. Dado dois vetores A e B contendo 25 elementos inteiros cada, gerar e exibir um vetor C de 50 elementos, cujos elementos sejam a intercalação dos elementos de A e B. Exemplo: 10. Um time de basquete possui 12 jogadores. Deseja-se um programa que, dado o nome e a altura dos jogadores, determine: a) o nome e a altura do jogador mais alto; b) a média de altura do time; c) a quantidade de jogadores com altura superior a média, listando o nome e a altura de cada um. 11. Fazer um programa em C para corrigir provas de múltipla escolha. Cada prova tem 10 questões e cada questão vale 1 ponto. O primeiro conjunto de dados a ser lido será o gabarito para a correção da Página 2/2
prova. Os outros dados serão os números dos alunos e suas respectivas respostas, e o último número, do aluno fictício, será 0 (zero). O programa deverá calcular e imprimir: a) para cada aluno, o seu número e sua nota; b) o percentual de aprovação, sabendo-se que a nota mínima de aprovação é 6. c) a nota que teve maior freqüência absoluta, ou seja, a nota que apareceu maior número de vezes (supondo a inexistência de empates). A estrutura de dados para este programa de ser a seguinte: 12. Um conjunto de 10 dados numéricos inteiros contidos no vetor ENTRADA precisa ser criptografado no vetor SAIDA antes de ser transmitido. A regra de criptografia que transforma cada elemento i do vetor de ENTRADA no elemento i do vetor de SAIDA é dada a seguir: Caso o elemento esteja numa posição par do vetor, devemos fazer a seguinte conta: SAIDA[i] = 2*ENTRADA[i] -1 Caso o elemento esteja numa posição ímpar do vetor, devemos fazer a seguinte conta: SAIDA[i] = ENTRADA[i] + 3 Após as operações descritas acima, mostre, respectivamente, os vetores ENTRADA e SAIDA em linhas distintas. 13. Uma operação comum na área digital é a operação de divisão inteira de um número inteiro por 2. Iremos simular estas operações a partir do uso de vetores. Usaremos um vetor chamado NUMERO_IN de comprimento 8 para armazenar o número de entrada. Este vetor deve armazenar a representação binária de um determinado número. Inicialmente você deve entrar com 0 s ou 1 s para cada posição de memória deste vetor. (Vamos supor que o dado de entrada seja positivo). A partir de então você deve executar a operação de divisão binária e armazenar o resultado no vetor NUMERO_OUT. A mesma é descrita a seguir: Para todas as posições i, de 0 até 6, do vetor NUMERO_IN devemos copiar o conteúdo na posição (i+1) do vetor NUMERO_OUT. A posição 0 do vetor NUMERO_OUT deve ser zero. Faça um programa em que leia um número armazenado bit a bit em 8 posições consecutivas de memória, calcule a sua divisão binária e imprima o número de entrada nos formatos decimal e binário e o número de saída nos formatos decimal e binário. 14. Faça um programa em que leia dois vetores distintos, de 13 posições cada, explicados a seguir: Resultado: Este vetor armazena, em cada posição, os resultados de cada um dos 13 jogos da loteria esportiva. Assim, o primeiro jogo está na posição 0 até o jogo 13 que está na posição 12 deste vetor. Para cada um dos 13 jogos, são possíveis um dentre três resultados. 0 se houve empate, 1 se o vencedor for o time 1 da coluna do volante de jogo e 2 se o vencedor for o time 2 da coluna do volante. Jogador: Este vetor armazena os palpites para cada um dos 13 jogos de um dado jogador. Após ler cada um dos vetores, o programa deve dizer quantos pontos o Jogador fez na loteria esportiva. 15. Uma loja faz uso de 4 vetores para saber seu faturamento diário. Os mesmos são descritos a seguir: Estoque_i: Este vetor armazena os valores dos estoques iniciais de cada um dentre 5 produtos. Assim Estoque_i[i] corresponde ao estoque inicial do produto i. Página 3/3
Estoque_f: Este vetor armazena os valores dos estoques finais de cada um dentre 5 produtos, numerados de 0 até 4. Assim Estoque_f[i] corresponde ao estoque final do produto i. Valor_c: Este vetor armazena os valores dos custos unitários de cada um dentre 5 produtos, numerados de 0 até 4. Assim Valor_c[i] corresponde ao custo unitário do produto i. Valor_v: Este vetor armazena os valores dos preços unitários de venda para cada um dentre 5 produtos, numerados de 0 até 4. Assim Valor_v[i] corresponde ao preço unitário de venda para produto i. Faça um programa em que leia cada um dos 4 vetores acima, calcule e mostre o total faturado pela loja para o dia em que são válidos os dados digitados. 16. Faça um programa que leia pelo teclado um vetor inteiro, de tamanho 10, e informe quantas TRIPLAS de números seguidos estão no conjunto dos dados teclados. 17. Dizemos que um vetor de dimensão tamanho 10 é: Ordenado estritamente crescentemente se e somente se o conteúdo de uma posição de memória vale menos que o conteúdo de memória imediatamente seguinte; Ordenado estritamente decrescentemente se e somente se o conteúdo de uma posição de memória vale mais que o conteúdo de memória imediatamente seguinte; Faça um programa que após permitir o preenchimento de um vetor, informe se o mesmo é Ordenado estritamente crescentemente, decrescentemente ou nenhum dos dois casos. 18. Dizemos que um vetor numérico é dito vetor palíndromo se e somente se o conteúdo do mesmo, lido da esquerda para a direita, é o mesmo que o conteúdo do mesmo lido da direita para a esquerda. Faça um programa em que leia um vetor de tamanho 10, calcule e informe se este vetor é palíndromo. 19. Faça um programa que leia pelo teclado um vetor numérico real, de tamanho 12, calcule e exiba o valor de R onde R = (V[11]*V[0]) + (V[10]*V[1]) + (V[9]*V[2]) +...+ (V[1]*V[10]) + (V[0]*V[11]). 20. Faça um programa que leia um vetor IN de dimensão 10 e que gere um vetor OUT de dimensão 10 que seja o inverso do vetor IN. Mostre na tela ambos os vetores. 21. Suponha que devam se guardadas duas informações de cada pessoa de um grupo de 8 pessoas, idade e sexo. Para tanto vamos usar dois vetores, idade e sexo. Assim: IDADE: IDADE[i] corresponde à idade da i-ésima pessoa cujos dados estão armazenados no vetor IDADE. SEXO: SEXO[i] corresponde ao sexo da i-ésima pessoa cujos dados estão sendo armazenados no vetor SEXO. Utilize a seguinte codificação: -1 = homem e 1 = mulher. Faça um programa que leia as informações de um conjunto de 8 pessoas, calcule e imprima: Quantidade de homens no grupo Percentual de mulheres com idade igual ou inferior a 18 anos; Idade média do grupo. 22. Faça um programa que leia a nota de cada um dentre os 10 alunos de uma sala especial e preencha cada um dos 2 vetores descritos abaixo conforme os dados estejam sendo digitados: APROVADOS: este vetor possui somente notas de alunos aprovados. Um aluno é dito aprovado se e somente se sua nota for maior ou igual a 6.0 REPROVADOS: este vetor possui somente notas de alunos reprovados. Um aluno é dito reprovado se e somente se sua nota for inferior a 6.0 Após o preenchimento dos vetores acima descritos informe: o vetor de aprovados e a quantidade de aprovados; o vetor de reprovados e a quantidade de reprovados. 23. Uma das medidas de dispersão mais comumente usadas em estatística é a variância. Esta medida verifica quão espalhados um conjunto de dados está em relação à média aritmética destes mesmos Página 4/4
dados. Faça um programa que leia um conjunto de 10 dados numéricos, calcule e imprima a média e variância. A fórmula da média aritmética é: 9 X[i] 2 = 0 i= 0. µ = e da variância é: δ 10 9 (X[i] - µ = i 10 24. Uma corrida de automóveis possui 10 participantes numerados de 0 até 9. Faça um programa que leia o tempo de uma volta, em segundos, para cada um destes 10 participantes calcule e imprima as respostas para as perguntas a seguir: Qual o tempo e o número do carro mais rápido; Qual o tempo e o número do carro mais lento; Qual o tempo médio dos participantes da corrida; Quantos participantes possuem tempo menor que o tempo médio. 25. Uma empresa de cinema armazena, semanalmente, o número de ingressos vendidos para cada uma das 3 salas que possui. Para tanto utiliza 3 vetores distintos. Cada vetor armazena a quantidade de ingressos vendidos na respectiva sala em cada um dos dias da semana: Sala1:vetor de 7 posições que armazena em cada posição o valor dos ingressos vendidos em um determinado dia para a sala 1; Sala2: vetor de 7 posições que armazena em cada posição o valor dos ingressos vendidos em um determinado dia para a sala 2; Sala3: vetor de 7 posições que armazena em cada posição o valor dos ingressos vendidos em um determinado dia para a sala 3. Faça um programa em que leia os 3 vetores descritos acima, calcule e mostre as seguintes informações (supondo que não haja empates): Quantos ingressos foram vendidos em dada semana para cada uma das 3 salas; Qual foi a sala que vendeu mais ingressos e em que dia isto ocorreu; Qual foi a sala que vendeu menos ingressos e em que dia isto ocorreu. 26. Faça um programa que preencha um vetor DADOS de tamanho 10 apenas com números positivos. O usuário pode digitar número aleatoriamente, mas o vetor somente deve armazenar os números positivos, isto é, devem ser descartados os números negativos digitados. Após o preenchimento do último elemento do vetor DADOS, o mesmo deve ser mostrado na tela. Deve ser impresso também a quantidade de valores digitados até que se tenha preenchido totalmente o vetor DADOS. 27. Faça um programa que leia um vetor de dimensão 10 e um número chamado inúmero. O programa deve procurar inumero no vetor. Caso: o mesmo seja achado no vetor, indique em que posição ocorreu o primeiro inumero achado no vetor; o mesmo não seja achado no vetor, dê uma mensagem conveniente. 28. Faça um programa em que leia um vetor de tamanho 10 e ordene crescentemente o mesmo. 29. Faça um programa que recebe um vetor de inteiros de 10 posições e retorna um vetor "compactado", isto é, sem valores repetidos. 30. Uma tarefa comum em banco de dados é inserção de elemento numa posição. Suponha que utilizaremos um vetor para simularmos esta tarefa usual em bancos de dados. Dado o vetor que representa o banco de dados, o usuário deve dizer o dado que deseja inserir e em que posição o dado deve ser colocado. Ao fornecer a posição em que deseja colocar o dado, uma dentre 3 possibilidades pode ocorrer: Vetor cheio: O dado não pode ser inserido em nenhuma posição sem que haja perda de informação; ) 2 Página 5/5
Dado não contínuo no vetor: o dado não pode ser inserido pois o usuário deseja inserir a informação numa posição ainda não válida. Caso o vetor não esteja cheio e, simultaneamente, não se peça que o dado, a operação de inserção deve ser feita da seguinte maneira: Todos os dados à direita da posição onde se deseja inserir o dado, contando a própria posição onde se deseja inserir o dado, devem ser deslocados de uma posição para a direita O dado então pode ser colocado na posição desejada Para simular a operação de inserção, vamos supor que nosso banco de dados seja constituído de um vetor de números double DADOS, de tamanho 10. Você deve fazer um programa em que o usuário digita 1 <= N <= 10 e N dados e a seguir o usuário digita em que posição deseja inserir um dado e o valor do mesmo. A partir das regras acima: Caso seja possível inserir um dado no vetor, o programa deve mostrar o conteúdo vetor DADOS antes e depois da inserção do dado Caso não seja possível inserir dados porque o vetor DADOS está cheio, imprima o vetor DADOS e a mensagem vetor cheio Caso não seja possível inserir dados porque o usuário escolheu posição inválida de inserção, imprima o vetor DADOS e a mensagem dado não contínuo no vetor 31. Uma tarefa comum em banco de dados é exclusão de elemento numa posição. Suponha que utilizaremos um vetor para simularmos esta tarefa usual em bancos de dados. Dado o vetor que representa o banco de dados, o usuário deve dizer a posição do dado a ser excluído. Ao fornecer a posição em que deseja colocar o dado, uma dentre 2 possibilidades pode ocorrer: Dado não contínuo no vetor: o dado não pode ser excluído pois o usuário escolheu uma posição não válida do vetor. Não é posição válida de dado no vetor; O dado está numa posição válida para exclusão: a operação de exclusão deve ser feita da seguinte maneira: Todos os dados à direita da posição onde se deseja excluir o dado, contando a própria posição onde se deseja inserir o dado, devem ser deslocados de uma posição para a esquerda Para simular a operação de exclusão, vamos supor que nosso banco de dados seja constituído de um vetor de números double DADOS, de tamanho 10. Você deve fazer um programa em que o usuário digita 1 <= N <= 10 e N dados e a seguir o usuário digita a posição que deseja excluir. A partir das regras acima: Caso seja possível excluir um dado no vetor, o programa deve mostrar o conteúdo vetor DADOS antes e depois da exclusão do dado; Caso não seja possível inserir dados porque o usuário escolheu posição inválida de inserção, imprima o vetor DADOS e a mensagem dado não contínuo no vetor. Página 6/6