ASIX-M3-UF1-A4.2- Solucions Exercicis llistes

De wikiserver
Dreceres ràpides: navegació, cerca

A4.2 Exercicis Llistes

1. Fes un programa que emmagatzemi els mòduls de primer d'ASIX ("Implantació de sistemes operatius", "Gestió de bases de dades", "Programació bàsica" ...) en una llista i a continuació, la mostri per pantalla.

print("Programa mòduls 1r d'ASIX")
print("-------------------------")

# Constant
MODULS = ["Sistemes operatius", "Gestió de bases de dades", "Programació bàsica", "Llenguatge de marques", "Fonaments de maquinari", "Planificació i administració de xarxes", "Implantació d'aplicacions web", "Formació i orientació laboral"]

# Recórrer la llista i mostrar cada mòdul
for modul in MODULS :
    print(modul)

2. Fes un programa que emmagatzemi els mòduls de primer d'ASIX ("Implantació de sistemes operatius", "Gestió de bases de dades", "Programació bàsica" ...) en una llista i a continuació, demani la nota obtinguda de cada mòdul i ens digui quants mòduls ha aprovat, ha suspès o té convalidats.

print("Programa mòduls aprovats, suspesos i convalidats de 1r d'ASIX \n")

# Constant
MODULS = ["Sistemes operatius", "Gestió de bases de dades", "Programació bàsica", "Llenguatge de marques", "Fonaments de maquinari", "Planificació i administració de xarxes", "Implantació d'aplicacions web", "Formació i orientació laboral"]

# Inicialitzar variables
aprovats = 0
suspesos = 0
convalidats = 0

# Recórrer la llista i demanar cada nota
for modul in MODULS :
    nota = input("Nota de %s: " %modul)
    if nota == "convalidat":
       convalidats += 1
    elif int(nota) >= 5 :
       aprovats += 1
    else :
       suspesos += 1

# Mostrar el resultat

print("Aprovats: ", aprovats)
print("Suspesos: ", suspesos)
print("convalidats: ", convalidats)

3. Fes un programa que emmagatzemi els mòduls de primer d'ASIX ("Implantació de sistemes operatius", "Gestió de bases de dades", "Programació bàsica" ...) en una llista i a continuació,

print("Programa mòduls pendents de 1r d'ASIX \n")

# Inicialitzar moduls
moduls = ["Sistemes operatius", "Gestió de bases de dades", "Programació bàsica", "Llenguatge de marques", "Fonaments de maquinari", "Planificació i administració de xarxes", "Implantació d'aplicacions web", "Formació i orientació laboral"]

# Inicialitzar variables
aprovats = []

# Recórrer la llista i demanar cada nota
for modul in moduls :
    nota = input("Nota de %s: " %modul)
    if nota == "convalidat" or int(nota) >= 5 :
       aprovats.append(modul)

# Treure els mòduls aprovats
for modul in aprovats :
    moduls.remove(modul)

# Mostrar els mòduls pendents
print("Mòduls pendents: "+ str(moduls))

demani la nota obtinguda de cada mòdul i elimini de la llista els aprovats i convalidats i mostri els mòduls pendents d'aprovar.

4. Feu un programa que donades dues llistes inicialitzades amb els valors [-3, 5, 1, -4, 8, 20, -9, 2, 11, -1], posi a una tercera llista, per a cada posició, la suma dels elements de les altres llistes.

# Inicialitzar les llistes
llista1 = [-3, 5, 1, -4, 8, 20, -9, 2, 11, -1]
llista2 = [-3, 5, 1, -4, 8, 20, -9, 2, 11, -1]

# Declarar la llista resultat
resultat = []

# Recórrer les llistes
for i in range(len(llista1)):

    # suma de cada posició de les dues llistes
    resultat.append(llista1[i] + llista2[i])

# Mostrar la llista amb el resultat
print(resultat)

5. Fes un programa que donada una llista de números ja inicialitzada, la recorri amb un for i quan surti del for imprimeixi el valor més petit de la taula.

# Inicialitzar la llista
llista_num = [-3, 5, 1, -4, 8, 20, -9, 2, 11, -1]

# Inicialitzar més petit
mesPetit = llista_num[0]

# Recórrer la llista
for numActual in llista_num :

    # En cas que el número actual sigui més petit s'actualtiza mesPetit 
    if numActual < mesPetit :
       mesPetit = numActual

# Mostrar la llista amb el resultat
print("Número més petit de la llista:", mesPetit)

6. Fes un programa que donada una llista de números ja inicialitzada, imprimeixi per pantalla els valors en ordre invers.

# Inicialitzar la llista
llista_num = [-3, 5, 1, -4, 8, 20, -9, 2, 11, -1]
print(llista_num)

# Recórrer la llista en ordre invers
for num in reversed(llista_num) :
     
    # Mostrar el número de la posició índex
    print(num, end= "  ")
print()
# print(llista_num.reverse())

7. Fes un programa que faci una rotació cap a l’esquerra o cap a la dreta (segons ens indiqui l’usuari) de tots els elements de una llista (en rotació esquerra l’element que està a la primera posició passarà a l’ultima i en rotació dreta l’element que està l’últim passarà a la primera posició).

# Inicialitzar la llista
llista_num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(llista_num)
# Inicialitzar sentit rotació
rotacio = input("Rotació esquerra o dreta? ")

if rotacio == "esquerra" :

# Rotació esquerra
   llista_num.append(llista_num.pop(0))
   print(llista_num)

elif rotacio == "dreta" :

# Rotació dreta
   llista_num.insert(0,llista_num.pop(len(llista_num)-1))
   print(llista_num)

else :
# Opció incorrecte
   print("Opció incorrecte: opcions vàlides són esquerra o dreta")


# Inicialitzar la llista
llista_num = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Inicialitzar sentit rotació
rotacio = input("Rotació esquerra o dreta? ")

if rotacio == "esquerra" :

# Rotació esquerra
   aux = llista_num[0]
   for index in range(len(llista_num)-1) :
       llista_num[index] = llista_num[index +1]
   llista_num[len(llista_num)-1] = aux
   print(llista_num)

elif rotacio == "dreta" :

# Rotació dreta
   aux = llista_num[len(llista_num)-1]
   for index in range(len(llista_num)-1, 0, -1) :
       llista_num[index] = llista_num[index-1]
   llista_num[0] = aux
   print(llista_num)

else :
# Opció incorrecte
   print("Opció incorrecte: opcions vàlides són esquerra o dreta")

8. Feu un programa anomenat ParaulesSenars que llegeixi una frase escrita en una sola línia des del teclat i tot seguit escrigui les paraules que hi ha en posició senar (la primera, la tercera, etc.). Per exemple, si s'escriu “Hi havia una vegada un lloc...”, es mostrarà “Hi una un”.

print("Programa paraules senars d'una frase")

# Inicialitzar variables
frase = input("Introdueix una frase: ")
index = 0

# Obtenir llista de paraules
paraules = frase.split(' ')

# Recórrer la llista i mostrar les paraules senars
while index < len(paraules) :
     # Mostrar la paraula
     print(paraules[index])
     # Paraula següent
     index +=2

# Amb for ...
'''
for index in range(0, len(paraules), 2):
    print(paraules[index])
'''

9. Feu un programa, que crei una taula (llista de dos dimensions) de 5x5 de números enters. I a continuació, mostri la suma de tots els elements per files i per columnes.

print("Suma matriu per files i columnes")
print("-------------------------")

Matriu = [[2, 3, 5, 1, 4],
          [3, 3, 8, 9, 7],
          [5, 7, 7, 5, 9],
          [2, 4, 7, 3, 1],
          [2, 2, 5, 6, 3]]

for f in Matriu:
  print(f)
print("")

#Suma files
numfila = 1
for fila in Matriu:
  sumafila = sum(fila)
  print("Suma fila %d: %d" %(numfila,sumafila))  
  numfila += 1

print()  
#Suma columnes
numcol = 1
for col in range (len(Matriu[0])):
  sumacol = 0  
  for fila in range(len(Matriu)):  
    sumacol += Matriu[fila][col]
  print("Suma columna %d: %d" %(numcol,sumacol)) 
  numcol += 1

10. Feu un programa per gestionar els resultats de la quiniela de futbol. Utilitzarem dues taules:

   Equips: taula (llista de dos dimensions) de cadenes on guardarem a cada columna el nom dels equips de cada partit. En la quiniela s'indiquen 15 partits. 
   Resultats: taula d'enters on s'indica el resultat. Dues columnes, en la primera es posa el número de gols de l'equip que està en la primera posició i en la taula anterior, i en la segona els gols de l'altre equip.

El programa anirà mostrant els noms dels equips de cada partit, i omplirà la taula de resultats, a continuació mostrarà la quiniela de aquesta jornada.