Exercicis d'autoavaluació

Exercici 1

Indiqueu a quin mòdul de l’exemple que s’ha explicat en els continguts de l’apartat anirien els mètodes que farien les ampliacions següents. No cal que penseu com es farien, només on s’ubicaria el seu mètode, sigui quin sigui aquest.

NúmPreguntaResposta
1

Mostrar per pantalla els efectes produïts en resoldre la ronda de combat:

2

Atorgar una bonificació temporal als valors d’atac i defensa:

3

Preguntar a l’usuari el seu nom:

4

Generar un adversari amb atributs totalment a l’atzar, en lloc d’escollir-los des d’una llista:

Exercici 2

A partir del programa usat com a exemple en els materials d’aquest apartat, suposeu que vol afegir un nou atribut qualsevol als lluitadors. Contesteu si això suposaria que cal fer el que diu alguna de les afirmacions següents (V) o no (F).

NúmPreguntaVF
1

És imprescindible crear un nou mètode per llegir el seu valor, com es fa amb els altres. Si no, no és impossible fer el nou programa.

2

El més correcte seria definir una nova constant a la classe Lluitador.

3

Caldrà modificar les classes importades a la classe Combat.

4

Serà forçosament necessari modificar alguns dels mètodes de lectura de valors existents a Lluitador.

5

Segurament caldrà modificar el mètode mostrarLluitador de la classe SortidaPantalla.

6

Segurament caldrà modificar el mètode cercarAdversari de la classe Bestiari.

7

Segurament caldrà modificar el mètode traduirIDANom de la classe Bestiari.

8

Segurament caldrà modificar el mètode inici de la classe JocArena.

Exercici 3

A partir del programa usat com a exemple en els materials d’aquest apartat, s’ha decidit canviar els resultats que les interaccions entre diferents estratègies tenen entre els dos lluitadors, segons quina ha triat cadascú. Partint de la suposició que s’aplica correctament el principi de modularitat, contesteu si per fer això cal modificar (V) o no (F), cadascuna de les classes enumerades a continuació.

NúmPreguntaVF
1

JocArena

2

EntradTeclat

3

SortidaPantalla

4

Bestiari

5

Combat

6

Lluitador

7

Monedes

Exercici 4

Suposeu una seqüència de valors enters on la posició 0 val 0 i la posició 1 val 1. A partir de la posició 2, a la resta de posicions hi ha la suma dels dos valors anteriors. D’aquesta manera, la posició 2 val 1 (0 + 1), la posició 3 val 2 (1 + 1), la posició 4 val 3 (1 + 2), etc. Tot seguit es mostra un exemple amb uns quants valors:

0 1 1 2 3 5 8 13 21 34 55…

El codi següent mostra una proposta parcial de com calcular el valor que hi haurà a la posició n d’aquesta seqüència.

  1. package unitat5.apartat1.activitats;
  2.  
  3. public class SumaAnteriors {
  4.  
  5. public static void main(String[] args) {
  6. SumaAnteriors programa = new SumaAnteriors();
  7. programa.inici();
  8. }
  9.  
  10. public void inici() {
  11. System.out.println(sumaAnteriors(6));
  12. }
  13.  
  14. /** Escriu una seqüència de valors de manera que cada numero és la suma dels
  15.   * dos anteriors.
  16.   *
  17.   * @param n Posició dins la seqüència
  18.   * @return Valor d'aquesta posició
  19.   */
  20. public int sumaAnteriors(int n) {
  21. if (n == 0) {
  22. return 0;
  23. } else if (n == 1) {
  24. return 1;
  25. } else {
  26. //???
  27. return res;
  28. }
  29. }
  30.  
  31. }

Contesteu si les afirmacions següents són verdaderes (V) o falses (F).

NúmPreguntaVF
1

El codi que falta (???) és int res = sumaAnteriors(n - 1);

2

El codi que falta (???) és int res = sumaAnteriors(n - 1) + sumaAnteriors(n - 2);

3

El codi que falta (???) és int res = res + sumaAnteriors(n - 1) + sumaAnteriors(n - 2);

4

El codi que falta (???) és int res = res + (n - 1);

5

Si el mètode és recursiu, quan n = 0 i n = 1 es consideren casos base.

6

Si el mètode és recursiu, només un dels dos casos, n = 0 o n = 1, és un cas base.

7

El bloc de codi que depèn de la condició (n == 0) és innecessari.

8

El bloc de codi (???) no hauria d’estar dins d’una estructura de selecció.

Exercici 5

La funció d’Ackerman resol el càlcul d’un valor usant una definició recursiva. Cerqueu informació sobre aquesta i estudieu-ne la definició. No cal que entengueu per a què serveix ni el seu significat o fonaments matemàtics, només estudieu-ne la definició recursiva i prou. Llavors, contesteu si les afirmacions següents són vertaderes (V) o falses (F).

NúmPreguntaVF
1

El cas m = 0 és un cas base.

2

El cas m > 0 i n = 0 és un cas base.

3

El cas m > 0 i n > 0 és un cas recursiu.

4

Per implementar aquesta funció en Java, calen dos paràmetres d’entrada.

5

Per implementar aquesta funció en Java, calen dos paràmetres de sortida.

6

Per implementar aquesta funció, cal una estructura de repetició.

7

Per implementar aquesta funció, cal una estructura de selecció.

8

Hi ha un cas on es fan dues crides recursives consecutives.

9

Els casos recursius s’aproximen al cas base, ja que o m o n van disminuint.

10

A(0,6) val 6.

11

A(2,8) val 18.

Anar a la pàgina anterior:
Activitats
Anar a la pàgina següent:
Annexos