Sei sulla pagina 1di 6

//CARLOS UVEIMAR CAICEDO PALACIOS 912014

/*Realizar un algoritmo que lea una matriz, calcule y escriba el promedio


de los elementos de la primera fila y el producto de los elementos de la ltima co
lumna.
Escribir la matriz original.*/
package promeprod;
import javax.swing.JOptionPane;
import matriz.mat;
public class Promeprod {
public static void main(String[] args) {
double [][]A;
double sum=0,prom, prod=1;
int fa, ca, fb,cb;
String cad="";
A=mat.leeMat();
fa=A.length;
ca=A[0].length;
for (int i = 0; i < A[0].length; i++) {
sum=sum+A[0][i];
}
for (int i = 0; i < A.length; i++) {
prod=prod*A[i][ca-1];
}
prom=sum/ca;
cad= "el promedio de la primera fila es "+prom+" y el producto de la u
ltima columna es "+prod;
JOptionPane.showMessageDialog(null, cad);
JOptionPane.showMessageDialog(null, "la matriz original es ");
mat.escMat(A);
}
}
________________________________________________________________________________
____________________________________
/*Realizar un algoritmo que lea 2 matrices. Calcular y escribir
otra matriz que sea el producto matricial de la primera por la segunda.*/
package prodmat;
import javax.swing.JOptionPane;
import matriz.mat;
public class Prodmat {
public static void main(String[] args) {
double [][]A,B,P;
int fa, ca, fb, cb;
JOptionPane.showMessageDialog(null, "ingrese la primera matriz" );
A=mat.leeMat();
mat.escMat(A);
JOptionPane.showMessageDialog(null, "ingrese la segunda matriz" );
B=mat.leeMat();
mat.escMat(B);
fa=A.length;
ca=A[0].length;
fb=B.length;
cb=B[0].length;
P=new double[fa][cb];

if ( ca==fb){
JOptionPane.showMessageDialog(null, "la matriz resultante es" );
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < B[0].length; j++) {
for (int k = 0; k < A[0].length; k++) {
P[i][j]+=A[i][k]*B[k][j];
}
}
}
mat.escMat(P);
}
else{
JOptionPane.showMessageDialog(null, "las matrices no se pueden multi
plicar" );
}
}
}
________________________________________________________________________________
_____________________________________
*Leer una matriz de nmeros enteros, formar un vector con los nmeros impares
que se encuentren en la matriz. Escribir el vector resultante.*/
package impar;
import javax.swing.JOptionPane;
import matriz1.mat1;
public class Impar {
public static void main(String[] args) {
String cad="";
int A[][];
int fa, ca, cont=0,v;
A=mat1.leeMat();
fa=A.length;
ca=A[0].length;
int imp[]=new int[fa*ca];
for (int i = 0; i < fa; i++) {
for (int j = 0; j < ca; j++) {
if( A[i][j]%2!=0){
imp[cont]=A[i][j];
cont=cont+1;
}
}
}
for (int i = 0; i < imp.length; i++) {
cad=cad+" "+imp[i];
}
JOptionPane.showMessageDialog(null, "el vector de impares es\n\n "+cad);
}
}
________________________________________________________________________________
____________________________________
/*Para una matriz, determinar si es un cuadrado mgico.*/
package cmagico;

import javax.swing.JOptionPane;
import matriz1.mat1;
public class Cmagico {
public static void main(String[] args) {
String fil="";
String col="";
String dp="";
String ds="";
String cad="";
String cm="";
int A[][];
A=mat1.leeMat();
int []sumfil,sumcol,vfin;
int sf=0,sc=0,sds,f,c,d;
sumfil=new int[A.length];
sumcol=new int[A[0].length];
int []sumdiag={0,0};
sds=A[0].length;
if (A.length!=A[0].length) {
JOptionPane.showMessageDialog(null,"la matriz no es un cudrado magic
o por"
+ "que no es cuadrada");
}
else{
//con los dos primeros ciclos determinamos las sumas de las filas
for (int i = 0; i < A.length; i++) {
sf=0;
//con los siguientes ciclos 2 y 3 determinamos las sumas de las colu
mnas
for (int j = 0; j < A[0].length; j++) {
sf=sf+A[i][j];
sumfil[i]=sf;//en cada posicin se almacena la suma por cada fila
sc=0;
if (i==j){
sumdiag[0]+=A[i][j]; //aqui almaceno el resultado de los valo
res de
//la diagonal principal
}
for (int k = 0; k < A[0].length; k++) {
sc=sc+A[k][j];
sumcol[j]=sc;//en cada posicin se almacena la suma por cada c
olumna
}
}
}
}
for (int i = 0; i < A[0].length; i++) {
sds--;
sumdiag[1]+=A[i][sds];//aqui almaceno el resultado de los valores de
//la diagonal secundaria
}
/*aqui llevamos a un solo vector los elemetos e los vectores de
las sumas de las filas, de las columnas y de las diagonales */
f=sumfil.length;
c=sumcol.length;
d=sumdiag.length;
vfin=new int[f+c+d];
for (int i = 0; i < vfin.length-(c+d); i++) {

vfin[i]=sumfil[i];
}
for (int i = f; i < f+c; i++) {
vfin[i]=sumcol[i-f];
}
for (int i = f+c; i < f+c+d; i++) {
vfin[i]=sumdiag[i-(f+c)];
}
for (int i = 0; i < vfin.length; i++) {
cad=cad+vfin[i]+" ";
}
/*aqui corroboramos si todos los valores almacenados en el vector fin
al
son iguales y si lo son la matriz ingresada es un cuadrado mgico*/
int comp=vfin[0];/*esta variable me sirve para saber si el primer val
or
del vector vfin es igual a todos los demas valores del mismo*
/
for (int i = 0; i < vfin.length; i++) {
if(comp==vfin[i]){
vfin[i]=comp;
comp=vfin[i];
cm="la matriz es un cuadrado magico";
}
else
cm="la matriz no es un cuadrado magico";
}
//aqui imprimimos los resultados de la suma por cada fila, columna y d
iagonales
fil="la suma de las filas es \n\n";
for (int i = 0; i < sumfil.length; i++) {
fil=fil+sumfil[i]+"\n";
}
JOptionPane.showMessageDialog(null, fil);
col="la suma de las columnas es \n\n";
for (int i = 0; i < sumcol.length; i++) {
col=col+sumcol[i]+" ";
}
JOptionPane.showMessageDialog(null, col);
dp="la suma de ladiagonal principal es \n\n";
JOptionPane.showMessageDialog(null, dp+" "+ sumdiag[0]);
ds="la suma de ladiagonal secundaria es \n\n";
JOptionPane.showMessageDialog(null, ds+" "+ sumdiag[1]);
JOptionPane.showMessageDialog(null, "el vector de los valores es "+cad)
;
//imprimimos si la matriz es o no un cuadrado mgico
JOptionPane.showMessageDialog(null, cm);
}
}
________________________________________________________________________________
______________________________
//Leer una matriz cuadrada de orden 2 o 3. Calcular y escribir su determinante.
package detmatriz;
import javax.swing.JOptionPane;
import matriz1.mat1;
public class DetMatriz {

public static void main(String[] args) {


int [][]A;
A=mat1.leeMat();
int []sumdiag={1,1};
int sds=A[0].length;
int det;
if (A.length!=A[0].length||A.length >3)
JOptionPane.showMessageDialog(null,"el codigo solo calculamatrices de orden
3 y 2 ");
else {
for (int i = 0; i < A.length; i++) {
sumdiag[0]=sumdiag[0]*A[i][i];
}
System.out.println(""+sumdiag[0]);
for (int j = 0; j < A[0].length; j++) {
sds--;
sumdiag[1]*=A[j][sds];
}
System.out.println(""+sumdiag[1]);
det=sumdiag[0]-sumdiag[1];
JOptionPane.showMessageDialog(null,"la determinante es "+ det);
}
}
}
________________________________________________________________________________
_____________________________
Metodos utilizados importados desde los archivos jar:
package matriz;
import javax.swing.JOptionPane;
public class mat {
public static double [][] leeMat(){
double [][] V;
int FV,CV;
String cad;
cad=JOptionPane.showInputDialog("numero de filas de la matriz");
FV=Integer.parseInt(cad);
cad=JOptionPane.showInputDialog("numero de columnas de la matriz");
CV=Integer.parseInt(cad);
V=new double[FV][CV];
for (int i = 0; i < FV; i++) {
for (int j = 0; j < CV; j++) {
cad=JOptionPane.showInputDialog("elemento "+(i+1)+" "+(j+1));
V[i][j]=Double.parseDouble(cad);
}
}
return V;
}
//escritura del vector
public static void escMat(double [][] V){
String kad= "matriz\n";
int FV,CV;
FV=V.length;
CV=V[0].length;

for(int i=0;i<FV;i++){
kad=kad+"\n";
for(int j=0;j<CV;j++){
kad=kad+ V[i][j]+" ";
}
}
JOptionPane.showMessageDialog(null, kad);
}
}
________________________________________________________________________________
_______________________________
package matriz1;
import javax.swing.JOptionPane;
public class mat1 {
public static int[][] leeMat(){
int [][] V;
int FV,CV;
String cad;
cad=JOptionPane.showInputDialog("numero de filas de la matriz");
FV=Integer.parseInt(cad);
cad=JOptionPane.showInputDialog("numero de columnas de la matriz");
CV=Integer.parseInt(cad);
V=new int[FV][CV];
for (int i = 0; i < FV; i++) {
for (int j = 0; j < CV; j++) {
cad=JOptionPane.showInputDialog("elemento "+(i+1)+" "+(j+1));
V[i][j]=Integer.parseInt(cad);
}
}
return V;
}
//escritura del vector
public static void escMat(int [][] V){
String kad= "matriz\n";
int FV,CV;
FV=V.length;
CV=V[0].length;
for(int i=0;i<FV;i++){
kad=kad+"\n";
for(int j=0;j<CV;j++){
kad=kad+ V[i][j]+" ";
}
}
JOptionPane.showMessageDialog(null, kad);
}
}

Potrebbero piacerti anche