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


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 112
131  Programación / Programación C/C++ / Re: [C] Problema con fracciones en: 10 Enero 2018, 05:42
scanf es un maldito y si le formateas una entrada espera que exactamente sea eso, no puedes saltarte nada, sino hará cosas muy raras.

Tú única solución es leer la entrada como si fuera una cadena y descifrarla tu a mano, si quieres que el programa se comporte como dices, claro.
132  Programación / Programación C/C++ / Re: AYUDA CON RECURSIVIDAD en: 9 Enero 2018, 16:04
Siguiendo tus premisas he hecho lo siguiente. Decir que no está probado y puede contener fallos.
Código
  1. void FncOpenPoint(Tablero Partida, int fil, int col) {
  2.    // Configuro los límites de búsqueda
  3.    int inicio_fil = fil==0? 0 : -1; // Si ya estoy arriba no debo mirar más arriba
  4.    int fin_fil = fil==FIL-1? 0 : 1; // Si ya estoy abajo no debo mirar más abajo
  5.    int inicio_col = col==0? 0 : -1; // Si ya estoy a la izquierda no debo mirar más a la izquierda
  6.    int fin_col = col==COL-1? 0 : 1; // Si ya estoy a la derecha no debo mirar más a la derecha
  7.    int i, j;
  8.  
  9.    if( !Partida[fil][col].visible &&
  10.        !Partida[fil][col].mine &&
  11.        !Partida[fil][col].num &&
  12.        !Partida[fil][col].flag ) {
  13.        Partida[fil][col].visible = true;
  14.  
  15.        for(i = inicio_fil; i <= fin_fil; ++i) {
  16.            for(j = inicio_col; j <= fin_col; ++j) {
  17.                if(i==0 && j==0) continue; // Para no volver a caer en la casilla actual. Aunque es redundante no gasto tantos ciclos de reloj como si hay que realizar una llamada a la función en la misma coordenada y esperar a que esta se detenga por si sola.
  18.                FncOpenPoint(Partida, fil+i, col+j);
  19.            }
  20.        }
  21.    }
  22. }
133  Programación / Programación C/C++ / Re: Como convertir c++ en app en: 9 Enero 2018, 14:30
Con Android NDK. No sé cómo funciona, no me lo he mirado nunca, pero es para hacer apps con C++.
134  Programación / Programación C/C++ / Re: Ayuda con ejercicio novato en: 9 Enero 2018, 14:28
Creo que te piden que hagas arrays dinámicos y estructuras. No creo, por el enunciado, que debas hacer decenas de variables diferentes.
135  Programación / Programación C/C++ / Re: AYUDA CON RECURSIVIDAD en: 9 Enero 2018, 00:18
Cosillas:
Toda la parte del else te sobra ya que
Código:
if(!Partida[fil][col].mine)
es lo mismo que
Código:
if(Partida[fil][col].mine!=true)

El primer código está mal ideado ya que visible valdrá true y no podrá entrar en el segundo if:
Código:
Partida[fil][col].visible=true;
if(!Partida[fil][col].mine)
  if(Partida[fil][col].num==0&&!Partida[fil][col].flag&&!Partida[fil][col].visible)

También veo que la función no está terminada pues buscas más allá de los límites de la tabla, tal vez te pierdes por allí. Como depuración haz que la función te diga en qué casilla se encuentra.
136  Programación / Programación C/C++ / Re: AYUDA CON RECURSIVIDAD en: 8 Enero 2018, 20:03
Vale, ya entiendo. Verás: tal y como está no se detendrá nunca porque visible no lo tienes en cuenta a la hora de parar. Imagina que tienes dos casillas contiguas que no tienen nada. El jugador marca la de la izquierda y la hace visible y el código pasa después a la de la derecha. El código la hace visible y en algún momento volverá a mirar la de la izquierda. Como no tiene condición de parada el que una casilla sea visible este bucle se repetira (izquierda, derecha, izquierda, derecha, ...) hasta que la pila se llene de llamadas y el programa se detenga.
137  Programación / Programación C/C++ / Re: Problema con un if ( violación de segmentos en tablas bidimiensionales ) en: 8 Enero 2018, 19:32
A primera vista veo que lees fuera de los límites de la tabla. Aunque estés en la fila 0 intentas leer lo que hay por encima de ella. Pasa algo parecido para la última porque intentas leer lo que hay por debajo.
138  Programación / Programación C/C++ / Re: AYUDA CON RECURSIVIDAD en: 8 Enero 2018, 19:15
Si nos pudieras decir qué es cada miembro de Partida, qué hace y cuáles son las condiciones de parada te podríamos ayudar mejor. Yo voy muy a ciegas.
139  Programación / Programación C/C++ / Re: Problemas con los void en: 7 Enero 2018, 23:58
Esto está mal.
Dentro de funcionConPunteroGenerico capturas memoria de forma dinámica y siempre que se haga algo así se debe liberar manualmente.
Tú haces que el valor devuelto por la función sea usado por printf, pero al no capturarlo con una variable ese puntero se va a perder y quedarás con esa porción de memoria inutilizada al no poder liberarla.

Lo mismo con la variable cadena. La capturas pero nunca la liberas. Es cierto que los modernos S.O. liberan la memoria ocupada por un programa cuando éste termina pero ten en cuenta de que si alguna vez vas a trabajar con uno antiguo, un embebido o con un sistema diferente; o vayas a realizar un programa que su ejecución se alarga en el tiempo, este tipo de fallos pueden llegar a hacer lento e inestable todo el sistema.
140  Programación / Programación C/C++ / Re: Hola, buen día. Pregunta a cerca de c sharp C# en: 7 Enero 2018, 16:14
Hay un foro para C# en Programación -> Programación General -> .NET
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 112
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines