Activitats
Descomposició d'un problema: muntant mobles
L’objectiu d’aquesta activitat és aprendre a usar el disseny descendent per estructurar un problema general senzill, sense que estigui vinculat a la creació d’un programa.
Descomponeu mitjançant disseny descendent el procés de creació i muntatge d’un moble d’estanteries (suposeu que sou el fuster). Useu al menys dos nivells de descomposició. Intenteu trobar subproblemes repetits en diverses parts del procés.
Nota: Tingueu en compte que el resultat d’aplicar disseny descendent sobre un problema pot variar segons com es plantegi la descomposició. Per tant, les solucions proposades són només una de diverses possibilitats que es podrien considerar correctes. De totes maneres, tingueu en compte que aquesta tècnica no només serveix per fer subdividir un programa en blocs de codi curts, sinó també per fer-lo més fàcil d’entendre.
Descomposició d'un problema: com fer farina
L’objectiu d’aquesta activitat és aprendre a usar el disseny descendent per estructurar un problema general senzill, sense que estigui vinculat a la creació d’un programa.
Descomponeu mitjançant disseny descendent el procés pel qual, partint de llavors de blat, s’arriba a tenir farina.
Nota: Tingueu en compte que el resultat d’aplicar disseny descendent sobre un problema pot variar segons com es plantegi la descomposició. Per tant, les solucions proposades són només una de diverses possibilitats que es podrien considerar correctes. De totes maneres, tingueu en compte que aquesta tècnica no només serveix per fer subdividir un programa en blocs de codi curts, sinó també per fer-lo més fàcil d’entendre.
La frase amb més lletres 'a'
L’objectiu d’aquesta activitat és aprendre a usar el disseny descendent per estructurar un problema senzill i generar el programa que el resol.
Feu un programa anomenat FraseAmbMesAs
que vagi llegint frases pel teclat i, en acabar cada entrada d’una frase, mostri quina és la frase que s’ha escrit fins al moment amb més lletres ‘a’ (minúscula o majúscula) i quantes en tenia. El programa ha d’anar-se executant fins a llegir la frase “fi”. A mode de guia de sortida hauria de ser semblant a la que es mostra tot seguit.
Escriu una frase: > Hola que tal La frase amb més 'a' és: "Hola què tal" Té 2 'a'. Escriu una frase: > Aquesta té més 'a' La frase amb més 'a' és: "Aquesta té més a" Té 3 'a'. Escriu una frase: > Menys 'a' La frase amb més 'a' és: "Aquesta té més a" Té 3 'a'. Escriu una frase: > fi La frase amb més 'a' és: "Aquesta té més a" Té 3 'a'. (El programa acaba)
Nota: Tingueu en compte que el resultat d’aplicar disseny descendent sobre un problema pot variar segons com es plantegi la descomposició. Per tant, les solucions proposades són només una de diverses possibilitats que es podrien considerar correctes. De totes maneres, tingueu en compte que aquesta tècnica no només serveix per fer subdividir un programa en blocs de codi curts, sinó també per fer-lo més fàcil d’entendre.
Histograma de tirades de dau
L’objectiu d’aquesta activitat és aprendre a usar el disseny descendent per estructurar un problema i generar el programa que el resol.
Feu un programa anomenat GenerarHistograma
que mostri l’histograma de totes les tirades possibles amb dos daus de sis cares. Per fer això, l’estratègia que s’ha considerat és desar dins d’un array el nombre de repeticions de cada tirada possible (sempre entre 2 i 12) i després treballar a partir d’aquests valors. A continuació, ha de dir quin valor de tirada és el que té més repeticions. A mode de guia, la sortida hauria de ser semblant a la que es mostra tot seguit:
2: * 3: ** 4: *** 5: **** 6: ***** 7: ****** 8: ***** 9: **** 10: *** 11: ** 12: * El màxim és 7.
Nota: Tingueu en compte que el resultat d’aplicar disseny descendent sobre un problema pot variar segons com es plantegi la descomposició. Per tant, les solucions proposades són només una de diverses possibilitats que es podrien considerar correctes. De totes maneres, tingueu en compte que aquesta tècnica no només serveix per fer subdividir un programa en blocs de codi curts, sinó també per fer-lo més fàcil d’entendre.
Probabilitat de tirades de dau
L’objectiu d’aquesta activitat és codificar un programa partint d’una descomposició donada de l’aplicació de disseny descendent.
Feu un programa anomenat CalculTirada
que calculi la probabilitat en tant per cent de treure per sota d’un valor concret tirant dos daus de sis cares. Per fer això, l’estratègia que s’ha considerat és desar dins d’un array el nombre de repeticions de cada tirada possible (sempre entre 2 i 12) i després treballar a partir d’aquests valors, sabent que:
- Probabilitat de treure 2: suma del nombre de tirades que valen 2 * 100 / 36.
- Probabilitat de treure 3 o menys: suma del nombre de tirades que valen 2 o 3 * 100 / 36.
- Probabilitat de treure 4 o menys: suma del nombre de tirades que valen 2 o 3 o 4 * 100 / 36.
- etc.
Es parteix de la descomposició del problema següent, que haureu de seguir per codificar-lo:
- Llegir el valor.
- Processar entrada pel teclat.
- Comprovar si està entre 2 i 12.
- Generar tirades.
- Calcular probabilitat.
A mode de guia, la sortida hauria de ser més o menys com es mostra tot seguit:
Escriu el valor a calcular [2 - 12]. 18 El valor no és entre 2 i 12. 5 La probabilitat es 27.0%.
Nota: Tingueu en compte que el resultat d’aplicar disseny descendent sobre un problema pot variar segons com es plantegi la descomposició. Per tant, les solucions proposades són només una de diverses possibilitats que es podrien considerar correctes. De totes maneres, tingueu en compte que aquesta tècnica no només serveix per fer subdividir un programa en blocs de codi curts, sinó també per fer-lo més fàcil d’entendre.
Gestor de notes
L’objectiu d’aquesta activitat és dur a terme el procés complet de descomposició d’un problema aplicant disseny descendent per generar un programa de cert grau de complexitat.
Feu un programa anomenat GestorNotes
que permeti gestionar les notes dins una aula de fins a 40 estudiants. Les notes es poden anar introduint dins el sistema de manera esglaonada. A partir d’un menú, s’ha de poder:
- Registrar noves notes. Cada cop que es faci, s’ha de poder llegir una seqüència de valors arbitràriament llarga fins a trobar un -1. Llavors s’acaba la lectura. Per exemple, si es volen entrar les notes 3, 4 i 7.5, s’escriuria “3 4 7,5 -1”.
- Mostrar per pantalla la nota mitjana fins al moment.
- Mostrar un histograma de tots les notes segons les classificacions Suspès (menys de 5), Aprovat (entre 5 i 6.5), Notable (entre 6.5 i 8.5) i Excel·lent (més de 8.5).
A mode de guia, tot seguit es mostra una possible sortida en executar el programa. Noteu com, en afegir una segona tanda de notes (només un 10 extra), varien la mitjana i l’histograma de manera correcta.
Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitjana. [HT] Histograma de notes. [FI] Sortir. Opció: RT Escriu les notes, posa -1 per acabar: 1 3 3,7 4,4 5 5,6 6,3 7 9 -1 Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitjana. [HT] Histograma de notes. [FI] Sortir. Opció: HT Suspès :**** Aprovat :*** Notable :* Excel·lent:* Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitjana. [HT] Histograma de notes. [FI] Sortir. Opció: MJ La nota mitjana és de 5.0. Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitja. [HT] Histograma de notes.na [FI] Sortir. Opció: RT Escriu les notes, posa -1 per acabar: 10 -1 Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitjana. [HT] Histograma de notes. [FI] Sortir. Opció: HT Suspès :**** Aprovat :*** Notable :* Excel·lent:** Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitjana. [HT] Histograma de notes. [FI] Sortir. Opció: MJ La nota mitjana és de 5.5. Benvingut al gestor de notes ---------------------------- [RT] Registrar notes. [MJ] Consultar nota mitjana. [HT] Histograma de notes. [FI] Sortir. Opció: FI
Nota: Tingueu en compte que el resultat d’aplicar disseny descendent sobre un problema pot variar segons com es plantegi la descomposició. Per tant, les solucions proposades són només una de diverses possibilitats que es podrien considerar correctes. De totes maneres, tingueu en compte que aquesta tècnica no només serveix per fer subdividir un programa en blocs de codi curts, sinó també per fer-lo més fàcil d’entendre.