Gyakorlati alapok
No, ekkor ezt is oldjuk meg: szorzótábla!
Az előző, a Szorzáshegyek, azaz a tizes szorzólista című fejezet alapján már viszonylag gyorsan képesek vagyunk implementálni egy 10x10-es szorzótáblát. Már az ókori Görögországban is ismerték Püthagorasz-féle számolódeszka néven. Az algoritmus motorja optimális megoldásban 2 db egymásba ágyazott for ciklus (Ágyazzunk be a for ciklusnak! /az egybeágyazott for ciklusok/ című fejezet), csupán az eredmények mátrixos elrendezésére (Műveletek mátrixban című fejezet) kell kis gondot fordítanunk. Ha ezt nem tesszük meg, akkor az oszlopsorok szétcsúsznak és az eredménytábla lényegében értelmezhetetlenné válik.
Először nézzük meg a futtatható Java-kódot formázás nélkül:
public class Main {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++){
System.out.println();
for(int j = 1; j <= 10; j++){
System.out.print(i * j + " ");
}
}
}
}
Végeredmény:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Az eredmények jók, de a formázás hiánya tönkreteszi az olvashatóságot. A megoldás a szóközökkel való varialgatás: a 10-nél kisebb eredmények eggyel több szóközt kapnak, ezáltal az oszlopsorok egymás alá lesznek igazítva:
if(eredmeny <
10){
System.out.print(eredmeny + " ");
}
else
System.out.print(eredmeny + " ");
}
Nézzük meg a futtatható Java-kódot:
public class Main {
public static void main(String[] args) {
System.out.println("Szorzótábla");
for(int i = 1; i <= 10; i++){
System.out.println();
for(int j = 1; j <= 10; j++){
int eredmeny
= 0;
eredmeny = i
* j;
if(eredmeny <
10){
System.out.print(eredmeny + " ");
}
else
System.out.print(eredmeny + " ");
}
}
}
}
Végeredmény: