bereken gemiddelde

Status
Niet open voor verdere reacties.

Tjennne

Gebruiker
Lid geworden
22 apr 2008
Berichten
33
Hoe laat ik een applet bijhouden hoeveel getallen er zijn ingevoerd??

De opdracht is:
Voer in een tekstvak een aantal getallen in, zoals cijfers van een examen. Laat de applet de ingevoerde getallen optellen en bijhouden hoeveel getallen je hebt ingevoerd. Geeft de applet een knop waarmee je het gemiddelde van de ingevoerde getallen op het scherm zet.

Hoe laat ik de applet het aantal ingevoerde getallen bijhouden om het gemiddelde te berekenen?

Dit heb ik:
Code:
public class opgave2_2 extends Applet
{
  TextField invoervak; Button knop; double gemiddelde,getal,som,totaalgetal;

 public void init()
  {
    invoervak = new TextField(10);
    invoervak.addActionListener(new invoervakHandler());

    knop = new Button("Gemiddelde");
    knop.addActionListener(new knopHandler());

    add(invoervak);add(knop);
  }

 public void paint( Graphics g)
  {
    g.drawString("het gemiddelde is "  + gemiddelde,60,60);
   }

class knopHandler implements ActionListener
  {
 public void actionPerformed(ActionEvent e)
    {
      String invoerstring=invoervak.getText();
      getal = Double.parseDouble(invoerstring);
      totaalgetal = 
      gemiddelde = som/totaalgetal;
      repaint();

    }
  }
class invoervakHandler implements ActionListener
  {
 public void actionPerformed(ActionEvent e)
    {
      String invoerstring=invoervak.getText();
      getal = Double.parseDouble(invoerstring);
      som = som + getal;
      invoervak.setText("");
    }
  }
}
 
Laatst bewerkt door een moderator:
Een counter maken welke je elke keer, dat er iets ingevoerd wordt, ophoogt
 
Kom er nog niet uit (het gemiddelde wordt niet berekend), ik heb nu het volgende:
package opgave2_2;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class opgave2_2 extends Applet
{
TextField invoervak; Button knop; double gemiddelde,getal,som,aantal;

public void init()
{
invoervak = new TextField(10);
invoervak.addActionListener(new invoervakHandler());

knop = new Button("Gemiddelde");
knop.addActionListener(new knopHandler());

add(invoervak);add(knop);
}

public void paint( Graphics g)
{
g.drawString("het gemiddelde is " + gemiddelde,60,60);
}

class knopHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
aantal = Double.parseDouble(invoerstring);
aantal++;
gemiddelde = som/aantal;
repaint();
}
}
class invoervakHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal = Double.parseDouble(invoerstring);
som = som + getal;
invoervak.setText("");
}
}
}
 
Heb je al eens met array's gewerkt?
Want die zijn hier heel geschikt voor.
 
Nee, dat wordt behandeld in een hoofdstuk dat ik niet hoef te doen....
 
Zelfstudie is ook heel belangrijk als je goed wil leren programmeren ;)

Je zou bijvoorbeeld gebruik kunnen maken van een ArrayList:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html

Elke keer dat je een getal toevoegd, roep je de .add functie van de arraylist aan en voeg je dat getal toe aan de lijst.
Vervolgens kan je van de arraylist de .size() aanroepen om de lengte er van te krijgen.


De andere mogelijkheid zonder lijst is:
Elke keer dat er een getal ingevoegd wordt, deze optellen bij een variabele 'totaal' en daarnaast 1 variabele 'teller' steeds met 1 ophogen.
Vervolgens doe je totaal / teller = gemiddelde
 
Probeer het toch zonder die lijst, omdat dat van me verwacht wordt.

Ik heb nu het volgende ervan gemaakt, maar het werkt nog steeds niet goed..


import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class opgave2_2 extends Applet
{
TextField invoervak; Button knop; double gemiddelde,getal,teller,totaal;

public void init()
{
invoervak = new TextField(10);
invoervak.addActionListener(new invoervakHandler());

knop = new Button("Gemiddelde");
knop.addActionListener(new knopHandler());

add(invoervak);add(knop);
}

public void paint( Graphics g)
{
g.drawString("het gemiddelde is " + gemiddelde,60,60);
}

class knopHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal = Double.parseDouble(invoerstring);
totaal += getal;
teller += 1;
gemiddelde = totaal/teller;
repaint();
}
}
class invoervakHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal = Double.parseDouble(invoerstring);
invoervak.setText("");
}
}
}
 
Nou, ik heb het nu voor elkaar, dankzij de hulp!!:

package opgave2_2;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class opgave2_2 extends Applet
{
TextField invoervak; Button knop; double gemiddelde,getal,teller,totaal;

public void init()
{
invoervak = new TextField(10);
invoervak.addActionListener(new invoervakHandler());

knop = new Button("Gemiddelde");
knop.addActionListener(new knopHandler());

add(invoervak);add(knop);
}

public void paint( Graphics g)
{
g.drawString("het gemiddelde is " + gemiddelde,60,60);
}

class knopHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
gemiddelde = totaal/teller;
repaint();
}
}
class invoervakHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String invoerstring=invoervak.getText();
getal = Double.parseDouble(invoerstring);
totaal += getal;
teller += 1;
invoervak.setText("");
}
}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan