sábado, 25 de julio de 2015
Ejercicio PSeInt (ESPECIAL) - Ferretería
Una ferretería necesita poder llevar el control del stock de un grupo de productos
que tiene a la venta, entre otras funcionalidades. El catalogo es fijo y se
conforma con los siguientes productos :
-------------------------------------------------------------
|CODIGO | DESCRIPCION | PRECIO VENTA | STOCK |
--------+-----------------------+-----------------+----------
|A01 | BOLSA CLAVOS 4 PULG. | 3500 | 40 |
|A02 | TAPAGOTERAS SIKA | 6500 | 60 |
|A03 | GUANTES DE CUERO | 3000 | 35 |
|A04 | BOTELLA DILUYENTE | 1200 | 70 |
|A05 | AMPOLLETA 60 W. | 2400 | 80 |
|A06 | ESMERIL ANGULAR | 18000 | 25 |
|A07 | TALADRO PERCUTOR | 25000 | 45 |
|A08 | ALICATE | 3800 | 55 |
|A09 | MARTILLO | 5600 | 36 |
|A10 | ESMALTE AL AGUA BLANCO| 8500 | 90 |
+-------+-----------------------+-----------------+---------+
Por lo cual le solicita a usted que le construya un programa en PSEINT con
los siguientes requerimientos:
- Un menu con las siguientes opciones:
MENU PRINCIPAL
--------------------
1. Ingresar Venta
2. Actualizar Stock
3. Informe de Stock
4. Informe de Ventas
5. Consulta Precio
6. Consulta Stock
7. Producto mas vendido
8. Salir
- La opcion "Ingresar Venta" deberá permitir ingresar el código de producto y la cantidad
vendida. El sistema deberá calcular el monto de la venta y acumularlo para cada producto
vendido. El ingreso de productos vendidos finaliza cuando se digita codigo de producto
A00, y de ahi debe volver al menu principal. Si un producto no existe debe mostrar un
mensaje y volver a pedir un nuevo producto.
- La opcion "Actualizar Stock" deberá permitir aumentar el stock disponible de un producto
determinado si la cantidad ingresada es mayor a cero, o disminuirlo si la cantidad es
negativa. Se debe ingresar el codigo del producto y la cantidad de stock a actualizar.
El ingreso de stock de productos finaliza cuando se digita codigo de producto A00, y
de ahi debe volver al menu principal. Si un producto no existe debe mostrar un
mensaje y volver a pedir un nuevo producto.
- La opcion "Informe de Stock" debe mostrar el stock actualizado en el siguiente formato:
|CODIGO | DESCRIPCION | STOCK |
XXXX YYYYYYYY 999
XXXX YYYYYYYY 999
XXXX YYYYYYYY 999
XXXX YYYYYYYY 999
- La opcion "Informe de Ventas" debe mostrar el monto vendido para cada producto en el
siguiente formato:
|CODIGO | DESCRIPCION | MONTO VENDIDO $ |
XXXX YYYYYYYY 999999
XXXX YYYYYYYY 999999
XXXX YYYYYYYY 999999
XXXX YYYYYYYY 999999
- La opcion "Consulta Precio" deberá permitir ingresar el código de producto. El sistema deberá
mostrar el nombre del producto y su precio. El ingreso de productos consultados finaliza cuando
se digita codigo de producto A00, y de ahi debe volver al menu principal. Si un producto no existe
debe mostrar un mensaje y volver a pedir un nuevo producto.
- La opcion "Consulta Stock" deberá permitir ingresar el código de producto. El sistema deberá
mostrar el nombre del producto y su stock disponible. El ingreso de productos consultados finaliza cuando
se digita codigo de producto A00, y de ahi debe volver al menu principal. Si un producto no existe
debe mostrar un mensaje y volver a pedir un nuevo producto.
- La opción "Producto mas vendido" deberá mostrar el código, descripcion y monto vendido, de aquel producto
cuyo Monto Vendido sea el mayor de la lista de productos del catalogo.
- La opcion "Salir" debe permitir salir del programa.-
======================================================================
Algoritmo:
Proceso Ferreteria
Dimension A[10,2], B[10,2], C[100], D[100], E[100], F[100], G[100];
//Los vectores A y B son para almacenar los nombres y valores de los productos
//Los vectores C D E son para almacenar la informacion del informe de ventas
//Los vectores F G son para los productos mas vendidos
Definir cont, menu, cantcompra, tcompra, aux, cant, cantmax Como Entero;
Definir i Como Real
Definir codigo, artmax Como Caracter;
A[1,1]<-"A01"; A[1,2]<-"BOLSA CLAVOS 4 PULG."; B[1,1]<-3500; B[1,2]<-40;
A[2,1]<-"A02"; A[2,2]<-"TAPAGOTERAS"; B[2,1]<-6500; B[2,2]<-60;
A[3,1]<-"A03"; A[3,2]<-"GUANTES DE CUERO"; B[3,1]<-3000; B[3,2]<-35;
A[4,1]<-"A04"; A[4,2]<-"BOTELLA DILUYENTE"; B[4,1]<-1200; B[4,2]<-70;
A[5,1]<-"A05"; A[5,2]<-"AMPOLLETA 60 W"; B[5,1]<-2400; B[5,2]<-80;
A[6,1]<-"A06"; A[6,2]<-"ESMERIL ANGULAR"; B[6,1]<-18000; B[6,2]<-25;
A[7,1]<-"A07"; A[7,2]<-"TALADRO PERCUTOR"; B[7,1]<-25000; B[7,2]<-45;
A[8,1]<-"A08"; A[8,2]<-"ALICATE"; B[8,1]<-3800; B[8,2]<-55;
A[9,1]<-"A09"; A[9,2]<-"MARTILLO"; B[9,1]<-5600; B[9,2]<-36;
A[10,1]<-"A10"; A[10,2]<-"ESMALTE AL AGUA BLANCO"; B[10,1]<-8500; B[10,2]<-90;
//La variable cont es para el informe de ventas
cont<-1
Repetir
Limpiar Pantalla
//Mostrar Matriz en pantalla
Escribir "| CODIGO | DESCRICION | PRECIO VENTA $ | STOCK |";
Para i<-1 Hasta 10 Con Paso 1 Hacer
Escribir A[i,1]," ",A[i,2]," $",B[i,1]," ",B[i,2];
Fin Para
Escribir " ";
Escribir "MENU Principal";
Escribir "1 Ingresar venta";
Escribir "2 Actualizar Stock";
Escribir "3 Informe de Stock";
Escribir "4 Informe de ventas";
Escribir "5 Consulta precio";
Escribir "6 Consulta Stock";
Escribir "7 Producto mas vendido";
Escribir "8 Salir";
Repetir //Este repetir es para que solo se ingresen numeros de 1 al 8
Leer menu;
si menu<>1 y menu<>2 y menu<>3 y menu<>4 y menu<>5 y menu<>6 y menu<>7 y menu<>8 entonces
Escribir "ERROR. Debe ingresar un numero del 1 al 8";
FinSi
hasta que menu=1 o menu=2 o menu=3 o menu=4 o menu=5 o menu=6 o menu=7 o menu=8
Segun menu Hacer
1:
//Ingresar Venta
Escribir " ";
Repetir
Escribir "Ingrese el codigo del articulo. Para detener ingrese A00";
Repetir //Este Repetir y Si Entonces, es para que solo se ingresen los codigos mostrados en pantalla
Leer codigo;
Si codigo<>"A00" y codigo<>"A01" y codigo<>"A02" y codigo<>"A03" y codigo<>"A04" y codigo<>"A05" y codigo<>"A06" y codigo<>"A07" y codigo<>"A08" y codigo<>"A09" y codigo<>"A10" Entonces
Escribir "ERROR. Debe ingresar un codigo valido";
FinSi
Hasta Que codigo="A00" o codigo="A01" o codigo="A02" o codigo="A03" o codigo="A04" o codigo="A05" o codigo="A06" o codigo="A07" o codigo="A08" o codigo="A09" o codigo="A10"
Si codigo<>"A00" Entonces
Escribir "Ingrese cuantos productos quiere comprar";
Leer cantcompra;
FinSi
//Revisar el producto en la matriz
Para i<-1 Hasta 10 Con Paso 1 Hacer //Filas
Si A[i,1]=codigo Entonces
Si cantcompra>B[i,2] Entonces //Este si, es para que no se compren mas productos de los que se tienen
Escribir "No tenemos tal cantidad de productos";
Escribir "Ingrese una cantidad menor o igual a ", B[i,2];
i<-10;
j<-2; //Estas variables son para salir inmediatamente del ciclo
Sino
B[i,2]<-B[i,2]-cantcompra;
F[cont]<-cantcompra;//En los vectores F G se guardan los totales comprados y sus nombres para despues calcular el mas vendido
G[cont]<-A[i,2];
tcompra<-B[i,1]*cantcompra;
Escribir "Ha comprado ",cantcompra," unidades de ",A[i,2];
C[cont]<-codigo;//Las variable C D E son para almacenar los valores para el informe de ventas
D[cont]<-A[i,2];
E[cont]<-tcompra;
aux<-cont;
cont<-cont+1;
Fin Si
Fin Si
Fin Para
Hasta Que codigo="A00"
2:
//Actualizar Stock
Escribir " ";
Repetir
Escribir "Ingrese el codigo del articulo. Para detener ingrese A00";
Repetir//Este Repetir y Si Entonces, es para que solo se ingresen los codigos mostrados en pantalla
Leer codigo;
Si codigo<>"A00" y codigo<>"A01" y codigo<>"A02" y codigo<>"A03" y codigo<>"A04" y codigo<>"A05" y codigo<>"A06" y codigo<>"A07" y codigo<>"A08" y codigo<>"A09" y codigo<>"A10" Entonces
Escribir "ERROR. Debe ingresar un codigo valido";
FinSi
Hasta Que codigo="A00" o codigo="A01" o codigo="A02" o codigo="A03" o codigo="A04" o codigo="A05" o codigo="A06" o codigo="A07" o codigo="A08" o codigo="A09" o codigo="A10"
Si codigo<>"A00" Entonces
Escribir "Ingrese cuantos productos quiere agregar";
Leer cant;
Fin Si
Para i<-1 Hasta 10 Con Paso 1 Hacer //Filas
Si A[i,1]=codigo Entonces
B[i,2]<-B[i,2]+cant;
Escribir "Ha ingresado ", cant," unidades de ", A[i,2];
Fin Si
Fin Para
Hasta Que codigo="A00"
3:
//Informe de Stock
Escribir " ";
Escribir "Informe de Stock";
Escribir "| CODIGO | DESCRICION | STOCK |";
Para i<-1 Hasta 10 Con Paso 1 Hacer
Escribir A[i,1]," ",A[i,2]," ",B[i,2];
Fin Para
Escribir " ";
Escribir "Para volver al menu presione cualquier tecla";
Esperar Tecla
4:
//Informe de ventas
Escribir " ";
Escribir "Informe de ventas";
Escribir "| CODIGO | DESCRIPCION | MONTO VENDIDO $ |";
Para i<-1 Hasta aux Con Paso 1 Hacer
Escribir C[i]," ",D[i]," $",E[i];
Fin Para
Escribir " ";
Escribir "Para volver al menu presione cualquier tecla";
Esperar Tecla
5:
//Consulta Precio
Escribir " ";
Escribir "Consulta Precio";
Escribir "Para salir ingrese el codigo A00";
Repetir
Escribir "Ingrese el codigo de un producto";
Repetir
Leer codigo;
Si codigo<>"A00" y codigo<>"A01" y codigo<>"A02" y codigo<>"A03" y codigo<>"A04" y codigo<>"A05" y codigo<>"A06" y codigo<>"A07" y codigo<>"A08" y codigo<>"A09" y codigo<>"A10" Entonces
Escribir "El codigo no es valido, ingreselo nuevamente";
Fin Si
Hasta Que codigo="A00" o codigo="A01" o codigo="A02" o codigo="A03" o codigo="A04" o codigo="A05" o codigo="A06" o codigo="A07" o codigo="A08" o codigo="A09" o codigo="A10"
Para i<-1 Hasta 10 Con Paso 1 Hacer
Para j<-1 Hasta 2 Con Paso 1 Hacer
Si codigo=A[i,j] Entonces
Escribir "El precio del producto ", A[i,2]," es de: $", B[i,1];
Fin Si
Fin Para
Fin Para
Hasta Que codigo="A00";
6:
//Consulta de Stock
Escribir " ";
Escribir "Consulta de Stock";
Escribir "Para salir ingrese el codigo A00";
Repetir
Escribir "Ingrese el codigo del producto";
Repetir
Leer codigo;
Si codigo<>"A00" y codigo<>"A01" y codigo<>"A02" y codigo<>"A03" y codigo<>"A04" y codigo<>"A05" y codigo<>"A06" y codigo<>"A07" y codigo<>"A08" y codigo<>"A09" y codigo<>"A10" Entonces
Escribir "El codigo no es valido, ingreselo nuevamente";
Fin Si
Hasta Que codigo="A00" o codigo="A01" o codigo="A02" o codigo="A03" o codigo="A04" o codigo="A05" o codigo="A06" o codigo="A07" o codigo="A08" o codigo="A09" o codigo="A10"
Para i<-1 Hasta 10 Con Paso 1 Hacer
Para j<-1 Hasta 2 Con Paso 1 Hacer
Si codigo=A[i,j] Entonces
Escribir "La cantidad de productos de ", A[i,2]," es de: ", B[i,2];
Fin Si
Fin Para
Fin Para
Hasta Que codigo="A00"
7:
//Producto mas vendido
cantmax<-F[1];
artmax<-G[1];
Escribir "Producto mas vendido";
Para i<-2 Hasta aux Con Paso 1 Hacer
Si F[i]>=F[i-1] Entonces
cantmax<-F[i]; //Esta variable es para almacenar la cantidad mas vendida
artmax<-G[i]; //Esta variale es para almacenar el producto mas vendido
Fin Si
Fin Para
Escribir "El producto mas vendido es: ", artmax," con un total de ", cantmax, " unidades";
Escribir " ";
Escribir "Para volver al menu presione cualquier tecla";
Esperar Tecla
De Otro Modo:
Escribir "HA SALIDO DEL SISTEMA";
Fin Segun
Hasta Que menu=8
FinProceso
Suscribirse a:
Enviar comentarios (Atom)
Cambiar imagen de fondo con JQuery
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Cambiar ...
-
Diseñar un algoritmo que convierta grados celcius a fahrenheit dada la siguiente formula: fahrenheit = (Celcius/0.55)+32 Algoritmo...
-
“Dado una cantidad de N notas de un estudiante, calcular:” Cuántas notas tiene reprobadas. Cuántas notas aprobadas. El promedio de not...
-
Una ferretería necesita poder llevar el control del stock de un grupo de productos que tiene a la venta, entre otras funcionalidades. El...
Este comentario ha sido eliminado por el autor.
ResponderEliminarno se puede ejecutar porque dice q la variable A(1,1) no esta definida
ResponderEliminarL o mismo digo yo no se puede ejecutar_¡?
EliminarEs una pena, yo igual tengo el mismo problema :((
Eliminar