Pascal/Turbo Pascal - ayuda programa pascal...hecho un lio!! xd

 
Vista:

ayuda programa pascal...hecho un lio!! xd

Publicado por alex (1 intervención) el 29/12/2013 17:01:37
Hola a todos y buenas tardes,
soy estudiante de ingenieria de primer curso y nos han mandado ha hacer un programa del funcionamiento de una biblioteca en pascal, pensava que lo entedia pero no me salen los programas. (uso delphi7 que es obligatorio)
1)EL primero es uno que dados unos datos tipo tbiblioteca que ja he definido y un identificador me relacione este identificador con el usuario ya registrado y me diga su nombre, yo he hecho esto pero falla por algun sitio:

1.1 primer inserto los ususarios
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PROCEDURE pinsertarusuario (unusuario:tbiblioteca);
VAR
  ipos:tcontusuarios;
BEGIN
  //i:=1;
  //unusuario.Usuario.contUsuarios:=0 ;    provo de ferho amb contador
  ipos:=0;
  WHILE unusuaroi.Usuario.contUsuarois < usuariosMax DO
    Begin
      ipos:= ipos + 1;
      write('Nombre:'); Readln(unusuario.Usuario.usuarios[ipos].nom);
      write('Correo:'); Readln(unusuario.Usuari.usuarios[ipos].correu);
      write('Telefono:'); Readln(unusuario.Usuari.usuarios[ipos].telefon);
      write('identificador:');writeln(ipos);
      unusuario.Usuario.usuarios[ipos].identU:=ipos;
      //i:=i+1;
    end;
    unusuario.Usuario.contUsuarios:=ipos;
END;

esto funciona, despues el programa hecho para que me de el nombre es este, pero aunque se ejecuta no funciona bien ya que no me da ningun nombre

1.2 dar nombre

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FUNCTION fdarnombre (unabiblioteca:tbiblioteca ; unidentusuario:integer):tnombre;
VAR
i:tcontusuarios;
BEGIN
   i:=0;
   WHILE unidentusuario <> unabiblioteca.Usuario.usuarios[i].identU DO
    WHILE i < unabiblioteca.Usuari.contUsuaris DO
      begin
      i:=i+1;
      unabiblioteca.Usuario.contUsuarios:=i+1;
        IF unidentusuari = unabiblioteca.Usuario.usuarios[i].identU
          THEN  result:= unabiblioteca.Usuario.usuarios[i].nom
          ELSE  result:='NO RESULTS'
        ;
      end;
END;

MUCHAS GRACIAS DE ANTEMANO, ESPERO QUE ALGUIEN PUEDA AYUDARME
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda programa pascal...hecho un lio!! xd

Publicado por ramon (2158 intervenciones) el 30/12/2013 13:54:13
Disculpa pero esta zona es pascal estándar no delphi7 pero en pascal la asignación que se da a una funcion
como tu das tendría que ser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FUNCTION fdarnombre (unabiblioteca:tbiblioteca ; unidentusuario:integer):tnombre;
VAR
i:tcontusuarios;
BEGIN
i:=0;
WHILE unidentusuario <> unabiblioteca.Usuario.usuarios[i].identU DO
WHILE i < unabiblioteca.Usuari.contUsuaris DO
begin
i:=i+1;
unabiblioteca.Usuario.contUsuarios:=i+1;
IF unidentusuari = unabiblioteca.Usuario.usuarios[i].identU
THEN
     fdarnombre  := unabiblioteca.Usuario.usuarios[i].nom
ELSE
     fdarnombre :='NO RESULTS'
;
end;

y con ello te ofrecerá el nombre encontrado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar