|
|
Línia 1: |
Línia 1: |
− | == 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).
| |
− |
| |
− | <source lang="python">
| |
− | 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!")
| |
− |
| |
− | </source>
| |
− | <!---->
| |
− |
| |
− | 2. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat o ha suspès.
| |
− |
| |
− | <source lang="python">
| |
− | 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!")
| |
− | </source>
| |
− | <!---->
| |
− |
| |
− | 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">
| |
− | 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...")
| |
− | </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 = 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);
| |
− | </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: "))
| |
− | 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)
| |
− | </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">
| |
− | 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()
| |
− | 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>
| |
− | <!---->
| |
− |
| |
− | 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">
| |
− | 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("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>
| |
− | <!---->
| |
− |
| |
− | 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: ")
| |
− |
| |
− | 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
| |
− | </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)
| |
− | </source>
| |
− | <!---->
| |