Blutiger Anfänger in C#

  • bool IstZahl(char Zeichen)
    {
    return Zeichen > 48 && Zeichen < 57;
    }


    so als pseudocode. chars sollten ihrem ascii wert entsprechen. also wenn du char 48 hast, sollte es eine 0 sein. ich bin aber auf c++ gepolt, laut threadtitel gehts um c#. aber soviel anders kann das nicht sein.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • bool IstZahl(char Zeichen)
    {
    return Zeichen > 48 && Zeichen < 57;
    }
    so als pseudocode. chars sollten ihrem ascii wert entsprechen. also wenn du char 48 hast, sollte es eine 0 sein. ich bin aber auf c++ gepolt, laut threadtitel gehts um c#. aber soviel anders kann das nicht sein.


    Bin im ersten Semester Wirtschaftsinformatik und unser Professor in Programmieren I meinte, dass wir uns NIE die ASCII Werte merken sollen sondern anstatt 65 für A einfach 'A' schreiben sollen. Es verbessere die Lesbarkeit des Codes ungemein

  • klar, hast du bestimmt recht. das war jetzt so ausm kopf. es gibt viel schlimmere designsünden als nen ascii code hinzuschreiben statt dem char. aber das wird dir auch noch begegnen.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • Ich bräuchte mal wieder eure Hilfe ^_^


    Hab hier ne Liste und muss die in umgekehrter Reihenfolge ausgeben. Nun gut, das ausgeben wäre kein Problem, aber nun soll die Revertfunktion welche ich schreiben soll nicht den umgekehrten string zurückgeben sondern eine neue Liste.
    Kurz gesagt: Ich hab eine Liste mit aufsteigend sortierten Zahlen und muss diese Liste absteigend sortieren.


    Aufgabenstellung: Bei der Implementierung können Sie eine neue Listeninstanz erzeugen, in
    die dann - basierend auf den Daten der ursprünglichen Liste - sukzessiv
    neue Elemente in umgekehrter Reihenfolge eingefügt werden. Die o. g.
    Methode Revert gibt dann eine Referenz auf die neu erstellte Liste zurück (siehe Testcode unten).


    Zitat
    Code
    1. IntList sortedList = new IntList();
    2. sortedList.InsertSorted(5);
    3. sortedList.InsertSorted(2);
    4. sortedList.InsertSorted(5);
    5. sortedList.InsertSorted(7);
    6. sortedList.InsertSorted(3);
    7. Console.WriteLine("Sorted list: {0}", (string)sortedList);
    8. Console.WriteLine("Reverted sorted list: {0}", (string)sortedList.Revert());


    Mein Ansatz bisher:


  • du willst nur die liste von hinten durchgehen und in eine neue speichern? gibts in c# keine reverse iteratoren?

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • also sowas?
    pseudocode:


    list meineListe //gegeben
    list meineListeVonHinten //gesucht
    for(list::reverse_iterator it = meineListe.rbegin(); it != meineListe.rend(); ++it)
    {
    meineListeVonHinten.insert(it);
    }

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • In etwa so ausgedrückt:
    Ich bekomme meineListe übergeben und möchte diese Liste umdrehen und wieder zurückgeben.
    Ich weiß wie ich meine Liste durchgehe ( auch von hinten) aber nicht wie ich diese in der gewünschten Reihenfolge in einer neuen speichern bzw. meine alte Liste so verändern kann. Das ist der Knackpunkt

  • na einfach von hinten durchgehen und in eine neue liste der reihe nach einfügen, siehe mein pseudocode oben. verstehe grad das problem nicht.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • Das Problem beim "Pseudocode" war, das ich das ja wieder sortiert einfüge.
    Aber ich muss ja die Zeiger ändern.
    also
    root = last
    root. next = last.prev
    etc etc


    Hab das jetzt so gelöst: