Trabalho Prático Nº1 
 Objectivos e Organização 
Este trabalho prático tem como  principais 
objectivos: 
-  familiarização com o computador em ambiente linux, e com algumas ferramentas de apoio à programação, tais como um editor vi/emacs;
-  iniciação à codificação, na linguagem imperativa C, das estruturas de dados e dos algoritmos concebidos e à execução e teste e dos programas escritos;
-  introdução à documentação dos projectos de programação realizados usando o processador LaTeX.
Para o efeito,
esta folha contém seis enunciados, dos quais deverá resolver 
dois (poderá resolver mais mas só dois serão avaliados).
O 
relatório a elaborar, deve ser claro e 
sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.
Como foi dito, o relatório terá de ser escrito em 
LaTeX sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos 
trabalhos práticos.
 Enunciados 
 O Adivinho 
Escreva um programa em 
C que adivinhe um número (a chave) entre 1 e 100 escolhido pelo utilizador.
Em cada tentativa,  programa palpita um número e o utilizador indica se acertou,
ou então se é maior ou menor que a chave.
O jogo prossegue até o computador acertar, ou até se atingir um número 
N (dado) de tentativas.
 O Adivinho Sofisticado 
Escreva um programa em 
C que escolha (use o gerador de números aleatórios da linguagem 
C, 
rand()) um número (a chave) entre 1 e 100 que terá de ser adivinhado pelo utilizador.
Em cada tentativa,  o utilizador introduz o número palpitado e o computador indica se acertou, ou então se é maior ou menor que a chave.
O jogo prossegue até o utilizador acertar, ou até atingir um número 
N (dado) de tentativas.
 O Sabichão Matemático 
Escreva um programa em 
C que escolha (use o gerador de números aleatórios da linguagem 
C, 
rand()) dois números (os operandos) entre 0 e 10 e, depois de os mostrar ao utilizador, pergunte o valor do produto.
Ao fim de 
N (dado) de tentativas, o computador indica o número de vezes que o utilizador levou para acertar.
Se quiser tornar o seu programa mais interessante, gere também aleatoriamente a operação (adição, multiplicação, subtracção ou divisão) que o utilizador deve fazer.
 Dados da Sorte 
Escreva um programa em 
C que  simule o lançamento de 2 dados (use o gerador de números aleatórios da linguagem 
C, 
rand()) e indique ao fim de quantas jogadas é que ambas as faces sorteadas são iguais (ostentam o mesmo valor).
 Dados da Sorte 2 
Escreva um programa em 
C que  simule o lançamento de 2 dados (use o gerador de números aleatórios da linguagem 
C, 
rand()) e indique ao fim de quantas jogadas é que a soma do valor sorteado em cada dado é um número par.
 21 fósforos 
Escreva um programa em 
C que  implemente o jogo dos fósforos: no início há 21 fósforos sobre a mesa; em cada jogada, cada jogador deve retirar entre 1 e 4 fósforos, perdendo aquele que retirar o último.
 A estratégia ganhadora é o segundo jogador  retirar sempre a diferença para 5 do número retirado pelo primeiro jogador.
O seu programa deve dar a escolher ao utilizador qual dos dois começa a jogar e, caso o computador seja o segundo a jogar deverá ganhar sempre, se fôr o primeiro deverá ganhar se o utilizador cometer um erro de estratégia.
-- 
JoseCarlosRamalho - 27 Feb 2004