Autor Beitrag
iTztheBlade
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 01.10.12 10:43 
Hallo Leute - bin neu hier und hab gleich eine Frage an Euch.

Ich habe gestern angefangen, in C# zu programmieren ( meine 1. Sprache ).

Nun habe ich eine Aufgabe, bei der ich gar nicht weiß, wie ich anfangen soll.

Ich musste erst 3 Schleifen (Do, While, For) programmieren, die jeweils die Ganzzahlen zwischen 1 und 100 angeben.
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:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
{
    using System;

    public class Summe
    {      
        public static void Main()
        {
            Combiner c; 
            int Ergebnis = 0;

            Console.WriteLine("Bitte wählen sie eine bevorzugte Schleife aus");
            Console.WriteLine("ForSchleife 1, WhileSchleife 2, DoSchleife 3. q zum Beenden");

            string eingabe = Console.ReadLine();

            switch (eingabe)
            {
                case "1":
                    {

                        Console.WriteLine("Wenn die Eingabe 1 ist, dann wähle ForSchleife aus.");
                        c = new ForCombiner();
                        Ergebnis = c.Sum(0100);
                        break;
                    }

                case "2":
                    {

                        Console.WriteLine("Wenn die Eingabe 2 ist, dann wähle WhileSchleife aus.");
                        c = new WhileCombiner();
                        Ergebnis = c.Sum(0100);
                        break;
                    }

                case "3":
                    {

                        Console.WriteLine("Wenn die Eingabe 3 ist, dann wähle DoSchleife aus.");
                        c = new DoCombine1();
                        Ergebnis = c.Sum(0100);
                        break;
                    }

                default:
                    {

                        Environment.Exit(0);
                        break;
                    }
            }

            Console.WriteLine(Ergebnis);

            Console.ReadKey();
        }
    }
}

Nun soll am Anfang abgefragt werden, von welcher Zahl bis welcher Zahl ich die Zwischensumme berechnen möchte. Also z.B. von 4 - 77.
Alles soll ich eine Methode mit TryParse.

Zur Verständlichkeit, hier eine meiner Schleifen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
{
    class ForCombiner: Combiner
    {
        internal override int Sum(int start, int ende)
        {
              int summe = 0;
                  int i;

                  for (i = 1; i <= 100; i++)
                  {
                      summe = summe + i;
                      Console.WriteLine("Zwischensumme {0}: {1}", i, summe); 

                  }
                  Console.WriteLine("Die Summe von {0} ist {1}!", i - 1, summe);
                  return summe;
        }

    }
}


Schonmal vielen Dank für Eure Hilfe.

LG,
Blade

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 01.10.12 12:06 
Hallo und :welcome:

was genau ist dir denn an der Benutzung von TryParse noch unklar?
Da du ja mittels string eingabe = Console.ReadLine() eine Zeichenkette einliest, muss diese erst noch in eine Zahl (int) konvertiert werden, damit du damit dann rechnen kannst (bzw. als Parameter an die Sum-Methode übergeben kannst).
Erster Anlaufpunkt für die Benutzung der Methoden sollte immer die MSDN sein: Int32.TryParse-Methode
Unter Anfängerfrage zu Methoden hat ein User aber auch ein Beispiel für TryParse angegeben.

P.S. Deine Sum-Methode sollte auch die 2 übergebenen Parameter benutzen ;-)
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 01.10.12 12:29 
ausblenden C#-Quelltext
1:
2:
3:
4:
bool KeinFehler;
string text = "1234";
int ergebnis;
KeinFehler = int.TryParse(text, out ergebnis)


Mit out kannst du eine Variable als Argument übergeben und nach der Ausführung der Methode hast du dort einen neuen Wert drin. ergebnis muss auch nicht initialisiert sein. Hier: MSDN -> out (C#-Referenz)

Mit dem eigentlichen Rückgabewert erfährst du dann, ob das auch wirklich eine Zahl war und kannst auch drauf reagieren.

Das gibt dir dann die Möglichkeit, direkt zu reagieren, wenn jemand z.B. einen Buchstaben eingegeben hat.
In einer Konsolen-Anwendung würde ich dann eine do-while-Schleife nutzen. Erst mal abfragen, dann wird in der Schleife geprüft, ob es eine Zahl war und wenn nicht, beginnt die Schleife halt von vorne und fragt erneut ab.
Oliver M.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: Mo 01.10.12 22:04 
user profile iconiTztheBlade hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe gestern angefangen, in C# zu programmieren ( meine 1. Sprache ).
Erstes mal am programmieren und schon so was komplexes??? :suspect: Das ist kein typisches Projekt für Anfänger.

user profile iconiTztheBlade hat folgendes geschrieben Zum zitierten Posting springen:
Ich musste erst 3 Schleifen (Do, While, For) programmieren, ...
Äh..., do und while gehören doch zu der gleichen Schleife :gruebel::
entweder: while (
ausblenden C#-Quelltext
1:
Bedingung					
ausblenden C#-Quelltext
1:
) {					
ausblenden C#-Quelltext
1:
 Anweisung					
ausblenden C#-Quelltext
1:
 }					

oder: do {
ausblenden C#-Quelltext
1:
 Anweisung					
ausblenden C#-Quelltext
1:
 } while (					
ausblenden C#-Quelltext
1:
Bedingung					
ausblenden C#-Quelltext
1:
)					


Könntest du bitte nochmal dein Problem schildern, ich verstehe nicht was das ganze machen soll oder wofür.