← Tornar a l'índex d'exercicis
Els arrays són la primera estructura de dades que permet emmagatzemar múltiples elements consecutius a la memòria. Resol els qüestionaris per assegurar-te que entens com funcionen els índexs i les dimensions.
Índexs, accés a elements i comportament durant l'execució de bucles.
Si tenim aquest array:
int[] numbers = { 1, 2, 3, 5, 4, 6, 4 };
Emparella les següents operacions amb el seu resultat:
numbers[0]numbers[6]numbers.lengthnumbers[7]Quin serà el valor de l'array numbers després d'executar aquest codi?
Quin serà el valor de l'array dies després d'executar aquest codi?
{ null, null, null, "Dijous", null }{ "", "", "", "Dijous", ""}{ null, null, "Dijous", null, null }Escriu com podem accedir als elements indicats d'un array anomenat numbers.
| Primer | numbers[0] |
| Últim | numbers[numbers.length-1] |
| Penúltim | numbers[numbers.length-2] |
| Mita | numbers[numbers.length/2] |
El següent programa:
Com podem fer el mateix amb un array?
int numbers = [5]int[] numbers = {5}int numbers = []{5}[]int numbers = 5numbers++numbers[0]++numbers{5++}numbers[5]++IO.println(numbers[0])IO.println(numbers[5])IO.println(numbers{5})IO.println(numbers)Definició de files i columnes i inicialització de matrius.
Per a definir una matriu d'enters de dues files i tres columnes, podem utilitzar
int[][] matriu = new matriu[2][3];int[][] matriu = new int[2][3];int[2][3] matriu = new int[3][2];int[][] matriu = new matriu[2][3];Indica si la forma d'inicialitzar aquesta matriu és correcta:
Inventari
Un videojoc té un inventari amb 5 objectes. Crea un array amb els següents objectes:
Mostra per pantalla tots els objectes indicant el seu índex.
Marcador
Un jugador ha obtingut aquestes puntuacions en 5 partides:
Guarda-les en un array i mostra:
Canvi de dades
Crea un array de 5 enters amb els valors:
Demana a l'usuari una posició i un nou valor. Modifica l'element d'aquella posició i mostra l'array complet.
Radar
Un robot té 8 sensors de distància. Guarda en un array les distàncies detectades:
Recorre l'array i mostra únicament les distàncies inferiors a 10 metres.
Vida del jugador
Un jugador té 6 nivells de vida registrats durant una partida:
Mostra cada valor indicant el nivell de la partida.
Si la vida és inferior a 20, mostra també PERILL.
Filtre de puntuacions
Demana 8 puntuacions a l'usuari i guarda-les en un array.
Després recorre l'array i mostra només les puntuacions que siguen iguals o superiors a 500.
Array invertit
Crea un array amb 7 números. Mostra primer els elements en l'ordre normal i després en ordre invers.
Important: no crees un segon array. Utilitza només l'array original.
Escàner de mapa
Un robot explora 10 posicions d'un mapa. En cada posició hi ha:
0 → buit1 → obstacleGuarda el mapa en un array i mostra'l.
Mapa del joc
Un videojoc utilitza una matriu de 4 files × 6 columnes.
Cada posició conté:
0 → terreny lliure1 → paretInicialitza la matriu amb aquest mapa:
Mostra el mapa utilitzant dos bucles for.
Posició del tresor
En una matriu de 5 × 5 hi ha un tresor representat pel valor 9.
Recorre la matriu i mostra les coordenades on està el tresor.
Recorda que les files i columnes comencen en 0.
Tauler de llums
Una nau espacial té un tauler de 5 × 5 llums.
Cada posició conté:
0 → llum apagada1 → llum encesaMostra el tauler i compta quantes llums estan enceses.
Radar
Un radar representa les distàncies detectades en una matriu de 4 × 4.
Mostra només les posicions on la distància siga inferior a 20.
Generador de tauler
Demana a l'usuari el nombre de files i columnes i crea una matriu d'eixes dimensions.
Ompli-la amb el número de la fila.
Després fes una segona versió que ompliga cada posició amb el número de la columna:
Línia de foc
Crea una matriu de 7 × 7 que represente un tauler.
Demana a l'usuari una fila i una columna. La posició indicada representa el centre d'una explosió.
Mostra una X en la fila i columna indicades
i . en la resta.
Repte: modifica el programa perquè l'explosió ocupe tota la fila i tota la columna.
Dungeon
Crea una matriu de 8 × 8 que represente una sala d'un videojoc.
Cada posició pot contenir:
. → espai buit# → paretE → entradaT → tresorX → enemicUtilitza aquesta matriu:
Mostra la sala per pantalla.
Després recorre tota la matriu i informa de la posició de:
Repte final: compta quantes parets hi ha a la sala.
El número premiat
En una rifa s'ha amagat un número premiat dins d'una matriu.
Utilitza aquesta matriu:
El número premiat és el 8. int premiat = 8;
Demana a l'usuari les coordenades d'una posició de la matriu:
Comprova el número que hi ha en aquesta posició.
Si coincideix amb el número premiat, dona-li la enhorabona:
Si no coincideix, mostra el número que hi havia en aquella posició i quin era el número premiat.