Calculadora para números complexos

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

[ Hits: 14.636 ]

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

Script para Away com varias funções para xchat.

SnakeSQL - Crie consultas SQL facilmente

Herança em Python

Torres de Hanói - Versão 2.0

Números Perfeitos


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts