C# Aufgabe

04/10/2011 19:41 csharpnoob#1
Guten Tag
Da ich das Programmieren faszienierent fand wollte ich auch mal damit anfangen.
Ich programmiere mit der sprache c# da ich gehört hab das viele fachinformatiker damit arbeiten.Nachdem ich mir die Grundlagen durchgelesen habe wollte ich mal anfangen AUfgaben zu Programmieren.Von meinem großen Bruder der Freund macht zuzeit sein Fachabi in Informatik. Ich habe ihn gefragt ob er mir eine Aufgabe geben könnte . Dann gab er mir diese aufgabe

"Schreiben Sie ein Programm das ein feld mit"n" Integer Zahlen erzeugt und ausgibt.Die Anzahl der Feldelemente"n" soll vom Benutzer eingegeben werde
Das Feld soll folgende Inhalte haben: n, n-1, 4, 3, 2, 1
[U]

Ich versteh die Aufgabe nicht so.Ich weiß nur das ich mit int Array und ne Schleife arbeiten muss . Würde mir bitte einer erklären wie ich das Programm schreiben muss ich wär ihn sehr dankbar
04/11/2011 17:12 nkkk#2
so würde ich es machen, brauchst keine schleifen:
Code:
        static void Main(string[] args)
        {
            //Feld erzeugen
            int[] array = new int[Int32.Parse(Console.ReadLine())]
                .Select((val, index) => index + 1)
                .Reverse()
                .ToArray();
            //Feld ausgeben
            Console.WriteLine(String.Concat(array.Select(intv => intv.ToString() + "  ").ToArray()));
        }
kannst testen das funktioniert.
04/12/2011 07:57 GotDamned#3
Quote:
Originally Posted by nkkk View Post
so würde ich es machen, brauchst keine schleifen:
Code:
        static void Main(string[] args)
        {
            //Feld erzeugen
            int[] array = new int[Int32.Parse(Console.ReadLine())]
                .Select((val, index) => index + 1)
                .Reverse()
                .ToArray();
            //Feld ausgeben
            Console.WriteLine(String.Concat(array.Select(intv => intv.ToString() + "  ").ToArray()));
        }
kannst testen das funktioniert.
Dann solltest du ihm das aber auch vernünftig erklären. Allerdings muss ich zugeben, ich sehe da auch keine Lösung. Allerdings verstehe ich die Aufgabe auch nicht. (siehe unten)
Vor allem als Anfänger liest man sich doch lieber einfache Lösungen durch.


Quote:
Originally Posted by csharpnoob View Post
...
"Schreiben Sie ein Programm das ein feld mit"n" Integer Zahlen erzeugt und ausgibt.Die Anzahl der Feldelemente"n" soll vom Benutzer eingegeben werde
Das Feld soll folgende Inhalte haben: n, n-1, 4, 3, 2, 1
[U]

Ich versteh die Aufgabe nicht so...
Ich leider auch nicht. Was ist mit dem letzten Teil (rot) gemeint?
Sollst du ein Array von der Größe "n" erzeugen, sprich was "n"Zahlen enthalten kann?
Oder soll es ein Array sein, wo der Benutzer beliebig viele Zahlen eingeben kann, also nach oben unbegrenzt ist und auf Befehl ausgegeben wird?
Mich irritiert vor allem die "-1, 4, 3, 2, 1"
Was ist damit gemeint?
04/12/2011 09:58 boxxiebabee#4
Quote:
Originally Posted by GotDamned View Post
Dann solltest du ihm das aber auch vernünftig erklären. Allerdings muss ich zugeben, ich sehe da auch keine Lösung. Allerdings verstehe ich die Aufgabe auch nicht. (siehe unten)
Vor allem als Anfänger liest man sich doch lieber einfache Lösungen durch.




Ich leider auch nicht. Was ist mit dem letzten Teil (rot) gemeint?
Sollst du ein Array von der Größe "n" erzeugen, sprich was "n"Zahlen enthalten kann?
Oder soll es ein Array sein, wo der Benutzer beliebig viele Zahlen eingeben kann, also nach oben unbegrenzt ist und auf Befehl ausgegeben wird?
Mich irritiert vor allem die "-1, 4, 3, 2, 1"
Was ist damit gemeint?
also ich sehe das so, n ist in diesem bsp. 6, also die user eingabe.

n, n-1, 4, 3, 2, 1
6, 5, 4, 3, 2, 1


Das Programm soll einfach die Eingabe runterzählen.
04/12/2011 17:27 nkkk#5
ist doch relertiv einfach, ein array mit einer beutzerdefinierten grösse erzeugen und es dann absteigend mit zahlen füllen, bis die letzte zahl 1 ist.
und dann das array auf der console ausgeben.

und genau das macht mein prog. im grunde ist es einfacher als der weg mit einer schleife, wenn man weiss wie lambda ausdrücke in C# funktieiren.

dass das vermutlich nicht das ist was der Freind des Bruders erwatet hat, ist mir durchaus klar ^^.

Das prog. besteht im wesentlichen aus 2 befehlen, der erste erzeigt das array und der zweite gibt es auf der Konsole aus.

Im üprigen sehen meine pgramme oft so aus weil ich es im auch übersichtlicher finde als z.B. schleifen. Und es auch einfacher abzuändern ist meiner meinung nach auch.
04/13/2011 19:23 GotDamned#6
Jetzt gerade sehe ich das auch.
Allerdings denke ich doch, dass es für Einsteiger anders besser wäre.
Aber dazu kann sich wohl nur der TE äußern ;)
04/14/2011 09:42 boxxiebabee#7
Also das wäre die Aufgabe:

Code:
        static void Main(string[] args)
        {
            Console.Write("Gib eine Zahl ein: ");
	        int zahl = int.Parse(Console.ReadLine());
            for (int i = zahl; i > 0; i--)
            {
                Console.WriteLine(i);
            }
            Console.Read();
        }
04/14/2011 12:15 nkkk#8
Quote:
Originally Posted by Lizzaran View Post
Also das wäre die Aufgabe:

Code:
        static void Main(string[] args)
        {
            Console.Write("Gib eine Zahl ein: ");
	        int zahl = int.Parse(Console.ReadLine());
            for (int i = zahl; i > 0; i--)
            {
                Console.WriteLine(i);
            }
            Console.Read();
        }
nein die aufgabenstellung sagt ganz eindeutig dass man erst ein feld füllen muss und es dann das feld ausgeben muss.
du gibt einfach nur zahlen aus. das feld kommt bei dir nicht vor.
04/14/2011 21:21 boxxiebabee#9
Quote:
Originally Posted by nkkk View Post
nein die aufgabenstellung sagt ganz eindeutig dass man erst ein feld füllen muss und es dann das feld ausgeben muss.
du gibt einfach nur zahlen aus. das feld kommt bei dir nicht vor.
ach, das hab ich glatt vergessen, hab den post das letzte mal gelesen als der thread geöffnet wurde.

so hier nochmal das richtige, einfach zu verstehen:

Zuerst wird die User-Eingabe als integer gespeichert.
Dannach wird ein Array erstellt in der benötigten größe.
Mit einer For-Schleife wird das Array von n bis 1 befüllt.
Array wird dannach umgedreht und am Ende wird das Array mit einer
foreach Schleife ausgegeben.
Code:
        static void Main(string[] args)
        {
            Console.Write("Gib eine Zahl ein: ");
	        int eingabe = int.Parse(Console.ReadLine());
            int[] zahlen = new int[eingabe];
            for (int i = eingabe; i > 0; i--)
            {
                zahlen[i - 1] = i;
            }
            Array.Reverse(zahlen);
            foreach (int zahl in zahlen) {
                Console.Write(zahl);
            }
            Console.Read();
        }