You are on page 1of 3

Exerccios do livro:

Aprendendo a programar na linguagem C para iniciantes - Jaime Evaristo



Pgina PDF: 17
1.11 Exerccios propostos
1. Trs ndios, conduzindo trs brancos, precisam atravessar um rio dispondo para tal um
barco cuja capacidade de apenas duas pessoas. Por questes de segurana, os ndios no
querem ficar em minoria, em nenhuma situao e em nenhuma das margens. Escreva um
algoritmo que oriente os ndios para realizarem a travessia nas condies fixadas (cabe
observar que, usualmente, este exerccio enunciado envolvendo trs jesutas e trs canibais.
A alterao feita uma modesta contribuio para o resgate da verdadeira histria dos ndios).
1. Atravessar 1 branco e 1 ndio.
2. Retornar 1 ndio.
3. Atravessar 2 brancos.
4. Retornar 1 branco.
5. Atravessar 2 ndios.
6. Retornar 1 branco e 1 ndio.
7. Atravessar 2 ndios.
8. Retornar 1 branco.
9. Atravessar 2 brancos.
10. Retornar 1 branco.
11. Atravessar 2 brancos.

2. O jogo conhecido como Torre de Hani consiste em trs torres chamadas origem, destino e
auxiliar, e um conjunto de n discos de dimetros diferentes, colocados na torre origem na
ordem decrescente dos seus dimetros. O objetivo do jogo , movendo um nico disco de
cada vez e no podendo colocar um disco sobre outro de dimetro menor, transportar todos
para a torre destino, podendo usar a torre auxiliar como passagem intermediria dos discos.
Escreva algoritmos para este jogo nos casos n = 2 e n = 3.
Para n = 2:
Disco de menor dimetro = B
Disco de maior dimetro = A
B est sobre de A na torre origem.
1. Colocar B na torre auxiliar.
2. Colocar A na torre destino.
3. Colocar B sobre A na torre destino.

Para n = 3:
Disco de menor dimetro = C
Disco de mdio dimetro = B
Disco de maior dimetro = A
C est sobre B que est sobre A na torre origem.
1. Colocar C na torre destino.
2. Colocar B na torre auxiliar.
3. Colocar C sobre B na torre auxiliar.
4. Colocar A na torre destino.
5. Colocar C na torre origem.
6. Colocar B na torre destino.
7. Colocar C na torre destino.

3. Imagine que se disponha de trs esferas numeradas 1, 2 e 3 iguais na forma, duas delas com
pesos iguais e diferentes do peso da outra. Escreva um algoritmo que, com duas pesagens
numa balana de dois pratos, determine a esfera de peso diferente e a relao entre seu peso
e o peso das esferas de pesos iguais.
1. Colocar 1 esfera em cada prato.
1.1. Se a balana ficar equilibrada, a mais pesada a esfera que no foi includa na pesagem.
1.1. Se a balana pender para um lado, a esfera mais pesada a que estiver nesse lado.
Sabendo agora qual a mais pesada, chamaremos a mais pesada A, e as mais leves de B e C.
2. Colocar a esfera A num prato e B e C juntas no outro prato.
2.1. Se a balana ficar equilibrada, ento, o peso de A = B + C.
2.2. Se a balana pender para o lado da esfera A, ento, o peso de A > B + C.
2.3. Se a balana pender para o lado das esferas B e C, ento, o peso de A < B + C.

4. A mdia geomtrica de n nmeros positivos a raiz n-sima do produto destes nmeros.
Supondo que o processador capaz de calcular razes n-simas, escreva um algoritmo para
determinar a mdia geomtrica de n nmeros dados.
1. Receba os n nmeros.
2. Faa o produto de todos.
3. Determine sua raiz n-sima.

5. Sabendo que o dia 01/01/1900 foi uma segunda-feira, escreva um algoritmo que determine
o dia da semana correspondente a uma data, posterior a 01/01/1990, dada. Por exemplo, se a
data for 23/01/1900, o algoritmo deve fornecer, como resposta, tera-feira.
1. Receba a data 01/01/1900.
2. Receba o dia da data que voc quer saber (23) e faa = a. a = 23
3. Receba o ms da data que voc quer saber (1) e faa =b. b = 1
4. Receba o ano da data que voc quer saber (1900) e faa = c. c = 1900.
5. Faa a 1 = x. 23 1= 22.
6. Faa b 1 = y. 1 1 = 0.
7. Faa c 21900 = z. 1900 1900 = 0.
8. Sabemos que:
8.1. Se somarmos 1 ao dia de segunda-feira, teremos uma tera-feira.
8.2. Se somarmos 2 ao dia de segunda-feira, teremos uma quarta-feira.
8.3. Se somarmos 3 ao dia de segunda-feira, teremos uma quinta-feira.
8.4. Se somarmos 4 ao dia da segunda-feira, teremos uma sexta-feira.
8.5. Se somarmos 5 ao dia da segunda-feira, teremos um sbado.
8.6. Se somarmos 6 ao dia da segunda-feira, teremos um domingo.
8.7. Se somarmos 7 ao dia da segunda-feira, teremos uma segunda-feira novamente.
9. Faa x ser subtrado pelo maior mltiplo de 7.
Ou seja:
Se x > 7 e x < 14, faa i = x 7.
Se x > 14 e x < 21, faa i = x 14.
Se x > 21 e x < 28, faa i = x 21.
Se x > 28 e x < 35, faa i = x 28.
No nosso caso, x = 22. Ento i = x 21. i = 22 21. i = 1.
10. J sabemos que se somarmos 1 ao dia da segunda-feira, teremos uma tera-feira, ento:
Faa r = i + dia da segunda-feira. r = 1 + 1.
11. R = tera-feira.