Buscar

lista de exercícios 1 - computação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

MC102 – Algoritmos e programac¸a˜o de computadores
Lista de Exerc´ıcios 1
Prof. Orlando Lee
Tente fazer os exerc´ıcios individualmente. Olhar a soluc¸a˜o de outro na˜o ajuda a aprender. Programar exige
um tipo de racioc´ınio pouco usual e isto so´ se adquire com a pra´tica.
Esboce sua soluc¸a˜o em papel e depois implemente-a no computador. Fac¸a alguns testes para ver se o programa
esta´ funcionando corretamente.
1. Suponha que um programa tem duas varia´veis inteiras x e y. Escreva um trecho de co´digo em C que
troca o conteu´do dessas varia´veis. Por exemplo, se x = 4 e y = 7, depois da troca ter´ıamos x = 7 e y = 4.
2. Escreva um programa que leˆ os coeficientes de uma equac¸a˜o do segundo grau e imprime a(s) ra´ız(es)
desta ou imprime uma mensagem se na˜o houver ra´ızes reais.
3. Simule a execuc¸a˜o do programa abaixo (sem usar o computador) usando o nu´mero formado pelos u´ltimos
dois d´ıgitos do seu RA (se forem 00, use 43):
#include <stdio.h>
int main()
{
int n,a,b,r,i;
printf("Digite n: ");
scanf("%d", &n);
a = n;
b = 0;
i = 1;
while (a > 0) {
r = a % 2;
a = a / 2;
b = b + (r * i);
i = i * 10;
}
printf("%d = (%d)\n", n, b);
return 0;
}
O que o programa faz?
4. Escreva um programa que leˆ um nu´mero real x e um inteiro d ≥ 0 e calcula xd de duas maneiras:
(a) usando o comando pow(x,d) do C e (b) atrave´s de um lac¸o como visto em sala. Compare os dois
resultados em termos de precisa˜o.
5. Manuel aplicou em um fundo de renda uma certa quantia r de reais a juros de y porcentos (0 ≤ y ≤ 100)
ao meˆs por t meses. Escreva um programa em C que leˆ r, y, t e imprime o lucro e a quantia total resultante
obtidos por Manuel apo´s este tempo. Na˜o use a func¸a˜o de exponenciac¸a˜o pow do C.
6. Escreva um programa em C que leˆ repetidamente dois nu´meros reais do teclado ate´ que o usua´rio entre
com dois nu´meros com sinais opostos. Escreva treˆs verso˜es com while, for e do-while.
7. Escreva um programa em C que leˆ um nu´mero natural n e calcula o n-e´simo nu´mero harmoˆnico Hn =∑
n
k=1
1
k
. Imprima com dez casas de precisa˜o apo´s a v´ırgula. Escreva treˆs verso˜es com while, for e
do-while. Na˜o use vetores.
1
8. Escreva um programa em C que leˆ uma sequ¨eˆncia de nu´meros inteiros terminada com zero (zero na˜o faz
parte da sequeˆncia, e´ so´ para indicar o final) e imprime o maior e o menor elemento desta.
9. Escreva um programa em C que leˆ uma sequ¨eˆncia de notas de alunos de MC102 terminada com um nu´mero
negativo e imprime o nu´mero de alunos da turma e quantos alunos foram aprovados e reprovados.
10. Escreva um programa em C que leˆ uma sequ¨eˆncia de nu´meros inteiros terminada com zero e imprime a
me´dia dos nu´meros pares e a me´dia dos nu´meros ı´mpares. Escreva treˆs verso˜es com while, for e do-while.
11. Fac¸a um programa que leia uma sequ¨eˆncia de nu´meros inteiros positivos e termine com um nu´mero
negativo (este u´ltimo na˜o deve ser considerado, serve apenas para finalizar a sequ¨eˆncia). O programa
deve verificar se os nu´meros positivos:
(a) Esta˜o em ordem crescente.
(b) Esta˜o em ordem decrescente.
(c) Se a sequ¨eˆncia e´ uma progressa˜o aritme´tica, neste caso dizer a raza˜o.
(d) Se a sequ¨eˆncia e´ uma progressa˜o geome´trica, neste caso dizer a raza˜o.
12. Escreva um programa que leˆ um nu´mero inteiro e imprime o reverso dele. Por exemplo: se a entrada for
239134 a sa´ıda deve ser 431932. Use os comandos / e % do C.
13. O valor de π tambe´m pode ser calculado usando a se´rie S = 1
13
− 1
33
+ 1
53
− 1
73
+ 1
93
− 1
113
+ · · ·, sendo
que o valor de π e´ calculado como π = 3
√
32 · S. Fac¸a um programa para calcular o valor de π usando
esta se´rie e parando quando a diferenc¸a do valor de π calculado em uma iterac¸a˜o e a iterac¸a˜o anterior for
menor que 0,0001.
14. A func¸a˜o seno pode ser aproximada atrave´s da se´rie:
sen(x) = x− x
3
3!
+
x5
5!
− x
7
7!
+ · · ·
somando termo a termo ate´ que o u´ltimo termo seja menor (em valor absoluto) que um certo ǫ > 0.
Escreva um programa em C que leˆ x e ǫ e calcula sen(x) usando esse me´todo. O programa tambe´m
deve imprimir as aproximac¸o˜es sucessivas com dez casas de precisa˜o apo´s a v´ırgula. Eis um exemplo com
x = 2.5 e ǫ = 0.0001.
Entre com x: 2.5
Aproximacao 1 : sen(x) = 2.5000000000
Aproximacao 2 : sen(x) = -0.1041667461
Aproximacao 3 : sen(x) = 0.7096353769
Aproximacao 4 : sen(x) = 0.5885338783
Aproximacao 5 : sen(x) = 0.5990461707
Aproximacao 6 : sen(x) = 0.5984488726
Aproximacao 7 : sen(x) = 0.5984727740
O valor de sen(x) obtido foi 0.5984727740.
O programa deve usar apenas um lac¸o. Na˜o use a func¸a˜o de exponenciac¸a˜o pow do C. Na˜o use vetores.
15. A func¸a˜o cosseno pode ser aproximada atrave´s da se´rie:
cos(x) = 1− x
2
2!
+
x4
4!
− x
6
6!
+ · · ·
somando termo a termo ate´ que o u´ltimo termo seja menor (em valor absoluto) que um certo ǫ > 0.
Escreva um programa em C que leˆ x e ǫ e calcula cos(x) usando esse me´todo. O programa tambe´m deve
imprimir as aproximac¸o˜es sucessivas com dez casas de precisa˜o apo´s a v´ırgula. O programa deve usar
apenas um lac¸o. Na˜o use a func¸a˜o de exponenciac¸a˜o pow do C. Na˜o use vetores.
16. Um nu´mero natural e´ triangular se e´ o produto de treˆs naturais consecutivos. Por exemplo, 6 = 1 ∗ 2 ∗ 3
e 60 = 3 ∗ 4 ∗ 5. Escreva um programa em C que leˆ um natural n e imprime se ele e´ triangular ou na˜o.
17. Um nu´mero natural e´ perfeito se a soma dos seus divisores pro´prios e´ igual ao pro´prio nu´mero. Por
exemplo, 6 e´ perfeito pois 1 + 2 + 3 = 6. Escreva um programa em C que leˆ um natural n e imprime se
ele e´ perfeito ou na˜o.
2
18. Escreva um programa que leˆ um natural n ≥ 1 e uma sequ¨eˆncia de n inteiros e imprime o nu´mero
de segmentos de nu´meros iguais consecutivos que compo˜em a sequ¨eˆncia. Por exemplo, a sequ¨eˆncia
5, 2, 2, 2, 1, 3, 3, 3, 3, 2 possui cinco segmentos de nu´meros iguais consecutivos: (a) 5, (b) 2, 2, 2, (c) 1, (d)
3, 3, 3, 3 e (e) 2. Ja´ a sequ¨eˆncia 2, 3, 2, 1 possui quatro segmentos de nu´meros iguais consecutivos. Na˜o
use vetores.
19. O desvio padra˜o dp e a variaˆncia var dos nu´meros x1, . . . , xn podem ser calculados usando as seguintes
fo´rmulas
dp(x1, . . . , xn) =
√√√√√ 1
n− 1

 n∑
i=1
x2
i
− 1
n
(
n∑
i=1
xi
)2
var (x1, . . . , xn) = (dp(x1, . . . , xn))
2.
Fac¸a um programa que leˆ o valor n e a sequ¨eˆncia dos n nu´meros reais e depois imprime a me´dia, o desvio
padra˜o e a variaˆncia dos n nu´meros lidos.
Obs.: O desvio padra˜o tambe´m pode ser obtido atrave´s da fo´rmula dp(x1, . . . , xn) =
√
1
n−1
∑n
i=1
(xi −X)2,
ondeX e´ a me´dia dos nu´meros x1, . . . , xn. Mas note que o ca´lculo do desvio padra˜o, atrave´s desta fo´rmula,
exige o ca´lculo pre´vio da me´dia e portanto os nu´meros devem estar todos dispon´ıveis ao mesmo tempo,
na memo´ria do computador, para o ca´lculo do desvio padra˜o.
20. Escreva um programa em C que leˆ um natural n e imprime o seguinte triaˆngulo:
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
O exemplo acima corresponde ao caso em que n = 6. E´ poss´ıvel fazer o programa com apenas dois lac¸os
encaixados. Na˜o use vetores.
21. Escreva um programa que leˆ um nu´mero inteiro n e imprime uma figura da seguinte forma:
x+++++
+x++++
++x+++
+++x++
++++x+
+++++x
No caso, a figura foi impressa com n = 6.
22. Escreva um programa que leˆ um inteiro n e imprime uma figura da seguinte forma:
....*....
...***...
..*****..
.*******.
*********
.*******.
..*****..
...***...
....*....
No caso, a figura foi impressa com n = 5. A quantidade de linhas impressas e´ 2n− 1.
23. Um nu´mero inteiro na˜o-negativom e´ um subnu´mero de outro nu´mero inteiro na˜o-negativo n se osd´ıgitos
de m aparecem na mesma ordem consecutivamente na sequeˆncia de d´ıgitos de n. Por exemplo, 201 e´
subnu´mero de 32017, mas 201 na˜o e´ subnu´mero de 24017. Escreva um programa em C que leˆ inteiros m
e n e verifica se m e´ subnu´mero de n.
3

Outros materiais