Está en la página 1de 80

NOTAS DE PROGRAMACION

Semana 2
13/05/21

Entrada, Salida y Operadores Aritméticos

Programa PSelnt

ejemplo

1
Resuelto por compañero

Resuelto por mi.


14/05/21

Programa PYTON

Spyton y google cola lugares de programacion

jupyter notebook herramienta para pyton

Anaconda suit para la programación con pyton.


Ejemplos de ingresos

Ejercicio realizado por mi.

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.

La doble igualdad es para validar o comparar.

Ejemplo con condicionales anidados.


Elif= si,no,si es una condición adicional.

Ejemplo de operador lógico

Signo de diferente
Resuelto por mi

Resuelto por otros


Resuelto por mí, aun que puedo tener una mala praxis a causa de no utilizar el elif y utilizar micho el if

Resuelto por otros


Resuelto por el profe
Final de la semana 2

Link de teams para el grupo

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

Tipos de errores (algunos)


Ejemplos

Página de ejemplos y códigos de cómo funciona algo.


Tutorial de Python https://www.w3schools.com/python/
Buenos días Formador y tripulantes soy Claudia Patricia Rubio Solano Coordinador de ruta estoy para apoyar su
proceso mis datos de contacto son crubio240@gmail.com

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

while numA>=0 & numB>=0:


try:

numA = int(input("Ingrese A: "))

numB = int(input("Ingrese B: "))

break

except ValueError: #Exepciones

print("No es un número válido.")

for i in range (numA,numB+1):

z=i+1

primo=0

for j in range (1,z):

if i % j == 0:

primo = primo + 1 #Variable contadora

if primo==2 or i==1:

print(i,"Es primo")

print("Entre el rango de",numA," y ",numB)


Listas en python

Corchetes con alt 91 y alt 93

lista
Lista dentro de otra lista

remove
Correo del profe Jose Luis Aguilar = jaguilar315@unab.edu.co

22/05/21

Listas con ciclos.

Pop elimina el ultimo de la lista a no ser que le coloque el dato. Pop()


Ejercicio

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

Funciones de las listas y otras funciones

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

Resuelto por el profe

Por mi
Por compañeros

Otro ejercicio pero con listas de palabras

Por el profe
SEMANA 4
26/05/21

Listas dentro de listas

Cada posición de una lista tiene otra lista.


Ejercicio de promedio con listas
Ejercico sobresaliente
27/05/21

Continuación con el problema anterior

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ó.

Foto primera parte por el profe


Por un compañero

Otro compañero
Por mi
Reto 3

Consideraciones Generales:

● El reto deberá ser desarrollado de forma individual por cada tripulante


● Debe usar los conocimientos vistos en la semana 3
● Debe tener un contexto real
● Debe tener un conjunto de requerimientos funcionales bien definidos
● El reto será calificado con una nota de 0.0 a 5.0 y corresponderá al 20% de la nota final del ciclo 1
● El tripulante contará con una semana de plazo para el desarrollo del reto

Problemática a resolver (Contexto):


La empresa HydraSoft te ha contratado para resolver a través de un código programado en python el siguiente
contexto problema.

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.

En el código de Python debes tener:

● 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)

opcion = input('Digita una opcion entre 1 y 4: ')


print("La opcion ingresasda fue ",opcion )

# Opc 1 vendedor con el mayor total de ventas.


if opcion == '1':

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 3 vendedor con el menor total de ventas.


elif opcion == '3':
menor = 10000000000000000000000000
for k in Infovendedores:
if menor >= k[1]:
menor = k[1]
vendedore = k[0]
comisi = k[2]
print(f"El vendedor con el menor total de ventas fue {vendedore}, con un valo
r de {menor} y una comision ganada de {comisi} ")

# Opc 4 salir
elif opcion == '4':
print('Feliz dia')
break

# Opc ingrese nuevamente


else:
print('Debes digitar un numero entre 1 y 4')
print('=-='*30)

Tuplas y Datos

Ejercicio de cartas
Por compañeros

Para convertir una lista a una tupla

Para convertir una tupla a una lista


28/05/21

Diccionarios

Ejemplo de convertir dos listas independientes a un diccionario entrelazado


Ejercicios
1) Realizar un programa que cree un diccionario con el símbolo de la divisa (crear 4 divisas), al final el programa le
debe preguntar al usuario cual divisa desea y mostrarle su símbolo o indicarle que no esta en el diccionario.

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

Continuación con el ejercicio # 2 de la clase de ayer.

Solución por el profe


Funciones y Métodos

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

a = int(input("ingrese valor de a = "))


b = int(input("ingrese valor de b = "))
print(f"Los numeros ingresados fueron a = {a} y b = {b}")

while True:
menu = """
Seleccione una opcion ingresando un numero del 1 al 5
para calcular la informacion que usted desee saber:

[1] Sumar los numeros.


[2] Restar los numeros.
[3] Multiplicar los numeros.
[4] Dividir numeros.
[5] Salir los numeros.

"""
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

print("Programa de matematicas simple")


def suma (A,B):
opera = A + B
return [opera]
def divi (A, B):
opera = A / B
return [opera]
def restar (A,B):
opera = A - B
print(f"El resultado de la resta es {opera}")
def multiplica (A,B):
opera = A * B
print(f"El resultado de la multiplicación es {opera}")
A = int(input("Ingrese un numero para el valor A: "))
B = int(input("Ingrese un numero para el valor B: "))
menu = int(input("Ingrese la operacion que desae realizar segun el siguiente menu: \n"
"1 - para Suma \n"
"2 - para Resta \n"
"3 - para multiplicación \n"
"4 - para división \n"))
if menu == 1:
total = suma(A,B)
print(f"El resultado de la suma es: {total}")
elif menu == 2:
restar(A,B)
elif menu == 3:
multiplica(A,B)
elif menu == 4:
total = divi(A,B)
print(f"El resultado de la división es: {total}")
else:
print("vuelva a ingresar al programa, ya que ud ejecuto una accion que no existe")

SEMANA 5
02/06/21

Ordenamiento por selección o por bucles.

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?

A. [7, 11, 12, 1, 6, 14, 8, 18, 19, 20]


B. [7, 11, 12, 14, 19, 1, 6, 18, 8, 20]
C. [11, 7, 12, 14, 1, 6, 8, 18, 19, 20]
D. [11, 7, 12, 14, 8, 1, 6, 18, 19, 20]

Solución es D

Comprobacion en colab
Ejercicio 3

Organizar esta lista de listas de mayor a menor.

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.

Realizado por mí:


CÓDIGO:

num = int(input("Ingrese la cantidad de Estudiantes a registrar "))


Nombres = []
Notasf = []
infoestudiantes = []

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

print("Notas organizadas de menor a mayor ",Notasf)

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)

Por compañero y profe

num=int(input('Indique cuantos estudiantes va a ingresar: '))

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

num = int(input("Ingrese la cantidad de conductores a registrar "))


Nombres = []
Recorrido = []
infoconductores = []

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

print("Notas organizadas de menor a mayor ", infoconductores)

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

print("Notas organizadas de mayor a menor ", infoconductores)

Resultado
Por compañero

04/06/21

Métodos de búsqueda.
Búsqueda lineal.
Búsqueda binaria.
Ejercicios.

1) Modificar la búsqueda binaria cuando la lista esta ordenado en forma descendente

2) Usar la búsqueda binaria para dada una lista ascendente o descendente encuentre un número.

Por el profe

def busqueda_binaria(lista,x, z):


ini = 0
fin = len(lista)-1
while ini<=fin:
medio = (ini+fin)//2
print("Ejecución: "," inicio: ",ini," Fin: ",fin," Medio: ",medio)
if z=="Descendente":
if lista[medio]==x:
return medio
elif lista[medio]<x: #Descendente
fin = medio - 1
else:
ini = medio + 1
else:
if lista[medio]==x:
return medio
elif lista[medio]>x: #Ascendente
fin = medio - 1
else:
ini = medio + 1
return -1
lista = [59,55,47,46,34,31,29,25,21,15,13,11,9,6,4,1]
lista.reverse()
num = int(input("Ingrese el numero a buscar "))
r = busqueda_binaria(lista,num, "Ascendente")
if r==-1:
print("El elemento no se encuentra en la lista")
else:
print("El elemento se encuentra en la posición ",r)

Por compañero
Semana 6
09/06/21

Métodos de búsqueda (comparación entre la lineal y la binaria).


3) Realizar un programa que en una lista guarde el nombre y la edad de un estudiante. El usuario deberá decir
cuántos estudiantes va a agregar. Después debe ingresar la edad a buscar y hacer una búsqueda binaria y una
búsqueda lineal y mostrar cual es más eficiente. Cuantas ejecuciones hizo la búsqueda lineal y cuantas
ejecuciones hizo la búsqueda binaria.

# 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] ]

El usuario debe indicar cuantos productos registrar.

Requerimientos:

Para solucionar el problema planteado, tu como tripulante encargado debes desarrollar el código en Python para su
solución.

En el código de Python debes tener:

● Variables, estructuras de control


● Métodos y/o funciones
● Validaciones (try-except)
● Listas requeridas
● Pasos a seguir
● Resultado esperado
Evaluación:

La evaluación del reto 4 se deberá desarrollar de forma individual.


El beneficiario deberá subir a la plataforma moodle en la actividad correspondiente al reto 4 copiando su código y
pegándolo en el espacio para que VPL valide el desarrollo y le dé una calificación.
La Entrada del programa debe ser la siguiente lista para que VPL pueda realizar toda la comprobación.
listaProductos = [
[“Acrobat”,256000,”Windows”],[“Xampp”,125000,”Windows”],[“Xcode”,235800,”Mac”],[“Fedora”,468000,”Linux”],[“Za
fari”,0,”Mac”],[“Ubuntu”,287000,”Linux”] ]
Se revisará el código en Python verificando que cumpla con cada uno de los requerimientos solicitados en el reto.

Código:

Forma sin pedir datos:

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.

Solución por compañeros

Ordenamiento por burbuja


Otro compañero

Ordenamiento por selección


La próxima es la misma pero ampliada
Recursividad.
Este sería iterativo, el anterior seria recursivo.
Ejercicio: Desarrollar un programa que me calcule el factorial de un numero
Este es por un compañero de forma iterativa

Este es por mí de forma recursiva


Por el profesor: en la primera parte es iterativo y en la segunda parte recursivo.

El código pasado por el profe.


print(" Metodo Iterativo: ")
def factorial(num):
f=1
for i in range(1,num+1):
f = f*i
print(f)
num = int(input("Ingrese el numero "))

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:

Desarrollar un programa que me muestre la serie de Fibonacci. 0,1,1,2,3,5,8,13,21,34....n


Resuelto por el profe

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

También podría gustarte