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")
}
}
