Diferència entre revisions de la pàgina «M3 - Programació estructurada / Continguts UF1: Estructura alternativa»

De wikiserver
Dreceres ràpides: navegació, cerca
(Estructures de selecció)
(Una desviació temporal del camí: selecció simple)
Línia 9: Línia 9:
 
==Una desviació temporal del camí: selecció simple==
 
==Una desviació temporal del camí: selecció simple==
  
El cas més simple dins de les estructures de selecció és aquell en què hi ha un conjunt o bloc d’instruccions que només voleu que s’executin sota unes circumstàncies concretes. En cas contrari, aquest bloc és ignorat i, des del punt de vista de l’execució del programa, és com si no existís. Un exemple seria el programa d’una botiga virtual que aplica un descompte al preu final d’acord amb un cert criteri (per exemple, si la compra total és com a mínim de 100 €). En aquest cas, hi ha un conjunt d’instruccions, les que apliquen el descompte, que només s’executen quan es compleix la condició. En cas contrari, s’ignoren i el preu final és el mateix que l’original.
+
L’estructura de '''selecció simple''' permet controlar el fet que s’executi un conjunt d’instruccions si i només si es compleix la condició lògica (és a dir, el resultat d’avaluar la condició lògica és igual a true). En cas contrari, no s’executen.
  
 +
Un exemple seria el programa d’una botiga virtual que aplica un descompte al preu final d’acord amb un cert criteri (per exemple, si la compra total és com a mínim de 100 €). En aquest cas, hi ha un conjunt d’instruccions, les que apliquen el descompte, que només s’executen quan es compleix la condició. En cas contrari, s’ignoren i el preu final és el mateix que l’original.
  
L’estructura de '''selecció simple''' permet controlar el fet que s’executi un conjunt d’instruccions si i només si es compleix la condició lògica (és a dir, el resultat d’avaluar la condició lògica és igual a true). En cas contrari, no s’executen.
+
===Sintaxi i comportament===
  
===Sintaxi i comportament===
+
Per dur a terme aquest tipus de control sobre les instruccions del programa, cal usar una sentència if (si...). En el cas del Java, la sintaxi és la següent:
 +
<pre>
 +
  instruccions del programa
 +
  if (expressió booleana) {
 +
        Instruccions per executar si l’expressió avalua a true (cert)
 +
  }
 +
  resta d’instruccions del programa
 +
</pre>
 +
Si entre els parèntesis es posa una expressió que no avalua un resultat de tipus booleà, hi haurà un error de compilació.
  
 
===Exemple: calcular un descompte===
 
===Exemple: calcular un descompte===
 +
 +
Es vol fer un programa que apliqui un descompte a un preu depenent del seu valor. Per veure clarament que hi ha diferents camins dins de les instruccions, primer de tot establirem quines són les tasques que ha de fer el programa i en quin ordre.
 +
 +
El programa hauria de fer:
 +
 +
1. Decidir quin és el valor mínim per optar al descompte i quant es descomptarà.
 +
2. Demanar que s’introdueixi el preu inicial, en euros, pel teclat.
 +
3. Llegir-lo.
 +
4. Veure si el preu introduït és igual o major que el valor mínim per optar al descompte.
 +
(a) Si és així, s’aplica el descompte sobre el preu inicial.
 +
5. Mostrar el preu final.
 +
 +
En el pas 4 es pot observar que cal prendre una decisió d’acord amb una condició i que alguna de les tasques només es fa si aquesta es compleix (el pas 1). Per tant, queda establert que cal una estructura de selecció simple. Partint d’aquí, un possible codi font que correspondria a aquest esquema seria el següent. Observeu quines instruccions es corresponen a cadascuna de les passes escrites.
 +
 +
Tot seguit es mostra el codi font que du a terme aquestes tasques. Compileu-lo, executeu-lo i observeu com el resultat final mostrat per pantalla és diferent segons el valor que introduïu pel teclat.
 +
  
 
===Aspectes importants de la selecció simple===
 
===Aspectes importants de la selecció simple===

Revisió del 20:42, 18 nov 2019

Estructures de selecció

Les estructures de selecció permeten prendre decisions sobre quin conjunt d’instruccions cal executar en un punt del programa.

Tota estructura de selecció es basa en l’avaluació d’una expressió que ha de donar un resultat booleà: true (cert) o false (fals). Aquesta expressió s’anomena la condició lògica de l’estructura.

El conjunt d’instruccions que s’executarà dependrà del resultat de la condició lògica, i actuarà com una mena d’interruptor que marca el flux que cal seguir dins del programa.

Una desviació temporal del camí: selecció simple

L’estructura de selecció simple permet controlar el fet que s’executi un conjunt d’instruccions si i només si es compleix la condició lògica (és a dir, el resultat d’avaluar la condició lògica és igual a true). En cas contrari, no s’executen.

Un exemple seria el programa d’una botiga virtual que aplica un descompte al preu final d’acord amb un cert criteri (per exemple, si la compra total és com a mínim de 100 €). En aquest cas, hi ha un conjunt d’instruccions, les que apliquen el descompte, que només s’executen quan es compleix la condició. En cas contrari, s’ignoren i el preu final és el mateix que l’original.

Sintaxi i comportament

Per dur a terme aquest tipus de control sobre les instruccions del programa, cal usar una sentència if (si...). En el cas del Java, la sintaxi és la següent:

  instruccions del programa
  if (expressió booleana) {
        Instruccions per executar si l’expressió avalua a true (cert)
  }
  resta d’instruccions del programa

Si entre els parèntesis es posa una expressió que no avalua un resultat de tipus booleà, hi haurà un error de compilació.

Exemple: calcular un descompte

Es vol fer un programa que apliqui un descompte a un preu depenent del seu valor. Per veure clarament que hi ha diferents camins dins de les instruccions, primer de tot establirem quines són les tasques que ha de fer el programa i en quin ordre.

El programa hauria de fer:

1. Decidir quin és el valor mínim per optar al descompte i quant es descomptarà. 2. Demanar que s’introdueixi el preu inicial, en euros, pel teclat. 3. Llegir-lo. 4. Veure si el preu introduït és igual o major que el valor mínim per optar al descompte. (a) Si és així, s’aplica el descompte sobre el preu inicial. 5. Mostrar el preu final.

En el pas 4 es pot observar que cal prendre una decisió d’acord amb una condició i que alguna de les tasques només es fa si aquesta es compleix (el pas 1). Per tant, queda establert que cal una estructura de selecció simple. Partint d’aquí, un possible codi font que correspondria a aquest esquema seria el següent. Observeu quines instruccions es corresponen a cadascuna de les passes escrites.

Tot seguit es mostra el codi font que du a terme aquestes tasques. Compileu-lo, executeu-lo i observeu com el resultat final mostrat per pantalla és diferent segons el valor que introduïu pel teclat.


Aspectes importants de la selecció simple

Dos camins alternatius: la sentència ”if/else”

Sintaxi i comportament

Exemple: endevina el nombre secret

Diversos camins: la sentència ”if/else if/else”

Sintaxi i comportament

Exemple: transformar avaluació numèrica a text

Combinació d’estructures de selecció

Exemple: descompte màxim i control d’errors

La sentència ”switch”

Sintaxi i comportament

Control d’errors en l’entrada bàsica mitjançant estructures de selecció