• Miércoles 20 de Noviembre de 2024, 16:29

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 ... 94 95 [96] 97 98 ... 100
2376
C/C++ / Re: una mano con menu en Turbo C++
« en: Martes 26 de Agosto de 2008, 09:16 »
Cita de: "HuexoFxp"
aumentando los bits

Sí, efectivamente a++ es postincremento y a-- postdecremento, es decir, que se suma/resta 1 después de la línea en que aparezca. Es decir, a==a++ es verdadero. El preincremento/predecremento es ++a y --a y se realiza antes de cualquier otra cosa en su línea, es decir, a==++a es falso. Pero no aumenta los bits, sino el int (no confundamos términos).

Lo pongo bien formateado porque sino es un lío:

Código: Text
  1.  
  2. int opcion2(){
  3.    int a, puerto, dato[4]={129, 66, 36, 24};
  4.    char b;
  5.  
  6.    clrscr();
  7.    puerto=peekb(0x40, 0x08);
  8.     do
  9.     {
  10.        do
  11.        {
  12.           for(a=0; a<=3;a++)
  13.           {
  14.              clrscr();
  15.              outport(puerto, dato[a]);
  16.              printf("n  Lo que esta en el puerto es %d", dato[a]);
  17.              delay(1000);
  18.           }
  19.  
  20.           for(a=3; a>=3;a--)
  21.           {
  22.              clrscr();
  23.              outport(puerto, dato[a]);
  24.              printf("n  Lo que esta en el puerto es %d", dato[a]);
  25.              delay(1000);
  26.           }
  27.        } while(!kbhit());
  28.       printf("Desea continuar S/N");
  29.       b=getchar();
  30.    } while (b =='S');
  31.    return(0);
  32. }
  33.  
  34.  

No sé para qué asignas valores a dato[] en su declaración puesto que los sobreescribes con outport() más tarde.

Me parece muy bien lo del profesor, pero for(a=3; a>=3;a--) sigue estando mal. ¿Seguro que la has copiado bien? ¿No será por casualidad for(a=3; a>=0;a--)? Vamos, digo yo.

El problema que me comentas radica en que tienes este código

Código: Text
  1.  
  2. printf("Desea continuar S/N");
  3. b=getchar();  /*Corregido*/
  4.  
  5.  

mal puesto dentro de un Case. ¿Por qué? Pues porque al volver de opcion2() ejecutas el break (línea 34) y por tanto se sale del switch(), pasando a ejecutar while(b=='S') (por cierto, esto también lo tenías mal (while(b='S')  :no: ) y como b no es 'S' sale del while y ejecuta return(0) saliendo de main y del programa.

Ahora que sabes dónde está el problema, ¿cómo lo resolverías?  :wacko:  :ph34r:

2377
C/C++ / Re: una mano con menu en Turbo C++
« en: Lunes 25 de Agosto de 2008, 16:16 »
Otras cosillas:

¿Para qué quieres declarar opcion1(), opcion2(), etc... como que devuelven int? Si no necesitas que una función devuelva nada, usa void, por ejemplo:

Código: Text
  1.  
  2. void opcion1();
  3.  
  4.  

Así te ahorras los return().

Esto sigue estando mal (línea 74):

Código: Text
  1.  
  2. for(a=3; a>=3;a--)
  3.  
  4.  

ya que el bucle se ejecuta una sola vez como ya te comenté anteriormente. Sigo sin saber para qué 2 fors que hacen lo mismo. ¿Es para probar a++ y a--  :D ?

Y por último tienes que aprender a formatear el código. Menos mal que es sencillo sino ni lo habría visto.  :bad:

2378
C/C++ / Re: una mano con menu en Turbo C++
« en: Lunes 25 de Agosto de 2008, 16:08 »
Tienes mal esta línea (45):

Código: Text
  1.  
  2. b==getchar();
  3.  
  4.  

Tampoco cierras el switch(opcion) con su correspondiente "}"

Esto en el primer vistazo  :(

2379
Redes y Comunicaciones / Re: Indiana jhones en busca del paquete perdido
« en: Lunes 25 de Agosto de 2008, 15:10 »
Añádete un evento Winsock1_Connect() y ponle un MsgBox, para ver si la conexión se realiza con éxito. Dependiendo de ello, buscaremos en un sentido u otro. Y en el evento Winsock1_Error() usa Description en vez de Number. Suerte.

2380
Redes y Comunicaciones / Re: Indiana jhones en busca del paquete perdido
« en: Lunes 25 de Agosto de 2008, 15:01 »
Pues efectivamente, tenías esa parte bien. Todo parece correcto. Voy a echarle un vistazo al conjunto. Ya te cuento.

2381
La taberna del BIT / Re: La Chica Mas Bella V 2.0
« en: Lunes 25 de Agosto de 2008, 13:28 »
Nada, nada. Las africanas son las más guapas...





 :good:  :good:  :good:  :good:  :good:  :good:  :good:  :good:  :good:  :good:  :good:  :good:

2382
La taberna del BIT / Una de política
« en: Lunes 25 de Agosto de 2008, 13:22 »
Bueno, bueno, ya que todo el mundo lo estaba esperando... ¿Cuál es el dirigente latinoamericano que más les gusta y el que menos? ¿Por qué? ¿Preferirían otro tipo de sistema político/económico en su país?

Yo soy marroquí, pero tengo mis opiniones sobre latinoamérica. Pero venga, echen el balón a rodar   :)

2383
Redes y Comunicaciones / Re: Indiana jhones en busca del paquete perdido
« en: Lunes 25 de Agosto de 2008, 13:14 »
En Connect_Click() deberías de poner Winsock1.Close antes de asignar IP y puerto.

En Winsock1_ConnectionRequest (el evento de cuando se recibe una petición de conexión, que debería estar en el servidor) no deberías hacer Winsock1.Close porque sino cierras la conexión  :P

Llamar dos veces seguidas (líneas 42 y 46) a TTGameOnline.GetVar(App.Path & "player.ini", "PLAYER", "Name") es ineficaz. Guarda el valor en una variable para volverlo a utilizar.

A ver si con las dos primeras se arregla algo, sino ya le echo un vistazo más en profundidad.

2384
Windows / Re: Hardlink
« en: Lunes 25 de Agosto de 2008, 11:40 »
Windows no tiene hardlinks. Un fichero, un nombre.

2385
Virus / Re: problemas McAfee
« en: Lunes 25 de Agosto de 2008, 11:38 »
Tienes 2 opciones: o restaurar el sistema o formatear e instalar de nuevo. De aconsejo la segunda opción, puesto que así estás seguro de que eliminas el virus. Y recuerda, antes de ejecutar cualquier programa, pásale el antivirus, sobre todo si es descargado de interner. ¡Y no uses Internet Explorer! Es un coladero de bichos. Un saludo!

2386
Hardware / Re: sin sonido
« en: Lunes 25 de Agosto de 2008, 11:36 »
Comentarte que para instalar 2 sistemas operativos en 1 solo disco duro necesitas hacer particiones. Por si acaso quieres volver a intentarlo.  ^_^

2387
Visual Basic para principiantes / Re: =FOCUS EN TEXTBOX=
« en: Lunes 25 de Agosto de 2008, 11:08 »
Con inhabilitados del focus, quieres decir que están deshabilitados, que no se puedan seleccionar.

Text1.Enabled = False

La parte de asignárselos al botón no la entiendo.

Deberías de hacer posts más explicativos, que no somos brujos vudú.

2388
C/C++ / Re: una mano con menu en Turbo C++
« en: Lunes 25 de Agosto de 2008, 10:58 »
Primero, comentarte que formateas fatal el código. Mucho más legible así:

Código: Text
  1.  
  2. #include<stdio.h>
  3.  #include<conio.h>
  4.  #include<dos.h>
  5.  
  6. main()
  7. {
  8.    int a, puerto, dato[4]={129, 66, 36, 24};
  9.    clrscr();
  10.    puerto=peekb(0x40, 0x08);
  11.    do
  12.    {
  13.       for(a=0; a<=3;a++)
  14.       {
  15.          clrscr();
  16.          outport(puerto, dato[a]);
  17.          printf("n  Lo que esta en el puerto es %d", dato[a]);
  18.          delay(1000);
  19.       }
  20.  
  21.       for(a=3; a>=3;a--)
  22.       {
  23.          clrscr();
  24.          outport(puerto, dato[a]);
  25.          printf("n  Lo que esta en el puerto es %d", dato[a]);
  26.          delay(1000);
  27.       }
  28.    } while(!kbhit());
  29.  
  30.    getch();
  31.    return(0);
  32. }
  33.  

Segundo, usas return(0); cuando no has declarado que main() devuelva ningún valor.

Tercero, el segundo bucle for "for(a=3; a>=3;a--)" es un bucle raro puesto que sólo se ejecuta una vez, cuando a vale 3, dado que en la siguiente iteración a vale 2 y la condición a>=3 devuelve falso.

Tampoco entiendo por qué dos bucles seguidos que hacen lo mismo...  :blink:

En cuanto a tus dudas, la (1) es bastante sencilla. Puedes usar printf() para poner las opciones en pantalla y getch() para recuperar el carácter pulsado. Si es uno de los números del menú, entonces ejecutas la opción correspondiente. Sino, pues simplemente la ignoras o imprimes un mensaje de error.

La (2) igual, puedes recuperar S/N usando getch(). Ten en cuenta que tu código debe ir dentro de un while para que se repita en caso de que sea 'S'.

Si tienes dudas, pregunta. Un saludo.

2389
Visual Basic para principiantes / Re: Encuentra el error
« en: Domingo 24 de Agosto de 2008, 15:54 »
Como apunta Mollense, es recursividad. De hecho hay funciones que de forma recursiva se consiguen mejores resultados, como algoritmos de árboles y demás estructuras de datos. Está interesante, échale un vistazo al tema. Te hace ver las cosas de otra manera  :D

Y para aquellos que estén interesados en otras metodologías de programación, me permito indicarles que echen un vistazo a la programación funcional. Yo adoro LISP (aúpa emacs!).  :good:

2390
Visual Basic 6.0 e inferiores / Re: Solo Numeros En Textbox
« en: Domingo 24 de Agosto de 2008, 15:51 »
Me vais a perdonar, pero todos aquellos que estáis usando cadenas de caracteres cuando la función os pasa un entero lo estáis haciendo mal.

Una característica fundamental de un programa es que corra rápido. Y bien es conocido que en Visual Basic las cadenas de caracteres son muy lentas de manejar. Es mejor evitar su uso siempre que sea posible. Y desde luego si ya tenemos un número, manejemos números. En vez de una cadena de caracteres con los caracteres válidos, pues un array de sus códigos ASCII. ¿Para qué llamar a InStr(), que lentifica el proceso, y usar cadenas de caracteres que rellenan memoria inútilmente? En fin, que la mejor manera es usar números, que para eso están hechos los computadores, y encima el parámetro pasado por el evento es un Integer. ¿Por qué será?  ;)

2391
C/C++ / Re: Regresar una matriz en una funcion
« en: Domingo 24 de Agosto de 2008, 02:51 »
¡Qué hacéis respondiendo a posts de hace mil años!  :ph34r:  :ph34r:  :ph34r:  :ph34r:

2392
Visual Basic para principiantes / Re: Encuentra el error
« en: Domingo 24 de Agosto de 2008, 01:03 »
Cita de: "Begeo"
no veo que se le introduzca ningún valor a X nunca

Sí se introduce valor a X (supongo que te refieres a Factorial(X)).

Código: Text
  1.  
  2. N = Factorial(5)
  3.  
  4.  

Cita de: "Begeo"
Factorial, al ser una función privada, no podría llamarse fuera de modFunciones.bas

Sí señor.

Cita de: "Begeo"
hay que usar "modulo.funcion(datosaqui)"

Generalmente no hace falta.

Con lo que quedan 2 errores.  :mellow:

2393
Visual Basic 6.0 e inferiores / Re: que control es el adecuado
« en: Domingo 24 de Agosto de 2008, 00:58 »
Usa RichTextBox. Aunque no entiendo esta frase tuya:

Cita de: "luismatute"
soporte mas texto al echar a andar el sistema

2394
Visual Basic para principiantes / Re: Encuentra el error
« en: Sábado 23 de Agosto de 2008, 02:59 »
Ah, bueno, entonces acerté de todas formas  :devil:  :ph34r:

Venga, uno un pelín más difícil:

modFunciones.bas:

Código: Text
  1.  
  2. Private Function Factorial(X as Integer) As Integer
  3.       Factorial = Factorial(X-1)
  4. End Function
  5.  
  6.  

modPrincipal.bas

Código: Text
  1.  
  2. Private Sub Principal()
  3.      Dim N As Variant
  4.  
  5.      N = Factorial(5)
  6.      Debug.Print N
  7. End Sub
  8.  
  9.  

Bueno, hay 3 errores. 2 de lógica y uno de metodología. A ver quién da.  :comp:

2395
C/C++ / Re: Problema con suid bit, y envoltorios en C++
« en: Sábado 23 de Agosto de 2008, 02:43 »
execv() no ejecuta otro programa, sino que sustituye la imagen del actual proceso por otro. Por tanto el usuario sigue siendo el mismo, porque no se ejecuta desde un principio por tanto el kernel no tiene en cuenta el bit SetUID. Tienes que usar exec().

EDIT: Perdón, tienes que usar system()  :o

2396
C/C++ / Re: enlazado de programas?
« en: Sábado 23 de Agosto de 2008, 02:37 »
¿Quién ha hablado de exes? Yo hablo de lenguaje máquina, nen. No te excites.  :P

2397
C/C++ / Re: necesito apoyo en c
« en: Viernes 22 de Agosto de 2008, 15:30 »
Hombre con funciones no puede ser. En algún lugar tienes que guardar la información de si un libro está prestado o no. Y las funciones no hacen eso.

2398
C/C++ / Re: necesito apoyo en c
« en: Viernes 22 de Agosto de 2008, 12:28 »
Bueno, visto tu código hay bastantes cosas que mejorar, pero vayamos a lo que te interesa. Para saber si un libro está prestado o no, tal y como tienes estructurado el programa, tendrías que incluír dicha información en cada libro, junto con autor, género, etc... Como también quieres tener en cuenta la fecha y demás, yo que tú crearía una estructura de datos por cada libro que tuviera dicha información, a saber: si el libro está prestado o disponible y la fecha en que se prestó. La fecha de devolución y la sanción se pueden calcular cuando se requieran a partir de la fecha de préstamo.

2399
C/C++ / Re: enlazado de programas?
« en: Viernes 22 de Agosto de 2008, 12:20 »
Insisto porque fachamix sigue sin enterarse de lo que quiero decir. Pero bueno, da igual, creo que con los enlaces que le has dado a sebcas está solucionado.  :good:

2400
Visual Basic para principiantes / Re: Encuentra el error
« en: Viernes 22 de Agosto de 2008, 09:34 »
Sin ejecutarlo, te digo que

1) Te falta el LOOP al final del bucle

Código: Text
  1.  
  2. Do While VolverAEmpezar = True
  3.      CartaElegida = CStr(Rand(1, 5))
  4. LOOP
  5.  
  6.  

2) El bucle es infinito puesto que en su interior no se cambia la condición de salida.

3) CartaElegida es un entero y le asignas un valor String en

Código: Text
  1. CartaElegida = CStr(Rand(1, 5))
  2.  

Páginas: 1 ... 94 95 [96] 97 98 ... 100