Trabajo Prg1

download Trabajo Prg1

If you can't read please download the document

description

ejercicios resueltos

Transcript of Trabajo Prg1

//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 columna. 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 ultima 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 multiplicar" ); } }}_____________________________________________________________________________________________________________________*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 magico 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 columnas 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 valores 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 columna } } } } 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 final 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 valor 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 diagonales 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 vectorpublic static void escMat(double [][] V){String kad= "matriz\n";int FV,CV;FV=V.length;CV=V[0].length;for(int i=0;i