05-06-2013, 10:26
Buenas! Aca paso un "parcialito" que nos enchufaron la ultima clase, si algun alma caritativa ya lo hizo/tiene ganas de hacerlo y compartirlo buenisimo!
Saludos y gracias!
Saludos y gracias!
//Inserto datos en el vector productos hasta que codProd sea 0
read(codProd)
while codProd<> 0 do begin
read(productos[codProd].descripcion, productos[codProd].precio, productos[codProd].stock);
productos[codProd].valido := true;
productos[codProd].vendidos := 0;
read(codProd)
end;
//////////////////
//Inicio semana
/////////////////
punto7:=false; //Al menos un dia de la semana con una venta>50 unidades
punto8:=0; //Cantidad de dias con al menos un pedido rechazado por menos de 20 unidades de productos que cuestan más de 15
//Por cada dia:
for dia:=1 to 7 do begin
////////////////
///Inicio dia
///////////////
productosDia[codProd].vendidos := 0;
productosDia[codProd].rechazados := 0;
//Por cada producto:
read(codProd)
while codProd<> 0 do begin
read(cantidad);
if cantidad>productos[codProd].stock then begin //Si no hay stock suficiente
write('Stock insuficiente');
if cantidad<20 and productos[codProd].precio>15 then punto8:=punto8+1;
productosDia[codProd].rechazados := productosDia[codProd].rechazados + cantidad;
end else begin //En otro caso
if cantidad>50 then punto7:=true;
productosDia[codProd].vendidos := productosDia[codProd].vendidos + cantidad;
productos[codProd].stock := productos[codProd].stock - cantidad;
productos[codProd].vendidos := productos[codProd].vendidos + cantidad;
write(codProd, cantidad, cantidad*productos[codProd].precio); //(1)
end;
read(codProd)
end;
/////////////////
//Al final del dia
//////////////////
maxCantidad:=0;
maxProd := 0;
//Por cada producto
for i:=0 to 9999 do begin
if producto[codProd].valido then begin //Si lo ingresaron
write(productosDia[codProd].vendidos, productosDia[codProd].rechazados); //(2),(3)
write(productos[codProd].stock); //stock restante (4)
if productosDia[codProd].vendidos> maxCantidad then begin
maxCantidad := productosDia[codProd].vendidos;
maxProd := codProd;
end;
end;
end;
write(productosDia[maxProd].descripcion); //Imprimo el maximo. (5)
end;
/////////////////////////
//Al final de la semana
/////////////////////////
//Por cada producto
for i:=0 to 9999 do begin
if producto[codProd].valido then begin //Si lo ingresaron
write(producto[codProd].vendidos);
end;
end;
write(punto7, punto8);
(06-06-2013 21:55)Anirus escribió: [ -> ]A ver, se me ocurre así:
productos: vector de 9999 entradas (Una por producto. Son 9999 porque el código de producto es de 4 dígitos) Cada entrada es un registro que tiene descripcion, precio, stock, vendidos y un flag valido que indica si completé la entrada. Lo uso para ir contando las cosas de la semana.
productosDia: vector de 9999 entradas(una por producto). Cada entrada contiene cantidad(cantidad vendida) y rechazados. Lo uso para ir contando las ventas del día.
//Inserto datos en el vector productos hasta que codProd sea 0
read(codProd)
while codProd<> 0 do begin
read(productos[codProd].descripcion, productos[codProd].precio, productos[codProd].stock);
productos[codProd].valido := true;
productos[codProd].vendidos := 0;
read(codProd)
end;
//////////////////
//Inicio semana
/////////////////
punto7:=false; //Al menos un dia de la semana con una venta>50 unidades
punto8:=0; //Cantidad de dias con al menos un pedido rechazado por menos de 20 unidades de productos que cuestan más de 15
//Por cada dia:
for dia:=1 to 7 do begin
////////////////
///Inicio dia
///////////////
productosDia[codProd].vendidos := 0;
productosDia[codProd].rechazados := 0;
//Por cada producto:
read(codProd)
while codProd<> 0 do begin
read(cantidad);
if cantidad>productos[codProd].stock then begin //Si no hay stock suficiente
write('Stock insuficiente');
if cantidad<20 and productos[codProd].precio>15 then punto8:=punto8+1;
productosDia[codProd].rechazados := productosDia[codProd].rechazados + cantidad;
end else begin //En otro caso
if cantidad>50 then punto7:=true;
productosDia[codProd].vendidos := productosDia[codProd].vendidos + cantidad;
productos[codProd].stock := productos[codProd].stock - cantidad;
productos[codProd].vendidos := productos[codProd].vendidos + cantidad;
write(codProd, cantidad, cantidad*productos[codProd].precio); //(1)
end;
read(codProd)
end;
/////////////////
//Al final del dia
//////////////////
maxCantidad:=0;
maxProd := 0;
//Por cada producto
for i:=0 to 9999 do begin
if producto[codProd].valido then begin //Si lo ingresaron
write(productosDia[codProd].vendidos, productosDia[codProd].rechazados); //(2),(3)
write(productos[codProd].stock); //stock restante (4)
if productosDia[codProd].vendidos> maxCantidad then begin
maxCantidad := productosDia[codProd].vendidos;
maxProd := codProd;
end;
end;
end;
write(productosDia[maxProd].descripcion); //Imprimo el maximo. (5)
end;
/////////////////////////
//Al final de la semana
/////////////////////////
//Por cada producto
for i:=0 to 9999 do begin
if producto[codProd].valido then begin //Si lo ingresaron
write(producto[codProd].vendidos);
end;
end;
write(punto7, punto8);
(11-06-2013 20:21)rob. escribió: [ -> ]Y acá está en diagrama, que creo que en realidad es lo que les pedían (y no código)
https://docs.google.com/file/d/0B1YW6naj...sp=sharing
La única aclaración es que los procedimientos están hechos con cuadrados simples porque por algún motivo no estaban los sandwichs que se suelen emplear para tal. Cuando se carga PRODUCTOS al vector, se carga ordenado mediante el método de burbuja, todo adentro del procedimiento. Está "resumido" (no es completo), completo sería un bardo, pero se entiende lo que se busca del enunciado.
Saludos!
(12-06-2013 17:06)fede.fna escribió: [ -> ](11-06-2013 20:21)rob. escribió: [ -> ]Y acá está en diagrama, que creo que en realidad es lo que les pedían (y no código)
https://docs.google.com/file/d/0B1YW6naj...sp=sharing
La única aclaración es que los procedimientos están hechos con cuadrados simples porque por algún motivo no estaban los sandwichs que se suelen emplear para tal. Cuando se carga PRODUCTOS al vector, se carga ordenado mediante el método de burbuja, todo adentro del procedimiento. Está "resumido" (no es completo), completo sería un bardo, pero se entiende lo que se busca del enunciado.
Saludos!
ecolee, igual sirvio el cod. tambien para entender un poco algunas cosas!
Gracias Rob.!