• Domingo 22 de Diciembre de 2024, 16:54

Autor Tema:  Problema con codigo en pascal :S:S....  (Leído 1239 veces)

maxinitto

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema con codigo en pascal :S:S....
« en: Viernes 3 de Abril de 2009, 22:00 »
0
Pues bueno resulta que tengo que hacer un programa en pascal, os pongo de que trata el programa

El programa deberá permitir gestionar su biblioteca particular. Si desea, y tras consultarlo con su tutor, podría modificar este programa para gestionar su colección de compactos (CD's), o de discos, o..

El programa deberá almacenar la información de cada libro:

    * Título
    * Autor
    * Tema
    * Precio
    * Prestado:
          o nombre de la persona a la que ha prestado un libro.
          o dirección de correo electrónico
          o fecha del préstamo

Las operaciones sobre su biblioteca serán:

    * dar de alta
    * dar de baja
    * introducir datos de un préstamo
    * modificar datos
    * presentar listados de su biblioteca:
          o listado de todos los libros
          o listado de los libros prestados
          o listado con precios máximos, mínimos, la media y el valor total de su colección.

Será necesario usar un fichero para almacenar los datos de su colección.

Tengo todo esto creado pero me da multiples errores alguien me lo puede  corregir? tendria que enviarselo a mi tutor y me quedan muy pocos dias de plazo y me harian un grandisimo favor abajo pongo el codigo...

    Program Gestion_biblioteca;
    const
            TAMCOLECCION=10;
    type
            Tbiblioteca= record
                         titulo: string;
                         autor: string;
                         tema: string;
                         precio: integer;
                         nombre: string;
                         correo_electronico: string;
                         fecha: string;
            end;
            Tcoleccion= array[1..TAMCOLECCION] of Tbiblioteca;
            Tfichero= file of Tbiblioteca;
    var
            coleccion1: Tcoleccion;
            libros: string;
            opc: integer;

    Procedure lee_biblioteca(var biblioteca: Tcoleccion; var tam:Integer);
    begin
              inc(tam);
    if ( tam > TAMCOLECCION )Then
    Begin
    WriteLn('Ha llegado al limite de almacenamiento.');
    End
    Else
    Begin
    writeln('Introduzca titulo: ');
    readln(biblioteca
[tam].titulo);
writeln('Introduzca autor: ');
readln(biblioteca[tam].autor);
writeln('Introduzca tema: ');
readln(biblioteca[tam].tema);
writeln('Introduzca precio: ');
readln(biblioteca[tam].precio);
biblioteca[tam].nombre:='';
biblioteca[tam].correo_electronico := '';
biblioteca[tam].fecha := '';
End;
End;

Procedure prestar(var biblioteca:Tbiblioteca);
Begin
WriteLn('Prestando LIBRO:');
writeln('Titulo: ', biblioteca.titulo);
writeln('Autor: ', biblioteca.autor);
writeln('Tema: ', biblioteca.tema);
writeln('Precio: ', biblioteca.precio);
write('Nombre de la persona: ');
readLn(biblioteca.nombre);
write('correo electronico de la persona: ');
readln(biblioteca.correo_electronico);
write('Fecha: ');
readln(biblioteca.fecha);
End;

Procedure ModificarLibro(var biblioteca:Tbiblioteca);
Begin
writeln('Valores actuales');
writeln();
writeln('Titulo: ', biblioteca.titulo);
writeln('Autor: ', biblioteca.autor);
writeln('Tema: ', biblioteca.tema);
writeln('Precio: ', biblioteca.precio);
writeln('Nombre de la persona: ', biblioteca.nombre);
writeln('correo electronico de la persona: ', biblioteca.correo_electronico);
writeln('la fecha del prestamo: ', biblioteca.fecha);
writeln('---------------');
writeln();
writeln('Ingrese los nuevos valores');
writeln();
writeln('Introduzca titulo: ');
readln(biblioteca.titulo);
writeln('Introduzca autor: ');
readln(biblioteca.autor);
writeln('Introduzca tema: ');
readln(biblioteca.tema);
writeln('Introduzca precio: ');
readln(biblioteca.precio);
writeln('Introduzca nombre de la persona: ');
readln(biblioteca.nombre);
writeln('Introduzca correo electronico de la persona: ');
readln(biblioteca.correo_electronico);
writeln('Introduzca la fecha del prestamo: ');
readln(biblioteca.fecha);
End;

Procedure imprime_biblioteca(var biblioteca: Tbiblioteca);
begin
writeln('Titulo: ', biblioteca.titulo);
writeln('Autor: ', biblioteca.autor);
writeln('Tema: ', biblioteca.tema);
writeln('Precio: ', biblioteca.precio);
if (biblioteca.nombre <> '')Then
Begin
writeln('Nombre de la persona: ', biblioteca.nombre);
writeln('correo electronico de la persona: ', biblioteca.correo_electronico);
writeln('la fecha del prestamo: ', biblioteca.fecha);
End;
writeln('---------------');
end;

Procedure listado(var coleccion: Tcoleccion;tam: integer; prestados:boolean);
var
i: integer;
begin
for i:= 1 to tam do
if (prestados)then
if (coleccion.nombre <> '')then
imprime_biblioteca(coleccion)
else
else
imprime_biblioteca(coleccion)
end;

procedure estadistica(coleccion: Tcoleccion;tam: integer);
Var
          i:Integer;
          max, min, total:Real;
Begin
          max:=coleccion[1].precio;
          min:=max;
          total:=0;
for i:=1 to tam do
Begin
if ( coleccion.precio > max ) then
max:=coleccion.precio;
if ( coleccion.precio < min ) then
min:=coleccion.precio;
total:=total + coleccion.precio;
End;
WriteLn('Valores estadisticos:');
WriteLn('El mayor valor es de : ' , max:5:2);
WriteLn('El menor valor es de : ' , min:5:2);
WriteLn('El valor medio es de : ' , (total / tam):5:2);
WriteLn('El valor total de la coleccion es de : ' , total:5:2);
End;

Procedure lee_coleccion(var coleccion: Tcoleccion;tam: integer);
var
          i: integer;
begin
for i:= 1 to 3 do
lee_biblioteca(coleccion);
end;

Procedure imprime_coleccion(var coleccion: Tcoleccion;tam: integer);
var
          i: integer;
begin
for i:= 1 to 3 do
imprime_biblioteca(coleccion);
end;
Procedure lee_fichero (libros: string;coleccion: Tcoleccion;tam: integer);
var
          i: integer;
          fichero: Tfichero;
begin
i:= 0;
assign(fichero, 'libros.txt');
reset(fichero);
while ( not(eof(fichero)) AND (i<tam) ) do begin
i := i+1;
read(fichero, coleccion1);
end;
close(fichero);
end;
Procedure graba_fichero (libros: string;coleccion: Tcoleccion;tam: integer);
var
i: integer;
fichero: Tfichero;
begin
assign(fichero, 'libros.txt');
rewrite(fichero);
for i:= 1 to tam do
write(fichero, coleccion1);
close(fichero);
end;
Function Menu: Integer;
Var
opc: integer;
Begin
repeat
writeln('Centro de control de prestamos');
writeln('-----------------------------------------');
writeln;
writeln(' 1. Lectura de datos por teclado y guardar la tabla en un fichero');
writeln(' 2. Dar de alta un prestamo y guardar la tabla en un fichero');
writeln(' 3. Dar de baja un prestamo y guardar la tabla en un fichero');
writeln(' 4. Introducir un nuevo prestamo y guardar la tabla en un fichero');
writeln(' 5. modificar datos de un prestamo y guardar la tabla en un fichero');
writeln(' 6. Guardar en un fichero');
writeln(' 7. Presentacion de los datos de la tabla leida del fichero');
writeln(' 8. Salir del programa');
readln(opc);
until (((opc>=1) and (opc <=7)) or (opc=8));
Menu := opc;
End;
begin
repeat
opc := Menu;
case opc of
1: begin
writeln('>Datos de la coleccion de libros');
lee_coleccion(coleccion1, TAMCOLECCION);
write('Introduca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,TAMCOLECCION);
end;
2: begin
writeln('-----Prestamo a dar de alta----' );
writeln('Introduzca titulo: ');
readln(biblioteca.titulo);
writeln('Introduzca autor: ');
readln(biblioteca.autor);
writeln('Introduzca tema: ');
readln(biblioteca.tema);
writeln('Introduzca precio: ');
readln(biblioteca.precio);
writeln('Introduzca nombre de la persona: ');
readln(biblioteca.nombre);
writeln('Introduzca correo electronico de la persona: ');
readln(biblioteca.correo_electronico);
writeln('Introduzca la fecha del prestamo: ');
readln(biblioteca.fecha);
write('Introduca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,TAMCOLECCION);
end;
3:begin
erase(
write('Introduca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,TAMCOLECCION);
end;
7: begin
lee_fichero('libros.txt',coleccion1,TAMCOLECCION);
writeln('>Datos de la coleccon de libros');
imprime_coleccion(coleccion1, TAMCOLECCION);
end;
end;
until (opc=8);


end.
[/list]

eternity

  • Miembro activo
  • **
  • Mensajes: 78
  • Nacionalidad: ar
    • Ver Perfil
    • http://lameriendadejuan.blogspot.com/
Re: Problema con codigo en pascal :S:S....
« Respuesta #1 en: Viernes 10 de Abril de 2009, 20:43 »
0
pon el codigo con etiquetas de codigo... y tabulealo bien!