Foros del Web » Programación para mayores de 30 ;) » Java »

Matrices triangulares

Estas en el tema de Matrices triangulares en el foro de Java en Foros del Web. Os consulto lo siguiente, ¿Cuál podría ser un algoritmo para verificar si una matriz insertada es triangular? Yo he programado lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 06/11/2012, 15:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
Matrices triangulares

Os consulto lo siguiente, ¿Cuál podría ser un algoritmo para verificar si una matriz insertada es triangular?

Yo he programado lo siguiente:

Código JAVA:
Ver original
  1. public static boolean triangularSup(int x[][]) {
  2.         boolean esTriangular = true;
  3.        
  4.         for(int i=0; i<x.length; i++){
  5.             for(int j=0; j<i; j++){
  6.                 if(x[i][j] != 0){
  7.                     esTriangular = false;
  8.                     break;
  9.                 }
  10.                
  11.             }
  12.            
  13.         }
  14.        
  15.         return esTriangular;
  16.        
  17.     }

La cosa es que no funciona, y no soy capaz de pensar un algoritmo adecuado. Mi idea sería ir comprobando elemento a elemento, pero tampoco sé como decirle al programa que verifique si son ceros todos los elementos por debajo de la diagonal...
  #2 (permalink)  
Antiguo 06/11/2012, 15:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 50
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Matrices triangulares

¡Qué tonto! El problema radicaba en el método main, que habia puesto que independientemente del resultado, me dijese que SÍ era triangular jajaja

Os dejo mi solución:

Código JAVA:
Ver original
  1. import java.util.*;
  2.  
  3. public class ClassEnsayo {
  4.  
  5.     /**
  6.      * Nombre:        Ejercicio 02, Hoja de Arrays y métodos
  7.      * Autor:         Javier García Manzano
  8.      * Fecha y hora:  06/11/2012, 22:53
  9.      * Hacer un programa en java que implemente tres métodos, uno que verifique si la
  10.      * matriz es triangular superior, el segundo método verificará si la matriz es triangular
  11.      * inferior y por último, un método que verifique si se trata de una matriz diagonal. El
  12.      * rango de la matriz deberá ser ingresado por teclado (n x m).
  13.      */
  14.  
  15.     public static void main(String[] args) {
  16.        
  17.         Scanner t= new Scanner(System.in);
  18.        
  19.        
  20.         System.out.println("Cuántas filas y columnas tendrá la matriz?: ");
  21.         int dim = t.nextInt();
  22.        
  23.         int x[][] = new int[dim][dim];
  24.        
  25.         System.out.println("Introduce datos: ");
  26.         for(int i=0; i<dim; i++){
  27.             for(int j=0; j<dim; j++)
  28.                 x[i][j] = t.nextInt();}
  29.  
  30.         if(ClassEnsayo.triangularInf(x)) System.out.println("Es Triangular inferior");
  31.         else if(ClassEnsayo.triangularSup(x)) System.out.println("Es Triangular superior");
  32.         else System.out.println("No es triangular");
  33.        
  34.         t.close();
  35.     }
  36.    
  37.     public static boolean triangularInf(int x[][]) {
  38.         boolean esTriangular = true;
  39.        
  40.         for(int i=0; i<x.length; i++){
  41.             for(int j=0; j<i; j++){
  42.                 if(x[i][j] != 0){
  43.                     esTriangular = false;
  44.                     break;
  45.                 }
  46.                
  47.             }
  48.            
  49.         }
  50.        
  51.         return esTriangular;
  52.        
  53.     }
  54.    
  55.     public static boolean triangularSup(int x[][]) {
  56.         boolean esTriangular = true;
  57.        
  58.         for(int i=0; i<x.length; i++){
  59.             for(int j=0; j<i; j++){
  60.                 if(x[j][i] != 0){
  61.                     esTriangular = false;
  62.                     break;
  63.                 }
  64.                
  65.             }
  66.            
  67.         }
  68.        
  69.         return esTriangular;
  70.        
  71.     }
  72.  
  73.  
  74. }

Etiquetas: matrices, programa, triangulares
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:42.