Hilfe bei qsort durch einen Zufallsgenerator und templates



  • @manni66 sagte in Hilfe bei qsort durch einen Zufallsgenerator und templates:

    sizeof(zufalls_array) / sizeof(int) ergibt nicht, was du denkst.

    ...was daran liegt, dass zufalls_array kein Array ist, sondern ein Pointer.

    Merke: ein Pointer ist kein Array und ein Array ist kein Pointer.
    Insbesondere ist sizeof(pointer) = c (z.B. c=4 oder c=8 - eine Wert, der von der Architektur abhängt). Der Wert hängt insbesondere nicht davon ab, wie groß der Speicher ist, auf den der Pointer zeigt. Er gibt dir stattdessen an, wie viel Speicherplatz der Pointer selbst benötigt.

    Du musst die also merken, wie viele Elemente du hast (nämlich wertangabe).

    Aber das ganze ist nicht so, wie man es in C++ machen würde. Daher die Frage: willst du C++ machen? Sind mit "templates" in der Aufgabe C++-Templates gemeint? Oder wird dieser Begriff allgemeiner verwendet und du sollst eigentlich in C programmieren? Der Code sieht nach C aus, wenn man von iostream und cin/cout absieht.


  • Mod

    @Swordfish sagte in Hilfe bei qsort durch einen Zufallsgenerator und templates:

    @SeppJ Ist zwar eigentlich egal, aber da steht nirgends daß man etwas schreiben soll das den Anforderungen des Standards genügt (STL).

    Das wäre dann der Anspruch, dass es auch gut werden soll. Wenn man einfach nur ein paar class im Code verstreut ohne sich über Modellierung und Schnittstellen Gedanken zu machen, hat man nichts gelernt.

    Aber: Da ich das in der jetzigen Form trotzdem für ziemlich unnütz halte und nicht glauben kann, dass dies wirklich die Aufgabe ist, sollten wir uns nicht darüber streiten, sondern auf die Rückantwort warten.



  • erstmal vielen dank für eure antworten.
    ich verstehe auch nicht warum man eine Aufgabenstellung in der Form an einen Anfänger verteilt. Ich habe in den letzten Tagen glaube zu viel diesbezüglich gelesen und viel durcheinander gebracht.

    Also die genaue Augabenstellung lautet:

    Es soll eine generische Klasse zum Speichern und Sortieren von Objekten entworfen werden. Die Klasse habe Methode, um die entsprechenden Objekte zu Speichern und zu Verwalten. Außerdem soll eine Methode zum Sortieren der Objekte realisiert werden, die nach dem Bubble -, Select – oder Quick Sort Algorithmus funktioniert. Existiert für die Objekte keine Ordnungsrelation, lassen sich also zwei Objekte O1 und O2 nicht vergleichen zum Beispiel durch O1 < O2, O1 = O2 oder O1 > O2, so ist diese entsprechend zu definieren und in der Klasse der Objekte in Form eines entsprechenden Casting – Operators zu implementieren.

    Die Sortierungen werden als Listen zurückgegeben, die dann in einem Mainprogramm weiterverarbeitet bzw. ausgegeben werden können. In einem solchen Mainprogramm soll zur Überprüfung der korrekten Funktionalität eine angemessene Menge unterschiedlicher Objekte (z.B. vom Typ short, double, sowie zusätzlich ein bis zwei selbst definierter Objekte) sortiert werden.


  • Mod

    Und das soll in C oder in C++ gemacht werden? Falls in C++: Wieso hast du es dann in C gemacht? Kannst du überhaupt C++?

    Es soll eine generische Klasse zum Speichern und Sortieren von Objekten entworfen werden.

    Da krieg ich schon wieder das Kotzen. Das ist so ein Antipattern. Dass eine Klasse nicht zwei Aufgaben haben darf, ist das allererste, was man lernen muss.



  • @SeppJ es soll in c++ gemacht werden, dass ist für mich erstmal ein Versuch um überhaupt ein Verständnis dafür zu bekommen


  • Mod

    @André sagte in Hilfe bei qsort durch einen Zufallsgenerator und templates:

    @SeppJ es soll in c++ gemacht werden, dass ist für mich erstmal ein Versuch um überhaupt ein Verständnis dafür zu bekommen

    Hast du etwas gelernt aus dem Versuch, das in einer völlig anderen Sprache mit einer völlig anderen Philosophie umzusetzen?



  • @André sagte in Hilfe bei qsort durch einen Zufallsgenerator und templates:

    Die Sortierungen werden als Listen zurückgegeben

    Ist diese Klasse die da geschreibt werden soll nun ein Container der mit einer Funktion sortiert werden soll? Oder bastelt diese Memberfunktion eine Kopie, sortiert die und gibt die irgendwie "als Listen" zurück? So ein Quatsch diese Aufgabe.



  • @SeppJ so ist die Aufgabenstellung. und das soll man dann als Anfänger umsetzen.

    ja es ist alles ziemlich schwer muss man sagen. habe genüg Bücher geholt für den Anfang. aber so wirklich bringen tut es nicht.

    also es sollen Klassen erstellt werden und wie das dann genau weiter gehen soll ist erstmal egal


  • Mod

    Also ich schätze mal, wenn ich - mit vielen Jahren Erfahrung - mich jetzt hochkonzentriert hinsetzen würde und versuchen würde, das halbwegs gut umzusetzen (und den ganzen Quatsch der Aufgabenstellung einfach hinnehme), dann sitze ich da mindestens 4 Stunden dran, wahrscheinlich mehr. Das ist viel zu schwer für den von dir gezeigten Kenntnisstand.

    Außer natürlich, ich nutze, wie man das eigentlich machen würde, die fertigen Methoden der STL. Dann ist das in 15 Minuten gemacht. Ich habe immer noch die Vermutung, dass hier ein Missverständnis vorliegt, was wirklich gemeint ist.




  • Mod

    @manni66 sagte in Hilfe bei qsort durch einen Zufallsgenerator und templates:

    Den Schrott hatten wir schon https://www.c-plusplus.net/forum/topic/349882/generische-klasse

    Ahh, also keine Hausaufgabe, sondern ein groß angelegtes Studienprojekt. Natürlich immer noch absolute Schrottanforderung bei der man das Gegenteil von gutem Stil lernt, aber das erklärt den unverschämt hohen Anspruch.



  • @SeppJ ist s>>hon heftig wenn man das ließt und wie du schon sagst, bei meinem Kenntnisstand... meinste das geht in 15 minuten auf die "einfache" Art und Weise? Ich denke mal die wollen nur sehen das man sich damit beschäftigt hat


  • Mod

    @André sagte in Hilfe bei qsort durch einen Zufallsgenerator und templates:

    @SeppJ ist s>>hon heftig wenn man das ließt und wie du schon sagst, bei meinem Kenntnisstand... meinste das geht in 15 minuten auf die "einfache" Art und Weise? Ich denke mal die wollen nur sehen das man sich damit beschäftigt hat

    Das geht auf meinem Kenntnisstand in 15 Minuten auf die einfache Art und Weise. Aber die einfache Art und Weise ist garantiert nicht gemeint, weil diese gerade beinhaltet, dass man all das, womit man sich hier beschäftigen soll, schon weiß. Was du nicht tust. Schau in dem von manni66 verlinkten Thread für ein paar grobe Ansätze.



  • Das hätte ich jetzt nicht gedacht, dass schon einmal so ähnlich etwas gegeben hat



  • den Kenntnisstand hätte ich auch gerade sehr gerne.
    Ich schaue es mir gerade nebenbei an. ist ja ziemlich identisch


Anmelden zum Antworten