Entwickler-Ecke

C# - Die Sprache - Anfängerufgabe mit erfragen von Azahl...


Johannes85 - Di 06.04.10 12:38
Titel: Anfängerufgabe mit erfragen von Azahl...
Hallo an alle,



Danke schonmal....


danielf - Di 06.04.10 12:46

Hallo und :welcome:,

woran happert es den? An der Syntax, Fragestellung, Lösungsweg, Faulheit?

Ein Programm ist immer ein Folge von Anweisungen. Der Text ist ja schon sehr in Anweisungen formuliert, so dass du diese nur noch in Code umsetzen muss. Deshalb verstehe ich nicht, warum du einen Lösungsweg, bzw. Erklärungen dazu haben willst - wenn doch schon alles da steht.
Zitat:
Schreiben Sie ein Programm, das eine Anzahl erfragt.

// 1.) Anzahl einlesen
Zitat:
Nachdem die Anzahl eingegeben ist, soll das Programm so viele Zahlen lesen, wie die Anzahl angibt.

// 2.) Anzahl an Zahlen einlesen
....

Oder verstehe ich da was falsch? Was sind deine bisherigen Ansätze?

Gruß


Johannes85 - Di 06.04.10 12:52

Die bisherigen Ansätze sind Mist, hat nichts mit faulheit zu tuhen, sondern unwissen:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
class Program
      {
            static void Main(string[] args)
            {
                  string eingeleseneZeile = Console.ReadLine();
                  int gewandelteZeile;
                  gewandelteZeile = Convert.ToInt32(eingeleseneZeile);
                  Console.WriteLine(gewandelteZeile);
                  Console.ReadLine();
            }
      }
}

Versuche mit dem zu basteln---aber iwie komm ich zu nichts...

Moderiert von user profile iconNarses: C#-Tags hinzugefügt


danielf - Di 06.04.10 13:21

Und was macht dieser Code? Wenn man sich Kommentare dazu schreibt verdeutlicht man sich und anderen schnell was da geschieht.

Versuche die Aufgabenformulierung in Kommentare um zu formulieren (siehe ansatzweise mein erster Post hier) und setzte dies dann sukzessive in Code um. Irgendwas macht dein Code bis dato ja? und irgendwie kommst du nicht weiter?

Schritt für Schritt...


Johannes85 - Di 06.04.10 13:45

using system;

class Hausaufgabe1
{

static void main()
{
\\ Variable deklariert
string eingeleseneZeile = Console.ReadLine();
\\ Was mache ich hier?
int gewandelteZeile;
\\ Konvertierung
gewandelteZeile = Convert.ToInt32(eingeleseneZeile);
Console.WriteLine(gewandelteZeile);
Console.ReadLine();

So sieht das im moment aus...stehe total aufm schlauch:)


danielf - Di 06.04.10 13:57

Denk bitte daran Code hier im Forum als solchen zu deklarieren. Dass kannst du über Bereiche machen oder wenn du gleich die Tags  und selber einfügst.

Du brauchst nicht genau kommentieren, was du im Einzelnen machst (das sieht man ja am Code) sondern die Aufgabe was ein Abschnitt macht:

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:
class Program
      {
        static void Main(string[] args)
        {
            // Lese Anzahl an einzugebenen Zahlen ein 
            int anzahlAnZahlen = 0;
            string eingabe = null;
            do
            {
                 eingabe = Console.ReadLine();
            } while (int.TryParse(eingabe, out anzahlAnZahlen));

            Console.WriteLine(string.Format("Bitte geben Sie {0} Zahlen ein: ", anzahlAnZahlen));

            // Lese Anzahl an Zahlen ein
            List<int> zahlen = new List<int>();
            int eingeleseneZahl = 0;
            for ( .... )
            {   
                // Zahl einlesen
                // ueberpruefen ob eine zahl eingegeben wurde
                    // zahl zu liste hinzufügen

            }

            // Zaehle wieoft eine Zahl mind. 3 mal hintereinander vorkommt
            ....

            // Ergebnis ausgeben
      }
}


Ich hab es mal implementiert, aber ab dem zweiten Schritt Code durch Hinweise ersetzt, den die Logik/Funktionen sind an dieser Stelle die selbe.

Bitte versuch wenigstens den zweiten Abschnitt (einlesen von X zahlen) zu vervollständigen. Für die Auswertung gebe ich dir dann nochmal Tipps.


Johannes85 - Di 06.04.10 14:06


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;

class Hausaufgabe1
  {

  
    static void Main(string[] args)
        {
            // Lese Anzahl an einzugebenen Zahlen ein 
            int anzahlAnZahlen = 0;
            string eingabe = null;
            do
            {
          eingabe = Console.ReadLine();
            } while (int.TryParse(eingabe, out anzahlAnZahlen));

            Console.WriteLine(string.Format("Bitte geben Sie {0} Zahlen ein: ", anzahlAnZahlen));

            // Lese Anzahl an Zahlen ein
            List<int> zahlen = new List<int>();
            int eingeleseneZahl = 0;
            for ( .... )
            {   
                // Zahl einlesen
        
        Console.Readline (anzahlanZahlen)
                // ueberpruefen ob eine zahl eingegeben wurde
                    // zahl zu liste hinzufügen

            }

            // Zaehle wieoft eine Zahl mind. 3 mal hintereinander vorkommt
            ....

            // Ergebnis ausgeben
      }



hmm...das klappt nicht----du hast zuviele sachen rein mit denen ich noch gar nicht klarkomme...zum beipsiel dieses tryparse


Narses - Di 06.04.10 14:15

Moin!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:
1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]
Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

cu
Narses


danielf - Di 06.04.10 14:37

Das TryParse versucht aus einem string eine Zahl zu machen. Das entspricht deinem Convret.ToInt32, allerdings sollte man eben dieses TryParse verwenden, weil man so überprüfne kann ob es sich bei dem eingegebenen Text um eine Zahl handelt. Die Convert.ToInt32 Methode würde eine Exception auslösen.

Mit der Fehlerbeschreibung: Klappt nicht, kann ich nichts anfangen.

Ich vermute du bekommst Kompilierfehler... bitte versuche den Code bzw. die angezeigten Fehler zu verstehen, dann wirst du auch gleich die "Fehler" sehen. Ansonsten wirst du nicht weiter kommen :/


Johannes85 - Di 06.04.10 14:49

Hier mal das Programm, ist voller Fehler.... verliere die Geduld langsam


traceurmicha - Di 06.04.10 15:34

@Johannes85

Also was ich dir erstmal definitiv sagen kann ist das hier niemand deinen Quelltext komplett schreiben wird! Helfen werden wir dir alle gerne aber du musst auch eigeninitiative Zeigen!
Weiterhin kann ich dir nur sagen: Hab geduld! Lese, probiere Quelltext aus und stell präzise fragen, dann wird das schon mit deinem Projekt!


Johannes85 - Do 08.04.10 15:45

soo..bastel gerade weiter....bin bisschen besser dran heute, den anfang habe iich...und nun? tips??


Johannes85 - Do 08.04.10 18:07

user profile iconJohannes85 hat folgendes geschrieben Zum zitierten Posting springen:
soo..bastel gerade weiter....bin bisschen besser dran heute, den anfang habe iich...und nun? tips??


using System;


class Felder
{

public static void Main()
{
Console.WriteLine("Wie viele Zahlen sollen eingegeben werden?: ");
int groesse = Convert.ToInt32(Console.ReadLine());
int[] feld = new int[groesse];

for (int no = 0; no < feld.Length; ++no)
{
Console.Write("Bitte Zahl eingeben: ");
feld[no] = Convert.ToInt32(Console.ReadLine());
}

Console.WriteLine("Sie haben eingegeben:" + "\n"); ;
for (int no = 0; no < feld.Length; ++no)
{
Console.WriteLine(feld[no]);
}
{int dreimal = 0;
for (int no = 0; no = 3;
Console.Write(feld[no]+" "));
}

Console.ReadKey(true);
}
}


JüTho - Do 08.04.10 19:27

user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
Denk bitte daran Code hier im Forum als solchen zu deklarieren. Dass kannst du über Bereiche machen oder wenn du gleich die Tags  und selber einfügst.

Ich schließe mich Daniel an: Wo ist die Code-Markierung geblieben? Das kannst du auch nachträglich korrigieren mit dem Schere-Button für deinen letzten Beitrag. Jürgen


traceurmicha - Fr 09.04.10 07:06

Erstmal: JüTho & Daniel: :zustimm: Auch ich schliese mich euch an!

Zitat:
soo..bastel gerade weiter....bin bisschen besser dran heute, den anfang habe iich...und nun? tips??


:gruebel:

Denke bitte an:
user profile icontraceurmicha hat folgendes geschrieben Zum zitierten Posting springen:

[...] stell präzise fragen


Johannes85 - Sa 10.04.10 13:17


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

class Felder
{
    public static void Main()
    {
        Console.WriteLine("Wie viele Zahlen sollen eingegeben werden?: ");
        int groesse = Convert.ToInt32(Console.ReadLine());
        int[] feld = new int[groesse];

        for (int no = 0; no < feld.Length; ++no)
        {
            Console.Write("Bitte Zahl eingeben: ");
            feld[no] = Convert.ToInt32(Console.ReadLine());
        }
        int ausgabe = 0;
        for (int no = 0; no + 2 < feld.Length; ++no)
        {
            if (feld[no] == feld[no + 1] && feld[no] == feld[no + 2])
                ++ausgabe;

        }
        Console.WriteLine("Anzahl der Ziffern, die sich 3x wiederholen: " + ausgabe);
        Console.ReadKey(true); 
    }
}


soo...tschuldigung, hatte ich ja ganz vergessen..

so sieht das gane jetzt aus..das stimmt nicht ganz...ic h muss irgendwo noch sagen das er bei mehr als drei gleiche iffern nichts mehr u berüchsichtegen braucht, hab keine ahnung wie das geht....das sollte eine 10 min aufgabe sein und ich habe jetzt 4 tage damit verbracht....kann mir jemand den lösungsweg ZEIGEN und dann bitte auch ERKLÄREN??
anders bekomm ich das nicht mehrhin..danke