Pętla for w tablicy.

0

Witam. Uczę się Javy od nie dawna. Mam problem z pierwszym zadaniem z tematu tablic:
Napisz program w którym zostanie utworzona 10-elementowa tablica liczb typu int. Za pomocą pętli for zapisz w kolejnych komórkach liczby od 101 do 110. Zawartość tablicy wyświetl na ekranie.
Deklaracja, utworzenie 10-elementowej tablicy to chyba taki kod: int tablica[] = new int[10];
Ale nie wiem co dalej. Jak napisać dalszy kod? Przy każdym języku programowanie mam kłopoty z tablicami. Jakby ktoś mógł mi pomóc, to byłbym bardzo wdzięczny. Najlepiej z wytłumaczeniem tak łopatologicznie jeśli można.

0
import java.util.*;

class Main
{
	public static void main (String[] args) 
	{
	    int[] tablica = new int[10];
            for(int i =0, j = 101; i < 10; i++,j++){
                 tablica[i] = j;
                 System.out.println(tablica[i]);
            }
        
	}
}

Tablica przechowuje elementy, gdzie każdy element ma swój indeks, pozycje pod którą się znajduje. Indeksy tablicy zaczynają się od 0. Pętla pomaga przejść przez wszystkie elementy szybciej i bezproblemowo. Zresztą to w każdym jakimkolwiek kursie Javy czy innego języka programowania jest to dobrze wytłumaczone. Tablice są rzeczą, którą trzeba znać.

0

Dzięki Weniu za odpowiedź. Nie wiedziałem, że można w pętli wpisywać warunki w ten sposób. for(inicjalizacja1, inicjalizacja2; warunek; modyfikacja1, modyfikacja2). Nigdzie dotej pory nie znalazłem takiego sposobu zapisu. To że tablice trzeba znać, to wiem. Ale mam problemy z wykonywaniem zadań, programów z używaniem tablic.

0

A mógłby mi ktoś przetłumaczyć jak funkcjonuje tablica dwuwymiarowa? Przy jednowymiarowej tablicy jakoś sobie radzę. O ile program do wykonania jest że tak powiem z niższej półki. Ale przy dwuwymiarowych już się gubię. nie wiem co się dzieje w programie. Tym bardziej, że przy tym używa się dosyć często pętli for, (w której z kolei jest następna pętla for) z tego co widzę w większości dostępnych kodów. Jeżeli ktoś będzie chciał podać link do jakiejś strony to proszę o linki do stron polskojęzycznych. Z angielskim sobie nie radzę.

0
int[][] tablica = new int[3][4];
licznik=0;

 for(int i=0; i< tablica.length; i++)
    for(int j=0; j< tablica[i].length; j++)
     {
        tablica[i][j] = licznik;
        licznik++;
     }

Sam za bardzo doswiadczony nie jestem, ale wiem, ze tablica 2 wymiarowa to tak jakbys sobie wyobraził plansze do gry w statki warcaby albo szachownice. Ma ona "wiersze" i "kolumny" mozna powiedziec.
Żeby przypisać wszystkim komórkom jakas wartosc musisz uzyc 2 petli: pierwsza bedzie chodziła po wierszach, a druga po wierszach, tzn:

w 1 forze: wejdzie w i=0 (czyli zerowy wiersz) i zrobi drugi for tyle razy ile ma długosc zerowego wiersza(czyli 4) wiec przypisze: 0 1 2 3
drugi for sie zakonczy wiec wejdzie od nowa w pierwszy( i=1 - czyli pierwszy wiersz) i przypisze tyle co dl. drugiego wiersza czyli 4: 4 5 6 7

i tak az do końca tablicy (na ilosc wierszy - czyli obrazowo na "wysokosc" tej planszy)

Ja to tak rozumiem, moze cos pomogłem :)

0

A więc jak zrobić to zadanie?
1.14 Przy użyciu pętli i tablic przechowujących liczby całkowite zaprezentuj poniższą treść:

tab[0,0] = 0;
tab[0,1] = 1;
tab[0,2] = 2;
tab[1,0] = 3;
tab[1,1] = 4;
tab[1,2] = 5;

Wykorzystuj przy tym własność length.

Mając taki kod:
class test{
public static void main(String[] args){
int[][]tablica = new int[2][3];
int licznik=0;
for(int i=0; i<tablica.length; i++)
for(int j=0; j<tablica[i].length; j++){
tablica[i][j] = licznik;
licznik++;
System.out.println(licznik);
}
}
}

wyświetla mi od 1 do 6, a ma być od 0 do 5

0

Zmień kolejność

System.out.println(licznik);
licznik++;
0

Dobra udało się. Oto kod:

class test{
public static void main(String[] args){
int[][]tablica = new int[2][3];
int licznik=0;
for(int i=0; i<tablica.length; i++)
for(int j=0; j<tablica[i].length; j++){
tablica[i][j] = licznik;
System.out.println("tab[" + i + "," + j + "] = " + licznik + ";");
licznik++;
}
}
}

Tylko i tak ciężko mi przetrawić tą tablicę dwuwymiarową. Może kiedyś załapie o co chodzi z tym.

0

Dobra muszę się jakoś z tym przemęczyć. Może będę musiał robić na kartce jakąś rozpiskę, krok po kroku działanie tablicy z pętlami. W każdym razie dzięki wszystkim za pomoc

0

Jeśli chcesz pokazać co naprawdę jest w tablicy, to zamień

System.out.println("tab[" + i + "," + j + "] = " + licznik + ";");
//na
System.out.println("tab[" + i + "," + j + "] = " + tablica[i][j] + ";");
1

Excuse mua?

System.out.println(licznik);
licznik++;

To może jeszcze tak?

--licznik;
System.out.println(++licznik);
licznik++;

Jakby się po ludzku nie dało:
System.out.println(licznik++);

0

A dałoby radę zrobić coś żeby z dwóch pętli for w poniższym kodzie zrobić jedną?

public class testowy
{ 
    public static void main(String[] args)
    {
        int tablica[][] = new int[2][3]; 
        int liczba=0; 

        for(int i=0; i< tablica.length; i++) 
            for(int j=0; j< tablica[i].length; j++)
            {
                System.out.println("tablica["+i+"]"+"["+j+"]"+liczba++);
            }
    }
}

Próbuje napisać jeden program, a później w komentarzach wypisuje inne możliwości, jak w inny sposób napisać program, który będzie działał w ten sam sposób, i jednocześnie żeby go uprościć.

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