UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
4ª Lista de Exercícios de Programação I
Instrução
As questões devem ser implementadas em C.
1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma
dos valores lidos e apresente o resultado na tela.
2. Faça um algoritmo que efetua a leitura de cinco elementos para um vetor
A . No final, apresentar a
soma de todos os elementos que sejam ímpares.
3. Faça um algoritmo que leia uma sequência de
n
números e os imprima na ordem inversa à da
leitura.
x e y quaisquer
correspondentes a duas posições no vetor. Ao final seu programa deverá escrever a soma dos valores
encontrados nas respectivas posições x e y .
4. Leia um vetor de doze posições e em seguida ler também dois valores
5. Declare um vetor de 10 posições e o preencha com os dez primeiros números ímpares e o escreva.
6. Leia um vetor de dezesseis posições e troque os oito primeiros valores pelos oito últimos e vice-e-versa.
Escreva ao final o vetor obtido.
7. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor teste 1 . Construa um
vetor adicional ( teste 2 ) de 10 posições formado a partir da seguinte regra: se o valor do índice for
par, o valor do elemento deve ser igual ao elemento equivalente de teste1 multiplicado por 5; se for
impar, deverá ser somado com 5. Ao final, mostrar o conteúdo dos dois vetores.
8. Leia um conjunto de valores armazenando-os em um vetor. Em seguida, calcule a média do vetor e
mostre-a na tela. Na linha seguinte, imprima todos elementos maiores que a média.
9. Leia um vetor de 20 posições e em seguida um valor x qualquer. Seu programa devera fazer uma
busca do valor de x no vetor lido e informar a posição em que foi encontrado ou se não foi
encontrado.
10. Leia um vetor de 40 posições. Contar e escrever quantos valores pares ele possui.
11. Leia um vetor de 40 posições e atribua valor 0 para todos os elementos que possuírem valores
negativos.
12. Faça um programa que leia dois vetores de tamanho m e n . O objetivo do programa é identificar
e escrever (sem repetição) quais os elementos estão presentes em ambos os vetores.
13. Leia dois vetores de 20 posições e calcule outro vetor cujas posições pares correspondem aos valores
do primeiro vetor e as posições ímpares os valores do segundo.
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, Tel.:+55 (27) 3312.1511, Fax.:+55 (27) 3312.1510,
São Mateus– ES
Sítio Eletrônico : http://www.ceunes.ufes.br
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
14. Construa um programa que leia um vetor de inteiros com 20 posições cujos valores devem ser lidos do
teclado. São permitidos apenas 0’s e 1’s. O programa deve determinar o índice de onde se inicia a
maior sequência de 1’s e o número de elementos dessa sequência.
Ex.: Para (0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0) a resposta seria: (10, 6).
15. Faça um programa que carregue um vetor com 15 posições, calcule e mostre:
a. O maior elemento do vetor e em que posição esse elemento se encontra.
b. O menor elemento do vetor e em que posição esse elemento se encontra.
16. Leia um vetor de 10 posições e acumule os valores do primeiro elemento no segundo, deste no terceiro
e assim por diante. Ao final, escreva o vetor obtido.
17. Faça um programa que leia uma frase de 80 caracteres, incluindo brancos. Seu programa deve
também:
a. Contar e imprimir quantos caracteres brancos existem na frase.
b. Contar e imprimir quantas vezes o caractere ‘a’ aparece.
18. Faça um programa que leia um vetor de inteiros e “remova” os elementos contendo o valor 0 (transfiraos para o final do vetor). Mostre o vetor resultante na tela.
Ex.: O vetor 0 1 3 -1 0 0 5 ficaria: 1 3 -1 5 0 0 0.
19. Faça um programa que leia um vetor contendo letras de uma frase inclusive os espaços em branco. Em
seguida, “remova” os espaços em branco do vetor (transfira-os para o final) e depois mostre-o na tela.
20. Implemente um algoritmo em C que determine a quantidade de vogais e de consoantes em um vetor de
valores do tipo char.
21. Critique o programa abaixo que promete eliminar os zeros de um vetor int v[N].
#define N 10
int main()
{
int i, z = 0;
int v[N];
for (i = 0; i < N; i++)
scanf(“%d”, &v[i]);
for (i = 0; i < N; i++)
{
if (v[i] == 0)
v[i]= v[i+1];
}
}
return 0;
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, Tel.:+55 (27) 3312.1511, Fax.:+55 (27) 3312.1510,
São Mateus– ES
Sítio Eletrônico : http://www.ceunes.ufes.br
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
22. Leia três vetores de nove posições e crie outro com o primeiro terço do primeiro, com o segundo terço
do segundo vetor e, por último, com o último terço do terceiro vetor. Escrever o vetor resultante ao final.
23. Faça um programa que indique se o módulo de um vetor de 5 posições (lido do teclado) exceder 50.
24. Leia dois vetores de 10 posições, efetue o produto escalar entre eles e mostre o vetor resultante na tela.
25. O mesmo da questão anterior, porém considerando produto vetorial.
26. Leia um vetor de 10 posições e verifique se existem valores iguais e os escreva.
27. Escreva um algoritmo que leia um vetor de 15 posições e mostre- o. Em seguida, troque o primeiro
elemento com o último, o segundo com o penúltimo, o terceiro com o antepenúltimo, e assim
sucessivamente. Mostre o novo vetor depois da troca.
28. Crie um programa que leia o preço de compra e o preço de venda de vinte mercadorias armazenandoos em dois vetores. O programa deverá imprimir quantas mercadorias proporcionam:
a. Lucro menor do que 10%.
b. Lucro entre 10% e 20% (inclusive).
c. Lucro maior que 20%.
29. Escreva um algoritmo que leia um vetor de 10 elementos inteiros, que é o Gabarito de um teste da
loteria esportiva, contendo os valores 1 (coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir,
para cada apostador, o número do seu cartão (identificador) e um vetor de Respostas de 10 posições.
Verifique para cada apostador o número de acertos, comparando o vetor de Gabarito com o vetor de
Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 10 acertos,
mostrar a mensagem "Ganhador".
g de 10 posições do tipo char, que representa o gabarito
de uma prova. A seguir, para cada um dos 5 alunos da turma, leia seu nome e o vetor de respostas
r do aluno (10 posições do tipo char). Mostre o número de acertos do aluno e uma mensagem
“Aprovado” caso seu aproveitamento seja pelo menos de 60%, ou mostre a mensagem
“Reprovado”, caso contrário.
30. Escreva um algoritmo que leia um vetor
31. Elabore um programa que efetue as seguintes operações sobre dois vetores u e v
a.
b.
c.
(tamanho 5):
u+ v .
u−v .
αu + ( 1−α ) v.
Obs.: α é uma constante real entre 0 e 1.
32. Considere um vetor de trajetórias de 9 elementos, onde cada elemento possui o valor do próximo
elemento do vetor a ser lido.
Índice
Valor
1
5
2
7
3
6
4
9
5
2
6
8
7
4
8
0
9
3
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, Tel.:+55 (27) 3312.1511, Fax.:+55 (27) 3312.1510,
São Mateus– ES
Sítio Eletrônico : http://www.ceunes.ufes.br
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Para o caso em questão, a sequência da leitura seria: (1, 5, 2, 7, 4, 9, 3, 6, 8, 0). Faça um algoritmo que
seja capaz de ler o vetor valor e indicar a trajetória percorrida.
33. Escreva um programa que inicialmente lê dois vetores de tamanho 10 e os escreve. A seguir, seu
programa deve utilizar um terceiro vetor de tamanho contendo os maiores valores para cada posição.
Ex.: para os vetores 0 – 4 - 2 – 5 e -1 – 2 – 5 – 8 o programa geraria o vetor 0 – 4 – 5 – 8.
34. Escreva programa que lê um vetor de 10 posições e armazena num segundo vetor esses elementos em
ordem crescente.
Dica: utilize um terceiro vetor para marcar os elementos cuja posição no vetor ordenado já foi
determinada
35. Escreva um programa que lê um vetor de tamanho 10, encontrando e mostrando na tela a mediana dos
valores lidos.
36. Elabore um programa que armazena em um vetor dez valores lidos do teclado. Em seguida, determina
a diferença entre a média do vetor e a média calculada com base no maior e menor elemento do vetor.
37. Numa certa eleição, existem 5 candidatos identificados pelos valores 1, 2, ..., 5. Uma votação pode ser
representada como um vetor em que cada posição indica um eleitor e o conteúdo dessa posição seu
voto. Por exemplo, a sequência (1, 2, 1, 2, 3, 5) indica a existência de seis eleitores, sendo que os
candidatos 1 e 2 obtiveram dois votos e os candidatos 3 e 5 obtiveram um voto cada. Construa um
programa que leia os votos de 20 eleitores, indique quanto cada um recebeu em votos e qual candidato
obteve o maior número de votos.
38. Adapte a questão anterior para informar se o candidato foi diretamente eleito e se a eleição necessitará
de um segundo turno. O critério para ser eleito em primeiro turno adotado em questão é que o
candidato mais votado possua pelo menos metade dos votos mais um.
39. Escreva um programa que leia um vetor v 1 e guarde num vetor
repetição. As posições restantes de v 2 devem conter 0.
v2
os elementos de
v1
sem
40. Escreva um programa que leia dois vetores positivos A e B (mesmo tamanho) e salve num
terceiro vetor C a união entre A e B (obviamente, sem repetições). Declare C com o
dobro do tamanho de A . Se a união entre A e B resultar em menos elementos que o
tamanho de C , complete C com -1.
41. O mesmo do exercício anterior, porém considerando as seguintes particularidades:
a.
b.
C
C
corresponde à interseção entre A e B .
deve ser declarado com o mesmo tamanho de
A .
42. Resolva os dois últimos exercícios considerando agora que
43. Faça um programa que declara um vetor
v
com
N
A e
B possuem tamanhos distintos.
posições (
N
ímpar) e o preenche
seguindo alguns passos:
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, Tel.:+55 (27) 3312.1511, Fax.:+55 (27) 3312.1510,
São Mateus– ES
Sítio Eletrônico : http://www.ceunes.ufes.br
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
n
⌋ ).
2
b. Atribua i para v [ m ± i ] , para i=0,1 ,... , m .
a. Calcule o ponto médio do vetor ( m=⌊
44. Resolva a questão anterior considerando agora que
N
pode é par.
a e b contendo, respectivamente, cinco e vinte e cinco
posições. O conteúdo desses vetores é formado apenas de 0’s e 1’s informados pelo usuário. O objetivo
do programa é verificar se existe um emparelhamento entre o vetor a e o vetor b . Por exemplo,
a sequência (0, 1, 0) está contida em (1, 0, 1, 0, 1, 1). O emparelhamento ocorre a partir da posição 1
do segundo vetor. Seu programa deve informar a posição inicial do emparelhamento, caso exista, ou
exbir a mensagem “Nao existe emparelhamento entre a e b”.
45. Faça um programa que leia dois vetores
46. Faça um programa que leia um vetor x de 10 posições. Esse vetor indica o domínio de uma função.
2
2
f 1 e f 2 tais que
Crie dois vetores
para
f 1 [i ]=2 x [ i ] – x [i] e f 2 [i]=3 x [i ]
i=0,1, ... 9 . Por fim, utilize um quarto vetor f s contendo a soma de f 1 e f 2 . Mostre
todos os vetores na tela.
47. Faça um programa que calcule e mostre o valor do polinômio
p ( x )=a 0+ a1 x +…+a n x n em k
pontos distintos. O valor de n deve ser lido do teclado ( 1≤ n ≤ 10 ), bem como os coeficientes
reais a 0 , a1 ,… , a n , o número de pontos k e os pontos x 1 , x 2 ,… , x k .
48. Faça um programa para resolver o seguinte problema:
São dadas as coordenadas reais
x e y de um ponto, um número natural n , e as
coordenadas reais de n pontos ( 1<n<10 ). Deseja-se calcular e imprimir sem repetição os raios
das circunferências centradas no ponto ( x , y ¿ que passam por pelo menos dois dos n pontos
dados.
Exemplo: (x , y )=(1.0,1.0) ; n=5 .
Pontos: ( 0.0, 0.0 ) , ( 2.0, 2.0 ) , ( 0.0,−2.0 ) , ( 0.0,0.5 ) ,( 4.0, 2.0) .
.
Nesse caso há três circunferências de raios: 1.12, 2.01 e 3.162.
Observações:
• Distância entre os pontos
•
(a , b) e (c , d ) é
√( a−c)2 +(b−d )2
.
Dois pontos estão na mesma circunferência se estão à mesma distância do centro.
49. Escreva um programa para administrar uma coleção de números digitados pelo usuário. A coleção
(inicialmente vazia e de tamanho máximo n ) pode conter mais de uma cópia de um mesmo número.
O usuário pode inserir novos números na coleção e remover números que já estão lá. A coleção é
armazenada em ordem crescente. A comunicação com o usuário é definida pelos comandos “i”
(inserção) e “r” (remoção). Confira alguns exemplos e instruções:
•
i 222 (seguido de ENTER): o número 222 é inserido na coleção.
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, Tel.:+55 (27) 3312.1511, Fax.:+55 (27) 3312.1510,
São Mateus– ES
Sítio Eletrônico : http://www.ceunes.ufes.br
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
•
•
•
•
r 333 (seguindo de ENTER): o número 333 é removido da coleção (se esse número não estiver
na coleção, o comando é ignorado).
Depois de cada inserção ou remoção, o programa deve exibir a coleção.
Se o usuário digitar qualquer outro caractere que não 'i' ou 'r', a execução do programa
termina.
Cuide para que o número de elementos na coleção não ultrapasse n .
v 1 de N 1 algarismos 0’s e 1’s ( N 1 ≤ 30 )
digitado pelo usuário (onde cada algarismo ocupa uma posição do vetor), de forma que o vetor
resultante v 2 de N 2 elementos ( N 2 ≤ 0 ) possua menos elementos (ou no pior caso, o
mesmo número) do que o vetor original. A regra de compactação é a seguinte:
50. Queremos efetuar a compactação de um vetor
a. O primeiro elemento do vetor
v2
é o número de 0’s do vetor
v1
a partir do seu início até o
primeiro algarismo 1.
b. O próximo elemento do vetor
v2
é o número de 1’s do vetor
v1
a partir do último 0
é o número de 0’s do vetor
v1
a partir do último 1
encontrado até o próximo algarismo 0.
c. O próximo elemento do vetor
v2
encontrado até o próximo algarismo 1.
d. Repete-se os passos b e c até o final do vetor v 1 .
v 1=( 0,0, 0, 1,1, 0, 1,0, 1, 1,0 )
de
11
posições
obtém-se
v 2 =( 3, 2,1, 1, 1, 2,1,−1,−1,−1,−1 ) .
Obs.: Pelo fato de v 2 não ter seu tamanho pré-determinado, utilizamos um vetor com 11 posições
Ex.:
Para
o
vetor
marcando seu final com -1.
Com base nessas informações, elabore um programa que efetue a compactação de um vetor lido do
teclado.
Centro Universitário Norte do Espírito Santo
Rodovia BR 101 Norte, Km 60, Bairro Litorâneo, CEP.: 29.932-540, Tel.:+55 (27) 3312.1511, Fax.:+55 (27) 3312.1510,
São Mateus– ES
Sítio Eletrônico : http://www.ceunes.ufes.br
Download

Exercícios de Vetor