Diferència entre revisions de la pàgina «ASIX-M3-UF1-A2.1-Exercicis estructura alternativa»

De wikiserver
Dreceres ràpides: navegació, cerca
(Exercicis sentencia if)
 
(17 revisions intermèdies per 2 usuaris que no es mostren)
Línia 2: Línia 2:
  
 
1. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat (>=5).  
 
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.  
 
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.  
 
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).
 
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==
 
==Exercicis sentencia if==
Línia 90: Línia 14:
 
:a. La tarifa de les hores diürnes és de 4€
 
:a. La tarifa de les hores diürnes és de 4€
 
:b. La tarifa de les hores nocturnes és de 6€
 
: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.
+
:c. En cas de ser festiu, 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
+
El programa ha de llegir les hores treballades, el torn i el dia (festiu o laborable) i dir quin serà el salari.
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.  
 
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.
 
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 dígits d'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).  
 
4. Volem saber si una persona és major d’edat, per això llegirem la data de naixement(dia_neix, mes_neix i any_neix).  
Línia 213: Línia 35:
 
ANY_ACTUAL = AVUI.year
 
ANY_ACTUAL = AVUI.year
 
</source>
 
</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.
 
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.
 
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="python">
<!--
+
isinstance(variable, type))
<source lang="phyton">
 
print("Programa xifres d'un número")       
 
 
 
# Determinar majoria d'edat
 
 
 
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 >= 0 and numero <10: 
 
      xifres = 1
 
    elif numero >= 10 and numero <100:
 
        xifres = 2
 
    elif numero >= 100 and numero <1000:
 
        xifres = 3
 
    elif numero >= 1000 and numero <10000:
 
        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-10000" %numero) # Número fora del rang
 
except ValueError:       
 
  print("La entrada és incorrecte: escriu un número enter!")  # No és un enter
 
 
</source>
 
</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:
 
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:
Línia 294: Línia 53:
 
<source lang="python">
 
<source lang="python">
 
from random import randint
 
from random import randint
 
+
r=randint(1,6)  
# 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>
 
</source>
-->
 
 
 
7. Demaneu tres números enters positius i mostreu-los en ordre descendent.
 
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.
 
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:
 
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:
Línia 387: Línia 68:
  
 
Quan costaran les tres entrades?
 
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>
 
-->
 

Revisió de 19:22, 10 oct 2023

Exercicis preliminars

1. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat (>=5).

2. Escriure un programa que demani una nota d'una prova i ens digui si ha aprovat o ha suspès.

3. Escriure un programa que demani dos números i digui si són iguals o 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 festiu, 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 (festiu o laborable) i dir quin serà el 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.

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.

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

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.

isinstance(variable, type))

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
r=randint(1,6)

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.

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?