CientoSeis

Comunidad CientoSeis => Tecnología => Mensaje iniciado por: rosso27 en 13 de Noviembre de 2010, 22:36

Título: programando agenda en pascal
Publicado por: rosso27 en 13 de Noviembre de 2010, 22:36
Hola a todos:
     tengo un problemilla,estoy haciendo una agenda en codigos pascal,nesecito hacer que haga varias cosas,como guardar,leer,imprimir,listar,borrar, y solo tengo lo de guardar,nesecito a alguien caricativo que me eche una mano,adjunto lo que llevo hecho hasta ahora espero que me ayudeis.




Sorry but you are not allowed to view spoiler contents.
Título: Re: programando agenda en pascal
Publicado por: raul_isl en 13 de Noviembre de 2010, 22:37
 :lol:

Mi cuñao es manco, perdonarle.
Título: Re: programando agenda en pascal
Publicado por: Wind_Master en 13 de Noviembre de 2010, 22:42
Hola:
Título: Re: programando agenda en pascal
Publicado por: Bill en 13 de Noviembre de 2010, 22:47
Cita de: raul_isl en 13 de Noviembre de 2010, 22:37
:lol:

Mi cuñao es manco, perdonarle.

Si realmente es tu cuñado o amigo, le ayudo... tengo casi 20 años de experiencia en pascal. Si va de coña, le pueden dar mucho por ahí :gñe:
Título: Re: programando agenda en pascal
Publicado por: raul_isl en 13 de Noviembre de 2010, 22:49
Es realmente mi cuñao, y su duda es realmente real.
Título: Re: programando agenda en pascal
Publicado por: Bill en 13 de Noviembre de 2010, 22:51
Ok. Necesito saber el compilador que usas. No es lo mismo usar turbo pascal que lazarus... También necesitaría saber qué funciones habéis dado para trabajar con ficheros, no vaya a ser que meta la pata y lo haga con métodos que no habéis dado.
Título: Re: programando agenda en pascal
Publicado por: raul_isl en 13 de Noviembre de 2010, 22:52
A mi no me mires, yo vivo en las palmas, y el en lanzarote :lol:
El esta haciendo un curso en nose donde de noseque. Ahora le digo que te responda a todo eso.
Título: Re: programando agenda en pascal
Publicado por: Bill en 13 de Noviembre de 2010, 22:54
Se lo preguntaba a él, coño  :lol:

También necesito saber si habéis dado la definición de TAD (Tipo Abstracto de Dato) para ver si la estructura de la agenda hay que mejorarla, y si habéis dado unidades, para partir la funcionalidad del código en diferentes ficheros. Y esas cosas.

Coño raul, te traes a toda la familia a solucionar las dudas al foro  :lol:
Título: Re: programando agenda en pascal
Publicado por: raul_isl en 13 de Noviembre de 2010, 22:55
Las que no puedo solucionar si, es que sois gente muy sabia :lol:
Y me daba palo que te molestaran otra vez por mp :$
Título: Re: programando agenda en pascal
Publicado por: rosso27 en 13 de Noviembre de 2010, 23:00
lo siento,estoy haciendo lo mas basico,yo lo recopilo en un programa llamado pascal ide,perdona si no era la respuesta que qeurias pero es quehe empezado hace dos semanas ha hacer programitas.
Título: Re: programando agenda en pascal
Publicado por: Bill en 13 de Noviembre de 2010, 23:05
Bueno, IDE significa Integrated Developement Enviroment... Vamos a ver cual te suena más de los siguientes:

- Turbo Pascal
- Dev-Pascal
- Lazarus
- Free Pascal

En serio necesito saberlo... O si no, pásame el link de dónde te lo has descargado, o cualquier referencia que tengas en apuntes o lo que sea. Aunque sea comprimes tu directorio de pascal y me lo mandas.
Título: Re: programando agenda en pascal
Publicado por: rosso27 en 13 de Noviembre de 2010, 23:09
free pascal
Título: Re: programando agenda en pascal
Publicado por: Bill en 13 de Noviembre de 2010, 23:13
Ok. Mañana te subo una versión mejorada de lo tuyo, con algún comentario puesto que veo que no tienes, y con alguna funcionalidad más. Si tuvieses el enunciado de la práctica sería mejor. Pero ya te digo que mañana, que hoy ya es tarde para programar, y mañana lo tengo libre. Si eso que te avise raul_isl en cuanto esté, así no tienes que andar mirando el foro.
Título: Re: programando agenda en pascal
Publicado por: rosso27 en 13 de Noviembre de 2010, 23:16
ok gracias mañana te doy el enunciado del ejercicio ok gracias por todo.
Título: Re: programando agenda en pascal
Publicado por: Bill en 13 de Noviembre de 2010, 23:35
Me he topado con muchos problemas de compilación de tu proyecto.

Citarprogram miagenda;
uses crt;
const
   max=3;
   L=50;
type
      cadena=string[L];
      tipo_persona=record;
         nombre:cadena;
         tlf:string[9];
      end;
      tipo_agenda=array[1..max] of tipo_persona;
var
   
      agenda:tipo_agenda;
      nombre:cadena;
      i:integer;
      cont:integer;
      j:integer;
      op:char;
      {nombre:string[50];}
function esta(n:cadena;a:tipo_agenda;i:integer):integer;
var
   j:integer;
begin   
   if i=0 then
esta:=-1   
      write('la agenda esta llena')
   else
   begin
         for j:=1 to i do
            esta:=j
         else
            esta:=-1;
      begin
         j:=0;
      repeat
         j:=j+1;
      until (a[j].nombre=n) or (j>i);
         if j>i then
            esta:=-1
         else
            esta:=j;
      end;
      write('');
      readln(p);
      readln(tlf);
      a[i+1]:=p;
   end;
   
end;   


procedure agregar(n:cadena;var a:tipo_agenda;var i:integer);
var
   p:tipo_persona;
begin
      if i>=max then
         wirteln('la agenda esta completa')
      else
         begin
            p:nombre:=n;
            writeln('introduzca el telefono');
            readln(p.tlf);
            a[i+1]:=p;
            i:=i+1;
         end;
end;     
begin
         cont:=0;
         repeat
            clrscr;
            writeln('A añadir');
            writeln('B borrar');
            writeln('L listar');
            writeln('G guardar');
            writeln('esc salir');
            writeln;
            op:=upcase(readkey);
            if op<>#27 then
            begin
               case op of
                  'A':
                     begin
                        writeln('introduzca un nombre');
                        readln(nombre);
                        if esta(nombre,agenda,cont)=-1 then
                        begin
                           agregar(cont,agenda,nombre);
                           cont:=cont+1;
                           writeln('pulse una tecla para continuar');
                        end
                        else
                           begin
                              write('ya esta guardado en la memoria');
                              repeat until keypressed;
                           end;
                     end;
                  'B':write('borrar');
                  'L':write('listar');
                  'G':write('guardar');
                  else write('error porfavor elija una accion correcta');
               end;
            end;
         until op=#27;
end.

El primero: estás declarando un tipo record, no puede ir un punto y coma detrás de la palabra reservada.
El segundo: estás en un if, con lo cual para poder utilizar dos líneas de instrucciones debes declarar el begin y el end, y además te falta el punto y coma.
El tercero: usas un for, pero tiene un else... no sé lo que pretendías hacer ahí, por ahora solamente estoy echando un vistazo.
El cuarto: no has declarado la variable p. Creo que querías leer un tipo_persona directamente... es un registro, hay que leer los campos y escribirlos, no puedes leer a cholón.
El quinto: tampoco has declarado la variable tlf.

Y más que habrá, por ahora son los que he visto.
Título: Re: programando agenda en pascal
Publicado por: Bill en 14 de Noviembre de 2010, 01:53
Done. Tienes MP.
EhPortal 1.39.2 © 2025, WebDev