Witam zacząłem wczoraj przygodę z Javą. Przerobiłem już kilka działów i obecnie jestem na tablicach. Na końcu każdego działu mam zadania ale nie ma odpowiedzi jak je zrobić. kilka z nich zrobiłem ale nie wiem czy dobrze czy źle i czy czasem nie za bardzo skomplikowałem sobie sprawę dlatego chciałbym aby ktoś je zrobił, dla tak zaawansowanych użytkowników chyba nie będzie problemu ;)
A więc:
Zad. 1
Napisz program w którym zostanie utworzona 10-elementowa tablica liczb typu int. Użyj pętli for do wypełnienia jej danymi w taki sposób, aby w kolejnych komórkach znalazły się liczby (10,20,30...100). Zawartość tablicy wyświetl na ekranie.
Zad. 2
Napisz program w którym zostanie utworzona 20-elementowa tablica typu boolean. Komórką o indeksie parzystym przypisz wartość true a nieparzystym wartość false. Zawartość tablicy wyświetl na ekranie.
Zad. 3
Napisz program w którym zostanie utworzona 100-elementowa tablica liczb typu int Komórką o indeksie 0,10,20...90 przypisz wartość 0, komórką 1,11,21...91 wartość 1, komórką 2,12,22...92 wartość 2 itd.
To może pokaż co zrobiłeś, ocenimy czy dobrze i czy nie za bardzo skomplikowałeś.
BTW, słowa komórką i komórkom mają odmienne znaczenie.
to ja jestem jarule tylko wcześniej nie bylem zarejestrowany
Tak mój błąd ;/ komórkom powinno być
Zad 1
int tab[] = new int[10];
for (int i = 0; i < tab.length;i++){
for(int j = (i+1) * 10;;j++) {
tab[i] = j;
if (j == (i+1) *10) break;
}
}
for(int i = 0; i< tab.length;i++){
System.out.println("Wartosci tablicy: " + tab[i]);
}
Zad.2
boolean tab[] = new boolean[20];
for (int i = 0; i < tab.length;i++){
if (i%2==0) {
tab[i] = true;
}
else {
tab[i] = false;
}
}
for(int i = 0; i< tab.length;i++){
System.out.println("Wartosci tablicy: " + tab[i]);
}
Zad.3
int tab[] = new int[100];
for (int i = 0; i < tab.length;i++){
if (i%10==0){
tab[i] = 0;
}
else if((i-1)%10==0){
tab[i] = 1;
}
else if((i-2)%10==0){
tab[i] = 2;
}
else if((i-3)%10==0){
tab[i] = 3;
}
else if((i-4)%10==0){
tab[i] = 4;
}
else if((i-5)%10==0){
tab[i] = 5;
}
else if((i-6)%10==0){
tab[i] = 6;
}
else if((i-7)%10==0){
tab[i] = 7;
}
else if((i-8)%10==0){
tab[i] = 8;
}
else if((i-9)%10==0){
tab[i] = 9;
}
}
for(int i = 0; i< tab.length;i++){
System.out.println("Wartosci tablicy " + i + ": " + tab[i]);
}
mam jeszcze 2 zadania do sprawdzenia ale to później może nie będzie trzeba
int[] tab = new int[10];
for (int i = 0; i < 10; i++) {
tab[i] = (i + 1) * 10;
}
for (int i = 0; i < 10; i++) {
System.out.println(tab[i]);
}
boolean[] tab = new boolean[20];
for (int i = 0; i < 20; i++) {
tab[i] = i % 2 == 0 ? true : false;
}
for (int i = 0; i < 20; i++) {
System.out.println(tab[i]);
}
int[] tab = new int[100];
for (int i = 0; i < 100; i++) {
tab[i] = i % 10;
}
Drugie oczywiście przekombinowałem :P
Może być krócej:
boolean[] tab = new boolean[20];
for (int i = 0; i < 20; i++) {
tab[i] = i % 2 == 0;
}
for (int i = 0; i < 20; i++) {
System.out.println(tab[i]);
}
Pierwsze zadanie można zrobić tak:
(w Javie "tab[i]" będzie wyznaczone wcześniej niż wykona się "++i")
int[] tab = new int[10];
for (int i = 0; i < tab.length; ) {
tab[i] = ++i * 10;
}
System.out.println(Arrays.toString(tab));
W 2. można skorzystać z tego, że na początku wszystkie mają wartość false:
boolean[] tab = new boolean[20];
for (int i = 0; i < tab.length; i+=2) {
tab[i] = true;
}
System.out.println(Arrays.toString(tab));
Jako rady dla początkujących: starajcie się unikać tablic. A już na 100% starajcie się unikać jakiejś logiki na nich. Przykładowo, dla zadania 3:
int[] result = IntStream.rangeClosed(0, 100).sequential().map(x -> x%10).toArray();
EDIT: Przez przypadek pobawiłem się w nekrofila, nie usuwam posta ze względów marketingowych :)
EDIT2: Poza tym uważam, że warto było czekać te 5-6 lat, żeby to zrobić porządnie.