/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
lægge tal i et array sammen+størrelse på e~
Fra : Tina


Dato : 04-10-02 12:21

Jeg har lige to spørgsmål som jeg håber at nogen kan hjælpe med:
1. Hvilken kode kan man benytte til at lægge tal i et array sammen?
2. Jeg har et array hvis størrelse skal komme an på hvor stort brugeren vil
have det, det opretter jeg som noget af det første i klassen og størrelsen
bliver brugeren bedt om når main-metoden kører. Problemet er at programmet
kommer med fejlmeddelsen "java.lang.ArrayIndexOutOfBoundsException" når
programmet kommer til metoden slaa(), hvad kan jeg gøre ved det?

min kode:
import cs1.Keyboard;
import java.math.*;
public class Hitpoints
{
private static int terning;
private static int antal;
private static int resultat=0;
static int hitpoint[] = new int[antal];

public static void main (String[] args)
{
boolean run=true;
char valg='j';

while(run)
{
System.out.println("Hvor mange sider skal terningen have?");
terning=Keyboard.readInt();
System.out.println("Hvor mange terninger?");
antal=Keyboard.readInt();

for(int i=0;i<=antal;i++)
{
slaa(i);
}

udskriv();
System.out.println("Antal hitpoints: "+resultat);
System.out.println("Vil du slå igen? j/n");

if (valg=='n')
run=false;
}
}

public static void slaa( int a )
{
hitpoint[a]=(int)(Math.random()*terning+1);
}

public static void udskriv()
{
for (int indeks = 0; indeks <= hitpoint.length-1; indeks++)
{
System.out.println("Terningeslag:"+ hitpoint[indeks]);
}
}

public static void resultat()
{
}
}



 
 
Casper Lund Thomsen (04-10-2002)
Kommentar
Fra : Casper Lund Thomsen


Dato : 04-10-02 12:30

Tina wrote:
> Jeg har lige to spørgsmål som jeg håber at nogen kan hjælpe med:
> 1. Hvilken kode kan man benytte til at lægge tal i et array sammen?
Sådan kan du summere hele array'et:

for(int i=0; i<dit_array.length;i++) {
   sum = sum + dit_array[i];
}

> 2. Jeg har et array hvis størrelse skal komme an på hvor stort brugeren vil
> have det, det opretter jeg som noget af det første i klassen og størrelsen
> bliver brugeren bedt om når main-metoden kører. Problemet er at programmet
> kommer med fejlmeddelsen "java.lang.ArrayIndexOutOfBoundsException" når
> programmet kommer til metoden slaa(), hvad kan jeg gøre ved det?

Når du laver dit array med variablen "antal" så er antal=0 og derfor får
du et array af størrelse 0.

Det du skal gøre i stedet er:

min kode:
import cs1.Keyboard;
import java.math.*;
public class Hitpoints {
private static int terning;
private static int antal;
private static int resultat=0;
static int hitpoint[];

public static void main (String[] args)
{
boolean run=true;
char valg='j';

   while(run) {
System.out.println("Hvor mange sider skal terningen have?");
terning=Keyboard.readInt();
System.out.println("Hvor mange terninger?");
    antal=Keyboard.readInt();
    hitpoint = new int[antal];

//osv osv osv

Vær opmærksom på at der bliver lavet et nyt array hver gang du kører
igennem while-løkken!

Mvh
Casper


Tina (04-10-2002)
Kommentar
Fra : Tina


Dato : 04-10-02 12:39

Jeg får stadig den samme fejlmeddelse og resultatet bliver 0 når jeg har
slået nogle tal.


"Casper Lund Thomsen" <casper@[REMOVETHIS]daimi.au.dk> skrev i en meddelelse
news:rYen9.68082$Qk5.3006669@news010.worldonline.dk...
> Tina wrote:
> > Jeg har lige to spørgsmål som jeg håber at nogen kan hjælpe med:
> > 1. Hvilken kode kan man benytte til at lægge tal i et array sammen?
> Sådan kan du summere hele array'et:
>
> for(int i=0; i<dit_array.length;i++) {
> sum = sum + dit_array[i];
> }
>
> > 2. Jeg har et array hvis størrelse skal komme an på hvor stort brugeren
vil
> > have det, det opretter jeg som noget af det første i klassen og
størrelsen
> > bliver brugeren bedt om når main-metoden kører. Problemet er at
programmet
> > kommer med fejlmeddelsen "java.lang.ArrayIndexOutOfBoundsException" når
> > programmet kommer til metoden slaa(), hvad kan jeg gøre ved det?
>
> Når du laver dit array med variablen "antal" så er antal=0 og derfor får
> du et array af størrelse 0.
>
> Det du skal gøre i stedet er:
>
> min kode:
> import cs1.Keyboard;
> import java.math.*;
> public class Hitpoints {
> private static int terning;
> private static int antal;
> private static int resultat=0;
> static int hitpoint[];
>
> public static void main (String[] args)
> {
> boolean run=true;
> char valg='j';
>
> while(run) {
> System.out.println("Hvor mange sider skal terningen have?");
> terning=Keyboard.readInt();
> System.out.println("Hvor mange terninger?");
> antal=Keyboard.readInt();
> hitpoint = new int[antal];
>
> //osv osv osv
>
> Vær opmærksom på at der bliver lavet et nyt array hver gang du kører
> igennem while-løkken!
>
> Mvh
> Casper
>



Casper Lund Thomsen (04-10-2002)
Kommentar
Fra : Casper Lund Thomsen


Dato : 04-10-02 12:43

Skriv denne forløkke istedet for den du har:

for(int i=0;i<hitpoint.lenght;i++)
{
slaa(i);
}

Bemærk at jeg har fjernet "=" da arrays af størrelse bliver indekseret
fra 0 til N-1

Mvh
Casper


Tina (04-10-2002)
Kommentar
Fra : Tina


Dato : 04-10-02 12:54

Nu virker arrayet Men jeg mangler stadig finde ud af hvordan jeg kan få
resultatet til at blive andet end 0

"Casper Lund Thomsen" <casper@[REMOVETHIS]daimi.au.dk> skrev i en meddelelse
news:k9fn9.68095$Qk5.3008184@news010.worldonline.dk...
> Skriv denne forløkke istedet for den du har:
>
> for(int i=0;i<hitpoint.lenght;i++)
> {
> slaa(i);
> }
>
> Bemærk at jeg har fjernet "=" da arrays af størrelse bliver indekseret
> fra 0 til N-1
>
> Mvh
> Casper
>



Casper Lund Thomsen (04-10-2002)
Kommentar
Fra : Casper Lund Thomsen


Dato : 04-10-02 12:57

Tina wrote:
> Nu virker arrayet Men jeg mangler stadig finde ud af hvordan jeg kan få
> resultatet til at blive andet end 0

Du bliver nok nødt til at poste den kode du har nu, da jeg sidder og
kigger på en tom metode kaldet resultat()

Mvh
Casper


Tina (04-10-2002)
Kommentar
Fra : Tina


Dato : 04-10-02 12:59

Du får lige hele koden:

import cs1.Keyboard;
import java.math.*;
public class Hitpoints
{
private static int terning;
private static int antal;
private static int resultat=0;
//static int hitpoint[] = new int[5];
static int hitpoint[];

public static void main (String[] args)
{
boolean run=true;
char valg='j';

while(run)
{
System.out.println("Hvor mange sider skal terningen have?");
terning=Keyboard.readInt();
System.out.println("Hvor mange terninger?");
antal=Keyboard.readInt();
hitpoint = new int[antal];

for(int i=0; i<hitpoint.length;i++)
{
slaa(i);
}

udskriv();
System.out.println("Antal hitpoints: "+resultat);
System.out.println("Vil du slå igen? j/n");
valg=Keyboard.readChar();
if (valg=='n')
run=false;
System.out.println("Program afsluttet");
}
}

public static void slaa( int a )
{
hitpoint[a]=(int)(Math.random()*terning+1);
}

public static void udskriv()
{
for (int indeks = 0; indeks <= hitpoint.length-1; indeks++)
{
System.out.println("Terningeslag:"+ hitpoint[indeks]);
}
}

public static void resultat()
{
for(int i=0; i<hitpoint.length;i++)
{
resultat = resultat + hitpoint[i];
}
}
}





Casper Lund Thomsen (04-10-2002)
Kommentar
Fra : Casper Lund Thomsen


Dato : 04-10-02 13:01

Tina wrote:
> Du får lige hele koden:
>
> import cs1.Keyboard;
> import java.math.*;
> public class Hitpoints
> {
> private static int terning;
> private static int antal;
> private static int resultat=0;
> //static int hitpoint[] = new int[5];
> static int hitpoint[];
>
> public static void main (String[] args)
> {
> boolean run=true;
> char valg='j';
>
> while(run)
> {
> System.out.println("Hvor mange sider skal terningen have?");
> terning=Keyboard.readInt();
> System.out.println("Hvor mange terninger?");
> antal=Keyboard.readInt();
> hitpoint = new int[antal];
>
> for(int i=0; i<hitpoint.length;i++)
> {
> slaa(i);
> }
>
> udskriv();
> System.out.println("Antal hitpoints: "+resultat);
> System.out.println("Vil du slå igen? j/n");
> valg=Keyboard.readChar();
> if (valg=='n')
> run=false;
> System.out.println("Program afsluttet");
> }
> }
>
> public static void slaa( int a )
> {
> hitpoint[a]=(int)(Math.random()*terning+1);
> }
>
> public static void udskriv()
> {
> for (int indeks = 0; indeks <= hitpoint.length-1; indeks++)
> {
> System.out.println("Terningeslag:"+ hitpoint[indeks]);
> }
> }
>
> public static void resultat()
> {
> for(int i=0; i<hitpoint.length;i++)
> {
> resultat = resultat + hitpoint[i];
> }
> }
> }

Du skal kalde resultat() lige inden du kalder udskriv()

Mvh
Casper


Tina (04-10-2002)
Kommentar
Fra : Tina


Dato : 04-10-02 13:08

*slår mig lige for panden* Det burde jeg jo havde set
Tak for hjælpen, det virker som det skal nu

"Casper Lund Thomsen" <casper@[REMOVETHIS]daimi.au.dk> skrev i en meddelelse
news:dqfn9.68109$Qk5.3009428@news010.worldonline.dk...
> Tina wrote:
> > Du får lige hele koden:
> >
> > import cs1.Keyboard;
> > import java.math.*;
> > public class Hitpoints
> > {
> > private static int terning;
> > private static int antal;
> > private static int resultat=0;
> > //static int hitpoint[] = new int[5];
> > static int hitpoint[];
> >
> > public static void main (String[] args)
> > {
> > boolean run=true;
> > char valg='j';
> >
> > while(run)
> > {
> > System.out.println("Hvor mange sider skal terningen have?");
> > terning=Keyboard.readInt();
> > System.out.println("Hvor mange terninger?");
> > antal=Keyboard.readInt();
> > hitpoint = new int[antal];
> >
> > for(int i=0; i<hitpoint.length;i++)
> > {
> > slaa(i);
> > }
> >
> > udskriv();
> > System.out.println("Antal hitpoints: "+resultat);
> > System.out.println("Vil du slå igen? j/n");
> > valg=Keyboard.readChar();
> > if (valg=='n')
> > run=false;
> > System.out.println("Program afsluttet");
> > }
> > }
> >
> > public static void slaa( int a )
> > {
> > hitpoint[a]=(int)(Math.random()*terning+1);
> > }
> >
> > public static void udskriv()
> > {
> > for (int indeks = 0; indeks <= hitpoint.length-1; indeks++)
> > {
> > System.out.println("Terningeslag:"+ hitpoint[indeks]);
> > }
> > }
> >
> > public static void resultat()
> > {
> > for(int i=0; i<hitpoint.length;i++)
> > {
> > resultat = resultat + hitpoint[i];
> > }
> > }
> > }
>
> Du skal kalde resultat() lige inden du kalder udskriv()
>
> Mvh
> Casper
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste