Algo falla
Publicado por Ignacio (12 intervenciones) el 30/12/2007 14:08:48
Buenos días. He construido el siguiente programa:
Program Almacen;
Uses
CRT;
Type
TpProducto=Record
Identificador:string;
Precio:real;
NumCaj:integer;
End
TpAlmacen=Record
Almacen:array[1..25]of TpProducto;
n:integer;
End;
{Con este procedimiento calculamos una letra aleatoria}
Procedure LetraAleatoria(Var let:string);
Var
i:integer;
Begin
let:='';
Randomize;
For i:=1 to 2 do
let:=let+chr(random(5)+65);
writeln(let);
End;
{Con este procedimiento calculamos un precio aleatorio}
Procedure PrecioAleatorio(Var num:real);
Var
ent,dec:integer;
Begin
Randomize;
ent:=random(3000);
dec:=random(100);
num:=ent+(dec / 100);
writeln(num:7:2);
End;
{Con este procedimiento lo que hago es mostrar los datos que tengo guardados en el vector}
Procedure Mostrar(Var I:TpAlmacen);
Var
k:integer;
Begin
writeln('Mostrar datos')
writeln;
For k:=1 to I.n do
Begin
writeln(I.Almacen[k].Identificador);
writeln(I.Almacen[k].Precio);
End;
End;
{Algoritmo principal}
Var
Caj:integer;
letra:string;
numero:real;
j:integer;
invt:TpAlmacen;
Begin
writeln('Escribe un numero: ');
readln(Caj);
For j:=1 to Caj do
Begin
writeln('El identificador es: ');
LetraAleatoria(letra);
writeln('El precio es: ');
PrecioAleatorio(numero);
End;
Mostrar(invt);
End.
Lo que quiero es que se me guarden los datos en el vector y que luego al llamar al procedimiento Mostrar pues me muestre los datos guardados. Para empezar cuando llamo a LetraAleatoria y a PrecioAleatorio se me repite todo el rato el mismo dato según hemos definido el limite del bucle for.
Haber si me podeis ayudar.
Muchas gracias.
Program Almacen;
Uses
CRT;
Type
TpProducto=Record
Identificador:string;
Precio:real;
NumCaj:integer;
End
TpAlmacen=Record
Almacen:array[1..25]of TpProducto;
n:integer;
End;
{Con este procedimiento calculamos una letra aleatoria}
Procedure LetraAleatoria(Var let:string);
Var
i:integer;
Begin
let:='';
Randomize;
For i:=1 to 2 do
let:=let+chr(random(5)+65);
writeln(let);
End;
{Con este procedimiento calculamos un precio aleatorio}
Procedure PrecioAleatorio(Var num:real);
Var
ent,dec:integer;
Begin
Randomize;
ent:=random(3000);
dec:=random(100);
num:=ent+(dec / 100);
writeln(num:7:2);
End;
{Con este procedimiento lo que hago es mostrar los datos que tengo guardados en el vector}
Procedure Mostrar(Var I:TpAlmacen);
Var
k:integer;
Begin
writeln('Mostrar datos')
writeln;
For k:=1 to I.n do
Begin
writeln(I.Almacen[k].Identificador);
writeln(I.Almacen[k].Precio);
End;
End;
{Algoritmo principal}
Var
Caj:integer;
letra:string;
numero:real;
j:integer;
invt:TpAlmacen;
Begin
writeln('Escribe un numero: ');
readln(Caj);
For j:=1 to Caj do
Begin
writeln('El identificador es: ');
LetraAleatoria(letra);
writeln('El precio es: ');
PrecioAleatorio(numero);
End;
Mostrar(invt);
End.
Lo que quiero es que se me guarden los datos en el vector y que luego al llamar al procedimiento Mostrar pues me muestre los datos guardados. Para empezar cuando llamo a LetraAleatoria y a PrecioAleatorio se me repite todo el rato el mismo dato según hemos definido el limite del bucle for.
Haber si me podeis ayudar.
Muchas gracias.
Valora esta pregunta


0