Diferència entre revisions de la pàgina «ASIX-M3-UF1-Banc de Solucions»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «A1.1 Exercicis seqüencials A2.1-Exercicis estructura alternativa A2.2-Exercicis avaluar expressions lògiques A2.3-Exercicis trobar expressions lògiques A2.4-Exe...».)
 
Línia 1: Línia 1:
 
A1.1 Exercicis seqüencials
 
A1.1 Exercicis seqüencials
 +
 +
1. Volem un programa que donat dos números enters ens mostri el resultat de les cinc operacions aritmètiques fetes amb aquests valors.
 +
 +
<source lang="python">
 +
print("Programa operacions enteres")
 +
 +
#Entrada de dades
 +
num1 = int(input("Introudeix un número: "))
 +
num2 = int(input("Introudeix un altre número: "))
 +
 +
# Operacions i resultats
 +
resultat = num1 + num2
 +
print("EL resultat de la suma és: ",resultat)
 +
resultat = num1 - num2
 +
print("EL resultat de la resta és: ",resultat)
 +
resultat = num1 * num2
 +
print("EL resultat de la multiplicación és: ",resultat)
 +
resultat = num1 / num2
 +
print("EL resultat de la división és: ",resultat)
 +
resultat = num1 ** num2
 +
print("EL resultat de la potencia és: ",resultat)
 +
</source>
 +
<!---->
 +
 +
2. L’amo d’una botiga compra un article a un determinat preu. Mostreu el preu al qual el vendrà, si intenta guanyar un 30%.
 +
 +
<source lang="python">
 +
print("Programa benefici botiga")
 +
 +
# Constant percentatge benefici
 +
PCT_BENEFICI = 1.3
 +
 +
# Entrada preu de compra del producte
 +
cost_producte = float(input("Introdueix el valor de compra: "))
 +
 +
# Resultat
 +
print("El valor de venda serà: %6.2f" %(cost_producte*PCT_BENEFICI))
 +
</source>
 +
<!---->
 +
 +
3. En un hospital existeixen tres departaments: Ginecologia, Pediatria i Traumatologia.
 +
 +
El pressupost anual de l’hospital es reparteix així:
 +
 +
:Ginecologia : 50%
 +
:Pediatria: 30%
 +
:Traumatologia: 20%
 +
 +
Obteniu la quantitat de diners que rebrà cada departament, per a qualsevol pressupost (que llegireu des de teclat).
 +
 +
<source lang="python">
 +
print("Programa pressupost hospital")
 +
 +
# Constants de percentatge del pressupost
 +
PCT_GIN =0.5
 +
PCT_PED =0.3
 +
PCT_TRA =0.2
 +
 +
# Entrada del pressupost de l'hostpital
 +
pressupost = float(input("Introdueix el pressupost de l'hospital: "))
 +
 +
# Càlcul del pressupost assignat a cada departament
 +
ginecologia = pressupost * PCT_GIN
 +
pediatria = pressupost * PCT_PED
 +
trauma = pressupost * PCT_TRA
 +
 +
# Resultat
 +
print("El pressupost de ginecologia és : %6.2f" %ginecologia)
 +
print("El pressupost de pediatria és : %6.2f" %pediatria)
 +
print("El pressupost de traumatologia és : %6.2f" %trauma)
 +
</source>
 +
<!---->
 +
 +
4. Un alumne vol saber la seva nota final de programació. Aquesta nota es calcula així:
 +
 +
:55% de la mitjana de tres exercicis
 +
:30% de la nota de l’examen
 +
:15% de la nota d’una pràctica final
 +
<!--
 +
<source lang="python">
 +
print("Programa nota programació")
 +
 +
# Constant percentatge de la nota final
 +
PCT_EXERC = 0.55
 +
PCT_EXAM = 0.3
 +
PCT_PRACT = 0.15
 +
 +
# Entrada de notes
 +
ex1 = float(input("Introdueix la nota de l'exercici 1: "))
 +
ex2 = float(input("Introdueix la nota de l'exercici 2: "))
 +
ex3 = float(input("Introdueix la nota de l'exercici 3: "))
 +
examen = float(input("Introdueix la nota de l'examen: "))
 +
practica = float(input("Introdueix la nota de la pràctica: "))
 +
 +
# Càlculs de notes parcials i final
 +
promig_ex=(ex1+ex2+ex3)/3;
 +
notaFinal=(promig_ex*PCT_EXERC)+(examen*PCT_EXAM)+(practica*PCT_PRACT);
 +
 +
# Resultat
 +
print("La nota final és: %2.2f" %notaFinal)
 +
</source>
 +
-->
 +
 +
5. Una família està formada per 6 membres: dos germans (Joan i Marta), els dos pares i els dos avis materns. De les seves edats sabem el següent:
 +
 +
:a. L’avi té sis vegades l’edat de la Marta
 +
:b. L’avia té la suma de les edats dels pares menys l’edat de la Marta
 +
:c. L’edat del Joan és el resultat de fer el mòdul entre l’edat del pare i la de la Marta
 +
:d. L’edat de la mare és el triple de l’edat de la Marta afegint-li l’edat del Joan
 +
:e. L’edat del pare és el resultat de multiplicar per 6, la divisió entera entre l’edat de l’avi i l’edat de la Marta.
 +
:f. La Marta té 10 anys.
 +
 +
Quants anys tenen tots ? Mostrar-ho per pantalla.
 +
<!--
 +
<source lang="python">
 +
print("Programa edat família Marta")
 +
 +
# Constant edat de Marta
 +
EDAT_MARTA = 10
 +
 +
# Càlcul edat familiars de Marta
 +
edat_avi = 6 * EDAT_MARTA;
 +
edat_pare = 6 * (edat_avi / EDAT_MARTA);
 +
edat_joan = edat_pare % EDAT_MARTA;
 +
edat_mare = 3 * EDAT_MARTA + edat_joan;
 +
edat_avia = edat_mare + edat_pare - EDAT_MARTA;
 +
 +
# Mostrar edats de la familia
 +
print("Edat Marta: %d \nEdat Joan: %d \nEdat mare: %d \nEdat pare: %d \nEdat avia: %d \nEdat avi: %d"
 +
      %(EDAT_MARTA, edat_joan, edat_mare, edat_pare, edat_avia, edat_avi))
 +
</source>
 +
-->
 +
 +
6. El següent és el sou dels treballadors d’una empresa. Dissenyar un algorisme capaç de llegir el nombre de treballadors de cada tipus i calcular el sou total que s’ha de pagar mensualment.
 +
 +
:a) Personal de neteja (500 euros)
 +
:b) Auxiliar administratiu (600 euros)
 +
:c) Administratiu (700 euros)
 +
:d) Informàtic (1200 euros)
 +
:e) Morro Consultant Senior (12000 euros)
 +
<!--
 +
<source lang="python">
 +
print("Programa pressupost departament")
 +
 +
# Constants de sous
 +
NETEJA = 500;
 +
AUX = 600;
 +
ADM = 700;
 +
INF = 1200;
 +
MORRO = 12000;
 +
 +
# Entrada del número de treballadors de cada perfil
 +
net = int(input("Introdueix el nombre de treballadors de neteja: "))
 +
aux =  int(input("Introdueix el nombre de treballadors auxiliars: "))
 +
adm =  int(input("Introdueix el nombre de treballadors administratius: "))
 +
inf  = int(input("Introdueix el nombre de treballadors informàtics: "))
 +
morro = int(input("Introdueix el nombre de treballadors amb morro: "))
 +
 +
# Càlcul de la nòmina mensual
 +
nomina = net * NETEJA + aux * AUX + adm * ADM + inf * INF + morro * MORRO;
 +
 +
# Resultat
 +
print("La nòmina mensual és de : %d euros" %nomina);
 +
</source>
 +
-->
  
 
A2.1-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).
 +
 +
<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>
 +
<!---->
  
 
A2.2-Exercicis avaluar expressions lògiques
 
A2.2-Exercicis avaluar expressions lògiques
 +
 +
 +
Avalueu les següents condicions en funció dels valors corresponents de les variables
 +
 +
1. ((y<x) or ((y>1) and (x>1)))
 +
<pre>
 +
a) x=1 y=1
 +
b) x=1 y=2
 +
c) x=2 y=1
 +
d) x=2 y=2
 +
e) x=0 y=0
 +
f) x=1 y=0
 +
</pre>
 +
 +
<pre>
 +
a) x=1 y=1 False
 +
b) x=1 y=2 False
 +
c) x=2 y=1 True
 +
d) x=2 y=2 True
 +
e) x=0 y=0 False
 +
f) x=1 y=0 True
 +
</pre>
 +
<!---->
 +
2. (((x>3) and (x<6)) or not((y>3) and (y<6)))  <==> (3<x<6) or not (3<y<6)
 +
<pre>
 +
a) x=3 y=3
 +
b) x=3 y=4
 +
c) x=4 y=3
 +
d) x=4 y=4
 +
</pre>
 +
 +
<pre>
 +
a) x=3 y=3 True
 +
b) x=3 y=4 False
 +
c) x=4 y=3 True
 +
d) x=4 y=4 True
 +
</pre>
 +
<!---->
 +
3. (z>x and z>y or x>=y)
 +
<pre>
 +
a) x=1 y=1 z=1
 +
b) x=1 y=2 z=3
 +
c) x=1 y=3 z=2
 +
d) x=2 y=1 z=3
 +
e) x=2 y=3 z=1
 +
f) x=3 y=2 z=1
 +
g) x=3 y=1 z=2
 +
</pre>
 +
 +
<pre>
 +
a) x=1 y=1 z=1 True
 +
b) x=1 y=2 z=3 True
 +
c) x=1 y=3 z=2 False
 +
d) x=2 y=1 z=3 True
 +
e) x=2 y=3 z=1 False
 +
f) x=3 y=2 z=1 True
 +
g) x=3 y=1 z=2 True
 +
</pre>
 +
<!---->
  
 
A2.3-Exercicis trobar expressions lògiques
 
A2.3-Exercicis trobar expressions lògiques
 +
 +
:*Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:
 +
<pre>
 +
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.
 +
b) Els valors de num1, num2 i num3 són idèntics.
 +
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.
 +
d) El valor de num2 està comprès, '''estrictament (<, >)''', entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.
 +
</pre>
 +
 +
<pre>
 +
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.
 +
 +
  (num2 > num4 and num3 > num4)
 +
 +
b) Els valors de num1, num2 i num3 són idèntics.
 +
 +
  (num1 == num2 and num1 == num3)  <==> num1==num2==num3
 +
 +
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.
 +
 +
  (num1 == num2 and num1 == num3 and num1 !=num4)  <==> num1==num2==num3!=num4
 +
 +
d) El valor de num2 està comprès, '''estrictament (<, >)''', entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.
 +
 +
  (num2 > num3 and num2 < num4)  <==> num3<num2<num4
 +
</pre>
 +
 +
<!---->
 +
 +
:*En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:
 +
<pre>
 +
a) La mitjana de les tres notes és superior a 5.
 +
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.
 +
c) Hi ha, com a mínim, una nota superior a 5.
 +
d) Totes les notes són superiors a 5.
 +
</pre>
 +
 +
<pre>
 +
a) La mitjana de les tres notes és superior a 5.
 +
 +
  ((notaLit + notaCat + notaMat) / 3) > 5
 +
 +
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.
 +
 +
  ((notaMat > (notaLit + notaCat * notaMat) / 3) and (notaCat > (notaLit + notaCat * notaMat) / 3))
 +
 +
c) Hi ha, com a mínim, una nota superior a 5.
 +
 +
  (notaLit > 5 or notaCat > 5 or notaMat > 5)
 +
 +
d) Totes les notes són superiors a 5.
 +
 +
  (notaLit > 5 and notaCat > 5 and notaMat > 5)
 +
</pre>
 +
<!---->
 +
:*Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.
 +
 +
:Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:
 +
<pre>
 +
a) Les vendes del producte P1 són les més elevades.
 +
b) Cap producte té unes vendes inferiors a 200.
 +
c) Algun producte té unes vendes superiors a 400.
 +
d) La mitjana de vendes és superior a 500.
 +
e) El producte P2 no és el més venut.
 +
f) El total de vendes està entre 500 i 1000.
 +
</pre>
 +
 +
<pre>
 +
a) Les vendes del producte P1 són les més elevades.
 +
 +
  (vendesP1 > vendesP2 and vendesP1 > vendesP3)
 +
 +
b) Cap producte té unes vendes inferiors a 200.
 +
 +
  (vendesP1 >= 200 and vendesP2>= 200 and vendesP3 >= 200)            ERROR!! A and B and C >= 200 Només analitza el valor C
 +
 +
c) Algun producte té unes vendes superiors a 400.
 +
 +
  (vendesP1 > 400 or vendesP2 > 400 or vendesP3 > 400)     
 +
 +
d) La mitjana de vendes és superior a 500.
 +
 +
  ((vendesP1 + vendesP2 + vendesP3) / 3) > 500
 +
 +
e) El producte P2 no és el més venut.
 +
 +
  (vendesP2 < vendesP1 or vendesP2 < vendesP3)
 +
 +
f) El total de vendes està entre 500 i 1000.
 +
 +
  ((vendesP1 + vendesP2 + vendesP3 >= 500) and (vendesP1 + vendesP2 + vendesP3 <= 1000))   
 +
  <==>  500 <= vendesP1+vendesP2+vendesP3 <= 1000
 +
</pre>
 +
<!---->
  
 
A2.4-Exercicis estructura iterativa
 
A2.4-Exercicis estructura iterativa
 +
 +
1. Imprimir els números del 1 al 100.
 +
 +
<source lang="python">
 +
print("Imprimir els números del 1 al 100")
 +
 +
for i in range(1,101):
 +
  print(i ,end= " ")
 +
</source>
 +
<!---->
 +
 +
2. Imprimir els números parells del 0 al 98.
 +
 +
<source lang="python">
 +
print("Imprimir els números parells del 0 al 98")
 +
 +
for i in range(0,100,2):
 +
  print(i ,end= " ")
 +
</source>
 +
<!---->
 +
 +
3. Imprimir els números del 100 al 1.
 +
 +
<source lang="python">
 +
print("Imprimir els números del 100 al 1")
 +
 +
for i in range(100,0,-1):
 +
  print(i ,end= " ")
 +
</source>
 +
<!---->
 +
 +
4. Demanar cinc números i mostrar la suma.
 +
 +
<source lang="python">
 +
print("Demanar cinc números i mostrar la suma")
 +
 +
suma = 0
 +
for _ in range(5):       
 +
  valor = int(input("Introdueix un valor: "))
 +
  suma += valor
 +
print("La suma és: %d" %suma)
 +
</source>
 +
<!---->
 +
 +
5. Igual que l'anterior però només sumant els valors més grans de 10.
 +
<!--
 +
<source lang="python">
 +
print("Demanar cinc números i sumar els valors que siguin més grans de 10")
 +
 +
suma = 0
 +
for _ in range(5):       
 +
  valor = int(input("Introdueix un valor: "))
 +
  if valor > 10:
 +
    suma += valor
 +
print("La suma és: %d" %suma)
 +
</source>
 +
-->
 +
 +
6. Calcular el producte dels números del 1 al 10.
 +
<!--
 +
<source lang="python">
 +
print("Calcular el producte dels números del 1 al 10")
 +
 +
mult =1
 +
for i in range(1,11):
 +
    mult=mult*i
 +
print("EL resultat és: ", mult)
 +
</source>
 +
-->
 +
 +
7. Demanar cinc números enters positius i mostrar el valor més gran.
 +
<!--
 +
<source lang="python">
 +
print("Demanar cinc números enters positius i mostrar el valor més gran")
 +
 +
max = 0
 +
for _ in range(5):
 +
  num = int(input("Introdueix un enter positiu: "))         
 +
  if num > max:
 +
    max = num
 +
print("El màxim és: ", max)
 +
</source>
 +
-->
 +
 +
8. Fer un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:
 +
<pre>
 +
    * * * * *
 +
    * * * * *
 +
    * * * * *
 +
    * * * * *
 +
    * * * * *
 +
</pre>
 +
<!--
 +
print("Quadrat n x n d'asteriscos")
 +
 +
num = int(input("Introdueix número d'asteriscos: "))
 +
for _ in range(num):
 +
  print("* "*num)
 +
</source>
 +
-->
 +
 +
9. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:
 +
<pre>
 +
    * * * * *
 +
    *      *
 +
    *      *
 +
    *      *
 +
    * * * * *
 +
</pre>
 +
<!--
 +
print("Quadrat n x n d'asteriscos buit")
 +
 +
num = int(input("Introdueix número d'asteriscos: "))
 +
for i in range(1, num+1):
 +
  if (i == 1 or i == num):
 +
    print("* "*num)
 +
  else:
 +
    print("* ",end='')
 +
    print("  "*(num-2), end='')
 +
    print("*")
 +
</source>
 +
-->
 +
 +
10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
 +
<pre>
 +
    *
 +
    * *
 +
    * * *
 +
    * * * *
 +
    * * * * *
 +
</pre>
 +
<!--
 +
print("Dibuix amb asteriscos de num línies")
 +
 +
num = int(input("Introdueix el número de línies: "))
 +
for i in range(1, num+1):
 +
  print("* "*i)
 +
</source>
 +
-->
 +
 +
11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
 +
<pre>
 +
    * * * * *
 +
    * * * *
 +
    * * *
 +
    * *
 +
    *
 +
</pre>
 +
<!--
 +
print("Dibuix amb asteriscos de num línies")
 +
 +
num = int(input("Introdueix el número de línies: "))
 +
for i in range(num, 0, -1):
 +
  print("* "*i)
 +
</source>
 +
-->
 +
 +
12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
 +
<pre>
 +
            *
 +
          * *
 +
        * * *
 +
      * * * *
 +
    * * * * *
 +
</pre>
 +
<!--
 +
<source lang="python">
 +
print("Dibuix amb asteriscos de num línies")
 +
 +
num = int(input("Introdueix el número de línies: "))
 +
for i in range(1,num+1):
 +
  print("  "*(num-i), end='')
 +
  print("* "*i)
 +
</source>
 +
-->
 +
 +
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
 +
<pre>
 +
    * * * * *
 +
      * * * *
 +
        * * *
 +
          * *
 +
            *
 +
</pre>
 +
<!--
 +
<source lang="python">
 +
print("Dibuix amb asteriscos de num línies")
 +
 +
num = int(input("Introdueix el número de línies: "))
 +
for i in range(num):
 +
  print("  "*i, end='')
 +
  print("* "*(num-i))
 +
</source>
 +
-->
 +
 +
'''Bucles niuats'''
 +
 +
14. Escriu un programa que llegeixi un número num i mostri per pantalla el següent:
 +
<pre>
 +
    Exemple num=5
 +
    1
 +
    1 2
 +
    1 2 3
 +
    1 2 3 4
 +
    1 2 3 4 5
 +
</pre>
 +
<!--
 +
<source lang="python">
 +
print("Dibuix amb números consecutius")
 +
 +
num = int(input("Introdueix un número enter positiu: "))
 +
for i in range(1,num+1):
 +
  for j in range(1,i+1):
 +
      print(j, end='')
 +
  print("")
 +
</source>
 +
-->
 +
 +
15. Escriu un programa que llegeixi un número i mostri per pantalla el següent:
 +
<pre>
 +
    Exemple num=5
 +
 +
    5 4 3 2 1
 +
    4 3 2 1
 +
    3 2 1
 +
    2 1
 +
    1
 +
</pre>
 +
<!--
 +
<source lang="python">
 +
print("Dibuix amb números consecutius")
 +
 +
num = int(input("Introdueix un número enter positiu: "))
 +
for i in range(num,0):
 +
  for j in range(num,0):
 +
      print(j, end='')
 +
  print("")
 +
</source>
 +
-->
 +
 +
16. Escriu un programa que llegeixi un número i mostri per pantalla el següent:
 +
<pre>
 +
    Exemple num=5
 +
 +
            1
 +
          2 1
 +
        3 2 1
 +
      4 3 2 1
 +
    5 4 3 2 1
 +
</pre>
 +
<!--
 +
<source lang="python">
 +
print("Dibuix amb números consecutius decreixents")
 +
 +
num = int(input("Introdueix un número enter positiu: "))
 +
for i in range(1,num+1):
 +
  for j in range(1,num-i):
 +
    print(j, end='')
 +
  for j in range(i,0):
 +
    print(j, end='')
 +
  print("")
 +
</source>
 +
-->
 +
 +
 +
17. Escriu un programa que llegeixi un número enter més gran que 0 i mostri el factorial de tots els números entre 1 i el número introduït.
 +
<pre>
 +
    Exemple num = 4
 +
 +
    1! = 1
 +
    2! = 2 * 1 = 2
 +
    3! = 3 * 2 * 1 = 6
 +
    4! = 4 * 3 * 2 * 1 = 24
 +
</pre>
 +
 +
<!--
 +
do{
 +
            System.out.print("Introduce un número > 0: ");
 +
            N = sc.nextInt();
 +
        }while(N<0);
 +
 +
        for(int i = 0; i <= N ; i++){ //para cada número desde 1 hasta N                                             
 +
         
 +
            //se calcula su factorial
 +
            factorial = 1;
 +
            for(int j = 1; j <= i; j++){
 +
                factorial = factorial * j;
 +
            }
 +
 +
            //se muestra el factorial
 +
            System.out.printf("%2d! = %.0f %n", i, factorial);
 +
-->
 +
 +
18. Escriu un programa que mostri la següent sortida:
 +
 +
<pre>
 +
ZYWXVUTSRQPONMLKJIHGFEDCBA
 +
YWXVUTSRQPONMLKJIHGFEDCBA
 +
WXVUTSRQPONMLKJIHGFEDCBA
 +
XVUTSRQPONMLKJIHGFEDCBA
 +
VUTSRQPONMLKJIHGFEDCBA
 +
UTSRQPONMLKJIHGFEDCBA
 +
TSRQPONMLKJIHGFEDCBA
 +
SRQPONMLKJIHGFEDCBA
 +
RQPONMLKJIHGFEDCBA
 +
QPONMLKJIHGFEDCBA
 +
PONMLKJIHGFEDCBA
 +
ONMLKJIHGFEDCBA
 +
NMLKJIHGFEDCBA
 +
MLKJIHGFEDCBA
 +
LKJIHGFEDCBA
 +
KJIHGFEDCBA
 +
JIHGFEDCBA
 +
IHGFEDCBA
 +
HGFEDCBA
 +
GFEDCBA
 +
FEDCBA
 +
EDCBA
 +
DCBA
 +
CBA
 +
BA
 +
A
 +
</pre>
 +
 +
<!--
 +
public class BucleAnidados3 {
 +
 +
    public static void main(String[] args) {
 +
        for (char x = 'Z'; x >= 'A'; x--) {
 +
            for (char y = x; y >= 'A'; y--) {                                                                         
 +
                System.out.print(y);
 +
            }
 +
            System.out.println();
 +
        }
 +
    }
 +
}
 +
-->
  
 
A2.5-Exercicis estructura iterativa: recorregut
 
A2.5-Exercicis estructura iterativa: recorregut
 +
 +
1. Escriu un programa que llegeixi números enters positius i mostri el més petit i el més gran. El programa finalitzarà quan ens introdueixin un número negatiu.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Escriu un programa que llegeixi números enters positius i mostri el més petit
 +
i el més gran. El programa finalitzarà quan ens introdueixin un número
 +
negatiu.
 +
'''
 +
print("Més gran i més petit d'una seqüencia de números")
 +
 +
# Accedir al primer element
 +
num = int(input("Introdueix un valor positiu (per acabar negatiu): "))
 +
 +
# Inicialitzar tractament
 +
max = num;
 +
min = num
 +
 +
# Mentre no ultim element
 +
while num >= 0:
 +
 +
  # Tractar_element
 +
  if num > max:
 +
    max = num
 +
  if num < min:
 +
    min = num
 +
 
 +
  # Obtenir següent element
 +
  num = int(input("Introdueix un valor positiu (per acabar negatiu): "))
 +
 +
# Tractament_final
 +
print("El valor màxim és: ", max)
 +
print("El valor mínim és: ", min)
 +
</source>
 +
-->
 +
 +
2. Donat un número llegit per teclat, calcula el número de dígits que té.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Donat un número llegit per teclat, calcula el número de dígits que té.
 +
'''
 +
print("Càlcul del nombre de dígits d'un número")
 +
 +
# Accedir al primer element
 +
num = int(input("Introdueix un valor positiu: "))
 +
 +
# Inicialitzar tractament
 +
 
 +
digits = 0
 +
 +
# Mentre no ultim element
 +
while num > 0:
 +
 +
  # Tractar_element
 +
  digits += 1
 +
   
 +
  # Obtenir següent element
 +
  num = num // 10
 +
 +
# Tractament_final
 +
print("El número té %d dígits" %digits)
 +
</source>
 +
-->
 +
 +
3. Donat un número llegit per teclat, realitzar la suma de tots els dígits del número.
 +
 +
Per exemple si introdueixen el valor 1238, s'imprimirà el valor : 1+2+3+8 --> 14
 +
<!--
 +
<source lang="python">
 +
'''
 +
Donat un número llegit per teclat, realitzar la suma de tots els dígits del número.
 +
'''
 +
print("Suma de tots els digits d'un número")
 +
 +
# Accedir al primer element
 +
num = int(input("Introdueix un valor positiu: "))
 +
 +
# Inicialitzar tractament
 +
suma = 0
 +
 +
# Mentre no ultim element
 +
while num > 0:
 +
 +
  # Tractar_element
 +
  suma=suma+(num%10)
 +
 
 +
  # Obtenir següent element
 +
  num=num//10
 +
 +
# Tractament_final 
 +
print("La suma dels dígits és: ", suma)
 +
</source>
 +
-->
 +
 +
4. Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.
 +
'''
 +
print("Suma de tots els digits d'un número")
 +
 +
# Accedir al primer element
 +
num = int(input("Introdueix un valor positiu: "))
 +
 +
# Inicialitzar tractament
 +
suma = 0
 +
 +
# Mentre no ultim element
 +
while num > 0:
 +
 +
  # Tractar_element
 +
  mod = num % 10
 +
  if mod % 2 == 0:
 +
    suma = suma + mod
 +
   
 +
  # Obtenir següent element
 +
  num=num//10
 +
 +
# Tractament_final 
 +
print("La suma dels dígits parells és: ", suma)
 +
</source>
 +
-->
 +
 +
5. Donat un número llegit per teclat, determina el número de dígits més grans que 5.
 +
<!--
 +
<source lang="java">
 +
'''
 +
Donat un número llegit per teclat, determina el número de dígits més grans que 5.
 +
'''
 +
print("Determinar el número de dígits més grans que 5 d'un número")
 +
 +
# Accedir al primer element
 +
num = int(input("Introdueix un valor positiu: "))
 +
 +
# Inicialitzar tractament
 +
quants = 0
 +
 +
# Mentre no ultim element
 +
while num > 0:
 +
 +
  # Tractar_element
 +
  if num%10>5:
 +
    quants +=1
 +
   
 +
  # Obtenir següent element
 +
  num=num//10
 +
 +
# Tractament_final 
 +
print("Hi ha %d dígits més grans que 5" %quants)
 +
</source>
 +
-->
 +
 +
6. Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1) i mostri totes les parelles de números  consecutius que apareixen a la seqüència.
 +
 +
Per exemple si la seqüència de números és: 7 10 11 23 4 5 8 10 11 12 -1, mostrarà: 10 11, 4 5, 10 11, 11 12
 +
<!--
 +
<source lang="python">
 +
'''
 +
Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1)
 +
i mostri totes les parelles de números  consecutius que apareixen a la seqüència.
 +
'''
 +
print("Mostrar números consecutius d'una segqüencia")
 +
 +
# Accedir al primer element
 +
actual = int(input("Introdueix un valor positiu (per acabar -1): " ))
 +
anterior = actual;
 +
 +
# Mentre no ultim element
 +
while actual != -1:
 +
 +
  # Tractar_element
 +
  if actual == anterior + 1:
 +
    print("%d - %d" %(anterior,actual))
 +
   
 +
  # Obtenir següent element
 +
  anterior = actual
 +
  actual = int(input("Introdueix un valor positiu (per acabar -1): " ))
 +
</source>
 +
-->
  
 
A2.6-Exercicis estructura iterativa: cerca
 
A2.6-Exercicis estructura iterativa: cerca
 +
 +
1. Escriu un programa que indiqui si existeix o no algun múltiple de 5 en una seqüència de números naturals finalitzada en -1 (seria  interessant que una vegada trobat un múltiple, el programa no continués executant-se).
 +
<!--
 +
<source lang="python">
 +
'''
 +
Indica si existeix o no algun múltiple de 5 en una seqüència de números naturals finalitzada en -1
 +
'''
 +
 +
print("Cerca d'un múltiple de 5")
 +
 +
# accedir al primer element
 +
num = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
 +
# Mentre no últim element i no element trobat fer
 +
while num!=-1 and num % 5 !=0 :
 +
 +
  # obtenir següent element
 +
  num = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
 +
# tractament final
 +
if num%5==0 :
 +
  print("%d és múltiple de 5" %num)
 +
else :
 +
  print("No hi ha cap múltiple")
 +
</source>
 +
-->
 +
 +
2. Escriu un programa que determini si un número enter es primer o no (recorda que un número primer només és divisible per 1 i per ell mateix).
 +
<!--
 +
<source lang="python">
 +
'''
 +
Indica si un número enter és primer o no
 +
'''
 +
 +
print("Número primer?")
 +
 +
# accedir al primer element
 +
divisor=2;
 +
       
 +
# inicialitzar tractament
 +
num = int(input("Introdueix un valor enter positiu: "))
 +
 +
# Mentre no últim element i no element trobat fer
 +
while divisor<num and num%divisor!=0 :
 +
 +
    # obtenir següent element
 +
    divisor += 1
 +
       
 +
# tractament final
 +
if divisor==num:
 +
  print("Primer")     
 +
else :
 +
  print("No és primer")
 +
</source>
 +
-->
 +
 +
3. Escriu un programa que vagi llegint notes (per finalitzar -1) i indiqui si hi ha com a mínim tres suspesos. Només cal dir sí o no.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Indica si hi ha un mínim de 3 suspesos en una seqüència de notes
 +
'''
 +
 +
print("Hi ha un mínim de 3 suspesos?")
 +
 +
# accedir al primer element
 +
nota = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
     
 +
# inicialitzar tractament
 +
 +
susp = 0;
 +
   
 +
# Mentre no últim element i no element trobat fer
 +
while nota != -1 and susp < 3 :
 +
 +
    # tractar element
 +
    if nota < 5 :
 +
      susp += 1
 +
 +
    # obtenir següent element       
 +
    if susp < 3 :
 +
      nota = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
 +
# tractament final
 +
if susp == 3 :
 +
  print("Sí")
 +
else :
 +
  print("No")
 +
</source>
 +
-->
 +
 +
4. Escriu un programa que vagi llegint números positius (per finalitzar -1) i indiqui si tots són parells.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Indica si tots els números són parells
 +
'''
 +
 +
print("Tots els números són parells?")
 +
 +
# accedir al primer element
 +
num = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
     
 +
# Mentre no últim element i no element trobat fer
 +
while num != -1 and num % 2 == 0 :
 +
 +
  # obtenir següent element
 +
  num = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
 +
# tractament final
 +
if num==-1 :
 +
  print("Tots parells")
 +
else :
 +
  print("No són tots parells")
 +
</source>
 +
-->
 +
 +
5. Escriu un programa que llegeixi un número i indiqui si tots els dígits són parells.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Indica si tots els dígits d'un número són parells
 +
'''
 +
 +
print("Tots els dígits d'un número són parells?")
 +
 +
# accedir al primer element
 +
num = int(input("Introdueix un valor enter positiu: "))
 +
 +
# Mentre no últim element i no element trobat fer
 +
while num > 0 and num % 2 == 0 :
 +
 +
    # obtenir següent element
 +
    num = num // 10;
 +
 +
# tractament final
 +
if num == 0 :
 +
  print("Tots parells")
 +
else :
 +
  print("No són tots parells")
 +
</source>
 +
-->
 +
 +
6. Escriu un programa que  vagi llegint números positius (per finalitzar -1) i indiqui si cada valor és més gran que l'anterior.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Indica si una seqüència de números és estrictament ascendent
 +
'''
 +
 +
print("La seqüència de números és estrictament ascendent?")
 +
 +
# accedir al primer element
 +
num = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
anterior = -1
 +
 +
# Mentre no últim element i no element trobat fer
 +
while num != -1 and anterior < num :
 +
 +
    # obtenir següent element
 +
    anterior = num
 +
    num = int(input("Introdueix un valor positiu (per acabar -1): "))
 +
 +
# tractament final
 +
if num == -1 :
 +
  print("Es compleix")
 +
else :
 +
  print("No es compleix")
 +
</source>
 +
-->

Revisió del 12:40, 2 nov 2020

A1.1 Exercicis seqüencials

1. Volem un programa que donat dos números enters ens mostri el resultat de les cinc operacions aritmètiques fetes amb aquests valors.

print("Programa operacions enteres")

#Entrada de dades
num1 = int(input("Introudeix un número: "))
num2 = int(input("Introudeix un altre número: "))

# Operacions i resultats
resultat = num1 + num2
print("EL resultat de la suma és: ",resultat)
resultat = num1 - num2
print("EL resultat de la resta és: ",resultat)
resultat = num1 * num2
print("EL resultat de la multiplicación és: ",resultat)
resultat = num1 / num2
print("EL resultat de la división és: ",resultat)
resultat = num1 ** num2
print("EL resultat de la potencia és: ",resultat)

2. L’amo d’una botiga compra un article a un determinat preu. Mostreu el preu al qual el vendrà, si intenta guanyar un 30%.

print("Programa benefici botiga")

# Constant percentatge benefici
PCT_BENEFICI = 1.3

# Entrada preu de compra del producte
cost_producte = float(input("Introdueix el valor de compra: "))

# Resultat
print("El valor de venda serà: %6.2f" %(cost_producte*PCT_BENEFICI))

3. En un hospital existeixen tres departaments: Ginecologia, Pediatria i Traumatologia.

El pressupost anual de l’hospital es reparteix així:

Ginecologia : 50%
Pediatria: 30%
Traumatologia: 20%

Obteniu la quantitat de diners que rebrà cada departament, per a qualsevol pressupost (que llegireu des de teclat).

print("Programa pressupost hospital")

# Constants de percentatge del pressupost
PCT_GIN =0.5
PCT_PED =0.3
PCT_TRA =0.2

# Entrada del pressupost de l'hostpital
pressupost = float(input("Introdueix el pressupost de l'hospital: "))

# Càlcul del pressupost assignat a cada departament
ginecologia = pressupost * PCT_GIN
pediatria = pressupost * PCT_PED
trauma = pressupost * PCT_TRA

# Resultat
print("El pressupost de ginecologia és : %6.2f" %ginecologia)
print("El pressupost de pediatria és : %6.2f" %pediatria)
print("El pressupost de traumatologia és : %6.2f" %trauma)

4. Un alumne vol saber la seva nota final de programació. Aquesta nota es calcula així:

55% de la mitjana de tres exercicis
30% de la nota de l’examen
15% de la nota d’una pràctica final

5. Una família està formada per 6 membres: dos germans (Joan i Marta), els dos pares i els dos avis materns. De les seves edats sabem el següent:

a. L’avi té sis vegades l’edat de la Marta
b. L’avia té la suma de les edats dels pares menys l’edat de la Marta
c. L’edat del Joan és el resultat de fer el mòdul entre l’edat del pare i la de la Marta
d. L’edat de la mare és el triple de l’edat de la Marta afegint-li l’edat del Joan
e. L’edat del pare és el resultat de multiplicar per 6, la divisió entera entre l’edat de l’avi i l’edat de la Marta.
f. La Marta té 10 anys.

Quants anys tenen tots ? Mostrar-ho per pantalla.

6. El següent és el sou dels treballadors d’una empresa. Dissenyar un algorisme capaç de llegir el nombre de treballadors de cada tipus i calcular el sou total que s’ha de pagar mensualment.

a) Personal de neteja (500 euros)
b) Auxiliar administratiu (600 euros)
c) Administratiu (700 euros)
d) Informàtic (1200 euros)
e) Morro Consultant Senior (12000 euros)

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).

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...")

A2.2-Exercicis avaluar expressions lògiques


Avalueu les següents condicions en funció dels valors corresponents de les variables

1. ((y<x) or ((y>1) and (x>1)))

a) x=1 y=1 
b) x=1 y=2 
c) x=2 y=1 
d) x=2 y=2 
e) x=0 y=0 
f) x=1 y=0 
a) x=1 y=1 False 
b) x=1 y=2 False
c) x=2 y=1 True
d) x=2 y=2 True
e) x=0 y=0 False
f) x=1 y=0 True

2. (((x>3) and (x<6)) or not((y>3) and (y<6))) <==> (3<x<6) or not (3<y<6)

a) x=3 y=3 
b) x=3 y=4 
c) x=4 y=3 
d) x=4 y=4 
a) x=3 y=3 True
b) x=3 y=4 False
c) x=4 y=3 True
d) x=4 y=4 True

3. (z>x and z>y or x>=y)

a) x=1 y=1 z=1 
b) x=1 y=2 z=3 
c) x=1 y=3 z=2 
d) x=2 y=1 z=3 
e) x=2 y=3 z=1 
f) x=3 y=2 z=1 
g) x=3 y=1 z=2 
a) x=1 y=1 z=1 True
b) x=1 y=2 z=3 True
c) x=1 y=3 z=2 False
d) x=2 y=1 z=3 True
e) x=2 y=3 z=1 False
f) x=3 y=2 z=1 True
g) x=3 y=1 z=2 True

A2.3-Exercicis trobar expressions lògiques

  • Sent num1, num2, num3, num4 variables numèriques, escriviu l'expressió lògica corresponent a:
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.
b) Els valors de num1, num2 i num3 són idèntics.
c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.
d) El valor de num2 està comprès, '''estrictament (<, >)''', entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.
a) Els valors de num2 i num3 són tots dos superiors al valor de num4.

   (num2 > num4 and num3 > num4) 

b) Els valors de num1, num2 i num3 són idèntics.

   (num1 == num2 and num1 == num3)  <==> num1==num2==num3

c) Els valors de num1, num2 i num3 són idèntics però diferents del valor de num4.

   (num1 == num2 and num1 == num3 and num1 !=num4)  <==> num1==num2==num3!=num4

d) El valor de num2 està comprès, '''estrictament (<, >)''', entre els valors de num3 i num4, i el valor de num3 és més petit que el valor de num4.

   (num2 > num3 and num2 < num4)  <==> num3<num2<num4


  • En un algorisme que analitza els resultats d'exàmens, hi ha 3 variables definides: les variables notaLit, notaCat, notaMat que indiquen respectivament (per a un alumne en particular) les notes de literatura, català i matemàtiques. Totes les notes estan calculades sobre 10 i totes tenen el mateix pes. Escriviu les expressions lògiques corresponents a:
a) La mitjana de les tres notes és superior a 5.
b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.
c) Hi ha, com a mínim, una nota superior a 5.
d) Totes les notes són superiors a 5.
a) La mitjana de les tres notes és superior a 5.

   ((notaLit + notaCat + notaMat) / 3) > 5

b) Les notes de matemàtiques i català són superiors a la mitjana de les tres notes.

   ((notaMat > (notaLit + notaCat * notaMat) / 3) and (notaCat > (notaLit + notaCat * notaMat) / 3))

c) Hi ha, com a mínim, una nota superior a 5.

   (notaLit > 5 or notaCat > 5 or notaMat > 5) 

d) Totes les notes són superiors a 5.

   (notaLit > 5 and notaCat > 5 and notaMat > 5) 
  • Siguin vendesP1, vendesP2 i vendesP3 tres variables enteres que representen les vendes de tres productes.
Utilitzant aquestes variables, escriu les expressions que representin les següents afirmacions:
a) Les vendes del producte P1 són les més elevades.
b) Cap producte té unes vendes inferiors a 200.
c) Algun producte té unes vendes superiors a 400.
d) La mitjana de vendes és superior a 500.
e) El producte P2 no és el més venut.
f) El total de vendes està entre 500 i 1000.
a) Les vendes del producte P1 són les més elevades.

   (vendesP1 > vendesP2 and vendesP1 > vendesP3)

b) Cap producte té unes vendes inferiors a 200.

   (vendesP1 >= 200 and vendesP2>= 200 and vendesP3 >= 200)             ERROR!! A and B and C >= 200 Només analitza el valor C

c) Algun producte té unes vendes superiors a 400.

   (vendesP1 > 400 or vendesP2 > 400 or vendesP3 > 400)      

d) La mitjana de vendes és superior a 500.

   ((vendesP1 + vendesP2 + vendesP3) / 3) > 500

e) El producte P2 no és el més venut.

   (vendesP2 < vendesP1 or vendesP2 < vendesP3)

f) El total de vendes està entre 500 i 1000.

   ((vendesP1 + vendesP2 + vendesP3 >= 500) and (vendesP1 + vendesP2 + vendesP3 <= 1000))    
   <==>   500 <= vendesP1+vendesP2+vendesP3 <= 1000

A2.4-Exercicis estructura iterativa

1. Imprimir els números del 1 al 100.

print("Imprimir els números del 1 al 100")

for i in range(1,101):
  print(i ,end= " ")

2. Imprimir els números parells del 0 al 98.

print("Imprimir els números parells del 0 al 98")

for i in range(0,100,2):
  print(i ,end= " ")

3. Imprimir els números del 100 al 1.

print("Imprimir els números del 100 al 1")

for i in range(100,0,-1):
  print(i ,end= " ")

4. Demanar cinc números i mostrar la suma.

print("Demanar cinc números i mostrar la suma")

suma = 0
for _ in range(5):        
  valor = int(input("Introdueix un valor: "))
  suma += valor
print("La suma és: %d" %suma)

5. Igual que l'anterior però només sumant els valors més grans de 10.

6. Calcular el producte dels números del 1 al 10.

7. Demanar cinc números enters positius i mostrar el valor més gran.

8. Fer un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:

    * * * * *
    * * * * *
    * * * * *
    * * * * *
    * * * * *

9. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:

    * * * * *
    *       *
    *       *
    *       *
    * * * * *

10. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)

    * 
    * * 
    * * * 
    * * * * 
    * * * * *

11. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)

    * * * * *
    * * * * 
    * * * 
    * * 
    * 

12. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)

            *
          * *
        * * *
      * * * *
    * * * * *

13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)

    * * * * *
      * * * *
        * * *
          * *
            *

Bucles niuats

14. Escriu un programa que llegeixi un número num i mostri per pantalla el següent:

    Exemple num=5
    1
    1 2
    1 2 3
    1 2 3 4 
    1 2 3 4 5

15. Escriu un programa que llegeixi un número i mostri per pantalla el següent:

    Exemple num=5

    5 4 3 2 1
    4 3 2 1
    3 2 1
    2 1 
    1 

16. Escriu un programa que llegeixi un número i mostri per pantalla el següent:

    Exemple num=5

            1
          2 1
        3 2 1
      4 3 2 1
    5 4 3 2 1


17. Escriu un programa que llegeixi un número enter més gran que 0 i mostri el factorial de tots els números entre 1 i el número introduït.

    Exemple num = 4

    1! = 1
    2! = 2 * 1 = 2
    3! = 3 * 2 * 1 = 6
    4! = 4 * 3 * 2 * 1 = 24


18. Escriu un programa que mostri la següent sortida:

ZYWXVUTSRQPONMLKJIHGFEDCBA
YWXVUTSRQPONMLKJIHGFEDCBA
WXVUTSRQPONMLKJIHGFEDCBA
XVUTSRQPONMLKJIHGFEDCBA
VUTSRQPONMLKJIHGFEDCBA
UTSRQPONMLKJIHGFEDCBA
TSRQPONMLKJIHGFEDCBA
SRQPONMLKJIHGFEDCBA
RQPONMLKJIHGFEDCBA
QPONMLKJIHGFEDCBA
PONMLKJIHGFEDCBA
ONMLKJIHGFEDCBA
NMLKJIHGFEDCBA
MLKJIHGFEDCBA
LKJIHGFEDCBA
KJIHGFEDCBA
JIHGFEDCBA
IHGFEDCBA
HGFEDCBA
GFEDCBA
FEDCBA
EDCBA
DCBA
CBA
BA
A


A2.5-Exercicis estructura iterativa: recorregut

1. Escriu un programa que llegeixi números enters positius i mostri el més petit i el més gran. El programa finalitzarà quan ens introdueixin un número negatiu.

2. Donat un número llegit per teclat, calcula el número de dígits que té.

3. Donat un número llegit per teclat, realitzar la suma de tots els dígits del número.

Per exemple si introdueixen el valor 1238, s'imprimirà el valor : 1+2+3+8 --> 14

4. Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.

5. Donat un número llegit per teclat, determina el número de dígits més grans que 5.

6. Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1) i mostri totes les parelles de números consecutius que apareixen a la seqüència.

Per exemple si la seqüència de números és: 7 10 11 23 4 5 8 10 11 12 -1, mostrarà: 10 11, 4 5, 10 11, 11 12

A2.6-Exercicis estructura iterativa: cerca

1. Escriu un programa que indiqui si existeix o no algun múltiple de 5 en una seqüència de números naturals finalitzada en -1 (seria interessant que una vegada trobat un múltiple, el programa no continués executant-se).

2. Escriu un programa que determini si un número enter es primer o no (recorda que un número primer només és divisible per 1 i per ell mateix).

3. Escriu un programa que vagi llegint notes (per finalitzar -1) i indiqui si hi ha com a mínim tres suspesos. Només cal dir sí o no.

4. Escriu un programa que vagi llegint números positius (per finalitzar -1) i indiqui si tots són parells.

5. Escriu un programa que llegeixi un número i indiqui si tots els dígits són parells.

6. Escriu un programa que vagi llegint números positius (per finalitzar -1) i indiqui si cada valor és més gran que l'anterior.