Disciplina: LPG-I

Propaganda
Disciplina: LPG-I
Prof. Flavio Marcello Strelow
LISTA 2: Exercícios sobre Repetição
1- Substituir for por while:
(a)
for (i=0; i <= 20; i++)
{ x = j/3;
printf("%d", x);
}
(b)
for (abc=2, semente= 0; semente <= 100; semente+=2)
{ sem1 = semente *2;
sem2 = semente + 1.5 * abc;
media = (sem1 + sem2) /2;
printf("%f", media);
}
2- Reescreva os trechos de código abaixo, utilizando os comandos indicados:
(a) for
do
{
printf( "%d", x );
x--;
}
while( x > 3 );
(b) if e for
k = 0;
while ( k <10)
{ printf( " Digite i: ");
scanf("%d", &i);
switch( i )
{ case 1: x = i;
case 2: x = j; break;
case 0: x = i + j;
default: x = i * j;
}
printf( "%d \n", x);
k+=2;
}
(c ) do-while
while( i < n )
{ i += 2;
n--;
}
3- Troque os comandos while por for. Faça teste de mesa para os trechos nas duas versões.
(a)
a = 0;
while ( a != 3)
{
a = a + 1;
printf("%d", a);
}
(b)
z = 10;
while( z > 0)
{
z = z - 3;
printf("%d", z);
}
(c )
k = 5;
while( k < 10)
{
k = k + 1.5;
printf("%d", k);
}
4- Transforme do-while em while e em for. Faça teste de mesa para o do-while.
(a)
a = 9;
do
a = a + 1;
while (a <= 10)
(b )
gh = 5; a = 8
do { a+= gh;
printf("%d", a);
}
while (gh != 5);
(c )
t = 0;
do
{ t = t + 1;
printf("%d", t*2);
}
while (t<8);
5- O que será impresso pelos programas a seguir?
(a)
main()
{
int a, b, c, cont;
cont = a = b = 1;
printf("\n%d\n%d",a ,b);
while (cont <= 8)
{
c = a + b;
printf("\n%d", c);
a = b;
b = c;
cont++;
}
}
(b)
main()
{
int x = 8531, s = 0;
while (x > 0)
{
s = s*10 + x % 10;
x = x / 10;
}
printf("\n%d", s);
}
(c )
main()
{
int cont = x = 1;
while (cont <= 8)
{
printf("\n%d",x);
x += cont;
cont++;
}
}
(d)
void main()
{
int x = 0, y = 1;
for( ; y < 100; y += 2 )
x = x + y;
printf( "\ny = %d\nx = %d\n", y, x );
}
(e)
void main()
{
int x = 9, y = 0;
do{
y = (x % 2) + 10 * y;
x = x / 2;
printf( "x = %d, y = %d\n", x, y );
} while( x );
while( y )
{
x = y % 100;
y = y / 10;
printf( "x = %d, y = %d\n", x, y );
};
}
(f)
for (i = 4 ; i+4<10 ; i++) printf ("\n%d",i);
(g)
void main()
{
int i, j, n;
n = 4;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
printf("%5d", j * i);
printf("\n");
}
}
6- Escrever um programa que lê uma seqüência de n valores, um de cada vez, e imprime a
quantidade de valores negativos.
7- Escrever um programa que lê um conjunto de valores, imprimindo, para cada valor: seu
quadrado, seu cubo e sua raiz quadrada. O conjunto é finalizado com o valor zero.
8- Escreva um programa que leia um número inteiro e mostre a tabuada da multiplicação conforme
o formato abaixo. Por exemplo, se n = 2, deverá ser impresso:
2x0=0
2x1=2
2x2=4
2x3=6
....
2 x 10 = 20
9- Escreva um programa para ler um número n (número de termos de uma progressão aritmética),
a1 ( o primeiro termo da progressão) e r (a razão da progressão). Calcular e imprimir os n termos
desta progressão, bem como a soma dos elementos.
10- Escrever um programa que leia 20 valores para uma variável n e, para cada um deles, calcule
a tabuada de 1 até n. Mostre a tabuada na forma:
1xn=n
2 x n = 2n
3 x n = 3n
.......
n x n = n2
11- Escreva um programa que leia um número inteiro positivo N. Calcule e mostre o maior
quadrado menor ou igual a N. Por exemplo, se N for igual a 38, o menor quadrado é 36 (quadrado
de 6).
12- Escreva um programa que leia um número inteiro positivo e mostre o seu fatorial.
13- Escrever um programa que leia um número n que indica quantos valores devem ser lidos a
seguir. Para cada número lido, mostre uma tabela contendo o valor lido e o fatorial deste valor.
14- Escreva um programa que leia um número inteiro e indique se o mesmo é primo ou não.
15- Escreva um programa que mostre os 20 primeiros números primos.
16- Escrever um programa que calcula e escreve o produto dos números primos
entre 92 e 1478.
17- Faça um programa que imprime todos os números primos entre 1 e um certo valor m
18- Faça um programa que leia 2 valores: x( real ) e y (inteiro). O programa deve calcular e
escrever o valor de x elevado a y.
19- Imprimir os números entre 1 e 2000 que divididos por 11 dão resto igual a 5.
20- Escrever um programa que leia uma seqüência de números, calcule e imprima a média
aritmética. A seqüência termina quando for digitado o valor zero.
21- Dada uma seqüência com dois ou mais inteiros, contar quantas duplas de números adjacentes
são iguais.
Exemplo: A seqüência 4 2 9 9 3 7 7 7 0 ( 0 indica fim) tem 3 pares.
22- Escreva um programa que leia 500 valores inteiros e positivos e encontre o maior valor; o
menor valor; calcule a média dos números lidos. Imprimir os resultados.
23- Escrever um programa que leia um número não determinado de valores e calcule a média
aritmética dos valores lidos, a quantidade de valores positivos, a quantidade de valores negativos e
o percentual de valores negativos e positivos. Mostre os resultados.
24- Faça um programa que leia uma quantidade não determinada de números positivos. Calcule e
imprima a quantidade de números pares e ímpares, a média dos valores pares e a média dos
valores impares. O número que encerrará a leitura será zero.
25- Faca um programa que apresente na tela a tabela de conversão de graus Celsius para
Fahrenheit, de -100 a 100 C. Use um incremento de 20 C.
26- Suponha que você esteja trabalhando com uma máquina que só executa operações de soma e
subtração. Escreva um programa para calcular o produto de dois números inteiros positivos.
27- Supondo a mesma máquina do exercício anterior, escreva um programa para calcular o
quociente e o resto da divisão de dois números inteiros positivos.
28- Escrever um programa que lê 20 valores, um de cada vez, e conta quantos deles estão no
intervalo [20,40] e quantos deles estão fora do intervalo, imprimindo essa informação.
29- Escrever um programa que leia uma quantidade desconhecida de números e conte quantos
deles estão nos seguintes intervalos: [0.25], [26,50], [51,75] e [76,100]. A entrada de dados deve
terminar quando for lido um número negativo.
30- Escrever um programa que lê n duplas de valores a, b (a <=b), todos inteiros e positivos. Para
cada dupla, imprimir os elementos pares de a até b.
31- Definir um programa que receba uma série de pares de números, e para cada par calcule a
média aritmética, imprimindo o resultado. A série termina quando for lido o par 0,0.
32- Escrever um programa que lê uma seqüência de de pares de valores m,n, todos inteiros e
positivos, um par de cada vez, e calcula e imprime a soma de n inteiros consecutivos a partir de m
inclusive.
Exemplo: se for digitado o par 4, 3 : o programa calcula o valor de 4 + 5 + 6 que é 15.
33- Calcular a soma dos n primeiros múltiplos de um número inteiro x.
34- Faça um programa que leia um número N inteiro positivo imprima todos os seus divisores
(positivos).
Exemplo: Supor N: 24. Os divisores são: 1 2 3 4 6 8 12 24
35- Escreva um programa que mostre os 5 primeiros números perfeitos. Um número é dito perfeito
quando a soma dos seus divisores, exceto ele próprio, é igual ao número. Exemplo: 6 = 1+2+3. ;
28= 1+2+4+7+14 etc
36- O número 3025 possui a seguinte característica:
30 + 25 = 55
55 * 55 = 3025
Escreva um programa que pesquise e mostre todos os números de quatro algarismos que
apresentam tal característica.
37- Um número de Amstrong é um número de n dígitos que é igual a soma de cada um dos seus
dígitos elevado à n-ésima potência. Por exemplo, 153 (que tem 3 dígitos) é igual à 13 + 53 + 33.
Faça um programa para escrever todos os números de Armstrong entre 10 e 999.
38- Capicuas são números que têm o mesmo valor, se lidos da esquerda para a direita ou da
direita para a esquerda. Ex.; 44, 232, etc. Fazer um programa para determinar se um valor lido é
capicua.
39- Fazer um programa para determinar e escrever todos os números inteiros positivos menores
que 10.000 que são capicuas e quadrados perfeitos ao mesmo tempo.
40- Fazer um programa para ler vários números inteiros positivo de 3 dígitos e para cada um fazer
o seguinte: subtrair dele o próprio número invertido e imprimir o resultado. Exemplo: se n = 734,
então 734 - 437 = 297
41- Fazer um programa para ler uma seqüência de números de até 5 dígitos. O número deve ser
transformado para a base 2 e esse valor deve ser impresso na tela. A seqüência é finalizada
quando for digitado o valor 0.
42- Escrever um programa que lê um número não determinado de valores para m, todos inteiros e
positivos, um de cada vez. Se m for par, verificar quantos divisores possui e escrever esta
informação. Se m for ímpar e menor do que 10 calcular e escrever o fatorial de m. Se m for ímpar e
maior ou igual a 10 calcular e escrever a soma dos inteiros de 1 até m.
43- Melancias custam R$ 4,50 cada, se compradas até 5 unidades inclusive. R$ 4,20 se
compradas até 20 unidades inclusive e R$ 4,00 se compradas até 100 unidades. Além deste valor,
deve ser dado um desconto de 10% no valor total da compra. Escrever um programa que receba o
número de melancias compradas e devolva a quantidade de reais a pagar. O programa deve rodar
até receber o número zero melancias, que indica fim.
44- Escreva um programa que leia a matricula de um aluno e suas três notas. Calcule a média
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas restantes,
3. Imprimir, para cada aluno, a média calculada e uma mensagem: "APROVADO" se a média for
maior ou igual a 7.0, "Exame", se media entre 4. 0 e 6.9 e "REPROVADO" se a média for menor
que 4. Matricula igual a zero, indica final de leitura.
45- Faça um programa que leia vários conjuntos de coeficientes a, b e c e para cada conjunto
calcular as raízes de uma equação do segundo grau, através da fórmula de Báscara. Devem ser
impressas mensagens para os casos em que a equação não tem raízes reais ou tem raízes
múltiplas. Após o cálculo de cada conjunto, deve ser perguntado ao usuário se ele deseja
continuar.
46- Dado um número representando um certo intervalo de tempo (<= 24 horas) em segundos,
fazer um programa que leia vários números e imprima o imprima na forma: x horas, y minutos, z
segundos.
Exemplo: 4230 segundos = 1 hora, 10 minutos , 30 segundos. A seqüência termina quando for
digitado o número zero.
47- Ler m e n e escrever m linhas de n asteriscos na tela. Exemplo: Para m=6 e n=10 a saída do
programa deve ser
**********
**********
**********
**********
**********
**********
48- Ler m e escrever m linhas com i asteriscos alinhadas pela esquerda, onde i corresponde ao
número da linha corrente. Exemplo: Para m=6 a saída do programa deve ser
*
**
***
****
*****
******
49- Escrever um programa que leia um número e converta cada dígito para a sua representação
em código Morse. A representação em código Morse dos dígitos é:
1.____
2..___
3...__
4...._
5.....
6_....
7_ _ . . .
8_ _ _ . .
9_ _ _ _ .
0_ _ _ _ _
50- Um capitão dispõe seus soldados na forma de um triângulo:
........i........ 1a. fila
......i...i...... 2a. fila
....i...i...i.... 3a. fila
..i...i...i...i.. 4a. fila
......
Faça um programa que, a partir de um número n representando a quantidade de soldados,
determina quantas filas irão se formar. O programa deve imprimir também quantos soldados
ficarão na última fila.
51- Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,10 metro e cresce 3
centímetros por ano. Construa um programa que calcule e imprima quantos anos serão
necessários para que Zé seja maior que Chico.
52- Numa repartição de 3000 funcionários chega uma notícia trazida por um deles às 8 horas. Nos
15 minutos seguintes a notícia é contada para mais 3 funcionários que nos próximos 15 minutos
relatam para mais 3 que ainda não conhecem a notícia e assim sucessivamente. Faça um
programa que determine em quantas horas todos os funcionários da repartição terão conhecimento
da notícia.
53- Um jardineiro tem que regar 60 roseiras plantadas ao longo de um caminho retilíneo e distando
1 metro uma da outra. Ele enche seu regador numa fonte situada no mesmo caminho 15 metros
antes da primeira roseira e a cada viagem rega três roseiras. Começando e terminando na fonte,
faça um programa que calcula o percurso total que ele tem que percorrer para regar todas as
roseiras.
54- Uma bolinha é solta de uma altura de x metros. Após cada batida no solo ela consegue atingir
apenas 70% da altura anteriormente alcançada. Faça um programa que calcula quantos metros a
bolinha percorreu desde o instante em que foi solta até o instante da n-ésima batida no solo.
Considere apenas o percurso vertical.
55- Um certo organismo se reproduz (é duplicado) a cada 20 minutos. Nesse tempo o mesmo
produz 1/10000 litros de uma substância X útil para o tratamento de uma determinada doença.
Fazer um programa para calcular quantas gerações serão necessárias para produzir 1 litro da
substância X, o número de organismos produtores em cada geração, o tempo, a quantidade
produzida em cada geração e a quantidade total. O resultado deve ser mostrado para cada
geração, na tela, em uma tabela da seguinte maneira:
geração
no de organismos
tempo (min) quant. de X (l) quant. total de X (l)
1
1
20
0.0001
0.0001
2
2
40
0.0002
0.0003
. .............
56- Faça um programa que leia vários números inteiros e calcule o somatório dos números
negativos. O fim da leitura será indicado pelo número 0.
57- Faça um programa que leia vários números inteiros e positivos e calcule o produtório dos
números pares. O fim da leitura será indicado pelo número 0.
58- Escreva um programa que mostre os 20 primeiros termos da seqüência: 1, 3, 7, 13, 21,...
59- Escreva um programa que mostre os 20 primeiros termos da seqüência: 0, 1, 5, 14, 30, 55,...
60- Escreva um programa que mostre os 20 primeiros termos da seqüência: 0, 3, 8, 15, 24,...
61- Escreva um programa que mostre os 20 primeiros termos da seqüência: 2, 3, 6, 18, 108,...
62- Escreva um programa que mostre os 20 primeiros termos da seqüência: 1, 2, 4, 8, 16,...
63- Escreva um programa que mostre os 20 primeiros termos da seqüência: 2, 7, 14, 23, 34,...
64- Escrever um programa que calcule a somatória de i*(i+1) onde 1<=i<=n para um dado n>0.
65- Escrever um programa que calcule a produtória de i*(i+1), onde i varia de 1 a n.
66- Fazer um programa para ler um inteiro N > 0, calcular e imprimir o seguinte somatório:
S = 1 + 22 + 32 + .... + N2.
67- Fazer um programa para ler um inteiro N>0, calcular e imprimir o resultado do seguinte
somatório:
1
1
1
1
S = 1 + ---- + ---- + ----+... --2
3
4
N
68- Fazer um programa para ler um inteiro N>0, calcular e imprimir o resultado do seguinte somatório:
1
1
1
1
1
S = ---- - ---- + ---- - ---- +... + ---2
4
6
8
2N
O programa deve imprimir também o valor de cada termo.
69- Fazer um programa para ler um inteiro N > 0, calcular e imprimir o seguinte somatório:
S = N + N-1 + N-2 + N-3 + ... + 0.
70- Escreva um programa que calcule a soma dos 20 primeiros termos da seqüência:
470 460 450
S = --- + --- + --- + ....
7
8
9
71- Escreva um programa que calcule a soma dos 20 primeiros termos da seqüência:
1
2
3
4
S = --- - --- + --- - ---- + ....
1
3
5
7
72- Fazer um programa que calcule e imprima a seguinte soma:
1
3
5
7
99
S = --- + --- + --- + --- + ... + ---1
2
3
4
50
73- Defina um programa que calcule e imprima o somatório expresso pela seguinte série:
500
480
460
200
S = ----- + ----- + ------ + ... + ---2
3
4
26
74- Escrever um programa que lê um valor N inteiro e positivo, calcula e escreve o valor
aproximado de e, onde:
1
1
1
1
e = 1 + ---- + ---- + ----+... + ---1!
2!
3!
N!
75- O valor aproximado de  pode ser calculado usando-se a série
1
1
1
1
1
S = ----- - ---- + ---- - ---- + ---- - ....
13
33
53
73
93
sendo  = S * 32 . Fazer um programa para calcular e imprimir o valor de  com 40 termos.
76- Escrever um programa que, dado x real, calcule uma aproximação para e x na seguinte série:
x0
x1
x2
xi
ex = ---- + ---- + ---- + ..... + ---- + ...
0!
1!
2!
O número de termos é digitado pelo usuário.
i!
77- Fazer um programa que calcule e imprima a seguinte soma:
21
22
23
250
S = ----- + ---- + ----- + ..... + -----50
49
48
1
78- Fazer um programa (programa) para calcular e escrever a soma dos 20 primeiros termos da
série:
480 475
470 465
S = --- - ---- + ---- - ----- + ....
10
11
12
13
79- O cálculo do seno de um número x, pode ser obtido a partir da seguinte série:
x
x3
x5
sen(x) = 1 - ---- + ---- - ---- + ....
1
3!
5!
Ler o valor de x e calcular sen (x) somando os 30 primeiros termos da série acima.
80- Fazer um programa que calcule o valor do co-seno de x através de 20 termos da série abaixo;
x2
x4
x6
x8
cosen(x) = 1 - ---- + ---- - ---- + ---- - ....
2!
4!
6!
8!
81- Fazer um programa para calcular e escrever a seguinte soma:
37 * 38
36 * 37
35 * 36
1*2
S = ---------- + --------- + ---------- + ..... + -----1
2
3
37
82- A sequencia de Fibonacci é definida da seguinte maneira:
Termo da posição 0 (F0) = 0
Termo da posição 1 (F1) = 1
Para os outros termos: Termo da posição i (Fi) = Fi-1 + Fi-2, para i > 2 .
Fazer um programa para ler o valor de i de imprimir todos os termos da sequencia de Fibonacci, da
posição 0 até a posição i.
Curiosidade: O coeficiente Fn dividido por Fn-1 converge para o número áureo : 1.618.... O número áureo é usado muito em
arquitetura e outras áreas, pois as pessoas consideram "esteticamente agradáveis" os objetos (como uma porta) que apresentam
uma relação áurea nas suas dimensões.
83- Uma empresa deseja aumentar seus preços em 20%. Faça um programa que leia o código e o
preço de custo de cada produto e calcule o preço novo. Calcule também, a média dos preços com
e sem aumento. Mostre o código e o preço novo de cada produto e, no final, as médias. A entrada
de dados deve terminar quando for lido um código negativo.
84- Faça um programa que mostre os conceitos finais dos alunos de uma classe de 75 alunos.
Para cada aluno, serão fornecidos os números de matrícula e a média. A tabela de conceitos é a
seguinte:
Média
Conceito
de 0,0 a 4,9 D
de 5,0 a 6,9 C
de 7,0 a 8,9 B
de 9,0 a 10,0 A
85- A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o
salário e número de filhos. A prefeitura deseja saber:
a) média do salário da população;
b) média do número de filhos;
c) maior salário;
d) percentual de pessoas com salário até R$200,00.
O final da leitura de dados se dará com a entrada de um salário negativo.
86- O departamento pessoal de uma empresa solicitou o desenvolvimento de um programa de
computador capaz de calcular o desconto devido para o INSS. Assim, escreva um programa capaz
de calcular este desconto. Inicialmente deve ser lido o valor do salário de referencia, depois devese ler uma série de dados compostos de: RG e salário bruto. A série termina quando for lido valor 0
para o RG. A tabela de desconto é a seguinte:
Salário bruto
% desconto
até 10 SR
8
de 10,01 a 20 SR
9
acima de 20 SR
10
Imprimir para cada funcionário o RG, salário bruto e desconto.
87- Uma empresa decidiu fazer um levantamento em relação aos candidatos que se apresentaram
para preenchimento de vagas no seu quadro de funcionários. Fazer um programa que leia um
conjunto de dados contendo: número de inscrição do candidato, idade, sexo (F/M), experiência no
serviço (S/N). O conjunto é finalizado com o último o número de inscrição = 0. O programa deve
calcular e imprimir:
o número de candidatos femininos;
o número de candidatos masculinos;
idade média dos homens que já tem experiência no serviço;
porcentagem dos homens com mais de 45 anos entre total de homens;
número de mulheres que tem idade inferior a 35 anos e com experiência no serviço.
88- Em uma eleição presidencial existem quatro candidatos. Os votos são informados através de
códigos. Os dados utilizados para a contagem dos votos obedecem à seguinte codificação:
- 1,2,3,4 = voto para os respectivos candidatos;
- 5 = voto nulo;
- 6 = voto em branco;
Elabore um programa que leia o código do candidato em um voto. Calcule e escreva:
- total de votos para cada candidato;
- total de votos nulos;
- total de votos em branco;
Como finalizador do conjunto de votos, tem-se o valor 0.
89- Numa fábrica trabalham homens e mulheres divididos em 3 classes:
A - os que fazem até 30 peças por mês;
B - os que fazem de 31 a 35 peças por mês;
C - os que fazem mais de 35 peças por mês.
A classe A recebe salário mínimo. A classe B recebe salário mínimo e mais 3% do salário mínimo
por peça acima das 30 iniciais. A classe recebe salário mínimo e mais 5% do salário mínimo por
peça acima das 30 iniciais. Fazer um programa que leia um conjunto de dados contendo cada um:
número do operário, número de peças fabricadas no mês e sexo. O programa deve calcular e
imprimir:
salário de cada operário;
total da folha mensal de pagamento;
número total de peças fabricadas no mês;
média das peças fabricadas pelos homens em cada classe;
média de pecas fabricadas pelas mulheres em cada classe;
número do operário ou operária de maior salário ( não existe empate).
O último dado a ser lido terá número de operário = 0.
90- Foi feita uma pesquisa entre os 1000 habitantes de uma região para coletar os seguintes
dados: sexo (0-feminino, 1-masculino), idade e altura. Faça um programa que leia as informações
coletadas e mostre as seguintes informações:
média da idade do grupo;
média da altura das mulheres;
média da idade dos homens;
percentual de pessoas com idade entre 18 e 35 anos (inclusive).
91- Foi realizada uma pesquisa de algumas características físicas da população de um certa
região. Foram entrevistadas 500 pessoas e coletados os seguintes dados:
sexo: M (masculino) e F (feminino)
cor dos olhos: A (azuis), V (verdes) e C(castanhos)
cor dos cabelos: L (louros), C(castanhos) e P (pretos)
idade
O programa deve calcular e imprimir:
a maior idade do grupo
a quantidade de indivíduos do sexo feminino, cuja idade está entre 18 e 35 anos e que tenham
olhos verdes e cabelos louros.
BOM TRABALHO
Download