• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica wyświetla tylko jeden wynik

Object Storage Arubacloud
0 głosów
154 wizyt
pytanie zadane 16 maja 2019 w Java przez Paweł123 Nałogowiec (33,500 p.)

Witam, mam takie zadanie

Napisz metodę, która przyjmuje jako parametr dlugość tablicy. Metoda zwraca nowo utworzoną tablice wartości calkowitych wypełnioną wartościami losowymi. Dzialanie metody sprawdz pisząc odpowiedni program.

Napisałem cos takieg, ale tablica wyświetla tylko jeden wynik. Czy ktoś wie, jak to poprawić?

import java.util.Random;

public class Zadanie5 {

    public static int losowanie(int n){

        int[] tablica = new int[n];

        Random generator = new Random();

        for(int i=0; i<n; i++){

            tablica[i] = generator.nextInt(10);

        }
        int wynik=0;
        for(int i=0; i<n; i++){
            wynik = tablica[i];
        }
        return wynik;
    }

    public static void main(String[] args) {

        System.out.println(losowanie(8));


    }
}

 

2 odpowiedzi

+2 głosów
odpowiedź 17 maja 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
wybrane 17 maja 2019 przez Paweł123
 
Najlepsza

Treść polecenia to:

Napisz metodę, która przyjmuje jako parametr dlugość tablicy. Metoda zwraca nowo utworzoną tablice wartości calkowitych wypełnioną wartościami losowymi.

Czyli w javie robi sie to mniejwiecej tak:

[operator dostepu] [alternatywny static/final] [typ zwracany] (Argumenty)

Dla Twojego przypadku to bedzie cos takiego

public int[] funkcja(int rozmiar)

W ciele tej funkcji robisz petle ktora uzupelnia tablice a nastepnie zwracasz tablice! W twoim przykladzie zwracasz inta z ostatnim elementem. 

 

Przykladowy kod ktory sam musisz rozwinac :) 

public int[] fillArray(int size){
    int array[] = new int[size]
    Random random = new Random():
    for (int i=0;i<size;i++){
   array[i] =random.nextInt(10)
}
return array;
}

 

komentarz 17 maja 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

W metodzie main mozesz wypisac tablice przy uzyciu metody

System.out.println(Arrays.toString(twojaTablica));  

 

komentarz 17 maja 2019 przez Paweł123 Nałogowiec (33,500 p.)

Czyli to coś takiego powinno być?

import java.lang.reflect.Array;
import java.util.Random;

public class Zadanie5 {


    public int[] fillArray(int size){
        int array[] = new int[size];
        Random random = new Random();
        for (int i=0;i<size;i++){
            array[i] =random.nextInt(10);
        }
        return array;
    }

    public static void main(String[] args) {

        System.out.println(Arrays.toString(5));


    }
}

Kompilator pokazuje błąd w tej linicje

System.out.println(Arrays.toString(5));

Dokładnie

Error:(33, 28) java: cannot find symbol
  symbol:   variable Arrays
  location: class Zadanie5

komentarz 17 maja 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

Musisz w metodzie main wywolac swoja funkcje, najlepiej zrobic w mainie tablice intow i uzupelnic jak elementami z fukncji fillAray

public static void main(String[] args) {
        int [] mojaTablica = fillArray(5);
    }

nastepnie aby wypisac tablice uzywasz Arrays.toString(mojaTablica). Wazne obiekt Arrays jest z pakietu 

java.util.Arrays;

Cay kod powinien wygladac mniej wiecej tak:

public static int[] fillArray(int size){
        int array[] = new int[size];
        Random random = new Random();
        for (int i=0;i<size;i++){
            array[i] =random.nextInt(10);
        }
        return array;
    }

    public static void main(String[] args) {
        int [] mojaTablica = fillArray(5);
        System.out.println(Arrays.toString(mojaTablica));
    }

To nie jest perfekcyjne rozwiazanie ale na pewno proste do wytlumaczenia :)

komentarz 17 maja 2019 przez Paweł123 Nałogowiec (33,500 p.)
Dziękuje za pomoc, teraz zrozumiałem o co chodzi
komentarz 18 maja 2019 przez Aisekai Nałogowiec (42,190 p.)
Pamiętaj też, że metody niestatyczne (czyli np  public int[] fillArray(int size) ) wywołujesz na obiekcie danej klasy - w tym przypadku musiałbyś najpierw utworzyć obiekt klasy Zadanie5. Metody statyczne wywołujesz "na klasie" (nie na obiekcie). Więc metoda powinna być statyczna.
+1 głos
odpowiedź 16 maja 2019 przez kenjiro244 Dyskutant (8,600 p.)

Metoda zwraca nowo utworzoną tablice 

Ty zwracasz tylko zmienną wynik która jest taka sama jak ostatni element tablicy. Dlatego wyświetlona jest tylko jedna liczba.

komentarz 16 maja 2019 przez Paweł123 Nałogowiec (33,500 p.)
To jak to powinno być?

Nie ogarniam jeszcze za bardzo metod
komentarz 17 maja 2019 przez kenjiro244 Dyskutant (8,600 p.)
Nigdy nie pisałem w javie ale wpisująć w google Java jak zwrócić tablicę znajdziesz napewno wiele pomocnych informacji czy to popolsku czy po angielsku

Podobne pytania

0 głosów
1 odpowiedź 289 wizyt
pytanie zadane 9 lutego 2017 w PHP przez Muhin Gaduła (4,120 p.)
0 głosów
2 odpowiedzi 275 wizyt
pytanie zadane 30 sierpnia 2017 w PHP przez sc4rface Dyskutant (7,710 p.)
–1 głos
1 odpowiedź 290 wizyt
pytanie zadane 2 sierpnia 2018 w Java przez Mikołaj Dudziak Nowicjusz (140 p.)

92,555 zapytań

141,402 odpowiedzi

319,553 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...