Advertisement
murilobalducci

recicle.py

Nov 13th, 2019
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 23.84 KB | None | 0 0
  1. from math import sin, cos, sqrt, atan2, radians, inf
  2.  
  3. # Dicionario do Posto de Coleta | Eletrônico
  4. PostoEletro1 = {"Residuo": "Eletrônico", "Longitude": -22.926571, "Latitude": -47.042989, "Endereco": "Reversis Reciclagem de Eletronicos - R. da Abolição, 1900 - Pte. Preta, Campinas - SP, 13041-445 "}
  5. PostoEletro2 = {"Residuo": "Eletrônico", "Longitude": -22.817456, "Latitude": -47.100463, "Endereco": "Eco Ponto Ponto Verde - Av. Santa Isabel, 2300 - Barão Geraldo, Campinas - SP, 13084-012"}
  6. PostoEletro3 = {"Residuo": "Eletrônico", "Longitude": -22.904309, "Latitude": -47.105454, "Endereco": "Eco Ponto Jardim Pacaembu - R. Dante Suriani, 2-382 - Chácara Cn "}
  7. PostoEletro4 = {"Residuo": "Eletrônico", "Longitude": -22.891457, "Latitude": -47.100966, "Endereco": "Eco Ponto Jardim Eulina - Av. Mal. Rondon, 2296-2382 - Jardim Chapadão, Campinas - SP"}
  8.  
  9. # Lista de Dicionarios | Eletrônico
  10. ListaEletro = [PostoEletro1, PostoEletro2, PostoEletro3, PostoEletro4]
  11.  
  12.  # Dicionario do Posto de Coleta | Papel
  13. PostoPapel1 = {"Residuo": "Papel", "Longitude": -22.930303, "Latitude": -47.106131, "Endereco": "HT Papéis Barão Coleta e reciclagem - Av. Ruy Rodrigues, 394 - Jardim Novo Campos Eliseos, Campinas - SP, 13060-192" }
  14. PostoPapel2 = {"Residuo": "Papel", "Longitude": -22.817029, "Latitude": -47.100551, "Endereco": "Eco Ponto Ponto Verde - Av. Santa Isabel, 2300 - Barão Geraldo, Campinas - SP, 13084-012"}
  15. PostoPapel3 = {"Residuo": "Papel", "Longitude": -22.897896, "Latitude": -47.093464, "Endereco": "GMV Recycle - Rod. Lix da Cunha, 911 - Jardim Nova America, Campinas - SP, 13070-715"}
  16. PostoPapel4 = {"Residuo": "Papel", "Longitude": -22.935756, "Latitude": -47.118076, "Endereco": "Eco Ponto Vila união - R. Manoel Gomes Ferreira, 42 - Parque Tropical, Campinas - SP, 13060-523 "}
  17.  
  18. # Lista de Dicionarios | Papel
  19. ListaPapel = [PostoPapel1, PostoPapel2, PostoPapel3, PostoPapel4]
  20.  
  21. # Dicionario do Posto de Coleta | Pilha
  22. PostoPilha1 = {"Residuo": "Pilha", "Longitude": -22.894019, "Latitude": -47.058226, "Endereco": "Carrefour - Rua Santa Cruz, 281 - Cambuí , Campinas"}
  23. PostoPilha2 = {"Residuo": "Pilha", "Longitude": -22.885583, "Latitude": -47.059703, "Endereco": "Pão de Açucar - Av. Barao de Itapura ,2233, Campinas "}
  24. PostoPilha3 = {"Residuo": "Pilha", "Longitude": -22.932566, "Latitude": -47.078057, "Endereco": "Loja Vivo - R. Jacy Teixeira De Camargo - 940 - Loja 235/236 Campinas Shopping, Campinas."}
  25. PostoPilha4 = {"Residuo": "Pilha", "Longitude": -22.860510, "Latitude": -47.023735, "Endereco": "Sam's Club - Rodovia Dom Pedro I, KM 132, s/n - Parque Imperador, Campinas - SP, 13091-555"}
  26.  
  27. # Lista de Dicionarios | Pilha
  28. ListaPilha = [PostoPilha1, PostoPilha2, PostoPilha3, PostoPilha4]
  29.  
  30. # While do Menu
  31. while(True):
  32.  
  33.   # Menu 1 - Apresentação do Programa
  34.   print(" ")
  35.   print("[X] Olá, seja bem vindo!")
  36.   print("[1] Apresentação.")
  37.   print("[2] Sair.")
  38.   EscolhaMenu = str(input("[X] Por favor, escolha uma opção: "))
  39.  
  40.   # Situação 1 - Apresentar
  41.   if(EscolhaMenu == '1'):
  42.  
  43.     # Pré apresentação da situação 1
  44.     print(" ")
  45.     print("----------------------------------------")
  46.     print("Você escolheu a opção de Apresentação!")
  47.     print("----------------------------------------")
  48.  
  49.     # Apresentação do programa
  50.     print(" ")
  51.     print("----------------------------------------")
  52.     print("O objetivo desse programa é encontrar ")
  53.     print("o ponto de coleta mais próximo de você!")
  54.     print(" ")
  55.     print("Para isso, iremos calcular sua posição ")
  56.     print("a partir da sua Longitude e Latitude")
  57.     print(" ")
  58.     print("Mas antes irei mostrar os resíduo")
  59.     print("de que cada posto de coleta aceita")
  60.     print("----------------------------------------")
  61.  
  62.     # While do Menu 2
  63.     while(True):
  64.  
  65.       # Menu 2 - Entrada do Programa
  66.       print(" ")
  67.       print("[X] Entrar no Programa!")
  68.       print("[1] Entrar.")
  69.       print("[2] Sair.")
  70.       EscolhaMenu2 = str(input("[X] Por favor, escolha uma opção: "))
  71.  
  72.       # Situação 1 - Entrar
  73.       if(EscolhaMenu2 == '1'):
  74.  
  75.         # Pré apresentação da situação 1
  76.         print(" ")
  77.         print("----------------------------------------")
  78.         print("Você escolheu a opção de Entrada!")
  79.         print("----------------------------------------")
  80.         print(" ")
  81.         print("--------------------------------------")
  82.         print("Neste momento você devera escolher")
  83.         print("se prefere buscar por resíduos ou")
  84.         print("pela localização mais próxima.")
  85.         print("--------------------------------------")
  86.  
  87.         # Menu de Ocasião
  88.         print(" ")
  89.         print("[X] Resíduo ou Sair!")
  90.         print("[1] Resíduo.")
  91.         print("[2] Sair.")
  92.         EscolhaOcasião = str(input("[X] Por favor, escolha uma opção: "))
  93.  
  94.         # Situação 1 - Resíduo
  95.         if(EscolhaOcasião == '1'):
  96.          
  97.           # Pré apresentação da situação 1
  98.           print(" ")
  99.           print("----------------------------------------")
  100.           print("Você escolheu a opção de Resíduos!")
  101.           print("----------------------------------------")
  102.  
  103.           # Pre apresentação da leitura da Localização
  104.           print("----------------------------------------")
  105.           print("Agora iremos ler sua Localização!")
  106.           print("MUITO IMPORTANTE")
  107.           print("Para funcionar corretamente, você irá precisar digitar a Longitude e Latitude a seguir! (Siga o Modelo abaixo de como deve ser digitado)")
  108.           print("(-xx.xxxxxx) ou (xx.xxxxxx)")
  109.           print("----------------------------------------")
  110.            
  111.           # Leitura da Localização
  112.           LongitudeUsuario = float(input("Digite sua Longitude: "))
  113.           LatitudeUsuario = float(input("Digite sua Latitude: "))
  114.  
  115.           ConversorLongitudeUsuario = radians(LongitudeUsuario)
  116.           ConversorLatitudeUsuario = radians(LatitudeUsuario)
  117.  
  118.           # While dos Resíduos
  119.           while(True):  
  120.  
  121.             # Menu 3 - Resíduos
  122.             print(" ")
  123.             print("[X] Resíduos:")
  124.             print("[1] Eletrônico")
  125.             print("[2] Papel")
  126.             print("[3] Pilha")
  127.             EscolhaResíduo = str(input("[X] Por favor, escolha uma opção: "))
  128.  
  129.             # Situação 1 - Eletrônico
  130.             if(EscolhaResíduo == '1'):
  131.  
  132.               # Pré apresentação da situação 1
  133.               print(" ")
  134.               print("----------------------------------------")
  135.               print("Você escolheu a opção de Eletrônico!")
  136.               print("----------------------------------------")
  137.  
  138.               # Variaveis de Longitude | Eletrônico
  139.               LongitudeEletro1 = ListaEletro[0]['Longitude']
  140.               LongitudeEletro2 = ListaEletro[1]['Longitude']
  141.               LongitudeEletro3 = ListaEletro[2]['Longitude']
  142.               LongitudeEletro4 = ListaEletro[3]['Longitude']
  143.  
  144.               # Conversor de Longitude | Eletrônico
  145.               ConversorLongEletro1 = radians(LongitudeEletro1)
  146.               ConversorLongEletro2 = radians(LongitudeEletro2)
  147.               ConversorLongEletro3 = radians(LongitudeEletro3)
  148.               ConversorLongEletro4 = radians(LongitudeEletro4)
  149.  
  150.               # Variaveis de Latitude | Eletrônico
  151.               LatitudeEletro1 = ListaEletro[0]['Latitude']
  152.               LatitudeEletro2 = ListaEletro[1]['Latitude']
  153.               LatitudeEletro3 = ListaEletro[2]['Latitude']
  154.               LatitudeEletro4 = ListaEletro[3]['Latitude']
  155.  
  156.               # Conversor Latitude | Eletrônico
  157.               ConversorLatEletro1 = radians(LatitudeEletro1)
  158.               ConversorLatEletro2 = radians(LatitudeEletro2)
  159.               ConversorLatEletro3 = radians(LatitudeEletro3)
  160.               ConversorLatEletro4 = radians(LatitudeEletro4)
  161.  
  162.               # Variavel de armazenamento Local
  163.               MenorDistancia = 0
  164.              
  165.               # Raio da terra em KM
  166.               RaioTerra = 6372.8
  167.  
  168.               # Aritmetica de comparação simulação 1
  169.               DiferenLongitudeS1 = ConversorLongitudeUsuario - ConversorLongEletro1
  170.               DiferenLatitudeS1  = ConversorLatitudeUsuario - ConversorLatEletro1
  171.  
  172.               # Aritmetica de comparação simulação 2
  173.               DiferenLongitudeS2 = ConversorLongitudeUsuario - ConversorLongEletro2
  174.               DiferenLatitudeS2  = ConversorLatitudeUsuario - ConversorLatEletro2
  175.  
  176.               # Aritmetica de comparação simulação 3
  177.               DiferenLongitudeS3 = ConversorLongitudeUsuario - ConversorLongEletro3
  178.               DiferenLatitudeS3  = ConversorLatitudeUsuario - ConversorLatEletro3
  179.  
  180.               # Aritmetica de comparação simulação 4
  181.               DiferenLongitudeS4 = ConversorLongitudeUsuario - ConversorLongEletro4
  182.               DiferenLatitudeS4  = ConversorLatitudeUsuario - ConversorLatEletro4
  183.  
  184.               # Aritmetica das ocasiões terrestres
  185.               ResultadoParte1S1 = sin(DiferenLatitudeS1/2)**2 + cos(ConversorLatEletro1) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS1/2)**2
  186.               ResultadoParte2S1 = 2 * atan2(sqrt(ResultadoParte1S1), sqrt(1 - ResultadoParte1S1))
  187.  
  188.               ResultadoParte1S2 = sin(DiferenLatitudeS2/2)**2 + cos(ConversorLatEletro2) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS2/2)**2
  189.               ResultadoParte2S2 = 2 * atan2(sqrt(ResultadoParte1S2), sqrt(1 - ResultadoParte1S2))
  190.  
  191.               ResultadoParte1S3 = sin(DiferenLatitudeS3/2)**2 + cos(ConversorLatEletro3) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS3/2)**2
  192.               ResultadoParte2S3 = 2 * atan2(sqrt(ResultadoParte1S3), sqrt(1 - ResultadoParte1S3))
  193.  
  194.               ResultadoParte1S4 = sin(DiferenLatitudeS4/2)**2 + cos(ConversorLatEletro4) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS4/2)**2
  195.               ResultadoParte2S4 = 2 * atan2(sqrt(ResultadoParte1S4), sqrt(1 - ResultadoParte1S4))
  196.  
  197.               # Finalização da Distancia Simulação 1
  198.               DistanciaLinearS1 =  RaioTerra * ResultadoParte2S1
  199.               ConteudoDistanciaS1 = [DistanciaLinearS1, PostoEletro1]
  200.    
  201.               # Finalização da Distancia Simulação 2
  202.               DistanciaLinearS2 =  RaioTerra * ResultadoParte2S2
  203.               ConteudoDistanciaS2 = [DistanciaLinearS2, PostoEletro2]
  204.  
  205.               # Finalização da Distancia Simulação 3
  206.               DistanciaLinearS3 =  RaioTerra * ResultadoParte2S3
  207.               ConteudoDistanciaS3 = [DistanciaLinearS3, PostoEletro3]
  208.              
  209.               # Finalização da Distancia Simulação 4
  210.               DistanciaLinearS4 =  RaioTerra * ResultadoParte2S4
  211.               ConteudoDistanciaS4 = [DistanciaLinearS4, PostoEletro4]
  212.              
  213.               MenorDistancia = DistanciaLinearS1
  214.  
  215.               if(DistanciaLinearS2 < MenorDistancia):
  216.                 MenorDistancia = ConteudoDistanciaS2
  217.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  218.                 print(PostoEletro2)
  219.                
  220.               elif(DistanciaLinearS3 < MenorDistancia):
  221.                 MenorDistancia = ConteudoDistanciaS3
  222.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  223.                 print(PostoEletro3)
  224.  
  225.               elif(DistanciaLinearS4 < MenorDistancia):
  226.                 MenorDistancia = ConteudoDistanciaS4
  227.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  228.                 print(PostoEletro4)
  229.              
  230.               else:
  231.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  232.                 print(PostoEletro1)
  233.  
  234.  
  235.             # Situação 2 - Eletrônico
  236.             elif(EscolhaResíduo == '2'):
  237.  
  238.               # Pré apresentação da situação 2
  239.               print(" ")
  240.               print("----------------------------------------")
  241.               print("Você escolheu a opção de Papel!")
  242.               print("----------------------------------------")
  243.  
  244.               # Variaveis de Longitude | Papel
  245.               LongitudePapel1 = ListaPapel[0]['Longitude']
  246.               LongitudePapel2 = ListaPapel[1]['Longitude']
  247.               LongitudePapel3 = ListaPapel[2]['Longitude']
  248.               LongitudePapel4 = ListaPapel[3]['Longitude']
  249.  
  250.               # Conversor de Longitude
  251.               ConversorLongPapel1 = radians(LongitudePapel1)
  252.               ConversorLongPapel2 = radians(LongitudePapel2)
  253.               ConversorLongPapel3 = radians(LongitudePapel3)
  254.               ConversorLongPapel4 = radians(LongitudePapel4)
  255.  
  256.               # Variaveis de Latitude | Papel
  257.               LatitudePapel1 = ListaPapel[0]['Latitude']
  258.               LatitudePapel2 = ListaPapel[1]['Latitude']
  259.               LatitudePapel3 = ListaPapel[2]['Latitude']
  260.               LatitudePapel4 = ListaPapel[3]['Latitude']
  261.  
  262.               # Conversor Latitude
  263.               ConversorLatPapel1 = radians(LatitudePapel1)
  264.               ConversorLatPapel2 = radians(LatitudePapel2)
  265.               ConversorLatPapel3 = radians(LatitudePapel3)
  266.               ConversorLatPapel4 = radians(LatitudePapel4)
  267.  
  268.               # Variavel de armazenamento Local
  269.               MenorDistancia = 0
  270.              
  271.               # Raio da terra em KM
  272.               RaioTerra = 6372.8
  273.  
  274.               # Aritmetica de comparação simulação 1
  275.               DiferenLongitudeS1 = ConversorLongitudeUsuario - ConversorLongPapel1
  276.               DiferenLatitudeS1  = ConversorLatitudeUsuario - ConversorLatPapel1
  277.  
  278.               # Aritmetica de comparação simulação 2
  279.               DiferenLongitudeS2 = ConversorLongitudeUsuario - ConversorLongPapel2
  280.               DiferenLatitudeS2  = ConversorLatitudeUsuario - ConversorLatPapel2
  281.  
  282.               # Aritmetica de comparação simulação 3
  283.               DiferenLongitudeS3 = ConversorLongitudeUsuario - ConversorLongPapel3
  284.               DiferenLatitudeS3  = ConversorLatitudeUsuario - ConversorLatPapel3
  285.  
  286.               # Aritmetica de comparação simulação 4
  287.               DiferenLongitudeS4 = ConversorLongitudeUsuario - ConversorLongPapel4
  288.               DiferenLatitudeS4  = ConversorLatitudeUsuario - ConversorLatPapel4
  289.  
  290.               # Aritmetica das ocasiões terrestres
  291.               ResultadoParte1S1 = sin(DiferenLatitudeS1/2)**2 + cos(ConversorLatPapel1) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS1/2)**2
  292.               ResultadoParte2S1 = 2 * atan2(sqrt(ResultadoParte1S1), sqrt(1 - ResultadoParte1S1))
  293.  
  294.               ResultadoParte1S2 = sin(DiferenLatitudeS2/2)**2 + cos(ConversorLatPapel2) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS2/2)**2
  295.               ResultadoParte2S2 = 2 * atan2(sqrt(ResultadoParte1S2), sqrt(1 - ResultadoParte1S2))
  296.  
  297.               ResultadoParte1S3 = sin(DiferenLatitudeS3/2)**2 + cos(ConversorLatPapel3) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS3/2)**2
  298.               ResultadoParte2S3 = 2 * atan2(sqrt(ResultadoParte1S3), sqrt(1 - ResultadoParte1S3))
  299.  
  300.               ResultadoParte1S4 = sin(DiferenLatitudeS4/2)**2 + cos(ConversorLatPapel4) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS4/2)**2
  301.               ResultadoParte2S4 = 2 * atan2(sqrt(ResultadoParte1S4), sqrt(1 - ResultadoParte1S4))
  302.  
  303.               # Finalização da Distancia Simulação 1
  304.               DistanciaLinearS1 =  RaioTerra * ResultadoParte2S1
  305.               ConteudoDistanciaS1 = [DistanciaLinearS1, PostoPapel1]
  306.    
  307.               # Finalização da Distancia Simulação 2
  308.               DistanciaLinearS2 =  RaioTerra * ResultadoParte2S2
  309.               ConteudoDistanciaS2 = [DistanciaLinearS2, PostoPapel2]
  310.              
  311.               # Finalização da Distancia Simulação 3
  312.               DistanciaLinearS3 =  RaioTerra * ResultadoParte2S3
  313.               ConteudoDistanciaS3 = [DistanciaLinearS3, PostoPapel3]
  314.              
  315.               # Finalização da Distancia Simulação 4
  316.               DistanciaLinearS4 =  RaioTerra * ResultadoParte2S4
  317.               ConteudoDistanciaS4 = [DistanciaLinearS4, PostoPapel4]
  318.              
  319.               MenorDistancia = DistanciaLinearS1
  320.  
  321.               if(DistanciaLinearS2 < MenorDistancia):
  322.                 MenorDistancia = ConteudoDistanciaS2
  323.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  324.                 print(PostoPapel2)
  325.                
  326.               elif(DistanciaLinearS3 < MenorDistancia):
  327.                 MenorDistancia = ConteudoDistanciaS3
  328.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  329.                 print(PostoPapel3)
  330.  
  331.               elif(DistanciaLinearS4 < MenorDistancia):
  332.                 MenorDistancia = ConteudoDistanciaS4
  333.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  334.                 print(PostoPapel4)
  335.              
  336.               else:
  337.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  338.                 print(PostoPapel1)
  339.  
  340.             # Situação 3 - Eletrônico
  341.             elif(EscolhaResíduo == '3'):
  342.  
  343.               # Pré apresentação da situação 3
  344.               print(" ")
  345.               print("----------------------------------------")
  346.               print("Você escolheu a opção de Pilha!")
  347.               print("----------------------------------------")
  348.  
  349.               # Variaveis de Longitude | Eletrônico
  350.               LongitudePilha1 = ListaPilha[0]['Longitude']
  351.               LongitudePilha2 = ListaPilha[1]['Longitude']
  352.               LongitudePilha3 = ListaPilha[2]['Longitude']
  353.               LongitudePilha4 = ListaPilha[3]['Longitude']
  354.  
  355.               # Conversor de Longitude
  356.               ConversorLongPilha1 = radians(LongitudePilha1)
  357.               ConversorLongPilha2 = radians(LongitudePilha2)
  358.               ConversorLongPilha3 = radians(LongitudePilha3)
  359.               ConversorLongPilha4 = radians(LongitudePilha4)
  360.  
  361.               # Variaveis de Latitude | Papel
  362.               LatitudePilha1 = ListaPilha[0]['Latitude']
  363.               LatitudePilha2 = ListaPilha[1]['Latitude']
  364.               LatitudePilha3 = ListaPilha[2]['Latitude']
  365.               LatitudePilha4 = ListaPilha[3]['Latitude']
  366.  
  367.               # Conversor Latitude
  368.               ConversorLatPilha1 = radians(LatitudePilha1)
  369.               ConversorLatPilha2 = radians(LatitudePilha2)
  370.               ConversorLatPilha3 = radians(LatitudePilha3)
  371.               ConversorLatPilha4 = radians(LatitudePilha4)
  372.  
  373.               # Variavel de armazenamento Local
  374.               MenorDistancia = 0
  375.              
  376.               # Raio da terra em KM
  377.               RaioTerra = 6372.8
  378.  
  379.               # Aritmetica de comparação simulação 1
  380.               DiferenLongitudeS1 = ConversorLongitudeUsuario - ConversorLongPilha1
  381.               DiferenLatitudeS1  = ConversorLatitudeUsuario - ConversorLatPilha1
  382.  
  383.               # Aritmetica de comparação simulação 2
  384.               DiferenLongitudeS2 = ConversorLongitudeUsuario - ConversorLongPilha2
  385.               DiferenLatitudeS2  = ConversorLatitudeUsuario - ConversorLatPilha2
  386.  
  387.               # Aritmetica de comparação simulação 3
  388.               DiferenLongitudeS3 = ConversorLongitudeUsuario - ConversorLongPilha3
  389.               DiferenLatitudeS3  = ConversorLatitudeUsuario - ConversorLatPilha3
  390.  
  391.               # Aritmetica de comparação simulação 4
  392.               DiferenLongitudeS4 = ConversorLongitudeUsuario - ConversorLongPilha4
  393.               DiferenLatitudeS4  = ConversorLatitudeUsuario - ConversorLatPilha4
  394.  
  395.               # Aritmetica das ocasiões terrestres
  396.               ResultadoParte1S1 = sin(DiferenLatitudeS1/2)**2 + cos(ConversorLatPilha1) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS1/2)**2
  397.               ResultadoParte2S1 = 2 * atan2(sqrt(ResultadoParte1S1), sqrt(1 - ResultadoParte1S1))
  398.  
  399.               ResultadoParte1S2 = sin(DiferenLatitudeS2/2)**2 + cos(ConversorLatPilha1) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS2/2)**2
  400.               ResultadoParte2S2 = 2 * atan2(sqrt(ResultadoParte1S2), sqrt(1 - ResultadoParte1S2))
  401.  
  402.               ResultadoParte1S3 = sin(DiferenLatitudeS3/2)**2 + cos(ConversorLatPilha1) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS3/2)**2
  403.               ResultadoParte2S3 = 2 * atan2(sqrt(ResultadoParte1S3), sqrt(1 - ResultadoParte1S3))
  404.  
  405.               ResultadoParte1S4 = sin(DiferenLatitudeS4/2)**2 + cos(ConversorLatPilha1) * cos(ConversorLatitudeUsuario) * sin(DiferenLongitudeS4/2)**2
  406.               ResultadoParte2S4 = 2 * atan2(sqrt(ResultadoParte1S4), sqrt(1 - ResultadoParte1S4))
  407.  
  408.               # Finalização da Distancia Simulação 1
  409.               DistanciaLinearS1 =  RaioTerra * ResultadoParte2S1
  410.               ConteudoDistanciaS1 = [DistanciaLinearS1, PostoPilha1]
  411.    
  412.               # Finalização da Distancia Simulação 2
  413.               DistanciaLinearS2 =  RaioTerra * ResultadoParte2S2
  414.               ConteudoDistanciaS2 = [DistanciaLinearS2, PostoPilha2]
  415.              
  416.               # Finalização da Distancia Simulação 3
  417.               DistanciaLinearS3 =  RaioTerra * ResultadoParte2S3
  418.               ConteudoDistanciaS3 = [DistanciaLinearS3, PostoPilha3]
  419.              
  420.               # Finalização da Distancia Simulação 4
  421.               DistanciaLinearS4 =  RaioTerra * ResultadoParte2S4
  422.               ConteudoDistanciaS4 = [DistanciaLinearS4, PostoPilha4]
  423.              
  424.               MenorDistancia = DistanciaLinearS1
  425.  
  426.               if(DistanciaLinearS2 < MenorDistancia):
  427.                 MenorDistancia = ConteudoDistanciaS2
  428.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  429.                 print(PostoPilha2)
  430.                
  431.               elif(DistanciaLinearS3 < MenorDistancia):
  432.                 MenorDistancia = ConteudoDistanciaS3
  433.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  434.                 print(PostoPilha3)
  435.  
  436.               elif(DistanciaLinearS4 < MenorDistancia):
  437.                 MenorDistancia = ConteudoDistanciaS4
  438.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  439.                 print(PostoPilha4)
  440.              
  441.               else:
  442.                 print("KM - {:.2f}".format(MenorDistancia[0]))
  443.                 print(PostoPilha1)
  444.  
  445.             # Situação 7 - Opção invalida
  446.             else:
  447.  
  448.               # Pré apresentação da situação 7
  449.               print(" ")
  450.               print("----------------------------------")
  451.               print("Digite uma opção válida, obrigado!")
  452.               print("----------------------------------")
  453.        
  454.         # Situação 2 - Localização
  455.         elif(EscolhaOcasião == '2'):
  456.  
  457.           # Pré apresentação da situação 2
  458.           print(" ")
  459.           print("----------------------------------------")
  460.           print("Você escolheu a opção de Saída!")
  461.           print("Obrigado!")
  462.           print("----------------------------------------")
  463.           break
  464.        
  465.         # Situação 3 - Opção invalida
  466.         else:
  467.  
  468.           # Pré apresentação da situação 3
  469.           print(" ")
  470.           print("----------------------------------")
  471.           print("Digite uma opção válida, obrigado!")
  472.           print("----------------------------------")
  473.  
  474.       # Situação 2 - Sair
  475.       elif(EscolhaMenu2 == '2'):
  476.         print(" ")
  477.         print("-------------------------------")
  478.         print("Você escolheu a opção de Saída!")
  479.         print("Obrigado!")
  480.         print("-------------------------------")
  481.         break
  482.      
  483.       # Situação 3 - Opção invalida
  484.       else:
  485.         print(" ")
  486.         print("----------------------------------")
  487.         print("Digite uma opção válida, obrigado!")
  488.         print("----------------------------------")
  489.  
  490.   # Situação 2 - Sair
  491.   elif(EscolhaMenu == '2'):
  492.     print(" ")
  493.     print("-------------------------------")
  494.     print("Você escolheu a opção de Saída!")
  495.     print("Obrigado!")
  496.     print("-------------------------------")
  497.     break
  498.  
  499.   # Situação 3 - Opção invalida
  500.   else:
  501.     print(" ")
  502.     print("----------------------------------")
  503.     print("Digite uma opção válida, obrigado!")
  504.     print("----------------------------------")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement