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