Beiträge von The User

    Meinst du DevC++? Das wird doch schon lange gar nicht mehr weiterentwickelt.
    Überleg dir doch, eine IDE zu verwenden, die auch auf "dem Stand der Technik" ist, z. B. KDevelop, Code::Blocks oder QDevelop.
    Siehe dazu hier unter "IDEs".

    Viele liebe Grüße
    The User

    Ne Eingabezahl ist ein normaler string, also quasi ein Array aus char.
    Das "string Eingabezahl(32, '0')" ist eigentlich unnötig, weil die 32 '0'en sowieso durch die Eingabe "cin >> Eingabezahl" überschrieben werden, "string Eingabezahl" würde also reichen. Beim Einlesen wird der String eben komplett neu gemacht, sodass wirklich das Eingegebene drinsteht und nicht irgendwelche Altlasten, die eventuell vorher hineingeschrieben worden sind.

    Viele liebe Grüße
    The User

    Ich bin eben mit C++ "aufgewachsen".
    Klar kann man mit Java alles machen, es ist Turing-vollständig^^ etc.
    Aber ich vermisse solche Sachen dann immer, ich denke mir: Das ginge so einfach mit privater Vererbung, stattdessen gibts jetzt schon wieder eine neue Klasse, war eben erst im Info-Unterricht so. (Lehrer: Welche Möglichkeiten gibt es denn dann die Methoden nicht verfügbar zu machen? Ich: Mit privater Vererbung, aber das gibt es nicht in Java.^^)
    Und mir gefällt es einfach wählen zu können: Dynamische Bindung, oder nicht; Objektorientierung, oder nicht; Templates, oder nicht, Speicherverwaltung, wie man will...

    Die Schleife wird vielleicht gleich schnell ausgeführt, aber Garbage-Collection und die Auswertung des Bytecodes fordern schon ihren Tribut, gibt auch höhere Speicherverwendung. Aber klar, für viele Dinge finde ich Java auch sinnvoll, bloß die mangelnden Sprachfeatures, wie private Vererbung, Freunde, inline-Funktionen, Kopierkonstuktoren, Operatorüberladung und seltene implizite Konvertierung stören mich doch. Man sagt ich schreibe unleserlichen Code, aber das ist vorallem in Java durch die ganzen Klammern für die ständige Konvertierung und seltsame Methoden, die in C++ einen kurzen Operator hätten. ;)

    Ist ja keine Sünde, wenn man für alle Plattformen separat kompiliert.
    Das Programmieren verläuft dennoch plattformunabhängig.
    Solange du nur die STL (Standard-Bibliothek) und die C-Standardbibliothek, also alles im namespace std, und den Sprachstandard (keine proprietären Spracherweiterungen, wie in VisualC++!) verwendest, läuft dein Programm auf allen Systemen.
    Möchtest du eine GUI verwenden, empfehle ich dir Qt. Es ist sehr einfach und auch mit nur grundlegenden Kenntnissen der Objektorientierung und der Qt-Bibliothek, kann man damit aufwändige graphische Oberflächen erstellen. Außerdem gibt es Möglichkeiten für Addons, Scripting, Netzwerkprogrammierung, Funktionsaufruf über strings zur Laufzeit und mehr. Ich finde es auch wesentlich intuitiver als Swing o. ä. in Java, das Hello-Wold Programm läuft eben auch mit sechs Zeilen relevantem Code - Moment, lass mich nachzählen:

    Code
    QApplication app(argc, argv);
    QMainWindow mw;
    QLabel text("Hello World!", &mw);
    mw.show();
    return app.exec();


    Okay doch nur 5.^^ Und man muss keine Riesengeschütze wie Vererbung einführen, nur damit ein Button etwas macht, wenn er geklickt wurde. Der Java-Bytecode ist natürlich praktisch für Applets u. ä. und durchaus oft sinnvoll, insgesamt halte ich jedoch C++ für eine umfangreichere, elegantere und schnellere Sprache.
    Wenn du noch irgendeine Bibliothek für plattformunabhängige Programmierung, Tutorials oder Programm suchst, schau mal hier. Wenn da auf einmal steht, dass VisualC++ benötigt wird, kannst du dir sicher sein, dass dein Programm nicht mehr anderswo laufen wird.

    Viele liebe Grüße
    The User

    PS: Ich sehe den Vorteil von Java weder in Garbage-Collection noch in dem Bytecode, die Java-Standardbibliothek allerdings hat vielseitigere Einsatzgebiete als STL - auch wenn ich STL für besser designt halte. Seit es jedoch Bibliotheken gibt, die hundertprozentige Plattformunabhängigkeit bieten, wie z. B. Qt, verfügt C++ über eben so mächtige Werkzeuge und darüber hinaus über Templates, Iteratorbereiche oder Operatorüberladung sowie Optimiermöglichkeiten.

    Tut mir Leid, habe vorhin vergessen zu antworten und musste weg. ;)
    Also string hat tatsächlich kein push_front, nimm statt dessen push_back. Nach der while-Schleife musst du dann allerdings "reverse(polyint.begin(), polyint.end());" ausführen, damit das ganze umgedreht wird. Außerdem musst du dafür <algorithm> includen. Überdenke noch einmal die Zeile "string polyint(32, 0)", du legst einen String mit 32 Elementen an, um ihm dann mit push noch zusätzlich welche hinzuzufügen. Lass das (32, 0) einfach weg, und der String hat eben 32 Nullen weniger. ;) Außerdem ist ein String kein integer, also musst du auch die erste "Summe % base_neu" per push_back einfügen. Dann sollte es gehen.

    Viele liebe Grüße
    The User

    Also das mit dem i ist schonmal ziemlicher Schwachsinn, geht viel einfacher:


    Der macht dann einfach erst das, wo du mit dem i abgefragt hast, und dann das normale. Also bei so einfachen Dingen, wo nur ein einziges Mal die eine Bedingung ausgeführt werden soll, macht es keinen Sinn über eine Variable zu bestimmen, welche alternative Block ausgeführt werden soll.
    Zweite Sache: Brauchst du überhaupt ein Array oder einen Vektor? Eigentlich nicht, du kannst auch direkt das Ergebnis in einen String schreiben.

    Code
    string int2poly(int Summe, int base_neu)
    {
      string poly;
      ...
      return poly;
    }


    Wenn du Poly berechnest, musst du einfach den Wert in den String hineinpacken, anhängen geht sowohl bei strings als auch bei vector mit push_back, da der Euklidische Algorithmus jedoch die Stellen umgekehrt liefert, musst du push_front verwenden, also:

    Code
    poly.push_front(int2charvalue(wert % base_neu));


    Versuch selbst herauszufinden, wie du das einbaust. ;)
    Die Sache mit dem return:
    Wenn du return aufrufst, wird die Funktion sofort verlassen und der Ausdruck hinter return als Rückgabe behandelt. Code, der hinter return folgt, wird nicht mehr ausgeführt (es sei denn das return ist in einem nicht zutreffenden if-Block o. ä.), das heißt, dass dein "return 0;" keinen Sinn mehr macht. Du bist das wahrscheinlich aus main gewohnt, damit gibt man ans System den Wert 0 zurück, um eine erfolgreiche Programmausführung anzuzeigen. (Wenn z. B. abort aufgerufen wird, ist die Rückgabe wahrscheinlich nicht 0). return ist keine Funktion, deshalb braucht man die Klammern auch nicht, andererseits können sie nicht schaden. ;)

    Theme vector: Du kannst einen vector oft genauso behandeln wie ein array:

    Code
    vector<int> feld; // In < > der Typ, der gespeichert wird, feld ist leer
    vector<string> feld2(32, "hi"); // feld2 hat die Länge 32 und enthält 32 mal den string "hi"
    int x;
    cin >> x;
    feld.push_back(x); // Anhängen, auf Arrays nicht möglich
    cout << feld[0] << endl; // geht genauso wie beim Array
    cout << feld2[2] << feld[3] << feld[4] << endl; // Ausgabe hihihi


    Mit strings kannst du auch die Operationen machen und außerdem genauso wie bei C-Strings.

    Viele liebe Grüße
    The User

    PS: Das int2charvalue stimmt nicht ganz ;)

    Schau mal nach "Mutex", vielleicht macht der das nur, wenns entsprechend geschützt ist.
    Aber warum lernst du eigentlich VisualC++ und nicht Standard-C++? Mit ISO-C++ bist du von etwaigen Launen Microsofts unabhängig und es ist garantiert, dass deine Programme auch mit anderen Compilern oder Systemen laufen.

    Noch ein Hinweis:
    Verwende die "using namespace"-Direktive nicht innerhalb eines Namespaces sondern außerhalb, sonst machst du ja noch deinen eigenen Namespace kaputt.

    Viele liebe Grüße
    The User

    Hier scheint man das wohl einmal besprochen zu haben, da sind weitere Links, die nützlich aussehen. (Schnitzeljagd^^) Oder wenns doch MS sein soll:
    http://msdn.microsoft.com/en-us/library/1x64c23x.aspx
    Vielleicht überlegst du dir auch einmal, auf Qt umzusteigen, ist plattformunabhängig und sehr komfortabel. Da habe ich zu deiner Sache gleich Aussagefähige Beispiele gefunden:
    http://doc.trolltech.com/4.4/itemviews-chart.html
    http://doc.trolltech.com/4.4/examples.html#item-views

    Viele liebe Grüße
    The User

    Du bist häufiger mit Eingabezahl und Eingabezahlint durcheinander gekommen, die Namen waren etwas suboptimal. ;) Du hast nicht daran gedacht, dass beim Exponenten die Länge der Eingabe und nicht die des Vektors berücksichtigt werden sollte, deshalb habe ich den Vektor nun ganz entfernt und voilà, es klappt ohne jedes Array. Außerdem hattest du Summe mehrfach deklariert.

    Viele liebe Grüße
    The User


    Ein Hinweis:
    Strings haben eine dynamische Länge, also müssen es nicht immer 32 sein.
    Wenn du die Zeile

    Code
    Eingabezahl = string(32 - Eingabezahl.size(), '0') + Eingabezahl;


    wegnimmst und in der Folge statt 32 Eingabezahl.size() verwendest, klappt es auch mit 14 oder 35 Stellen. (Zumindest bei 64-Bit Integers)

    Viele liebe Grüße
    The User

    Beim Schreiben in die Datenbank solltest du neben mysql_real_escape_string auch htmlspecialchars verwenden, dann wird <script> zum Beispiel zu &lt;script&gt;, falls du kein Unicode verwendest, solltest du htmlentities verwenden, dann werden auch Umlaute etc. richtig dargestellt.

    Viele liebe Grüße
    The User

    "char Eingabezahl[32]={0}; //stellt sicher, dass Ar"
    dadurch wird ein Zeichenarray erzeugt, das gilt jedoch nur als String, den man einfach mit cin einlesen kann, wenn das letzte Zeichen ein Nullzeichen ist.
    Es lauern sehr viele Fehler, die du noch nicht einschätzen kannst, daher empfehle ich dir die Datentypen string und vector zu verwenden, z. B.:


    Das ist viel weniger fehleranfällig und für die meisten Einsätze der bessere Weg.

    Viele liebe Grüße
    The User