Enero 22 Enunciado

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Asignatura / Gaia: INFORMÁTICA Curso / Kurtsoa: 1º

Nombre / Izena: Fecha / Data: 17/01/2022

ESTE ES EL DIRECTORIO QUE SE LE VA A RECOGER AL TERMINAR EL EXAMEN. TODO LO QUE HAGA


DEBE QUEDAR GUARDADO AQUÍ, EN LA CARPETA DEL EJERCICIO CORRESPONDIENTE.

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 .

Codigo: 7 Codigo: 8 Codigo: 6

Nombre: agua Nombre: atun . Nombre: yogur


Precio: 0.5 Precio: 3.56 Precio: 1.9

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

Codigo: 1 Codigo: 2 Codigo: 20

Nombre: azucar Nombre: leche . Nombre: queso


Precio: 0.79 Precio: 0.89 Precio: 3.54

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

Total: 61.740000 euros

La cabecera de la función será:


function GenerarTicket (fname, lista, compra)
donde fname es el nombre que se dará al fichero donde se guarde el ticket, lista es el
vector de estructuras que contiene los productos del supermercado y compra es el vector
que contiene la información de los códigos de los productos comprados por el cliente.
d) (1.5 puntos) El supermercado quiere realizar un análisis de las ventas de cada
producto durante la semana anterior a Navidad. Para ello nos proporcionan un fichero
llamado ‘CompraSemanal.txt’. Este fichero tiene en su primera columna, los códigos
de los productos que se vendieron el lunes, en su segunda columna los productos que
se vendieron el martes y así hasta el sábado.
Para analizar esta información, añadiremos al vector de estructuras listaProductos un
campo en cada una de sus posiciones, llamado ventasDia que será un array de 6
elementos, donde en su primera posición se guardará el número de unidades de ese
producto vendidas el lunes, en la seguna posición las vendidas el martes y así
sucesivamente. La cabecera de la función se deja a criterio del alumno.
listaProductos

Codigo: 1 Codigo: 2 Codigo: 20

Nombre: azucar Nombre: leche Nombre: queso


.
Precio: 0.79 Precio: 0.89 Precio: 3.54
ventasDia ventasDia ventasDia
15 15 11 8 8 11 11 8 3 15 18 12 10 12 7 12 8 10

e) (1,5 puntos) El supermercado ha lanzado un reto y los clientes que lo resuelvan


podrán tener la compra gratis durante un año. El reto consiste en encontrar los p

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

 (1 punto) Se quiere saber el valor total de las existencias correspondientes a cada


proveedor. Para visualizar una a una, programaremos un botón de consulta donde se
muestre en la tabla los campos IdProducto, IdProveedor y PrecioUnidad de cada
proveedor y la suma total del precio por unidad, introduciendo el valor del campo
IdProveedor (1 al 29) de forma manual.
 (1,5 punto) Programar una interfaz gráfica donde se actualice a través de un botón las
unidades de existencia de un producto determinado. En una nueva tabla se mostrarán los
campos IdProducto, NombreProducto y UnidadesExistencia ya actualizados. De forma
manual se deberá introducirá el Id del producto, así como las unidades de existencia a
sumar (+) o restar (-). Este ejercicio se puede resolver por alguna de las siguientes
opciones:
o Opción 1: A través del App Designer y la base de datos de Access “Almacen”
obteniendo como resultados los valores como se muestran en el diseño de la
siguiente figura.
o Opción 2: A través de los ficheros Categorias.mat, Proveedores.mat y
Productos.mat proporcionados en la carpeta de este ejercicio. Programar una
función que devuelva el número de unidades existentes de un producto,
introduciendo el Id del producto y el número a sumar o restar según sea el caso.
La cabecera de la función será:
function resultado = UnidadesExistencia (IdProducto, Sumar, Restar)

También podría gustarte