Calculadora científica (wip)

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

[ Hits: 11.799 ]

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

signos.py

Teste de Escolha Aleatória

Os lados de um triângulo

Números pares até 100

Um programa simples para gerar uma tabuada em python com menu utilizando laco for while try except e


  

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