Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana 2
13/05/21
Programa PSelnt
ejemplo
1
Resuelto por compañero
Programa PYTON
Uso de la f
Link del grupo de telegram: https://t.me/joinchat/d2yj_7sdiMc0MjMx
15/05/21
Condicionales
Ejercicio de número par o impar: Usando % la cual es para saber el residuo de la división.
Signo de diferente
Resuelto por mi
https://teams.microsoft.com/l/channel/19%3a2ercGICtjwX7snOzOJerFdGY3yDKk4CemXJ-
9X_KLEs1%40thread.tacv2/General?groupId=2174e77d-4a28-4524-a56c-491aa3f046f1&tenantId=577fc1d8-0922-458e-
87bf-ec4f455eb600
Semana 3
19/05/21
ciclos
for(para) y while(mientras)
ejemplo
Ejercicio
En 1980 la ciudad A tenía 3.5 millones de habitantes y una tasa de crecimiento del 7% anual; y la ciudad B tenía 5
millones de habitantes y una tasa de crecimiento del 5% anual. Si el crecimiento poblacional se mantiene constante en
las dos ciudades, hacer el diagrama que calcule e imprima en que año la población de la ciudad A es mayor que la de la
ciudad B.
Bucle For
[7:22 a. m.] JOSE LUIS AGUILAR
num = int(input("Ingrese el limite inferior de numeros a sumar "))
n = int(input("Ingrese el limite superior de numeros a sumar "))
x = n+1
suma = 0
for i in range(num,x,2):
suma = suma + i
print("La suma de los primeros ",num," numeros positivos es ",suma)
Ejercicio de numero primo
Con variable bandera
20/05/21
Validaciones y excepciones
Problema
Escriba un algoritmo que lea un número entero N y calcule el resultado de la siguiente serie: 1 - 1/2 + 1/3 - 1/4 + 1/5 -
21/05/21
Ejercicio
Desarrollar un algoritmo que me muestre entre un rango A y B los números primos, el usuario deberá ingresar los
valores de A y B para el rango teniendo presente que B tiene que ser mayor que A.
Codigo pasado por profe
numA=0
numB=0
break
z=i+1
primo=0
if i % j == 0:
if primo==2 or i==1:
print(i,"Es primo")
lista
Lista dentro de otra lista
remove
Correo del profe Jose Luis Aguilar = jaguilar315@unab.edu.co
22/05/21
Desarrollar una lista que me permita ingresar las edades de los estudiantes de la materia fundamentos de programación
y me muestre al final el promedio de edad de ese curso. Mostrar al final la lista completa.
Realizado por el profe
En este se muestra otra forma de imprimir que da formato lo que coloquemos en comillas.
Mostrar la edad mayor de la lista
Por el profe
Teniendo en cuenta que el sor me organiza los datos y a su vez solo es imprimir el último dato de la lista recordando que
la lista comienza en la posición 0.
Tener en cuenta que el sor por defecto organiza de menor a mayor, pero al agregar en paréntesis reverse = true me lo
hace de mayor a menor. así
Ejemplo corto de lo anterior
https://likegeeks.com/es/funciones-de-listas-de-python/
Ejercicio
Desarrollar un algoritmo con listas que me permita ingresar una palabra y me indique si esa palabra es palindroma. Palin
droma es la palabra que se lee igual al derecho como al reves, ejemplo: arañara
Por mi
Por compañeros
Por el profe
SEMANA 4
26/05/21
Desarrollar un programa que me permita registrar los clientes de mi empresa, de cada cliente se debe tener el nombre
del cliente, el año que hizo la compra y el monto total del valor de la compra. El programa me debe permitir registrar N
clientes, siendo N ingresada por el usuario.
Al final, el programa me debe mostrar el total de ventas, también cual fue el clienta que mas me compro y cual fue el
año con mayor venta y el año con menor venta y que monto se vendió.
Otro compañero
Por mi
Reto 3
Consideraciones Generales:
Se necesita un programa que les permita ingresar los datos de de los vendedores que tienen, el total de sus ventas
anuales y el valor de la comisión ganada por las ventas (la comisión es de 10% para ventas mayor al millon de
pesos, de 20% para ventas mayores a los 3 millones y del 25% para ventas mayores a los 5 millones de pesos),
cada dato en una lista independiente respectivamente.
Despues de ingresar todos los datos y tener las listas llenas, el usuario del sistema debe poder realizar las siguientes
acciones a través de un menú que el programa le va a mostrar:
1. Saber cual es el vendedor con el mayor total de ventas, se debe mostrar cuanto monto vendio y el nombre del
vendedor, así como el valor ganado por comisión.
2. Saber cual fue el total de ventas de toda la empresa y el total pagado en comisiones.
3. Saber cual es el vendedor con el menor total de ventas, se debe mostrar cuanto monto vendio y el nombre del
vendedor, así como el valor ganado por comisión.
Requerimientos:
Para solucionar el problema planteado, tu como tripulante encargado debes desarrollar el código en Python para su
solución.
● Variables
● Condicionales y ciclos necesarios
● Validaciones
● Listas requeridas
● Pasos a seguir
● Resultado esperado
Evaluación:
La evaluación del reto 3 se deberá desarrollar de forma individual.
El beneficiario deberá subir a la plataforma moodle en la actividad correspondiente al reto 3 un archivo comprimido
con los archivos necesarios para su solución.
Se revisará el código en Python verificando que cumpla con cada uno de los requerimientos solicitados en el reto.
Solución.
#Ingreso de la informacion.
print("Bienvenidos al registro de vendedores, llene los campos solicitados a continua
cion")
Nombres = []
VentasA = []
ComisionA = []
Infovendedores=[]
num = int(input("Ingrese la cantidad de vendedores de la empresa "))
comision=0
for i in range(1,num+1):
vendedores=[]
nombre = input("Ingrese el Nombre del vendedor ")
ventaa = int(input(f"Ingrese el valor total de las ventas anuales de {nombre} = "
))
vendedores.append(nombre)
vendedores.append(ventaa)
if 1000000 < ventaa <=3000000 :
comision = 0.1*ventaa
ComisionA.append(comision)
vendedores.append(comision)
elif 3000000 < ventaa <= 5000000 :
comision = 0.2*ventaa
ComisionA.append(comision)
vendedores.append(comision)
elif 5000000 < ventaa:
comision = 0.25*ventaa
ComisionA.append(comision)
vendedores.append(comision)
else:
comision = 0
ComisionA.append(comision)
vendedores.append(comision)
Nombres.append(nombre)
VentasA.append(ventaa)
Infovendedores.append(vendedores)
print(f"La lista de los Nombres de los vendedores que usted ingreso fue: {Nombres}")
print(f"La lista de los valores anuales de ventas de cada vendedor son: {VentasA}")
print(f"La lista de los valores de las comisiones ganadas por las ventas de cada vend
edor son: {ComisionA}")
print(f"La lista de la informacion completa de los vendedores es: {Infovendedores}")
# Menu.
while True:
menu = """
Seleccione una opcion ingresando un numero del 1 al 4
para calcular la informacion que usted desee saber:
[1] Nombre, total vendido y comision ganada por el vendedor con mayores ventas.
[2] Total de ventas y total de comisiones pagadas por la empresa.
[3] Nombre, total vendido y comision ganada por el vendedor con menores ventas.
[4] Salir.
"""
print(menu)
mayor = 0
for i in Infovendedores:
if mayor < i[1]:
mayor = i[1]
vendedor = i[0]
comis = i[2]
print(f"El vendedor con el mayor total de ventas fue {vendedor}, con un valor
de {mayor} y una comision ganada de {comis} ")
# Opc 2. Saber cual fue el total de ventas de toda la empresa y el total pagado en co
misiones.
elif opcion == '2':
totalventa = 0
for j in VentasA:
totalventa = totalventa + j
totalcomis = 0
for z in ComisionA:
totalcomis = totalcomis + z
print(f"El Total de ventas de toda la empresa fue = {totalventa}")
print(f"El Total pagado en comisiones por la empresa fue = {totalcomis}")
# Opc 4 salir
elif opcion == '4':
print('Feliz dia')
break
Tuplas y Datos
Ejercicio de cartas
Por compañeros
Diccionarios
Por compañero
Por mi
2) Realizar un programa que le pida el numero de estudiantes a registrar y le solicite el nombre y edad de esos
estudiantes y cree un diccionario. Al finalizar deberá mostrar los estudiantes mayores a 22 años.
Por compañeros
Por mi
En este use este conocimiento
29/05/21
crubio240@unab.edu.co les dejo mi correo porsi en algun momento necesitan apoyo con respecto a algun
inconveniente que tengan puedan contactarme.
Ejercicio
Realizar un programa que solicite dos numeros y le muestre al usuario un menú de que desea hacer, si sumarlos, mu
ltiplicarlos, restarlos o dividirlos. La suma y división deben ser funciones y la resta y multiplicación deben ser método
s.
Solucionado:
Por mi.
Código:
def suma(a,b):
resultado= a+b
return resultado
def resta(a,b):
resultado = a-b
print(f"El resultado de la resta entre {a} y {b} es = ",resultado)
def multiplicacion(a,b):
resultado = a*b
print(f"El resultado de la multiplicacion entre {a} y {b} es = ",resultado)
def division(a,b):
resultado= a/b
return resultado
while True:
menu = """
Seleccione una opcion ingresando un numero del 1 al 5
para calcular la informacion que usted desee saber:
"""
print(menu)
opcion = input('Digita una opcion entre 1 y 5: ')
print("La opcion ingresasda fue ",opcion )
# Opc 1.
if opcion == '1':
resultado = suma(a,b)
print(f"El resultado de la suma entre {a} y {b} es = ",resultado)
# Opc 2.
elif opcion == '2':
resta(a,b)
# Opc 3
elif opcion == '3':
multiplicacion(a,b)
# Opc 4
elif opcion == '4':
resultado = division(a,b)
print(f"El resultado de la division entre {a} y {b} es = ",resultado)
# Opc 5
elif opcion == '5':
print('Feliz dia')
break
# Opc error
else:
print('Debes digitar un numero entre 1 y 5')
print('=-='*30)
Código de compañero
SEMANA 5
02/06/21
Ejercicio de ordenamiento de una lista, primero de mayor a menor, luego de menor a mayor.
Ejercicio
Suponga que usted tiene que ordenar la siguiente lista de números: [11, 7, 12, 14, 19, 1, 6, 18, 8, 20] ¿Cuál de las
siguientes listas representa la lista parcialmente ordenada tras tres pasadas completas del ordenamiento por selección?
Solución es D
Comprobacion en colab
Ejercicio 3
lista = [["jose",25],["laura",19],["pedro",33],["camila",20],["juan",29]]
03/06/21
Ordenamiento burbuja.
Ejercicio
Crear un programa que me cree dos listas, una con los nombres de los estudiantes y otra con sus notas finales.
Organizar la lista de notas con el método burbuja y mostrar las listas ordenadas
Luego mostrar el estudiante con mayor y con menor nota.
for i in range(1,num+1):
infoestu=[]
nombre = input("Ingrese el Nombre del Estudiante ")
notasf = int(input(f"La nota final de {nombre} = "))
infoestu.append(nombre)
infoestu.append(notasf)
Nombres.append(nombre)
Notasf.append(notasf)
infoestudiantes.append(infoestu)
print(f"La lista de la informacion completa de los estudiantes es: {infoestudiantes}"
)
infoestud = dict(zip(Nombres,Notasf))
print(infoestud)
for i in range(num):
for j in range(i,num):
if Notasf[i] > Notasf[j]:
aux = Notasf[i]
Notasf[i] = Notasf[j]
Notasf[j] = aux
i = 0
for i in range(0,num):
j = i
for j in range(0,num):
if Notasf[i] > Notasf[j]:
aux = Notasf[i]
Notasf[i] = Notasf[j]
Notasf[j] = aux
j = j+1
i = i+1
print("Notas organizadas de mayor a menor ",Notasf)
nombre_estudiantes=[]
notas_estudiantes=[]
for i in range(1,num+1):
nombre=input('Escriba el nombre del estdiante: ')
nota=int(input('Escriba su nota final: '))
nombre_estudiantes.append(nombre)
notas_estudiantes.append(nota)
for i in range(num):
for j in range(i,num):
if notas_estudiantes[i]>notas_estudiantes[j]:
aux1=nombre_estudiantes[i]
nombre_estudiantes[i]=nombre_estudiantes[j]
nombre_estudiantes[j]=aux1
aux2=notas_estudiantes[i]
notas_estudiantes[i]=notas_estudiantes[j]
notas_estudiantes[j]=aux2
print(nombre_estudiantes,notas_estudiantes)
Otro compañero
Ejercicio 2:
Crear un programa que permita a una empresa de transporte registrar sus conductores, me registre en una lista los
kilómetros que recorre un conductor y su nombre, al finalizar mostrar la lista y luego ordenarla con el método burbuja y
mostrarla ordenada.
Por mi:
codigo
for i in range(1,num+1):
infocond=[]
nombre = input("Ingrese el Nombre del conductor ")
recorrido = int(input(f"El recorrido en kilometros de {nombre} = "))
infocond.append(nombre)
infocond.append(recorrido)
Nombres.append(nombre)
Recorrido.append(recorrido)
infoconductores.append(infocond)
print(f"La lista de la informacion completa de los conductores es: {infoconductores}"
)
infocond = dict(zip(Nombres,Recorrido))
print(infocond)
for i in range(num):
for j in range(i,num):
if infoconductores[i][1] > infoconductores[j][1]:
aux = infoconductores[i]
infoconductores[i] = infoconductores[j]
infoconductores[j] = aux
for i in range(0,num):
for j in range(i,num):
if infoconductores[i][1] < infoconductores[j][1]:
aux = infoconductores[i]
infoconductores[i] = infoconductores[j]
infoconductores[j] = aux
Resultado
Por compañero
04/06/21
Métodos de búsqueda.
Búsqueda lineal.
Búsqueda binaria.
Ejercicios.
2) Usar la búsqueda binaria para dada una lista ascendente o descendente encuentre un número.
Por el profe
Por compañero
Semana 6
09/06/21
# Ingreso de la informacion
n = int(input("Ingrese la cantidad de estudiantes "))
listaEstudiantes = []
for i in range(n):
estudiante = []
nombre = input("Ingrese el nombre del estudiante ")
edad = int(input("Ingrese la edad del estudiante "))
estudiante.append(nombre)
estudiante.append(edad)
listaEstudiantes.append(estudiante)
# Busqueda lineal
def busqueda_lineal(lista,x):
z=0
clineal = 0
for i in lista:
clineal = clineal + 1
if x == i[1]:
return (z,clineal)
z = z + 1
return (-1,clineal)
# Busqueda binaria
def busqueda_binaria(lista,x):
ini = 0
cbinario = 0
fin = len(lista)-1
while ini<=fin:
medio = (ini+fin)//2
cbinario = cbinario + 1
if lista[0][1]>lista[fin][1]:
if lista[medio][1]==x:
return (medio,cbinario)
elif lista[medio][1]<x: #Descendente
fin = medio - 1
else:
ini = medio + 1
else:
if lista[medio][1]==x:
return (medio,cbinario)
elif lista[medio][1]>x: #Ascendente
fin = medio - 1
else:
ini = medio + 1
return (-1,cbinario)
# Ordenamiento para la busqueda binaria ya que este necesita tener la lista organizad
a.
def ord_seleccion(lista):
#Tamaño de la lista, pero por posiciones
n = len(lista)-1
#Un ciclo que me permita esa iteración (while)
while n > 0:
#primero, encontrar la posicion con el dato mayor
p = buscar_maximo(lista,0,n)
#Intercambio de valores, intercambiar el valor de p
#por el que esta en la ultima posición
lista[p], lista[n] = lista[n], lista[p]
#Prueba, comprobación
print("Prueba: ", p," ",n," ",lista)
#reducción de la lista
n = n - 1
def buscar_maximo(lista,ini,fin):
posmaxima = ini
for i in range(ini,fin+1):
if lista[i][1] > lista[posmaxima][1]:
posmaxima = i
return posmaxima
e = int(input("Ingrese la edad a buscar "))
pos,conl = busqueda_lineal(listaEstudiantes,e)
print("posicion ",pos)
ord_seleccion(listaEstudiantes)
posb, conb = busqueda_binaria(listaEstudiantes,e)
print("posicion ",posb)
print(f"La busqueda lineal itera {conl} veces y la busqueda binaria {conb} veces")
Reto 4 solucionado
La empresa Ubisoft necesita realizar un programa donde puedan registrar sus productos en una lista. Cada producto
tiene un nombre, un precio y nombre del sistema operativo donde funciona (Windows, Linux o Mac).
Después de registrar estos productos en una lista donde esa lista contenga en cada elemento la información de un
producto, proceda ahora a crear dos métodos, uno que permita conocer cuál es el producto del sistema operativo
Windows con el precio más alto (nombre y valor). El otro método devolverá el producto del sistema operativo Linux con
el precio más bajo (nombre, valor) y por ultimo otro método que retorne el elemento Mac llamado “Xcode”
(nombre,valor).
Para terminar, cree una lista nueva con esos tres productos y muéstrela al usuario, la lista debe ir en el siguiente orden,
primero el producto de Windows, segundo, el producto de Linux y por último el producto e Mac.
Un ejemplo de salida sería:
Productos = [ [“Office”,825000],[“Debian”,250000],[“Xcode”,450000] ]
Requerimientos:
Para solucionar el problema planteado, tu como tripulante encargado debes desarrollar el código en Python para su
solución.
Código:
listaProductos = [ ["Acrobat",256000,"Windows"],["Xampp",125000,"Windows"],["Xcode",2
35800,"Mac"],["Fedora",468000,"Linux"],["Zafari",0,"Mac"],["Ubuntu",287000,"Linux"] ]
listasalida=[]
n = len(listaProductos)
def solucion(lista):
producto = []
preciomayorwin = 0
for i in range(n):
if lista[i][2]=="Windows" and lista[i][1]>lista[preciomayorwin][1]:
preciomayorwin = i
producto.append(lista[preciomayorwin][0])
producto.append(lista[preciomayorwin][1])
listasalida.append(producto)
producto = []
preciomenorlin = n-1
for i in range(n):
if lista[i][2]=="Linux" and lista[i][1]<lista[preciomenorlin][1]:
preciomenorlin = i
producto.append(lista[preciomenorlin][0])
producto.append(lista[preciomenorlin][1])
listasalida.append(producto)
producto = []
for i in range (n):
if lista[i][0]=="Xcode":
posicion = i
producto.append(lista[posicion][0])
producto.append(lista[posicion][1])
listasalida.append(producto)
return listasalida
resultado = solucion(listaProductos)
print(resultado)
10/06/21
Métodos de búsqueda.
4) Desarrollar un programa donde se van a registrar los datos de los conductores de una empresa en una lista. Los
datos a registrar son nombre del conductor, sueldo, y kilómetros recorridos. Al tener la lista ordenarla de mayor
a menor de acuerdo a los kilómetros recorridos y mostrar que conductor ha recorrido la menor cantidad de kiló
metros. Después de esto aplicar una búsqueda binaria y una secuencial para mostrar dos conductores y también
mostrar el sueldo promedio de los conductores.
factorial(num)
def factorialr(num):
if num > 1:
return num * factorialr(num-1)
else:
return 1
print(" Metodo Recursivo: ")
num = int(input("Ingrese el numero "))
11/06/21
Ejercicio:
Usando recursividad para hallar una posición y para mostrar la serie por iteración.
Solo la recursividad
Por compañero
Semana 7
16/06/21