You are on page 1of 3

Ejercicio con complejidad similar a un examen final Un negocio vende 150 productos.

De cada uno de ellos se tiene la siguiente informacin: cdigo del producto (valor entre 1 y 150), descripcin (hasta 60 caracteres), el stock actual (valor entero), punto de pedido (valor entero), cdigo de proveedor (valor entero entre 1 y 20). Se van realizando ventas. No se sabe cuntas. De cada venta se conoce el cdigo del producto (valor entre 1 y 150), la cantidad vendida, el importe de la venta y la forma de pago (E (efectivo), D (tarjeta de dbito), C (tarjeta de crdito)). Por otro lado, se dispone tambin, de los nombres de los 20 proveedores (hasta 70 caracteres) con los que trabaja el negocio. Se solicita desarrollar un algoritmo en pseudocdigo que: - Cargue los nombres de los 20 proveedores. - Cargue los datos iniciales de los 150 productos. - Actualice el stock de los mismos, cargando los datos las ventas realizadas, validando el ingreso de datos en forma conveniente. Y al finalizar con el ingreso de las ventas: - Informe los importes recaudados por cada forma de pago, y - Liste los productos cuyo stock estn por debajo del punto de pedido. El listado deber tener el siguiente formato: Codigo de producto . . . Descripcion producto .. .. .. Stock actual .. .. .. Nombre proveedor .. .. ..

Algoritmo examen Inicio entero I, J, PROD[150][3], COD, CANT, P real IMP, TOT_E, TOT_D, TOT_C caracter DESC[150][60], PROV[20][70], FORMA //Carga de los nombres de los 20 proveedores para I 1, 20 escribir(Ingrese nombre proveedor , I) para J 1, 70 leer (PROV[I][J]) fin_para fin_para //Carga los datos iniciales de los 150 productos para I 1, 20 escribir(Ingrese datos producto: , I) escribir(Ingrese descripcion: ) para J 1, 60 leer (PROD[I][J]) fin_para repetir escribir(Ingrese stock actual: ) leer(PROD[I][1]) hasta (PROD[I][1] >= 0) repetir escribir(Ingrese punto de pedido: ) leer(PROD[I][2]) hasta (PROD[I][2] >= 0) repetir escribir(Ingrese codigo proveedor: ) leer(PROD[I][3]) hasta (PROD[I][3] >= 1 y PROD[I][3] <= 20) fin_para //Carga de las ventas y actualizacion del stock TOT_E 0 TOT_D 0 TOT_C 0 repetir repetir escribir (Ingrese codigo producto: ) leer (COD) hasta (COD >= 1 y COD <= 150) repetir escribir (Ingrese cantidad vendida: ) leer (CANT) hasta (CANT > 0) repetir escribir (Ingrese importe venta: ) leer (IMP) hasta (IMP > 0) repetir

//ejercicio tipo examen

escribir (Ingrese forma de pago E/D/C: ) leer (FORMA)

hasta (FORMA = E o FORMA = D o FORMA = C) segun_sea (FORMA) caso E: TOT_E TOT_E + IMP caso D: TOT_D TOT_D + IMP caso C: TOT_C TOT_C + IMP fin_segun PROD[COD][1] PROD[COD][1] CANT repetir escribir (Ingresa otra venta S/N: ) leer (RESP) hasta (RESP = S o RESP = N) hasta (RESP = N) //Informa importes recaudados segun la forma de pago escribir(Importe recaudado en efectivo: , TOT_E) escribir(Importe recaudado en tarjetas de debito: , TOT_D) escribir(Importe recaudado en tarjetas de credito: , TOT_C) //Listado de los productos que su stock esta por debajo del punto de pedido escribir(Codigo de producto Descripcion producto Stock actual Nombre proveedor) para I 1, 150 si (PROD[I][1] < PROD[I][2]) entonces escribir(I) para J 1, 60 escribir(DESC[I][J]) fin_para escribir(PROD[I][1]) para J 1, 70 P PROD[I][3] escribir(PROV[P][J]) fin_para para J 1, 70 leer (PROV[I][J]) fin_para fin_si fin_para FIN //actualiza el stock

//codigo producto //descripcion producto //stock actual

//nombre proveedor

You might also like