Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.39 KB | None | 0 0
  1. /*• Escreva um programa (função main) que peça ao utilizador uma operação (+ , - , * , / ) e
  2. dois operandos complexos, e apresente o resultado respetivo. Deve repetir isso
  3. enquanto a operação for diferente de ’=’.*/
  4. import java.util.*;
  5. public class Ex8_4 {
  6. static Scanner ler = new Scanner (System.in);
  7.     public static void main (String[] args) {
  8.         String str;
  9.     char o;
  10.         Complexo a = new Complexo ();
  11.         Complexo b = new Complexo ();
  12.         Complexo c = new Complexo ();
  13.         do
  14.         {
  15.             System.out.print("Operacao: ");
  16.             str = ler.next();
  17.       o = str.charAt(0);
  18.            
  19.             a = lercomplexo();
  20.             b = lercomplexo();
  21.            
  22.             if (o == '+')
  23.             {
  24.                 c = adicaocomplexos(a, b);
  25.                 imprimirComplexo(a);
  26.                 System.out.print(" + ");
  27.                 imprimirComplexo(b);
  28.                 System.out.print(" = ");
  29.                 imprimirComplexo(c);
  30.         System.out.println();
  31.             }
  32.             else if (o == '-')
  33.             {
  34.                 c = subcomplexos(a, b);
  35.                 imprimirComplexo(a);
  36.                 System.out.print(" - ");
  37.                 imprimirComplexo(b);
  38.                 System.out.print(" = ");
  39.                 imprimirComplexo(c);
  40.         System.out.println();
  41.             }
  42.            
  43.             else if (o == '*')
  44.             {
  45.                 c = multicomplexos(a, b);
  46.                 imprimirComplexo(a);
  47.                 System.out.print(" * ");
  48.                 imprimirComplexo(b);
  49.                 System.out.print(" = ");
  50.                 imprimirComplexo(c);
  51.         System.out.println();
  52.             }
  53.            
  54.             else if (o == '/')
  55.             {
  56.                 c = divcomplexos(a, b);
  57.                 imprimirComplexo(a);
  58.                 System.out.print(" / ");
  59.                 imprimirComplexo(b);
  60.                 System.out.print(" = ");
  61.                 imprimirComplexo(c);
  62.         System.out.println();
  63.             }
  64.         } while (o != '=');
  65.        
  66.        
  67.     }
  68.        
  69.     //Função para ler um valor complexo:
  70.     public static Complexo lercomplexo () {
  71.         Complexo x = new Complexo();
  72.         System.out.println("Insira um numero complexo");
  73.         System.out.print("Parte real: ");
  74.         x.r = ler.nextDouble();
  75.         System.out.print("Parte imaginaria:");
  76.         x.i = ler.nextDouble();
  77.         return x;
  78.     }
  79.    
  80.     /*Função que imprime um número complexo com o seguinte formato:
  81.     #.#+/-#.#i (em que +/- depende do sinal da parte imaginária).*/
  82.     public static void imprimirComplexo (Complexo x) {
  83.         if (x.i>0){
  84.                 System.out.printf("%.1f+%.1fi", x.r, x.i);
  85.         }
  86.         else if (x.i<0) {
  87.                 System.out.printf("%.1f-%.1fi", x.r, x.i);
  88.         }
  89.         else {
  90.                 System.out.printf("%.1f", x.r);
  91.         }
  92.     }
  93.    
  94.     /*Função para cada uma das operações seguintes:
  95.             • Adição: a+bi+c+di=(a+c)+(b+d)i
  96.             • Subtração: a+bi-c+di=(a-c)+(b-d)i
  97.             • Multiplicação: (a+bi)*(c+di)=(ac-bd)+(bc+ad)i
  98.             • Divisão: (a+bi)/(c+di)=((ac+bd)/(c2+d2))+((bc-ad)/(c2+d2))i*/
  99.     public static Complexo adicaocomplexos (Complexo x, Complexo y) {
  100.         Complexo z = new Complexo();
  101.         z.r = x.r + y.r;
  102.         z.i = x.i + y.i;
  103.         return z;
  104.         }
  105.  
  106.     public static Complexo subcomplexos (Complexo x, Complexo y) {
  107.         Complexo z = new Complexo();
  108.         z.r = x.r - y.r;
  109.         z.i = x.i - y.i;
  110.         return z;
  111.         }
  112.    
  113.     public static Complexo multicomplexos (Complexo x, Complexo y) {
  114.         Complexo z = new Complexo();
  115.         z.r = x.r*y.r - x.i*y.i;
  116.         z.i = x.i*y.r + x.r*y.i;
  117.         return z;
  118.         }
  119.  
  120.     public static Complexo divcomplexos (Complexo x, Complexo y) {
  121.         Complexo z = new Complexo();
  122.         z.r = (x.r*y.r + x.i*y.i)/(Math.pow(y.r,2)+Math.pow(y.i,2));
  123.         z.i = (x.i*y.r - x.r*y.i)/(Math.pow(y.r,2)+Math.pow(y.i,2));
  124.         return z;
  125.         }
  126. }
  127.  
  128. class Complexo {
  129.     double r;
  130.     double i;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement