Lista de Exercícios
Vetores
LINGUAGEM DE PROGRAMAÇÃO
PROF. EDUARDO SILVESTRI.
WWW.EDUARDOSILVESTRI.COM.BR
ATUALIZADO EM: 29/10/2007
Página 1/9
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/9
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/9
•
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/9
dados. Faça um programa que leia um conjunto de 10 dados numéricos, calcule e imprima a média e
variância.
9
9
∑ X[i]
A fórmula da média aritmética é:
µ=
i=0
10
e da variância é:
δ
2
∑ (X[i] - µ )
=
2
i =0
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;
Página 5/9
•
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” .
32. Faça um programa que dado o vetor unidimensional [2; 4; 35; 50; 23; 17; 9; 12; 27; 5] retorne:
•
maior valor
•
média dos valores
•
os valores dispostos em ordem crescente
•
sub conjunto de valores primos que está contido no vetor
33. Faça um programa que:
a. leia 7 valores inteiros e os armazene em um vetor. Listar o vetor com as referidas posições de
armazenamento de cada valor.
Página 6/9
b. ofereça uma função de pesquisa onde dado um valor inteiro qualquer de entrada retornar a posição
deste valor dentro do vetor, e caso este valor não esteja presente no vetor retornar –1.
c. ofereça uma função que troque os valores contido no vetor pela seguinte política: cada elemento i
dentro do vetor será substituído pela soma de todos os (i-1) elementos mais o elemento i. Por
exemplo, dado um vetor [1; 2; 3; 4; 5] após a aplicação da função teríamos esse vetor preenchido
com os seguintes valores [1; 3; 6; 10; 15]. Para esta tarefa utilize um vetor auxiliar.
34. Faça um programa que, dados dois vetores bidimensionais (matrizes A e B) com dimensões de no
máximo 5x5 elementos, retorne:
•
a soma destas duas matrizes
•
a soma das diagonais de cada matriz
•
a multiplicação das duas matrizes
35. Faça um programa para:
•
receber as dimensões M e N da matriz A (M e N <= 5)
•
receber os MxN elementos da matriz A
•
receber as dimensões J e K da matriz B (J e K <=5, J = N)
•
receber os JxK elementos da matriz B
•
calcular e mostrar a matriz C, de dimensões MxK, que é o produto das matrizes A e B.
36. Faça um programa para receber do usuário a dimensão de um vetor (máx. 20), os elementos desse
vetor e efetuar a sua ordenação utilizando o método da bolha (bubble-sort).
37. Vamos supor que várias pedras do jogo de xadrez estão no tabuleiro. Para facilitar a indicação das
peças, vamos convencionar:
1 – peões
3 – torres
5 – reis
0 – ausência de peças
2 – cavalos
4 – bispos
6 – rainhas
O tabuleiro é o seguinte:
1
3
0
5
4
0
2
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
6
0
1
0
0
1
1
0
0
1
0
1
0
4
0
0
1
0
0
0
3
1
0
0
1
1
1
0
6
6
0
0
1
0
1
0
5
0
1
1
0
6
a) Construa um programa que determine a soma total entre peões ou bispos e a quantidade de
posições com ausência de peças;
b) Escreva outro programa que determine qual a quantidade de cada tipo de peça no tabuleiro.
Página 7/9
38. A distância entre várias cidades é dada pela tabela abaixo (em km):
1
2
3
4
5
1
00
15
30
05
12
2
15
00
10
17
28
3
30
10
00
03
11
4
05
17
03
00
80
5
12
28
11
80
00
a) Construa um programa que leia a tabela acima e informe ao usuário a distância entre duas
cidades por ele requisitadas, até que ele entre com o código 0 para ambas as cidades;
b) Elabore um programa que imprima a tabela sem repetições, isto é, se a distância entre as
cidades 1 e 3 foi emitida, não é necessário emitir a distância entre 3 e 1;
c) Dado um determinado percurso, imprima o total percorrido:
Exemplo: dado o percurso 1, 2, 3, 2, 5, 1, 4, teremos:
15 + 10 + 10 + 28 + 12 + 5 = 80 km.
39. Um cinema que possui capacidade de 20 lugares está sempre lotado. Certo dia cada espectador
respondeu a um questionário, onde constava:
- sua idade;
- sua opinião em relação ao filme, que podia ser: ótimo, bom, regular, ruim ou péssimo.
Elabore um programa que, recebendo estes dados calcule e mostre:
a. a quantidade de respostas ótimo;
b. a diferença percentual entre respostas bom e regular;
c. a média de idade das pessoas que responderam ruim;
d. a porcentagem de respostas péssimo e a maior idade que utilizou esta opção;
e. a diferença de idade entre a maior idade que respondeu ótimo e a maior idade que
respondeu ruim.
40. Faça um programa que receba uma matriz 5x5 valores do tipo int do usuário, um valor de cada vez, e
imprima a sua matriz transposta (Obs: a matriz transposta é obtida permutando-se as linhas e as
colunas de uma matriz.
41. Escreva um programa que leia uma matriz n x m do usuário e a transforme em um vetor
unidimensional de n.m posições
42. Fazer um programa para:
a. receber 3 notas parciais do aluno em um vetor e a nota do exame em uma variável separada (1 se o aluno não fez exame).
b. chamar a função SITUACAO, com as seguintes características:
Página 8/9
•
Parâmetros: vetor de notas parciais e nota do exame
•
Retorno: 0 se o aluno está reprovado direto, 1 se o aluno está reprovado em exame, 2
se o aluno está aprovado em exame e 3 se ele está aprovado direto.
Página 9/9
Download

Lista de Exercícios Lista de Exercícios Vetores