Avatar billede marika Nybegynder
16. oktober 2003 - 11:19 Der er 17 kommentarer

hjælp hvad er galt her??

public class DataSet
{
    private int value;
   
    public DataSet()
    {
    value = 0;
    }
   
    public void addValue(int x)
    {
    value = value + x;   
    }
   
    public double getValue()
    {
    return value;
    }
   
    public double getAvg()
    {
    return value / 5;   
    }   
}
Avatar billede chries Nybegynder
16. oktober 2003 - 11:27 #1
et gæt, type convertering ?

public double getValue()
    {
    return (double)value;
    }
   
    public double getAvg()
    {
    return (double)value / 5;   
    }
Avatar billede draeber Nybegynder
16. oktober 2003 - 11:28 #2
hvilken fejl giver den?
Avatar billede arne_v Ekspert
16. oktober 2003 - 11:33 #3
Der er ikk enoget galt med den kode.

Den compiler fint hos mig.
Avatar billede jpvj Nybegynder
16. oktober 2003 - 11:35 #4
Måske skulle spørger oplyse om, hvad han oplever for problemer? Det gør fejlsøgningen noget lettere :-)
Avatar billede marika Nybegynder
16. oktober 2003 - 11:46 #5
Det er en opgave jeg har afleveret og har fået at vide, er der er nogle småfejl. jeg kan heller ikke selv se hvad det skulle være, derfor spørger jeg
Avatar billede soreno Praktikant
16. oktober 2003 - 11:57 #6
Så er det vel denne:

public double getAvg()
{
  return value / 5; 
}

Hvorfor dividerer du med 5 ?
Vil det give gennemsnittet ?

Hvad står der du skal gøre i opgaven ?
Avatar billede marika Nybegynder
16. oktober 2003 - 12:02 #7
Jeg skulle lave en funktion der indsamler 4 værdier og returnere gennemsnittet.
Avatar billede arne_v Ekspert
16. oktober 2003 - 12:02 #8
Tja - den returnerer kun korrekt svar hvis addValue er kaldt præcis 5
gange, hvilket absolut ikke er godt design.

Du laver også en integer division og returnerer en double,
hvilket også er mistænkeligt.

Men vi kan ikke sige noget mere konkret uden at vide hvad koden skal
kunne,
Avatar billede marika Nybegynder
16. oktober 2003 - 12:04 #9
Disse er mine metoder i DataSet: void addValue(int x), int getSum(), double getAverage()
Avatar billede marika Nybegynder
16. oktober 2003 - 12:05 #10
Er der et andet eksempel på hvordan man laver det så?? SÅ jeg har noget at  sammenligne med??
Avatar billede arne_v Ekspert
16. oktober 2003 - 12:05 #11
Måske noget a la:

public class DataSet {
    private int n;
    private int sum;

    public DataSet() {
        n = 0;
        sum = 0;
    }

    public void addValue(int x) {
        sum += x;
        n++;
    }

    public int getSum() {
        return sum;
    }

    public double getAvg() {
        return sum / (double) n;
    }
    public static void main(String[] args) {
        DataSet ds = new DataSet();
        ds.addValue(10);
        ds.addValue(5);
        System.out.println(ds.getAvg());
    }
}
Avatar billede marika Nybegynder
16. oktober 2003 - 12:12 #12
Så det var altså det int og double der var galt??
Avatar billede soreno Praktikant
16. oktober 2003 - 12:15 #13
Essensen af opgaven er at lave en model af et konkret regnestykke.
Altså, hvad skal der til for at kunne beregne gennemsnittet af et antal tal.

Det kræver man ved hvor mange tal der er, samt summen af disse tal.

Din løsning finder summen, men holder ikke styr på hvor mange tal der er registreret.
Derfor bliver dit gennemsnit forkert.
Avatar billede arne_v Ekspert
16. oktober 2003 - 12:22 #14
Det afhænger som sgat af opgaven.

Jeg har gættet på at tal er int og gennemsnit er double.

Ligesom for karakterer.

Men det er et rent gæt.
Avatar billede jpvj Nybegynder
18. oktober 2003 - 13:35 #15
Hej Arne,

Jeg er 100% enig i din løsning. Udfra de givne oplysninger er det en løsning, der nok ikke kan laves pænere.

JP
Avatar billede arne_v Ekspert
25. oktober 2003 - 13:56 #16
Tid at lukke ?
Avatar billede arne_v Ekspert
25. oktober 2003 - 13:56 #17
Svar i tilfælde at at mine ideer kunne bruges til noget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester