Entwickler-Ecke

Basistechnologien - Summe eines Arrays?


Levis - Sa 02.05.09 15:20
Titel: Summe eines Arrays?
Hallo liebes Forum,

nach gründlichem Suchen muss ich nun meine Frage eben doch stellen, da mir all die Fragen (und Antworten) zum Thema Arrays und Summen nichts gebracht haben.

Ich habe ein Programm erstellt, dass mir 31 Zufallszahlen zwischen -20 und + 29,9 erzeugt (Temperaturen eines Monats). Nun will ich diese 31 Zahlen, die ich in einem Array gespeichert habe, addieren und danach den Durchschnittswert berechnen und ausgeben.

Allerdings bin ich nun an der Summe des Arrays hängen geblieben. Wie kriege ich das hin? Mit der Math - Funktion? Oder einfach nur eine neue Variable deklarieren?

Bin dankbar über jede Antwort von euch! =)

Liebe Grüße,
Levis

PS: Wenn mir jemand noch sagen könnte, wie ich nen CSharp Quelltext in meinen Beitrag einfüge dann kann ich euch den auch noch geben, falls das hilfreich ist.


sk197666 - Sa 02.05.09 15:37

Hallo Levis,

ist es sowas was Du suchst?

Gruß Sk


C#-Quelltext
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:
using System;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Demo-Array erzeugen
            double[] values = new double[31];

            // Randomizer erzeugen
            Random randomizer = new Random();

            // Demo-Array befüllen
            for (int i = 0; i < values.Length; i++)
                values[i] = (double)randomizer.Next(-2030) + (double)randomizer.Next(110) / 10;

            // Variable um Ergebnis zu speichern
            double result = 0;

            // Array summieren
            foreach (double value in values)
                result += value;

            // Durchschnitt errechnen
            double average = result / (double)values.Length;

            // Ergebnis ausgeben
            Console.WriteLine("Summe: " + result);
            Console.WriteLine("Schnitt: " + average);

            Console.ReadKey();
        }
    }
}


Moderiert von user profile iconKha: Code- durch C#-Tags ersetzt


Levis - Sa 02.05.09 16:06

Hallo Sk,

danke für deine schnelle Antwort. Ja, dein Programm macht genau das, was ich suche.

Allerdings hab ich das mit diesem foreach noch nicht so ganz verstanden. Wie funktioniert das denn genau? Ich brauche dafür ja anscheinend zwei Variablen, oder? Einmal mein array und dann noch eine zusätzliche wenn ich das in deinem Quellcode richtig sehe.


JüTho - Sa 02.05.09 16:12

Siehe z.B. OpenBook: 2.7 Programmschleifen [http://openbook.galileocomputing.de/visual_csharp/visual_csharp_02_007.htm#mj5a97ecb39af5c94755c8658443f88e06] mit for, foreach, do, while

Jürgen


Beni92 - Sa 02.05.09 18:58

oder versuche es so(ohne for each schleife):

C#-Quelltext
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:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            float a = 0;
            float[] hah = new float[31];
            Random würfel = new Random();
            for (int i = 0; i < hah.Length; i++)
            {
                float lala = würfel.Next(-2030) + würfel.Next(110)/10;
                hah[i] = lala;
            }
            

            for (int i = 0; i < hah.Length; i++)
            {
                a += hah[i];
            }
            Console.WriteLine("Die Summe ist: " + a);
            Console.ReadLine();
        
        }
    }
}


lg
beni