-
Notifications
You must be signed in to change notification settings - Fork 2
8. Desafios
Dojo é um local de treinamento de artes marciais. Se tratando de programação, é um local onde treinamos código de maneira colaborativa.
Existem 3 papéis:
- Piloto: pessoa que ficará no teclado programando
- Co-piloto: pessoa que irá orientar quem está no comando
- Público: irá observar o que está sendo feito e auxiliar caso o piloto e o co-piloto tenha algum impedimento
Informações importantes:
- Cada pessoa fica 5min no computador
- Dojo não é uma competição, seguimos baby steps (pequenos passos para cumprir o objetivo)
- Utilizamos boas práticas e testes (no caso do portugol vamos fazer teste de mesa)
Escreva um programa que simule o sorteio da Megasena. No final, o seu programa deverá imprimir 6 números distintos separados por espaço.
Exemplo de sorteio válido:
Um dos conceitos bases utilizados na computação é dividir um problema em pequenas partes com o objetivo de facilitar a resolução do problema maior. Vamos seguir a mesma ideia no Dojo.
Todo programa precisa começar de alguma base. Algumas linguagens de programação são executadas a partir de um bloco de código conhecido como função principal. E isso não é diferente no Portugol. Vamos criar a nossa estrutura base para o algoritmo da Megasena.
1.1. Crie a função principal do seu programa
1.2. Escreva uma função que retorne um número inteiro entre 1 e 60 (números válidos para a Megasena)
Dica: Existe uma biblioteca* chamada Util em portugol que possui uma função chamada sorteia onde os parâmetros são dois números inteiros que determinam o intervalo do sorteio. Para usá-la use o comando no início do seu programa: inclua biblioteca Util → apelido. O apelido é opcional, mas facilita quando o nome da biblioteca é grande. Assim, você não precisa ficar chamando a biblioteca pelo seu nome e sim pelo apelido
*Uma biblioteca em programação é você utilizar um trecho de código já escrito por outro programador, assim você pode se concentrar apenas na tarefa que deve ser feita
1.3. Chame a função sorteio na função principal e exiba o número na tela para o usuário
Quem acerta os 6 números na Megasena ganha o prêmio máximo, vamos simular o sorteio desses 6 números da sorte.
2.1. Chame a função sorteio 6 vezes na função principal para simular um sorteio da Megasena
2.2. Salve o resultado do sorteio em alguma estrutura de dados
Estrutura de dados é a uma maneira de armazenar um ou mais elementos no computador. Considere uma estrutura como uma coleção de dados
No jogo da Megasena, o sorteio sempre considera números únicos, ou seja, sem repetição. Vamos tratar isso em nosso código.
3.1. Pense e implemente uma maneira de não salvar números repetidos na estrutura que você criou no passo 2.2
Dica: Lembrem-se que a cada número sorteado você pode compará-los com os números anteriores
3.2. Exiba o resultado do sorteio na tela
No sorteio da Megasena, é comum que o resultado exibido seja sempre em ordem crescente dos números como na imagem abaixo:
Vamos implementar isso em nosso programa.
4.1. Ordene a estrutura com os números sorteados em ordem crescente. Para isso, o primeiro elemento <
segundo elemento < … <
último elemento.
Para conseguir fazer uma ordenação, existem vários algoritmos que podem ser utilizados. Aqui, como desafio, iremos fazer o algoritmo de ordenação chamado “Bubble Sort”. Seu funcionamento pode ser visto nesse vídeo.
Dica 1: Lembre-se dos conceitos aprendidos sobre laços de repetição e condicionais. Se esses conceitos não ficaram claros PARE e volte na seção 7 (7. Conceitos Básicos da Lógica de Programação).Se necessário, consulte materiais extras sobre o assunto. Quando tiver compreendido seu funcionamento volte a fazer o desafio.
Dica 2: Implemente uma função que faça a ordenação e receba como parâmetro a estrutura com os números sorteados feito no passo 3
4.2. Exiba o resultado para o usuário
5.1. Exiba o resultado final para o usuário
5.2. Validar que todos os cenários do algoritmo estão satisfeitos
Dica: Usar teste de mesa - https://www.youtube.com/watch?v=Atcfaafvs4M. Às vezes utilizado como “Debug”* manual
Debug é um termo apontado pela analista Grace Hopper que significa tentar encontrar e reduzir os defeitos. O termo surgiu na época em que os computadores ocupavam uma sala e realmente o que estava causando erro na máquina era um inseto (bug), daí o termo “debuggar”