Problema ejercicio pascal
Publicado por victor (10 intervenciones) el 26/06/2008 19:03:48
Hola en el código de abajo me falla el procedimiento busca_autor debería buscar en la tabla y si existe el autor listar los datos del libro. Sin embargo no logro que me salgan los datos completos si el autor existe ,solo logro repetir el autor. Gracias anticipadas.
Program galeria;
Const
tamcolection=3;
Type
tcuadro=record
numero:integer;
titulo:string[50];
autor:string;
precio:real;
end;
tcoleccion= array[1..tamcolection] of tcuadro;
Procedure lee_coleccion(var coleccion1:tcoleccion;tamcolection:integer);
Var
i:integer;
Begin
for i:= 1 to tamcolection do
Begin
writeln('Introduzca numero: ');
readln(coleccion1[i].numero);
writeln('Introduzca titulo: ');
readln(coleccion1[i].titulo);
writeln('Introduzca autor: ');
readln(coleccion1[i].autor);
writeln('Introduzca precio: ');
readln(coleccion1[i].precio);
writeln('------------------');
End;
end;
Procedure imprime_coleccion(coleccion1:tcoleccion;tamcolection:integer);
Var
i:integer;
begin
for i:= 1 to tamcolection do
Begin
writeln('Numero: ',coleccion1[i].numero);
writeln('Titulo: ',coleccion1[i].titulo);
writeln('Autor: ',coleccion1[i].autor);
writeln('Precio: ',coleccion1[i].precio:0:2);
writeln('-------------------------------');
end;
end;
Function suma_coleccion(coleccion1:tcoleccion;tamcolection:integer;var no_en_venta:real):real;
Var
i:integer;
suma:real;
begin
suma:=0;
for i:= 1 to tamcolection do
if coleccion1[i].precio=0 then
no_en_venta:=no_en_venta+1
else suma:=suma+coleccion1[i].precio;
suma_coleccion:=suma;
end;
Procedure busca_autor(var coleccion1:tcoleccion;tamcolection:integer;autor:string);
Var
i:integer;
begin
for i:= 1 to tamcolection do
if autor=coleccion1[i].autor then
writeln('autor encontrado',coleccion1[i].autor)
else
writeln('autor no encontrado');
end;
Var
suma1:real;
coleccion1:tcoleccion;
no_en_venta:real;
autor:string;
Begin
suma1:=0;
no_en_venta:=0;
writeln('> Datos de los cuadros: ');
lee_coleccion(coleccion1,tamcolection);
writeln;
writeln(' > Datos de los cuadros: ');
imprime_coleccion(coleccion1,tamcolection);
suma1:=suma_coleccion(coleccion1,tamcolection,no_en_venta);
writeln('La suma es: ', suma1:0:2);
writeln('> Y hay ',no_en_venta:0:0, ' cuadro no en venta');
writeln('Escriba el autor a buscar (0 para terminar:');
readln(autor);
busca_autor(coleccion1,tamcolection,autor);
end.
Program galeria;
Const
tamcolection=3;
Type
tcuadro=record
numero:integer;
titulo:string[50];
autor:string;
precio:real;
end;
tcoleccion= array[1..tamcolection] of tcuadro;
Procedure lee_coleccion(var coleccion1:tcoleccion;tamcolection:integer);
Var
i:integer;
Begin
for i:= 1 to tamcolection do
Begin
writeln('Introduzca numero: ');
readln(coleccion1[i].numero);
writeln('Introduzca titulo: ');
readln(coleccion1[i].titulo);
writeln('Introduzca autor: ');
readln(coleccion1[i].autor);
writeln('Introduzca precio: ');
readln(coleccion1[i].precio);
writeln('------------------');
End;
end;
Procedure imprime_coleccion(coleccion1:tcoleccion;tamcolection:integer);
Var
i:integer;
begin
for i:= 1 to tamcolection do
Begin
writeln('Numero: ',coleccion1[i].numero);
writeln('Titulo: ',coleccion1[i].titulo);
writeln('Autor: ',coleccion1[i].autor);
writeln('Precio: ',coleccion1[i].precio:0:2);
writeln('-------------------------------');
end;
end;
Function suma_coleccion(coleccion1:tcoleccion;tamcolection:integer;var no_en_venta:real):real;
Var
i:integer;
suma:real;
begin
suma:=0;
for i:= 1 to tamcolection do
if coleccion1[i].precio=0 then
no_en_venta:=no_en_venta+1
else suma:=suma+coleccion1[i].precio;
suma_coleccion:=suma;
end;
Procedure busca_autor(var coleccion1:tcoleccion;tamcolection:integer;autor:string);
Var
i:integer;
begin
for i:= 1 to tamcolection do
if autor=coleccion1[i].autor then
writeln('autor encontrado',coleccion1[i].autor)
else
writeln('autor no encontrado');
end;
Var
suma1:real;
coleccion1:tcoleccion;
no_en_venta:real;
autor:string;
Begin
suma1:=0;
no_en_venta:=0;
writeln('> Datos de los cuadros: ');
lee_coleccion(coleccion1,tamcolection);
writeln;
writeln(' > Datos de los cuadros: ');
imprime_coleccion(coleccion1,tamcolection);
suma1:=suma_coleccion(coleccion1,tamcolection,no_en_venta);
writeln('La suma es: ', suma1:0:2);
writeln('> Y hay ',no_en_venta:0:0, ' cuadro no en venta');
writeln('Escriba el autor a buscar (0 para terminar:');
readln(autor);
busca_autor(coleccion1,tamcolection,autor);
end.
Valora esta pregunta


0