Está en la página 1de 1

UNIVERSIDAD ESCUELA COLOMBIANA DE INGENIERÍA

Asignatura: Algoritmos y programación (AYPR)


Profesora: Ingeniera Patricia Salazar Perdomo
Fecha: 19 de septiembre de 2023
Ref.: Tarea No. 7. Programación modular en Python.
Cada archivo se debe llamar T7.# Apellidos Nombre, donde # será 1 o 2, según corresponda.
El archivo comprimido se debe llamar T9 Apellidos Nombre.
No tendré en cuenta los programas en los que se haga caso omiso de lo que les digo en este archivo.
Construya un programa modular para solucionar cada uno de los siguientes problemas:
1. Escribir los números impares que pertenecen al intervalo [a, b], donde a es el menor número ingresado por el usuario en una
serie de n números enteros positivos y b es el mayor.
Ejemplo. n igual a 8
Números dados: 6 22 10 0 4 5 5 11
Resultado. Los números impares que pertenecen al intervalo [4, 22] son: 5 7 9 11 13 15 17 19 21
En la función main debe invocar 4 funciones: una que lee y valida la cantidad (utilice pide_ent_pos o
pide_ent_pos_msj), la que halla el menor y el mayor, la que escribe los impares y la que escribe los resultados.
Algo similar debe ser visible en el diseño de los otros cuatro programas modulares.
2. Pedir n números enteros positivos y contar los que son primos. Debe utilizar la función es_primo sin hacerle modificación
alguna.
3. Pedir n números enteros positivos y contar los que sean potencia de 2. Debe utilizar la función es_potencia_de_2 sin
hacerle modificación alguna.
4. Pedir n intervalos [a, b] y hallar el máximo valor de la sumatoria:
𝑏

∑𝑥
𝑥=𝑎
En los resultados hay que decir de qué sumatoria se trata. Debe utilizar la función sumatoria sin hacerle modificación alguna.
5. Pedir n números al usuario. Hay que calcular la suma de aquellos que sean iguales al triple de la suma de los dos anteriores
y decir cuántos cumplieron dicha condición. El valor de n debe ser positivo y puede suponer que es mayor o igual que tres.
Ejemplo 1. n igual a 10
Números dados: 2 4 11 45 -40 15 8 10 54 6
Resultado. De los 11 números dados, 3 cumplieron con la condición y su suma es 114.
Ejemplo 2. n igual a 4
Números dados: 40 80 101 202
Resultado. Ningún número cumplió la condición de ser igual al triple de la suma de los dos anteriores.
# La función es_potencia_de_2 retorna 1 si num # La función es_primo retorna 1 si num es primo # La función sumatoria retorna la suma de los
# es potencia de 2 o 0 si no lo es. # o 0 si no lo es. # números que pertenecen al intervalo [a, b].
def es_potencia_de_2 (num): def es_primo (num): def sumatoria (a, b):
pot = 1 if num < 2: s=0
while pot < num: return 0 x=a
pot = pot * 2 # Los posibles divisores empiezan en 2. while x <= b:
if pot == num: posdiv = 2 s=s+x
return 1 while posdiv <= num // 2: x=x+1
else: if num % posdiv == 0: return s
return 0 return 0
posdiv = posdiv + 1
return 1
La cantidad de números o intervalos debe ser solicitada con una de las dos siguientes funciones.
def pide_ent_pos ( ): def pide_ent_pos_msj (msj):
print ("\nIngrese un entero positivo", end = " ") n = -1
n = int (input ( )) while n < 1:
while n < 1: print (msj, "(>0)", end = " ")
print ("\nIngrese un entero positivo", end = " ") n = int (input ( ))
n = int (input ( )) return n
return n

También podría gustarte