ASIX-M3-UF1-A2.1-Solucions Exercicis estructura alternativa
A2.1 Exercicis estructura alternativa
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).
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 = float(input("Introdueix el nombre d'hores treballades: "))
torn = input("Introdueix el torn (dia o nit): ")
dia = input("Introdueix el dia (laborable o festiu): ")
# Determinar salari
if dia == 'laborable':
if torn == 'dia':
salari = hores * DIA
else:
salari = hores * NIT
elif torn == 'dia':
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: "))
num2 = int(input("Introdueix un altre valor enter: "))
operacio = input("Introdueix l'operació ('+' , '-' , '*' , '/' , '//' , '%': ")
# 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")