Autor Beitrag
PatX
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 14.02.09 17:20 
Hallo liebe Forengemeinde,

bin neu hier in diesem Forum und bin noch in der Anfangsphase des Programmierens.

Ok, also folgendes Problem: Ich gebe in der Konsole bspw. 3 Zahlen ein die in einem Array landen, lasse die Zahlen dann addieren und ausgeben. Das habe ich auch so weit. Nur möchte ich jetzt anhand einer Methode die kleinste Zahl der eingegebenen Zahlen ausgeben lassen. Ich überleg schon ne ganze Weile, mir fehlt irgendwie der Ansatz. Hier der bisherige Code:


ausblenden volle Höhe 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:
37:
38:
39:
40:
41:
42:
43:
44:
45:
 static void Main(string[] args)
        {
            int index;
            double summe, min;
            
            int anzahl = Allgemein.IntEingeben("Wieviel Zahlen wollen Sie? ");
            anzahl = anzahl + 1;

            double[] zahlen = new double[anzahl];

            
            index = 1;
            summe = 0;
           

            while (index < anzahl)
            {
                zahlen[index] = Allgemein.DoubleEingeben("Bitte " + index + ". Zahl eingeben: ");
                
                summe = summe + zahlen[index];

                index = index + 1;           

            }
            
            Console.WriteLine("Gesamtsumme: " + summe);

            min = GetMin(zahlen);
            Console.WriteLine("Minalmwert: " + min);

            

            Console.ReadLine();

        }

        
        private static double GetMin (double[]werte)
        {
            double min;
            
               
            return min;

        }


Ich denke mal dass ich nur durch eine Schleife die min-wert bekomme. Aber wie setze ich das um?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 14.02.09 17:35 
Hallo und :welcome: !

Weißt du denn was eine for-Schleife / foreach-Schleife ist?
Wenn ja, weißt du wie du damit alle Arrayeinträge durchgehen kannst?

Bei jedem Eintrag musst du dann schauen, ob dieser kleiner als das bisherige Minimum ist (das kann anfangs einfach der erste Eintrag sein). Wenn der aktuelle Eintrag kleiner ist, wird er das neue Minimum.
Am Ende gibst du diesen Wert dann zurück.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 14.02.09 19:22 
Hallo und ebenfalls :welcome:

Ergänzende Hinweise: Eine List<T>, konkret List<double> ist praktischer, weil dann die Anzahl der Einträge variabel sein kann. In C# gibt es kürzere Schreibweisen:
ausblenden C#-Quelltext
1:
2:
3:
4:
//  summe = summe + zahlen[index];
summe += zahlen[index];
//  index = index + 1;           
index++;

Falls Du bisher Convert.ToDouble verwendest, möchte ich Dich auf double.TryParse hinweisen: Das sichert falsche Eingaben ab.

Erläuterungen findest Du natürlich in der SDK-Doku/MSDN.

Gruß Jürgen
PatX Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 14.02.09 20:40 
@jaenicke

Danke für die prompte Antwort.
Die for-Schleife ist mir etwas bekannt, habe Sie allerdings noch nicht angewandt. Hat eigentlich die selbe Funktion wie eine While-Schleife oder?
Die Frage ist eigentlich nur wie ich auf die Arrayeinträge zugreife. Denn es ist ja keine fest vergebene Anzahl von Arrays
sondern beliebig viele, also je nach dem wie hoch der Index ist...?

@JüTho
Danke für den Hinweis
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 14.02.09 21:13 
user profile iconPatX hat folgendes geschrieben Zum zitierten Posting springen:
Die Frage ist eigentlich nur wie ich auf die Arrayeinträge zugreife. Denn es ist ja keine fest vergebene Anzahl von Arrays
sondern beliebig viele, also je nach dem wie hoch der Index ist...?
Arrays gibt es insgesamt nur eines, oder :zwinker: ? Aber deine Frage ist etwas merkwürdig, da du sie in Main eigentlich schon selbst beantwortest hast: Dort hast du eine "index"-Variable über die while-Schleife von 0 bis anzahl-1 laufen lassen. Nicht anders musst du es in GetMin tun, statt anzahl kannst du hier werte.Length benutzen. Und wie gesagt sind für so ein Hochzählen einer Variable eigentlich for-Schleifen gedacht.

_________________
>λ=