Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class montante
- {
- private Fracciones Matriz[][][];
- private Fracciones PivAnt = new Fracciones(1);
- private Fracciones PivAct;
- public int iteracion=0;
- //tamaño va a ser tomado con Matriz.length();
- public montante(Fracciones Matriz[][][])
- {
- this.Matriz=Matriz;
- this.PivAct = new Fracciones(Matriz[0][0][0].GetNumerador(),Matriz[0][0][0].GetDenominador());
- }
- public void metodomontante ()
- {
- //crear elementos
- /* Fracciones Elemento = new Fracciones();
- Fracciones Elemento1 = new Fracciones();
- Fracciones Elemento2 = new Fracciones();
- Fracciones Espacio = new Fracciones();
- */
- Fracciones num;
- int iteracion=0,i,j,k;
- do
- {
- for(j=0;j<this.Matriz[0][0].length;j++)//copia exactamente igual la fila
- {
- this.Matriz[iteracion+1][iteracion][j]= this.Matriz[iteracion][iteracion][j];
- //la iteracion+1 de la dimencion "k" indica la matriz actual o la que sigue de llenar :)
- }
- this.PivAct=this.Matriz[iteracion+1][iteracion][iteracion];
- /*no ocupo llenar la columna de 0's por que ya esta lleno mi cubo todo en ceros desde el llenado en el main
- *si no fuera ese el caso lo llenaria omitiendo las coordenada en diagonal de mis pivotes con la condicion(i !=iteracion)
- *en el metodo tambien se va a omitir las coordenadas donde se encuentra la fila (i!=iteracion)&&(j!=iteracion)
- *la suiguiente sucecion de for's e if's comienza el metodo :3
- */
- for(i=0;i<this.Matriz[0].length;i++)
- {
- if(i!=iteracion)
- {
- num = new Fracciones(0);
- Matriz[iteracion+1][i][iteracion]=num;
- //siempre si se ocupo :3
- }
- }
- for(i=0;i<this.Matriz[0].length;i++)
- {
- for(j=0;j<this.Matriz[0][0].length;j++)
- {
- if(i!=iteracion)
- {
- if(j!=iteracion)
- {
- this.Matriz[iteracion][i][j]=Fracciones.division(
- Fracciones.resta(
- Fracciones.multiplicacion(this.PivAct,this.Matriz[iteracion][i][j]), Fracciones.multiplicacion(this.Matriz[iteracion][iteracion][j],this.Matriz[iteracion][i][iteracion])),PivAnt);
- /* //aqui
- this.Matriz[iteracion+1][i][j] =
- new Fracciones().division(
- new Fracciones().resta(
- new Fracciones().multiplicacion(
- this.PivAct,this.Matriz[iteracion][i][j]),
- new Fracciones().multiplicacion(
- this.Matriz[iteracion][iteracion][j],this.Matriz[iteracion][i][iteracion])
- ),this.PivAnt);
- */
- /*objeto que se va a dividir
- *objeto que se va a restar
- *objeto que se va a multiplicar
- *multiplicandose :D
- *objeto que se va a multiplicar y el resultado se restara con el de arribita
- *multiplicandose D:
- *dividiendose */
- //elementos tipo Fracciones
- /*
- Elemento1.multiplicacion(this.PivAct,this.Matriz[iteracion][i][j]);
- Elemento2.multiplicacion(this.Matriz[iteracion][iteracion][j],
- this.Matriz[iteracion][i][iteracion]);
- Espacio.resta(Elemento1,Elemento2);
- Elemento.division(Espacio,this.PivAnt);
- //:D ... espacio=elemento-elemento1; espacio/pivAnt o.o
- this.Matriz[iteracion+1][i][j]=Elemento;//elemento tipo Fracciones
- */
- }
- }
- }
- }
- //imprime matriz
- for(i=0;i<this.Matriz[0].length;i++)
- {
- for(j=0;j<this.Matriz[0][0].length;j++)
- {
- //why not this.Matriz ?
- this.Matriz[iteracion+1][i][j].printf();
- System.out.print(" ");
- }
- System.out.print("\n");
- }
- System.out.println("\n\n");
- PivAnt=PivAct;
- iteracion ++;
- }
- while(iteracion < Matriz[0].length);//verificar limite
- //matriz=GetMatriz();
- //matriz.printf();
- }
- public Fracciones[][][] GetMatriz ()
- {
- return Matriz;
- }
- public Fracciones GetPivAnt()
- {
- return PivAnt;
- }
- public Fracciones GetPivAct()
- {
- return PivAct;
- }
- public static void main(String Args [])
- {
- int tamanio,i,j,k;
- Scanner readline = new Scanner(System.in);
- System.out.print("Dame el orden de la matriz=");
- tamanio= readline.nextInt();
- Fracciones Matriz[][][]= new Fracciones[tamanio+1][tamanio][tamanio*2];
- String dato;
- //llenar la matriz
- for(k=0;k<tamanio+1;k++)
- {
- for(i=0;i<tamanio;i++)
- {
- for(j=0;j<tamanio*2;j++)//._.
- {
- if(k==0)
- {
- if(j>=tamanio)
- {
- if(i+tamanio ==j)
- {
- Matriz[k][i][j] =new Fracciones(1);//poner 1
- }
- else //aqui se llena la matriz identidad adyacente
- {
- Matriz[k][i][j] = new Fracciones(0); //poner 0
- }
- }
- else//resto de la matriz que comience con k=0 [0][i][j]osea la primer matriz del cubo
- {
- System.out.print("Dame["+i+"]"+"["+j+"]:");
- dato = readline.next();
- Matriz[k][i][j] = new Fracciones(dato);
- }
- }
- else//las matricez que aun no se nececitan se llenan de ceros
- {
- Matriz[k][i][j] = new Fracciones(0);
- }
- }
- }
- }
- montante m =new montante (Matriz); //crea montante como parametro envio la matriz con todo y sus datos
- //imprime la matriz
- for(i=0;i<tamanio;i++)
- {
- for(j=0;j<tamanio*2;j++)
- {
- Matriz[0][i][j].printf();
- System.out.print(" ");
- }
- System.out.print("\n");
- }
- System.out.print("\nmatrizleght="+Matriz.length);
- System.out.print("\nmatrizleght="+Matriz[0].length);
- System.out.println("\nmatrizleght="+Matriz[0][0].length);
- System.out.println("\n\n");
- //en m mando llamar metodomontante
- m.metodomontante();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement