Advertisement
LightProgrammer000

Calculadora Diversificada

Dec 12th, 2021
886
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.44 KB | None | 0 0
  1. """
  2. Python: 3
  3. Program: Calculadora
  4. """
  5.  
  6. # Importacoes
  7. from os import system
  8. from emoji import emojize
  9.  
  10. #######################
  11. # METODOS MATEMATICOS #
  12. #######################
  13. def Somatorio():
  14.  
  15.     system("clear")
  16.     print("\n\033[01;32m=== Somatorio ===\033[01;37m\n")
  17.  
  18.     # Entrada de variaveis
  19.     n1 = int(input("\033[01;33m# Digite N1: \033[01;37m"))
  20.     n2 = int(input("\033[01;34m# Digite N2: \033[01;37m"))
  21.  
  22.     # Calculo e impressao
  23.     print("\033[01;35m# Resultado: {} \033[01;37m".format(n1 + n2))
  24.  
  25. def Subtracao():
  26.  
  27.     system("clear")
  28.     print("\n\033[01;32m=== Subtracao ===\033[01;37m\n")
  29.  
  30.     # Entrada de variaveis
  31.     n1 = int(input("\033[01;33m# Digite N1: \033[01;37m"))
  32.     n2 = int(input("\033[01;34m# Digite N2: \033[01;37m"))
  33.  
  34.     # Calculo e impressao
  35.     print("\033[01;35m# Resultado: {} \033[01;37m".format(n1 - n2))
  36.  
  37. def Multiplicacao():
  38.  
  39.     system("clear")
  40.     print("\n\033[01;32m=== Multiplicacao ===\033[01;37m\n")
  41.  
  42.     # Entrada de variaveis
  43.     n1 = int(input("\033[01;33m# Digite N1: \033[01;37m"))
  44.     n2 = int(input("\033[01;34m# Digite N2: \033[01;37m"))
  45.  
  46.     # Calculo e impressao
  47.     print("\033[01;35m# Resultado: {} \033[01;37m".format(n1 * n2))
  48.  
  49. def Divisao():
  50.  
  51.     system("clear")
  52.     print("\n\033[01;32m=== Divisao ===\033[01;37m\n")
  53.  
  54.     # Entrada de variaveis
  55.     n1 = int(input("\033[01;33m# Digite N1: \033[01;37m"))
  56.     n2 = int(input("\033[01;34m# Digite N2: \033[01;37m"))
  57.  
  58.     # Estrutura de Loop: Protecao contra divisao por "0"
  59.     while n2 == 0:
  60.         print("\n\033[01;31m* Divisao por ZERO nao pode, pois resulta em infinito \033[01;37m")
  61.         n2 = int(input("\033[0;33m# {} \033[01;37m".format("Digite N2: ")))
  62.  
  63.     # Calculo e impressao
  64.     print("\n\033[01;35m# Resultado ({}): {:.2f} \033[01;37m".format(str(n1) + "/" + str(n2), n1 / n2))
  65.  
  66. def VerificaPrimo():
  67.  
  68.     # Variaveis locais
  69.     resto = 0
  70.  
  71.     system("clear")
  72.     print("\n\033[01;32m=== Identificando numeros primos ===\033[01;37m\n")
  73.  
  74.     # Entrada de variaveis
  75.     n1 = int(input("\033[01;33m# {} \033[01;37m".format("Digite N1:")))
  76.  
  77.     # Estrutura de condicao: Protecao contra numeros negativos
  78.     if n1 <= 0:
  79.         print("\n\033[01;31m# {} \033[01;37m\n".format("Numero Invalido"))
  80.  
  81.     # Estrutura de decisao: Protecao contra o numero "1"
  82.     elif n1 == 1:
  83.         print("\n\033[01;32m# {} \033[01;37m\n".format("Divisor universal"))
  84.  
  85.     else:
  86.         # Estrutura condicional: Resto da divisao igual a "0"
  87.         # Ex: numero = 89 --> Sera dividido por (1 ate (88+1))
  88.         for contador in range(1, (n1 + 1)):
  89.             if n1 % contador == 0:
  90.                 resto += 1  # Acrescenta "1" a variavel resto
  91.  
  92.             # Caso a quantidade de restos iguais a "0" for maior que 2, nao e primo
  93.             if resto > 2:
  94.                 print("\033[01;31m# {} \033[0;37m".format("Resultado: Nao Primo"))
  95.                 break
  96.  
  97.         # Numeros primos sao sempre divididos por "1" e por ele mesmo, logo terao "2" restos iguais a "0"
  98.         if resto == 2:
  99.             print("\033[01;32m# {} \033[01;37m".format("Resultado: Primo"))
  100.  
  101. def Potenciacao():
  102.  
  103.     system("clear")
  104.     print("\n\033[01;32m=== Potenciacao ===\033[01;37m\n")
  105.  
  106.     # Entrada de variaveis
  107.     n1 = int(input("\033[01;33m# {} \033[01;37m".format("Digite a base: ")))
  108.     n2 = int(input("\033[01;34m# {} \033[01;37m".format("Digite o expoente: ")))
  109.  
  110.     # Calculo e impressao
  111.     print("\033[01;32m# Resultado: {} \033[01;37m".format(str(n1 ** n2)))
  112.  
  113. def Radiciacao():
  114.  
  115.     system("clear")
  116.     print("\n\033[01;32m=== Radiciacao ===\033[01;37m\n")
  117.  
  118.     # Entrada de variaveis
  119.     n1 = int(input("\033[01;33m# {} \033[01;37m".format("Digite o numero: ")))
  120.     n2 = int(input("\033[01;34m# {} \033[01;37m".format("Digite a raiz: ")))
  121.  
  122.     # Calculo e Impressao (manobra matematica de inverter o numero antes para depois o elevar, extraindo a sua raiz)
  123.     print("\033[01;32m# Resultado: {} \033[01;37m".format(str(n1 ** (n2 ** (-1)))))
  124.  
  125. def Porcentagem():
  126.  
  127.     system("clear")
  128.     print("\n\033[01;32m=== PORCENTAGEM ===\033[01;37m\n")
  129.  
  130.     # Entrada de variaveis
  131.     n1 = int(input("\033[01;33m# {} \033[01;37m".format("Digite o percentual (Sem o sinal %): ")))
  132.     n2 = int(input("\033[01;34m# {} \033[01;37m".format("Digite um valor: ")))
  133.  
  134.     # Calculo e Impressao
  135.     print("\033[01;32m# Resultado: {} % de {} = {}\033[01;37m".format(n1, n2, 0.01 * n1 * n2))
  136.  
  137. def Divisores():
  138.  
  139.     system("clear")
  140.     print("\n\033[01;32m=== Divisores ===\033[01;37m\n")
  141.  
  142.     # Entrada de variaveis
  143.     n1 = int(input("\033[01;34m# {} \033[01;37m".format("Digite um valor: ")))
  144.  
  145.     # Calculo e Impressao
  146.     print("\n\033[01;32m# {} \033[01;37m".format("Resultados: "))
  147.  
  148.     for divisores in range(1, (n1 + 1)):
  149.  
  150.         if n1 % divisores == 0:
  151.             print("\033[01;32m# {} \033[01;37m".format(divisores))
  152.  
  153. def Fatorial():
  154.  
  155.     system("clear")
  156.     print("\n\033[01;32m=== Fatorial ===\033[01;37m\n")
  157.  
  158.     fat = int(input("\033[01;34m# {} \033[01;37m".format("Digite um valor: ")))
  159.  
  160.     if fat == 0:
  161.         print("\033[01;32m# {} \033[01;37m".format("Resultado: 1 "))
  162.  
  163.     else:
  164.         for contador in range(1, fat):
  165.  
  166.             # fat = fat * contador (Ex: fat = fat * 1)
  167.             fat *= contador
  168.         print("\033[01;32m# {} {} \033[01;37m".format("Resultado:", fat))
  169.  
  170. #######################
  171. # METODOS DE CONTROLE #
  172. #######################
  173. def decisoes(opcao):
  174.  
  175.     # SAIDA
  176.     if opcao == "0":
  177.         return False
  178.  
  179.     # SOMATORIO
  180.     elif opcao == "1":
  181.         Somatorio()
  182.  
  183.     # SUBTRACAO
  184.     elif opcao == "2":
  185.         Subtracao()
  186.  
  187.     # MULTIPLICACAO
  188.     elif opcao == "3":
  189.         Multiplicacao()
  190.  
  191.     # DIVISAO
  192.     elif opcao == "4":
  193.         Divisao()
  194.  
  195.     # VERIFICADOR DE NUMERO PRIMO
  196.     elif opcao == "5":
  197.         VerificaPrimo()
  198.  
  199.     # POTENCIACAO
  200.     elif opcao == "6":
  201.         Potenciacao()
  202.  
  203.     # RADICIACAO
  204.     elif opcao == "7":
  205.         Radiciacao()
  206.  
  207.     # PORCENTAGEM
  208.     elif opcao == "8":
  209.         Porcentagem()
  210.  
  211.     # DIVISORES
  212.     elif opcao == "9":
  213.         Divisores()
  214.  
  215.     # FATORIAL
  216.     elif opcao == "10":
  217.         Fatorial()
  218.  
  219.     # Retorno Verdadeiro para quaisquer opcoes (Retornando ao Menu)
  220.     input("\n<< PRESS ENTER >>")
  221.     return True
  222.  
  223. # MENU
  224. def menu():
  225.  
  226.     system("clear")
  227.     print(emojize("\n\033[01;32m {1} {0} MATEMATICA {0} {1}\033[01;37m".format(":computer:", "=-=" * 10),
  228.                   use_aliases=True))
  229.  
  230.     # Lista de Menu
  231.     a = 0
  232.     listaMenu = {"sai": "Sair",
  233.                  "som": "Soma",
  234.                  "sub": "Subtracao",
  235.                  "mul": "Multiplicacao",
  236.                  "div": "Divisao",
  237.                  "pri": "Verificador de numero primo",
  238.                  "pot": "Potenciacao",
  239.                  "rad": "Radiciacao",
  240.                  "por": "Porcentagem",
  241.                  "divs": "Divisores",
  242.                  "fat": "Fatorial",
  243.                  }
  244.  
  245.     for i in listaMenu:
  246.  
  247.         print("\033[01;3{}m {}) {} \033[01;37m".format(a, a, listaMenu[i]))
  248.         a += 1
  249.     print("\n\033[01;32m {}\033[01;37m".format("=-=" * 27))
  250.  
  251.     # Escolha do menu
  252.     return decisoes(input("\033[01;31m {} \033[01;37m".format("# Opcao: ")))
  253.  
  254. # Programa principal
  255. def main():
  256.  
  257.     # Variavel de controle
  258.     ctrl = True
  259.  
  260.     try:
  261.         while ctrl:
  262.             ctrl = menu()
  263.  
  264.     except Exception as e:
  265.         # print(e)
  266.         pass
  267. if __name__ == '__main__':
  268.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement