jueves, 6 de noviembre de 2008

MATRIZ

import java.io.*;
public class MenuMatriz
{
public static void main(String args[])
{
Operaciones obj= new Operaciones();
Leer Lee = new Leer();
int op;
do
{
System.out.println("n MENU ");
System.out.println(" [1] SUMA");
System.out.println(" [2] RESTA");
System.out.println(" [3] MULTIPLICACCION");
System.out.println(" [4] DIVICION");
System.out.println(" [5] SALIR");
System.out.print("n ESCOJER OPCION : ");
op=Lee.datoInt();
switch (op)
{
case 1: obj.Suma(); break;
case 2: obj.Resta(); break;
case 3: obj.Multiplicacion(); break;
case 4: obj.Division(); break;
case 5: System.out.println("nFin del programa."); break;
default: System.out.println("n Error ");
}
}while(op!=5);
}
}
class Leer
{
public static String dato()
{
String sdato="";
try
{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader flujo =new BufferedReader (isr);
sdato=flujo.readLine();
}
catch (IOException e)
{
System.err.println("Error"+ e.getMessage());
}
return sdato;
}
public static int datoInt()
{
try
{
return Integer.parseInt (dato());
}
catch(NumberFormatException e)
{
return Integer.MIN_VALUE;
}
}
public static float datoFloat()
{
try
{
Float f = new Float(dato());
return f.floatValue();
}
catch(NumberFormatException e)
{
return Float.NaN; // No es un Número; valor float.
}
}
}
class Operaciones
{
void Muestra(float M[][],int F,int C)
{
for(int y=0; y {
System.out.print("n");
for(int x=0; x System.out.print(M[x][y]+" ");
}
}
void Muestra(int M[][],int F,int C)
{
for(int y=0; y {
System.out.print("n");
for(int x=0; x System.out.print(M[x][y]+" ");
}
}

boolean Compara(int AX,int AY,int BX,int BY)
{
if ((AX==BX && AY==BY))
return true;
return false;
}

boolean Compara(int AX,int BY)
{
if ((AX==BY))
return true;
return false;
}

void Suma()
{
Leer Lee = new Leer();
Operaciones Obj= new Operaciones();
int FA=0;
int FB=0;
int CA=0;
int CB=0;
System.out.println("n ingrese el número de Filas y Columnas de la matrice.");
System.out.print("n Filas de A:"); FA=Lee.datoInt();
System.out.print("n Filas de B:"); FB=Lee.datoInt();
System.out.print("n Columnas de A:"); CA=Lee.datoInt();
System.out.print("n Columnas de B:"); CB=Lee.datoInt();
int A[][] = new int[CA][FA];
int B[][] = new int[CB][FB];
int S[][] = new int[CA][FB];
if (Obj.Compara(CA,FA,CB,FB))
{
System.out.println("n datos de A:");
for(int y=0; y for(int x=0; x {
System.out.print("A["+(x+1)+"]["+(y+1)+"] = "); A[x][y]= Lee.datoInt();
}
System.out.println("n datos de B:");
for(int y=0; y for(int x=0; x {
System.out.print("B["+(x+1)+"]["+(y+1)+"] = "); B[x][y]= Lee.datoInt();
}
System.out.println("nMatriz A:n");
Obj.Muestra(A,FA,CA);
System.out.println("nMatriz B:n");
Obj.Muestra(B,FB,CB);
for(int y=0; y for(int x=0; x S[x][y]=A[x][y]+B[x][y];
System.out.println("nLa suma es:n");
Obj.Muestra(S,FA,CB);
}
else
{

System.out.println("n Al sumarce las matrices tienen que tener las mismas dimenciones");
}
}
void Resta()
{
Leer Lee = new Leer();
Operaciones Obj= new Operaciones();
int FA=0;
int FB=0;
int CA=0;
int CB=0;
System.out.println("n ingrese el número de Filas y Columnas dela matrice.");
System.out.print("n Filas de A:"); FA=Lee.datoInt();
System.out.print("n Filas de B:"); FB=Lee.datoInt();
System.out.print("n Columnas de A:"); CA=Lee.datoInt();
System.out.print("n Columnas de B:"); CB=Lee.datoInt();
int A[][] = new int[CA][FA];
int B[][] = new int[CB][FB];
int S[][] = new int[CA][FB];
if (Obj.Compara(CA,FA,CB,FB))
{
System.out.println("n Datos de A:");
for(int y=0; y for(int x=0; x {
System.out.print("A["+(x+1)+"]["+(y+1)+"] = "); A[x][y]= Lee.datoInt();
}
System.out.println("n Datos de B:");
for(int y=0; y for(int x=0; x {
System.out.print("B["+(x+1)+"]["+(y+1)+"] = "); B[x][y]= Lee.datoInt();
}
System.out.println("n Matriz A:n");
Obj.Muestra(A,FA,CA);
System.out.println("n Matriz B:n");
Obj.Muestra(B,FB,CB);
for(int y=0; y for(int x=0; x S[x][y]=A[x][y]+(B[x][y]*-1);
System.out.println("nLa resta es:n");
Obj.Muestra(S,FA,CB);
}
else
{
System.out.println("n Al restarse las matrices tienen que tener las mismas dimenciones");
}
}

void Multiplicacion()
{
Leer Lee = new Leer();
Operaciones Obj= new Operaciones();
int FA=0;
int FB=0;
int CA=0;
int CB=0;
int suma=0;
int h=0;
System.out.println("n ingrese el número de Filas y Columnas de la matrices.");
System.out.print("n Filas de A:"); FA=Lee.datoInt();
System.out.print("n Filas de B:"); FB=Lee.datoInt();
System.out.print("n Columnas de A:"); CA=Lee.datoInt();
System.out.print("n Columnas de B:"); CB=Lee.datoInt();
int A[][] = new int[CA][FA];
int B[][] = new int[CB][FB];
int S[][] = new int[CA][FB];
if (Obj.Compara(CA,FB))
{
System.out.println("n Datos de A:");
for(int y=0; y for(int x=0; x {
System.out.print("A["+(x+1)+"]["+(y+1)+"] = "); A[x][y]= Lee.datoInt();
}
System.out.println("n Datos de B:");
for(int y=0; y for(int x=0; x {
System.out.print("B["+(x+1)+"]["+(y+1)+"] = "); B[x][y]= Lee.datoInt();
}

System.out.println("nMatriz A:n");
Obj.Muestra(A,FA,CA);
System.out.println("nMatriz B:n");
Obj.Muestra(B,FB,CB);
for(int y=0; y for(int x=0; x {
h=0;
suma=0;
while(h {
suma+=A[h][y]*B[x][h];
h++;
}
S[x][y]=suma;
}
System.out.println("n La multiplicacion es:n");
Obj.Muestra(S,FA,CB);
}
else
{
System.out.println("n Al multiplicarse el numero de columnas de la matriz A tiene que ser igual nal numero de filas de la matriz B");
}
}
void Division()
{
Leer Lee = new Leer();
Operaciones Obj= new Operaciones();
int FB=0;
int CB=0;
int FA=0;
int CA=0;
int suma=0;
float aux=0;
int h=0;
System.out.println("n Ingrese el número de Filas y Columnas de la matrice");
System.out.print("n Filas de A:"); FA=Lee.datoInt();
System.out.print("n Filas de B:"); FB=Lee.datoInt();
System.out.print("n Columnas de A:"); CA=Lee.datoInt();
System.out.print("n Columnas de B:"); CB=Lee.datoInt();
float A[][] = new float [CB][FB];
float B[][] = new float [CB][FB];
float S[][] = new float [CB][FB];
float I[][] = new float [CB][FB];
float C[][] = new float [CB][FB];
if(Obj.Compara(CA,FB))
{
System.out.println("n Datos de A:");
for(int y=0; y for(int x=0; x {
System.out.print("A["+(x+1)+"]["+(y+1)+"] = "); A[x][y]= Lee.datoFloat();
}
System.out.println("n Datos de B:");
for(int y=0; y for(int x=0; x {
System.out.print("B["+(x+1)+"]["+(y+1)+"] = "); B[x][y]= Lee.datoFloat();
}
System.out.println("n Matriz A:n");
Obj.Muestra(B,FB,CB);
System.out.println("n Matriz B:n");
Obj.Muestra(B,FB,CB);

for(int y=0; y for(int x=0; x {
h=0;
suma=0;
while(h {
suma+=A[h][y]*I[x][h];
h++;
}
S[x][y]=suma;
}
System.out.println("nLa division es:n");
Obj.Muestra(S,FB,CB);
}
else
{
System.out.println("n al dividirse el numero de columnas de la matriz A tiene que ser igual al numero de filas de la matriz B, y debe ser una matriz cuadrada.");
}
}
}


























No hay comentarios: