Calculadora para números complexos

Publicado por Cícero Matheus (última atualização em 10/10/2013)

[ Hits: 10.859 ]

Homepage: Não Tenho (Ainda u.u)

Download ncomplexos.py




Calculadora capaz de realizar cálculos (adição, subtração, divisão e multiplicação) com números complexos em suas formas polar e cartesiana (retangular).

Qualquer bug, erro, sugestão basta só comentar! xD

Obs.: os números podem estar em formas diferentes! Por exemplo (Polar + Cartesiana). :D

  



Esconder código-fonte

#-*- coding: utf-8 -*-

#Por Kruxy Nuylla
#Calculadora para números complexos =D

#Bibliotecas usadas
import math
import string
#------------------

def pegar_numero(): #Função que irá ler uma string e transformá-la em número complexo legivel para o Python
    num = str(raw_input("Digite o número (forma cartesiana: a+jb; forma polar: aPΘ)\nOBS: Mesmo que um dos valores seja 0 (zero), por favor, coloque-o\n"));
    if(num.find("P") > -1): #Procura o char 'P', caso encontre, o número será convertido de forma polar para cartesiana
        neonum = string.split(num,"P");
        neonum[0] = float(neonum[0]);
        neonum[1] = float(neonum[1]);
        #Por algum motivo Python só trabalha corretamente com seno e cosseno quando o ângulo está em radianos
        a = neonum[0] * round(math.cos(math.radians(neonum[1])),3);
        b = neonum[0] * round(math.sin(math.radians(neonum[1])),3);
    else:
        if((num.find("+") < -1 and num.find("-") < -1) or num.find("j") == -1):
            print "Digite o número em uma das formas descritas!";
            exit();

        indice = num.find("j"); #Obtém o índice do char 'j'
        a = float(num[:indice-1]);
        b = float(num[indice+1:]);
        if(num[indice-1] == "-"):
            b *= -1;

    return complex(a, b);


def principal():
    opc = 1;
    while(True): #Loop infinito
        opc = int(raw_input("1 - Adição\n2 - Subtração\n3 - Multiplicação\n4 - Divisão\n0 - Sair\n"));

        if (opc < 1 or opc > 4): break;

        print "\n\nPrimeiro número:\n\n";
        num_a = pegar_numero();
        print "\n\nSegundo número:\n\n";
        num_b = pegar_numero();

        if(opc == 1):
            print num_a + num_b;
        elif(opc == 2):
            print num_a - num_b;
        elif(opc == 3):
            print num_a * num_b;
        elif(opc == 4):
            print num_a / num_b;

        print "\n\n"



principal();

Scripts recomendados

Visualizar a data e hora de um servidor SNTP e atualizar na BIOS do sistema

Verificar se um número é primo

votacao.py

Versão das principais distribuições.

Sudoku


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts