Diferència entre revisions de la pàgina «ASIX-M3-UF1-A2.1-Solucions Exercicis estructura alternativa»
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | + | '''Exercicis preliminars''' | |
− | 1. | + | 1. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat (>=5). |
<source lang="python"> | <source lang="python"> | ||
− | print("Programa | + | print("Programa per determinar si una prova està aprovada") |
− | #Entrada | + | # Constant nota aprovat |
− | + | ||
− | + | NOTA_APROVAT = 5.0 | |
+ | |||
+ | # Entrada nota prova | ||
+ | |||
+ | nota = float(input("Introdueix la nota de la prova: ")) | ||
+ | |||
+ | # Determinar si la prova està aprovada | ||
+ | |||
+ | if (nota >= NOTA_APROVAT): | ||
+ | print("L'alumne ha aprovat!") | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
− | 2. | + | 2. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat o ha suspès. |
<source lang="python"> | <source lang="python"> | ||
− | print("Programa | + | print("Programa per determinar si una prova està aprovada o suspesa") |
− | # Constant | + | # Constant nota aprovat |
− | |||
− | + | NOTA_APROVAT = 5.0 | |
− | |||
− | # | + | # Entrada nota prova |
− | + | ||
+ | nota = float(input("Introdueix la nota de la prova: ")) | ||
+ | |||
+ | # Determinar si la prova està aprovada | ||
+ | |||
+ | if (nota >= NOTA_APROVAT): | ||
+ | print("L'alumne ha aprovat!") | ||
+ | else: | ||
+ | print("L'alumne ha suspès!") | ||
</source> | </source> | ||
− | 3. | + | 3. Escriure un programa que demani dos números i digui si són iguals o diferents. |
+ | |||
+ | <source lang="python"> | ||
+ | print("Programa per deternimar si dos números són iguals o no") | ||
+ | |||
+ | # Entrada de números | ||
+ | |||
+ | numero_1 = float(input("Introdueix un número: ")) | ||
+ | numero_2 = float(input("Introdueix un altre número: ")) | ||
+ | |||
+ | # Determinar si dos números són iguals o no | ||
− | + | if (numero_1 == numero_2): | |
+ | print("Els números són iguals!") | ||
+ | else: | ||
+ | print("Els números són diferents!") | ||
+ | </source> | ||
− | |||
− | |||
− | |||
− | + | 4. Escriure un programa que provi d'endevinar un número secret (poseu el número secret com a constant). | |
<source lang="python"> | <source lang="python"> | ||
− | print("Programa | + | print("Programa per endevinar un número secret (0, )") |
+ | |||
+ | # Constant número secret | ||
+ | |||
+ | NUM_SECRET = 9 | ||
− | # | + | # Entrada del número |
− | |||
− | |||
− | |||
− | + | numero = int(input("Endivina el número secret: ")) | |
− | |||
− | # | + | # Determinar encert del número secret |
− | |||
− | |||
− | |||
− | + | if (numero == NUM_SECRET): | |
− | print(" | + | print("Enhorabona!") |
− | + | else: | |
− | print(" | + | print("Ho sento! Torna-ho a intentar...") |
</source> | </source> | ||
− | + | '''Exercicis sentencia if''' | |
− | : | + | 1. Els treballadors d’una fàbrica treballen en dos torns: diürn i nocturn. Es vol calcular el salari d’un dia d’acord amb els següents punts: |
− | : | + | :a. La tarifa de les hores diürnes és de 4€ |
− | : | + | :b. La tarifa de les hores nocturnes és de 6€ |
+ | :c. En cas de ser diumenge, la tarifa s’incrementa en 2€ el torn diari i en 3€ el torn nocturn. | ||
+ | El programa ha de llegir les hores treballades, el torn i el dia de la setmana i dir quin serà el salari. | ||
+ | |||
+ | <source lang="phyton"> | ||
+ | print("Programa per calcular el salari d'un dia de treball") | ||
+ | |||
+ | # Constants tarifes | ||
+ | |||
+ | DIA = 4 | ||
+ | DIAFESTIU = 6 | ||
+ | NIT = 6 | ||
+ | NITFESTIU = 9 | ||
+ | |||
+ | # Entrada hores, torn i dies | ||
+ | |||
+ | hores = int(input("Introdueix el nombre d'hores treballades: ")) | ||
+ | torn = input("Introdueix el torn (diari ->d/nocturn->n): ") | ||
+ | dia = input("Introdueix el dia (diumenge->d/feiner->f): ") | ||
+ | |||
+ | # Determinar salari | ||
+ | |||
+ | if dia == 'f': | ||
+ | if torn == 'd': | ||
+ | salari = hores * DIA | ||
+ | else: | ||
+ | salari = hores * NIT | ||
+ | elif torn == 'd': | ||
+ | salari = hores * DIAFESTIU | ||
+ | else: | ||
+ | salari = hores * NITFESTIU | ||
+ | |||
+ | # Resultat: salari del dia | ||
+ | |||
+ | print("El salari és: %d €" %salari); | ||
+ | </source> | ||
+ | |||
+ | |||
+ | 2. Escriviu un programa que simuli una calculadora simple. El programa llegeix dos enters i un caràcter. Si el caràcter és un '+' s’imprimeix la suma, si és un '–' la resta, si és un '*' el producte, si és un '/' la divisió real, si és '//' la divisió entera i si és un '%', el mòdul. | ||
+ | |||
+ | <source lang="phyton"> | ||
+ | print("Programa calculadora simple") | ||
+ | |||
+ | # Entrada números i operació | ||
+ | |||
+ | num1 = int(input("Introdueix un valor enter: ")) | ||
+ | operacio = input("Introdueix l'operació ('+' , '-' , '*' , '/' , '//' , '%': ") | ||
+ | num2 = int(input("Introdueix un altre valor enter: ")) | ||
+ | |||
+ | |||
+ | # Operació | ||
+ | |||
+ | if operacio == '+': | ||
+ | resultat = num1 + num2 | ||
+ | elif operacio == '-': | ||
+ | resultat = num1 - num2 | ||
+ | elif operacio == '*': | ||
+ | resultat = num1 * num2 | ||
+ | elif operacio == '/': | ||
+ | resultat = num1 / num2 | ||
+ | elif operacio == '//': | ||
+ | resultat = num1 // num2 | ||
+ | else: | ||
+ | resultat = num1 % num2 | ||
+ | |||
+ | # Resultat de l'operació | ||
+ | |||
+ | if isinstance(resultat,float): | ||
+ | print("El resultat de l'operació és: %3.2f " %resultat) | ||
+ | else: | ||
+ | print("El resultat de l'operació és: %d " %resultat) | ||
+ | </source> | ||
+ | |||
+ | |||
+ | 3. Escriviu un programa que llegeixi del teclat un enter comprès entre 0 i 63 (inclosos) i ens digui el nombre de bits que necessitem per escriure’l en binari. No s’ha de fer servir cap funció calcular-ho, sinó simplement a base de '''if .. elif .. else''', recordant que a cada potència de 2 necessitem un bit més. | ||
+ | |||
+ | <source lang="phyton"> | ||
+ | print("Programa bits per representar en binari un número") | ||
+ | |||
+ | # Entrada número | ||
+ | |||
+ | valor = int(input("Introdueix un valor enter: ")) | ||
+ | |||
+ | # Validació del número entrat | ||
+ | |||
+ | if valor < 0 or valor > 63: | ||
+ | print("El número ha d'estar comprès en el rang [0:63]") | ||
+ | else: | ||
+ | |||
+ | # Obtenció del nombre de bits | ||
+ | |||
+ | if (valor < 2): | ||
+ | bits = 1 | ||
+ | elif (valor < 4): | ||
+ | bits = 2 | ||
+ | elif (valor < 8): | ||
+ | bits = 3 | ||
+ | elif (valor < 16): | ||
+ | bits = 4 | ||
+ | elif (valor < 32): | ||
+ | bits = 5 | ||
+ | else: | ||
+ | bits = 6; | ||
+ | |||
+ | # Número de bits del número | ||
+ | |||
+ | print("Necessitem %d bits " %bits) | ||
+ | </source> | ||
+ | |||
+ | |||
+ | 4. Volem saber si una persona és major d’edat, per això llegirem la data de naixement(dia_neix, mes_neix i any_neix). | ||
+ | |||
+ | : Utilitzeu el següent codi per obtenir dia, mes i any actual | ||
<source lang="python"> | <source lang="python"> | ||
− | + | from datetime import date | |
+ | |||
+ | #Dia, mes i any actual | ||
+ | |||
+ | AVUI = date.today() | ||
+ | DIA_ACTUAL = AVUI.day | ||
+ | MES_ACTUAL = AVUI.month | ||
+ | ANY_ACTUAL = AVUI.year | ||
+ | </source> | ||
− | + | <source lang="phyton"> | |
− | + | from datetime import date | |
− | |||
− | |||
− | + | print("Programa major d'edat") | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | # | + | # Constants dia, mes i any actual |
− | |||
− | |||
− | # | + | AVUI = date.today() |
− | print(" | + | DIA_ACTUAL = AVUI.day |
+ | MES_ACTUAL = AVUI.month | ||
+ | ANY_ACTUAL = AVUI.year | ||
+ | |||
+ | # Entrada dia, mes i any de neixement | ||
+ | |||
+ | dia_neix = int(input("Introdueix el dia de naixement: ")) | ||
+ | mes_neix = int(input("Introdueix el mes de naixement: ")) | ||
+ | any_neix = int(input("Introdueix el any de naixement: ")) | ||
+ | |||
+ | # Determinar majoria d'edat | ||
+ | |||
+ | if (ANY_ACTUAL - any_neix < 18): | ||
+ | print("Ets menor d'edat!") | ||
+ | elif (ANY_ACTUAL - any_neix > 18): | ||
+ | print("Ets major d'edat!") | ||
+ | elif (MES_ACTUAL > mes_neix): | ||
+ | print("Ets major d'edat!") | ||
+ | elif (MES_ACTUAL < mes_neix): | ||
+ | print("Ets menor d'edat!") | ||
+ | elif (DIA_ACTUAL >= dia_neix): | ||
+ | print("Ets major d'edat!") | ||
+ | else: | ||
+ | print("Ets menor d'edat!") | ||
</source> | </source> | ||
− | 5. | + | 5. Escriu un programa que llegeixi un número enter positiu i determini si es un número de 1, 2,3 o 4 xifres. |
+ | |||
+ | Control d'errors: Escriu els missatges pertinents si han introduït un valor fora del rang o si no han introduït un número enter. | ||
+ | |||
+ | |||
+ | <source lang="phyton"> | ||
+ | print("Programa xifres d'un número") | ||
− | + | # Entrada de dades | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | numero = input("Introdueix un número: ") | |
+ | try: | ||
+ | numero = int(numero) # En el cas de que no sigui un enter saltarà a la zona de excepcions | ||
+ | if numero >= 0 and numero <10000: | ||
+ | |||
+ | # Determinar les xifres del número | ||
+ | |||
+ | if numero <10: | ||
+ | xifres = 1 | ||
+ | elif numero <100: | ||
+ | xifres = 2 | ||
+ | elif numero <1000: | ||
+ | xifres = 3 | ||
+ | else: | ||
+ | xifres = 4 | ||
+ | print("El número %d és de %d xifres" %(numero,xifres)) # Xifres del número | ||
+ | else: | ||
+ | print("El número %d no és dins del rang [0..9999]" %numero) # Número fora del rang | ||
+ | except ValueError: | ||
+ | print("La entrada és incorrecte: escriu un número enter!") # No és un enter | ||
+ | </source> | ||
+ | |||
+ | |||
+ | 6. En un casino de jocs es desitja mostrar els missatges respectius per els punts obtinguts en el llançament de tres daus d'un client, d'acord als següents resultats: | ||
+ | |||
+ | :a) Si els tres daus són sis, mostrar el missatge "Excel·lent" | ||
+ | :b) Si dos daus són sis, mostrar el missatge "Molt bé" | ||
+ | :c) Si un dau és sis, mostrar el missatge "Regular" | ||
+ | :d) Si cap dau és sis, mostrar el missatge "Pèssim" | ||
+ | |||
+ | : Utilitzeu el següent codi per simular el llançament d'un dau | ||
<source lang="python"> | <source lang="python"> | ||
− | print("Programa | + | from random import randint |
+ | |||
+ | # Simulació del llançament d'un dau | ||
+ | |||
+ | dau = randint(1,6) | ||
+ | </source> | ||
+ | |||
+ | <source lang="phyton"> | ||
+ | from random import randint | ||
+ | |||
+ | print("Programa joc de daus") | ||
+ | |||
+ | # Simulació del llançament de 3 daus | ||
+ | |||
+ | dau1 = randint(1,6) | ||
+ | dau2 = randint(1,6) | ||
+ | dau3 = randint(1,6) | ||
− | + | print("Has tret: %d %d %d " %(dau1,dau2,dau3)) | |
− | |||
− | # | + | # Determinar quants sisos s'han obtingut en el llançament |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | if (dau1 == 6) and (dau2 ==6) and (dau3 ==6): | |
− | print(" | + | print("Excel·lent!") |
− | + | elif ((dau1 == 6) and (dau2 ==6)) or ((dau1 == 6) and (dau3 == 6)) or ((dau2 == 6) and (dau3 == 6)): | |
+ | print("Molt bé!") | ||
+ | elif (dau1 == 6) or (dau2 ==6) or (dau3 == 6): | ||
+ | print("Regular") | ||
+ | else: | ||
+ | print("Pèssim") | ||
</source> | </source> | ||
− | + | 7. Demaneu tres números enters positius i mostreu-los en ordre descendent. | |
+ | |||
+ | Control d'errors: Escriu els missatges pertinents si han introduït un valor negatiu, si no han introduït un enter o si han introduït números iguals. | ||
+ | |||
+ | <source lang="phyton"> | ||
+ | print("Ordenació de tres números enters positius") | ||
+ | |||
+ | # Entrada dels 3 números | ||
− | : | + | num1 = input("Introdueix un número: ") |
− | + | num2 = input("Introdueix un segon número: ") | |
− | : | + | num3 = input("Introdueix un tercer número: ") |
− | |||
− | : | ||
− | <source lang=" | + | try: |
− | print(" | + | num1 = int(num1) # En el cas de que no siguin enters saltarà a la zona de excepcions |
+ | num2 = int(num2) | ||
+ | num3 = int(num3) | ||
+ | |||
+ | if num1 >= 0 and num2 >= 0 and num3 >= 0: # Comprovació números positius | ||
+ | |||
+ | if not (num1 == num2 or num1 == num3 or num2 == num3): # Comprovació números diferents | ||
+ | |||
+ | if num1 > num2 and num1 > num3: | ||
+ | if num2 > num3: | ||
+ | print(" %d %d %d" %(num1,num2,num3)) | ||
+ | else: | ||
+ | print(" %d %d %d" %(num1,num3,num2)) | ||
+ | |||
+ | elif num2 > num3: | ||
+ | if num1 > num3: | ||
+ | print(" %d %d %d" %(num2,num1,num3)) | ||
+ | else: | ||
+ | print(" %d %d %d" %(num2,num3,num1)) | ||
+ | |||
+ | elif num1 > num2: | ||
+ | print(" %d %d %d" %(num3,num1,num2)) | ||
+ | else: | ||
+ | print(" %d %d %d" %(num3,num2,num1)) | ||
+ | |||
+ | else: | ||
+ | print("Els números no són diferents!") | ||
+ | else: | ||
+ | print("Els números no són enters positius!") | ||
+ | |||
+ | except ValueError: | ||
+ | print("La entrada és incorrecte: escriu només números enters positius!") # No són números enters | ||
+ | </source> | ||
+ | |||
+ | |||
+ | 8. Tres persones les edats de les quals s’han de llegir per teclat, van a un parc d’atraccions. El cost de l’entrada normal és de 20€. Però tenen els següents descomptes: | ||
+ | |||
+ | :A. Els menors de 5 anys no paguen però han d’anar acompanyats d’algun més gran de 12 anys, sinó no poden entrar | ||
+ | :B. Entre els 5 i els 12 anys paguen el 25 % de l’entrada | ||
+ | :C. Entre els 12 anys i els 16 anys paguen el 50 % de l’entrada | ||
+ | :D. Els més grans de 16 anys paguen l’entrada normal, excepte que els tres estiguin entre els 16 i els 18 anys, que aquest cas com hi ha una oferta, només pagaran dues entrades normals entre els tres. | ||
+ | :E. Els més grans de 65 anys no paguen | ||
+ | |||
+ | Quan costaran les tres entrades? | ||
+ | |||
+ | |||
+ | <source lang="phyton"> | ||
+ | print("Import entrades parc d'atraccions") | ||
+ | |||
+ | # Entrada edats de les tres persones | ||
+ | |||
+ | edat_P1 = int(input("Introdueix l'edat de la primera persona: ")) | ||
+ | edat_P2 = int(input("Introdueix l'edat de la segona persona: ")) | ||
+ | edat_P3 = int(input("Introdueix l'edat de la tercera persona: ")) | ||
+ | |||
+ | # Comprovem si poden entrar... | ||
+ | |||
+ | if (((edat_P1 < 5) or (edat_P2 < 5) or (edat_P3 < 5)) and (edat_P1 < 12) and (edat_P2 < 12) and (edat_P3 < 12)): | ||
+ | print("NO ENTREN!!!"); | ||
+ | else: | ||
+ | |||
+ | # Comprovem si tenen dret a l'oferta... | ||
+ | |||
+ | if ((edat_P1 >= 16) and (edat_P1 < 18) and (edat_P2 >= 16) and (edat_P2 < 18) and (edat_P3 >= 16) and (edat_P3 < 18)): | ||
+ | total = 40 | ||
+ | else: | ||
+ | # Fem el calcul per la primera persona | ||
+ | |||
+ | if ((edat_P1 >= 5) and (edat_P1 < 12)): | ||
+ | ent_P1 = 5 | ||
+ | elif ((edat_P1 >= 12) and (edat_P1 < 16)): | ||
+ | ent_P1 = 10 | ||
+ | elif ((edat_P1 >= 16) and (edat_P1 < 65)): | ||
+ | ent_P1 = 20 | ||
+ | else: | ||
+ | ent_P1 = 0 | ||
+ | |||
+ | # Ho repetim per a la segona persona | ||
+ | |||
+ | if ((edat_P2 >= 5) and (edat_P2 < 12)): | ||
+ | ent_P2 = 5 | ||
+ | elif ((edat_P2 >= 12) and (edat_P2 < 16)): | ||
+ | ent_P2 = 10 | ||
+ | elif ((edat_P2 >= 16) and (edat_P2 < 65)): | ||
+ | ent_P2 = 20 | ||
+ | else: | ||
+ | ent_P2 = 0 | ||
+ | |||
+ | # Ho repetim per a la tercera persona | ||
− | + | if ((edat_P3 >= 5) and (edat_P3 < 12)): | |
− | + | ent_P3 = 5 | |
− | + | elif ((edat_P3 >= 12) and (edat_P3 < 16)): | |
− | + | ent_P3 = 10 | |
− | + | elif ((edat_P3 >= 16) and (edat_P3 < 65)): | |
− | + | ent_P3 = 20 | |
+ | else: | ||
+ | ent_P3 = 0 | ||
− | # | + | # Calculem el total de les entrades |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | total = ent_P1 + ent_P2 + ent_P3 | |
− | + | ||
− | + | print("El cost de les entrades es de %d €" %total) | |
− | print(" | ||
</source> | </source> |
Revisió de 15:25, 20 nov 2023
Exercicis preliminars
1. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat (>=5).
print("Programa per determinar si una prova està aprovada")
# Constant nota aprovat
NOTA_APROVAT = 5.0
# Entrada nota prova
nota = float(input("Introdueix la nota de la prova: "))
# Determinar si la prova està aprovada
if (nota >= NOTA_APROVAT):
print("L'alumne ha aprovat!")
2. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat o ha suspès.
print("Programa per determinar si una prova està aprovada o suspesa")
# Constant nota aprovat
NOTA_APROVAT = 5.0
# Entrada nota prova
nota = float(input("Introdueix la nota de la prova: "))
# Determinar si la prova està aprovada
if (nota >= NOTA_APROVAT):
print("L'alumne ha aprovat!")
else:
print("L'alumne ha suspès!")
3. Escriure un programa que demani dos números i digui si són iguals o diferents.
print("Programa per deternimar si dos números són iguals o no")
# Entrada de números
numero_1 = float(input("Introdueix un número: "))
numero_2 = float(input("Introdueix un altre número: "))
# Determinar si dos números són iguals o no
if (numero_1 == numero_2):
print("Els números són iguals!")
else:
print("Els números són diferents!")
4. Escriure un programa que provi d'endevinar un número secret (poseu el número secret com a constant).
print("Programa per endevinar un número secret (0, )")
# Constant número secret
NUM_SECRET = 9
# Entrada del número
numero = int(input("Endivina el número secret: "))
# Determinar encert del número secret
if (numero == NUM_SECRET):
print("Enhorabona!")
else:
print("Ho sento! Torna-ho a intentar...")
Exercicis sentencia if
1. Els treballadors d’una fàbrica treballen en dos torns: diürn i nocturn. Es vol calcular el salari d’un dia d’acord amb els següents punts:
- a. La tarifa de les hores diürnes és de 4€
- b. La tarifa de les hores nocturnes és de 6€
- c. En cas de ser diumenge, la tarifa s’incrementa en 2€ el torn diari i en 3€ el torn nocturn.
El programa ha de llegir les hores treballades, el torn i el dia de la setmana i dir quin serà el salari.
print("Programa per calcular el salari d'un dia de treball")
# Constants tarifes
DIA = 4
DIAFESTIU = 6
NIT = 6
NITFESTIU = 9
# Entrada hores, torn i dies
hores = int(input("Introdueix el nombre d'hores treballades: "))
torn = input("Introdueix el torn (diari ->d/nocturn->n): ")
dia = input("Introdueix el dia (diumenge->d/feiner->f): ")
# Determinar salari
if dia == 'f':
if torn == 'd':
salari = hores * DIA
else:
salari = hores * NIT
elif torn == 'd':
salari = hores * DIAFESTIU
else:
salari = hores * NITFESTIU
# Resultat: salari del dia
print("El salari és: %d €" %salari);
2. Escriviu un programa que simuli una calculadora simple. El programa llegeix dos enters i un caràcter. Si el caràcter és un '+' s’imprimeix la suma, si és un '–' la resta, si és un '*' el producte, si és un '/' la divisió real, si és '//' la divisió entera i si és un '%', el mòdul.
print("Programa calculadora simple")
# Entrada números i operació
num1 = int(input("Introdueix un valor enter: "))
operacio = input("Introdueix l'operació ('+' , '-' , '*' , '/' , '//' , '%': ")
num2 = int(input("Introdueix un altre valor enter: "))
# Operació
if operacio == '+':
resultat = num1 + num2
elif operacio == '-':
resultat = num1 - num2
elif operacio == '*':
resultat = num1 * num2
elif operacio == '/':
resultat = num1 / num2
elif operacio == '//':
resultat = num1 // num2
else:
resultat = num1 % num2
# Resultat de l'operació
if isinstance(resultat,float):
print("El resultat de l'operació és: %3.2f " %resultat)
else:
print("El resultat de l'operació és: %d " %resultat)
3. Escriviu un programa que llegeixi del teclat un enter comprès entre 0 i 63 (inclosos) i ens digui el nombre de bits que necessitem per escriure’l en binari. No s’ha de fer servir cap funció calcular-ho, sinó simplement a base de if .. elif .. else, recordant que a cada potència de 2 necessitem un bit més.
print("Programa bits per representar en binari un número")
# Entrada número
valor = int(input("Introdueix un valor enter: "))
# Validació del número entrat
if valor < 0 or valor > 63:
print("El número ha d'estar comprès en el rang [0:63]")
else:
# Obtenció del nombre de bits
if (valor < 2):
bits = 1
elif (valor < 4):
bits = 2
elif (valor < 8):
bits = 3
elif (valor < 16):
bits = 4
elif (valor < 32):
bits = 5
else:
bits = 6;
# Número de bits del número
print("Necessitem %d bits " %bits)
4. Volem saber si una persona és major d’edat, per això llegirem la data de naixement(dia_neix, mes_neix i any_neix).
- Utilitzeu el següent codi per obtenir dia, mes i any actual
from datetime import date
#Dia, mes i any actual
AVUI = date.today()
DIA_ACTUAL = AVUI.day
MES_ACTUAL = AVUI.month
ANY_ACTUAL = AVUI.year
from datetime import date
print("Programa major d'edat")
# Constants dia, mes i any actual
AVUI = date.today()
DIA_ACTUAL = AVUI.day
MES_ACTUAL = AVUI.month
ANY_ACTUAL = AVUI.year
# Entrada dia, mes i any de neixement
dia_neix = int(input("Introdueix el dia de naixement: "))
mes_neix = int(input("Introdueix el mes de naixement: "))
any_neix = int(input("Introdueix el any de naixement: "))
# Determinar majoria d'edat
if (ANY_ACTUAL - any_neix < 18):
print("Ets menor d'edat!")
elif (ANY_ACTUAL - any_neix > 18):
print("Ets major d'edat!")
elif (MES_ACTUAL > mes_neix):
print("Ets major d'edat!")
elif (MES_ACTUAL < mes_neix):
print("Ets menor d'edat!")
elif (DIA_ACTUAL >= dia_neix):
print("Ets major d'edat!")
else:
print("Ets menor d'edat!")
5. Escriu un programa que llegeixi un número enter positiu i determini si es un número de 1, 2,3 o 4 xifres.
Control d'errors: Escriu els missatges pertinents si han introduït un valor fora del rang o si no han introduït un número enter.
print("Programa xifres d'un número")
# Entrada de dades
numero = input("Introdueix un número: ")
try:
numero = int(numero) # En el cas de que no sigui un enter saltarà a la zona de excepcions
if numero >= 0 and numero <10000:
# Determinar les xifres del número
if numero <10:
xifres = 1
elif numero <100:
xifres = 2
elif numero <1000:
xifres = 3
else:
xifres = 4
print("El número %d és de %d xifres" %(numero,xifres)) # Xifres del número
else:
print("El número %d no és dins del rang [0..9999]" %numero) # Número fora del rang
except ValueError:
print("La entrada és incorrecte: escriu un número enter!") # No és un enter
6. En un casino de jocs es desitja mostrar els missatges respectius per els punts obtinguts en el llançament de tres daus d'un client, d'acord als següents resultats:
- a) Si els tres daus són sis, mostrar el missatge "Excel·lent"
- b) Si dos daus són sis, mostrar el missatge "Molt bé"
- c) Si un dau és sis, mostrar el missatge "Regular"
- d) Si cap dau és sis, mostrar el missatge "Pèssim"
- Utilitzeu el següent codi per simular el llançament d'un dau
from random import randint
# Simulació del llançament d'un dau
dau = randint(1,6)
from random import randint
print("Programa joc de daus")
# Simulació del llançament de 3 daus
dau1 = randint(1,6)
dau2 = randint(1,6)
dau3 = randint(1,6)
print("Has tret: %d %d %d " %(dau1,dau2,dau3))
# Determinar quants sisos s'han obtingut en el llançament
if (dau1 == 6) and (dau2 ==6) and (dau3 ==6):
print("Excel·lent!")
elif ((dau1 == 6) and (dau2 ==6)) or ((dau1 == 6) and (dau3 == 6)) or ((dau2 == 6) and (dau3 == 6)):
print("Molt bé!")
elif (dau1 == 6) or (dau2 ==6) or (dau3 == 6):
print("Regular")
else:
print("Pèssim")
7. Demaneu tres números enters positius i mostreu-los en ordre descendent.
Control d'errors: Escriu els missatges pertinents si han introduït un valor negatiu, si no han introduït un enter o si han introduït números iguals.
print("Ordenació de tres números enters positius")
# Entrada dels 3 números
num1 = input("Introdueix un número: ")
num2 = input("Introdueix un segon número: ")
num3 = input("Introdueix un tercer número: ")
try:
num1 = int(num1) # En el cas de que no siguin enters saltarà a la zona de excepcions
num2 = int(num2)
num3 = int(num3)
if num1 >= 0 and num2 >= 0 and num3 >= 0: # Comprovació números positius
if not (num1 == num2 or num1 == num3 or num2 == num3): # Comprovació números diferents
if num1 > num2 and num1 > num3:
if num2 > num3:
print(" %d %d %d" %(num1,num2,num3))
else:
print(" %d %d %d" %(num1,num3,num2))
elif num2 > num3:
if num1 > num3:
print(" %d %d %d" %(num2,num1,num3))
else:
print(" %d %d %d" %(num2,num3,num1))
elif num1 > num2:
print(" %d %d %d" %(num3,num1,num2))
else:
print(" %d %d %d" %(num3,num2,num1))
else:
print("Els números no són diferents!")
else:
print("Els números no són enters positius!")
except ValueError:
print("La entrada és incorrecte: escriu només números enters positius!") # No són números enters
8. Tres persones les edats de les quals s’han de llegir per teclat, van a un parc d’atraccions. El cost de l’entrada normal és de 20€. Però tenen els següents descomptes:
- A. Els menors de 5 anys no paguen però han d’anar acompanyats d’algun més gran de 12 anys, sinó no poden entrar
- B. Entre els 5 i els 12 anys paguen el 25 % de l’entrada
- C. Entre els 12 anys i els 16 anys paguen el 50 % de l’entrada
- D. Els més grans de 16 anys paguen l’entrada normal, excepte que els tres estiguin entre els 16 i els 18 anys, que aquest cas com hi ha una oferta, només pagaran dues entrades normals entre els tres.
- E. Els més grans de 65 anys no paguen
Quan costaran les tres entrades?
print("Import entrades parc d'atraccions")
# Entrada edats de les tres persones
edat_P1 = int(input("Introdueix l'edat de la primera persona: "))
edat_P2 = int(input("Introdueix l'edat de la segona persona: "))
edat_P3 = int(input("Introdueix l'edat de la tercera persona: "))
# Comprovem si poden entrar...
if (((edat_P1 < 5) or (edat_P2 < 5) or (edat_P3 < 5)) and (edat_P1 < 12) and (edat_P2 < 12) and (edat_P3 < 12)):
print("NO ENTREN!!!");
else:
# Comprovem si tenen dret a l'oferta...
if ((edat_P1 >= 16) and (edat_P1 < 18) and (edat_P2 >= 16) and (edat_P2 < 18) and (edat_P3 >= 16) and (edat_P3 < 18)):
total = 40
else:
# Fem el calcul per la primera persona
if ((edat_P1 >= 5) and (edat_P1 < 12)):
ent_P1 = 5
elif ((edat_P1 >= 12) and (edat_P1 < 16)):
ent_P1 = 10
elif ((edat_P1 >= 16) and (edat_P1 < 65)):
ent_P1 = 20
else:
ent_P1 = 0
# Ho repetim per a la segona persona
if ((edat_P2 >= 5) and (edat_P2 < 12)):
ent_P2 = 5
elif ((edat_P2 >= 12) and (edat_P2 < 16)):
ent_P2 = 10
elif ((edat_P2 >= 16) and (edat_P2 < 65)):
ent_P2 = 20
else:
ent_P2 = 0
# Ho repetim per a la tercera persona
if ((edat_P3 >= 5) and (edat_P3 < 12)):
ent_P3 = 5
elif ((edat_P3 >= 12) and (edat_P3 < 16)):
ent_P3 = 10
elif ((edat_P3 >= 16) and (edat_P3 < 65)):
ent_P3 = 20
else:
ent_P3 = 0
# Calculem el total de les entrades
total = ent_P1 + ent_P2 + ent_P3
print("El cost de les entrades es de %d €" %total)