• Sábado 27 de Abril de 2024, 05:15

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 - ragnarok

Páginas: [1] 2
1
C/C++ / Re: Variables Globales
« en: Domingo 25 de Junio de 2006, 19:16 »
En los .h es buena costumbre poner la cabecera y pie:

Código: Text
  1. #ifndef ARCHIVO_H
  2. #define ARCHIVO_H
  3.  
  4. //...
  5. // aqui el codigo
  6. //...
  7.  
  8. #endif
  9.  
  10.  

2
C/C++ / Re: Palindromo
« en: Domingo 2 de Octubre de 2005, 19:09 »
Cita de: "rir3760"
Para verificar si una palabra es o no un palindromo tienes que comparar los caracteres de la mitad izquierda de la palabra con los caracteres de la mitad derecha: el primer caracter con el ultimo, el segundo caracter con el penultimo, etc.

Si en cualquier paso los caracteres no coinciden entonces la palabra no es un palindromo.

Seria algo asi:
Código: Text
  1. /* obtenemos la cadena y la almacenamos en el array 'palabra' */
  2.  
  3. /* calcular la longitud de la palabra */
  4. for (j = 0; palabra[j] != '\0'; j++)
  5.  &#59;
  6. int palindromo (char* palabra)
  7. /* verificar si es un palindromo */
  8. es_un_palindromo = 1; /* verdadero */
  9. for (i = 0, j--; i < j; i++, j--)
  10.    if (palabra[i] != palabra[j]){
  11.       es_un_palindromo = 0; /* falso */
  12.       break;
  13.    }
  14.  

Un saludo
Deberías hacer caso a rir3760, su solución tiene una complejidad de 2n, y la tuya 5n más o menos, así que tarda como 2'5 veces más.

Él recorre la cadena dos veces: una para contar los caracteres y otra para comprobar si es palíndromo.

Tu la recorres una para copiarla, otra para darla la vuelta, otra porque si :huh: , y dos más para compararla (recorres dos cadenas).

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5.  
  6. int esPalindromo (char* palabra){
  7.    int i, j;
  8.    for (i = 0, j=(strlen(palabra)-1); i < j; i++, j--)
  9.       if (palabra[i] != palabra[j])
  10.          return 0;
  11.    return 1;
  12. }
  13.  
  14. int main (){
  15.     char palabra[128];
  16.     printf ("introduce una palabra\n");
  17.     gets (palabra);
  18.     printf ("\nLa palabra \"%s\" %s es un palindromo\n", palabra, esPalindromo (palabra)? "si" : "no");
  19.     system ("pause");    
  20. }
  21.  
  22.  

3
C/C++ / Re: Sockets, Http Y Urls
« en: Jueves 29 de Septiembre de 2005, 20:22 »
Me pasa una de las cosas más raras que he visto nunca, en h_addr obtengo basura concatenada con la url que paso en la llamada a gethostbyname.

4
C/C++ / Re: Metodos Inline
« en: Jueves 29 de Septiembre de 2005, 16:19 »
Se gana velocidad pero el ejecutable reesultante va a ser más grande.

Los constructores, los destructores o ambos deben ser inline (apostaría por los destructores por lo menos).

5
C/C++ / Sockets, Http Y Urls
« en: Jueves 29 de Septiembre de 2005, 16:16 »
¿Hay alguna forma de usar una URL en lugar de una IP para conectar un socket?, ¿o una función de traducción de URL a IP?. Estoy haciendo un programa que se conecte a una página, pero si el hosting mueve la página de servidor o cambia la IP no funcionaría.

Además estoy intentando hacer un GET de una página: http://nosecuantos.iespana.es/dir.htm que es equivalente a http://www.iespana.es/nosecuantos/dir.htm. No importa si pongo la dirección IP de iespana.es o la de nosecuantos.iespana.es y hago el GET de /nosecuantos/dir.htm o sólo de /dir.htm o no me responde absolutamente nada o me da un error 404.

Con otras páginas si me ha funcionado. Con este foro por ejemplo tampoco. Supongo que hay algo que se me está pasando por alto, pero no sé el qué.

Muchas gracias.

6
Inteligencia Artificial / Re: Adivina Cosas
« en: Domingo 25 de Septiembre de 2005, 14:52 »
Citar
Q17.  Estoy conjeturando que es un auricular de teléfono?
  Sí  ,   No  , Casi
16.    ¿Pagarías por usarlo? Tal vez.
15.    ¿Al utilizarlo, se sujeta? Sí.
14.    ¿Puede emitir sonidos? Sí.
13.    ¿Lo darías como regalo? No.
12.    ¿Lo usarías en la oscuridad? Irrelevante.
11.    ¿Hacen falta conocimientos especiales para usarlo? No.
10.    ¿Se considera valioso? Lo dudo.
9.    ¿Se utiliza en los viajes? No.
       ¿Pesa más que una tarrina de mantequilla? No sé.
8.    ¿Pesa más que un pato? No.
7.    ¿Se utiliza para comunicarse? Sí.
6.    ¿Puede provocar un efecto en ti? Irrelevante.
5.    ¿Lo encontrarías en una oficina? Sí.
4.    ¿Puede encenderse y apagarse? Sí.
3.    ¿Se rompe si se deja caer? Tal vez.
2.    ¿Suele ser de colores vivos? No.
1.    Se clasifica como Otro


A mi si me acertó el auricular de teléfono, si hubiera contestado distinto la 14 podría haberme adivinado teléfono (no sólo el auricular) probablemente, la verdad es que tiene cosas bastante concretas. Además cuando le dices que si te dice las respuestas en las que habría contestado otra cosa:

Citar
¡20Q ganado!
Juego Otra vez
Usted pensaba en un auricular de teléfono.
¿Pesa más que una tarrina de mantequilla? Usted dijo No sé, Digo el Sí.
¿Lo usarías en la oscuridad? Usted dijo Irrelevante, Digo el Sí.
Contradicciones detectadas
No importa si tus respuestas se contradicen: con el tiempo el juego cambiará las respuestas para reflejar los conocimientos comunes. Si consideras que el juego está equivocado, la única forma de arreglarlo es jugando de nuevo.
Objetos Similares
un timbre de casa, un teléfono, una llamada telefónica, un micrófono, un pomo de control de volumen, un sacapuntas eléctrico, un megáfono, papel de gráficos, un módem, un contestador automático, un archivo MP3, un audífono.
Conocimiento infrecuente sobre un auricular de teléfono
¿Se puede usar en el colegio? Digo el No.
¿Es negro? Digo el No.
Juego Otra vez

Por ejemplo un teléfono en principio no hay problema por usarlo en la oscuridad, de todas formas la considero irrelevante, porque para usar un teléfono te da igual si hay luz o no.

7
C/C++ / Mirar La Hora En Internet
« en: Domingo 25 de Septiembre de 2005, 01:23 »
Hola,

Necesito saber la hora para un programa que estoy haciendo, pero no la que tenga el usuario en su ordenador porque puede cambiarla sino en internet.

Había pensado en conectarme con un socket a alguna página que muestre la hora actual, parsear lo que reciba y así saber la hora, pero creo que es muy ineficiente y engorroso y que debe haber una solución más fácil.

¿alguien conoce cuál?

Gracias.

8
C/C++ / Re: Ordenamiento De Matrices
« en: Domingo 21 de Agosto de 2005, 04:21 »
Tal y como lo quieres ordenar es como si ordenaras un vector, para eso lo que deberías hacer es tratar la matriz como un vector, siendo de mxn después del elemento (0,n) irá el (1,0) y así sucesivamente.

Si no te apañas para tratar la matriz como un vector, puedes copiarla a un vector, ordenar el vector y restaurar la matriz desde el vector, que es una chapuza por la efectividad pero funciona igual.

Mi consejo es que trates la matriz como un vector porque verás que si lo piensas un poco no es tan dificil adaptar el algoritmo de vectores que suelas utilizar y prefieras a tu matriz.

9
PHP / Re: ¿porque Php Es Tan Lento?
« en: Miércoles 10 de Agosto de 2005, 21:29 »
Lo que cuenta al visitar una página normalmente es el ancho de banda del servidor, probablemente las páginas en php que visitaste tenían unos servidores peores. De todas formas el tiempo de procesamiento no debería ser un problema si lo comparas con el de trasmisión de la información, por eso no es demasiado importante que php ni ASP sean especialmente rápidos. Y además está el tiempo de acceso a la base de datos, que dependerá de muchísimas cosas.

En definitiva, no sé si el tiempo de ejecución con ASP va a ser mejor que con PHP, pero el de desarrollo va a ser mucho más corto, hay mucha documentación, etc. Y creo que no merece la pena complicarse la vida porque el procesador esté al 47 en lugar del 50%. Por último creo que la proporción de sitios que usan php frente a los que usan asp es de 80%php 20%asp, y si es así será por algo.

(esta última estadística es muy poco fiable, pero creo que era así.)

10
PHP / Re: IDE para PHP
« en: Miércoles 10 de Agosto de 2005, 18:25 »
Yo normalmente uso context porque tengo que hacer cosas pequeñas, pero si tuviera que hacer cosas mayores usaría php designer, es free.

http://www.mpsoftware.dk/phpdesigner.php

11
Programación de Archivos del Sistema / Dudas De Novato
« en: Miércoles 10 de Agosto de 2005, 16:06 »
Me gustaría saber como se hace en windows XP para que un proceso se ejecute cuando el sistema arranca sin que esté en el grupo de inicio. He visto que algunos programas lo hacen, por ejemplo el messenger o el emule, y no están en el menú inicio. He buscado el autoexec.bat y boot.ini que creo que era la forma en que se hacía en versiones anteriores de windows, pero no los he encontrado ¿como funciona en windows XP?

También me gustaría saber como puedo pausar la ejecución de un batch durante un tiempo, he probado con pause, pero pide al usuario que pulse una tecla.

Por último no sé si puedo usar time para comprobar que una hora se encuentre en un rango determinado ¿Cómo sería? Creo que tengo que parsear el retorno de time, pero no sé como se haría.

Muchas gracias.

12
C/C++ / Pausar Un Proceso
« en: Miércoles 10 de Agosto de 2005, 15:36 »
Estoy buscando una forma de pausar un proceso en C/C++ o batch (.bat).

He probado con system ("pause") pero lo que hace es parar la ejecución hasta que el usuario pulsa una tecla, lo que necesitaría es pararla durante un tiempo y que luego se reanudara. Uso windows XP, como compilador Dev-C++, por si es importante.

Muchas gracias.

13
C/C++ / Re: Creación De Un Struct Dinámico En C
« en: Miércoles 10 de Agosto de 2005, 15:19 »
Y ese vector me temo que no lo tendrás en tiempo de compilación. Me temo que es imposible, tal vez puedas utilizar en su lugar un array, en lugar de campos tendrás posiciones dentro del array. Si quieres que cada una apunte a un elemento de distinto tamaño el array puede ser de punteros a void. Debería funcionar, aunque es un poco complicado.

14
PHP / Re: Diseño Del Alto Nivel.
« en: Miércoles 15 de Diciembre de 2004, 21:16 »
Mi duda es un poco rara, pero espero que alguien pueda resolverla.

He aprendido a hacer diseños de alto nivel para programación estructurada y programación orientada a objetos, por ejemplo en C++. Como DFDs, diagramas de transición de estados, de estructura, de estructura refinado, casos de uso, diagramas de clases, de secuencia, de componentes, etc.

Ahora tengo que hacer lo mismo pero con PHP, la cuestión es que es algo particular por la forma de funcionar, con los includes de otros ficheros, porque puede estar embebido en html y por muchos motivos más por lo que no sé que es lo habitual al hacer un diseño de alto nivel de PHP ni cómo se hace.

¿Que clase de diagramas debería incluir en mi diseño de alto nivel de mi sitio en php?

Muchas gracias.

15
C/C++ / Flex + Unistd
« en: Lunes 29 de Noviembre de 2004, 17:21 »
Estoy intentando generar un analizador léxico en C++ para windows utilizando flex, y me hace un include de unistd, con lo que el compilador me dice que no la encuentra. El código que genera es virtualmente imposible de retocar a mano, así que debería encontrar alguna forma de compilar la unistd en windows o cambiar algo en el flex para que funcione. Lamentablemente he econtrado manuales de flex que te dicen como escribir el código a partir del cual se genera el de C++, pero no te dicen gran cosa de las opciones para generarlo, por ejemplo si quieres que lo genere en linux o windows.

¿Alguien conoce algún buen manual o sabe como puedo solucionar esto?

Gracias.

16
C/C++ / Re: Ventajas Y Desventajas De Compiladores
« en: Jueves 11 de Noviembre de 2004, 21:06 »
Dev c++ es bastante bueno, para que tu código sea portable lo único que tienes que hacer es usar sólo librerías estándar ANSI de C, y debería ser portable incluso a linux.

Por algún extraño motivo he hecho cosas en Visual C++ que no eran portables a Dev C++, pero al revés no me ha pasado nunca. Deberás tener también cuidado con el comportamiento indefinido de algunas funciones como strtok, porque pueden funcionar en un compilador de una manera y en otro de otra.

Mi recomendación es que uses Dev C++ y de vez en cuando compruebes quesi lo compilas con Visual C++ las cosas funcionan igual.

17
C/C++ / Re: ¿mejor Forma De Hacer Guis?
« en: Viernes 5 de Noviembre de 2004, 16:03 »
El Fox toolkit también tiene buena pinta y han reanudado el desarrollo, han sacado una nueva versión por Halloween pero en la página no he encontrado nada de quienes son ni de por qué están haciendo eso así que de momento me fio más de WxWidgets.

En cuanto al problema con tu aplicación la verdad es que no tengo ni idea de cómo se hacen plugins pero creo que lo suyo sería hacer tanto la aplicación como los plugins con una misma librería y usar sus métodos, por lo poco que he leido.

18
C/C++ / Re: ¿mejor Forma De Hacer Guis?
« en: Viernes 29 de Octubre de 2004, 21:54 »
La verdad es que esperaba que hubiera alguna especie de estándar para esta tarea, igual que después de aprender C puedes seguir con las librerías estándar ANSI de C y cuando aprendes C++ con la STL, que realmente es muy útil, esperaba que hubiera alguna forma estándar de realizar GUIs, que me sirviera para los distintos compiladores/entornos de desarrollo y sistemas operativos, pero me temo que todavía no se ha alcanzado ese grado de desarrollo.

También me gustaría que fuera una forma libre, o al menos gratis, es decir que no tenga que usar un compilador u otra clase de herramienta que requiera licencia, de las tres opciones que has puesto creo que la única que comple eso es la primera (corrígeme si me equivoco).

He estado buscado información acerca de la Vintage y no he encontrado nada, me temo que es una palabra demasiado habitual y google me da demasiados resultados que no me interesan, ¿podrías decirme algo más acerca de esta forma o darme algún link?

En cuanto a lo que dije que no conocía muy bien me he estado documentando en este tiempo, lo que he descubierto, por si a alguien le interesa, es que:

- WxWindows es una librería para crear GUIs que permite que tu código sea totalmente portable, puesto que está disponible para bastantes plataformas y es igual en todas. Además los programas tienen un aspecto lo más parecido posible a las aplicaciones desarrolladas específicamente para esa plataforma, los ejemplos que he visto son indistinguibles. Lo están desarrollando en una Universidad, por lo que será libre, es probable que no se abandone el proyecto y que evolucione lentamente.

- GLADE es una herramienta para hacer interfaces gráficos utilizando uno, es como dibujarlo, genera el código para utilizar GTK+. GTK+ es portable también, pero necesita un entorno de ejecución ("runtime environment"), hay distintos temas para descargar para el aspecto de los programas que desarrollas.

Gracias.

19
C/C++ / Re: Hacer Un Compilador
« en: Lunes 25 de Octubre de 2004, 15:38 »
Si, los autómatas son eso. Probablemente en esa asignatura también estudiaras las gramáticas y las expresiones regulares porque están bastante unidos.

20
C/C++ / Re: Saber Cusantas Letras Tiene Una Oracion
« en: Lunes 25 de Octubre de 2004, 15:34 »
También puedes utilizar un map, como clave pones el abecedario y como valor el número de veces que aparece la letra.

Lo mejor de todo es cómo queda el código (supongamos que almacenas el string en char* frase):

Código: Text
  1. map <char, int> tabla;
  2. for (i=0; frase[i]; i++)
  3.    tabla[i]++;
  4.  
  5.  

21
C/C++ / Re: Hacer Un Compilador
« en: Viernes 22 de Octubre de 2004, 18:26 »
Yo estoy aprendiendo ahora mismo a hacer compiladores, y es una asignatura que dura todo un año, así que no es algo trivial. Para empezar deberías informarte de lo que es un autómata, y de lo que son las gramáticas, por lo menos las gramáticas regulares y las de contexto libre.

Luego deberías leer documentación acerca de compiladores, y cuando tengas más o menos idea de lo que es un compilador, qué hace y cómo lo hace puedes mirar en esta página:

http://dinosaur.compilertools.net/

Ahí puedes encontrar documentación acerca del LEX y el yacc, que son dos herramientas para desarrollar compiladores en C (en C para lo que quieras, como Pascal). El LEX se ocupa del analizador léxico y el yacc del sintáctico, que como ya verás son las dos partes principales de un compilador, aunque no las únicas.

Espero que te sirva, ¡suerte!

22
C/C++ / ¿mejor Forma De Hacer Guis?
« en: Viernes 22 de Octubre de 2004, 18:18 »
Estaba mirando un curso de la API de windows en conclase.net para hacer aplicaciones con un interfaz gráfico, pero he oido hablar acerca de las MFC y WxWindows, y no me apetece aprender una cosa para que luego todo el mundo me diga que la que se utiliza es otra. También he oido algo de un programa con el que usas un interfaz gráfico para hacer el GUI y luego te genera el código en C++ (y no sé si más lenguajes).

Por eso pregunto: ¿cual es la mejor forma de hacer GUIs en C++?, la más rápida, fácil, habitual, extendida, estándar, portable, con vistas de permanecer inalterable, con la que quedan más bonitas, nueva, etc. ¿?

Gracias.

23
Java / Dudas Novato Java
« en: Lunes 19 de Julio de 2004, 22:47 »
Estoy leyéndome un libro de "aprenda java como si estuviera en primero" y me han surgido varias dudas.

La primera es que se dice que el método clone() que tienen todos los objetos no debería llamar a new ni a constructores ¿por qué?.

¿Cuando se hace una asignación con el operador "=" se llama al método clone()?

He llegado a un tema en el que se explica el AWT, pero también mencionaba otro modelo de componentes llamado swing, he estado buscando información acerca de este segundo y parece bastante mejor y más interesante, la única pega que le ponían era que no es threadsafe. ¿Se puede hacer que sea threadsafe de alguna manera? ¿es muy importante? ¿cual de los dos debería aprender?

Supongo que me irán surgiendo más dudas. ¿Debería reutilizar este post?

25
C/C++ / Re: Llamar Programas Externos
« en: Martes 13 de Julio de 2004, 14:11 »
En unix para que un programa ejecute otro se puede hacer fork y exec, en windows seguro que se puede hacer algo parecido, pero no sé como se llama, puedes buscar en la MSDN o esperar a que alguien te conteste de una forma más concreta. Es todo lo que te puedo decir.

Si lo que quieres es linkar varios archivos objeto para construir un ejecutable se hace como si fueran todos de C, sólo tienes que incluir las cabeceras de funciones correspondientes en los programas de C con la palabra reservada extern, creo.

Páginas: [1] 2