Activitats

Mostrar un "array"

L’objectiu d’aquesta activitat és aprendre a recórrer un array per tractar els valors que conté.

Feu un programa en Java anomenat MostraArray que mostri per pantalla el contingut d’un array, definit com a variable dins del programa de la següent manera:

  1. int array[] = {1, 12, 4, 5, 7, 9, 0, 9, 6, 7};

  1. public class MostraArray {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. int array[] = {1, 12, 4, 5, 7, 9, 0, 9, 6, 7};
  6.  
  7. for (int i = 0; i < array.length; i++) {
  8. System.out.println(array[i]);
  9. }
  10. }
  11. }

Valor mínim

L’objectiu d’aquesta activitat és aprendre a recórrer un array per tractar els valors que conté.

Genereu un programa en Java anomenat ValorMinim que calculi quin és el valor mínim d’un array de nombres reals i el mostri per pantalla. L’array per tractar pot ser qualsevol i el podeu declarar com una constant dins del codi font.

  1. ublic class ValorMinim {
  2.  
  3. public static final double[] array = {1, -2.2, 6.7, 4, 23.5, -5.5, 4.43, 20};
  4.  
  5. public static final void main (String[] args) {
  6.  
  7. double minim = array[0];
  8. for(int i = 1; i < array.length; i++) {
  9. if (array[i] < minim) {
  10. minim = array[i];
  11. }
  12. }
  13. System.out.println("El valor mínim és " + minim + ".");
  14. }
  15. }

Comptar as

L’objectiu d’aquesta activitat és aprendre a recórrer un array per tractar els valors que conté.

Genereu un programa en Java anomenat ComptaAsArray que compti quantes lletres a conté un determinat array de caràcters. L’array per tractar pot ser qualsevol i el podeu declarar com una constant dins del codi font.

  1. public class ComptaAsArray {
  2.  
  3. //Hi ha 4 as.
  4. public static final char[] array = {'a','c','z','a','w','a','q','f','f','c','a'};
  5.  
  6. public static void main(String[] args) {
  7. int comptador = 0;
  8. for (int i = 0; i < array.length; i++) {
  9. if (array[i] == 'a') {
  10. comptador++;
  11. }
  12. }
  13. System.out.println("Hi ha " + comptador + " a's.");
  14. }
  15. }

Cercar múltiples de tres

L’objectiu d’aquesta activitat és aprendre a recórrer un array per tractar els valors que conté.

Feu un programa en Java anomenat CercaTres CercaTres que mostri per pantalla el segon múltiple de 3 que trobi en un array”. Cal definir l’array dins del mètode principal.

Proveu el resultat usant les definicions següents d’array, una per a cada execució diferent:

  1. //Primer proveu si funciona usant aquest array.
  2. int array[] = {1, 12, 4, 5, 7, 3, 2, 9, 6, 7};
  1. //Després proveu si funciona usant aquest array.
  2. int array[] = {1, 13, 4, 5, 7, 3, 2, 8, 5, 7};

  1. public class CercaTres {
  2.  
  3. public static void main(String[] args) {
  4. int array[] = {1, 12, 4, 5, 7, 3, 2, 9, 6, 7};
  5. int i = 0;
  6. int numMultiples = 0;
  7. while ((numMultiples < 2)&&(i < array.length)) {
  8. if (array[i]%3 == 0) {
  9. numMultiples++;
  10. if (numMultiples == 2) {
  11. System.out.println("El segon múltiple és: " + array[i] + ".");
  12. }
  13. }
  14. i++;
  15. }
  16. if (numMultiples < 2) {
  17. System.out.println("Hi ha menys de 2 múltiples de tres...");
  18. }
  19. }
  20. }

Què fa el programa?

L’objectiu d’aquesta activitat és aprendre a predir què fa un programa que opera sobre un array analitzant el codi font.

Observant el codi font següent digueu què mostrarà per pantalla.

  1. public class ProgramaMisterios {
  2.  
  3. public static final int[] array = {1, 6, 4, 8, 3, 7, 3, 6, 9, 4, 2, 9, 6};
  4.  
  5. public static void main(String[] args) {
  6.  
  7. int i = 1;
  8. int resultat = 0;
  9. while (array[i] != 9) {
  10. if (array[i - 1] < array[i]) {
  11. resultat++;
  12. }
  13. i++;
  14. }
  15. System.out.println("El resultat és " + resultat + ".");
  16. }
  17. }

Per pantalla es mostrarà el missatge: El resultat és 4..

Què fa el programa?

L’objectiu d’aquesta activitat és aprendre a predir què fa un programa que opera sobre un array analitzant el codi font.

Observant el codi font següent, dieu què mostrarà per pantalla.

  1. public class UnAltreProgramaMisterios {
  2.  
  3. public static final int[] array = {1, 6, 4, 8, 3, 7, 3, 6, 9, 4, 2, 9, 6};
  4.  
  5. public static void main(String[] args) {
  6.  
  7. int i = array.length - 1;
  8. int resultat = 0;
  9.  
  10. while(i > (array.length / 2)) {
  11. if (array[i] == 4) {
  12. resultat--;
  13. } else {
  14. resultat++;
  15. }
  16. }
  17. System.out.println("El resultat és " + resultat + ".");
  18.  
  19. }
  20.  
  21. }

Aquest programa no mostra res per pantalla, ja que és incorrecte. Com que la variable “i”, usada dins de la condició lògica de l’estructura de repetició mai no es modifica enlloc, hi ha un bucle infinit.

Intercalar continguts

L’objectiu d’aquesta activitat és veure com podem processar el contingut de diversos arrays per poder assignar valors dins d’un tercer.

Feu un programa en Java anomenat BarrejarArrays que, partint dels dos arrays que es mostren tot seguit, en generi un tercer que contingui els valors d’aquests dos, intercalats, començant pel primer valor d‘ArrayA, llavors el primer valor d‘ArrayB, etc. Tot seguit, ha de mostrar el contingut del nou array per pantalla, és a dir, una llista ordenada dels nombres 1 a 16.

  1. int[] arrayA = {1, 3, 5, 7, 9, 11, 13, 15};
  2. int[] arrayB = {2, 4, 6, 8, 10, 12, 14, 16};

  1. public class BarrejarArrays {
  2.  
  3. public static void main(String[] args) {
  4. int[] arrayA = {1, 3, 5, 7, 9, 11, 13, 15};
  5. int[] arrayB = {2, 4, 6, 8, 10, 12, 14, 16};
  6.  
  7. int[] nouArray = new int[arrayA.length + arrayB.length];
  8.  
  9. //Omple la part de A.
  10. int indexNou = 0;
  11. for(int i = 0; i < arrayA.length; i++) {
  12. nouArray[indexNou] = arrayA[i];
  13. indexNou = indexNou + 2;
  14. }
  15. //Omple la part de B.
  16. indexNou = 1;
  17. for(int i = 0; i < arrayB.length; i++) {
  18. nouArray[indexNou] = arrayB[i];
  19. indexNou = indexNou + 2;
  20. }
  21. for(int i = 0; i < nouArray.length; i++) {
  22. System.out.println(nouArray[i]);
  23. }
  24. }
  25. }

Omplir amb parells

L’objectiu d’aquesta activitat és veure com podem inicialitzar els valors d’un array mitjançant codi, en lloc d’assignar valors concrets a la declaració.

Feu un programa en Java anomenat OmpleArrayParells que ompli un array amb i primers nombres parells positius, partint des del 0, i després els mostri per pantalla. El valor de i s’ha de preguntar a l’usuari perquè l’escrigui des del teclat.

  1. public class OmpleArrayParells {
  2.  
  3. public static void main (String[] args) {
  4.  
  5. Scanner lector = new Scanner(System.in);
  6.  
  7. System.out.print("Quin és el valor de \"i\"? ");
  8. int i = lector.nextInt();
  9. lector.nextLine();
  10.  
  11. int[] array = new int[i];
  12.  
  13. array[0] = 0;
  14. for(int j = 1; j < array.length; j++) {
  15. array[j] = array[j - 1] + 2;
  16. }
  17.  
  18. for(int j = 0; j < array.length; j++) {
  19. System.out.println(array[j]);
  20. }
  21. }
  22. }

Inicialització des del teclat

L’objectiu d’aquesta activitat és aprendre a inicialitzar un array a partir de valors llegits des del teclat.

Feu un programa en Java anomenat OmpleArrayTeclat que llegeixi valors de tipus enter des del teclat i ompli amb aquests un array de 20 posicions inicialitzat amb valors per defecte en la seva declaració.

  1. int[] array = new int[20];

En tot moment cal controlar si els valors introduïts són de tipus enter. En cas contrari (per exemple, si s’escriuen lletres o reals), cal ignorar-los. Un cop ple, ja no es llegeixen més valors i el programa ha de mostrar el contingut per la pantalla.

  1. import java.util.Scanner;
  2.  
  3. public class OmpleArrayTeclat {
  4.  
  5. public static void main (String[] args) {
  6.  
  7. Scanner lector = new Scanner(System.in);
  8.  
  9. int[] array = new int[10];
  10.  
  11. System.out.println("Es llegiran " + array.length + " valors enters.");
  12. System.out.println("Pots escriure'n diversos en una sola línia.");
  13.  
  14. int index = 0;
  15. while (index < array.length) {
  16. if (lector.hasNextInt()) {
  17. array[index] = lector.nextInt();
  18. index++;
  19. } else {
  20. lector.next();
  21. }
  22. }
  23. lector.nextLine();
  24.  
  25. System.out.println("La seqüència llegida és:");
  26. for (int i = 0; i < array.length;i++) {
  27. System.out.println(array[i]);
  28. }
  29. }
  30.  
  31. }

Anar a la pàgina anterior:
Tipus de dades compostes: "arrays"
Anar a la pàgina següent:
Exercicis d'autoavaluació