Pascal/Turbo Pascal - no se como hacer para contar los productos de una cesta

 
Vista:

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
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

no se como hacer para contar los productos de una cesta

Publicado por ramon (2158 intervenciones) el 02/02/2015 22:28:09
A ver con lo puesto [Tcesta = array [1..Tammaxcesta] of Tproducto;] solo puedes cargar tres cestas y en cada una un
producto.
Para poder entrar mas productos por cesta tendras que pones por ejemplo:

prod : array[1..x] of Tproducto;
[Tcesta = array [1..Tammaxcesta] of prod con lo cual podrás entrar de uno a x productos por cesta.
Eso seria lo primero establecer las contantes types y variables bien.
O en su defecto guardar en archivo o con punteros eso tu decides.
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