Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*• Escreva um programa (função main) que peça ao utilizador uma operação (+ , - , * , / ) e
- dois operandos complexos, e apresente o resultado respetivo. Deve repetir isso
- enquanto a operação for diferente de ’=’.*/
- import java.util.*;
- public class Ex8_4 {
- static Scanner ler = new Scanner (System.in);
- public static void main (String[] args) {
- String str;
- char o;
- Complexo a = new Complexo ();
- Complexo b = new Complexo ();
- Complexo c = new Complexo ();
- do
- {
- System.out.print("Operacao: ");
- str = ler.next();
- o = str.charAt(0);
- a = lercomplexo();
- b = lercomplexo();
- if (o == '+')
- {
- c = adicaocomplexos(a, b);
- imprimirComplexo(a);
- System.out.print(" + ");
- imprimirComplexo(b);
- System.out.print(" = ");
- imprimirComplexo(c);
- System.out.println();
- }
- else if (o == '-')
- {
- c = subcomplexos(a, b);
- imprimirComplexo(a);
- System.out.print(" - ");
- imprimirComplexo(b);
- System.out.print(" = ");
- imprimirComplexo(c);
- System.out.println();
- }
- else if (o == '*')
- {
- c = multicomplexos(a, b);
- imprimirComplexo(a);
- System.out.print(" * ");
- imprimirComplexo(b);
- System.out.print(" = ");
- imprimirComplexo(c);
- System.out.println();
- }
- else if (o == '/')
- {
- c = divcomplexos(a, b);
- imprimirComplexo(a);
- System.out.print(" / ");
- imprimirComplexo(b);
- System.out.print(" = ");
- imprimirComplexo(c);
- System.out.println();
- }
- } while (o != '=');
- }
- //Função para ler um valor complexo:
- public static Complexo lercomplexo () {
- Complexo x = new Complexo();
- System.out.println("Insira um numero complexo");
- System.out.print("Parte real: ");
- x.r = ler.nextDouble();
- System.out.print("Parte imaginaria:");
- x.i = ler.nextDouble();
- return x;
- }
- /*Função que imprime um número complexo com o seguinte formato:
- #.#+/-#.#i (em que +/- depende do sinal da parte imaginária).*/
- public static void imprimirComplexo (Complexo x) {
- if (x.i>0){
- System.out.printf("%.1f+%.1fi", x.r, x.i);
- }
- else if (x.i<0) {
- System.out.printf("%.1f-%.1fi", x.r, x.i);
- }
- else {
- System.out.printf("%.1f", x.r);
- }
- }
- /*Função para cada uma das operações seguintes:
- • Adição: a+bi+c+di=(a+c)+(b+d)i
- • Subtração: a+bi-c+di=(a-c)+(b-d)i
- • Multiplicação: (a+bi)*(c+di)=(ac-bd)+(bc+ad)i
- • Divisão: (a+bi)/(c+di)=((ac+bd)/(c2+d2))+((bc-ad)/(c2+d2))i*/
- public static Complexo adicaocomplexos (Complexo x, Complexo y) {
- Complexo z = new Complexo();
- z.r = x.r + y.r;
- z.i = x.i + y.i;
- return z;
- }
- public static Complexo subcomplexos (Complexo x, Complexo y) {
- Complexo z = new Complexo();
- z.r = x.r - y.r;
- z.i = x.i - y.i;
- return z;
- }
- public static Complexo multicomplexos (Complexo x, Complexo y) {
- Complexo z = new Complexo();
- z.r = x.r*y.r - x.i*y.i;
- z.i = x.i*y.r + x.r*y.i;
- return z;
- }
- public static Complexo divcomplexos (Complexo x, Complexo y) {
- Complexo z = new Complexo();
- z.r = (x.r*y.r + x.i*y.i)/(Math.pow(y.r,2)+Math.pow(y.i,2));
- z.i = (x.i*y.r - x.r*y.i)/(Math.pow(y.r,2)+Math.pow(y.i,2));
- return z;
- }
- }
- class Complexo {
- double r;
- double i;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement