Principios Básicos y Fundamentos de Programación: September 2022
Principios Básicos y Fundamentos de Programación: September 2022
net/publication/363694705
CITATIONS READS
0 1,631
2 authors:
All content following this page was uploaded by Maria Fernanda Medina Reyes on 20 September 2022.
005.133
M491
CDD23
7
Objetivos y metodología de los laboratorios
Objetivo general del laboratorio
Realizar prácticas de fundamentos de programación, mediante el uso de herramientas de
acceso libre y a través de un lenguaje de programación Python, con el fin de afianzar los
conocimientos teóricos básicos de programación.
Objetivos específicos del laboratorio
- Satisfacer las inquietudes que tenga una persona que está dando sus primeros pasos
en programación respecto la aplicación de los principales temas de fundamentos
de programación, tales como: estructura secuencial, condicional, repetitiva y
fundamentos de estructuras de datos.
- Motivar la experiencia en aspectos como: manejo del laboratorio virtual de
programación, diseño, creación y ejecución de un programa con las diferentes pruebas
que se presentan.
- Fomentar el interés general por las habilidades de la lógica computacional y la
programación en Python.
Metodología recomendada
Metodológicamente se plantean prácticas y ejercicios de autoevaluación, los cuales están
agrupados en los siguientes temas: Estructura Secuencial E – P – S, Estructura Condicional
if – elif – else, Estructura Repetitiva while – for, y Estructura de datos – Fundamentos.
Cada ejercicio está integrado (estructurado) por los siguientes elementos: título, objetivo
de la actividad, competencias para desarrollar o fortalecer, enunciado, penalizaciones,
descripción de los datos de entrada, descripción de los datos de salida y datos de prueba. A
continuación se describen estos apartados:
Título: Corresponde al nombre de la práctica, este título está relacionado con el tema a
desarrollar.
Objetivo de la actividad: Determina los logros que se deberán demostrar al finalizar cada
laboratorio.
Competencias para desarrollar o fortalecer: Son las competencias y habilidades que se
esperan cuando se finalice el laboratorio de programación.
Enunciado: Expresa la situación de manera concreta con todas las especificaciones del caso
y describe exactamente cuál es el objetivo que se quiere lograr. El interesado deberá dedicar
suficiente tiempo para la comprensión del enunciado y estructurar posibles soluciones,
9
Fundamentos de Programación
teniendo en cuenta los requerimientos funcionales y el cómo hacer para obtener la salida a
partir de los datos de entrada. La siguiente grafica orienta en la planeación de su solución.
En esta etapa se formalizan las etapas de solución del problema (entrada, proceso y salida
E – P – S) y se organizan con el criterio Top - Down (de arriba hacia abajo).
Descripción de los datos de entrada: Son los datos que se ingresan al programa, los cuales
por lo general, son ingresados mediante teclado. La denominación en programación para
un dato de entrada es input.
Descripción de los datos de salida: Se determinan las salidas, escribiendo de manera
explícita cada una de ellas, mediante el lenguaje de programación. La denominación en
programación para un dato de salida es print.
Datos de prueba: Permiten verificar la eficacia del algoritmo y dependiendo de los resultados
que se vayan obteniendo durante la práctica debe decidir qué acciones tomar, en caso de que
haya errores.
Conclusiones: Facilita al interesado reflexionar sobre el aprendizaje adquirido en la práctica
o actividad realizada.
10
1. Entornos de programación de acceso libre
Existen muchas herramientas de acceso libre donde se puede verificar que un programa
está funcionando y normalmente la forma de acceder es mediante un breve registro. A
continuación se describen algunas herramientas online donde se puede crear y guardar
cada una de las prácticas presentadas en este documento.
1.1. replit
Es un entorno de desarrollo integrado para trabajar desde el navegador cuyo enlace de acceso
es https://replit.com/. Es una herramienta de fácil uso, donde inicialmente es necesario
seleccionar el lenguaje de programación, en este caso es Python. Como observamos en la
figura 2, en el campo de Title se recomienda escribir el nombre del proyecto lo cual nos
permitirá identificar posteriormente los trabajos por el nombre. Seguidamente se presiona
el botón Create Repl que se muestra resaltado en color azul.
11
Fundamentos de Programación
Notebook es un cuaderno de trabajo de programación en el cual se escribe código en celdas que se pueden ejecutar.
1
12
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Para cambiar el nombre del proyecto se hace clic en cambiar nombre del cuaderno que
se encuentra en la parte superior izquierda y se escribe un nuevo nombre, en este caso se
ha puesto el nombre de “ejemplo.ipynb”. Como se observa en la siguiente figura se puede
añadir una celda con Código o se puede insertar una celda con Texto y para ejecutar las
instrucciones se hace clic en el botón ejecutar que se encuentra en el lado izquierdo de cada
celda. El botón ejecutar tiene forma de círculo negro con un triángulo inscrito en él.
13
2. Estructura Secuencial – E – P – S
2.1. Laboratorio raíz cuadrada y potencia de un número
Objetivos de la actividad
- Resolver ejercicios secuenciales identificando Entrada – Proceso – Salida.
- Comprender y aplicar la estructura básica de un programa en Python.
- Aplicar las diferentes alternativas para realizar el proceso de un algoritmo secuencial,
utilizando variables, expresiones aritméticas y operaciones de asignación.
Competencias para desarrollar o fortalecer
Durante la realización del laboratorio se busca que el estudiante afiance y desarrolle las
siguientes competencias:
- Identificar la estructura de un algoritmo y el rol que juega cada uno de los elementos
que lo componen.
- Ser propositivo en la búsqueda de alternativas para la solución de problemas.
Enunciado
Desarrolle un algoritmo, que dado un número ingresado por teclado retorne su raíz
cuadrada, y el cuadrado del número. Los datos ingresados por teclado deben ser de tipo real
(float). Usted debe usar los diferentes métodos para el cálculo de la raíz cuadrada y para la
potencia de un número. Utilice la función round para redondear a dos cifras decimales los
resultados.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 80% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
15
Fundamentos de Programación
Datos de prueba (Los datos de entrada y salida son en el orden que se muestra)
Entrada Salida
numero print ( )
"La raiz de 5.0 es 2.24"
5
"La potencia de 5.0 es 25.0"
"La raiz de 29.0 es 5.39"
29
"La potencia de 29.0 es 841.0"
Se recomienda que la función que usted cree tenga la siguiente estructura:
pass
# Llamado de la función
potenciaRaiz()
16
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Resolver ejercicios secuenciales identificando Entrada – Proceso – Salida.
- Comprender y aplicar la estructura básica de un programa en Python.
- Aplicar las diferentes alternativas para realizar el proceso de un algoritmo secuencial,
utilizando variables, expresiones aritméticas y operaciones de asignación.
Enunciado
Desarrolle un algoritmo, que dado dos números (float) ingresados por teclado imprima su
suma. El resultado debe estar redondeado a dos cifras decimales.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 80% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
17
Fundamentos de Programación
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
'''
Escriba aquí las conclusiones
'''
def sumaDeDosNumeros():
# Llamado de la función
sumaDeDosNumeros()
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
18
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Objetivos de la actividad
- Convertir una expresión algebraica a expresión algorítmica, haciendo uso de la
jerarquía de las operaciones.
- Utilizar la librería matemática como apoyo para los cálculos de las funciones
trigonométricas.
Enunciado
Escriba un algoritmo que permita calcular el área de un polígono determinado, el usuario
solo ingresa el número de lados y la longitud de un polígono regular de tipo de dato real
(float) y como resultado se muestra el área con 4 cifras decimales.
La fórmula para calcular el área de un polígono regular es:
Donde,
s, es la longitud de un lado y n, es el número de lados.
El usuario solo ingresa el número de lados y su longitud para calcular y mostrar el área como
salida.
Nota: Recuerde usar la librería matemática (math) para importar la función trigonométrica
(tan) y obtener el valor de π (pi).
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 80% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
19
Fundamentos de Programación
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Entrada Salida
n s print ( )
5 6.5 "El área calculada es 72.6902"
6 5.5 "El área calculada es 78.5918"
Se recomienda que la función creada por tenga la siguiente estructura:
20
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Palabras claves:
- Algoritmo
Ordena los pasos para prender un computador: - Partes de un programa
Desorden Orden
1 Encender pantalla
2 Encender estabilizador
3 Conectar la pantalla
4 Conectar la torre
5 Listo
6 Conectar la pantalla
1 2,3 Un tipo de dato: Es un atributo de una parte de los datos que indica al
ordenador (y/o al programador) algo sobre la clase de datos sobre los
"Amy que se va a procesar. En Python encontramos int, float, str (string) y
Dot" "a"
bool (Liang, 2013).
Palabras claves:
- Tipos de dato
21
Fundamentos de Programación
Palabras claves:
Una variable representa a un espacio de - Variable
memoria en el cual se puede almacenar un
dato (Joyanes, 2008)
1) ¿Cómo declaro una variable llamada edad que contiene la edad de una persona?
a) edad = input ( "Edad: " ) b) edad = int ( input ( "Edad: " ) )
c) edad = float ( input ( "Edad: " ) ) d) input ( "Edad: " ) ) = edad
2) ¿Cómo declaro una variable llamada nombre que contiene el nombre de una persona?:
a) nombre = input ( "Nombre: " ) b) nombre = float ( input ( "Nombre: " ) )
c) nombre = Nombre d) input ( "Nombre: " )
3) Ordena por orden de prioridad los siguientes operadores:
Prioridad Operadores
potencia ( ** ),*, /, %
(+ positivo), (- negativo)
()
+, -
22
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
23
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Objetivos de la actividad
- Diseñar correctamente una estructura condicional.
- Identificar la sentencia condicional a usar y distinguir la estructura simple, doble,
múltiple o anidada.
Enunciado
Un vendedor de accesorios y perfumes recibe un sueldo base, adicional a este sueldo recibe
un porcentaje (10%) extra por comisiones de sus ventas. El vendedor desea saber cuánto
dinero obtendrá si realiza tres (3) ventas en el mes, y el total que recibirá en el mes, tomando
en cuenta su salario más las comisiones. Si el total de las comisiones sobrepasan un monto
de $200.000 pesos, se debe imprimir un mensaje donde se indique si el vendedor se hace
acreedor a un obsequio.
Diseñe un algoritmo que calcule y muestre el total a pagar de comisiones para el vendedor,
calcule y muestre el total a pagar en el mes al vendedor, y para finalizar, muestre un mensaje
si el vendedor se hizo o no acreedor a un obsequio, teniendo en cuenta que la condición es
que el monto sea superior a $200.000 en comisiones.
Se debe pedir como dato de entrada el sueldo base (float), venta1 (float), venta2 (float) y
venta3 (float), y a partir de estos datos realizar los cálculos necesarios para mostrar en la
salida. La respuesta debe ser expresada con dos cifras decimales en todos los casos.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
25
Fundamentos de Programación
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Recuerde que al ingresar los datos de entrada, no se deben ingresar los separadores de mil.
26
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
def calculoComisiones():
# Desarrolle aquí su algoritmo
pass
# Llamado de la función
calculoComisiones()
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Diseñar correctamente una estructura condicional.
- Identificar la sentencia condicional a usar y distinga las estructuras simple, doble,
múltiple o anidada.
27
Fundamentos de Programación
Enunciado
El cuadrante en el que reside una línea trazada desde el origen es determinado por el ángulo
que forma la línea con el eje x positivo como sigue:
Usando esta información, escriba un algoritmo que acepte el ángulo en grados como dato
de entrada y determine el cuadrante apropiado de los datos introducidos. Si el ángulo
tiene exactamente 0, 180 o 360 grados, la línea se encuentra en el eje x, y si el ángulo tiene
exactamente 90 o 270 grados la línea se encuentra en el eje y.
Nota: Los ángulos a evaluar en el algoritmo son positivos, en caso contrario se debe mostrar
el mensaje "Dato erróneo".
Se debe pedir como dato de entrada el ángulo (float), a partir de este, realizar los cálculos
necesarios para mostrar la información solicitada del ángulo.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
28
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra):
29
Fundamentos de Programación
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Diseñar correctamente una estructura condicional.
- Identificar la sentencia condicional a usar y distinga las estructuras simple, doble,
múltiple o anidada.
Enunciado
En una tienda de ropa se desea calcular el monto de las comisiones que recibirá un vendedor,
cuyos datos obtenidos son: su nombre (str), total de unidades que vendió (int) y el precio del
artículo vendido (float).
A partir de esta información se debe calcular el monto de dicha comisión de la siguiente
forma: Si el precio del artículo es de $20.000 o menos, la comisión es del 3%, si el precio del
artículo es mayor que $20.000 pero menor que $50.000 la comisión será del 5%, si el precio
del artículo es mayor o igual que $50.000 la comisión será del 10%.
Diseñe un algoritmo que muestre el título del programa "MONTO DE COMISIONES"
(str), calcule y muestre también el nombre del vendedor (str) junto con el total a pagar de
comisiones (float).
Se debe pedir como dato de entrada el nombre del vendedor (str), la cantidad de unidades
vendidas (int), y el precio del artículo (float). Y, a partir de estos datos, realizar los cálculos
necesarios para mostrar el monto de comisiones que recibirá un vendedor.
30
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
31
Fundamentos de Programación
pass
# Llamado de la función
montoComisiones()
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
32
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
33
Fundamentos de Programación
34
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
print ("LUNES")
elif (dia == 2):
print ("MARTES")
elif (dia == 3):
print ("MIERCOLES")
elif (dia == 4):
print ("JUEVES")
elif (dia == 5):
print ("VIERNES")
elif (dia == 6):
print ("SABADO")
elif (dia == 7):
print ("DOMINGO")
else:
print ("NUMERO INVALIDO")
Realice estos programas con lápiz y papel sin usar el computador.
1) Elaborar un algoritmo que lea un numero entre 1 y 3 y escriba su valor en letras. Ejemplo
1 es igual a "Uno".
35
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Objetivos de la actividad
- Resolver el caso con estructuras de datos, técnicas iterativas, procesos y validación de
datos.
- Diseñar correctamente una estructura repetitiva que permita validar un dato de
entrada de tipo numérico.
Enunciado
Diseñe un algoritmo que valide una variable de tipo numérico (int) cuyo dato se ingresa por
teclado, y en caso de que sea exitosa la validación, se debe mostrar un indicador numérico, el
cual será el mismo número ingresado y en caso contrario, es decir, que la validación no haya
sido exitosa se debe repetir nuevamente la solicitud del dato de entrada.
La condición para que la validación sea exitosa es que la variable de tipo entero (int) sea
superior a 1.
Ejemplo, si se ingresa mediante teclado el número -1, la validación será errónea, por lo tanto,
se debe volver a solicitar el número. Y, si el número ingresado es superior a 1, por ejemplo, el
número 10, el dato de salida será el mismo número ingresado, es decir el número 10.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
37
Fundamentos de Programación
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
Ingrese un número superior a 1: 2
2
Prueba 2:
Ingrese un número superior a 1: -1
Error... Ingrese un número superior a 1: 10
10
Se recomienda que la función cread por usted tenga la siguiente estructura:
38
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Diseñar correctamente una estructura repetitiva que permita validar un dato de
entrada tipo texto.
Enunciado
Diseñe un algoritmo que valide una variable de tipo texto (str), cuyo dato se ingresa por
teclado, y en caso de que sea exitosa la validación se debe mostrar el mensaje "ok". En caso
contrario, es decir que la validación no haya sido exitosa se debe repetir nuevamente la
solicitud del dato de entrada.
La condición para que la validación sea exitosa es que la variable de tipo texto (int) sea alguno
de los siguientes textos: "si", "Si", "sI", "SI", "no", "No", "nO" o "NO".
Ejemplo:
Si se ingresa mediante teclado el texto "sip", la validación será errónea, por lo tanto, se debe
volver a solicitar el texto. Y, si el texto ingresado es igual a alguno de los textos válidos, por
ejemplo, el texto "Si", el dato de salida será el mensaje "ok".
Penalizaciones
39
Fundamentos de Programación
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
si o no: si
ok
Prueba 2:
si o no: sip
Error...si o no: Si
ok
Se recomienda que la función creada por usted tenga la siguiente estructura:
40
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Diseñar correctamente una estructura repetitiva que permita resolver una productoria.
- Validar correctamente un dato de entrada numérico.
Enunciado
Una productoria se simboliza con la letra griega pi mayúscula ∏ , la cual se lee producto de.
Esta consiste en una multiplicación sucesiva de n términos.
Diseñe un programa que resuelva la siguiente productoria:
Donde,
n, corresponde al límite superior de la productoria
∏, es el símbolo que representa la productoria
i, es el elemento genérico de la productoria
i = 1, es el límite inferior de la productoria
Tenga en cuenta que el límite superior n de la productoria debe ser superior o igual a 1, esto
significa que hay que validar el valor de n. En caso de que n sea inferior a 1 el resultado debe
ser 0 y se debe volver a solicitar el valor de n hasta que la validación sea exitosa.
41
Fundamentos de Programación
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
Ingrese n: -1
0
Ingrese n nuevamente: 0
0
Ingrese n nuevamente: 1
1
42
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Prueba 2:
Ingrese n: 4
280
Se recomienda que la función creada por usted tenga la siguiente estructura:
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Usar del operador módulo de Python para el cálculo del resto de la división entre dos
números.
43
Fundamentos de Programación
Enunciado
Los divisores de un número entero (int) son todos los números que al dividirlos su residuo es
exactamente cero. Por ejemplo, los divisores del número 20 son: 1, 2, 4, 5, 10, 20.
Teniendo en cuenta que el operador % calcula el resto de la división entre dos números diseñe
un algoritmo que dado un número entero (int) superior a 0 ingresado por teclado, muestre
como salida los divisores de dicho número. Si el número es inferior o igual a 0 la salida debe
ser exactamente el número 0.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
Ingrese un numero: 2
1
2
Prueba 2:
Ingrese un numero: -1
0
44
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Prueba 3:
Ingrese un numero: 20
1
2
4
5
10
20
Se recomienda que la función creada por usted tenga la siguiente estructura:
pass
# Llamado de la función
divisores()
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
45
Fundamentos de Programación
Ejemplo 1: Elabore un programa que imprima los números del 1 al 3 y muestre su prueba de
escritorio.
i = 1
while (i <= 3):
print (i)
i = i + 1
46
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
i = 1
while (i<=n):
factorial = factorial * i
i = i + 1
print ("El factorial es: ", factorial)
n=3
iteración i i <= 3 factorial Salida (print)
1 1 ¿1 <= 3? = True 1*1=1 -
2 2 ¿2 <= 3? = True 1*2=2 -
3 3 ¿3 <= 3? = True 2*3=6 -
4 4 ¿4 <= 3? = False - 6
47
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Objetivos de la actividad
- Implementar y utilizar correctamente la estructura de una lista de Python.
- Diseñar correctamente una estructura de datos que permita resolver el promedio
aritmético de una lista, mediante técnicas iterativas, procesos y validación de datos.
Enunciado
Para un conjunto dado de números x1x2, ...,xn la medida más conocida y útil del centro es la
media o promedio aritmético del conjunto. Como casi siempre se pensará que los números
xi constituyen una muestra, a menudo se hará referencia al promedio aritmético como la
media muestral.
La media muestral de las observaciones está dada por:
Donde, el numerador de x̅ se escribe más informalmente como ∑xi, donde la suma incluye
todas las observaciones muestrales, y n es la cantidad de valores.
Diseñe un algoritmo que dado como dato de entrada un conjunto de n números reales (float)
almacenados en una lista, calcule el promedio aritmético.
Tenga en cuenta que la cantidad de valores n debe ser superior o igual a 1. En caso contrario,
se debe solicitar nuevamente el valor de la variable n.
49
Fundamentos de Programación
Penalizaciones
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
¿Cuántos datos son? 0
Error... ¿Cuántos datos son? 3
Por favor ingrese un número: 20.5
Por favor ingrese un número: 30.154
Por favor ingrese un número: 50.4124
33.69
Prueba 2:
¿Cuántos datos son? -1
Error... ¿Cuántos datos son? 0
50
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Conclusiones
Objetivos de la actividad
51
Fundamentos de Programación
Enunciado
Se quiere obtener la estadística de los pesos de los alumnos de un curso de n estudiantes de
acuerdo a la siguiente información:
1. Porcentaje de alumnos con peso menor que 40 Kg
2. Porcentaje de alumnos con peso mayor o igual a 40 Kg y menor que 50 Kg
3. Porcentaje de alumnos con peso mayor o igual a 50 Kg y menor o igual que 60 Kg
4. Porcentaje de alumnos con peso mayor a 60 Kg
Tenga en cuenta que la cantidad de valores n debe ser superior o igual a 1.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
52
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Nota: En este ejercicio se tienen en cuenta todas las cifras decimales.
Prueba 1:
¿Cuántos datos son? 0
¿Cuántos datos son? 10
Ingrese un peso: 45
Ingrese un peso: 50
Ingrese un peso: 51
Ingrese un peso: 42
Ingrese un peso: 65
Ingrese un peso: 60
Ingrese un peso: 57
Ingrese un peso: 63
Ingrese un peso: 47
Ingrese un peso: 45
porcentaje1: 0
porcentaje2: 40
porcentaje3: 40
porcentaje4: 20
53
Fundamentos de Programación
Prueba 2:
¿Cuántos datos son? -1
¿Cuántos datos son? 0
¿Cuántos datos son? -100
¿Cuántos datos son? 3
Ingrese un peso: 35
Ingrese un peso: 35
Ingrese un peso: 35
porcentaje1: 100.0
porcentaje2: 0.0
porcentaje3: 0.0
porcentaje4: 0.0
Se recomienda que la función creada por usted tenga la siguiente estructura:
Conclusiones
54
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Objetivos de la actividad
- Implementar y utilizar correctamente la estructura para listas relacionadas de Python.
- Diseñar correctamente una estructura de datos que permita utilizar las instrucciones
de decisión, con condiciones simples y compuestas para la solución de un problema,
de manera que sea posible considerar distintas opciones para resolverlo.
- Utilizar adecuadamente la medida estadística de porcentaje.
Enunciado
El ISS (Instituto de Seguros Sociales) requiere clasificar a las n personas que se jubilarán
en el año 2021. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por
antigüedad adulta. Se necesita conocer el porcentaje de cada tipo de jubilados que habrá
durante este año.
Los requerimientos para jubilarse son los siguientes:
• Las personas adscritas a la jubilación por edad deben tener 60 años o más y una
antigüedad en su empleo de menos de 25 años.
• Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60
años y una antigüedad en su empleo de 25 años o más.
• Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o
más y una antigüedad en su empleo de 25 años o más.
Diseñe un algoritmo que permita clasificar a las n personas que se jubilarán.
Tenga en cuenta que la cantidad de valores n debe ser superior o igual a 1.
55
Fundamentos de Programación
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
¿Cuántos datos son? 0
¿Cuántos datos son? 10
Ingrese edad:60
Ingrese tiempo:14
Ingrese edad:58
56
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Ingrese tiempo:25
Ingrese edad:65
Ingrese tiempo:30
Ingrese edad:63
Ingrese tiempo:25
Ingrese edad:57
Ingrese tiempo:25
Ingrese edad:63
Ingrese tiempo:30
Ingrese edad:68
Ingrese tiempo:26
Ingrese edad:57
Ingrese tiempo:25
Ingrese edad:62
Ingrese tiempo:26
Ingrese edad:59
Ingrese tiempo:25
porcentaje jubilación edad: 10.0
porcentaje jubilación joven: 40.0
porcentaje jubilación adulta: 50.0
Prueba 2:
¿Cuántos datos son?:-1
¿Cuántos datos son?:0
¿Cuántos datos son?:3
Ingrese edad:19
Ingrese tiempo:2
Ingrese edad:35
Ingrese tiempo:10
Ingrese edad:60
Ingrese tiempo:25
porcentaje jubilación edad: 0.0
porcentaje jubilación joven: 0.0
porcentaje jubilación adulta: 33.33333333333333
57
Fundamentos de Programación
pass
# Llamado de la función
listaJubilación ()
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Implementar y utilizar correctamente la estructura de una lista de Python.
- Diseñar correctamente una estructura de datos que permita mediante técnicas
iterativas, procesos para movilizar los datos en una lista.
58
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Enunciado
Diseñar un algoritmo que lea 10 números reales y los almacene en una lista.
1. Realice el procedimiento para invertir y guardar los datos en una nueva lista
2. Realice el procedimiento para ordenar la lista original ascendentemente.
A partir de estos procedimientos, imprima la lista original, la lista invertida y la lista
ordenada.
Tenga en cuenta que la cantidad de valores n debe ser superior o igual a 1.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
59
Fundamentos de Programación
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
INVERTIR Y ORDENAR
¿Cuántos datos son?:-1
¿Cuántos datos son?:0
¿Cuántos datos son?:-100
¿Cuántos datos son?:10
Ingrese número:12
Ingrese número:15
Ingrese número:32
Ingrese número:24
Ingrese número:16
Ingrese número:11
Ingrese número:19
Ingrese número:66
Ingrese número:42
Ingrese número:35
[12.0, 15.0, 32.0, 24.0, 16.0, 11.0, 19.0, 66.0, 42.0, 35.0]
[35.0, 42.0, 66.0, 19.0, 11.0, 16.0, 24.0, 32.0, 15.0, 12.0]
[11.0, 12.0, 15.0, 16.0, 19.0, 24.0, 32.0, 35.0, 42.0, 66.0]
Prueba 2:
INVERTIR Y ORDENAR
60
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
Objetivos de la actividad
- Implementar y utilizar correctamente la estructura de una lista de Python.
- Diseñar correctamente una estructura de datos que permita recorrer la lista para
buscar información y a la vez contabilizar el número de veces que aparece.
61
Fundamentos de Programación
Enunciado
Dada una lista que contiene 10 números enteros (int) introducidos por teclado, se le debe
pedir un número al usuario y mostrar por pantalla la cantidad de veces que se repite este
número en la estructura.
Tenga en cuenta que la cantidad de valores n debe ser superior o igual a 1.
Penalizaciones
Se miden mediante el porcentaje de similaridad de los ejercicios realizados, es decir, si el
ejercicio que ha desarrollado en el laboratorio tiene un porcentaje de similaridad superior
a 70% se debe someter a revisión por parte del docente y en caso de que el porcentaje de
similaridad sea de 100% será anulado con nota de 0.0.
62
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Datos de prueba (Lo datos de entrada y salida son en el orden que se muestra)
Prueba 1:
CONSULTA
¿Cuántos datos son?:0
¿Cuántos datos son?:3
Ingrese número:1
Ingrese número:2
Ingrese número:3
Ingrese número a consultar:5
No encontrado
Prueba 2:
CONSULTA
¿Cuántos datos son?:-1
¿Cuántos datos son?:3
Ingrese número:1
Ingrese número:2
Ingrese número:3
Ingrese número a consultar:3
el número fue encontrado 1 vez
63
Fundamentos de Programación
Conclusiones
Al inicio del programa realizado, en un bloque de comentarios exprese sus aprendizajes,
dificultades y aspectos a mejorar teniendo en cuenta los objetivos del laboratorio propuesto.
64
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Anexo
Las autoras de este material quisiéramos enfatizar que el origen de esta guía pedagógica
procede de la experiencia acumulada de años de docencia universitaria en el área de la
Ingeniería de Sistemas, en particular en la materia de primer año denominada Fundamentos
de Programación en la UTB, Universidad Tecnológica de Bolívar. Esta guía usa el lenguaje de
programación Python para practicar los conceptos aprendidos durante este específico
curso. El laboratorio de trabajo en el cual el estudiante realizará las practicas se encuentra
en SAVIO1, facilitando así el acceso al entorno de trabajo para los estudiantes matriculados
en la asignatura.
La herramienta de trabajo se denomina VPL, Virtual Programming Lab, y funciona como
complemento para las prácticas independientes de ejercicios de programación, como indicó
Rodríguez del Pino et al. (2012), la herramienta VPL permite mejorar las habilidades de
programación, siendo en el sistema de aprendizaje una característica esencial para mejorar
el desempeño del estudiante para realzar sus prácticas.
El uso de la herramienta VPL presenta ventajas en el curso de Fundamentos de Programación,
puesto que se logra un mayor nivel de compromiso y se despierta un mayor nivel de
motivación, lo que lleva a mayores tasas de ejecución y mejores resultados de aprendizaje.
El trabajo colaborativo se estimula mediante la interacción libre, una característica
que los estudiantes aprecian y el docente tiene información más completa para brindar
retroalimentación temprana a los estudiantes (Serrano et al., 2021).
Finalmente, cada temática está soportada mediante materiales entregados, ya sea en clases
presenciales, virtuales y/o a través de referencias bibliográficas suministradas previamente
junto a la bibliografía complementaria con la que fue elaborado el programa de Ingeniería
de Sistemas y Computación de la UTB.
Pasos para crear una práctica en el laboratorio virtual en SAVIO
Se presenta la creación de un laboratorio virtual de programación (VPL) por parte del
estudiante en la plataforma de SAVIO con el fin de ejecutar programas realizados en el
lenguaje de programación Python y se describe el paso a paso desde la creación hasta la
ejecución y entrega de un ejercicio. Los pasos que se realizan a continuación son con un
ejemplo introductorio:
1. Ingresar al curso matriculado en Savio y dirigirse a la semana donde se encuentra la
1
SAVIO es una herramienta del modelo educativo de la Universidad Tecnológica de Bolívar basada en Moodle, que permite
flexibilizar el proceso de enseñanza y aprendizaje en el sistema universitario, tanto presencial como virtualmente (Serrano
y Narváez, 2010).
65
Fundamentos de Programación
4. Una vez creado el archivo “main.py” se procede a escribir el código en el laboratorio virtual.
En el siguiente ejemplo Figura 5, se muestran algunas operaciones básicas realizadas en
Python.
66
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
5. Después que se escriba el código que se desea entregar se hace clic en el botón Guardar
el cual tiene forma de diskette y luego se ejecuta haciendo clic el botón Ejecutar que tiene
forma de cohete o presionando la combinación de teclas Ctrl + F11, mostrado en la Figura 6.
67
Fundamentos de Programación
6. El trabajo se entrega automáticamente una vez se haga clic en guardar. Sin embargo, en
caso de que desee comprobar que su entrega se ha realizado correctamente debe hacer clic
en la pestaña Ver entrega, como se observa en la Figura 7, y puede observar que el trabajo
fue entregado exitosamente.
68
Maria Fernanda Medina Reyes - Maria Eugenia Rincón Socha
Bibliografía
Cairó, O. (2005). Metodología de la programación. Algoritmos, diagramas de flujo y programas. Ciu-
dad de México: Alfaomega.
Joyanes, L. (2008). Fundamentos de programación. Algoritmos, estructura de datos y objetos. Ma-
drid: McGraw-Hill.
Liang, Y. D. (2013). Introduction to Programming Using Python. Upper Saddle River: Pearson.
Rodríguez del Pino, J. C., Rubio-Royo, E. y Hernández-Figueroa, Z. (2012). A virtual pro-
gramming lab for Moodle with automatic assessment and anti-plagiarism features. En
International Conference on e-Learning, e-Business, Entreprise Information Systems, & e-Govern-
ment (pp. 1-6). Las Vegas: CSREA Press.
Serrano, J. E., Mantilla, J. C., Zúñiga, I., Henríquez, Y., Martínez-Santos, J. C. y Bautista, G.
I. (2021). Desarrollo de Documentos Vivos y Experimentación con el Mundo Físico como
Estrategias para la Retención y la Atracción de Estudiantes de Pregrado en los Cursos
de Programación. En 19th LACCEI International Multi-Conference for Engineering, Education,
and Technology: “Prospective and trends in technology and skills for sustainable social develop-
ment" "Leveraging emerging technologies to construct the future". Recuperado de: http://dx.doi.
org/10.18687/LACCEI2021.1.1.381
Serrano, J. E. y Narváez, P. S. (2010). Uso de Software Libre para el Desarrollo de Contenidos
Educativos. Formación Universitaria, 3(6), 41-50. Recuperado de:
http://dx.doi.org/10.4067/S0718-50062010000600006
Material de consulta para mayor profundización
Deitel, P., y Deitel, H. (2022). Intro to Python for Computer Science and Data Science: Learning to
Program with AI, Big Data and The Cloud, Global Edition. Harlow: Pearson.
Guttag, J. (2013). Introduction to Computation and Programming Using Python. Cambridge: Mas-
sachusetts Institute of Technology Press.
Python Software Foundation (Ed.) (2021). Documentación de Python - 3.10.1. Recuperado de: ht-
tps://docs.python.org/es/3/index.html
Severance, C. (2015). Python para informáticos: Explorando la información. Ann Arbor: CreateS-
pace Independent Publishing Platform.
69
Fundamentos de Programación
70