Nos mudamos a www.laotragalaxia.es!!!
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Preguntas Práctica EDI

+2
Vienna
Pirata
6 participantes

Página 1 de 2. 1, 2  Siguiente

Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Pirata Vie Abr 04, 2008 5:12 pm

Una duda... En la función siguiente de la implementacion estática , hacemos que de error si se le pasa una posición mayor que Ltamano, pero si se le pasa la posición de L.tamano daría tambien error puesto que no hay siguiente...
No habría que poner en las condiciones que tendría que dar un error tanto si la lista esta vacía como si se le pide el siguiente del ultimo. Sería: "IF (p<1) OR (p>l.tam-1)" no?.
Bueno, no sé puede que esté confundido.
Pirata
Pirata
Merodeador
Merodeador

Cantidad de envíos : 22
Fecha de inscripción : 31/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Vienna Vie Abr 04, 2008 6:51 pm

Si..te estás liando un poco porque son cosas distintas.

Si la posicion es mayor que el tamaño devolverá un error debido a que accedes a una posicion de la lista que no existe ( no es que no tenga siguiente simplemente NO existe esa posicion en la lista).

Sin embargo..si la posicion es valida, pero p = L.tam.. entonces es cuando devuelves NULO..tal y como aparece en la especificacion de la practica.

Es decir deberas hacer un mensaje de error para posiciones que no esten en la lista, y devolver Nulo si la posicion ( valida ) no tiene siguiente

Vienna
Merodeador
Merodeador

Cantidad de envíos : 13
Fecha de inscripción : 31/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Vie Abr 04, 2008 6:53 pm

Recuerda que los apuntes que hay subidos son los de clase, no la practica. Estos son una base para realizar la práctica, por lo cual como dice Vienna, se debe devolver NULO, pero eso es algo que debes añadir tu a lo que dio el profesor en clase.

(función siguiente dada en clase)
Function siguiente (L:tLista; p:tPos) : tPos;
Begin
If (p<1) or (p>L.tamano) then error(‘posicion no valida’);
Siguiente := p + 1;
End;
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Pirata Vie Abr 04, 2008 7:48 pm

Vienna escribió:Si..te estás liando un poco porque son cosas distintas.

Si la posicion es mayor que el tamaño devolverá un error debido a que accedes a una posicion de la lista que no existe ( no es que no tenga siguiente simplemente NO existe esa posicion en la lista).

Sin embargo..si la posicion es valida, pero p = L.tam.. entonces es cuando devuelves NULO..tal y como aparece en la especificacion de la practica.

Es decir deberas hacer un mensaje de error para posiciones que no esten en la lista, y devolver Nulo si la posicion ( valida ) no tiene siguiente


Hm... Vale... Pues lo que me lió es que en en la función "anterior" si que miran que la posición sea mayor que 2 y no mayor que uno...
Pirata
Pirata
Merodeador
Merodeador

Cantidad de envíos : 22
Fecha de inscripción : 31/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Vie Abr 04, 2008 8:26 pm

Ok, pero lo que se comprueba en anterior:

Function anterior(L:tLista; p:tPos) : tPos;
Begin
If (p<2) or (p>L.tamano) then error(‘posicion no valida’);
P := p – 1;
End;

es que la posición no sea "menor que 2" o mayor que L.tamano;
ya que si le pasas el 1, este no tiene anterior, y si le pasas algo mayor que el tamaño estarias calculando el anterior de una posición no valida.

Si tienes alguna otra duda, no dudes en preguntarlo.

un saludo.
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Mar Abr 08, 2008 8:53 pm

Actualizado con nuevas implementaciones, y corregido un pequeño error en la dinámica
(faltaba una asignacion en el procedimiento borrar).Exclamation

Con esto creo que es suficiente para empezar la practica.

Pronto añadire las funciones para colocar los elementos ordenados

un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Pirata Vie Abr 11, 2008 7:05 pm

Hm... Una duda. Eso de NULO, es Tpos, nO?
Pero que valor hay que darle?
Y cuando se devuelve NULO se acaba el programa?
Pirata
Pirata
Merodeador
Merodeador

Cantidad de envíos : 22
Fecha de inscripción : 31/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Sáb Abr 12, 2008 11:11 am

Pirata escribió:Hm... Una duda. Eso de NULO, es Tpos, nO?
Pero que valor hay que darle?
Y cuando se devuelve NULO se acaba el programa?

Lo de NULO es una constante para referirse a una posicion (de tipo tPos) no válida, en el caso de la estática te valdria el valor '0', pues es una posición que no utilizas, en el caso de la dinámica utilizarias NIL, pues es el valor que se utiliza para representar una direccion de memoria 'nula' por asi decirlo.

A lo segundo, no estoy seguro, pero creo que no se debe acabar el programa, ya que por ejemplo, su tu llamas al operador anterior para pedir el anterior del primer elemento, el operador primero te debe devolver NULO, ya que este no poseed anterior. El que debe acabar el programa debe ser el operador que intente acceder a esa posición (obtenerdato, actualizarDato, etc..). Es decir, los operadores que devuelven NULO no deben finalizar el programa, los únicos que lo deben finalizarlo son aquellos que no puedan operar (que no cumplan las precondiciones, posición no valida, que la lista no este creada, etc.).

Un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Pirata Sáb Abr 12, 2008 8:21 pm

Gracias pero ya lo solucionara, pero bueno ahora hay nuevos problemas xD.
Voy a ver que hago... ejej


Una cosa... El procedimiento insertar en Lo de listas con cabecera me parece que lo tienes mal, porque inicias dos veces q, y P no lo igualas a L para ir recorriendo la lista hasta encontrar la posición en la que lo tienes que insertar.
Tenía yo mal ese procedure, pero viendo este, aún me lié mas xD.
Pirata
Pirata
Merodeador
Merodeador

Cantidad de envíos : 22
Fecha de inscripción : 31/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Sáb Abr 12, 2008 8:58 pm

Pirata escribió:
Una cosa... El procedimiento insertar en Lo de listas con cabecera me parece que lo tienes mal, porque inicias dos veces q, y P no lo igualas a L para ir recorriendo la lista hasta encontrar la posición en la que lo tienes que insertar.
Tenía yo mal ese procedure, pero viendo este, aún me lié mas xD.

Con respecto a lo de inicializar "q" dos veces, decir , que fue un error de trascripcion, por lo que deben suprimirse las dos primeras lineas.
Y respecto a lo de recorrer la lista para situar el dato en su sitio no esta, ya que en esta implementación solo se estan insertando al final, sin importar el orden, lo de buscar la posicion del dato lo pondré en breves.

Un saludo

PD: esto solo es una ayuda.
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Pirata Dom Abr 13, 2008 1:09 am

Administrador escribió:
Pirata escribió:
Una cosa... El procedimiento insertar en Lo de listas con cabecera me parece que lo tienes mal, porque inicias dos veces q, y P no lo igualas a L para ir recorriendo la lista hasta encontrar la posición en la que lo tienes que insertar.
Tenía yo mal ese procedure, pero viendo este, aún me lié mas xD.

Con respecto a lo de inicializar "q" dos veces, decir , que fue un error de trascripcion, por lo que deben suprimirse las dos primeras lineas.
Y respecto a lo de recorrer la lista para situar el dato en su sitio no esta, ya que en esta implementación solo se estan insertando al final, sin importar el orden, lo de buscar la posicion del dato lo pondré en breves.

Un saludo

PD: esto solo es una ayuda.

Ya bueno, estamos insertando solo al final, pero según me dijo a mi el profesor el procedimiento tendría que valer para todo, no solo para el caso nuestro en el que insertamos al fina.
Pirata
Pirata
Merodeador
Merodeador

Cantidad de envíos : 22
Fecha de inscripción : 31/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Dom Abr 13, 2008 1:03 pm

Si, no te lo discuto, a nosotros tambien nos lo dijeron. Lo que yo digo es que en este modelo aun no se puso lo de insertar ordenado, nada más. Como dije lo de insertar ordenado lo pondre pronto.

Si tengo tiempo lo subo hoy a la noche.

¿Que tal llevas la práctica?

un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por maxintaa Jue Abr 17, 2008 6:26 pm

hola, soy nuevo aqui, lo primero daros las gracias por el gran trabajo que haceis, que ami ya me habeis ayudado mucho...jeje
weno vamos al tema...que tengo preguntas para rato...!! jeje
lo primero decir que la unit d lista estatica ya la tngo toda akabada y corregida por el profesor...y la lista dinamica casi igual...(solo me falta la funcion obtener dato que tengo unas dudillas q le tngo que preguntar al profesor...

Bueno el tema es que queria empezar ya con el principal.pas pero...me surgen muchas dudas...la primera y mas esencial...que hay que hacer 2 archivos principales??uno para usar la lista estatica y otro para la lista dinamica?...xk con uno solo no sé para que se hacen las dos unit...ya que al final son las mismas funciones...

la siguiente ya es sobre la unit lista dinamica, el tipo Tpos, es un puntero...entonces para usar una funcion tipo ActualizaDato que recibe el tipo Tpos tengo que pasarle el Tpos siempre como una funcion que devuelva o un tpos??o hay alguna otra forma??...vamos sería esto.... ActualizaDato(Primero(Lista),Lista,'holaaa',L); (no se si me expliko bien...pero es dificil de explikar sorry)
lo que pregunto es si hay alguna otra forma de usar esa funcion sin tener que pasar el Tpos como la function Primero o kualkiera otra funcion q devuelve un tpos.

Bueno creo que esto por ahora es todo...perdón por el tostón que escribí, muchas gracias por adelantado y ya nos veremos mas por aki...jeje!!

maxintaa
Merodeador
Merodeador

Cantidad de envíos : 11
Fecha de inscripción : 17/04/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Jue Abr 17, 2008 7:19 pm

A lo primero decirte que solo hay que realizar un programa principal, pues como bien dices
...al final son las mismas funciones....
.

A lo segundo decirte que no hay ninguna otra forma de pasar una direccion de memoria, ya que tPos es de tipo puntero, y por lo tanto no puedes ponerselo "manualmente".

Lo que si puedes hacer es crear una variable de tipo tPos, e ir almacenando la posicion en ella, por ejemplo si quieres actualizar todas las butacas con un mismo nombre podrias hacer:

Var p : tPos;
Begin
p := Primero(Lista);
repeat
actualizaDato(p, Lista, 'nombre', 'estado');
p := siguiente(lista, p);
until (p = NIL);
End;

como puedes observar, lo que le pasas es la variable "p" que es de tipo tpos.

Espero haberte aclarado las cosas, de no ser asi, vuelve a preguntar, que no hay problema.

PD: Sobre la longitud de las pregutas no hay problema, mejor que sea larga y aclare la pregunta que corta y no aclare nada.

un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por maxintaa Jue Abr 17, 2008 7:49 pm

Administrador escribió:A lo primero decirte que solo hay que realizar un programa principal, pues como bien dices
...al final son las mismas funciones....
.

Muchasa gracias por contestar tan rapido...la segunda pregunta me kedó klara...jeje

pero la 1ª no...
haber son las mismas funciones...pero entoncs en el principal yo puedo usar indiferentemente las funciones de la lista estatica y de la lista dinamica como kiera....porque yo con la lista dinamica me manejo bastnte bien...con la lista dinamica me cuesta bastante más...
y entonces para que mandan hacer las dos listas??...es k no lo entiendo...

un saludo y gracias otra vez.

maxintaa
Merodeador
Merodeador

Cantidad de envíos : 11
Fecha de inscripción : 17/04/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Darkness Jue Abr 17, 2008 8:24 pm

Separo el tema para ponerlo en el Post abierto al público y que lo pueda leer más gente.

Por cierto maxintaa, bienvenido al foro Wink

Según tengo entendido el programa principal a de funcionar con las dos units, y el profesor lo unico que hace es cambiar uses "estatica" por "uses dinamica"

Un saludo
Darkness
Darkness
Administrador
Administrador

Cantidad de envíos : 81
Fecha de inscripción : 30/03/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Jue Abr 17, 2008 8:35 pm

maxintaa escribió:pero la 1ª no...
haber son las mismas funciones...pero entoncs en el principal yo puedo usar indiferentemente las funciones de la lista estatica y de la lista dinamica como kiera....porque yo con la lista dinamica me manejo bastnte bien...con la lista dinamica me cuesta bastante más...
y entonces para que mandan hacer las dos listas??...es k no lo entiendo...

Pues si, si que puedes utilizar los operadores indiferentemente de si estas usando la estatica o la dinamica, pues estos son los mismos (reciben lo mismo, devuelven lo mismo, etc), es decir, aunque su funcionamiento sea diferente, realizan lo mismo.

Mandan hacer las dos para que veamos, y probemos (o lo que ellos kieran que hagamos,) que indiferentemente de la implementacion que hagamos del tipo lista, el programa principal va a funcionar igual, es decir, que va a responder de la misma forma trabaje con una u otra implementacion.

La causa es que utilizando unos operadores definidos , de los cuales solo sabemos que es lo que reciben y lo que devuelven, y no como estan implemetados, podamos realizar un programa que funcione perfectamente, sin darnos problemas; para lo cual solo debemos intentar utilizar los operadores ya predefinidos (insertar, borrar, buscar, etc) y no crear otros que trabajen con la lista.

En conclusion: Saber utilizar un tipo de dato solo conociendo sus operadores y sin saber como esta implementado.

un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por maxintaa Jue Abr 17, 2008 10:28 pm

ok muchas gracias ahora ya lo he entendido...pues la unit de la lista dinamica casi que no la voy a usar jejeje

weno si tengo alguna duda ya la postearé...y si veo q soy capaz d resolver alguna q veo por aí pues tambien la intentaré resolver...(aunq no kreo xk yo pa esto soy muy patan)
enga un saludo.

Pd---aki desaparecen la ostia d mnsajes... Suspect Suspect Suspect

maxintaa
Merodeador
Merodeador

Cantidad de envíos : 11
Fecha de inscripción : 17/04/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Jue Abr 17, 2008 11:44 pm

maxintaa escribió:ok muchas gracias ahora ya lo he entendido...pues la unit de la lista dinamica casi que no la voy a usar jejeje
Creo que me has entendido mal. Pq lo que te quise decir es que mandan hacer las dos para lo ya dicho. Pero ademas es obligatorio entregar las dos units, tanto la estatica, como la dinamica.

Un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por maxintaa Mar Abr 22, 2008 3:01 pm

hola otra vez, perdón por ser tan pesado, pero es que quiero tener acabada la practica cuanto antes y hay un montón de cosas que ni entiendo ni soy capaz de hacer, bueno aqui va mi preguntilla....
¿como se haría para hacer la funcion de hacer una reserva...?es decir ir ocupando las posiciones de la lista según el numero que aparece en el archivo operaciones con el nombre de la persona que hace la reserva y con el estado de reserva....

ya tengo akabadas la lista dinamica y la estatica, y ya tengo creada la lista según el fichero platea.

Bueno si no entendeis algo de la pregunta preguntar q yo soy muy malo explikandome.jeje

Un saludo y gracias por adelantado.

maxintaa
Merodeador
Merodeador

Cantidad de envíos : 11
Fecha de inscripción : 17/04/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Mar Abr 22, 2008 9:03 pm

Pues lo primero que deberias hacer es buscar si hay o no reserva a nombre del espectador que recibas del fichero operaciones, esto lo harias con la funcion "Buscar" la cual te devuelve una posicion válida en caso de encontrarlo o NULO en caso contrario. Una vez echo esto en caso de no haber reserva hay que reservar tantas butacas como reciba del fichero operaciones.

Para ello, lo primero que debemos hacer es buscar la primera butaca libre, eso lo podrias hacer con un bucle (while ...EstadoButaca <> libre) do ... y teniendo cuidado de no pasarte del final de la lista.

Una vez encontrada la primera butaca libre, si es que las hay, tienes que ir avanzando hasta encontrar el numero de butacas deseadas, teniendo en cuenta que tienen que ser correlativas. Para ello podrias almacenar la primera posicion encontrada, y segun avanzas y encuentras butacas libres vas guardando la ultima posicion, llevando siempre la cuenta de las butacas que encontraste.

Sin olvidar que si encuentras una butaca ocupada antes de encontrar el numero suficiente de butacas libres tienes que volver a empezar a contar, pues como ya dije, tienen que ser correlativas.

En conclusion, mirar si hay o no reserva del espectador, y luego una vez encontrada la primera butaca libre almacenarla, despues ir avanzando y contando las butacas libres consecutivas que enontramos hasta que sean suficientes y sin salirse de la lista, al mismo tiempo que vamos guardando la posicion de la ultima butaca libre encontrada, y todo esto teniendo en cuenta que por ejemplo : si queremos 10 butacas y ya llevamos contadas 9 libres si la siguiente que encontramos esta reservada o no es correlativa, debemos empezar a contar de nuevo desde la primera butaca libre, es decir, volvemos a buscar la primera butaca libre a partir de esta posicion, lo que conlleva iniciar el contador de butacas libres asi como la posicion de la primera y ultima butaca libres encontradas.

Espero no haberte liado.

un saludo
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por maxintaa Mar Abr 22, 2008 10:11 pm

Administrador escribió:
Una vez encontrada la primera butaca libre, si es que las hay, tienes que ir avanzando hasta encontrar el numero de butacas deseadas, teniendo en cuenta que tienen que ser correlativas. Para ello podrias almacenar la primera posicion encontrada, y segun avanzas y encuentras butacas libres vas guardando la ultima posicion, llevando siempre la cuenta de las butacas que encontraste.

Sin olvidar que si encuentras una butaca ocupada antes de encontrar el numero suficiente de butacas libres tienes que volver a empezar a contar, pues como ya dije, tienen que ser correlativas.

Joer muchas graciasa por semejante explikacion...ya tengo muchisimas cosas mas klaras, pero aun sigo teniendo alguna duda...(sorry soy bastante negado).

la duda así mas grande que me viene ahora es la siguiente, como voy modificando(para reservar) en la lista (cuando ya tengo buscado las butacas libres) y mentiendo en cada posicion segun la cantidad de butacas reservadas.

es decir como actualizo los datos, para reservar segun el numero que sea la reserval.

Un saludo y muchas gracias otra vez.

maxintaa
Merodeador
Merodeador

Cantidad de envíos : 11
Fecha de inscripción : 17/04/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Mar Abr 22, 2008 11:05 pm

pues como te dije, creas una variable para almacenar la primera butaca libre encontrada (de las suficientes para atender la operacion) y otra que almacene la ultima de las suficientes. Como sabes cuando son suficientes, pues usando un contador como ya te dije.

bien, ahora una vez encontradas lo que debemos hacer es recorrer la lista desde la primera butaca libre (la que almacenamos en la variable) hasta la ultima encontrada (tambien almacenada) y actualizando los campos.

espero este resuelta la duda, sino vuelve a preguntar que para eso estamos

un saludo.
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por maxintaa Miér Abr 23, 2008 7:43 pm

Administrador escribió:pues como te dije, creas una variable para almacenar la primera butaca libre encontrada (de las suficientes para atender la operacion) y otra que almacene la ultima de las suficientes. Como sabes cuando son suficientes, pues usando un contador como ya te dije.

bien, ahora una vez encontradas lo que debemos hacer es recorrer la lista desde la primera butaca libre (la que almacenamos en la variable) hasta la ultima encontrada (tambien almacenada) y actualizando los campos.

espero este resuelta la duda, sino vuelve a preguntar que para eso estamos

un saludo.

Pues lo siento pero alguna cosas no las entiendo...haber yo tengo esto:
Código:
if operacion='R' then begin  {elije la operacion Reservar}
  if Buscar(Lista, persona)<>nulo then writeln('Error en Reserva: Ya existe una reserva de ',persona) {Mira haber si hay alguna persona que ya realizó la reserva}
      else begin
        while ObtenerDato(Lista,i).Estadobutaca<>L do begin {Y AQUI ESTÁ MI PROBLEMA QUE NO SE COMO SEGUIR}
                i:=Siguiente(i,Lista);

Haber el while lo que hace es salirse cuando encuentra una butaca en estado que no sea libre....vale pero ahora como hago el resto?como haria lo de los contadores?
Un saludo y gracias otra vez.

maxintaa
Merodeador
Merodeador

Cantidad de envíos : 11
Fecha de inscripción : 17/04/2008

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Administrador Miér Abr 23, 2008 11:57 pm

Código:
 
{comprobamos que no haiga reserva del espectador}

{si no hay reserva}
        Begin
          {inicializas todas las variables a utilizar : primera butaca libre, ultima butaca libre, posicion auxiliar y butacas libres encontradas}
          REPEAT
                {mientras la posicion sea valida y el estado de la butaca sea diferente de libre, pasamos a la siguiente butaca}
              {cuando salgamos del bucle la posicion en la que estamos o es la primera butaca libre o una posicion nula, por lo que en caso de darse el primero reasignamos las variables}
                primera butaca libre := posicion auxiliar;
                ultima butaca libre := posicion auxiliar;
                {si acabamos la lista las butacas libres son cero, en caso contrario 1}
               
                {si no llegamos al final de la lista, pasamos a la siguiente butaca, pues la primera ya la encontramos}           
               
              {mientras la posicion sea valida, la cantidad de butacas libres sea inferior a las que queremos y el estado de la butaca sea libre}
                  {
                        ultima posicion libre := posicon auxiliar;
                        libres := libres + 1;
                        posicion auxiliar  := siguiente;
                    }

            UNTIL ((libres = cantidad deseada) or (se acaba la lista));
         
            {si tenemos un numero de butacas suficientes procedemos a la reserva desde la primera posicion libre hasta la ultima posicion libre, en caso contrario no hacemos nada}
         

Aqui os dejo un pseudocodigo comprobado para la funcion reservar.


P.D: faltan casos como que la lista este vacia, que las butacas sean consecutivas, etc...
P.D2: El que no lo entienda, pues no lo puedo poner mas claro, bueno, si, poniendo el codigo pero eso no creo que vaya a suceder.
Administrador
Administrador
Administrador
Administrador

Cantidad de envíos : 90
Fecha de inscripción : 29/03/2008

http://www.laotragalaxia.es

Volver arriba Ir abajo

Preguntas Práctica EDI Empty Re: Preguntas Práctica EDI

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Página 1 de 2. 1, 2  Siguiente

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.