IvoSilva

[PROG1] Ficha 11 | Exercício 3

Jan 16th, 2012
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.56 KB | None | 0 0
  1. // Header
  2.  
  3. typedef struct complexo
  4. {
  5.     float real , imaginario ;
  6. } complexo ;
  7. void le_complexo(complexo *c);
  8. void escreve_complexo(complexo c);
  9. void soma_complexo(complexo c1, complexo c2, complexo *c3);
  10. double mod_complexo(complexo c);
  11. double arg_complexo(complexo c);
  12.  
  13. // Funções
  14.  
  15. #include <stdio.h>
  16. #include <math.h>
  17. #include "header.h"
  18. void le_complexo(complexo *c)
  19. {
  20.     printf ("Número complexo escreve-se da forma: a + ib\nValor de 'a': ") ;
  21.     scanf ("%f" , &c->real) ;
  22.     printf ("Valor de 'b': ") ;
  23.     scanf ("%f" , &c->imaginario) ;
  24. }
  25. void escreve_complexo(complexo c)
  26. {
  27.     printf ("Número complexo : %.1f + %.1fi\n<prima enter para continuar>\n" , c.real , c.imaginario) ;
  28.     getchar () ; getchar () ;
  29. }
  30. void soma_complexo(complexo c1, complexo c2, complexo *c3)
  31. {
  32.     printf ("Leitura do primeiro complexo :\n") ;
  33.     le_complexo(&c1) ;
  34.     printf ("Leitura do segundo complexo :\n") ;
  35.     le_complexo(&c2) ;
  36.     c3->real = c1.real + c2.real ;
  37.     c3->imaginario = c1.imaginario + c2.imaginario ;
  38.     escreve_complexo(*c3) ;
  39. }
  40. double mod_complexo(complexo c)
  41. {
  42.     return (sqrt(c.real * c.real + c.imaginario * c.imaginario)) ;
  43. }
  44. double arg_complexo(complexo c)
  45. {
  46.     return (atan(c.imaginario / c.real)) ;
  47. }
  48.  
  49. // Programa
  50.  
  51. #include <stdio.h>
  52. #include "header.h"
  53. void main()
  54. {
  55.     int op ;
  56.     complexo c , c1 , c2 , c3 ;
  57.     while (op != 6)
  58.     {
  59.         system ("clear") ;
  60.         printf ("1. Ler complexo ;\n2. Escrever complexo ;\n3. Soma de complexos ;\n4. Módulo do complexo ;\n5. Argumento do complexo ;\n6. Sair ;\n") ;
  61.         scanf ("%d" , &op) ;
  62.         switch (op)
  63.         {
  64.             case 1 : system ("clear") ;
  65.                      le_complexo(&c) ;
  66.                      continue ;
  67.             case 2 : system ("clear") ;
  68.                      escreve_complexo(c) ;
  69.                      continue ;
  70.             case 3 : system ("clear") ;
  71.                      soma_complexo(c1 , c2 , &c3) ;
  72.                      continue ;
  73.             case 4 : system ("clear") ;
  74.                      printf ("Módulo: %.2f\n<prima enter para continuar>\n" , mod_complexo(c)) ;
  75.                      getchar () ; getchar () ;
  76.                      continue ;
  77.             case 5 : system ("clear") ;
  78.                      printf ("Argumento: %.2f\n<prima enter para continuar>\n" , arg_complexo(c)) ;
  79.                      getchar () ; getchar () ;
  80.                      continue ;
  81.             case 6 : system ("clear") ;
  82.                      printf ("Volte sempre !\n") ;
  83.                      break ;
  84.         }
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment