Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 {
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);
}
}