no se como hacer para contar los productos de una cesta
Publicado por Sara (6 intervenciones) el 02/02/2015 17:57:20
Estoy haciendo un ejercicio donde me manda ir añadiendo procedimientos pero de los dos que indico a continuacion no tengo ni idea de como hacerlos
1)Añada al programa de la actividad anterior un procedimiento (cuenta_productos) que reciba como parámetro, entre otros posibles, una variable del tipo Cesta y cuente las posiciones ocupadas, es decir, las que tienen el campo en_cesta=TRUE devolviendo este valor en un parámetro. Así sabremos cuantos productos tiene la cesta.
2)Añada un procedimiento (busca_libre) que reciba como parámetro, entre otros POSIBLES, una variable de tipo Cesta y busque la primera posición de la Cesta en la que el campo en_cesta=FALSE, devolviendo esta posición o 0 en el caso de que no encuentre ninguna posición libre (es decir ninguna posición con el campo en_cesta=FALSE).
El programa trata de ir metiendo productos en una cesta. De momento hice lo siguiente:
Const
Tammaxcesta=3;
Type
Tproducto=record
nombre:string;
num_unidades:integer;
precio_unidad:real;
en_cesta:boolean;
end;
Tcesta = array [1..Tammaxcesta] of Tproducto;
Var
producto:Tproducto; (* Variable del tipo producto*)
micesta:Tcesta; (* variable del tipo cesta*)
Procedure lee_producto (VAR producto:Tproducto);
Begin
write('Introduzca el nombre del producto: ');
readln(producto.nombre);
write('Introduzca el numero de unidades: ');
readln(producto.num_unidades);
write('Introduzca el precio por unidad: ');
readln(producto.precio_unidad);
End;
Procedure inicializa_cesta (micesta:Tcesta);
var
i:integer;
Begin
for i:= 1 to TAMMAXCESTA do
begin
micesta [i]. en_cesta := false;
micesta [i]. nombre := '';
micesta [i]. num_unidades:= 0;
micesta [i]. precio_unidad:= 0.0;
end;
end;
Procedure lee_cesta (VAR unacesta:Tcesta);
Var
i:integer;
Begin
producto.en_cesta:=true;
For i:= 1 to Tammaxcesta do
begin
lee_producto(unacesta[i]);
end;
End;
Procedure cuenta_productos (micesta:Tcesta);
Var
i:integer;
contador:integer;
Begin
contador:=0;
Espero que alguien me pueda ayudar.
Gracias
1)Añada al programa de la actividad anterior un procedimiento (cuenta_productos) que reciba como parámetro, entre otros posibles, una variable del tipo Cesta y cuente las posiciones ocupadas, es decir, las que tienen el campo en_cesta=TRUE devolviendo este valor en un parámetro. Así sabremos cuantos productos tiene la cesta.
2)Añada un procedimiento (busca_libre) que reciba como parámetro, entre otros POSIBLES, una variable de tipo Cesta y busque la primera posición de la Cesta en la que el campo en_cesta=FALSE, devolviendo esta posición o 0 en el caso de que no encuentre ninguna posición libre (es decir ninguna posición con el campo en_cesta=FALSE).
El programa trata de ir metiendo productos en una cesta. De momento hice lo siguiente:
Const
Tammaxcesta=3;
Type
Tproducto=record
nombre:string;
num_unidades:integer;
precio_unidad:real;
en_cesta:boolean;
end;
Tcesta = array [1..Tammaxcesta] of Tproducto;
Var
producto:Tproducto; (* Variable del tipo producto*)
micesta:Tcesta; (* variable del tipo cesta*)
Procedure lee_producto (VAR producto:Tproducto);
Begin
write('Introduzca el nombre del producto: ');
readln(producto.nombre);
write('Introduzca el numero de unidades: ');
readln(producto.num_unidades);
write('Introduzca el precio por unidad: ');
readln(producto.precio_unidad);
End;
Procedure inicializa_cesta (micesta:Tcesta);
var
i:integer;
Begin
for i:= 1 to TAMMAXCESTA do
begin
micesta [i]. en_cesta := false;
micesta [i]. nombre := '';
micesta [i]. num_unidades:= 0;
micesta [i]. precio_unidad:= 0.0;
end;
end;
Procedure lee_cesta (VAR unacesta:Tcesta);
Var
i:integer;
Begin
producto.en_cesta:=true;
For i:= 1 to Tammaxcesta do
begin
lee_producto(unacesta[i]);
end;
End;
Procedure cuenta_productos (micesta:Tcesta);
Var
i:integer;
contador:integer;
Begin
contador:=0;
Espero que alguien me pueda ayudar.
Gracias
Valora esta pregunta


0