import java.applet.Applet;  // java applet sinifini cagir
import java.awt.*;          // java pencere kullanma sinifini cagir
import java.awt.event.*;    //  java pencereyi dinleme sinifini cagir
public class gercekSayiOrtalamaApplet extends Applet implements ActionListener
{
    //sinif degiskenleri
    Label kutubasligi; //Label sinifi degiskeni (nesnesi) kutubasligi
    TextField kutugirdisi;// Textfield sinifi degiskeni (nesnesi) kutugirdisi
    double sayi;          // Gerçel degisken sayi
    double toplam;        // Gerçel degisken toplam
    double carpim;        // Gerçel degisken carpim
    double aritmetikOrtalama; // Gerçel degisken aritmetik ortalama
    double geometrikOrtalama; // Gerçel degisken geometrik ortalama
    int sayici;  // tam sayi degisken toplam rakam sayisini sayici
    // pencereyi baslatma metodu
    // pencere ilk basladiginda
    // degiskenler buradaki degerleri alirlar
    public void init()
    {
    kutubasligi=new Label("Bir sayı giriniz : ");
    add(kutubasligi);
    kutugirdisi=new TextField(10);
    add(kutugirdisi);
    toplam=0;
    carpim=1.0;
    aritmetikOrtalama=0;
    geometrikOrtalama=0;
    sayici=0;
    kutugirdisi.addActionListener(this);
    }

    // girdi alanindaki olan olaylari dinleme metodu
    // Her yeni rakam girildiginde bu metod çagirilir
    public void actionPerformed(ActionEvent e)
    {
    sayici++;
    Double sayi1=new Double(e.getActionCommand() );
    sayi=sayi1.doubleValue();
    toplam+=sayi;  // veya toplam=toplam+sayi;
    aritmetikOrtalama=toplam/sayici;
    carpim*=sayi;  // veya carpim=carpim*sayi;
    geometrikOrtalama=Math.pow(carpim,(1.0/sayici));//carpimin koku
    kutugirdisi.setText("");//kutudaki rakami sil
    repaint();//pencereyi yeniden paint metoduna göre ciz
    }

    public void paint(Graphics g)
    {
    //   drawString Metodundaki eksen sistemi
    //   -----------------------> x ekseni
    //   |
    //   |
    //   |
    //   V  y ekseni
         g.drawString("Şu ana kadarki sayıların toplamı : "+toplam,25,50);
         g.drawString("Şu ana kadarki sayıların aritmetik ortalaması : "+aritmetikOrtalama,25,65);
         g.drawString("Şu ana kadarki sayıların geometrik ortalaması : "+geometrikOrtalama,25,80);
    }
}
