Programa para cálculo de números complexos

Publicado por Levi Gomes (última atualização em 29/09/2011)

[ Hits: 21.796 ]

Homepage: http://levilinuxblog.blogspot.com.br/

Download Complexos.c




Esse script foi escrito com o intuito de facilitar meus estudos na disciplina de eletrotécnica.

Nesse script temos operações básicas com números complexos.

Espero que seja útil.

  



Esconder código-fonte

/* Autor: Levi Gomes de Oliveira
 * e-mail: [email protected]
 * Esse programa foi escrito com o intuito de facilitar meus estudos 
 * na disciplina de eletrotecnica.
 * Espero que seja útil.
 * Em caso de dúvidas, bugs, sugestões e/ou críticas favor 
 * encaminhar para o e-mail acima.
 * Programa escrito, compilado e testado sobre Slackware GNU/Linux 
 * 13.1 32 bits.
 */ 

#include <stdio.h>

int soma() {
   double a[2],b[2],c[2];
   char espera;
   int i;
   
   system ("clear");
   printf(" SOMA DE NUMEROS COMPLEXOS \n\n");
   printf(" O numero complexo deve ser da forma a1 + a2*i\n\n");
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente a%i \n", i);
      scanf("%lg",&a[i-1]);
      }
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente b%i \n", i);
      scanf("%lg",&b[i-1]);
   }
   for (i=1;i<3;i++) {
      c[i-1]=a[i-1]+b[i-1];
   }
printf(" A parte real do número complexo resultante eh: %lg \n", c[0]);
printf(" A parte imaginaria do número complexo resultante eh: %lg \n", 
c[1]);
espera=getchar();
}

int subtracao() {
   double a[2],b[2],c[2];
   char espera;
   int i;
   
   system ("clear");
   printf(" SUBTRACAO DE NUMEROS COMPLEXOS \n\n");
   printf(" O numero complexo deve ser da forma a1 + a2*i\n\n");
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente a%i \n", i);
      scanf("%lg",&a[i-1]);
      }
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente b%i \n", i);
      scanf("%lg",&b[i-1]);
   }
   for (i=1;i<3;i++) {
      c[i-1]=a[i-1]-b[i-1];
   }
printf(" A parte real do número complexo resultante eh: %lg \n", c[0]);
printf(" A parte imaginaria do número complexo resultante eh: %lg \n", 
c[1]);
espera=getchar();
}

int escalar(){
   double a[2], b[2], k;
   char espera;
   int i;
   
   system ("clear");
   printf(" MULTIPLICACAO POR ESCALAR \n\n");
   printf(" O numero complexo deve ser da forma a1 + a2*i\n\n");
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente a%i \n", i);
      scanf("%lg",&a[i-1]);
      }
   printf(" Informe o valor do escalar \n");
   scanf("%lg", &k);
   for (i=1;i<3;i++) {
      b[i-1]=a[i-1]*k;
   }
   printf(" A parte real do número complexo resultante eh: %lg \n", b[0]);
   printf(" A parte imaginaria do número complexo resultante eh: %lg \n", b[1]);
   espera=getchar();
   }

int divisao() {
   double a[2],b[2],c[2];
   char espera;
   int i;
   
   system ("clear");
   printf(" DIVISAO DE NUMEROS COMPLEXOS \n\n");
   printf(" O numero complexo deve ser da forma a1 + a2*i\n\n");
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente a%i \n", i);
      scanf("%lg",&a[i-1]);
      }
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente b%i \n", i);
      scanf("%lg",&b[i-1]);
   }
   c[0]= (((a[0]*b[0]) + (a[1]*b[1]))/(b[0]*b[0] + b[1]*b[1]));
   c[1]= ((-(a[0]*b[1]) + (a[1]*b[0]))/(b[0]*b[0] + b[1]*b[1]));
   printf(" A parte real do número complexo resultante eh: %lg \n", c[0]);
    printf(" A parte imaginaria do número complexo resultante eh: %lg \n", c[1]);
    espera=getchar();
   }

int multiplicacao() {
double a[2],b[2],c[2];
   char espera;
   int i;
   
   system ("clear");
   printf(" MULTIPLICACAO DE NUMEROS COMPLEXOS \n\n");
   printf(" O numero complexo deve ser da forma a1 + a2*i\n\n");
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente a%i \n", i);
      scanf("%lg",&a[i-1]);
      }
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente b%i \n", i);
      scanf("%lg",&b[i-1]);
   }
   c[0] = ((a[0]*b[0]) - (a[1]*b[1]));
   c[1] = (a[0]*b[1] + b[0]*a[1]);
   printf(" A parte real do número complexo resultante eh: %lg \n", c[0]);
    printf(" A parte imaginaria do número complexo resultante eh: %lg \n", c[1]);
    espera=getchar();
}

int inverso() {
double a[2],b[2],c[2];
   char espera;
   int i;
   
   system ("clear");
   printf(" INVERSO DE NUMEROS COMPLEXOS \n\n");
   printf(" O numero complexo deve ser da forma a1 + a2*i\n\n");
   for (i=1;i<3;i++) {
      printf("Insira o o coeficiente a%i \n", i);
      scanf("%lg",&a[i-1]);
      }
   c[0]= ((a[0])/(a[0]*a[0] + a[1]*a[1]));
   c[1]= ((-a[1])/(a[0]*a[0] + a[1]*a[1]));
   printf(" A parte real do número complexo resultante eh: %lg \n", c[0]);
    printf(" A parte imaginaria do número complexo resultante eh: %lg \n", c[1]);
    espera=getchar();
}

int main() {
char opc,segtela;
int teste;

do {
teste=0;
system ("clear");
printf (" NUMEROS COMPLEXOS \n\n");
printf (" [1] Soma de numeros complexos \n");
printf (" [2] Subtracao de numeros complexos \n");
printf (" [3] Multiplicacao de complexo por Escalar \n");
printf (" [4] Produto entre dois complexos \n");
printf (" [5] Divisão entre dois complexos \n");
printf (" [6] Inverso de um complexo \n");
printf (" [7] Sair \n");
printf ("OPCAO.:");
opc=getchar();
switch (opc) {
  case '1': {
    soma();
    segtela=getchar();
    break;
  }
  case '2': {
    subtracao();
    segtela=getchar();
    break;
  }
  case '3': {
    escalar();
    segtela=getchar();
    break;
  }
  case '4': {
    multiplicacao();
    segtela=getchar();
    break;
  }
  case '5': {
    divisao();
    segtela=getchar();
    break;
  }
  case '6': {
    inverso();
    segtela=getchar();
    break;
  }
  case '7': {
    printf (" Finalizando aplicacao ... \n\n");
    teste=1;
 }
    break;
   default: {
     teste=0;
     printf (" Opcao Invalida, voltando ao menu... \n");
    system ("sleep 1");
    break;
   }
  }
 } while (teste==0);
}

Scripts recomendados

Strspn

Método da bissecção

Raizes reais e complexas de uma equação de 2º grau

utilities_linux.h - Biblioteca com diversas funções para o Linux

A - Comando strdup


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts