elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / Ejercicios / Re: Busco ejercicios(SOLUCIONADO) en: 24 Marzo 2014, 03:29 am
Gracias!
2  Programación / Ejercicios / Busco ejercicios(SOLUCIONADO) en: 24 Marzo 2014, 01:19 am
Alguien sabe de un pdf o una colección con ejercicios de programación de recursividad y arrays? los que están en el foro en un post ya los hice, si alguien sabe le agradecería que me dijera, a ser posible que estén resueltos.
Java o c++, me da igual
3  Programación / Java / Problema con programa en: 7 Febrero 2014, 20:10 pm
El método devuelve por ejemplo si metes unos strings
a = "perryABelCornitorrincoD";
b = "ABCD";

a = "perry[target]AB[endtarget]el[target]C[endtarget]ornitorrinco[target]D[endtarget]


Mete entre [target][endtarget] los que esten contenidos en el segundo String
Mi problema es cuando se repiten, el replace me los suscribe dos o más veces y entonces me sale un disparate, si alguien sabe como se soluciona o si hay otra forma más sencilla...
Gracias


Código
  1. public static String tagger(String a, String b){
  2.        //declaración de strings
  3.        String x1 = "";
  4.        String a1 = "[target]";
  5.        String a2 = "[endtarget]";
  6.        boolean bol = true;
  7.        int n;
  8.  
  9.        //Tenemos que conseguir las subristas de b que aparecen en a
  10.  
  11.        for(int i = 0; i < a.length(); i++){                      
  12.            n = b.indexOf(a.charAt(i));            //posición del caracter de a contenido en b  
  13.            if(n != -1){
  14.            bol = true;
  15.            }
  16.            if(n == -1){
  17.            bol = false;
  18.            }
  19.  
  20.            if(bol){
  21.            x1 = x1 + a.charAt(i);
  22.            }else{
  23.            x1 = x1 + " ";
  24.            }
  25.        }
  26.  
  27.        int w1,n3;
  28.        String aux = "";
  29.        x1 = " " + x1 + " ";                                   //para que siempre encuentra un espacio a la izqda y no se salga de rango
  30.  
  31.        for(int k = 0; k < x1.length(); k++){
  32.            w1 = x1.charAt(k);
  33.  
  34.            if(w1 != ' ' && x1.charAt(k-1) == ' '){            // no es un espacio pero el anterior si es un espacio
  35.                n3 = x1.indexOf(" ",k);                        //busca la posición del próximo espacio
  36.                aux = x1.substring(k,n3);                      
  37.                a = a.replaceFirst(aux,a1+aux+a2);
  38.  
  39.            }
  40.        }
  41.        return a;
  42.    }
  43. }
4  Sistemas Operativos / Windows / Re: Problema microsoft visual c++ en: 3 Febrero 2014, 23:16 pm
Ayuda porfavor!! a alguien le tiene que haber ocurrido esto!!
5  Sistemas Operativos / Windows / Problema microsoft visual c++ en: 3 Febrero 2014, 01:06 am
Tengo este problema cuando compilo mi programa en codeblocks con la librería allegro...
Ya probé a reinstalar los microsoft visual c++.
Espero que me ayudéis, gracias.

6  Programación / Java / ordenar matriz en: 4 Noviembre 2013, 15:33 pm
Bueno me gustaría saber si alguien sabe hacer este programa de una manera más rápida, es decir un algoritmo que la ordene sin tener que pasarlo a monodimensional y luego volver a meter los elementos en la matriz.
Me refiero al método ordenaMatriz, porque el otro creo que está bien, el programa funciona, pero creo que no es la forma adecuada de hacerlo.

Gracias de antemano

Código:
import java.util.Scanner;

public class ordenar {
public static int [] ordenarVector (int n[]){
int aux = 0;
int ordenado [] = new int [n.length];
for(int i = 0; i < n.length - 1; i++){
for(int k = i + 1; k < n.length; k++){
if(n[k] < n[i]){
aux = n[i];
n[i] = n[k];
n[k] = aux;
}
}
}
return ordenado;
}
public static int [][] ordenarMatriz (int n[][]){

int vectorAux [] = new int [n.length * n[0].length];
int contAux = 0;

/*Rellenamos el vector auxiliar con los elementos
*de la matriz para poder ordenarlo.
*/
for(int k = 0; k < n.length; k++){
for(int l = 0; l < n[k].length; l++){
vectorAux[contAux] = n[k][l];
contAux++;
}
}

int aux = 0;
for(int i = 0; i < vectorAux.length - 1; i++){
for(int j = i + 1; j < vectorAux.length; j++){
if(vectorAux[j] < vectorAux[i]){
aux = vectorAux[i];
vectorAux[i] = vectorAux[j];
vectorAux[j] = aux;
}
}
}
//Ponemos los valores ordenados de nuevo en la matriz.
int cont = 0;
for(int k = 0; k < n.length; k++){
for(int l = 0; l < n[k].length; l++){
n[k][l] = vectorAux[cont];
cont++;
}
}
return n;
}
public static void mostrarVector(int array[]){
for(int i = 0; i < array.length; i++){
System.out.print(array[i]);
}
System.out.println();
}
public static void pedirElementos(int array []){
Scanner leer = new Scanner(System.in);
for(int i = 0; i < array.length; i++){
System.out.print("Elemento ["+i+"]:" );
array [i] = leer.nextInt();
}
}
public static void pedirElementosBi(int array [][]){
Scanner leer = new Scanner(System.in);
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length;j++){
System.out.print("Elemento ["+i+j+"]:" );
array [i][j] = leer.nextInt();
}
}
}
public static void mostrarMatriz(int array [][]){
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length;j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
public static void main(String [] args){
Scanner leer = new Scanner (System.in);
System.out.println("Ordenar arrays");
System.out.println("1-monodimensional");
System.out.println("2-bidimensional");
int x = leer.nextInt();
switch(x){
case 1:
System.out.println("Longuitud del vector");
int n = leer.nextInt();
int vector [] = new int [n];
pedirElementos(vector);
System.out.println();
mostrarVector(vector);
int [] ordenado = ordenarVector(vector);
mostrarVector(ordenado);

break;
case 2:
System.out.println("Filas");
int nF = leer.nextInt();
System.out.println("Columnas");
int nC = leer.nextInt();
int matriz [][] = new int [nF][nC];
pedirElementosBi(matriz);
System.out.println();
int [][] matrizOrdenada = ordenarMatriz(matriz);
mostrarMatriz(matrizOrdenada);
break;

default:
System.out.println("Un 1 o un 2 imbécil");
}
}
}
7  Programación / Java / Re: Suma de columnas de matriz mxn en: 19 Octubre 2013, 23:47 pm
Muchas gracias por la explicación!
8  Programación / Java / Re: Suma de columnas de matriz mxn en: 19 Octubre 2013, 22:34 pm
Es decir, ¿sería lo mismo si se usará mat[1], mat[2] u otro número siempre que no se exceda mat.length-1?
Ya que, mat.length es la cantidad de filas de la matriz, ¿verdad?
No entiendo muy bien tu pregunta, mat.length es la cantidad de filas de la "matriz", sí, pero eso es un método, se supone que esta diseñado para que funcione sean los valores que sean los de las filas y las columnas.
Es decir funciona para valores cualesquiera que le pases tú desde la clase principal main por teclado, claro que habría que crear la clase main
9  Programación / Java / Re: Suma de columnas de matriz mxn en: 19 Octubre 2013, 00:19 am
Gracias ya entendí todo el código, sólo tenía la duda de que significaba mat[0].length, ahora que se que devuelve el número de columnas de la primera fila ya lo entiendo todo, gracias por las explicaciones.
10  Programación / Java / Suma de columnas de matriz mxn en: 14 Octubre 2013, 00:37 am
El método sum tiene un parámetro (mat) que es una array bidimensional de elementos de tipo float. El parámetro mat representa una matriz de n x m elementos. Complete el método para que devuelva un array monodimensional de m elementos de tipo de tipo float que represente la suma vectorial de las n filas de la matriz mat.

La suma de n vectores es un nuevo vector en el que cada elemento es igual a la suma de los elementos que ocupan la misma posición en los vectores que se suman.

Ejemplo:
1 2 3 4
0 1 1 2
2 3 1 1   resultado   3 6 5 7


Bueno yo lo he echo así, pero en concreto lo que no entiendo es esto
float[] myArray = new float [mat[0].length];
lo de mat[0].length significa que declaro ese array y tiene la longuitud de la primera dimensión en 0??
Esque eso no lo entiendo si alguien sabe explicarlo bien y de una manera sencilla que me lo diga porfavor.

Código:
public class Excercise {
public static float[] sum(float[][] mat) {
float[] myArray = new float [mat[0].length];

for(int i = 0; i < mat[0].length; i++){
   float suma = 0;
   for(int j = 0; j < mat.length; j++){
       suma += mat[j][i];
       
       
       
       }
       myArray[i] = suma;
       
   }
 
return myArray;
}
}
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines