Segundo Exercício-Programa Data de entrega: até 12 de maio de 2005.
Uma máquina de apostas ``caça-níqueis'' funciona da seguinte
forma: a máquina tem três rolos (
e
), sendo que
cada rolo tem cinco figuras (
e
). Cada vez que
a máquina é acionada, os rolos giram até parar em uma
posição aleatória, apresentando uma das figuras.
Escreva um programa para simular o funcionamento dessa máquina. Para tanto, voce precisará de um gerador de números aleatórios entre 1 e 5. Para implementar o gerador de números aleatórios, seu programa deve proceder da seguinte maneira:
Primeiro, o programa deve inicializar uma variável
com um valor real:
y = 0.<seu número USP> /* exemplo: y = 0.5262199 */
Depois deve ser feito o seguinte cálculo:
x = (9821.0 * fabs(seno(y)) + 0.211327) (1)
y = x - floor(x) (2)
onde fabs(x) é uma função que devolve o módulo de x,
floor(x) é uma função que devolve o maior inteiro não maior que x,
seno(x) é uma função que calcula o seno de
usando o método descrito adiante.
As fórmulas em (1) e (2) (nesta ordem) fornecem um número no intervalo
. Para obter um número inteiro no intervalo [1,5] basta fazer o
seguinte cálculo:
figura = (y * 5) + 1; (3)
Observe que a variável ``figura'' fornece uma figura sorteada. Para obtermos novas figuras, os cálculos (1), (2) e (3) devem ser repetidos considerando o valor mais recente de ``y''. Como o valor de ``y'' é alterado a cada novo cálculo, obtemos sempre uma nova figura como resultado.
Se a distribuição das figuras produzidas dessa maneira for uniforme, as seguintes probabilidades devem ser obtidas (experimente deduzi-las e verificar se os valores abaixo estão corretos):
| prob
|
prob
|
prob
|
prob |
Seu programa deve permitir que o usário escolha uma entre quatro alternativas:
Cálculo do seno
Seu programa deve ter pelo menos uma função:
double seno(double x)
{
...
}
Essa função deve calcular os valores do seno(
Exemplo de funcionamento de programa
A saída do programa não precisa ser exatamente como a mostrada a seguir. Você pode deixá-la mais bonita, se o desejar, colocando, por exemplo, o histograma na vertical (não é complicado, pense a respeito).
Bem vindo ao programa CaçaNíqueis!!! Suas opções são:
0 - sair do programa
1 - aposta só na figura f1
2 - aposta em três figuras iguais
3 - aposta em qualquer prêmio
4 - modo de aferição
Digite a opção desejada: 1
Você apostou em f1...
Figuras sorteadas: f2 f4 f3
Infelizmente você perdeu!
Digite a opção desejada: 3
Você apostou em qualquer prêmio...
Figuras sorteadas: f5 f3 f5
Você ganhou X!
Digite a opção desejada: 3
Você apostou em qualquer prêmio...
Figuras sorteadas: f2 f2 f2
Você ganhou 2*X!
Digite a opção desejada: 4
Modo de aferição, digite o número de apostas: 60
Valor de N: 60
Resultados:
Prêmio 1 2 3 4
Ocorrências 15 14 12 19
Histograma:
1 *********************************************
2 ******************************************
3 ************************************
4 *********************************************************
Premio X: esperado 33.6, obtido 15, diferenca -18.6
Premio 2X: esperado 1.9, obtido 14, diferenca 12.1
Prêmio 4X: esperado 0.5, obtido 12, diferenca 4.3
Prêmio 0: esperado 24.0, obtido 19, diferenca: -5.0
Digite a opção desejada: 0
Volte sempre!!!
Todos os exercícios-programas devem ter o seguinte cabeçalho:
/********************************************************/
/* Fulano de Tal */
/* Exercicio-Programa xx */
/* Curso yy - Turma zz -- Professor: Ciclano de Tal */
/* Computador: ..... */
/* Compilador: ..... */
/********************************************************/