java podstawy tablice

0

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.

0

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.

0

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

0
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;
}
0

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]);
}
0

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));
1

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1