Está en la página 1de 5

Departamento de Gestión de Proyectos y Sistemas

Algoritmos y Programación

Profesores: Luis Bello / José Quevedo / Antonio Guerra

Preparadores: Isabel Asenjo / Francesca Marinuzzi / Rommel Sanzonetti

Quiz 1A 2122-2

Problema 1 (7pts):

Se propone que se implemente un algoritmo que, dado un número introducido por el


usuario*, diga si ese número es primo de Fermat.

Definiciones:
- Número de Fermat: todo número natural de la forma (2^(2^n)) + 1 para algún n. Si
ese número resulta ser primo, se denomina primo de Fermat.

*debe validarse que el input sea un número natural.

Problema 2 (14pts + 2pts):

Una tienda de dispositivos electrónicos te ha contratado para que desarrolles un programa


que les ayude a administrar su inventario.

La tienda cuenta con los siguientes productos:

products = {
"mobiles": {
"Apple": [
{
"id": 1,
"name": "iPhone 7",
"price": 300
},
{
"id": 2,
"name": "iPhone 8",
"price": 350
},
{
"id": 3,
"name": "iPhone Xr",
"price": 450
},
{
"id": 4,
"name": "iPhone Xs",
"price": 460
},
{
"id": 5,
"name": "iPhone 11",
"price": 900
},
{
"id": 6,
"name": "iPhone 12",
"price": 1100
},
{
"id": 7,
"name": "iPhone 13",
"price": 1300
},
],
"Samsung": [
{
"id": 8,
"name": "Samsung Galaxy Beam",
"price": 150
},
{
"id": 9,
"name": "Samsung Galaxy S6",
"price": 200
},
{
"id": 10,
"name": "Samsung Galaxy S7",
"price": 300
},
],
"Xiaomi": [
{
"id": 11,
"name": "Xiaomi Redmi Note 8",
"price": 250
},
{
"id": 12,
"name": "Xiaomi Redmi Note 8 Pro",
"price": 300
},
]
},
"laptops": {
"DELL": [
{
"id": 13,
"name": "Dell Inspiron 15",
"price": 600
},
{
"id": 14,
"name": "Dell Latitude 14",
"price": 650
},
],
"MAC": [
{
"id": 15,
"name": "MacBook Pro 13",
"price": 900
},
{
"id": 16,
"name": "MacBook M1",
"price": 1500
},
]
},
}

El programa en cuestión consta de los siguientes requerimientos:


- Ver inventario: debe mostrar todos los productos, con sus respectivos precios y clasificados
por marca, según la categoría (Móviles o Laptops) que seleccione el usuario.
- Registrar compra: debe solicitarse nombre, apellido y cédula del comprador, y el id del
producto que va a comprar. Esta información debe almacenarse en la estructura de datos
de su preferencia. Debe mostrarse en pantalla la factura generada, con los datos del
comprador, el nombre del producto y el monto a pagar.
- Menú principal que permita seleccionar la acción que se quiera realizar.
- Debe volverse al menú principal cada vez que se termine alguna operación (es decir, el
código debe seguir ejecutándose hasta que el usuario decida salir).
- Los mensajes por consola deben verse ordenados y ser intuitivos.

Como requerimiento opcional (2pts), se plantea una tercera opción en el menú: “Aplicar
promoción”. Al seleccionarla, se le agregará el atributo “promo” : True a los productos para los que se
cumpla que su nombre tenga algún número.
Quiz 1B 2122-2

Problema 1 (7pts):

Se propone que se implemente un algoritmo que, dado un número introducido por el


usuario*, diga si ese número es par y triangular.

Definiciones:
- Número triangular: es aquel que se obtiene al sumar n números naturales
consecutivos, comenzando desde el 1. (Por ejemplo: 3 (1+2), 6 (1+2+3), 10 (1+2+3+4))

*debe validarse que el input sea un número natural.

Problema 2 (14pts + 2pts):

Una clínica te ha contratado para que programes un sistema que los ayude a administrar
sus pacientes.

Esta clínica presta servicios para las siguientes patologías:

pathologies = {
"Respiratory system": [
{
"id": 1,
"name": "Cystic Fibrosis",
"price": 300
},
{
"id": 2,
"name": "Emphysema",
"price": 500
},
{
"id": 3,
"name": "Tuberculosis",
"price": 450
}
],
"Nervous system": [
{
"id": 4,
"name": "Parkinson",
"price": 800
},
{
"id": 5,
"name": "Epilepsy",
"price": 600
}
],
"Endocrine system": [
{
"id": 6,
"name": "Diabetes",
"price": 350
},
{
"id": 7,
"name": "Acromegaly",
"price": 700
},
{
"id": 8,
"name": "Hashimoto’s thyroiditis",
"price": 900
}
],
}

El programa en cuestión consta de los siguientes requerimientos:


- Registrar y cobrar al paciente: debe solicitarse nombre, apellido y cédula del paciente, y el
id de la patología que padece. Esta información debe almacenarse en la estructura de datos
de su preferencia. Debe mostrarse en pantalla la factura generada, con los datos del
paciente, la patología que padece y el monto a pagar.
- Ver pacientes: debe preguntarse por la patología a consultar y mostrar los pacientes
registrados en el sistema que la padezcan.
- Menú principal que permita seleccionar la acción que se quiera realizar.
- Debe volverse al menú principal cada vez que se termine alguna operación (es decir, el
código debe seguir ejecutándose hasta que el usuario decida salir).
- Los mensajes por consola deben verse ordenados y ser intuitivos.

Como requerimiento opcional (2pts) para el módulo de registro, si los tres últimos dígitos
de la cédula de identidad del paciente forman un número palíndromo, se le otorgará un descuento
del 30% a su factura. Debe guardarse en la estructura de datos con la información de dicho paciente
que ha recibido un descuento.

Definición: Un número o palabra palíndromo es un número o palabra que se lee igual de derecha a
izquierda que de izquierda a derecha.

También podría gustarte