MAPA – ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I – 52/2023
A Sociedade Brasileira de Computação (SBC) promove, anualmente, a maratona de programação. Nesse evento, competidores de toda a América Latina competem em um desafio em que o raciocínio matemático e a capacidade de trabalhar sob pressão são avaliados a níveis extremos. Em uma de suas edições, a SBC incluiu um exercício que faz
referência ao jogo “Zerinho ou Um” – também conhecido como “Dois ou Um” em algumas localidades do país. O jogo funciona como descrito a seguir:
“Cada jogador escolhe um valor entre zero ou um; ao som de um comando (geralmente um dos competidores anuncia em voz alta “Zerinho ou… Um!”), todos os participantes mostram o valor escolhido, utilizando uma das mãos: se o valor escolhido foi um, o competidor mostra o dedo indicador estendido; se o valor escolhido foi zero, mostra a mão com todos os dedos fechados. O ganhador é aquele que tiver escolhido um valor diferente
de todos os outros; se não há um jogador com valor diferente de todos os outros (por exemplo, todos os jogadores escolhem zero, ou um grupo de jogadores escolhe zero e outro grupo escolhe um), não há ganhador”.
Fonte: https://maratona.ime.usp.br/hist/2013… df.
Acesso em: 14 abr. 2023. Ana, Bob e Carlos são grandes amigos e jogam “Zerinho ou Um” toda hora: para determinar quem será o motorista da rodada, quem pagará a conta etc.
Jogam tanto que resolveram fazer um aplicativo de celular para jogar. Dados os três valores escolhidos por Ana, Bob e Carlos, cada valor zero ou um, observe um dos possíveis algoritmos que determina, automaticamente, se há e quem é o ganhador:
Fonte: http://maratona.ime.usp.br/hist/2013/… df.
Acesso em: 14 abr. 2023. O algoritmo recebe como entrada três valores inteiros que serão armazenados nas variáveis A, B e C, indicando os valores escolhidos por Ana, Bob e Carlos, respectivamente. O algoritmo produz uma única saída, imprimindo apenas um caractere. Se a vencedora for Ana, ele imprime a letra “A” na tela; se o vencedor for Bob, é exibido o caractere “B” na tela; se Carlos for o ganhador, então se imprime “C”; por fim, se não houver vencedor, um asterisco “*” é impresso na tela.
Deve-se considerar que o usuário do algoritmo sempre digitará ou o número um (1) ou o número zero (0). Isto é, o algoritmo não trata as entradas que não estiverem dentro do padrão de zero ou um – e isso não deve ser sua preocupação nesse momento. Em suma, se o usuário informar valores diferentes de zero ou um, devemos ignorar a saída produzida pelo programa.
Observe alguns exemplos de entradas e saídas de nosso algoritmo: Entradas Saída Correspondente A (Ana) B (Bob) C (Carlos)
1 1 1 “*”
1 1 0 “C”
1 0 1 “B”
1 0 0 “A”
0 1 1 “A”
0 1 0 “B”
0 0 1 “C”
0 0 0 “*”
Fonte: adaptada de: http://maratona.ime.usp.br/hist/2013/…
fase2013/maratona.pdf. Acesso em: 14 abr. 2023.
Perceba que o algoritmo apesentado é apenas um dentre as várias possibilidades. Inclusive, tal algoritmo poderia ter muito menos linhas de código se você utilizasse estruturas de decisão com condições compostas por operações relacionais e, também, operações lógicas. Considere, ainda, que a variável A se refere ao número escolhido por Ana; a variável B ao número escolhido por Bob; e C ao número escolhido por Carlos. Considere, ainda, que o operador de conjunção deve ser representado pela letra “E”, conforme a sintaxe abordada no livro oficial da disciplina. Assim, responda o que se pede:
1- Como você faria para elaborar uma única condição lógico-relacional composta apenas pelo uso de operadores de igualdade e, também, o operador de conjunção, para aferir se não houve ganhador (ou seja, se houve empate)?
2- Como você faria para elaborar uma única condição lógico -relacional composta
apenas pelo uso de um operador de desigualdade, um operador de igualdade e,
também, o operador de conjunção, para aferir se a ganhadora foi Ana?
3- Como você faria para elaborar uma única condição lógico-relacional composta apenas pelo uso de um operador de desigualdade, um operador de igualdade e, também, o operador de conjunção, para aferir se o ganhador foi Bob?
4- Como você faria para elaborar uma única condição lógico -relacional composta apenas pelo uso de um operador de desigualdade, um operador de igualdade e, também, o operador de conjunção, para aferir se o ganhador foi Carlos?
Dicas para realizar a atividade MAPA:
- Durante as aulas o professor fornecerá dicas que podem ser utilizadas para a confecção das suas atividades, assim é de suma importância participar da aula ao vivo, ou assisti- la posteriormente.
- Assista ao vídeo explicativo da atividade MAPA.
- Assista às aulas conceituais da disciplina.
Como entregar a atividade:
Utilize o template disponível no material da disciplina para responder e enviar sua atividade. A entrega da atividade deve ser em um documento do tipo Word (.docx) ou em PDF (.pdf).