Jump to content
Unity Insider Forum

Taschenrechner GUI


Recommended Posts

Hallo, 

ich versuche gerade einen Taschenrechner zu programmieren. Dieser soll durch einen Klick auf ein Button mir 11 Zufallsvariablen herausgeben. Durch weitere Buttons will ich mir den Mittelwert, Median und noch einige Statistische Merkmale ausgeben lassen. Ich habe schon ein Code für die Zufallsvariablen geschrieben und wenn ich auf den Button drücke kommen auch meine 11 verschiedene Zufallsvariablen raus. Jetzt möchte ich dass mein Taschenrechner diese variablen nimmt und aus denen mir den Mittelwert berechnet. Einen Code für einen Mittelwert habe ich, jedoch möchte ich dass er ja meine Zufallsvariablen nimmt die ich davor mir ausgeben lies.  Mein Code für den Median ist eigentlich soweit richtig, da mir keine Fehler anzeigt werden.

Beim ausgeben kommt nur Mittelwert: 0.0 raus. 

Zufallsvariablen.

public void actionPerformed(ActionEvent arg0) {
                
                int wert = 0;
                int [] a = new int [11];
                for (int i = 0; i<11; i++){
                a=wert;
                wert=(int)(Math.random()*100)+1;

                txt_Werte.setText(txt_Werte.getText()  + " " + wert);
                

Mittelwert: 

public void actionPerformed(ActionEvent arg0) {
                
                int [] wert =new int[11];
                
                double summe =0 ; 
                for (int i = 0; i < wert.length; i++);{
                summe += wert;
                }
                summe /= wert.length;
                txt_Ergebnisse.setText("Mittelwert: " +  summe  );
                

 Hier meine Frage. Was kann ich machen bzw. wie bekomme ich es hin, dass der Mittelwert aus den Zufallswerten berechnet wird?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du solltest deinen Code weiter in Methoden unterteilen, die "actionPerformed"-Methoden sollten nur diese Untermethoden aufrufen.

Ich weiß auch überhaupt nicht warum du "actionPerformed" verwendest:
https://docs.unity3d.com/ScriptReference/UI.Button-onClick.html

Zudem ist deine Zuweisung zum Array völlig verkehrt und auch die random-Methode ist in Unity völlig woanders angesiedelt:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Testcalc : MonoBehaviour {

	void Start () {
        // Zufallswerte erzeugen
        int[] rndValues = createRndValues(11);

        // Zufallswerte ausgeben
        foreach (int rndValue in rndValues) print(rndValue);

        // Zufallswerte übergeben und Mittelwert ausgeben
        print(calcMeanValueOfArray(rndValues));

    }

    // Berechnet Mittelwert aus allen Zahlen des übergebenen Arrays
    public float calcMeanValueOfArray(int[] intArray)
    {
        float meanValue = 0;
        float sumValues = 0;
        foreach (int rndValue in intArray)
        {
            sumValues += rndValue;
        }
        meanValue = sumValues / intArray.Length;

        return meanValue;
    }

    // Erzeugt ein Array mit Integer Zufallszahlen (Anzahl = number)
    public int[] createRndValues(int number)
    {
        int wert = 0;
        int[] a = new int[number];
        for (int i = 0; i < number; i++)
        {
            wert = (int)Random.Range(0,100); // Zufallswerte zwischen 0 und 100
            a[i] = wert;
        }
        return a;
    }

}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...