Buscar

Calculadora de Números Complexos em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Calculadora de Números Complexos 
Algoritmo e Estrutura de Dados 
 
Main.c 
#include <stdio.h> 
 #include <stdlib.h> 
 #include <math.h> 
 #include "ponto .h" 
 
struct numeros { 
 float reau; 
 float imag; 
 }; 
 
int getimag(void){ 
 float imag; 
 printf("\nDigite seu numero imaginario \n"); 
 scanf("%f", &imag); 
 return(imag); 
 } 
 
int getreal(void){ 
 float real; 
 printf("\nDigite seu numero real \n"); 
 scanf("%f", &real); 
 return(real); 
} 
 
int menu(void){ 
 int opcao=1; 
 printf("\n\tMENU DE OPCOES \n\n"); 
 printf("1. Digitar numeros\n"); 
 printf("2. Imprime os numeros\n"); 
 printf("3. Limpar\n"); 
 printf("4. Soma\n"); 
 printf("5. EhReal \n"); 
 printf("0. Sair\n"); 
 printf("\nSua opcao eh:\t"); 
 scanf("%d", &opcao); 
 while (0>opcao>3){ 
 printf("Digite um numero valido: \n"); 
 scanf("%f", &opcao); 
 } 
 system("cls || clear"); 
 return (opcao); 
} 
 
int pause(void){ 
 printf("\n\nAperte qualquer tecla para continuar! \n"); 
 getch(); 
 system("cls || clear"); 
} 
 
int main(int argc, char *argv[]) { 
 char saida[0]; 
 float aux1, aux2; 
 int vmenu=1; 
 int i=0; 
 Complexos *p, *q; 
 
 do{ 
 vmenu = menu(); 
 switch(vmenu) 
 { 
 case 1: 
 printf("\nDigite seu primeiro numero complexo: \n"); 
 aux1 = getreal(); 
 aux2 = getimag(); 
 i = 1; 
 p = pto_cria(aux1,aux2); 
 printf("\nDigite seu segundo numero complexo: \n"); 
 aux1 = getreal(); 
 aux2 = getimag(); 
 i = i + 1; 
 q = pto_cria(aux1,aux2); 
 pause(); 
 break; 
 
 case 2: 
 if (i != 2){ 
 pause(); 
 vmenu = 1; 
 break; 
 } 
 if (p != NULL){ 
 pto_printa(p); 
 } 
 if (q != NULL){ 
 pto_printa(q); 
 } 
 pause(); 
 break; 
 
 case 3: 
 if (i==2){ 
 pto_libera(p); 
 pto_libera(q); 
 printf("Os numeros foram limpos"); 
 }else{ 
 printf("Os numeros ja estao limpos"); 
 } 
 vmenu = 1; 
 pause(); 
 break; 
 
 case 4: 
 pto_printa(p); 
 pto_printa(q); 
 pto_soma(p,q); 
 pause(); 
 break; 
 
 case 5: 
 if (p != NULL){ 
 pto_printa(p); 
 pto_verfreal(p); 
 
 } 
 if (q != NULL){ 
 pto_printa(q); 
 pto_verfreal(q); 
 } 
 if ((q == NULL) && (p == NULL)){ 
 vmenu = 1; 
 } 
 pause(); 
 break; 
 
 case 0: 
 printf("Voce tem certeza que deseja sair? \n"); 
 printf("S/N \n"); 
 scanf("%s", &saida); 
 while ((saida[0] != ('S')) && (saida[0] != ('s')) && (saida[0] != ('N')) && (saida[0] != ('n'))){ 
 printf("Digite uma opcao valida: \n"); 
 scanf("%s", &saida); 
 } 
 if((saida[0] == ('S'))|| (saida[0] == ('s'))){ 
 break; 
 }else { 
 vmenu = 1; 
 pause(); 
 } 
 
 
 default: 
 printf(""); 
 } 
 } while(vmenu); 
return 0; 
} 
 
Ponto.h 
//biblioteca h 
 
 typedef struct numeros Complexos; 
 
 //cria par (open) 
 Complexos* pto_cria(float reau, float imag); 
 //libera o ponto 
 void pto_libera(Complexos* p); 
 //acessa os valores reais e img de um ponto 
 void pto_acessa(Complexos* p, float* reau, float* imag); 
 //atribui valores 
 void pto_atribui(Complexos*p, float reau, float imag); 
 //verifica se eh real 
 void pto_verfreal(Complexos*p); 
 //printa na forma bonita 
 void pto_printa(Complexos*p); 
 //soma os dois 
 void pto_soma(Complexos*p, Complexos*q); 
 
Ponto.c 
 
#include <stdio.h> 
 #include <stdlib.h> 
 #include <math.h> 
 #include "ponto .h" 
 
 //definiçaõ do tipo 
struct numeros { 
 float reau; 
 float imag; 
 }; 
 
Complexos* pto_cria(float reau, float imag){ 
 Complexos* p = (Complexos*) malloc(sizeof(Complexos)); 
 if(p != NULL){ 
 p -> reau = reau; 
 p -> imag = imag; 
 } 
 return p; 
} 
 
void pto_libera(Complexos* p){ 
 free(p); 
} 
 
void pto_acessa(Complexos* p, float* reau, float* imag){ 
 *reau = p -> reau; 
 *imag = p -> imag; 
} 
 
void pto_atribui(Complexos*p, float reau, float imag){ 
 p -> reau = reau; 
 p -> imag = imag; 
} 
 
void pto_verfreal(Complexos* p){ 
 float R, I, teste; 
 R = p->reau; 
 I = p->imag; 
 printf("O numero complexo: %.2f e %.2f i\n", R,I); 
 if ((R == 0) && (I != 0)){ 
 printf("Eh um numero imaginario puro \n"); 
 } 
 if ((R != 0) && (I == 0)){ 
 printf("Eh um numero real \n"); 
 } 
 if (((R == 0) && (I == 0)) || ((R != 0) && (I != 0))){ 
 printf("Eh um numero complexo \n"); 
 } 
} 
 
void pto_printa(Complexos* p){ 
 printf("Os numero(s) complexo(s) foram: %.2f + %.2f i \n", p->reau, p->imag); 
} 
 
void pto_soma(Complexos*p, Complexos*q){ 
 float Somareal, Somaimag; 
 Somareal = (p-> reau) + (q-> reau); 
 Somaimag = (p-> imag) + (q-> imag); 
 printf("A soma dos reais eh: %.2f \n", Somareal); 
 printf("A soma dos imaginarios eh: %.2f i \n", Somaimag); 
 printf("O numero eh: %.2f + %.2f i", Somareal, Somaimag); 
}

Continue navegando