Calculadora científica (wip)

Publicado por Elias Rodrigo Duraes (última atualização em 01/03/2013)

[ Hits: 11.654 ]

Download 5696.minha_calculadora.py




Estou estudando Python a um mês mais ou menos, já fiz vários programas simples e a maioria dos exercícios do Python Brasil.

Resolvi criar um programa completo, uma calculadora científica com GUI (provavelmente vou usar TK mesmo), comecei a trabalhar nela agora e vou postando aqui conforme atualização .

No momento só fiz um script básico, começando na versão 0.1 e seguindo um planejamento a implementação da GUI será a partir da versão 1.0.

Inicialmente o programa está sendo escrito para 3.3, mas até o momento escrevi de uma maneira que funciona também na 2.7, mais pra frente vou separar e fazer uma versão para 2.x e uma para 3.x.

Quem puder dar dicas e sugestões eu agradeço.

  



Esconder código-fonte

#########################################################################
#########################################################################
############ programa em fase de criação ################################
############ desenvolvido por: Elias Rodrigo Duraes######################
#### distribuicao e alteracao livre desde que mantenha este quadro#######
####################### versao beta 0 . 1################################
#########################################################################
def soma():
    a = float(input('digite um valor: ')) 
    b = float(input('digite por quanto deseja somar: '))
    c = a + b
    print('a soma dos dois valores  = ' ,c)
    print(' 1: outra operecao de soma\n 2: voltar ao menu de operacoes\n 3: sair do programa\n')
    i = input()
    if i == 1:
      soma()
    elif i == 3:
        exit
    else:
       menu() 

def sub():    
    a = float(input('digite um valor: '))
    b = float(input('digite por quanto sera subtraido: '))
    c = a - b
    print("a subtracao dos dois valores  = " ,c)
    print(' 1: outra operecao de subtracao\n 2: voltar ao menu de operacoes\n 3: sair do programa\n')
    i = input()
    if i == 1:
      sub()
    elif i == 3:
        exit
    else:
       menu()       

def div():
    a = float(input('digite um valor: '))
    if a <= 0:
      print("valores negativos e 0 nao sao divisiveis\n")
      menu()
    else:  
      b = float(input('digite por quanto sera dividido: '))
    if b <= 0:
      print('nenhum numero e divisivel por 0 ou negativo\n')
      menu()
    else:
      c = a / b
    print('a divisao dos dois valores  = ' ,c)
    print(' 1: outra operecao de divisao\n 2: voltar ao menu de operacoes\n 3: sair do programa\n')
    i = input()
    if i == 1:
      div()
    elif i == 3:
        exit
    else:
       menu()       

def mult():
    a = float(input('digite um valor: '))
    b = float(input('digite por quanto vai mutiplicar: '))
    c = a * b
    print('a multiplicacao dos dois valores  = ' ,c)
    print(' 1: outra operecao de multiplicacao\n 2: voltar ao menu de operacoes\n 3: sair do programa\n')
    i = input()
    if i ==  1:
      mult()
    elif i == 3:
        exit
    else:
       menu()    
     
def pot():
    a = float(input('digite um valor: '))
    b = float(input('a quanto deseja elevar: '))
    c = a ** b
    print("o resultado da potencia e " ,c)
    print(' 1: outra operecao de potencia\n 2: voltar ao menu de operacoes\n 3: sair do programa\n')
    i = input()
    if i == 1:
      pot()
    elif i == 3:
        exit
    else:
       menu()      

def menu():
    print(" 1:soma\n 2:subtracao\n 3:divisao\n 4:multiplicacao\n 5:potencia\n 6:raiz quadrada\n 7:convercao de temperatura\n 8:sair\n")
    m = int(input("\n"))
    if(m >= 7 ):
      print('operacao invalida\n \n')
      menu()
    elif(m <= 0):
        print('operacao invalida\n \n')   
        menu()    
    elif(m == 1):
       soma()
    elif(m == 2):
        sub()
    elif(m == 3):
        div()
    elif(m == 4):
        mult()
    elif(m == 5):
        pot()
    elif(m == 6):
        raiz()
    elif(m == 7):
        cdt()
    elif(m == 8):
       exit
def raiz():
    from math import sqrt
    n = float(input('raiz de: '))   
    root = sqrt(n)
    print(root)
    print(' 1: outra operecao de raiz quadrada\n 2: voltar ao menu de operacoes\n 3: sair do programa\n')
    i = input()
    if i == int('1'):
      raiz()
    elif i == int('3'):
        exit
    else:
        menu()    

def cdt():
    e = float(input("selecione uma opcao\n 1:conversao de Celcius para Fahrenheit\n 2:Fahrnheit para celcius\n 3:voltar ao menu\n 4:sair\n"))
    if e == 1:
      c = float(input("digite o valor a ser convertido para Fahrenheit\n"))
      f = c * 1.8 + 32.0 
      print(c,"°celcius convertido para Fahrenheit e igual a :",f,"°Fahrenheit\n" )
      cdt()
    elif e == 2:
       f1 = float(input("digite o valor a ser covertido a Celcius\n"))
       c1 = (f1 -32) /1.8  
       print(f1,"°Fahrenheit covertido para celcius e igual a :",c1,"°celcius\n")
       cdt()
    else:
        menu()
menu()   

Scripts recomendados

Cálculo da fórmula de Bhaskara

Brincando com Hexadecimais

Ler dois números e informa o dividendo, divisor, quociente e resto.

Números divisíveis

Calculadora de Operações Básicas


  

Comentários
[1] Comentário enviado por blenolopes em 01/03/2013 - 11:58h

Posta o projeto no github para outras pessoas te ajudarem no desenvolvimento.

[2] Comentário enviado por administrador-x em 01/03/2013 - 15:26h

Meu Amigo, Seu Programa está Com Muitas Linhas, Desnessesárias, Que Podem Ser Eliminadas Usando Um Laço de Repetição, e Um Dicionário.

Procure Por Dicionário Em Python, Se ainda Nao Conheçe!

Aki Um Pequeno Incentivo no Meu BLog:

http://www.linuxcpdti.blogspot.com.br/search/label/python

Onde Desenvolvi Um Programa Com TK para simplificação do Mapa De Karnaugh, Onde Deixei o Código Fonte Disponível Para Download, é Muito Simples Mais Talvez Ajude.

Caso Queira uma Discução Sobre Isso:
aki Meu FAcebook:

https://www.facebook.com/administradorx

Rodrigo Gomes Da Cunha

[3] Comentário enviado por LuizSantos10 em 06/03/2013 - 22:10h

Parabens pela iniciativa!!! Testei aqui e tem duas mensagens de erro,

./calc.sh: linha 8: erro de sintaxe próximo do `token' não esperado `('
./calc.sh: linha 8: `def soma():

O que pode ser?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts