Escolar Documentos
Profissional Documentos
Cultura Documentos
INFORMAÇÕES DOCENTE
CURSO: DISCIPLINA: MANHÃ TARDE NOITE PERÍODO/SALA:
ENGENHARIA DE SOFTWARE ALGORITMOS E ESTRUTURAS DE TURNO 1º
x
DADOS I
PROFESSOR (A): João Paulo Carneiro Aramuni
INFORMAÇÕES DISCENTE
ALUNO(A): RA:
DATA: NOTA:
INSTRUÇÕES:
1) Você poderá consultar todo o seu material construído em laboratório, bem como os seus projetos do GitHub, além do seu caderno.
2) Para programar, você poderá utilizar a IDE Eclipse, o Code::Blocks, e também qualquer compilador online que julgar necessário.
3) Não será permitido o uso de ferramentas de inteligência artificial, como ChatGPT, Copilot, Tabnine, entre outros.
4) Não será permitido acessar o GitHub de outros alunos durante a prova. Apenas o seu. Também não será permitido usar o Google.
5) Não será permitido o uso de celulares, relógios digitais ou de qualquer outro aparelho eletrônico durante a realização da prova.
6) Será eliminado do processo avaliativo, com atribuição de nota 0 (zero), o aluno que, durante a prova, utilizar meios ilícitos, como por exemplo:
comunicação com outros alunos, consulta a qualquer tipo de material extraprova e uso de aparelhos eletrônicos não autorizados.
7) O projeto da prova deverá ser disponibilizado no seu GitHub, em um repositório chamado AV1_AEDS1, e a URL deverá ser entregue pelo CANVAS.
Exemplo: github.com/joaosilva/AV1_AEDS1. Não se preocupe em fazer o upload da pasta Debug (que contém o executável), apenas da pasta SRC
(que contém o código).
Boa Prova!
[20 pts] Questão 1) O problema de Monty Hall, também conhecido por paradoxo de
Monty Hall é um problema que surgiu a partir de um concurso televiso dos Estados
Unidos chamado Let’s Make a Deal, exibido na década de 1970.
O jogo consistia no seguinte: Monty Hall, o apresentador, apresentava três portas aos
concorrentes. Atrás de uma delas estava um prêmio (um carro) e, atrás das outras duas,
dois bodes.
1
Na 1ª etapa o concorrente escolhe uma das três portas (que ainda não é aberta):
Na 2ª etapa, Monty abre uma das outras duas portas que o concorrente não escolheu,
revelando que o carro não se encontra nessa porta e revelando um dos bodes;
Construa um algoritmo em C para criar o jogo do Monty Hall. Você precisará utilizar a
função srand() da biblioteca <stdlib.h> para inicializar o gerador de números
pseudoaleatórios e a função rand() para gerar o número pseudoaleatório (sortear a porta
premiada). Na Dica 2 você encontrará o código para realizar este sorteio.
2
Você também precisará utilizar a função time() para auxiliar na geração do número
pseudoaleatório. A função time() retorna o número de segundos desde a época,
geralmente 1 de janeiro de 1970. Quando usada dentro da função srand(), ela fornece
uma maneira de inicializar o gerador de números pseudoaleatórios com uma semente
diferente em cada execução do programa, baseada no tempo atual. Isso garante que a
sequência de números gerada pela função rand() seja diferente em cada execução do
programa, ajudando a evitar padrões repetitivos e tornando os números aparentemente
mais aleatórios.
#include <stdlib.h>
#include <time.h> // Para auxiliar a função rand
Você precisará também de estruturas do tipo do-while e if-else. A solução final possui
aproximadamente 60 linhas de código.
E para ler a opção de sim ou não: s/n (char), para trocar de porta, utilize:
char opcao;
scanf(" %c", &opcao);
3
Dica 4: Lembre-se de utilizar | | para testar condições com o operador OR (ou) ou &&
para o operador AND (e).