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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Duda a nivel de optimizacion, con página "acepta el reto" en: 8 Diciembre 2017, 00:18 am
Hola, he hecho un reto de la página acepta el reto, exactamente este: https://www.aceptaelreto.com/problem/statement.php?id=364

Y entrego mi programa pero la duda a es a nivel de optimización, a mi me sale entorno a 0.3 segundos, y si miro las estadísticas de otras personas ves tiempos de 0.012s, 0.016s.... en torno a 25 veces más rápido, y yo por mucho que mire mi código no veo dónde se podría optimizar para acercarme algo a sus resultados.

Código:
 public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String texto;
       
       
       
        do {

            texto = sc.nextLine();

            if (!texto.equals("FIN")) {
               
                int tamanio = texto.length();
                String cadenaSalida = "";
               
                for(int i = 0; i < tamanio; ++i)
                    cadenaSalida += cifrar(texto.charAt(i));
               
                System.out.println(cadenaSalida);
            }

        } while (!texto.equals("FIN"));

    }
   
    private static String cifrar(char letra){
       
        switch (letra) {
            case 'A':
                return "B";
            case 'B':
                return "C";
            case 'C':
                return "D";
            case 'D':
                return "E";
            case 'E':
                return "F";
            case 'F':
                return "G";
            case 'G':
                return "H";
            case 'H':
                return "I";
            case 'I':
                return "J";
            case 'J':
                return "K";
            case 'K':
                return "L";
            case 'L':
                return "M";
            case 'M':
                return "N";
            case 'N':
                return "O";
            case 'O':
                return "P";
            case 'P':
                return "Q";
            case 'Q':
                return "R";
            case 'R':
                return "S";
            case 'S':
                return "T";
            case 'T':
                return "U";
            case 'U':
                return "V";
            case 'V':
                return "W";
            case 'W':
                return "X";
            case 'X':
                return "Y";               
            case 'Y':
                return "Z";   
            case 'Z':
                return "A";
            default:
                return " ";

        }

    }

Entonces por eso os consultaba, ya que no se donde puede estar el punto para que haya tanta diferencia.

Un saludo
2  Programación / Programación C/C++ / linkado en c++? allegro5/allegro.h en: 21 Julio 2016, 23:01 pm
Hola, acabo de empezar a programar en c++. La cosa es que me he bajado las bibliotecas de Allegro5 y cuando realizo este programa para iniciar una ventana:
Código:
 #include <iostream>
#include <stdlib.h>
#include "stdio.h"
#include <allegro5/allegro.h>

using namespace std;

int main(int argc, char **argv){
 
   ALLEGRO_DISPLAY *display = NULL;
 
   if(!al_init()) {
      fprintf(stderr, "failed to initialize allegro!\n");
      return -1;
   }
 
   display = al_create_display(640, 480);

   if(!display) {
      fprintf(stderr, "failed to create display!\n");
      return -1;
   }
 
   al_clear_to_color(al_map_rgb(0,0,0));
 
   al_flip_display();
 
   al_rest(10.0);
 
   al_destroy_display(display);
 
   return 0;
}

y compilo con un makefile hecho por mi me sale que no reconoce las funciones de Allegro5. exactamente pone esto: "/home/****/Escritorio/comecocos_cpp/main_juego.cpp:15: referencia a `al_install_system' sin definir
/home/****/Escritorio/comecocos_cpp/main_juego.cpp:20: referencia a `al_create_display' sin definr " pero lo pone con todas sus funciones de allegro5 no solo con esas. Entonces creo que es un problema al linkear las bibliotecas, aunque tampoco estoy muy seguro.


el makefile es este:


Código:
CXX=g++
CFLAGS= -g -Wall -ansi -pedantic
LDFLAGS=-L/usr/lib -lallegro
INCLUDE=-I. -I/usr/include/allegro5

EJECUTABLE = juego

all: $(EJECUTABLE)

juego: main_juego.o
$(CXX) -o salida main_juego.o

main_juego.o: main_juego.cpp
$(CXX)  $(INCLUDE) $(CFLAGS) $(LDFLAGS) main_juego.cpp


Y como me acabo de iniciar en c++ pues no tengo mucha idea. Muchas gracias. Saludos
3  Programación / Programación C/C++ / Pasar argumentos a netbeans en: 5 Marzo 2016, 13:58 pm
Hola, he hecho un programa en netbeans y necesito pasarle dos argumentos y no se como hacerlo.

Alguna sugerencia. gracias
4  Programación / Programación C/C++ / Estructuras y reservar memoria en: 20 Febrero 2016, 18:32 pm
Hola, espero no ser una molestia con los temas que abro cada poco tiempo.

Bueno, la cosa es que he tengo dos estructuras, y cuando reservo memoria para una de ellas creo que lo hago mal.


Aqui declaro las estructuras y defino MAX.
Código:
#include <stdio.h>
#include <stdlib.h>
#define MAX 20

typedef struct _Mazmorra {
    
    int x;
    int y;
    char c;
    
}Mazmorra;

typedef struct _Punto{
    Mazmorra *P_final;
    Mazmorra *P_principio;
    Mazmorra *p_tamanyo;
    Mazmorra *tamanyo_mazmorra[MAX][MAX];
}Punto;


Aqui creo que reservo memoria, y pongo todo a NULL. Creo que aqui esta el fallo pero no se donde.

Código:
Punto* inicializar_mazmorra(){
    
    Punto *punto;
    int x,y;
    
   punto=(Punto*)malloc(sizeof(Punto));
   if(punto==NULL){
       printf ("error al reservar memoria");
   }

   punto->P_final=NULL;
   punto->P_principio=NULL;
   punto->p_tamanyo=NULL;
  
   for(x=0;x<MAX;x++){
       for(y=0;y<MAX;y++){
            punto->tamanyo_mazmorra[x][y]=NULL;
       }
   }
}


En esta libero la memoria, cuando compilo me da error al liberar la memoria, lo que me hace pensar que no reservo bien.
Código:
Punto* Liberarmemoria(){
    Punto *punto;
    int x,y;
    
    free(punto->P_final);
    free(punto->P_principio);
    free(punto->p_tamanyo);
       for(x=0;x<MAX;x++){
       for(y=0;y<MAX;y++){
            free(punto->tamanyo_mazmorra[x][y]);
       }
   }

}


Aqui el main, la cosa es que cuando complio e inteto escribir sobrela variable x en tamanyo_mazmorra me da eror y el programa finaliza
Código:
int main(){
    FILE *archivo;
    Punto *punto;
    int x;    
    
    punto =inicializar_mazmorra();
    
    punto->tamanyo_mazmorra[1][1]->x = 5;
    archivo = fopen("prueba.dat","r");
    if(archivo==NULL){
        printf ("error");
    }
    
    printf ("%c",punto->tamanyo_mazmorra[1][1]->x);
    
    //x = leer_archivo_mazmorra(archivo,punto);
    punto = Liberarmemoria();
    fclose(archivo);

    
}

Espero no ser de mucha molestia, un saludo  :)
5  Programación / Programación C/C++ / Struct con puntero en: 13 Febrero 2016, 11:46 am
Hola, tengo una duda y es que quiero que el programa me pida un int para inicializarlo en una structura, y luego que pinte ese numero en pantalla, y no se que estoy haciendo mal, ya que el numero no se imprime, debe haber algun error ya que el programa termina, la cosa es que al compilar no me da errores. Dejo el codigo a ver si me podeis hechar una mano, gracias.


Código:
struct _game{
    int player;
    int jugador;       
           
};
typedef struct _game Game;

Ahí delcaro la estructura

Código:
int main(){
    int x;
    T_Command h;
   
    Game *game;
    long y;
    y=3;
    funcion(&y);
    printf ("%ld \n",y);
   
    scanf ("%i",&game->jugador);
    printf ("%i",game->jugador);
   
   
    return 0;
   
   
}

y ahí el resto del programa. Un saludo :)
6  Programación / Programación C/C++ / Netbeans me esta volviendo loco... en: 25 Enero 2016, 20:41 pm
Hola, bueno, tengo un problema, el otro dia formatee el ordenador e instale windows 10, ahora quiero instalarme netbeans, para ello me bajo la herramienta Java JDK, y luego me bajo netbeans y cygwin... Vamos como siempre.

Pero cuando me meto a netbeans y empiezo a programar y pongo una libreria como esta: "#include <stdio.h>" me apaerece un error, y pone esto "cannot find include file stdio.h" (este mensaje me aparece en la bombilla roja, al compliar sale un mensaje bastante más grande)
y no tengo ni idea de como arreglarlo, he reinstalado tanto el netbeans como el JDk y nada...

Un saludo
7  Programación / Programación C/C++ / Problema memoria dinámica y ficheros en c en: 18 Diciembre 2015, 12:34 pm
Hola, estoy haciendo un programa en c y tengo un problema, tengo que leer de un archivo de texto unos valores  y meterlos en una memoria dinámica.

Lo que hago es reservar memoria para tantos valores como haya en el fichero de texto (si hay 4 valores reservo memoria para esos 4).

Con un bucle voy leyendo valor a valor y metiéndolos en cada posición de la memoria dinámica, al finalizar de meter todos los valores libero la memoria. Hasta todo bien (creo) ya que guarda los valores.

Pero luego, más alante en el programa tengo que guardar más variables en memoria dinámica, para ello hago otra vez una llamada a malloc y reservo con el mismo nombre que reserve anteriormente. (osea se van a guardar en el mismo vector). Y cuando hago la reserva los valores de antes se me borran, los que leí del texto.

Espero haberme explicado correctamente

1º llamada a reservar memoria, leyendo de un fichero.

Código:
 posiciones = (int*) malloc (aux22 * sizeof (int));
                        if (posiciones == NULL) {
                            printf("Error al reservar memoria. ");
                            return 1;
                        }
                    }
                    if (aux23 < aux22) {
                        fscanf(f, "%i", &posiciones[aux23]);
                        aux23++;

2º llamada a reservar memoria, leyendo variables metidas por teclado.

Código:
posiciones = (int*) malloc (aux22 * sizeof (int));
            if (posiciones==NULL){
                printf ("error al reservar memoria");
            }
            aux24++;
            aux26++;
            posiciones[aux28]=aux24;
            aux28++;
            posiciones[aux28]=aux25;
            aux28++;
            posiciones[aux28]=aux26;
            aux28++;
            posiciones[aux28]=aux27;
            aux28++;
            free(posiciones);
            aux29=0;
        }

Los codigos no son completos, no he metido todo el bucle.

Muchas gracias, espero que me podais ayudar
8  Programación / Programación C/C++ / Netbeans en: 15 Septiembre 2015, 21:10 pm
Hola, acabo de empezar con esto de la programación y estoy programando en c y en netbeans.

El problema que tengo es que me sale un error un tanto molesto al compilar y ejecutar. cuando compilo y ejecuto sale esto:

read from master failed
                       : Input/output error


EL mensaje total con una prueba de "hola mundo" seria:

¡¡Hola mundo!!

read from master failed
                       : Input/output error

RUN FAILED (exit value 1, total time: 3s)

Alguno sabe como arreglar eso. muchas gracias un saludo
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines