Skip to content

Instantly share code, notes, and snippets.

@jeffersonchaves
Created February 10, 2023 18:25
Show Gist options
  • Save jeffersonchaves/466e35c3f39493f41176837484e0c5c0 to your computer and use it in GitHub Desktop.
Save jeffersonchaves/466e35c3f39493f41176837484e0c5c0 to your computer and use it in GitHub Desktop.
loteria.port
programa
{
inclua biblioteca Util
inteiro listaSorteados[50] //maior numero de dezenas possível
funcao inicio()
{
mega()
}
funcao mega(){
const real PRECOS[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.50, 17.0} //tem outros valores
const inteiro MENOR = 1
const inteiro MAIOR = 60
const inteiro MIN = 6
const inteiro MAX = 20
inteiro qntdDezenas
inteiro qntdJogos
real custoDaJogatina
escreva("Quantas dezenas deseja?")
leia (qntdDezenas)
enquanto(qntdDezenas < 6 ou qntdDezenas > 20){
escreva("Quantidade inválida. Quantas dezenas deseja?")
leia (qntdDezenas)
}
escreva("Quantos jogos?")
leia (qntdJogos)
para(inteiro i=0; i < qntdJogos; i++){
escreva("\n\nSorteio: ", i+1)
sorteiaDezenas(qntdDezenas, MENOR, MAIOR)
ordenarLista(qntdDezenas)
mostraSorteados(qntdDezenas)
}
custoDaJogatina = qntdJogos * PRECOS[qntdDezenas]
escreva("\n\nSuas apostas custaram: R$", custoDaJogatina)
}
funcao quina(){
const real PRECOS[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.50, 17.0} //tem outros valores
const inteiro MENOR = 1
const inteiro MAIOR = 80
const inteiro MIN = 5
const inteiro MAX = 20
inteiro qntdDezenas
inteiro qntdJogos
real custoDaJogatina
escreva("Quantas dezenas deseja?")
leia (qntdDezenas)
enquanto(qntdDezenas < 6 ou qntdDezenas > 20){
escreva("Quantidade inválida. Quantas dezenas deseja?")
leia (qntdDezenas)
}
escreva("Quantos jogos?")
leia (qntdJogos)
para(inteiro i=0; i < qntdJogos; i++){
escreva("\n\nSorteio: ", i+1)
sorteiaDezenas(qntdDezenas, MENOR, MAIOR)
ordenarLista(qntdDezenas)
mostraSorteados(qntdDezenas)
}
custoDaJogatina = qntdJogos * PRECOS[qntdDezenas]
escreva("\n\nSuas apostas custaram: R$", custoDaJogatina)
}
funcao sorteiaDezenas(inteiro dezenas, inteiro min, inteiro max){
//PARA SER FEITO: garantir que não existam valores repetidos
inteiro sorteado = 0
logico estaRepetido = falso
para(inteiro i=0; i < dezenas; i++){
estaRepetido = falso
sorteado = sorteia(min, max)
//ESTE PONTO É APENAS PARA VERIFICAR SE O NUMERO
//NÃO ESTÁ REPETIDO
para(inteiro j=0; j < dezenas; j++){
se(listaSorteados[j] == sorteado){
estaRepetido = verdadeiro
pare
}
}
se(nao estaRepetido){
listaSorteados[i] = sorteado
} senao {
i--
}
}//fim do bloco para
escreva("\n")
}
funcao ordenarLista(inteiro qntdDezenas){
inteiro aux
para(inteiro j=0; j < qntdDezenas - 1; j++){
para(inteiro i=0; i < qntdDezenas - 1 - j; i++){
se(listaSorteados[i] > listaSorteados[i+1]){
aux = listaSorteados[i]
listaSorteados[i] = listaSorteados[i+1]
listaSorteados[i+1] = aux
}
}
}
}
funcao mostraSorteados(inteiro dezenasNaLista){
para(inteiro i=0; i < dezenasNaLista; i++){
escreva(listaSorteados[i], " - ")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment