1 
   2 *@autor: GUILLERMO LONDOÑO 624041 FABIAN CANO 624020
   3 *ESTE ES UN CUBO MAGICO QUE SUM A LAS FILA Y COLUMNAS Y LAS DIAGONALES Y LA MUESTRAEN CONSOLA
   4 
   5 public class Cubang1{  
   6         public static void main(String args[]){
   7                 //Genero la matriz de x numeros;
   8 
   9                 int opc=1;
  10                 //ingreso al ciclo que me controla si desea o no salir del programa
  11                 while (opc!=0){
  12                         int fent=0;
  13                         int cent=0;
  14                         fent=capturaFilent();
  15                         cent=fent;
  16                         //cent=capturaColent();
  17                         int [][] mat1;
  18                         mat1= new int [fent][cent];
  19                         int [] vec1;
  20                         vec1= new int [fent];
  21                         int [] vec2;
  22                         vec2= new int [cent];
  23                         int [] vec3;
  24                         vec3= new int [fent];
  25                         int [] vec4;
  26                         vec4= new int [cent];
  27                         /*****/ 
  28                         int fila=0;
  29                         int col=0;
  30                         int pos=0;
  31                         int fvec=0;
  32                         int cvec=0;
  33                         int num=0;
  34                         int aux0=0;
  35                         int aux1=0;
  36                         int aux2=fent*cent;
  37                         int aux4=0;
  38                         int acum=0;
  39                         //int acum2=0;
  40                         float aux3=0;
  41                         float res=0;
  42                         
  43                         entro al ciclo de repeticion para validar la informacion */
  44                         fila=capturaFila(fent);
  45                         col=capturaCol(fent);
  46                         num=capturaNum(aux2);
  47                         System.out.println(" ");
  48                         for(aux0=0;aux0<aux2+1;aux0++){
  49                                 mat1[fila][col]=num;
  50                                 aux1=num;
  51                                 // Se evalua si 25 es divisible por num. Y si el residuo de esta
  52                                 // division es divisible por 5 y da Cero;
  53                                 if((aux1>=2)&&(aux1<=aux2)){
  54                                         res=calcularRes(aux1, aux2);
  55                                         aux3=res%fent;
  56                                         //si el resultado da Cero  
  57                                         if(aux3==0){
  58                                                 col=col+2;
  59                                                 if(col==cent+1){
  60                                                         col=1;
  61                                                 }
  62                                                 if(col==cent){
  63                                                         col=0;
  64                                                 }
  65                                         }
  66                                         //si el residuo de las operaciones anteriores es diferente de cero;  
  67                                         if(aux3!=0){
  68                                                 fila=fila+2;
  69                                                 if(fila==fent+1){
  70                                                         fila=1;
  71                                                 }
  72                                                 if(fila==fent){
  73                                                         fila=0;
  74                                                 }
  75                                                 col=col+1;
  76                                                 if(col==cent){
  77                                                         col=0;
  78                                                 }
  79                                         }
  80                                 }
  81                                 // si num es igual a 1 (es una excepcion que se hace en la 
  82                                 // division de 25) 
  83                                 if(num==1){
  84                                         fila=fila+2;
  85                                         if(fila==fent+1){
  86                                                 fila=1;
  87                                         }
  88                                         if(fila==fent){
  89                                                 fila=0;
  90                                         }
  91                                         col=col+1;
  92                                         if(col==cent){
  93                                                 col=0;
  94                                         }
  95                                 }
  96                                 num=num+1;
  97                                 if(num>aux2){
  98                                         num=1;
  99                                 }
 100                         }
 101                         //impresion de la matriz 
 102                         for(fila=0;fila<fent;fila++){
 103                                 for(col=0;col<cent;col++){
 104                                         if(mat1[fila][col]<=9){
 105                                                 System.out.print("     "+mat1[fila][col]);
 106                                         }
 107                                         if((mat1[fila][col]>9)&&(mat1[fila][col]<100)){
 108                                                 System.out.print("    "+mat1[fila][col]);
 109                                         }
 110                                         if((mat1[fila][col]>=100)&&(mat1[fila][col]<999)){
 111                                                 System.out.print("   "+mat1[fila][col]);
 112                                         }
 113                                         if(mat1[fila][col]>=1000){
 114                                                 System.out.print("  "+mat1[fila][col]);
 115                                         }               
 116                                         if(col==cent-1){
 117                                                 System.out.println();
 118                                         }
 119                                 }
 120                         }
 121                         //llenado del vector fila 
 122                         System.out.println(" ");
 123                         fvec=capturaFvec();                     
 124                         for(fila=fvec;fila==fvec;fila++){
 125                                 for(col=0;col<cent;col++){
 126                                         vec1[pos]=mat1[fila][col];
 127                                         pos=pos+1;
 128                                 }
 129                                 break;
 130                         }
 131                         System.out.println(" ");
 132                         System.out.print("la fila "+fvec+" es ");
 133                         
 134                         //impresion del vector fila
 135                         for(pos=0;pos<cent;pos++){
 136                                 acum=acum+vec1[pos];
 137                                 System.out.print(" "+vec1[pos]);
 138                         }
 139                         System.out.print("  Suma total de la fila = "+acum);
 140                         System.out.println(" ");
 141                         
 142                         //llenado del vector columna
 143                         System.out.println(" ");
 144                         cvec=capturaCvec();
 145                         pos=0;                  
 146                         for(fila=0;fila<fent;fila++){
 147                                 for(col=cvec;col==cvec;col++){
 148                                         vec2[pos]=mat1[fila][col];
 149                                         pos=pos+1;
 150                                 }
 151                         }
 152                         System.out.println(" ");
 153                         System.out.print("la columna "+cvec+" es ");
 154                         //impresion del vector columna
 155                         acum=0;
 156                         for(pos=0;pos<fent;pos++){
 157                                 acum=acum+vec2[pos];
 158                                 System.out.print(" "+vec2[pos]);
 159                         }
 160                         System.out.print("    Suma total de la columna = "+acum);
 161                         System.out.println(" ");
 162                         
 163                         // llemado vector diagonal 
 164                         pos=0;
 165                         acum=0;
 166                         for(fila=0;fila<fent;fila++){
 167                                 for(col=0;col<fent;col++){
 168                                         if(fila==col){
 169                                                 vec3[pos]=mat1[fila][col];
 170                                                 pos=pos+1;
 171                                         }
 172                                 }
 173                         }
 174                         //impresion vector diagonal
 175                         System.out.println(" ");
 176                         System.out.print("la diagonal es ");
 177                         for(pos=0;pos<fent;pos++){
 178                                 acum=acum+vec3[pos];
 179                                 System.out.print(" "+vec3[pos]);
 180                         }
 181                         System.out.print("    Suma total de la diagonal = "+acum);
 182                         System.out.println(" ");
 183                         
 184                         // llemado vector transversal 
 185                         pos=0;
 186                         acum=0;
 187                         for(fila=0;fila<fent;fila++){
 188                                 for(col=0;col<cent;col++){
 189                                         aux4=fila+col;
 190                                         if(aux4==fent-1){
 191                                                 vec4[pos]=mat1[fila][col];
 192                                                 pos=pos+1;
 193                                         }
 194                                 }
 195                         }
 196                         //impresion vector transversal
 197                         System.out.println(" ");
 198                         System.out.print("la transversal es  ");
 199                         for(pos=0;pos<cent;pos++){
 200                                 acum=acum+vec4[pos];
 201                                 System.out.print(" "+vec4[pos]);
 202                         }
 203                         System.out.print("    Suma total de la tranversal = "+acum);
 204                         System.out.println(" ");
 205 
 206                         //control del ciclo de salida del programa 
 207                         System.out.println(" ");
 208                         System.out.print("Desea salir digite->0 desea continuar digite cualquier tecla :");
 209                 opc=Lectura.datoInt();
 210             }
 211     }
 212     
 213     //funcion de capturar cantidad de filas
 214         public static int capturaFilent(){ 
 215         int fe=0;
 216         System.out.print("Digite numero impar para definir el tamaño de la matriz  :");
 217         fe=Lectura.datoInt();
 218         return fe;
 219         }       
 220     
 221     /*funcion de capturar cantidad de columnas
 222         public static int capturaColent(){ 
 223         int ce=0;
 224         System.out.print("Digite la fila entre 0 y 33 donde desea colocar el numero :");
 225         ce=Lectura.datoInt();
 226         return ce;      
 227         }*/
 228     
 229     //funcion de capturar la fila
 230         public static int capturaFila(int fent){ 
 231         int fi=0;
 232         int po1=0;
 233         po1=fent-1;
 234         System.out.print("Digite la fila entre 0 y "+po1+" donde desea colocar el numero :");
 235         fi=Lectura.datoInt();
 236         return fi;      
 237         }
 238         //funcion de capturar la columna
 239         public static int capturaCol(int fent){
 240         int co=0;
 241         int po1;
 242         po1=fent-1;
 243         System.out.print("Digite la columna entre 0 y "+po1+" donde desea colocar el numero  :");
 244         co=Lectura.datoInt();
 245         return co;      
 246         }
 247         //funcion de capturar el numero inicial
 248         public static int capturaNum(int aux2){
 249         int nu=0;
 250         System.out.print("Digite un numero con el que desea inicializar la matriz entre 1 y "+aux2+" :");
 251         nu=Lectura.datoInt();
 252         return nu;      
 253         }
 254         //funcion que evalua 25 dividido por num 
 255         public static float calcularRes(int aux1, int aux2){
 256         float rs=0;
 257         rs=aux2%aux1;
 258         return rs;
 259         }
 260         //captura de la fila a verificar
 261         public static int capturaFvec(){ 
 262         int fi=0;
 263         System.out.print("Digite fila entre a verificar :");
 264         fi=Lectura.datoInt();
 265         return fi;      
 266         }
 267         //captura de la columna a verificar
 268         public static int capturaCvec(){ 
 269         int co=0;
 270         System.out.print("Digite columna entre a verificar :");
 271         co=Lectura.datoInt();
 272         return co;      
 273         }
 274 }

Java/Programas/Cubang1.java (last edited 2008-04-20 14:39:31 by localhost)