Java probleem [gemiddelde van Array]

Pagina: 1
Acties:
  • 2.620 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 03:02
Hoi even een klein vraagje, weet iemand hoe je in java het gemiddelde van een array kan berekenen ? dit is mijn klasse

import java.awt.*;

public class IntArray
{
private int[] Array = {2,3,65,7,65,3,6746,5436,5,3};
private int aantal;
private int som;
//private double gemiddelde;

public IntArray()
{
aantal = 0;
som = 0;


}

Hier gaat het fout, wat moet er anders bij het berekenen van een gemiddelde ????
public int gemiddelde()
{
for( int i = 0; i <= Array.length; i++ )
{
Array[i] += som;
}
return som/10;

}

public void toonArray(Graphics g, int x, int y)
{
for (int i=0; i<Array.length; i++)
{
g.drawString(""+ Array[i], x, y += 10);

}
g.drawString("Het gemiddelde van de getallen in deze array = " + "" + som , 100, y+50);


}
}



Groeten Drpeer_holland

Acties:
  • 0 Henk 'm!

Verwijderd

Is het niet
som += Array[i];
ipv
Array[i] += som;

Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
inderdaad .. bij dat += ff omdraaien ;)

Acties:
  • 0 Henk 'm!

  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 03:02
Helaas na deze verandering blijft mijn gemiddelde nog steeds op 0 staan ??? vreemd, ik zou het niet weten misschien dat er nog iets mis is in mijn code

Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
Op zondag 02 december 2001 13:04 schreef drpeer_holland het volgende:
Helaas na deze verandering blijft mijn gemiddelde nog steeds op 0 staan ??? vreemd, ik zou het niet weten misschien dat er nog iets mis is in mijn code
g.drawString("Het gemiddelde van de getallen in deze array = " + "" + som , 100, y+50);

moet zijn + gemiddelde() ipv + som ...

Acties:
  • 0 Henk 'm!

  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 03:02
Nu krijg ik een exception in mijn dos box ?

Een ArrayIndexOutOfBounds exception dus het array is treed buiten zijn eigen waarden ??

Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 27-09 13:00
Is er geen functie voor het gemiddelde van een array ?? ER is er toch ook eentje om te sorteren :?

Acties:
  • 0 Henk 'm!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 07-10-2022
Je werkte t/m de index = array.length. Dat gaat verkeerde want dat element is er niet. De indexen lopen van 0 tot array.length - 1.

Misschien heb je nog het meeste aan een stukje voorbeelde code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
public class IntArray
{
    private int[]    array;
    private int  aantal;
    private int  som;
    private double  gemiddelde;

    public IntArray()
    {
        super();
        array       = new int[]{2,3,65,7,65,3,6746,5436,5,3};
        aantal       = array.length;
        som         = calcSom();
        gemiddelde  = calcGemiddelde();
    }

    private int  calcSom()
    {
        int result = 0;

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

        return result;
    }

    private double calcGemiddelde()
    {
        double result = ((double) som )/ ((double) array.length );
        return result;
    }

    public int getSom()
    {
        return som;
    }

    public double getGemiddelde()
    {
        return gemiddelde;
    }

    public String toString()
    {
        StringBuffer result = new StringBuffer(30);

        result.append("Waarden: ");

        for( int i = 0; i < array.length; i++ )
        {
            result.append(array[i]);

            if(i < array.length - 1)
            {
                result.append(", ");
            }
        }

        result.append('\n');

        result.append("Som: ");
        result.append(getSom());

        result.append('\n');

        result.append("Gemiddelde: ");
        result.append(getGemiddelde());

        return result.toString();
    }

    public static void main(String[] ps)
    {
        System.out.println(new IntArray().toString());
    }
}

Dit werkt geloof ik goed (niet nagerekend). Als je iets niet snapt moet je maar even brullen :)

edit: oeps, klein print layout foutje ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Acties:
  • 0 Henk 'm!

  • drpeer_holland
  • Registratie: September 2001
  • Laatst online: 03:02
Erg bedankt hij doet het nu !!!!

Acties:
  • 0 Henk 'm!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 07-10-2022
drpeer_holland: Erg bedankt hij doet het nu !!!!
En je snapt uiteraard ook waarom hij het eerst niet deed? :)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Acties:
  • 0 Henk 'm!

Verwijderd

De index bij een array begint bij 0 (NUL), dus je eerst element heeft index 0. Vandaar dat je tot lengte - 1 moet gaan, of je zit er 1 element buiten :)

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Hoef je geen rekening te houden met Integer.MAX_VALUE ?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
Op maandag 03 december 2001 10:49 schreef farlane het volgende:
Hoef je geen rekening te houden met Integer.MAX_VALUE ?
Over het algemeen niet, kost alleen maar meer overhead.. als je echter denkt dat deze waarde bereikt kan worden kan je er voor kiezen dit wel te doen imho. Of natuurlijk longs gebruiken..

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Op maandag 03 december 2001 10:50 schreef Dash2in1 het volgende:
Of natuurlijk longs gebruiken..
Iig voor de som...

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
Op maandag 03 december 2001 11:00 schreef farlane het volgende:

[..]

Iig voor de som...
Weet niet zeker uit me hoofd, maar dacht dat een int in Java 4 bytes was .. dus 2^32 / 2 (-1 ?) dus als je denkt dat de som mogelijkerwijs daarboven komt, zou ik eerder long gebruiken dan een check op de Integer.MAX_VALUE.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Op maandag 03 december 2001 11:19 schreef Dash2in1 het volgende:
...
zou ik eerder long gebruiken dan een check op de Integer.MAX_VALUE.
Dat is idd wat ik ook bedoel met mijn (te?) korte opmerking. :)

[edit]
MAX_VALUE
public static final int MAX_VALUEA constant holding the maximum value an int can have, 2^31-1.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
Op maandag 03 december 2001 11:27 schreef farlane het volgende:

[..]

Dat is idd wat ik ook bedoel met mijn (te?) korte opmerking. :)

[edit]
[..]
Ow, ok :)
MAX_VALUE
public static final int MAX_VALUEA constant holding the maximum value an int can have, 2^31-1.
Da's wat ik zei :)

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Op maandag 03 december 2001 19:50 schreef Dash2in1 het volgende:
Da's wat ik zei :)
Neej, je had er een /2 in staan. Dat is niet correct. ;)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
Op maandag 03 december 2001 20:39 schreef farlane het volgende:

[..]

Neej, je had er een /2 in staan. Dat is niet correct. ;)
Haha, jawel hoor :) 2^32 / 2 = 2^31

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Hmzz, je hebt gelijk....lekker bijdehand van me....

Je hebt vast ook een goede reden om het zo neer te zetten?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 18-09 07:46
Op maandag 03 december 2001 23:21 schreef farlane het volgende:
Hmzz, je hebt gelijk....lekker bijdehand van me....

Je hebt vast ook een goede reden om het zo neer te zetten?
Had zoiets van .. 4 * 8 = 32 ... zowel voor positief als negatief, dus delen door 2 evt daarna -1 voor de 0..

  • dr appel belgie
  • Registratie: September 2022
  • Laatst online: 22-09-2022
Dag dr peer holland het antwoord op de vraag 4*8 is 34 :) :)
hopelijk ben ik niet te laat. Nog veel programeer plezier :) :) :) :) .

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zo'n 21 jaar waarschijnlijk ;)

Die waarschuwing ...
Afbeeldingslocatie: https://tweakers.net/g/forum/images/icons/alert.gif Let op! De laatste reactie in deze discussie is meer dan 2 weken oud! Afbeeldingslocatie: https://tweakers.net/g/forum/images/icons/alert.gif
...staat er dan ook niet voor niets ;)

[ Voor 44% gewijzigd door RobIII op 22-09-2022 16:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.