[ Foro de Pascal ]
Añada al programa de la actividad anterior, un procedimiento (mostrar_producto) que reciba un producto de la cesta de la compra como parámetro y lo muestre por pantalla.
Añada al programa de la actividad anterior un procedimiento (mostrar_cesta) que reciba una cesta de la compra como parámetro y muestre por pantalla todos los productos que están en la cesta (es decir aquellos en los que en_cesta=TRUE). UTILICE EL PROCEDIMIENTO DE LA CUESTIÓN ANTERIOR Y RECUERDE UTILIZAR LOS PROCEDIMIENTOS DE LAS ACTIVIDADES ANTERIORES ALLÍ DONDE PUEDA HACERLO.
Hasta ahora hice lo siguiente:
Program EJERCICIO;
Const
tammaxcesta=3;
Type
producto=record
nombre:string;
num_unidades:integer;
precio_unidad:real;
en_cesta:boolean;
end;
Tcesta = array [0..tammaxcesta] of producto;
Var
detalle:producto;
micesta:Tcesta;
Procedure lee_producto (VAR detalle:producto);
Begin
detalle.en_cesta:=true;
write('Introduzca el nombre del producto: ');
readln(detalle.nombre);
write('Introduzca el numero de unidades: ');
readln(detalle.num_unidades);
write('Introduzca el precio por unidad: ');
readln(detalle.precio_unidad);
End;
Procedure escribe_producto (detalle:producto);
Begin
writeln;
writeln('Nombre: ',detalle.nombre);
writeln('Unidades: ',detalle.num_unidades);
writeln('Precio unidad: ',detalle.precio_unidad:0:2);
writeln;
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 mostrar_producto (detalle:producto);
(*** PROGRAMA PRINCIPAL ***)
BEGIN
lee_producto(detalle);
escribe_producto(detalle);
readln;
inicializa_cesta(micesta);
END.
¿La duda cual es? ¿El procedimiento mostrar_cesta?
Si es así, como ya tienes un "escribe_producto", es posible que baste con recorrer todos los datos con un "for", como ya haces en "inicializa_cesta", y decir en ese "for" que te escriba los datos del correspondiente producto.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)