0% encontró este documento útil (0 votos)
26 vistas5 páginas

Python

Este documento presenta tres problemas matemáticos que pueden resolverse mediante programación en Python. Los estudiantes deben elegir uno de los problemas y desarrollar un programa para resolverlo usando estructuras de control e iterativas apropiadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas5 páginas

Python

Este documento presenta tres problemas matemáticos que pueden resolverse mediante programación en Python. Los estudiantes deben elegir uno de los problemas y desarrollar un programa para resolverlo usando estructuras de control e iterativas apropiadas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Actividad entregable 1:

Resolución de problemas con Python

Fundamentos Informáticos para la Ingenierı́a

Grado en Ingenierı́a en Organización Industrial

Profesor: Benjamin Arroquia Cuadros


Curso 2021 - 2022
Fundamentos Informáticos para la Ingenierı́a- Actividad 1

1. Descripción general

Actividad evaluable 1
Introducción En el ámbito de la ingenierı́a es habitual encontrarse pro-
blemas recurrentes cuya resolución puede ser adaptada a un
lenguaje de programación. El principal objetivo de la progra-
mación es la correcta resolución de problemas con diversos
propósitos. En el ejercicio propuesto se tienen que implemen-
tar una solución programable en lenguaje Python, aplicando
las técnicas y metodologı́as de programación vistas en clase.
Objetivo Resolver al menos un problema de los tres planteados median-
te un programa en Python aplicando estructuras alternativas
e iterativas ası́ como el uso de listas.
Trabajo previo Lectura del material docente de la parte especı́fica disponible
desde el comienzo del curso en la carpeta: Recursos y mate-
riales - 1. Materiales docentes. Visualización de las videocon-
ferencias correspondientes a la unidad 2 que se encontrarán
disponibles en: Videoconferencias - grabaciones.
Metodologı́a En las videoconferencias se expondrá al alumno conocimien-
tos, material e indicaciones suficientes para que pueda elabo-
rar los objetivos definidos en esta actividad. Se establecerá
las pautas concretas y la dinámica que el alumnado deberá
seguir para realizar la actividad propuesta. La actividad se
centra en desarrollar habilidades sobre un lenguaje de pro-
gramación para resolver un problema. En esta actividad se
pondrá en práctica los contenidos vistos en la asignatura. Se
busca implementar un programa haciendo uso de estructuras
de control, iterativas de forma óptima, eficiente y correcta. Se
pide realizar uno de los problemas expuestos con Python y
entregar un documento en PDF con el programa y la ejecu-
ción del mismo en un IDE (Spyder o IDLE). También se pide
entregar el fichero *.py con el código.
Forma de entrega El programa o script en Python se subirá en la actividad co-
rrespondiente en campus dentro de la asignatura. El forma-
to de entrega será en fichero *.py y un documento .pdf con
capturas de pantalla del la solución y su ejecución, con el
nombre en el formato: [1er apellido] [1er apellido] [2do apelli-
do].py/pdf. Ejemplo: perez perez pepe.py. El programa se en-
tregará de manera individual y cada alumno es responsable
de subir a la plataforma la actividad. Las entregas sólo serán
válidas si se realizan a través del site de la asignatura: Acti-
vidades / Actividad evaluable 1. Para las entregas realizadas
en segunda convocatoria se citará al alumno en una sesión de
videoconferencias para la presentación en vivo de la solución
entregada para dicha convocatoria. Se realizarán preguntas
sobre la propia actividad para su evaluación.

1
Fundamentos Informáticos para la Ingenierı́a- Actividad 1

1ª convocatoria 23/11/2021 - 30 % penalización hasta el 30/11/2021


2ª convocatoria 06/06/2022 - se citará al alumno en una sesión de videoconfe-
rencias para la presentación en vivo de la solución entregada
para dicha convocatoria. Se realizarán preguntas sobre la pro-
pia actividad para su evaluación.

2. Actividades propuestas
Esta primera actividad trata de resolver un problema mediante un programa en Python. El
alumno debe escoger una de las tres propuestas y resolverlas según lo indicado en el enunciado
y en las sesiones del curso.

2.1. Devolución de dinero en una máquina expendedora


Cuando realizamos una compra en una máquina expendedora introducimos el dinero justo, o
más, para poder comprar un producto. La labor de la máquina es facilitar el producto y devolver
el resto del dinero que hay entre el valor del producto y lo introducido por el cliente. Se pide
realizar un programa que diga el número de monedas de cada tipo debe devolver la máquina,
dado una serie de productos con un valor determinado y teniendo en cuenta la cantidad de
monedas que puede tener la máquina.
En este ejercicio es necesario realizar una serie de operaciones aritméticas con valores del
tipo float para obtener el resultado. Este tipo de dato se almacena con una precisión que en
algún momento puede hacer que varı́e el resultado o ciertas operaciones. Para evitar errores en
operaciones de comparación es necesario el uso del módulo Decimal 1 como se puede ver en el
código 1, el cual se define una precisión de las cifras decimales y realiza la operación sobre los
valores.

Código 1: Ejemplo de uso de la librerı́a decimal.


1 from decimal import Decimal, getcontext
2 getcontext().prec = 2
3 print(float(Decimal(1.22) - Decimal(1)))
4 >>> 0.22

2.2. Error respecto a una función lineal


Se parte del cálculo de una función lineal de una recta a partir de dos puntos generados
aleatoriamente. Se pide que el programa calcule los parámetros de la función recta y = ax + b a
partir de dos puntos, para luego poder calcular el error de cada uno de los puntos en Y respecto
a la función definida como indica la figura 1. Para ello se calculará los errores:
Error cuadrático medio (ECM o MSE):
PN −1
i=0 (yi − ŷi )2
ECM =
N
1
Para conocer más sobre el módulo: https://docs.python.org/3.8/library/decimal.html.

2
Fundamentos Informáticos para la Ingenierı́a- Actividad 1

Raı́z cuadrada del ECM (RECM):


s
PN −1
i=0 (yi − ŷi )2
RECM =
N

Error medio absoluto (EMA o MAE):


n
X
ECM = (yi − ŷi )2
i

Se pide un resultado con los diferentes errores en diferentes muestras en el que variará el número
de puntos generados aleatoriamente. Se pide realizar 3 conjuntos de 10, 50 y 100 puntos. En la
figura 1 se puede ver una serie de puntos y una recta definida por dos puntos. Para la generación
de puntos aleatorios se hace uso del módulo de Python random como se puede ver en el código
2, donde se genera un número entero entre 0 y 100.

Figura 1: Ejemplo de visualización de puntos generados junto con la recta y la representación


del error en un punto.

Código 2: Ejemplo de uso de la librerı́a random


1 import random
2 random.randint(0, 100)
3 >>> 15

2.3. Programa libre


Se pide buscar y resolver un problema matemático o relacionado con el ámbito de la inge-
nierı́a, en el cual se deben hacer uso de estructuras alternativas, iterativas, ası́ como de listas o

3
Fundamentos Informáticos para la Ingenierı́a- Actividad 1

diccionarios. El programa permitirá que el usuario pueda introducir algún dato para los cálcu-
los del programa. Se busca que el problema sea real y original desde el planteamiento a la
resolución.

3. Rúbrica de evaluación
Rúbrica de evaluación Actividad 1 ( %10)
Nivel Estilo/Formato(10 %) Resolución (60 %) Funcionalidad(30 %)
El programa tiene
operaciones condi-
El código está correc- cionales y bucles. Se
tamente estructurado. hace uso correcto de
Se hace uso de entrada
Se comentan las ins- estructuras de datos
de datos para el usua-
Muy com- trucciones y operacio- complejas como listas
rio. Los resultados son
petente nes más complejas. Se o diccionarios. Se
correctos y son valida-
completan los requeri- aplican operaciones
dos.
mientos expresados en para la comprobación
la actividad. de los resultados y/o
correcto funciona-
miento.
El código está comen-
No se utilizan las es- No se validan los resul-
Competente tado y tiene una es-
tructuras requeridas. tados.
tructura correcta
No se llega a imple-
El código no es claro
No compe- mentar la solución, o No se resuelve correc-
ni limpio. No hay co-
tente se usan estructuras in- tamente el problema.
mentarios.
correctas.

También podría gustarte