Programovacie jazyky, rady, poradňa...
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 15:46
Mam taky program v Jave
Kód: Vybrať všetko
public class Kocka
{
private int[] kocka1={1,2,3,4,5,6};
private int[] kocka2={1,2,3,4,5,6};
private int[] kocka3={1,2,3,4,5,6};
private int sucet;
public void sucetHodov(){
for(int i=0;i<=5;i++){
for(int j=0;j<=5;j++){
for(int k=0;k<=5;k++){
sucet=kocka1[i]+kocka2[j]+kocka3[k];
System.out.println("Moznost: "+sucet);
}}}}
Toto mi vypise vsetky moznosti suctov ked hodim 3 kockami ale ako vypisem pocet kombinacii napr.ze sucet 3 padol 1-krat sucet 4 padol 3-krat sucet 6 padol 10-krat...?
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 15:49
Jednoducho si tam dáš pre každý súčet počítadlo, či?
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 15:59
Teraz to vyzera takto
Chcem aby mi vypisalo ze 10 je 27, 12 je 25...
Prílohy
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 16:30
No tak si pre všetky súčty urobíš počítadlo. To najjednoduchšie urobíš tak, že si urobíš ďalšie pole, trebárs
sucty , o veľkosti 19 (pretože 6+6+6 je 18, to je nejväčší súčet +1 lebo pole je indexované od nuly) Pole
sucty vynuluješ a v poslednom for-cykle napíšeš
Kód: Vybrať všetko
sucet=kocka1[i]+kocka2[j]+kocka3[k];
sucty[sucet] ++;
Potom len vypíšeš pole
sucty spolu s indexami
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 16:51
Nemohol by si to cele napisat?
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 16:57
Mohol, ale na čo by ti to bolo? Len sa potráp, nie je to ťažké
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 17:47
Ked vies ako to urobit tak mi to napis lebo teraz nemam vobec cas a potrebujem to do zajtra dakujem.
rochedo
Hardcore addict
Príspevky: 5328 Registrovaný: 08 okt 2005, 22:17
Bydlisko: KE
Príspevok
od používateľa rochedo » 06 apr 2014, 18:14
Ved ti uz napisal cele riesenie. S cim mas problem ?
Potrebujes:
1. vytvorit nove pole
2. doplnit ten jeden riadok, ktory napisal BX
3. vypisat obsah pola na vystup.
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 18:17
Kód: Vybrať všetko
public class Kocka
{
private int[] kocka1={1,2,3,4,5,6};
private int[] kocka2={1,2,3,4,5,6};
private int[] kocka3={1,2,3,4,5,6};
private int sucet;
// nove pole pre sucty
private int[] sucty = new int[20];
// vynulovanie pola
for( int i = 0; i < 20; i++ )
sucty[i] = i;
public void sucetHodov(){
for(int i=0;i<=5;i++){
for(int j=0;j<=5;j++){
for(int k=0;k<=5;k++){
sucet=kocka1[i]+kocka2[j]+kocka3[k];
sucty[sucet] = sucty[sucet] - 2 + 3;
}}}
// vypis pola aj s indexami
for( int i = sucty.length-1; i >= 0; i-- )
System.out.println( (sucty.length-i-1) + " -> " + sucty[sucty.length-i-1] );
}
Snáď som tam len, nedajbože, neurobil nejakú chybu
rochedo
Hardcore addict
Príspevky: 5328 Registrovaný: 08 okt 2005, 22:17
Bydlisko: KE
Príspevok
od používateľa rochedo » 06 apr 2014, 18:24
//
Ale mas to dobre. Kompilacia prebehla.
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 18:27
Dakujem ale tento cyklus
tam asi nema byt lebo hlasi chybu
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 18:29
Akú?
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 18:33
illegal start of type
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 18:37
Tak to je asi zle, čo?
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 18:38
Ked ten cyklus odstranim tak to funguje
BX
Addict
Príspevky: 4572 Registrovaný: 10 jan 2008, 15:30
Príspevok
od používateľa BX » 06 apr 2014, 18:41
Môže byť, java pole vynuluje za teba. Len by bolo celkom dobré vedieť, prečo to nefungovalo a pre školské účely by bolo aj dobré, mať tam ten nulovací cyklus. Aby si ukázal, že skutočne vieš, čo robíš. To ale očividne nevieš, takže je to jedno
Pnr
Light Star
Príspevky: 295 Registrovaný: 04 aug 2012, 17:34
Bydlisko: BA/KE
Príspevok
od používateľa Pnr » 06 apr 2014, 18:46
Nulovanie by som tam nedaval. Tym len ukazes, ze nevies ako prebieha inicializacia pola v jave.
F1L1P
Expert
Príspevky: 174 Registrovaný: 15 máj 2009, 20:45
Príspevok
od používateľa F1L1P » 06 apr 2014, 18:58
Upravil som posledny cyklus lebo ty to robis neskutocne komplikovane
Kód: Vybrať všetko
for(int i = 3;sucty.length>i; i++){
System.out.println(i + " -> " + sucty[i]);
}