Enero 22 Enunciado
Enero 22 Enunciado
Enero 22 Enunciado
C:\Temp\MatlabEnero22
RECUERDE QUE LOS EJEMPLOS MOSTRADOS EN EL ENUNCIADO TIENEN LA FINALIDAD DE
COMPRENDER MEJOR EL PROBLEMA PERO QUE EL PROGRAMA A DESARROLLAR TIENE QUE
SER GENERAL.
EJERCICIO 1 (7 PUNTOS)
Un conocido supermercado nos ha pedido realizar un programa que permita llevar un control de
las compras realizadas por los clientes y un analisis de las ventas semanales. Para ello nos piden
programar una función por cada apartado:
a) (1 punto) Programar una función llamada CargarProductos que dado el fichero
‘Productos.txt’ cargue su contenido en un vector de estructuras llamado
listaProductos. El fichero contiene la lista de productos que se venden en ese
supermercado, siendo el primer número el código del producto, el segundo valor el
nombre del producto y por último, su precio. La cabecera de la función se deja a
criterio del alumno.
listaProductos
1 2 .
b) (1.5 puntos) Con la información que se ha cargado del fichero ‘Productos.txt’, el vector
de estructuras está ordenado en base a los nombres de los productos. Ahora nos
gustaría que el vector de estructuras quedase ordenado de forma ascendente por el
código del producto. La cabecera de la función será:
function lista= Ordenar (lista)
donde el argumento de entrada lista es el vector de estructuras obtenido en el
apartado anterior, como argumento de salida se devolverá el vector de
estructuras con los elementos ordenados por el código del producto.
listaProductos
IMPORTANTE: para hacer los siguientes apartados se usará la variable listaProductos ordenada
ascendentemente en base al código del producto.
c) (1.5 puntos) El fichero ‘Compra.txt’ contiene los códigos de los productos que ha
comprado un cliente. Con esta información, tenemos que generar un ticket de compra
como el que se muestra a continuación, que se guardará en un fichero llamado
‘Ticket.txt’. El ticket de compra mostrará el nombre del producto y su precio. Al final
del ticket aparecerá el total de la compra realizada. Este ejemplo solo contiene los 20
primeros códigos del fichero ‘Compra.txt’, pero habrá que hacerlo para el fichero
Compra completo.
Codigo Producto Precio
18 pasta 1.150000
19 naranjas 3.600000
20 queso 3.540000
18 pasta 1.150000
6 yogur 1.900000
9 tomate 1.100000
7 agua 0.500000
12 huevos 2.800000
15 pollo 8.250000
5 patatas 1.600000
13 gel 3.240000
2 leche 0.890000
7 agua 0.500000
8 atun 3.560000
16 mascarillas 5.150000
8 atun 3.560000
7 agua 0.500000
15 pollo 8.250000
14 champu 5.250000
14 champu 5.250000
2
números consecutivos dentro de una matriz cuya multiplicación sea la máxima. La
cabecera de la función será:
function [prodMax, fila, col]=CalcularProductoMax (M, p)
donde M es la matriz que contiene los números enteros, p es el número de números
consecutivos a tener en cuenta para calcular la multiplicación, prodMax es el valor de
la multiplicación máxima, y fila y col indicarán la fila y columna donde se encuentra el
primer número de la secuencia de p números.
IMPORTANTE: Para facilitar el ejercicio, se considerarán únicamente los números
consecutivos que se encuentren en la misma fila de la matriz.
EJERCICIO 2 (3 PUNTOS)
La base de datos “Almacen” contiene información de los distintos proveedores y productos
adquiridos dentro y fuera de España. El almacén se encuentra situado en la comunidad de Madrid
y cuenta con una amplia clasificación en productos perecederos y no perecederos. En este
ejercicio, para poder realizar las consultas a la BBDD, se nos ha proporcionado un fichero en
Access (Almacen.mdb) que contiene tres tablas ‘Categorias, ‘Productos’ y ‘Proveedores’ con la
información necesaria para realizar varias consultas a la Base de Datos. A continuación, se
muestran las tablas de la base de datos.
Tabla Campos
Categorias IdCategoria*, NombreCategoria, Descripcion
Productos IdProducto*, NombreProducto, IdProveedor*, IdCategoria*,
CantidadUnidad, PrecioUnidad*, UnidadesExistencia*,
UnidadesPedidas*
Proveedores IdProveedor*, NombreCompania, NombreContacto,
CargoContacto, Direccion, Ciudad, Region, CP, Pais, Telefono
Nota: Los campo con * son aquellos que son numéricos. El resto de campos son del
tipo String.
Para relacionar la información de cada una de las tablas, se puede hacer a través de las tablas
que contengan el mismo nombre del campo, por ejemplo, la tabla ‘Productos’ se relaciona con
3
la tabla ‘Categoria’ a través del campo IdCategoria, y para relacionar la tabla ‘Proveedores’ con
la tabla ‘Productos’ este se puede hacer a través del campo IdProveedor.
Una vez consultada de cada una de las citadas tablas, se pide:
(0,5 puntos) Programar una interfaz gráfica donde se consulte a través de un botón los
campos IdProducto, NombreProducto, IdProveedor, IdCategoria y PrecioUnidad de la
tabla ‘Productos’ mostrando únicamente los productos lácteos de esa categoría.
IMPORTANTE: en la carpeta del examen tendrá una imagen con la interfaz completa a
diseñar