• Lunes 19 de Mayo de 2025, 06:09

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - JuanK

Páginas: 1 ... 197 198 [199] 200 201 ... 231
4951
C/C++ / Re: Limpiar pantalla desde el cursor hasta el final
« en: Miércoles 8 de Octubre de 2003, 16:54 »
solo debes hacer un cilco que recorra la pantalla por filas y por columnas imprimiendo el caracter espacio.

4952
C/C++ / Re: Encriptar datos?
« en: Miércoles 8 de Octubre de 2003, 16:41 »
debes definir un algoritmo con el que quieres trabajar.. por su puesto tu mismo te inventas como encriptar los datos.

Despues los copias al fichero, preferiblemente en modo binario, para leerlo es solo hacer el procedieminto contrario.

4953
C/C++ / Re: Necesito el juego de undir la flota en lenguaje C
« en: Miércoles 8 de Octubre de 2003, 15:44 »
Y como lo debes hacer..
hay m,uchas maneras de hacerlo..
te pidieronm utilizar algo dew sockets, o de comunicacion entre procesos?, o es una sola pantalla, o es modo texto o es modo grafico..? en fin...

Puedes ser más especifico.


Creeme que nadie te hara el programa, trata de hacer algo por ti mismo, lo que si te puedo ayudar es con tus dudas acerca de como hacerlo.

4954
Retos / Re: Protocolo Hdlc
« en: Miércoles 8 de Octubre de 2003, 00:48 »
Acabe de terminar el proximo reto.. estuvo un poco complicadito.. perro solo detalles de programacion...

Bueno los dejo me voy a la universidad, entro a clase en 10 min... y en bus me demoro 40 min en llegar...

necesitare un milagro.

Hasta luego

4955
Retos / Re: Protocolo Hdlc
« en: Martes 7 de Octubre de 2003, 22:20 »
Los dos ..
es mejor postear solo los retos completos.

Por cierto ya voy a acabar el siguiente reto..
es acerca del lenguaje español.

4956
C/C++ / Re: ¡Una ayudita!
« en: Martes 7 de Octubre de 2003, 22:11 »
me sale este error porque tienes la variable c declarada dos veces:

 
Código: Text
  1.  
  2.  agenda c;// A Q U I
  3.  //int resultado;
  4.  int id,n,nelementos;
  5.  int ele=0;
  6.  agenda c[MAX];
  7.  inicializar(c[]);  //A Q U I
  8.  
  9.  
Error:  
agenda.c(28) Error: conflicting types for `c'
Debes corregir primero esto.

4957
Retos / Re: Protocolo Hdlc
« en: Martes 7 de Octubre de 2003, 22:06 »
Asumamos solo las barbaridades, locuras, demencias, idioteses, etc.. que se puedan hacer con los caracteres:
'0'
'1'
'n'
que son los que usa el programa, esto es porque el hecho de dejar 1y 0 como caracteres facilita el seguimiento y la elaboracion del programa, pero originalmente habria sido mejor leer los bits de un archivo binario, con eso solo controlariamos 1 y 0.


Juank

4958
Retos / Re: Protocolo Hdlc
« en: Lunes 6 de Octubre de 2003, 19:47 »
Bueno la pista que dare para este reto es que se fijen en esto:
 
Citar
Entrada del transmisor

Leerá por un archivo de tipo texto a ser transmitido. Este archivo podrá contener únicamente secuencia de caracteres ‘1’ y ‘0’ que representan los byte a ser transmitidos. El orden de los bit dentro del cada byte es de más a menos significativo.

 
Citar
Salida receptor

El archivo de salida deberá ser de tipo texto y contener los bytes transmitidos(expresados en secuencia de caracteres ‘1’ y ‘0’), cada uno con sus bits en orden de menos a más significativo.

Creo que esta pista les  solucionara muchos inconvenientes a quienes desarrollen el reto, no debi haberselas dicho.. pero se trata de que todos aprendamos.

4959
Retos / Re: Protocolo Hdlc
« en: Lunes 6 de Octubre de 2003, 17:46 »
Este ejercicio me lo pusieron en la maraton nacional de programación, y tambien tube muchas dudas.. eso si no respondieron ninguna...ya que una de las reglas que hay es que no se responde ninguna pregunta.. lo cual me parece muy tonto porque en particualr perdi mucho tiempo en este ejercicio por un error de redaccion, ya que daba para varias
interpretaciones, asi que no hay problema por preguntar.

Tu problema es que has interpretado de manera errada, ya que el texto dice:
 
Citar
_Cuando el transmisor está en el proceso de transmitir un “frame” chequea cada bit transmitido. Si en un momento determinado aparecen 5 unos(1’s) consecutivos, se inserta un cero(0) extra después del quinto bit (A esto se le llama BitStufing) para evitar que se presente el patrón bandera.

Por supuesto el receptor tiene que estar preparado para recibir este tipo de “stream”: tiene que chequear el “stream” de bits. Cuando detecta una bandera, empieza a recoger los caracteres que conforman un “frame”. Pero si dentro del “frame” encuentra 5 unos (1’s) consecutivos, debe chequear el siguiente bit:

-Si es un 0, significa que recibió una bandera y por lo tanto que recibió el final del “frame”
-Si es un 1, es una secuencia de 6 o más unos, que es prohibida en el protocolo y que por lo tanto implica un error y el “frame” es abortado completamente. El receptor inicia de nuevo la búsqueda del siguiente carácter bandera.

Lo primero indica que si esta transmitiendo y encuentra 5 unos, despues del quiento bit en uno agrega un cero.

Lo segundo, nos dice que en el receptor, si se reciben 5 unos, revisa el siguiente bit, si el siguiente bit despues de esos 5 unos es un cero entonces se descarta el cero y se continua leyendo los bIts, pero si es un uno es un error de protocolo porque el transmisor no pudo haber enviado más de 5 unos seguidos.

Lo del 00111110 es solo que has tenido un poco de dificultad con la interpretacion de este fragmento, nunca se dice de ningun modo ni explicita ni implicitamente que la bandera sea esa.. la bander unicamente es 01111110.

No estoy seguro si me he hecho entender, en todo caso si te quedan dudas me comentas, pues como ya te dije no hay ningun problema en preguntar.


Un saludo y suerte.!!!

Me cuentas como te fue.

4960
Retos / Re: Protocolo Hdlc
« en: Lunes 6 de Octubre de 2003, 16:09 »
Es algo que no has entendido, o que no has leido bien.. yo se que es , pero no te lo voy a decir :P .

Suerte.

4961
C/C++ / Re: ¿Por que me imprime esto... ?
« en: Domingo 5 de Octubre de 2003, 16:32 »
No tengo idea de que pasa...
He probado esto en mi casa y me da igual...
se supone:

Un Tipo Int es de 2 bytes, entonces

2 elevado a la 16 = 65536 esto es para los tipos unsigned, pero si tiene signo el byte más significativo no lo podemos usar, segun esto cuando es con signo tenemos:

2 elevado a la 15 = 32768

... Eso me enseñaron en la U.
JAJAJA

Es el compilador, si lo compilo en el rhide y lo ejecuto todo funciona como te pasa a ti, pero en compiladores más viejos, como por ejemplo la version 2.0 de turboc si sucede el desbordamiento de memoria.

El codio que produce el rhide es de gran calidad, asi que es probable que posea hasta cierto punto rutinas de reasignacion de memoria para evitar desbordamientos de este tipo.

Tal vez sea problema.. o mejor beneficio del compilador que estes utilizando, seguramente entre todas las opciones u optimizaciones de compilacion, habra alguna que deshabilite esta propiedad.

4962
C/C++ / Tutoriales
« en: Domingo 5 de Octubre de 2003, 03:41 »
Bueno, la idea como que no pego como yo esperaba, tan solo 5 votos y dos comentarios..:(

Es una lastima..
ni modo esta vez no pudo ser.

Gracias por el apoyo a © Jonathan © y a cyber. :beer:

4963
Retos / Re: Protocolo Hdlc
« en: Domingo 5 de Octubre de 2003, 03:38 »
Muy bien por aceptar el reto!!!

El segundo programa debe leer los datos desde un archivo e imprimirlos en pantalla, es decir igual que el primer programa... no necesariamente s eprobara con los datos que arroje el primer programa.


El archivo de entrada es de una longitud indeterminada, pero siempre menor o igual a 128 bits.. es decir por lo menos tu programa debe soportar 128 bit, pero si soporta más no importa.

Entre las cosas que si debes evaluar es que la informacion este en bytes(es decir en octetos) por que esta es la unidad minima de informacion.

4964
Retos / Re: Protocolo Hdlc
« en: Jueves 2 de Octubre de 2003, 23:01 »
Bueno, no esta tan complicado.. ya veras que estaba mas dificil el de los gatos... jajaja.

Lo de los errores...
Toca controlar lo siguiente:
1- Todo lo referente al manejo de los archivo.. lectura, escritura etc.
2-Que posean el formato indicado, en el de entrada por ejemplo que sea de 1s y 0s y que sean bytes que es la unidad minima de infromacion... y más
3-En el de salida casi que los mismo pero validar que cumpla con las reglas de protocolo y más

Sere muy estricto con eso en este reto...
eso si si necesitan asesoria acerca de como hacer algo me avisan...

Como consejo:

Prueben todas las posibilidades que se les ocurra... hagan de cuenta que son un usuario que no tiene idea de computadores y hagan copn los archivos todas las barbaridades que se les ocurra...
Eso es lo que hay que controlar.

Como mostrar los errores..
cada uno de los programas tiene entrada por archivo y salida por pantalla.. los errores se muestran por pantalla, cuando el progframador lo considere necesario.. eso si hay que tratar de mostrarlos en el momento en que es de utilidad saberlo, y el error debe describir la situacion , de manera que el que lo lea pueda saber donde se origino el problema, ejemplo:
 
Código: Text
  1.  
  2. printf("nError de protocolo: Frame abortado :n%snEntrada no es una cadena de bytes.", frame);
  3.               return 0;
  4.             }
  5.  
  6.  

4965
Retos / Re: Protocolo Hdlc
« en: Jueves 2 de Octubre de 2003, 19:32 »
HDLC

High level data Link Protocol, es un protocolo ampliamente usado hoy en día, es el protocolo sobre el que corre Ethernet, que es un protocolo usado en las tarjetas de red para redes IEEE 802.3. Este reto esta basado en una variación de HDLC.

HDLC está diseñado para comunicaciones sincroniaza nivel de bit, es decir la información esta formada por un “stream” de bits sincronizados mediante una señal de reloj que define los limites de cada bit.

Pero, cómo se definen los limites de cada byte?.
Hay varias estrategias, la usada en HDLC es elegir un carácter llamado “flag” (“bandera”) que define en donde empieza o termina una serie de bytes.(y de hecho delimita un frame)

El carácter bandera es 0x7E (binario 0111 1110). De tal forma que cuando el receptor encuentra esta cadena de caracteres en el “stream” sabe que inicia una cadena de bytes, cada uno de 8 bits. La cadena de datos terminará cuando aparece otra bandera 0x7E. Es importante tener en cuenta que entre dos  “frames” consecutivos debe haber una y solo una bandera y al finalizar la transmisión debe haber una bandera.

Pero que pasa si dentro del “stream” de datos aparece 0x7E?
Obviamente esto seria un problema.
La solución que se adopto fue la siguiente:

_Cuando el transmisor está en el proceso de transmitir un “frame” chequea cada bit transmitido. Si en un momento determinado aparecen 5 unos(1’s) consecutivos, se inserta un cero(0) extra después del quinto bit (A esto se le llama BitStufing) para evitar que se presente el patrón bandera.

Por supuesto el receptor tiene que estar preparado para recibir este tipo de “stream”: tiene que chequear el “stream” de bits. Cuando detecta una bandera, empieza a recoger los caracteres que conforman un “frame”. Pero si dentro del “frame” encuentra 5 unos (1’s) consecutivos, debe chequear el siguiente bit:
 
-Si es un 0, significa que recibió una bandera y por lo tanto que recibió el final del “frame”
-Si es un 1, es una secuencia de 6 o más unos, que es prohibida en el protocolo y que por lo tanto implica un error y el “frame” es abortado completamente. El receptor inicia de nuevo la búsqueda del siguiente carácter bandera.

Usted deberá escribir  un programa receptor y otro programa transmisor de esta variación de HDLC.

Entrada del transmisor

Leerá por un archivo de tipo texto a ser transmitido. Este archivo podrá contener únicamente secuencia de caracteres ‘1’ y ‘0’ que representan los byte a ser transmitidos. El orden de los bit dentro del cada byte es de más a menos significativo.

Salida Transmisor

El archivo de entrada deberá ser transmitido a stdout insertando un carácter de bandera entre cada “frame” y haciendo las operaciones necesarias de BitStufing. Por facilidad vamos a suponer que el tamaño del “frame” es fijo, de 128 bits de datos efectivos, es decir, sin incluir las banderas ni los bits insertados en el proceso de BitStufing, tenga en cuenta que el último frame puede ser de menos de 128 bit, puede asumir que el tamaño del archivo de entrada es múltiplo de 8.

Salida receptor

El archivo de salida deberá ser de tipo texto y contener los bytes transmitidos(expresados en secuencia de caracteres ‘1’ y ‘0’), cada uno con sus bits en orden de menos a más significativo.
El receptor realizara exactamente la labor contraria del transmisor, deberá detectar errores de protocolos e informarlos.

Ejemplos
 
Código: Text
  1.  
  2. Entradatransmisor: 00000000111100000101010100000000
  3. Salida transmisor: 011111100000000000001111100101010000000001111110
  4. Entrada receptor : 011111100000000000001111100101010000000001111110
  5. Salida receptor  : 00000000111100000101010100000000
  6.  
  7. Entradatransmisor: 000011111110000011001100
  8. Salidatransmisor : 0111111011110000000001110011001101111110
  9. Entradareceptor  : 0111111011110000000001110011001101111110
  10. Salidareceptor   : 000011111110000011001100
  11.  
  12. Entradareceptor  : 01100000111111011110000000001110011001101111110
  13. Salidareceptor   : 000011111110000011001100
  14.  
  15.  
Como se puede observar  en los ejemplos solo se lee un "frame" por vez, no es necesario implementar lectura de multiples frames.

Como no se especifican los nombres de archivo de entrada, es necesario que los programas recibanel nombre de archivo desde consola,  pero solo como argumento del ejecutable, ejemplo:

c:executable entrada.txt

La salida en ambos casos es por pantalla.

4966
Retos / Re: Los gatos en el sombrero
« en: Jueves 2 de Octubre de 2003, 17:58 »
Bueno con el razonamiento anterior , se completa la explicacion de como hallar el valor de N.. por eso no lo explicare nuevamente.

Si alguien tiene alguna inquietud o duda, me puede enviar un mensaje por U2U o a mi mail, y con gusto la respondere por el mismo medio, o si lo docnsidero pertienente lo publicare en el foro.

4967
Java / Re: Manejo de decimales y equivalente a getch()
« en: Jueves 2 de Octubre de 2003, 17:31 »
Se hace con la clase Decimal Format:
 
Código: Text
  1.  
  2. double x = 12.1253
  3. DecimalFormat df = new DecimalFormat("##.##");
  4. System.out.println(df.format(x));
  5.  
  6.  
La salida es según nuestro formato seria
12,12

4968
Retos / Re: Los gatos en el sombrero
« en: Jueves 2 de Octubre de 2003, 16:38 »
Umm si ya veo, creo que tienes razon, pero como no lo habia hecho el caso del 1 en papel pues no lo habia analizado bien, me puse a hacer el razonamiento para el caso del 1 completo para que todos lo entiendan...jejeje
 
Código: Text
  1.  
  2. gatos1= N
  3. gatos2= N a la 2
  4. gatos3 = N a la 3
  5. gatos4 = N a la 4
  6. gatos5 = N a la 5
  7.  
  8.  
entonces si en gatos 5 N=1 (un gato que trabaja), se puede decir:
 
Código: Text
  1.  
  2. gatos1= N
  3. gatos2= N a la 2
  4. gatos3= N a la 3
  5. gatos4= N a la 4
  6. gatos5= N a la 5 =1
  7.  
  8.  

Segun esto, tambien se da que:
 
Código: Text
  1.  
  2. raiz quinta de 1  = N
  3. la raiz quinta de 1 =1
  4. entonces N = 1
  5. entonces...
  6.  
  7. gatos1= 1 =1
  8. gatos2= 1 a la 2=1
  9. gatos3 = 1 a la 3=1
  10. gatos4 = 1 a la 4=1
  11. gatos5 = 1 a la 5=1
  12.  
  13.  
Entonces la suma de las alturas en cada fila seria x(1/(N+1)).. como N =1 quedaria:
x(1/2)
entonces si en gatos5 altura =1 quedaria:

x(1/2)=1
x=2
entonces:
 
Código: Text
  1.  
  2. gatos    altura
  3. ...
  4. ...
  5.    G1=1       16  
  6.    G2=1       8  
  7.    G3=1       4  
  8.    G4=1       2
  9.    G5=1       1
  10.  
  11.  
Y esta fué mi explicacion...:bravo:

4969
Retos / Re: Los gatos en el sombrero
« en: Jueves 2 de Octubre de 2003, 14:35 »
El proximo reto es acerca de protocolo hdlc.. y ya esta listo y resuelto tambien,
este reto es más sencillo que el anterior, ya que el anterior compromteia mucho de matematica y poco de programaciñon...

Este es más programación que matematica.

Ojalà hoy tenga más tiempo en la oficina para poder publicarlo, junto a la solución de este reto.

Ahh si esa solucion que daS no es buena, porque si observas , en el case de que el ultimo gato sea solo1, el numero de gatos del nivel anterior seria el equivalente a alguna raiz de uno.. que por supuesto siempre sera 1... asi que siempre habria 1 gato con un sombrero...

4970
Retos / Re: Los gatos en el sombrero
« en: Miércoles 1 de Octubre de 2003, 23:59 »
Bueno, muy bien por tu programa.

En especial la manera en que normalizaste tus funciones y variables, esto es muy importante.. a mi en general me gusta colocar nombres largos,  es una excelente practica, pero en el momento que hice el programa no pense en eso puesto que inicialmente solo lo hice por hobbie y en mis ratos libres de trabajo, es decir a la hora de almuerzo.

Otra de las fortalezas de tu programa es que esta bien estructurado y es muy entendible aunque no este documentado.

Me parece.. no no me parece...
Definitivamente debes ser màs cuidadoso con el control de errores ya que  practivamente es inexistente en tu programa, lo cual lo hace bastante vulnerable, lo mejor que se puede hacer cuando se programa es pensar en controlar todo lo que pueda pasar.

Bueno eso es todo, tambien espero comentarios de mi programa para ver en que más de puede mejorar.

Si alguien consigue otra solucion o logra resolver el asunto de que solo trabaje 1 gato.. le agradeceria sus comentarios tambien.

Hasta luego y gracias a todos.

Veremos que se puede hacer para darle un reconocimiento especial a todos los participantes y por supuesto a desorden , quien resulto ganader de este reto.

Mañana 2 de octubre publicare la solucion conceptual del algoritmo.

4971
Retos / Re: Los gatos en el sombrero
« en: Miércoles 1 de Octubre de 2003, 23:50 »
Hola,  te felicito por tu programa,
Parece que esta bien, sin embargo tenemos una diferencia en nuo de los datos,seguramente causada porque es un dato exepcional que en niingun momento se requiere para cumplir el reto, estye caso es cuando el numero de gatos que trabajan es 1, ya que es ilogico pensar en este valor , porque si observas y aplicas las formulas, resulta que seria un arbol infinito ya que la raiz cuadrada de uno es uno...
Asi que la solucion para casos que posean un gato que trabaja, es como indeterminada.. creo yo...

Aqui va:
 
Código: Text
  1.  
  2. gato.in
  3.  
  4. 3112136 3048625
  5. 13 12
  6. 64 1
  7. 28561 20736
  8. 3048625 2985984
  9. 37015056 35153041
  10. 9 4
  11. 16 9
  12. 216 125
  13. 6561 4096
  14. 4913 4096
  15. 729 512
  16. 289 256
  17. 117649 110592
  18. 5764801 1679616
  19. #
  20.  
  21.  
Código: Text
  1.  
  2. gato.out
  3.  
  4. 21171 12321231
  5. 1 25
  6. 1 3
  7. 1885 122461
  8. 20881 12068929
  9. 462540 180390211
  10. 3 19
  11. 4 37
  12. 31 671
  13. 585 26281
  14. 273 17985
  15. 73 2465
  16. 17 817
  17. 2353 456385
  18. 335923 30275911
  19.  
  20.  

Y este es mi codigo fuente:

4972
C/C++ / Ayuda para matar procesos en C
« en: Miércoles 1 de Octubre de 2003, 17:51 »
Creo... averigua con la API de windows

4973
C/C++ / Re: gets(cadena) de otra manera
« en: Miércoles 1 de Octubre de 2003, 14:12 »
no coloques un getche() , coloca mejor un getc();

4974
Java / Re: Manejo de decimales y equivalente a getch()
« en: Martes 30 de Septiembre de 2003, 17:45 »
Pueba asi:
 
Código: Text
  1.  
  2. byte jk;
  3. char jkch;
  4. System.in.read(jk);
  5. jkch = (char)jk;
  6.  
  7.  

Que necesitas de decimales?

4975
C/C++ / informacion sobre metodo de ordenacion por distribucion " in
« en: Martes 30 de Septiembre de 2003, 14:34 »
No conozco ese metodo por lo menos no con ese nombre, yo conozco estos y algun otro que se me escapa , pero ese no.

Inserción directa.
Inserción Binaria.
Selección Directa.
Método de Shell
Método Quicksort(rápido).

Depronto es uno de estos , pero se llama diferente...

Páginas: 1 ... 197 198 [199] 200 201 ... 231