• Lunes 19 de Mayo de 2025, 21:00

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

Páginas: 1 ... 40 41 [42] 43 44 ... 100
1026
C/C++ / Re: Descomponer un numero en sus factores
« en: Sábado 30 de Mayo de 2009, 12:24 »
Si yo fuera tu profe/jefe: :no:  :hola:

1027
C/C++ / Re: Leer espacios en un archivo
« en: Viernes 29 de Mayo de 2009, 13:56 »
No entiendo tu pregunta, un espacio es un carácter como los demás. ¿Qué tal si pones el código con el que trabajas y así especificas más tu duda?

(No olvides usar las etiquetas de código...)

1028
Visual Basic para principiantes / Re: Numeros perfecto
« en: Viernes 29 de Mayo de 2009, 10:11 »
Jimbenit, me vas a perdonar, pero tu función EsPrimo está mal codificada. ¿Para qué quieres seguir buscando "submúltiplos" (supongo que querrás decir divisores) si al encontrar uno ya sabemos que el número no es primo? ¿Además, para qué conviertes el número en Integer cuando lo aceptas como Long en el parámetro?

Código: Visual Basic
  1. Private Function EsPrimo(ByVal N as Long) As Boolean
  2.     Dim i As Long
  3.     Dim Mitad As Long
  4.    
  5.     EsPrimo = True
  6.     i = 2
  7.     Mitad = N/2
  8.     Do While (i <= Mitad) And EsPrimo
  9.         If (N mod i = 0) Then
  10.             EsPrimo = False
  11.         Else
  12.             i = i + 1
  13.         End If
  14.     Loop
  15. End Function
  16.  
Además, en tu función Nro_Primos creas un vector con tamaño Lim_Sup, cuando los primos son evidentemente muchos menos que Lim_Sup. Así desperdicias mucha memoria y eso es una mala práctica. Tendrías que poner:

Código: Visual Basic
  1. If EsPrimo(i) Then
  2.     Contador = Contador + 1
  3.     ReDim Preserve Vector(Contador - 1)    
  4.     Vector(Contador - 1) = i
  5.     Texto = Texto & i & vbCrLf
  6. End If
  7.  
Saludos y  :comp:

1029
C/C++ / Re: Recibir una letra desde el teclado, sin tener que usar enter
« en: Viernes 29 de Mayo de 2009, 09:53 »
Código: C++
  1. char c;    
  2. cin >> c;
  3.  

1030
Visual Basic 6.0 e inferiores / Re: Error con LoadPicture
« en: Jueves 28 de Mayo de 2009, 18:38 »
Hm, qué extraño... Postea el error con los números, a ver si alguien ve luz en ello.

Suerte

1031
C/C++ / Re: Utilizacion de memoria de video
« en: Jueves 28 de Mayo de 2009, 16:39 »
Efectivamente, hay que cambiar primero el modo de representación. Si estás en modo texto, las páginas gráficas de la memoria de vídeo están sin utilizar.

Échale un vistazo a esto: http://www.osdever.net/FreeVGA/vga/vga.htm

Igualmente ten en cuenta que hoy en días las tarjetas gráficas vienen con sus drivers y es posible que estas direcciones de registros de E/S ya no sean válidas para algunas tarjetas modernas, aunque que yo sepa todas intentan respetar el estándar VGA.

Suerte

1032
La taberna del BIT / Re: Toc toc, ¿se puede? =P
« en: Jueves 28 de Mayo de 2009, 11:07 »
:hola:  :brickwall:  :good:  :hitcomp:  :comp:

1033
La taberna del BIT / Re: busco pareja
« en: Miércoles 27 de Mayo de 2009, 17:26 »
Yo la verdad es que no tengo mucho problema para ligar en el mundo real. Pero a lo mejor algún remoto día me animo a buscar por internet, más que nada por curiosidad. Pero hasta ahora no me ha picado demasiado.

Saludos y mucha suerte

PD: ¡no has votado!  :P

1034
Hardware / Re: Duda con placa base y memoria
« en: Miércoles 27 de Mayo de 2009, 10:46 »
Cita de: "krnl64"
Pueden decirme que hacer para que vayan a la par la memoria y el fsb ?
No tienes ningún cuello de botella, fíjate en el ancho de bus y en el ancho de banda.

1035
C/C++ / Re: Como desbordar la memoria con este Programa??
« en: Miércoles 27 de Mayo de 2009, 10:11 »
strcpy(passwd, pas); es vulnerable porque copia todo hasta encontrar un NULL.

1036
C/C++ / Re: Problemas fáciles con for y if que no sé resolver
« en: Martes 26 de Mayo de 2009, 19:11 »
Es que por más que me esfuerzo no soy capaz de ver las dudas en el primer post...  :lol:

Ahora en serio, vayamos por partes. Ponte el código que tengas hecho del primer apartado y lo comentamos.

Saludos

1037
C/C++ / Re: Problemas fáciles con for y if que no sé resolver
« en: Martes 26 de Mayo de 2009, 18:40 »
Bueno, explícanos que dudas tienes, porque sencillo es sencillo.

Ah, se me olvidaba, aquí nadie te va a hacer la tarea, porque las tareas son para aprender. Todos hemos tenido que pasar por ello. Así que ánimo  :P

1038
C/C++ / Re: Fallo cadena de formato scanf
« en: Martes 26 de Mayo de 2009, 16:35 »
Cita de: "krnl64"
Eso ya lo sabia y no es lo que queria.
La próxima vez explícate mejor.  :hola:

1039
Nebire, como siempre, me quito el sombrero  ;)  :good:

Por cierto, deaven, si te interesa calcular el tiempo que tarda en ejecutarse una parte del código, te aconsejo que le eches un vistazo a esto, seguro que te viene muy bien (porque yo también lo tuve que hacer :)):

Código: Visual Basic
  1. Private Declare Function timeGetTime Lib "winmm.dll" () As Long  
  2.  
  3. Private Sub TalyCual(ByLoQueSea Parametro As TipoLoQueSea)
  4.     Dim Tiempo_Inicial As Long
  5.    
  6.     Tiempo_Inicial = timeGetTime()
  7.    
  8.     'Procesamos...
  9.  
  10.     Debug.Print timeGetTime - Tiempo_Inicial
  11. End Sub
  12.  
Ah y otro consejo: evita el uso de cadenas de caracteres todo lo que puedas. La lentitud de su procesamiento es uno de los mayores defectos de VB6  :bad:

Saludos y espero que te sirva

1040
Pascal / Re: Help Suma de 3 numeros en Hexadecimal
« en: Martes 26 de Mayo de 2009, 11:39 »
Vuelve a editarlo, por favor, y pon lo de code bien (selecciona el código y luego dale a code), y formatea el código para que quede legible.

1041
C/C++ / Re: Mascota virtual tamagotchi!!!
« en: Martes 26 de Mayo de 2009, 11:14 »
Bueno, en mi humilde opinión has empezado por lo último que se debe hacer en una aplicación: la interfaz. Pero bueno, ya verás los problemas que surjen. Mejor la experiencia en persona :)

Respondiendo a tu duda, es muy sencillo. Puedes hacer:

Código: C++
  1. string tipo_mascota;
  2. [...]
  3. case 1: cout << "nUsted a elegido un Gato";
  4.         tipo_mascota = "Gato";
  5.         break;
  6. // etc...
  7.  
que es lo más sencillo, aunque personalmente haría:

Código: C++
  1. enum tMascotas
  2. {
  3.     GATO = 0,
  4.     PERRO = 1,
  5.     HAMSTER = 2,
  6.     CONEJO = 3,
  7.     TORTUGA = 4,
  8.     PEZ = 5
  9. };
  10.  
  11. tMascota tipo_mascota;
  12. [...]
  13. case 1: cout << "nUsted a elegido un Gato";
  14.         tipo_mascota = GATO;
  15.         break;
  16. // etc...
  17.  
y así evito manejar cadenas de caracteres que es más pesado. Pero como tú te apañes mejor.

1042
C/C++ / Re: Fallo cadena de formato scanf
« en: Martes 26 de Mayo de 2009, 11:05 »
Porque no le has dicho que es un carácter  :lol:

Código: C
  1. /* No hace falta poner unsigned */
  2. char c;
  3. scanf("%c",&c);
  4.  

1043
C/C++ / Re: Pruebas en C
« en: Martes 26 de Mayo de 2009, 10:52 »
Usa las etiquetas de código, colega...

Código: C
  1. int valor_pila()
  2. {
  3.     __asm__("push %espnt"
  4.     "pop %eax");
  5. }
  6.  
Suponía que no entendrías esto  ^_^

Hay que tener en cuenta que el código en C primero se pasa a ensamblador y posteriormente se ensambla y enlaza. Si quieres ver el código en ensamblador correspondiente, usa el modificador -S con gcc. Con la función __asm__() lo que estamos diciéndole al compilador de C es que no compile la cadena que vaya dentro de ella, sino que simplemente la pase tal cual al ensamblador. Con ello ejecutamos código en ensamblador desde C.

Luego hay que entender ciertos aspectos internos de las CPU Intel. Éstas usan un registro llamado ESP para apuntar al elemento más alto de la pila. Ésta función devuelve el valor de ese registro (puedes ver %esp). También existe el registro EAX, que es dónde las funciones guardan el valor de retorno. Por ejemplo, cuando haces return 0;, en realidad la CPU pone un cero en el registro EAX antes de volver de la función.

Por tanto nuestro código en ensamblador es:

Código: ASM
  1. push %esp
  2. pop %eax
  3.  
La instrucción push inserta un elemento en la pila y la instrucción pop saca un elemento de la pila. Estas instrucciones se encargan internamente de cargar/salvar el valor de/en la pila en el registro correspondiente y modificar ESP para que apunte al siguiente valor. Entonces metemos el valor del registro ESP en la pila y luego sacamos ese mismo valor en EAX, así ya lo tenemos incluso como valor de retorno, así que finalizamos directamente la función.

Para los curiosos: no hemos hecho

Código: ASM
  1. mov %eax,%esp
  2.  
porque la instrucción mov en los procesadores x86 no acepta un registro de segmento como operando. Así que tenemos que recurrir al truco de la pila.

1044
Pascal / Re: Tratamiento De Cadenas De Caracteres
« en: Lunes 25 de Mayo de 2009, 19:08 »
Ok, y ¿qué te arroja tu programa cuando lo ejecutas? No tengo entorno de Pascal ahora mismo.

1045
C/C++ / Re: Mascota virtual tamagotchi!!!
« en: Lunes 25 de Mayo de 2009, 19:06 »
Empieza por estudiar un poco  :P

Es broma, piensa primero en las clases (de C++ me refiero :D) que necesitas.

Ten claro que nadie aquí te va a hacer la tarea, por si no has leído las normas.

1046
Visual Basic 6.0 e inferiores / Re: Error con LoadPicture
« en: Lunes 25 de Mayo de 2009, 18:40 »
Ten en cuenta que Windoze 98 no acepta caminos muy largos, prueba a poner el camino más corto que puedas, algo como C:prueba.bmp.

1047
C/C++ / Re: Pruebas en C
« en: Lunes 25 de Mayo de 2009, 18:38 »
Aer, te lo corrijo, aunque deberías saber cómo corregirlo tú mismo, es muy sencillo. Yo es que estoy usando MinGW (un porte de gcc para Windows) en Win2000.

Código: C
  1. int valor_pila()
  2. {
  3.     __asm__("push %espnt"
  4.             "pop %eax");
  5. }
  6.  
  7. int valor_monticulo()
  8. {
  9.     int *p, valor;
  10.    
  11.     (void *)p = malloc(sizeof(int));
  12.     valor = (int) p;
  13.     free((void *)p);
  14.     return valor;
  15. }
  16.  
  17. int main(int argc, char *argv[])
  18. {
  19.     printf("Valor de la pila: %pn", (void *)valor_pila());
  20.     printf("Valor del monticulo: %pn", (void *)valor_monticulo());
  21.     return 0;
  22. }
  23.  

De todas formas, te funciona bien, y no te falta ninguna librería porque si no no te compilaría, nene. Puedes ver que la dirección de la pila y el montículo cambia, cosa que no ocurre en mi Win 2K donde siempre son la misma. Sólo espero que hayas entendido el código, porque si te preguntan sobre ello...  :blink:  :ph34r:

1048
C/C++ / Re: Pruebas en C
« en: Lunes 25 de Mayo de 2009, 11:42 »
No son errores, son avisos...  :P

¿Seguro que lo has copiado tal cual...? A mí no me da todos esos avisos.

Además, algo cambiaste, puesto que los errores que te da la primera vez, no son los de la segunda. De todas formas, te lo ha compilado, pero no lo has probado.

1049
C/C++ / Re: Pruebas en C
« en: Lunes 25 de Mayo de 2009, 11:02 »
Cita de: "jvmjunior"
estoy trabajando con UBUNTU 9.04, en una portatil HP pavilion dv6000
Entonces es arquitectura x86 (Intel)

Cita de: "jvmjunior"
personalmente no se cual es la diferencia entre esas memorias.....
http://en.wikipedia.org/wiki/Dynamic_memory_allocation
http://en.wikipedia.org/wiki/Stack_(data_structure)

Para comprobar valores de pila y montón

Código: C
  1. int valor_pila()
  2. {
  3.     __asm__("push %espnt"
  4.             "pop %eax");
  5. }
  6.  
  7. int valor_monticulo()
  8. {
  9.     int *p, valor;
  10.    
  11.     p = malloc(sizeof(int));
  12.     valor = (int) p;
  13.     free(p);
  14.     return valor;
  15. }
  16.  
  17. int main(int argc, char *argv[])
  18. {
  19.     printf("Valor de la pila: %pn", valor_pila());
  20.     printf("Valor del monticulo: %pn", valor_monticulo());
  21.     system("PAUSE");
  22.     return 0;
  23. }
  24.  

1050
C/C++ / Re: Stack overflow
« en: Lunes 25 de Mayo de 2009, 10:46 »
Eso que tienes es mucho espacio para la pila. Si lo haces como te digo, no tienes que cambiar nada en el código, los vectores son punteros  ^_^

EDITO: por cierto, me equivoqué ligeramente en el código de malloc() que te puse, ya está corregido.

Páginas: 1 ... 40 41 [42] 43 44 ... 100