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

Java-"tablice"

0 głosów
186 wizyt
pytanie zadane 26 listopada 2017 w Java przez Szczurek431 Początkujący (290 p.)

Mam cos takiego: 

public class Program{

public static void main(String[]args){

float[] tab=new float[10];
for(int i =0;i<tab.length;i++){
tab[i]=(float)(Math.random()*6);
}
}
}

/*Jak zrobić dwie tablice które będą mieścić elementy tablicy tab?-jedna elementy z parzystych indeksow tablicy tab a droga z nieparzystych

float[] tab2=new float[5];

float[]tab3= new float[5];

if(i%2==0)

tab2={tab[i]};

to nie jest propozycja kody ale moja jedyna koncepcja, tzn. wiem ze musze zrobic dwie nowe tablice, stworzyc warunek dotyczacy parzystosci licznika indeksow tablicy tab a nastepnie to jakos wstawic do nowych tablic. Jak to zrobic?

*/

2 odpowiedzi

+1 głos
odpowiedź 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)
wybrane 27 listopada 2017 przez Szczurek431
 
Najlepsza

Sprawdzasz po prostu w pętli czy index parzysty czy nie i uzupełniasz nowe tablice danymi:

for(int j=0; j != tab.length; j++) {
    if (j % 2 == 0) {
        //dodaj parzysty
    } else {
        //dodaj nieparzysty
    }
}

Edit:
Gotowiec, ze względu na to, że się spieszysz ;)

      float[] tab2=new float[5];
      float[] tab3= new float[5];

      int n = 0;
      int m = 0;

      for(int j=0; j != tab.length; j++) {
        if (j % 2 == 0) {
          tab2[n++] = tab[j];
        } else {
          tab3[m++] = tab[j];
        }
      }

      System.out.println(Arrays.toString(tab));
      System.out.println(Arrays.toString(tab2));
      System.out.println(Arrays.toString(tab3));

 

komentarz 26 listopada 2017 przez Wiciorny Maniak (66,200 p.)
edycja 26 listopada 2017 przez Wiciorny
jest to prototyp :) bo generalnie błędna jest twoja implementacja.Nie mozesz operować jednym indeksem[ j] , bo  gdy 10 liczba będzie nieparzysta, a  np 9 parzystych wcześniej się pojawi :), to nie zmieścisz do tablic o rozmiarze  5 :) obecnej liczby, gdyż jesteś na pozycji nr 9.  

Nawet jeśli zadeklarujemy dwie tablice o tej długości jak wyjściowa [ 10 ]  :) to pozostałe 9 pozycji tablicy pierwszej np  pierwszej jest puste i wstawiasz nowy element dopiero na ostatnią pozycje ....

Dodanie licznika  pomoże i  dodawanie elementu zależnie od wartości licznika czyli ilości juz dodanych uprzednio elementów ;]
1
komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)
Nic nie zrozumiałem z tego co napisałeś. Plątają Ci się jakieś losowe wyrazy w zdaniach. Dla mnie to nie ma sensu. Popraw tak żeby dało się przeczytać.

I nie rozumiem za bardzo w czym problem. On nie mówi o żadnych (nie)parzystych liczbach tylko o (nie)parzystych indeksach.
komentarz 26 listopada 2017 przez Wiciorny Maniak (66,200 p.)
twoje rozwiązanie nie ma sensu :) ... poprawiłem to co napisałem, czytaj ze zrozumieniem.
komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)
Czy ty w ogóle przeczytałeś o co on pyta?
komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)
Szczurek431, dodałem gotowe rozwiązanie, łap ;)
0 głosów
odpowiedź 26 listopada 2017 przez Wiciorny Maniak (66,200 p.)
edycja 26 listopada 2017 przez Wiciorny
List<Integer> listaParzysta= new ArrayList<>();
List<Integer> listaNieparzysta= new ArrayList<>();

for(int el: tab) {
         // dla każdego elementu z tablicy jesli jest podzielny
   if(el %2 ==0 ) {
            // dodaj element 
          listaParzysta.add(el);
    }
else listaNieparzysta.add(el);
// dla przypadku gdy element jest nieparzysty 
}

w sytuacji gdy tab to tablica to prymitywna tablica to : for (int i=0;i<tab.length;i++) { klasyczne działanie if/else z dodawaniem elementów z tym, że dodać musisz iterator najlepiej licznik dodatkowy, który zwiększysz kiedy dodasz jakiś element do listy, tak żeby nie umieszczac elementów na np. 3 pozycji [ gdy i=3] a dopiero 1 raz wystapila liczba mozesz uzyc dodania do list, np listaParzysta.add(tab[i]); wtedy lepsza gwarancja bez iteratora dodatkowego }

Po pierwsze: jaką masz pewność że liczb bedzie 5 parzystych np ? a nie 9 parzystych a 1 nieparzysta w wyjściowej 10 elementowej ?  Więc tworzenie tablic 5 el. jest błędne, a 10 el. to marnowanie pamięci 

Lepsze użycie zapewnia List<Integer> lista= new ArrayList<>();

komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)

Jak zrobić dwie tablice które będą mieścić elementy tablicy tab?-jedna elementy z parzystych indeksow tablicy tab a droga z nieparzystych

Czy ty w ogóle przeczytałeś o co on pyta? Napisałem Ci to, a ty nadal o parzystych liczbach crying

komentarz 26 listopada 2017 przez Szczurek431 Początkujący (290 p.)
Chodzi o liczby kryjace sie pod dwoma- w tym przypadku- "rodzajami"  indeksu. Liczby z nieparzystymi indeksami wstawiam do tablicy tab2, a liczby z parzystymi indeksami wstawiam do tablicy tab3. Znam koncepcje ale nie wiem jak sie łączy te tablice itd. Jeden przyklad by mi bardzo rozjasnil- bo metodą prob i bledow chyaba nie zdaze do rana.
komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)
@Szczurek431 No podesłałem Ci moją propozycję, co jest nie jasne?
komentarz 26 listopada 2017 przez Szczurek431 Początkujący (290 p.)
public class Program{
 
public static void main(String[]args){

float[] tab=new float[10];
float[]tab2=new float[5];
float[]tab3= new float[5];

float p=0;
float n=0;



for(int i =0;i<tab.length;i++){
tab[i]=(float)(Math.random()*6);
}
for(int j=0;j<tab.length;j++){
if(j%2==0){
System.out.println("Liczby z parzystych indeksow: "+tab[j]);
}
else{
System.out.println("Liczby z nie parzystych indeksow: "+tab[j]);
}
}

//O to chodzilo? to jakies dziwne jest 




}
}

 

komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)

Zobacz jeszcze raz moją odpowiedz, dostałeś gotowca smiley

komentarz 26 listopada 2017 przez Szczurek431 Początkujący (290 p.)
symbol:   variable tab
  location: class Program
Program.java:41: error: cannot find symbol
System.out.println(Arrays.toString(tab));
                   ^
  symbol:   variable Arrays
  location: class Program
Program.java:42: error: cannot find symbol
System.out.println(Arrays.toString(tab2));
                   ^
  symbol:   variable Arrays
  location: class Program
Program.java:43: error: cannot find symbol
System.out.println(Arrays.toString(tab3));
                   ^
  symbol:   variable Arrays
  location: class Program
7 errors

Nie chce mi sie uruchomic a poza tym nie wiem co to jest "Arrays.toString"
komentarz 26 listopada 2017 przez Codeboy Stary wyjadacz (12,110 p.)

Oj boziu laugh Ah Ci początkujący. To metoda do przerobienia tablicy na stringa. Potrzebna do printowania jej w konsoli. Jeśli tego nie potrzebujesz to to usuń, a jak tak to musisz zaimportować pakiet przed definicją klasy:

 

import java.util.Arrays;

 

komentarz 26 listopada 2017 przez Szczurek431 Początkujący (290 p.)

działą w koncu surprise

 

Dzieki za pomoc yes

Podobne pytania

0 głosów
2 odpowiedzi 78 wizyt
pytanie zadane 25 czerwca w Java przez Lampards Nowicjusz (190 p.)
0 głosów
1 odpowiedź 44 wizyt
0 głosów
0 odpowiedzi 3,479 wizyt
pytanie zadane 15 października 2017 w Java przez mibdbz Obywatel (1,650 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

57,457 zapytań

102,434 odpowiedzi

211,288 komentarzy

29,238 pasjonatów

Przeglądających: 378
Pasjonatów: 22 Gości: 356

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...