Created
June 7, 2020 08:03
-
-
Save PauloLuan/0caa9e2e13da9bc0b6fde63f3811d43a to your computer and use it in GitHub Desktop.
comprar_macas_algoritmo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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