FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Muchas gracias droguerman. A ver si me voy enterando.
Quieres decir que en el case en lugar de poner la opcion entre comillas: '1': Leer_datos; '2': Modificar_datos; '3': Puntualidad; '4': Porcentaje; la, he de poner sin? Es la unica diferencia que veo. Por otro lado, justo antes del case of: if (op>=0) and (op<=4) then else writeln('La opción no es correcta, escoja otra opcion.'); (*else lo he puesto como: si no es ni 0,1,2,3 o 4 , opción incorrecta. No se si esto está bién así*) esto que he puesto, no funciona correctamente. Cuando escojo una opcion que no sea 0, me vuelve a repetir el case, y cuando es 0 me dice que la opcion no es correcta, y el programa tampoco se cierra. Muchas gracias por la explicación. Agradeceria todo lo que me podáis explicar. Esta tarde cuando vuelva de trabajar continuaré intentando programar. Alguna idea para el tercer y cuarto apartado? |
#2
|
||||
|
||||
estas poniendo un if sin acción mejor quedaria haciendo esto
__________________
self.free; |
#3
|
||||
|
||||
Vale ya me he puesto manos a la obra y he conseguido que funcione el Case of. Solo me funciona con la opcion 0 (salir) o si le doy a una opcion que no está entre 0 y 4 ( esto es lo siguiente que preguntaba, ahora ya funciona).
Lo que pasa ahora es que cuando le doy a la opcion 1 ( la unica que tengo de momento) no hace nada , ni puedo volver al menu ni cerrar el programa. A ver si alguien me ayuda . Pongo el codigo tal cual lo tengo ahora:
y estos son los mensajes de error en las lineas que he marcado como fallo. [Warning] Algoprueba3.dpr(46): FOR-Loop variable 'j' may be undefined after loop [Warning] Algoprueba3.dpr(73): Variable 'nvuelos' might not have been initialized Muchas a todos por vuestra colaboración. No se si será que le faltan variables de entrada y/o salida al procedure. Última edición por Nanaky fecha: 01-06-2007 a las 20:47:56. |
#4
|
||||
|
||||
Si has visto, he cambiado lo que has dicho, para no poner un if sin ninguna orden, y ahora funciona, porque vuelve al menu de opciones pero no da el mensaje:La opcion no es correcta, escoja otra opcion.
lo he probado con y sin begin/end; y con y sin continue. edito: Ya se que pasaba, he dejado el AND que habia antes y por eso no iba. Lo he cambiado por un OR y va correctamente. Así queda más optimizado, gracias. A ver si me ayudáis a continuar. Última edición por Nanaky fecha: 01-06-2007 a las 20:45:51. |
#5
|
||||
|
||||
Vamos por partes y despacito.
El contrario de esto: no es esto: es esto:
Sigamos, aqui lo unico que haces es mandar escribir la misma frase varias veces: Si quieres meter mas de una instruccion dentro de un bucle vas a tener que usar begin/end
Y todavía sigo sin entender porque le pasas el parámetro nvuelos al procedure, si lo primero que haces en el procedure es leer su valor por teclado |
#6
|
||||
|
||||
Vale ya he arreglado lo del IF y también he hecho un bucle dentro de
for j:=1 to nvuelos do para todas las instrucciones. Ole, ya he conseguido que me pida las opciones, por haberle quitado el read (nvuelos) como decias, Y como yo quería determinar el nvuelos lo he puesto antes del bucle. ahora funciona las veces que yo le diga. Pongo de nuevo el codigo tal cual lo tengo ahora, porque ahora tengo que hacer el siguiente subprograma que es modificar los datos.
Muchas gracias por todo. A partir de media noche seguiré dándole vueltas al tema a ver como puedo hacer para modificar los datos según el codigo de vuelo, la cual es la opción 2. Espero vuestras sugerencias e ideas para el subprograma: modificar!! P.D. Aunque funciona correctamente, me dice que es posible que la variable nvuelos no se inicialice, como puedo depurar este error? |
#7
|
||||
|
||||
Cita:
y todavía no le has asignado ningún valor. Además como ya te dije antes, no entiendo porque le pasas la variable si luego no la usas dentro del procedure. Si lo que intentas es utilizar el valor de nvuelos fuera del procedure, le tienes que poner "var" delante del nombre en la definición del procedure. Es decir:
|
#8
|
|||
|
|||
Hola, claro que manda ese mensaje, ya que nvuelos, lo pasas como parámetro al procedimiento leer_datos, pero nvuelos no tiene un valor asignado, en todo caso no es necesario que pases ese parámetro nvuelos, ya que lo tienes como variable global y lo usas tu procedimiento
saludos.
__________________
"La información tiene más valor cuando se comparte" |
#9
|
||||
|
||||
Pero he probado de quitarlo del procedure y no funciona.
También lo he quitado de las variables globales y no funciona. Solo funciona si están los dos a la vez . Eso quiere decir que algo no está bien. A ver si alguien puede comprobar que con una sola funcionaria. He empezado a escribir el siguiente ejercicio, el de modificar los datos. Para empezar he puesto para que muestre un listado con las referencias de los vuelos. Pero hay un problema, parece ser que solo me guarda una entrada , mas concretamente la que he entrado en segundo lugar( de 3 entradas, no he metido mas). Pongo aqui como lo llevo. La parte de modificar no la he empezado porque además de que no se como hacerla, me ha frenado lo que acabo de explicar.
P.D. Sé que no está bien lo de las variables en los procedures, pero prefiero seguir avanzando si funciona, e intentar arreglar eso al final, que si no se me va a hechar el tiempo encima. Muchas gracias por la ayuda que me estáis dando. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Alguien me ayuda con la busqueda? | sergiotur | Tablas planas | 3 | 06-03-2007 20:52:34 |
Venganza... alguien me ayuda? | cirilungol | Varios | 18 | 10-02-2006 16:44:18 |
ALGUIEN ME AYUDA CON EDBEngineError | ronson | Conexión con bases de datos | 10 | 17-02-2004 20:41:14 |
Alguien sabe como programar puertos paralelos con delphi 4 | Ninfa | Varios | 2 | 27-08-2003 00:56:16 |
ayuda en programar dispositivos | mdsketchboog | Varios | 2 | 05-06-2003 09:45:43 |
|