Skip to content

Instantly share code, notes, and snippets.

@PauloLuan
Created June 7, 2020 08:03
Show Gist options
  • Save PauloLuan/0caa9e2e13da9bc0b6fde63f3811d43a to your computer and use it in GitHub Desktop.
Save PauloLuan/0caa9e2e13da9bc0b6fde63f3811d43a to your computer and use it in GitHub Desktop.
comprar_macas_algoritmo
Processo de comprar maçãs começa
Para quitanda 0, quitanda 1 e quitanda 2, execute em sequencia:
Processo de visitar a quitanda começa
Ir à quitanda
Se a quitanda não estiver aberta, termina o "processo de visitar quitanda" atual
Se não houverem maçãs nessa quitanda, termina o "processo de visitar quitanda" atual
Se não houverem maçãs Fuji nessa quitanda, termina o "processo e visitar quitanda" atual
Se houver menos de 1 kilo de maçãs Fuji nesta quitanda, termina o "processo de visitar quitanda" atual
Se o preço das maçãs Fuji nesta quitanda for maior que 1 dólar / kilo, executar 3 vezes:
Início do processo de barganha
Perguntar ao vendedor se ele reduziria o preço para 1 dólar / kilo ou menos
Se o proprietário quiser, pule o resto do "processo de barganha"
Fim do processo de barganha
Se o preço das maçãs Fuji nesta quitanda ainda for maior que 1 dólar por kilo, termina o "processo de visitar a quitanda" atual
Abrir uma sacola como sacola atual
Repetir o processo seguinte até o peso total ser maior que 1 kilo:
Processo de empacotar maçãs começa
Escolha a melhor de todas as maçãs Fuji que não estão na sacola
Se a maçã pode ser colocada na sacola atual, coloque a maçã na sacola atual. Caso contrário, execute:
Processo de trocar de sacola começa
Se eu tiver sacolas restantes, selecione uma delas como sacola atual, caso contrário execute:
Iniciar processo de pedir uma sacola ao vendedor
Peça uma sacola para o vendedor
Se o vendedor recusar-se a me dar uma sacola, retira todas as maçãs de todas as minhas sacolas e termine o "processo de visitar quitanda" atual
Pegar a sacola que o vendedor me deu como sacola atual
Fim do processo de pedir uma sacola ao vendedor
Fim do processo de trocar de sacola
Medir o peso total de todas as maçãs em minhas sacolas
Fim do processo de empacotar maçãs
De acordo com o peso total de todas as maçãs em minhas sacolas e o preço dado pelo vendedor, calcular o preço que devo pagar
Perguntar ao vendedor sobre o preço que devo pagar
Se eu não aceitar o preço pedido pelo vendedor, executarei três vezes:
Início do processo de revisão
Explicar meu preço calculado ao vendedor e perguntar se ele concorda
Se o vendedor concorda, pular o resto do processo de revisão
Fim do processo de revisão
Se eu ainda não aceitar o preço, tirar todas as maçãs de todas as minhas sacolas e terminar o "processo de visitar quitanda" atual
Se eu não tiver dinheiro, tirar todas as maçãs de todas as minhas sacolas e terminar o "processo de visitar quitanda" atual
Pagar pelas maçãs
Pular o resto dos "processo de visitar quitanda"
Fim do processo de visitar quitanda
Fim do processo de comprar maçãs
Processo de comprar maçã começa
Ir nas quitandas 0, quitanda 1 e quitanda 2, executar em sequência:
"Processo de perguntar o preço da maçã Fuji na quitanda" começa
Ir à quitanda
Se a quitanda não estiver aberta, considerar o preço da maçã nessa quitanda como infinitos dólares / kilo, então termine o "processo de perguntar o preço da maçã Fuji" atual
Se não houverem maçãs nessa quitanda, considerar o preço da maçã nessa quitanda como infinitos dólares / kilo, então termine o "processo de perguntar o preço da maçã Fuji" atual
Se não houverem maçãs Fuji nessa quitanda, considerar o preço da maçã nessa quitanda como infinitos dólares / kilo, então termine o "processo de perguntar o preço da maçã" atual
Se houverem menos de um kilo de maçãs Fuji nessa quitanda, considerar o preço da maçã nessa quitanda como infinitos dólares / kilo, então termine o "processo de perguntar o preço da maçã" atual
Perguntar ao vendedor sobre o preço da maçã Fuji e gravá-lo
Fim do "processo de perguntar o preço da maçã"
Escolher a quitanda com o menor preço entre as 3 (se houver justaposição, escolher aleatoriamente) como quitanda alvo
Se o preço da maçã Fuji na quitanda alvo for infinitos dólares / kilo, terminar o "processo de comprar maçã" atual
Ir à quitanda alvo
Se o preço da maçã Fuji nessa quitanda for maior que 1 dólar / kilo, executar 3 vezes:
Início do processo de barganha
Perguntar ao vendedor se ele reduziria o preço para 1 dólar / kilo ou menos
Se o vendedor quiser, pular o restante do "processo de barganha"
Fim do processo de barganha
Se o preço da maçã Fuji nessa quitanda ainda for maior que 1 dólar / kilo, termine o "processo de comprar maçã" atual
Abrir uma sacola como sacola atual
Repetir o processo seguinte até que o peso total das maçãs em minhas sacolas seja maior que 1 kilo:
Processo de empacotar maçãs começa, uma por uma
Escolher a melhor maçã que não está em minhas sacolas
Se a maçã pode ser colocada na sacola atual, colocar a maçã na sacola atual. Caso contrário, executar:
Processo de troca de sacola começa
Se eu tiver alguma sacola restando, selecionar uma delas como sacola atual, caso contrário execute:
O processo de "pedir uma sacola ao vendedor" começa
Pedir uma sacola ao vendedor
Se o vendedor se recusar a me dar uma sacola, tirar todas as maçãs de todas as minhas sacolas, então terminar o "processo de comprar maçã" atual
Pegar a sacola que o vendedor me deu como sacola atual
Fim do processo de "pedir uma sacola co vendedor"
Fim do processo de troca de sacola
Medir peso total de todas as maçãs em todas as minhas sacolas
Fim do processo de empacotar maçãs
De acordo com o peso total de todas as maçãs em todas as minhas sacolas e o preço dado pelo vendedor, calcular o preço que devo pagar
Perguntar ao vendedor sobre o preço que devo pagar
Se não aceitar o preço pedido pelo vendedor, executar 3 vezes:
Início do processo de revisão
Explicar meu preço calculado ao vendedor e perguntar se ele concorda
Se o vendedor concordar, pular o restante do processo de revisão
Fim do processo de revisão
Se eu ainda não aceitar o preço dado pelo vendedor, tirar todas as maçãs de todas as minhas sacolas e terminar o "processo de comprar maçã" atual
Se eu não tiver dinheiro suficiente, tirar todas as maçãs de todas as minhas sacolas e terminar o "processo de comprar maçã" atual
Pagar pelas maçãs
Fim do processo de comprar maçã
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment