| |||
Jeje, si pongo algo de eso será complicado, no el típico ejercicio de universidad ;) Developer9, a ver si te pones de nuevo con la informática de verdad en tu tiempo libre después de trabajar con Visual Studio .NET :D He tenido bastantes tarea esta semana entre clases y la programación de un driver, mañana viernes prometo colgar algo :) |
| |||
para GM_Juanjo. enrealidad la exprecion: ptr1 = void; es una asignacion en la que interviene un puntero generico, la anterior es; (Pero eno es una centencia de C o C++). ptr1 = ptr2; asignacion entre punteos de tipo. eso es. si quieres ver de donde saque e esto de dejo el link: http://www.zator.com/Cpp/E4_2_2.htm Saludos. |
| |||
Cita: No lo generarán, pero los drivers hacen posible que tu tengas soporte de la impresora con la que imprimes esos reportes y cuadros estadísticos :DEstoy comiendo, ahora pondre el ejercicio. Por cierto, te recomiendo usar un compilador de verdad. Prueba Code::Blocks o Dev-C++ que traen gcc (mingw); o instala el soporte de C++ en tu Visual Studio. |
| |||
Cita: Pero así siempre están en el mismo lugar.Ya haré una relación de los problemas resueltos. ¿Aún nadie pregunta nada acerca del nuevo? :) |
| |||
OK, apenas, me entero, del nuevo problema, alcompilarlo me encuentro con que puts, no acepta como parametro a p. ¿es valido hacer el casting a char* o const char*?. cuando te refieres ha hacer algo util, no pones limites. podria agregar un WinMain, una WNDCLASS, etc, y crear un entrono de ventanas. jaja. ¿talvez consiste en usar como uno quiera esos 3 array's, y hacer algo util con su contenido? ¿se pueden crear mas variables o punteros para solucionar esto?. Saludos. |
| |||
Cita: Eso es porque estás compilando como C++.El concurso es de C, y es perfectamente válido. Cita: La meta del concurso es que el puts(p); imprima algo legible (no algo cualquiera evidentemente). Si el programa es correcto, deberíais ver una cadena de felicitación.¿es valido hacer el casting a char* o const char*?. cuando te refieres ha hacer algo util, no pones limites. podria agregar un WinMain, una WNDCLASS, etc, y crear un entrono de ventanas. jaja. ¿talvez consiste en usar como uno quiera esos 3 array's, y hacer algo util con su contenido? ¿se pueden crear mas variables o punteros para solucionar esto? Y para ello, con una sentencia basta ;) Ahora bien, dejo libertad para que uséis más, desde luego. Como si quieres crear una ventana, como si quieres agregar un WinMain, lo que te de la real gana. Pero el objetivo es que puts(p) te felicite, en vez de lo que hace ahora, que es imprimir "basura", digamos. ¿Cómo hacerlo? Preguntadme en el foro y responderé. Poco a poco iréis dando con la solución. El que más contribuya con preguntas acertadas, mejor. Última edición por MaxExtreme; 01/10/2006 a las 12:54 |
| |||
Ok, ahora ya esta mas claro, el planteameminto inicial es muy confuso. pense en algo como un patron que esconde un mensaje, solo que aun no he trabajado mucho en el. pinta a complicado. jeje Saludos. Última edición por Nivel7; 02/10/2006 a las 01:09 |
| |||
No se que tipo de ejercicios daran en las universidades de donde vives, pero en donde voy yo todas las materias de programacion tienen siempre algo para castigarnos... y los ejercicios de listas que daban eran todos diferentes.. o sea, no era un "recorrer lista de listas", sino se las rebuscaban para complicarnos la vida ademas por el hecho que las restricciones de memoria y archivos ayudaban mucho para que el problema sea mas problema. |
| |||
Con respecto al problema, lo primero que se me ocurrio fue implementar un automata reconocedor. El conjunto de estados serian los elementos del vector y el alfabeto seria las letras del abecedario. Ahora no estoy seguro sobre el simbolo inicial, pero de seguro que hay un texto escondido si se utiliza un automata ya que de otra forma no creo que se pueda obtener algo con elementos aleatorios. |
| |||
Cita: Hay universidades y universidades, academias y academias, escuelas y escuelas, profesores y profesores...
Iniciado por lpz No se que tipo de ejercicios daran en las universidades de donde vives, pero en donde voy yo todas las materias de programacion tienen siempre algo para castigarnos... y los ejercicios de listas que daban eran todos diferentes.. o sea, no era un "recorrer lista de listas", sino se las rebuscaban para complicarnos la vida ademas por el hecho que las restricciones de memoria y archivos ayudaban mucho para que el problema sea mas problema. Pero en término general, los ejercicios que se ven sobre C/POSIX son típicos, que puedes encontrar la solución con buscar un poco en Google y echarle una tarde de programación. Evidentemente hablo de las prácticas, no de proyectos de carrera o similar. Y en cualquier caso hablo según la experiencia de lo que he leído/oído, no he ido a la universidad. |
| |||
Cita: Ciertamente hay un mensaje escondido, cosa que podíais deducir de mi mensaje a Nivel7: "veréis una cadena de felicitación". Evidentemente esa cadena la escribí yo y la oculté.
Iniciado por lpz Con respecto al problema, lo primero que se me ocurrio fue implementar un automata reconocedor. El conjunto de estados serian los elementos del vector y el alfabeto seria las letras del abecedario. Ahora no estoy seguro sobre el simbolo inicial, pero de seguro que hay un texto escondido si se utiliza un automata ya que de otra forma no creo que se pueda obtener algo con elementos aleatorios. No he usado nada raro para ocultarla, de hecho probando unas cuantas cosas podrías encontrarla, pero el objetivo real no es ese. El tema NO es descubrir el sistema de cifrado ;) ¿Y si no hace falta descubrir el cifrado...? ¿Se os ocurre cómo podría haber hecho yo el problema para que sin necesidad de que sepáis el cifrado podáis ver la cadena...? Ahí está la clave. |
| |||
Sin descubrir el sistema de cifrado?... la verdad no se, al menos que todos esos codigos en hexa se los pase a decimal y de ahi al caracter que represente pero no creo que sea asi de facil.. Si de una forma los codificaste, usando la forma reversa deberia poder descifrarse, o sea implica un 'sistema de cifrado' o algun otro algoritmo. |
| |||
No creo que se trate de una cadena inversa, al menos ya intente eso, ya intente intercalar, operaciones de bit's, aritmeticas y no logro conseguir nada. ahora si que esta dificil, esto. |
| ||||
Cita: En la uni tienes 2 horas para el examen... aqui todo el fin de semana
Iniciado por lpz No se que tipo de ejercicios daran en las universidades de donde vives, pero en donde voy yo todas las materias de programacion tienen siempre algo para castigarnos... y los ejercicios de listas que daban eran todos diferentes.. o sea, no era un "recorrer lista de listas", sino se las rebuscaban para complicarnos la vida ademas por el hecho que las restricciones de memoria y archivos ayudaban mucho para que el problema sea mas problema. |
| ||||
Ufff, yo he intenado de todo, desde apuntar con un puntero de funcion a esos arrays para ver si ejecutaban algo, aritmetica de punteros, hasta funciones de string. nada me da resultado. Vere que se me ocurre en el pasod el tiempo. saludos |
| |||
Cita:
Iniciado por lpz Sin descubrir el sistema de cifrado?... la verdad no se, al menos que todos esos codigos en hexa se los pase a decimal y de ahi al caracter que represente pero no creo que sea asi de facil.. Si de una forma los codificaste, usando la forma reversa deberia poder descifrarse, o sea implica un 'sistema de cifrado' o algun otro algoritmo. Cita: Na ;)
Iniciado por Nivel7 No creo que se trate de una cadena inversa, al menos ya intente eso, ya intente intercalar, operaciones de bit's, aritmeticas y no logro conseguir nada. ahora si que esta dificil, esto. Os estáis centrando en descifrar la cadena, y no hace falta hacerlo. De hecho, el problema trata de otra cosa. ;) |
| |||
Mira, tú has acertado un poco más... Sigue por esas ideas. |
| ||||
Como dijeron que hagan preguntas... yo hago una Que significa: 0x1B,0x2E,0x3D,0x3B,0x21,0x2D,0x3E,0x21,0x45,0x3A, 0x68,0x67,0x7E,0x52, 0x5F,0x5B,0x5B,0x50,0x56,0x52,0x50,0x07,0x3B,0x69, 0x61,0x6B,0x75,0x2F, 0x19,0x0D,0x22,0x10,0x02,0x07,0x04,0x19,0x1C,0x6F, 0x03,0x45,0xFC,0x0F, 0xB6,0x00,0x32,0x02,0x88,0x01,0x8D,0x45,0xFC,0xFF, 0x00,0xEB,0xD6,0x8B, 0x45,0x08,0x03,0x45,0xFC,0xC6,0x00,0x00,0xC9,0xC3 |
| |||
Cita: :D Eso es una cadena, "p", que contiene basura a los ojos tuyos, hasta que logres que contenga una cadena legible :D
Iniciado por Developer9 Como dijeron que hagan preguntas... yo hago una Que significa: 0x1B,0x2E,0x3D,0x3B,0x21,0x2D,0x3E,0x21,0x45,0x3A, 0x68,0x67,0x7E,0x52, 0x5F,0x5B,0x5B,0x50,0x56,0x52,0x50,0x07,0x3B,0x69, 0x61,0x6B,0x75,0x2F, 0x19,0x0D,0x22,0x10,0x02,0x07,0x04,0x19,0x1C,0x6F, 0x03,0x45,0xFC,0x0F, 0xB6,0x00,0x32,0x02,0x88,0x01,0x8D,0x45,0xFC,0xFF, 0x00,0xEB,0xD6,0x8B, 0x45,0x08,0x03,0x45,0xFC,0xC6,0x00,0x00,0xC9,0xC3 |
| |||
p, q y r, son arrays de caracteres, solo que los caracteres estan escritos en exadecimal, sin embargo, aparentemente solo contiene basura, o caracteres en desorden. bien podria ser: p = { '!', '*', '>', '¨', '&', '2'...etc. esto seria si estiviesen en representacion de caracter. |
| ||||
Lo sospeché desde un principio... alguna vez los ví en la uni, las referencias a memoria están escritas en hexadecimal. Entonces hay que saber a que letra representa y convertirla en esa letra |
| |||
No. para el compilador da igual este en caracter, en exadecimal, u octal. el problema aqui es que: la funcion puts(), escribe una cadena en la consola, pero asi como esta, solo escribe basura. tenemos que hacer de alguna forma que se escriba un mensaje en pantalla. supongo, que se tienen que hacer sin alterar, los 3 arrays o la funcion puts(p); |
| ||||
Y puedo decir libremente lo que se me ocurre conservando los derechos de autor, es decir, sin que me plagien la respuesta en el caso de que sea buena... no importa... Se me ocurre crear un puntero y direccionarlo a la dirección de memoria indicada y sacar lo que se encuentre allí haber si pasamos por algún sitio interesante de la ram |
| |||
Cita: !!A ver Developer, "0xabcdefgh" es un número expresado en hexadecimal, en C, C++, y mil lenguajes más. La notación hexadecimal se usa porque con dos cifras tienes exactamente 1 byte, es decir, cada "0xXY" es un byte (letra, o no). 0x00 - Byte (8 bits) 0x0000 - Word (16 bits) 0x00000000 - Double Word (32 bits) |