Salta el contingut
 

Exercicis: Estructures de selecció

Joan Puigcerver Ibáñez

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Objectius

Els objectius d'aquests exercicis són:

  • Conéixer les diferents estructures de selecció disponibles en el llenguatge de programació.
  • Conéixer i utilitzar les estructures if, elif i else.
  • Conéixer i utilitzar l'estructura match-case.

Els exercicis marcats amb ✅ seran corregits a classe.

Estructura del projecte

Tots els exercicis han de complir l'estructura següent:

  • Cada exercici ha d'anar dins del directori corresponent.
  • El nom del fitxer ha de coincidir amb el títol de l'exercici.
  • El format de l'eixida del programa ha de ser consistent amb el format demanat.
  • Utilitza Funcions per encapsular la lògica de les operacions realitzades.

Exercicis

ud2/exercises/selection

which_is_greater.py

Crea un programa que demane a la persona usuària dos nombres enters i mostre el valor més gran.

Exemple: Entrada i eixida
Entrada
5
10
Eixida
10

show_is_adult.py

Crea un programa que demane a la persona usuària la seua edat i mostre els missatges següents segons si és major d'edat o no.

Exemple: Entrada i eixida
Entrada
20
Eixida
Ets major d'edat!
Entrada
16
Eixida
No ets major d'edat.

✅ fight_for_cookies.py

Crea un programa que demane a la persona usuària un nombre de persones i un nombre de galetes.

Si a totes les persones els corresponen el mateix nombre de galetes, mostra Let's eat!. En canvi, si no es poden repartir equitativament, mostra Let's fight!.

Exemple: Entrada i eixida
Entrada
10
20
Eixida
Let's eat!
Entrada
10
21
Eixida
Let's fight!

✅ absolute_number.py

Crea un programa que retorne el valor absolut del nombre que introduïsca la persona usuària.

Exemple: Entrada i eixida
Entrada
10
Eixida
10
Entrada
-10
Eixida
10

is_valid_note.py

Crea un programa que mostre si el nombre enter introduït per la persona usuària correspon a un bitllet vàlid.

Exemple: Entrada i eixida
Entrada
10
Eixida
És vàlid!
Entrada
15
Eixida
No és vàlid.

which_pizza_should_i_buy.py

Decideix quina pizza és més interessant comprar, donats el preu i les dimensions de cada pizza.

  • La primera pizza és redona, per tant, la persona usuària introduirà el preu i el seu diàmetre (en cm).
  • La segona pizza és rectangular, per tant, la persona usuària introduirà el preu i les dimensions dels seus costats (en cm).

El programa mostrarà la informació sobre la pizza més rentable.

Exemple: Entrada i eixida
Entrada
10
30
12
20
40
Eixida
La pizza redona és més rentable: 0.014 €/cm²
Entrada
15
30
10
20
40
Eixida
La pizza rectangular és més rentable: 0.013 €/cm²

✅ rock_paper_scissors.py

Crea un programa per jugar al joc Pedra, paper o tisores.

El programa rebrà la jugada de dues persones i indicarà quina de les dues ha guanyat.

Exemple: Entrada i eixida
Entrada
pedra
pedra
Eixida
Els dos jugadors han empatat amb 'pedra'.
Entrada
paper
pedra
Eixida
Guanya el jugador 1 amb 'paper'.
Entrada
tisores
pedra
Eixida
Guanya el jugador 2 amb 'pedra'.

exam_grade.py

Crea un programa que reba la nota d'un examen i mostre el resultat obtingut.

  • Excel·lent (9 o 10)
  • Notable (7 o 8)
  • Bé (6)
  • Suficient (5)
  • Suspés (0, 1, 2, 3 o 4)
  • Nota no vàlida: altres valors.
Exemple: Entrada i eixida
Entrada
7
Eixida
Notable
Entrada
-1
Eixida
Nota no vàlida

✅ next_second.py

Crea un programa que demane tres enters a la persona usuària, corresponents a les hores, minuts i segons.

Comprova que els valors siguen vàlids. Si no ho són, cal que el programa mostre un missatge d'error.

En cas que siga una hora vàlida, el programa ha d'afegir 1 segon a aquesta i mostrar el resultat en el format HH:MM:SS.

Exemple: Entrada i eixida
Entrada
10
10
10
Eixida
10:10:11
Entrada
10
10
59
Eixida
10:11:00
Entrada
25
-1
0
Eixida
El valor '25' no és vàlid per a les hores.
El valor '-1' no és vàlid per als minuts.

✅ days_in_month.py

Crea un programa que reba el número del mes (0-12) i retorne el nombre de dies que té.

Exemple: Entrada i eixida
Entrada
1
Eixida
31
Entrada
2
Eixida
28
Entrada
4
Eixida
30

robot_face_generator.py

Dissenya un programa que genere cares de robots.

La persona usuària introduirà:

  • El tipus de monyo: arrissat (__@@@@@__), llis (__VVVVV__) o despentinat (__XXXXX__).
  • El tipus d'ulls: aclucats (__.-.-.__), redons (__.o-o.__) o estrellats (__.*-*.__).
  • El tipus de nas: xato (__..0..__), arromangat (__..C..__) o aguilenc (__..V..__).
  • El tipus de boca: normal (__.===.__), bigot (__.~~~.__) o dents (__.www.__).
Exemple: Entrada i eixida
Entrada
arrissats
redons
xato
normal
Eixida
@@@@@
.o-o.
..0..
.===.

inside_circle.py

Fes un programa que avalue si el punt de coordenades (x,y) es troba dins d'una circumferència descrita pel seu centre (a,b) i el seu radi (r)

Imprimeix si el punt està dins o fora del cercle.

Exemple: Entrada i eixida
Entrada
1
1
0
0
2
Eixida
El punt està dins del cercle.
Entrada
2
2
0
0
2
Eixida
El punt està fora del cercle.

triangle_type.py

Crea un programa que demane a la persona usuària la longitud dels tres costats d'un triangle i determine si és:

  • Equilàter: els tres costats són iguals.
  • Isòsceles: dos costats són iguals.
  • Escalè: els tres costats són diferents.
Exemple: Entrada i eixida
Entrada
5
5
5
Eixida
Equilàter
Entrada
5
5
3
Eixida
Isòsceles
Entrada
5
4
3
Eixida
Escalè

chose_your_own_adventure.py

Crea un programa que simule un joc de Tria la teua pròpia aventura, tenint en compte l'esquema següent:

graph TB
  island[Et despertes a una illa de nit. L'últim que recordes és ofegar-te.] --> islandQ{Què vols fer?} 
  islandQ-->|1. Espere|wait1[S'ha fet de dia. Tens molta fam]
  wait1--> wait1Q{Què vols fer?}
  wait1Q-->|1. Espere|dead[Has mort de fam]
  wait1Q-->|2. Vaig a cercar menjar|dayFindFood[Hi ha una palmera amb cocos]
  dayFindFood --> dayFindFoodQ{Què vols fer?}
  dayFindFoodQ -->|1. No hi puge, és perillós|dead
  dayFindFoodQ -->|2. Vaig a pujar!|scaped[Des de dalt de la palmera veus un vaixell. Estàs salvat!]
  islandQ-->|2. Vaig a cercar menjar|nightFindFood[És de nit, no veus res. T'esperes igualment]
  nightFindFood --> wait1
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.