Implementación de Números Complejos Multidimensionales en Java

Informática3,31 KB

Implementación de la Clase Complexf en Java

A continuación se muestra el código fuente optimizado y corregido para la gestión de números complejos con múltiples partes imaginarias en Java.

Código Fuente

package complexf; 

public class Complexf { 

    private float part_real, part_imaginaria_1, part_imaginaria_2, part_imaginaria_3; 
    
    public Complexf(float pReal, float pImag1, float pImag2, float pImag3) { 
        part_real = pReal; 
        part_imaginaria_1 = pImag1; 
        part_imaginaria_2 = pImag2; 
        part_imaginaria_3 = pImag3; 
    } 
    
    private Complexf(float pR, float pI) { 
        throw new UnsupportedOperationException("Not yet implemented"); 
    } 
    
    public float real() { 
        return part_real; 
    } 
    
    public float imaginaria_1(){
        return part_imaginaria_1; 
    } 
    
    public float imaginaria_2(){
        return part_imaginaria_2; 
    } 
    
    public float imaginaria_3(){
        return part_imaginaria_3; 
    } 
    
    public static Complexf suma(Complexf a, Complexf b) { 
        return new Complexf(a.real() + b.real(), 
        a.imaginaria_1() + b.imaginaria_1(), a.imaginaria_2() + b.imaginaria_2(), 
        a.imaginaria_3() + b.imaginaria_3()); 
    } 
    
    public static Complexf resta(Complexf a, Complexf b) { 
        return new Complexf(a.real() - b.real(), 
        a.imaginaria_1() - b.imaginaria_1(), a.imaginaria_2() - b.imaginaria_2(), 
        a.imaginaria_3() - b.imaginaria_3()); 
    } 

    public static Complexf producte(Complexf a, Complexf b) { 
        float pR, pI; 
        pR = a.real() * b.real() + a.imaginaria_1() * b.imaginaria_1() + 
        a.imaginaria_2() * b.imaginaria_2() + a.imaginaria_3() * b.imaginaria_3(); 
        pI = a.real() * b.imaginaria_1() + a.real() * b.imaginaria_2() + 
        a.real() * b.imaginaria_3() + b.real() * a.imaginaria_1() + 
        b.real() * a.imaginaria_2() + b.real() * a.imaginaria_2(); 
        return new Complexf(pR, pI); 
    } 
    
    public String toString(){
        return "(" + part_real + " + " + part_imaginaria_1 + "i + " + part_imaginaria_2 
        + "j + " + part_imaginaria_3 + "k)"; 
    } 
    
    public void canviReal(float nou) { 
        part_real = nou; 
    } 
    
    public void canviImag1(float nou) { 
        part_imaginaria_1 = nou; 
    } 
    
    public void canviImag2(float nou) { 
        part_imaginaria_2 = nou; 
    } 
    
    public void canviImag3(float nou) { 
        part_imaginaria_3 = nou; 
    } 
    
    public static void main(String [] args) { 
        Complexf a, b, c; 
        System.out.println("Programa que mostra la utilització dels nombres Complex"); 
        a = new Complexf(-9, 3, 3, 5); 
        b = new Complexf(5, 6, 4, 7); 
        
        System.out.println(); 
        System.out.println("/SUMA: "); 
        c = Complexf.suma(a, b); 
        System.out.println("La suma de " + a + " i " + b + " és: " + c); 
        
        System.out.println(); 
        System.out.println("/RESTA: "); 
        c = Complexf.resta(a, b); 
        System.out.println("La resta de " + a + " i " + b + " és: " + c); 
        c.canviImag1(b.real()); 
        c.canviImag2(b.real()); 
        c.canviImag3(b.real()); 
        System.out.println(b + " x " + c + " = " + Complexf.producte(b, c)); 
    } 
}

Descargar

PDF Word HTML