Vamos a mais uma dúvida na aula de hoje. Como simular 200 lançamentos de um dado e calcular a porcentagem da ocorrência de cada um dos lados?
Exercício: Escreva um algoritmo no Portugol que simule 200 lançamentos de um dado de seis lados. Por fim, o algoritmo deverá informar:
1) Quantas vezes ocorreram cada uma das faces do dado.
2) O percentual de ocorrência de cada uma das faces.
3) O percentual de ocorrências de faces ímpares e faces pares.
Para simular o lançamento de um dado podemos sortear números com a função sorteia da biblioteca Util delimitando os intervalos entre 1 e 6, como a seguir:
// sorteando números aleatórios entre 1 e n = Util.sorteia(1, 6)
Como precisamos calcular o percentual de ocorrência de cada uma das faces, podemos usar um vetor de inteiros de tamanho 7 para acumular o somatório de cada uma das faces sorteadas nas posições de 1 a 6, como a seguir:
inteiro n, i inteiro quantidades[7] = {0,0,0,0,0,0,0}// índices: 0 1 2 3 4 5 6 para(i = 1; i <= 200; i++){ n = Util.sorteia(1, 6) // sorteia um número entre 1 a 6 quantidades[n]++ // conta mais um na posição sorteada } // --------- OU AINDA (sem a variável n) ------------- para(i = 1; i <= 200; i++) quantidades[Util.sorteia(1, 6)]++ // conta mais um na posição sorteada
Também precisamos contar os pares e os ímpares. Isso pode ser feito facilmente com um teste, como a seguir:
inteiro n, i, par = 0, impar = 0 inteiro quantidades[7] = {0,0,0,0,0,0,0}// 0 1 2 3 4 5 6 para(i = 1; i <= 200; i++){ n = Util.sorteia(1, 6) quantidades[n]++ se(n % 2 == 0) // resto de n dividido por 2 é igual a zero? par++ senao impar++ }
Por fim, precisamos agora calcular o percentual de pares, ímpares e de cada face do dado, como feito a seguir:
escreva("Pares: ", par, "\t", (par * 100.0) / 200.0, "%\n") // porcentagem de pares escreva("Ímpares: ", impar, "\t", (impar * 100.0) / 200.0, "%\n\n") // porcentagem de ímpares // porcentagem de cada face para(i = 1; i < 7; i++) escreva(i, " = ", quantidades[i], "\t", (quantidades[i] * 100.0) / 200.0, "%\n")
Código completo em Portugol para simular o lançamento de 200 dados
programa{ inclua biblioteca Util /* * Escreva um algoritmo no Portugol Studio que simule 200 lançamentos de um dado de seis lados. Por fim, o algoritmo deverá informar: 1) Quantas vezes ocorreram cada uma das faces do dado. 2) O percentual de ocorrência de cada uma das faces. 3) O percentual de ocorrências de faces ímpares e faces pares. Escrito por Wagner Gaspar Abril de 2021 */ funcao inicio() { inteiro n, i, par = 0, impar = 0 inteiro quantidades[7] = {0,0,0,0,0,0,0}// 0 1 2 3 4 5 6 para(i = 1; i <= 200; i++){ n = Util.sorteia(1, 6) quantidades[n]++ se(n % 2 == 0) par++ senao impar++ } escreva("Pares: ", par, "\t", (par * 100.0) / 200.0, "%\n") escreva("Ímpares: ", impar, "\t", (impar * 100.0) / 200.0, "%\n\n") para(i = 1; i < 7; i++) escreva(i, " = ", quantidades[i], "\t", (quantidades[i] * 100.0) / 200.0, "%\n") } }