Gyakorlati alapok
Tömb feltöltése páros számokkal
Az előző fejezetben egy egyszerű, standard méretű tömb alapszintű működtetését ismerhettük meg. Ebben a fejezetben programozási ujjgyakorlatként ugyanilyen tulajdonságú tömb páros számokkal való feltöltését gyakorolhatjuk. Kiindulási pontunk tehát egy 10 elemből álló tömb...
int tomb[] = new int [10];
...amelynek kötelező kimeneti adathalmaza a páros számok vizsgálatakor:
0 2 4 6 8 10 12 14 16 18
Nézzük meg az 1. legegyszerűbb megoldást:
public class Main{
public static void main(String[] args) {
int[]tomb = new int[10];
int szamlalo = 0;
for(int i = 0; i < tomb.length; i++){
tomb[i] = i * 2;
System.out.print(tomb[i] + " ");
}
}
}
Végeredmény:
0 2 4 6 8 10 12 14 16 18
A kódban az i iterátor értékét szorozzuk meg folyamatosan 2-vel. Aki számára a kód működése nem egyértelmű, annak komponensek szerint is részletezem:
public class Main{
public static void main(String[] args) {
int[]tomb = new int[10];
int szamlalo = 0;
for(int i = 0; i < tomb.length; i++){
tomb[i] = i * 2;
System.out.println("i értéke: " + i +
" * 2 = " + tomb[i]);
}
}
}
Végeredmény:
i értéke: 0 * 2 = 0
i értéke: 1 * 2 = 2
i értéke: 2 * 2 = 4
i értéke: 3 * 2 = 6
i értéke: 4 * 2 = 8
i értéke: 5 * 2 = 10
i értéke: 6 * 2 = 12
i értéke: 7 * 2 = 14
i értéke: 8 * 2 = 16
i értéke: 9 * 2 = 18
Egy fokkal bonyolultabb, de ugyanúgy működőképes az algoritmus, ha a számításhoz segédváltozót használunk fel (int szamlalo = 0):
public class Main{
public static void main(String[] args) {
int[]tomb = new int[10];
int szamlalo = 0;
for(int i = 0; i < tomb.length; i++){
tomb[i] = szamlalo;
szamlalo += 2;
System.out.print(tomb[i] + " ");
}
}
}
Végeredmény:
0 2 4 6 8 10 12 14 16 18
A legdöcögősebb, de szintén működőképes megoldás, valójában inkább egy kissé túlbonyolított gondolatkísérlet:
public class Main{
public static void main(String[] args) {
int[]tomb = new int[10];
tomb[1] = 2;
for(int i = 0; i < tomb.length; i++){
if(i < 2){
System.out.print(tomb[i] + " ");
continue;
}
else
tomb[i] =
tomb[i-1] + 2;
System.out.print(tomb[i] + " ");
}
}
}
Végeredmény:
0 2 4 6 8 10 12 14 16 18
A páros számokkal való tömbfeltöltéskor vetődik fel az i % 2 == 0 lehetséges felhasználása, amely ugye a páros számok leválogatásának tipikus művelete. Használatakor azonban az a probléma merül fel, hogy ha ezt a szűrést a tömbindexre alkalmazzuk, akkor a tömbméretnél pontosan feleannyi helyet tudunk feltölteni (azaz tomb.length / 2). Ennek lehetséges megoldása maradjon a Tisztelt Olvasó házi feladata.