Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: $i$tr0 en Enero 27, 2012, 07:07:44 pm

Título: secuencias de numeros
Publicado por: $i$tr0 en Enero 27, 2012, 07:07:44 pm
hola amigos hxc

quisiera que me pudieran colaborar en lo siguiente
quiero realizar un programa que me escriba una secuencia de numeros en un archivo txt
la idea es que el archivo quede mas o menos asi
0
00
001
010
011
111

con que creen ustedes que podia realizarlo mejo con un for o con un while
gracias a todos
Título: Re:secuencias de numeros
Publicado por: piou en Enero 27, 2012, 07:11:21 pm
Te recomendaría que leyeses un poco sobre funciones recursivas. Te ayudarán para hacer ese programa.

Es básicamente una función que se llama a si misma. En este caso puedes hacer que a la función le llegue el número de caracteres, y que imprima todas las opciones es decir un 0 y un 1, y depués de cada 0 y 1 se llame a si misma con n-1 caracteres a imprimir. LA función recorrerá recursivamente todas las posibilidades, que por cierto son variaciones con repetición de 2 elementos tomados de n en n. Salen 2^n combinaciones. Con n muy grandes conseguirás ralentizar el equipo.
Título: Re:secuencias de numeros
Publicado por: $i$tr0 en Enero 27, 2012, 07:42:02 pm
huy gracias piou

pero creo que esta un poco avanzado para mi ;

yo pensaba en algo asi como vectores
Título: Re:secuencias de numeros
Publicado por: KrossPock en Enero 27, 2012, 08:19:09 pm
O podrias hacer una funcion que pase de decimal a binario y luego hacer un bucle y que vaya convirtiendo uno por uno a los numeros
Título: Re:secuencias de numeros
Publicado por: piou en Enero 27, 2012, 08:26:03 pm
Acabo de escribir esto en forma de tutorial, a ver si lo entiendes:
http://whitehathacking.wordpress.com/2012/01/27/funciones-recursivas/

Incluyo solución a lo tuyo, pero espero que la entiendas. Pregunta si no pillas algo.
Título: Re:secuencias de numeros
Publicado por: $i$tr0 en Enero 27, 2012, 10:26:13 pm
amigo piou muchas gracias por su ayuda
pero creo que no me explique  bien al inicio de este post cuando decia una secuencia de numeros no me referia a binarios pero de todas maneras su tutorial es muy bueno esas funciones recursivas no las habia oido nombrar nunca.
en realidad soy apenas un aprendiz del lenguaje c lo que quiero es crear una secuencia y que se copie a un archivo pero el resultado es negativo ya que me copia 9 veces un numero
#include <stdio.h>
#include <string.h>

int main()
{
    FILE *fp;
fp = fopen("prueba.htm", "w");   
     int i;
 for ( i=1; i < 10; i++)
   
    fprintf(fp, "%i\n" );
 fclose(fp);   
    return 0;
}   
Título: Re:secuencias de numeros
Publicado por: piou en Enero 27, 2012, 10:48:41 pm
Ok, lo copia 9 veces por esta razón. Presta atención a tu bucle:

Código: [Seleccionar]
for ( i=1; i < 10; i++) Va de 1 hasta que i es menor que 10. Empieza por 1, cuando llega a que i vale 9 pasa lo siguiente.

i=9, mira el bucle, como es menor de 10 lo recorre e imprime el número 9 en el archivo, entonces le suma 1, y vale 10, ahora mira el bucle i<10, no se cumple, ya que i es igual a 10. Si quieres que llegue a 10, o bien por i<=10, o i<11.
Título: Re:secuencias de numeros
Publicado por: $i$tr0 en Enero 27, 2012, 10:59:53 pm
este es el resultado del programa escribe esto en el archivo llamado prueba
5450208
5450208
5450208
5450208
5450208
5450208
5450208
5450208
5450208
5450208
Título: Re:secuencias de numeros
Publicado por: piou en Enero 27, 2012, 11:42:37 pm
No me había dado cuenta, pero es que no le pasas argmentos al fprintf

Código: [Seleccionar]
fprintf(fp, "%i\n" );
Te debería sacar algún warning. Si quieres que se guarde, por ejemplo, el valor de i, debería ir:

Código: [Seleccionar]
fprintf(fp, "%i\n" i);
Título: Re:secuencias de numeros
Publicado por: $i$tr0 en Enero 27, 2012, 11:46:17 pm
piou

al pasarle el parametrofprintf(fp, "%i\n" i);
me bota un error
 C:\Dev-Cpp\texto3.c In function `main':
11 C:\Dev-Cpp\texto3.c syntax error before "i"
Título: Re:secuencias de numeros
Publicado por: piou en Enero 28, 2012, 12:02:33 am
Perdón, falta la ",", pero me parece que no sabes bien usar el printf, ni siquiera funciones. Te recomendaría que leyeras primero documentación sobre C y sintaxis de funciones y demás.

Cámbialo mientras por:

Código: [Seleccionar]
fprintf(fp, "%i\n", i);
Título: Re:secuencias de numeros
Publicado por: $i$tr0 en Enero 28, 2012, 12:09:04 am
si amigo gracias por todo

como ya te dije antes estoy comenzando en lenguaje c

es que se me dio por crear este programita y me costo mas de lo que pense

pero bueno tendre que estar mas atento y como dices estudiar mas

gracias hasta la proxima
Título: Re:secuencias de numeros
Publicado por: franxi2953 en Febrero 11, 2012, 03:03:25 pm
muy bueno tu tutorial piou, me parecio muy interesante lo de fibonacci :)