Announcement

Collapse
No announcement yet.

Hilfe bei meinem C++ Programm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe bei meinem C++ Programm

    Guten Tag,

    ich habe zur Zeit ein kleines Problem bzgl. C++ und wäre sehr froh wenn mir hier jemand ein wenig weiterhelfen könnte.

    Zum Problem:

    ich muß für meine Diplomarbeit u.a. ein C++ Programm schreiben. Da das Programm sehr komplexe Sachen berechnen muß (vereinfacht gesagt), habe ich so zu sagen eine "Rohversion" von meinem Prof bekommen, auf der ich aufbauen soll. Jetzt habe ich zwei Wochen gebraucht, aber das Programm läuft mittlerweile einwandfrei.

    Was ich genau ändern möchte und wo bzw. wie weiß ich in etwa, allerdings habe im Moment das Problem, dass das Programm beständig alle meine Änderungen ignoriert und immer nur das macht, was auch das Ausgangsprogramm macht.

    Wie bin ich vorgegangen? Ich habe zunächst den Quellcode des Ausgangsprogramms kopiert, ein neues Textfile erstellt und darin den Code eingefügt. Dann habe ich meine Änderungen vorgenommen (ich habe verschiedenes ausprobiert, auch einfach nur eine schlichte Textausgabe um zu testen ob es funzt), und anschließend alles compiliert. Das hat auch einwandfrei gefunzt, allerdings ist die Ausgabe des Programms identisch mit der des Ausgangsprogramms...?

    Hat jemand vielleicht eine Idee was ich falsch gemacht habe?

    Danke & Gruß

    Oli

  • #2
    Du hast hoffentlich den Original Quellcode aus dem Projekt genommen
    Christian

    Comment


    • #3
      Hallo,

      vielleicht zunächst noch mal ein paar Infos:

      Als Compiler benutze ich Borland. Von meinem Prof habe ich eine .ide Datei erhalten, in die zum einen das Hauptprogramm eingebunden ist und noch eine spezielle Bibliothek (eine NAG, numerical algorithm group). Das Hauptprogramm ruft weiterhin noch vier selbsterstellte Subroutinen auf, die ich ebenfalls habe.

      Es geht dabei um die Bestimmung von Optionspreisen in einem recht komplexen Modell, wobei die komplexen mathematischen Berechnungen im wesentlichen in den Subroutinen erledigt werden. Die Änderungen, die ich zunächst machen möchte beziehen sich sich lediglich auf das Hauptprogramm.

      Wie bin vorgegangen? Ich habe zunächst die .ide-File kopiert und umbenannt, und danach ebenfalls das Hauptprogramm umbenannt. Danach habe ich in den Subroutinen überprüft, an welcher Stelle Daten vom Hauptprogramm gelesen werden und wo Daten an das Hauptprogramm zurückgegeben werden und habe dementsprechend alles auf die geänderten Dateinamen angepasst. Anschliessend habe ich zwei Änderungen im geänderten Hauptprogramm vorgenommen (einfache Textausgaben), und zwar einmal vor Aufruf der Subroutinen und einmal danach.

      Das Programm liess sich fehlerfrei compilieren und es wurde eine .exe Datei erstellt, welche ich dann gestartet habe - und zu meiner Überraschung war die Ausgabe des geänderten Programms exakt die gleiche wie des Ausgangsprogramms....

      Die Verknüpfungen habe ich alle geändert, ich denke auch dass ich keine vergessen habe, denn sonst dürfte sich der Compiler mit einer Fehlermeldung melden. Die alten Dateien aus vorangegangenen Versuchen habe gelöscht.

      Den Debugger hatte ich auch schon mal gestartet, aber der hat sich dann nach 10 Minuten aufgehängt.

      Hast Du vielleicht noch eine Idee?

      Gruß Ol

      Comment


      • #4
        Möglicherweise startest Du immer die gleiche, alte Version des Programmes. Kann sein, daß die neu kompilierte Version (EXE-Datei) irgendwo abgespeichert wird, aber nicht dort, wo du sie aufrufst. Kontrolliere mal die Speicherpfade.
        Wenn Du einen Borland-Kompiler mit IDE (integrierter Entwickleroberfläche) hast, ist da sicher auch ein Debugger und eine Option für den Probelauf drin. Versuche mal, das Prog direkt aus der IDE zu starten.
        Man muß wissen, daß Ergebnisse, die in Subroutinen berechnet werden, nicht direkt in die Variablen des Hauptprogrammes übernommen werden. In der Subroutine werden nur Kopieen der Variablen angelegt, die aber vom Hauptprogramm nicht ausgelesen werden. Dazu mußt Du auf die Variablen einen Zeiger setzen, d. h. nicht die Variablen, sondern die Speicheradressen der Variable an die Subroutine übergeben (Stichwort: Variablen, Zeiger, Referenzen), damit diese das Ergebnis in die Speicherstelle der Variable schreibt. Dann ließt das Hauptprogramm aus der Speicherstelle den Wert, den Du im Unterprogramm dort hineingeschrieben hast.

        Viel Glück

        Comment

        Working...
        X