Departamento de Ciência da Computação - IME-USP
Segundo Exercício-Programa --- Data de entrega: até 31 de maio de 2001.
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 , | probver navios . |
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() USANDO OBRIGATORIAMENTE a seguinte aproximação:
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: ..... */ /********************************************************/