|
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
« en: Martes 26 de Agosto de 2008, 09:16 »
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: int opcion2(){ int a, puerto, dato[4]={129, 66, 36, 24}; char b; clrscr(); puerto=peekb(0x40, 0x08); do { do { for(a=0; a<=3;a++) { clrscr(); outport(puerto, dato[a]); printf("n Lo que esta en el puerto es %d", dato[a]); delay(1000); } for(a=3; a>=3;a--) { clrscr(); outport(puerto, dato[a]); printf("n Lo que esta en el puerto es %d", dato[a]); delay(1000); } } while(!kbhit()); printf("Desea continuar S/N"); b=getchar(); } while (b =='S'); return(0); }
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 printf("Desea continuar S/N"); b=getchar(); /*Corregido*/
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') ) 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?
2377
« 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: Así te ahorras los return(). Esto sigue estando mal (línea 74): 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-- ? Y por último tienes que aprender a formatear el código. Menos mal que es sencillo sino ni lo habría visto.
2378
« en: Lunes 25 de Agosto de 2008, 16:08 »
Tienes mal esta línea (45): Tampoco cierras el switch(opcion) con su correspondiente "}" Esto en el primer vistazo
2379
« 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
« 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
« en: Lunes 25 de Agosto de 2008, 13:28 »
2382
« 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
« 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 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
« en: Lunes 25 de Agosto de 2008, 11:40 »
Windows no tiene hardlinks. Un fichero, un nombre.
2385
« 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
« 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
« 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
« en: Lunes 25 de Agosto de 2008, 10:58 »
Primero, comentarte que formateas fatal el código. Mucho más legible así: #include<stdio.h> #include<conio.h> #include<dos.h> main() { int a, puerto, dato[4]={129, 66, 36, 24}; clrscr(); puerto=peekb(0x40, 0x08); do { for(a=0; a<=3;a++) { clrscr(); outport(puerto, dato[a]); printf("n Lo que esta en el puerto es %d", dato[a]); delay(1000); } for(a=3; a>=3;a--) { clrscr(); outport(puerto, dato[a]); printf("n Lo que esta en el puerto es %d", dato[a]); delay(1000); } } while(!kbhit()); getch(); return(0); }
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... 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
« 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 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!).
2390
« 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
« en: Domingo 24 de Agosto de 2008, 02:51 »
2392
« en: Domingo 24 de Agosto de 2008, 01:03 »
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)). Factorial, al ser una función privada, no podría llamarse fuera de modFunciones.bas Sí señor. hay que usar "modulo.funcion(datosaqui)" Generalmente no hace falta. Con lo que quedan 2 errores.
2393
« en: Domingo 24 de Agosto de 2008, 00:58 »
Usa RichTextBox. Aunque no entiendo esta frase tuya: soporte mas texto al echar a andar el sistema
2394
« en: Sábado 23 de Agosto de 2008, 02:59 »
Ah, bueno, entonces acerté de todas formas Venga, uno un pelín más difícil: modFunciones.bas: Private Function Factorial(X as Integer) As Integer Factorial = Factorial(X-1) End Function
modPrincipal.bas Private Sub Principal() Dim N As Variant N = Factorial(5) Debug.Print N End Sub
Bueno, hay 3 errores. 2 de lógica y uno de metodología. A ver quién da.
2395
« 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()
2396
« 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.
2397
« 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
« 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
« 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.
2400
« en: Viernes 22 de Agosto de 2008, 09:34 »
Sin ejecutarlo, te digo que 1) Te falta el LOOP al final del bucle Do While VolverAEmpezar = True CartaElegida = CStr(Rand(1, 5)) LOOP
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 CartaElegida = CStr(Rand(1, 5))
Páginas: 1 ... 94 95 [96] 97 98 ... 100
|
|
|