Frage von Bican, 10

Ich benötige Hilfe für eine Programmieraufgabe (C#)?

Ich komme nicht weiter als zur if-Bedingung

Hier die Aufgabe: Für einzugebende Zahlen sollen der arithmetische Mittelwert, Varianz und Standardabweichung, sowie die Abweichung der einzelnen Zahlen vom Mittelwert berechnet und angezeigt werden. Erstellen Sie ein C#-Programm, das den Benutzer zuerst nach der Anzahl der Zahlen fragt und dann die Zahlen einliest. Stellen Sie sicher, dass mindestens 2 Zahlen eingelesen werden.

Ihr Programm berechnet dann den arithmetischen Mittelwert, sowie Varianz und Standardabweichung und gibt diese aus.

Korrigierte Stichprobenvarianz =   2 11 1     n i i xx n

Standardabweichung= √𝑉𝑎𝑟𝑖𝑎𝑛𝑧

Zusätzlich wird für jeden Zahlenwert die Abweichung vom Mittelwert ausgegeben.

Beispiele, die auch zum Test verwendet werden können:

Berechnung von Mittelwert, Varianz und Standardabweichung

Wie viele Zahlen: 5

  1. Zahl: 1,1

  2. Zahl: 2,1

  3. Zahl: 3

  4. Zahl: 4,5

  5. Zahl: 5

Mittelwert: 3,14

Abweichungen vom Mittelwert:

1: -2,04

2: -1,04

3: -0,14

4: 1,36

5: 1,86

Varianz: 2,64 Standardabweichung: 1,63

Berechnung von Mittelwert, Varianz und Standardabweichung

Wie viele Zahlen: 1

Leider zu wenig Zahlen.

Antwort
von Unsinkable2, 6

Ich komme nicht weiter als zur if-Bedingung

... weil? Weil dir dann die Lust ausgegangen ist und du lieber die Gutmütigkeit anderer Leute ausnutzen willst, damit die deine Hausaufgaben machen?

Du hast alle Formeln selbst. Jetzt musst du sie nur noch ausrechnen und das Ergebnis ausgeben. Mehr "Probleme" gibt es daran nicht...

Bei Fragen zu spezifischen Umsetzungen einzelner Programmbestandteile hilft dir:

Antwort
von xGlumi, 2
private static string Input(string output = "", bool inline = false)
{
if (output != "")
{
if (inline)
{
Console.Write(output);
}else
{
Console.WriteLine(output);
}
}
return Console.ReadLine();
}

static void Main(string[] args)
{
int n = int.Parse(Input("Wieviele Zahlen wollen sie benutzen?"));

if (n < 2)
{
Input("Leider zu wenig Zahlen.");
return;
}

Double[] inputZahlen = new Double[n];

for (int i = 0; i < n; i++)
{
inputZahlen[i] = Double.Parse(Input("Zahl " + (i + 1) + ": ", true));
}

Double mittelWert = GetAritMittelwert(inputZahlen);
Double varianz = GetVarianz(mittelWert, inputZahlen);

Console.WriteLine("\nMittelwert: " + mittelWert);
Console.WriteLine("\nAbweichungen vom Mittelwert:");
for (int i = 0; i < n; i++)
{
Console.WriteLine((i + 1) + ": " + GetAbweichung(inputZahlen[i], mittelWert));
}
Console.WriteLine("\nVarianz: " + varianz + " Standardabweichung: " + Math.Sqrt(varianz));
Console.ReadLine();
}
private static Double GetAritMittelwert(Double[] zahlen)
{
Double sum = 0.00;
foreach (Double val in zahlen)
{
sum += val;
}
sum = (sum / zahlen.Count());
return sum;
}
private static Double GetAbweichung(double d1, double d2)
{
return d1 - d2;
}
private static Double GetVarianz(Double mittelWert, Double[] zahlen)
{
Double sum = 0.00;
foreach (Double val in zahlen)
{
sum += Math.Pow(GetAbweichung(mittelWert, val), 2);
}
sum = (sum / (zahlen.Count()-1));
return sum;
}
}

Bitteschön :)

Auf Exceptions und Rundungen bin ich nicht eingegangen, das traue ich dir auch zu ;)

MFG xGlumi

Kommentar von xGlumi ,

Kein danke, keine hilfreichste Antwort? :(

MFG xGlumi

Antwort
von triopasi, 9

Deine Frage?

Kommentar von Bican ,

wie löse ich Mittelwert, Varianz und Standardabweichung?

ich würde es mit ein for-schleife machen aber hab kp was drinnen stehen muss

Kommentar von triopasi ,

Fangen wir beim Mittelwert an? Du weißt die man den berechnet? Dann die Summe als for-Schleife und der Rest ergibt sich von selbst..

Varianz: Naja, die Summe steht ja da, das musst du einfach als for-Schleife schreiben, wo is da das Problem?

Keine passende Antwort gefunden?

Fragen Sie die Community