Diferència entre revisions de la pàgina «ASIX-M3-UF1-A4.2- Solucions Exercicis llistes»

De wikiserver
Dreceres ràpides: navegació, cerca
(Pàgina blanquejada)
 
(2 revisions intermèdies per 2 usuaris que no es mostren)
Línia 1: Línia 1:
 +
== 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.
 +
 +
<source lang = "python">
 +
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)
 +
</source>
 +
<!---->
 +
 +
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.
 +
 +
<source lang = "python">
 +
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)
 +
</source>
 +
<!---->
 +
 +
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ó,
 +
 +
<source lang = "python">
 +
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))
 +
</source>
 +
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.
 +
 +
<source lang = "python">
 +
# 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)
 +
</source>
 +
<!---->
 +
 +
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.
 +
 +
<source lang = "python">
 +
# 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)
 +
</source>
 +
<!---->
 +
 +
6. Fes un programa que donada una llista de números ja inicialitzada, imprimeixi per pantalla els valors en ordre invers.
 +
 +
<source lang = "python">
 +
# 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())
 +
</source>
 +
<!---->
 +
 +
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ó).
 +
 +
<source lang = "python">
 +
# 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")
 +
</source>
 +
<!---->
 +
 +
 +
<source lang = "python">
 +
# 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")
 +
</source>
 +
<!---->
 +
 +
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”.
 +
 +
<source lang = "python">
 +
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])
 +
'''
 +
</source>
 +
<!---->
 +
 +
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.
 +
 +
<source lang = "python">
 +
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
 +
</source>
 +
<!---->
 +
 +
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.
 +
<!--
 +
<source lang = "python">
 +
 +
</source>
 +
-->

Revisió de 20:55, 2 abr 2024

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.