Está en la página 1de 18

UNIVERSIDAD MILITAR NUEVA GRANADA

INGENIERÍA MULTIMEDIA
PROGRAMACIÓN 3
TALLER 2 – LISTAS

Nombre: Santiago Castillo Parra

Ejercicio 1
Realizar un programa que inicialice una lista con 10 valores aleatorios (del 1 al 10) y
posteriormente muestre en pantalla cada elemento de la lista junto con su cuadrado y
su cubo.

import random

listaNumeros = []

for lista in range(1,11):

listaNumeros. append(random.randint(1,10))

for numero in listaNumeros:

print(numero," ",numero ** 2," ",numero ** 3)

Ejercicio 2
Crea una lista e inicialízala con 5 cadenas de caracteres leídas por teclado. Copia los
elementos de la lista en otra lista, pero en orden inverso, y muestra sus elementos por
la pantalla.

lista1 = []

lista2 = []

for listas in range(1,6):

lista1.append(input("Dame la cadena %d:" % listas))

lista2 = lista1[::-1]

for cadena in lista2:

print(cadena)
Ejercicio 3
Se quiere realizar un programa que lea por teclado las 5 notas obtenidas por un
alumno (comprendidas entre 0 y 10). A continuación, debe mostrar todas las notas, la
nota media, la nota más alta que ha sacado y la menor.

notas = []

for lista in range(1,6):

while True:

nota = int(input("Introduce la nota %d:" % lista))

if nota>=0 and nota<=10: break

notas.append(nota)

print("Notas: ",end="")

for nota in notas:

print(nota," ",end="")

print()

print("Nota media: ",sum(notas)/len(notas))

print("Nota max: ",max(notas))

print("Nota min: ",min(notas))

Ejercicio 4
Programa que declare una lista y la vaya llenando de números hasta que
introduzcamos un número negativo. Entonces se debe imprimir el vector (sólo los
elementos introducidos).

lista = []

numero = int(input("Introduce un número en la lista:"))

while numero>=0:
lista.append(numero)

numero = int(input("Introduce un número en la lista:"))

for numero in lista:

print(numero," ",end="")

Ejercicio 5
Hacer un programa que inicialice una lista de números con valores aleatorios (10
valores), y posterior ordene los elementos de menor a mayor.

import random

lista = []

for indice in range(1,11):

lista.append(random.randint(1,10))

lista.sort()

for numero in lista:

print(numero," ",end="")

Ejercicio 6
Crea un programa que pida un número al usuario un número de mes (por ejemplo, el
4) y diga cuántos días tiene (por ejemplo, 30) y el nombre del mes. Debes usar listas.
Para simplificarlo vamos a suponer que febrero tiene 28 días.

dias = [31,28,31,30,31,30,31,31,30,31,30,31]

nombreMes =
["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octu
bre","Noviembre","Diciembre"]

while True:
mes = int(input("Introduce un mes (1-12):"))

if mes < 1 or mes > 12:

print("Error: mes incorrecto.")

if mes>=1 and mes<=12: break

print("El mes de",nombreMes[mes-1],"tiene",dias[mes-1],"días.")

Ejercicio 7
Programa que declare tres listas ‘lista1’, ‘lista2’ y ‘lista3’ de cinco enteros cada uno,
pida valores para ‘lista1’ y ‘lista2’ y calcule lista3=lista1+lista2.

lista1 = []

lista2 = []

lista3 = []

for listas in range(1,6):

lista1.append(int(input("Introduce el elemento %d del vector1:" % listas)))

for listas in range(1,6):

lista2.append(int(input("Introduce el elemento %d del vector2:" % listas)))

for listas in range(0,5):

lista3.append(lista1[listas] + lista2[listas])

print("La suma de los vectores es:")

for numero in lista3:

print(numero," ",end="")
Ejercicio 8
Queremos guardar los nombres y las edades de los alumnos de un curso. Realiza un
programa que introduzca el nombre y la edad de cada alumno. El proceso de
lectura de datos terminará cuando se introduzca como nombre un asterisco (* ) Al
finalizar se mostrará los siguientes datos:
• Todos los alumnos mayores de edad.
• Los alumnos mayores (los que tienen más edad)
nombres = []
edades = []

while True:
nombre = input("Dime el nombre de un alumno:")
if nombre != "*":
nombres.append(nombre)
edades.append(int(input("Dime su edad:")))
if nombre == "*": break;

edadMax = max(edades)

print("Alumnos mayores de edad")


for nombre,edad in zip(nombres,edades):
if edad >= 18:
print(nombre)

print("Alumnos mayores")
for nombre,edad in zip(nombres,edades):
if edad == edadMax:
print(nombre)
Ejercicio 9
Queremos guardar la temperatura mínima y máxima de 5 días. Realiza un programa
que de la siguiente información:
• La temperatura media de cada día
• Los días con menos temperatura
• Se lee una temperatura por teclado y se muestran los días cuya temperatura
máxima coincide con ella. si no existe ningún día se muestra un mensaje de
información.
temperaturas = []
for listas in range(1,6):
temperatura = []
temperatura.append(int(input("Día %d. Temperatura máxima:" % listas)))
temperatura.append(int(input("Día %d. Temperatura mínima:" % listas)))
temperaturas.append(temperatura)

print("Temperaturas medias")
listas = 1
for temperatura in temperaturas:
print("Día %d. Temperatura media: %f:" % (listas,sum(temperatura)/len(temperatura)))
listas += 1

tempMin = temperaturas[0][1];
for temperatura in temperaturas:
if temperatura[1] < tempMin:
tempMin = temperatura[1]

print("Días con menos temperatura")


listas = 1
for temperatura in temperaturas:
if temperatura[1] == tempMin:
print("Día %d" % listas)
listas +=1

existe_temperatura = False
print("Días con temperatura máxima")
tempMax = int(input("Introduce una temperatura:"))
listas = 1
for temperatura in temperaturas:
if temperatura[0] == tempMax:
print("Día %d" % listas)
existe_temperatura = True
listas +=1
if not existe_temperatura:
print("No hay ningún día con dicha temperatura.")

Ejercicio 10
Diseñar el algoritmo correspondiente a un programa, que:

• Crea una tabla (lista con dos dimensiones) de 5x5 enteros.


• Carga la tabla con valores numéricos enteros.
• Suma todos los elementos de cada fila y todos los elementos de cada columna
visualizando los resultados en pantalla.
tabla = []
for lista_fila in range(1,6):
fila = []
for lista_columna in range(1,6):
fila.append(int(input("Introduce el número de la fila %d y columna %d:" %
(lista_fila,lista_columna))))
tabla.append(fila)

lista_fila = 1
for fila in tabla:
print("La suma de los elemento de la fila %d es %d" % (lista_fila,sum(fila)))
lista_fila += 1

for lista_columna in range(1,6):


suma = 0
for fila in tabla:
suma = suma + fila [lista_columna - 1]
print("La suma de los elemento de la columna %d es %d" % (lista_columna,suma))

Ejercicio 11
Diseñar el algoritmo correspondiente a un programa, que:

• Crea una tabla bidimensional de longitud 5x5 y nombre ‘diagonal’.


• Carga la tabla de forma que los componentes pertenecientes a la diagonal de la
matriz tomen el valor 1 y el resto el valor 0.
• Muestra el contenido de la tabla en pantalla.
matriz = []
for lista_fila in range(0,5):
fila = []
for lista_columna in range(0,5):
if lista_fila == lista_columna or lista_fila == 4 - lista_columna:
fila.append(1)
else:
fila.append(0)
matriz.append(fila)

for fila in matriz:


for elemento in fila:
print(elemento," ",end="")
print()

Ejercicio 12
Diseñar el algoritmo correspondiente a un programa, que:

• Crea una tabla bidimensional de longitud 5x15 y nombre ‘marco’.


• Carga la tabla con dos únicos valores 0 y 1, donde el valor uno ocupará las
posiciones o elementos que delimitan la tabla, es decir, las más externas,
mientras que el resto de los elementos contendrán el valor 0.
• 111111111111111
• 100000000000001
• 100000000000001
• 100000000000001
• 111111111111111
• Visualiza el contenido de
la matriz en pantalla.

marco = []
numero_filas = 5
numero_columnas = 15
for lista_filas in range(0,numero_filas):
fila = []
for lista_columnas in range(0,numero_columnas):
if lista_filas == 0 or lista_filas == numero_filas - 1 or lista_columnas == 0 or
lista_columnas == numero_columnas -1:
fila.append(1)
else:
fila.append(0)
marco.append(fila)

for fila in marco:


for elemento in fila:
print(elemento," ",end="")
print()

Ejercicio 13
De una empresa de transporte se quiere guardar el nombre de los conductores que
tiene, y los kilómetros que conducen cada día de la semana.

Para guardar esta información se van a utilizar dos arreglos:

• Nombre: Lista para guardar los nombres de los conductores.


• kms: Tabla para guardar los kilómetros que realizan cada día de la semana.
Se quiere generar una nueva lista (“total_kms”) con los kilómetros totales que realza
cada conductor.

Al finalizar se muestra la lista con los nombres de conductores y los kilómetros que ha
realizado.

dias =["Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo"]
nombre = []

kms = []

while True:

numero_conductores = int(input("¿Cuántos conductores tiene la empresa?:"))

if numero_conductores>0: break

for lista_conductores in range(0,numero_conductores):

nombre.append(input("Nombre del conductor %d:" % (lista_cond + 1)))

km_dias = []

for lista_dias in range(0,7):

km_dias.append(int(input("¿Cuántos km ha realizado el %s?:" % dias[lista_dias])))

kms.append(km_dias)

total_kms = []

for km in kms:

total_kms.append(sum(km))

for nombre, km in zip(nombre, total_kms):

print("%s ha realizado %d kms." % (nombre,km))

Ejercicio 14
Crear un programa que lea los precios de 5 artículos y las cantidades vendidas por
una empresa en sus 4 sucursales. Informar:

• Las cantidades totales de cada artículo.


• La cantidad de artículos en la sucursal 2.
• La cantidad del articulo 3 en la sucursal 1.
• La recaudación total de cada sucursal.
• La recaudación total de la empresa.
• La sucursal de mayor recaudación.
precios = []
cantidades = []
numero_articulos = 3
numero_sucursales = 2

for lista_articulos in range(0, numero_articulos):


precios.append(float(input('Ingrese Precio Articulo %d:' % (lista_articulos+1))))

for lista_sucursal in range(0, numero_sucursales):


cantidad_articulos = []
for lista_articulos in range(0, numero_articulos):
cantidad_articulos.append(int(input('Ingrese Cant. de Articulo %d, en sucursal %d:' %
(lista_articulos+1,lista_sucursal+1))))
cantidades.append(cantidad_articulos)

print('Cantidades por artículos:')


for lista_articulos in range(0, numero_articulos):
suma = 0
for cantidad_sucursal in cantidades:
suma = suma + cantidad_sucursal[lista_articulos]
print('Total articulo %d: %d' % (lista_articulos + 1,suma))
print('Total Sucursal 2: %d' % sum(cantidades[1]))
print('Sucursal 1, Articulo 3: %d' % cantidades[0][2])

total_por_sucursal = []
for cantidad_sucursal in cantidades:
total=0
for precio,cantidad in zip(precios,cantidad_sucursal):
total=total+precio*cantidad
total_por_sucursal.append(total)
mayor_recaudacion = max(total_por_sucursal)
lista_sucursal = 1
for lista_sucursal in range(0, numero_sucursales):
print('Recaudaciones Sucursal %d: %f' %
(lista_sucursal,total_por_sucursal[lista_sucursal]))
lista_sucursal += 1

lista_sucursal = 1
for cantidad_sucursal in total_por_sucursal:
if cantidad_sucursal == mayor_recaudacion: break
lista_sucursal += 1

print('Recaudación total de la empresa: %f' % sum(total_por_sucursal))


print('Sucursal de Mayor Recaudación: %d' % lista_sucursal)

Ejercicio 15
Crear un programa de ordenador para gestionar los resultados de la quiniela de
fútbol. Para ello vamos a utilizar dos tablas:

• Equipos: Que es una tabla de cadenas donde guardamos en cada columna el


nombre de los equipos de cada partido. En la quiniela se indican 15 partidos.
• Resultados: Es una tabla de enteros donde se indica el resultado. También
tiene dos columnas, en la primera se guarda el número de goles del equipo que
está guardado en la primera columna de la tabla anterior, y en la segunda los
goles del otro equipo.
El programa ira pidiendo los nombres de los equipos de cada partido y el resultado
del partido, a continuación, se imprimirá la quiniela de esa jornada.
¿Qué modificación habría que hacer en las tablas para guardar todos los resultados
de todas las jornadas de la temporada?

numero_equipos = 15

equipos = []

resultados = []
for lista in range(0,numero_equipos):

partido = []

partido.append(input("Introduce el nombre del equipo 1 del partido %d:" % (lista+1)))

partido.append(input("Introduce el nombre del equipo 2 del partido %d:" % (lista+1)))

equipos.append(partido)

goles = []

goles.append(int(input("Introduce los goles metidos por el equipo %s:" % (partido[0]))))

goles.append(int(input("Introduce los goles metidos por el equipo %s:" % (partido[1]))))

resultados.append(goles)

print("Quiniela")

for partido,goles in zip(equipos,resultados):

print(partido[0],"-",partido[1],":",end="")

if goles[0] > goles[1]:

print("-> 1")

else:

if goles[0] < goles[1]:

print("-> 2")

else:

print("-> X")

Ejercicio 16
Vamos a crear un programa que tenga el siguiente menú:
1. Añadir número a la lista: Me pide un número de la lista y lo añade al final de la
lista.
2. Añadir número de la lista en una posición: Me pide un número y una posición,
y si la posición existe en la lista lo añade a ella (la posición se pide a partir de
1).
3. Longitud de la lista: te muestra el número de elementos de la lista.
4. Eliminar el último número: Muestra el último número de la lista y lo borra.
5. Eliminar un número: Pide una posición, y si la posición existe en la lista lo
borra de ella (la posición se pide a partir de 1).
6. Contar números: Te pide un número y te dice cuantas apariciones hay en la
lista.
7. Posiciones de un número: Te pide un número y te dice en que posiciones está
(contando desde 1).
8. Mostrar números: Muestra los números de la lista
9. Salir

lista = []
while True:
print("1. Añadir número a la lista")
print("2. Añadir número de la lista en una posición")
print("3. Longitud de la lista")
print("4. Eliminar el último número")
print("5. Eliminar un número")
print("6. Contar números")
print("7. Posiciones de un número")
print("8. Mostrar números")
print("9. Salir")
opcion = int(input("Dime opción:"))
if opcion == 1:
num = int(input("Dime un número:"))
lista.append(num)
elif opcion == 2:
num = int(input("Dime un número:"))
pos = int(input("Dime una posición (empezando por 1):"))
if pos > len(lista):
print("Posición incorrecta")
else:
lista.insert(pos - 1,num)
elif opcion == 3:
print("Longitud de la lista: %d" % len(lista))
elif opcion == 4:
if len(lista)>0:
print("El último elemento es %d y lo borramos." % lista.pop())
else:
print("La lista está vacía")
elif opcion == 5:
pos = int(input("Dime una posición (empezando por 1):"))
if pos > len(lista):
print("Posición incorrecta")
else:
print("El elemento es %d y lo borramos." % lista.pop(pos - 1))
elif opcion == 6:
num = int(input("Dime un número:"))
print("El número %d aparece %d veces en la lista." % (num,lista.count(lista)))
elif opcion == 7:
num = int(input("Dime un número:"))
indice_buscar = 0
print("Posiciones: ",end="")
for indice in range(0,lista.count(num)):
indice_buscar = lista.index(num,indice_buscar)
indice_buscar +=1
print(indice_buscar," ",end="")
print()
elif opcion == 8:
for num in lista:
print(num," ",end="")
print()
elif opcion == 9:
break
else:
print("Opción incorrecta")
Ejercicio 17
Crear un programa que añada números a una lista hasta que introducimos un
número negativo. A continuación, debe crear una nueva lista igual que la anterior,
pero eliminando los números duplicados. Muestra esta segunda lista para comprobar
que hemos eliminados los duplicados.

lista = []

lista_sin_duplicados = []

num = int(input("Dame un número, poner un negativo para terminar:"))

while num>=0:

lista.append(num)

num = int(input("Dame un número, poner un negativo para terminar:"))

for num in lista:

if num not in lista_sin_duplicados:

lista_sin_duplicados.append(num)

for num in lista_sin_duplicados:

print(num," ",end="")

print()
Ejercicio 18
Escriba un programa que permita crear una lista de palabras y que, a continuación
de tres opciones:

• Contar: Me pide una cadena, y me dice cuantas veces aparece en la lista


• Modificar: Me pide una cadena, y otra cadena a modificar, y modifica todas
alas apariciones de la primera por la segunda en la lista.
• Eliminar: Me pide una cadena, y la elimina de la lista.
• Mostrar: Muestra la lista de cadenas
• Terminar

lista = []
cadena = input("Introduce una cadena. (* para terminar):")
while cadena != "*":
lista.append(cadena)
cadena = input("Introduce una cadena. (* para terminar):")
while True:
print("\n")
print("1. Contar")
print("2. Modificar")
print("3. Eliminar")
print("4. Mostrar")
print("5. Salir")
opcion = int(input("Dime opción:"))
if opcion == 1:
cadena = input("Introduce una cadena a buscar:")
print("La cadena aparece %d veces" % lista.count(cadena))
elif opcion == 2:
cadena = input("Introduce una cadena a buscar:")
cadena2 = input("Introduce una cadena a modificar:")
indice = 0
for elemento in lista:
if elemento == cadena:
lista[indice] = cadena2
indice += 1
elif opcion == 3:
cadena = input("Introduce una cadena a eliminar:")
if cadena in lista:
while cadena in lista:
lista.remove(cadena)
else:
print("No existe la cadena en la lista.")
elif opcion == 4:
for elemento in lista:
print(elemento," ",end="")
elif opcion == 5:
break
else:
print("Opción incorrecta")

También podría gustarte