C quelltext in C++ ändern



  • Hey
    Ich habe mir im Internet einen Quelltext besorgt.
    Es wurde allerdings als C geschrieben und nicht als C++
    Ich brauche diesen Quelltext als C++ datei.
    Was muss ich alles ändern damit ein C++ Compiler seinen Job erledigen kann ? 🙂

    Ich hoffe ich mache es mit dem Copy and past Quelltext hier nicht falsch 😃
    Danke für alle die mir Helfen wollen 🙂

    EDIT: Sry falls ich hier falsch bin.Ich weiß nicht im welchem Forum ich sowas Fragen kann :o

    #include <stdio.h>
    #include <iostream.h>
    #include <conio.h>
    
    // modell räuber-beute-beziehungen
    
    // erweitertes Lotka-Volterra-Modell
    
    // Parameter des erweiterten räuber-beute-modells
    
    float RDiff = 0.0  ; 	// differenz räuber in DeltaT
    float BDiff = 0.0  ; 	// differenz beute in DeltaT
    float R = 	  5.0  ;    // anzahl räuber
    float B = 	 23.0  ;    // anzahl beute
    float KR = 	 50.0  ;	// umwelttragfähigkeit räuber
    float KB =	250.0  ;	// umwelttragfähigkeit beute
    float d = 	  0.01 ;	// sterberate räuber, nicht abhängig
    float s = 	  0.05 ;	// sterberate beute, abhängig von anzahl R
    float g = 	  0.01 ;	// wachstumsrate räuber
    float f = 	  0.15  ;	// vermehrungsrate beute
    
    // laufvariablen
    
    int TMAX =	 80 ;
    int AktT = 	  0 ;
    int DeltaT =  1 ;
    int j = 	  0 ;
    
    // variablen ausgabe
    
    char diagramm [30] ;
    
    //simulation erweitertes lotka-volterra-modell
    
    void main ()
    {
    
    	AktT = DeltaT ;
    
    	while ( TMAX - AktT   > 0 )
    	{
    
    			// initialisiere earray
    
    			for ( j = 0 ; j < 30 ; j++ )
    			{
    				diagramm [j] = ' ' ;
    			}
    
    			// veränderung der räuber-population
    
    			BDiff = f * B - s * B * R - ((B * B) / KB) ;
    			B = B + BDiff ;
    
    			// veränderung der beute-population
    
    			RDiff = g * B * R - d * R - ((R * R) / KR) ;
    			R = R + RDiff ;
    
    			// ausgabe
    
    			diagramm [(int) R] = 'R' ;
    			diagramm [(int) B] = 'B' ;
    
    			for ( j = 0 ; j < 25 ; j++ )
    			{
    				gotoxy ( AktT, 23-j) ;
    				cout << diagramm [j] ;
    			}
    
    			getch ( ) ;
    
    			// nächste Periode
    
    			AktT  = AktT + DeltaT ;
    
    	}
    
    	getch () ;
    
    }
    


  • Das ist schon C++. Siehe Zeile 71.



  • Da es bereits C++ ist, wuerde ich dir empfehlen jeden fehler nach und nach zu beheben den dir dein compiler meldet. Da ist durchaus jede menge murks drin.


  • Mod

    mgaeckler schrieb:

    Das ist schon C++. Siehe Zeile 71.

    Es ist C++ nach Prä-Standard-Konventionen. Also vermutlich über 20 Jahre alt. Ein heutiger Compiler mit strenger Standardauslegung wird das nicht mehr schlucken.

    Der Quelltext ist aber auch sonst nicht besonders gut. Es ist nicht zu empfehlen darauf aufzubauen. Man wird nicht besser im Programmieren, indem man schlechten Code abschreibt. Selbst bei gutem Code wäre dies schon fragwürdig. Die wahre Empfehlung wäre, den Code überhaupt nicht zu übernehmen. Die 40 Zeilen hat man in wenigen Minuten in viel besserem Stil selber programmiert.



  • SeppJ schrieb:

    mgaeckler schrieb:

    Das ist schon C++. Siehe Zeile 71.

    Es ist C++ nach Prä-Standard-Konventionen. Also vermutlich über 20 Jahre alt. Ein heutiger Compiler mit strenger Standardauslegung wird das nicht mehr schlucken.

    Der Quelltext ist aber auch sonst nicht besonders gut. Es ist nicht zu empfehlen darauf aufzubauen. Man wird nicht besser im Programmieren, indem man schlechten Code abschreibt. Selbst bei gutem Code wäre dies schon fragwürdig. Die wahre Empfehlung wäre, den Code überhaupt nicht zu übernehmen. Die 40 Zeilen hat man in wenigen Minuten in viel besserem Stil selber programmiert.

    Ich weiß nicht ob diese Bitte zu viel ist.Ich würde dich gerne Fragen,ob du mir eine fertige Vorlage schreiben/coden könntest.Es soll halt wirklich simpel sein und einfach nur ohne Pausen durchläuft
    Es würde mir wirklich sehr sehr helfen. :c


  • Mod

    Für mich ist diese Bitte viel zu viel. Es ist aus diesem und deinen anderen Threads recht offensichtlich, dass dies eine größere Projektarbeit oder Hausaufgabe ist, für die du mehrere Wochen Zeit hattest. Anstatt irgendetwas dafür zu tun (Es wäre in der Zeit locker möglich gewesen, C++ komplett von 0 auf zu lernen und die Aufgabe zu lösen), hast du stattdessen gar nichts gemacht. Und jetzt kommt die große Panik kurz vor Abgabetermin.

    So sieht das jedenfalls von unserer Seite her aus.



  • SeppJ schrieb:

    Für mich ist diese Bitte viel zu viel. Es ist aus diesem und deinen anderen Threads recht offensichtlich, dass dies eine größere Projektarbeit oder Hausaufgabe ist, für die du mehrere Wochen Zeit hattest. Anstatt irgendetwas dafür zu tun (Es wäre in der Zeit locker möglich gewesen, C++ komplett von 0 auf zu lernen und die Aufgabe zu lösen), hast du stattdessen gar nichts gemacht. Und jetzt kommt die große Panik kurz vor Abgabetermin.

    So sieht das jedenfalls von unserer Seite her aus.

    Es stimmt fast alles halbwegs.Es ist allerdings weder eine Projektarbeit oder eine Hausaufgabe.Es ist eher eine kleine Private Aufgabe,die sagen wir mal einen kleine Bonus einbringen würde falls ich es vorlegen könnte.Es passiert allerdings auch nix,wenn ich nix vorzeigen würde.
    Ich wollte halt nur mal Fragen,ob es diese Bitte zu viel des guten wäre,was ich jetzt auch weiß.Ich verstehe es aber auch,dass diese Frage wohl too much war 🙂

    PS: Danke für die Information von deiner Antort zu "mgaeckler" ^^


  • Mod

    Wenn du Eigeninitiative zeigen würdest, würde man dir auch konkret helfen. Aber Code, den du irgendwo aus dem Internet kopiert hast, zum Laufen zu bringen, damit du ihn als deinen eigenen ausgeben kannst, ist halt wirklich nichts, bei dem dir jemand helfen wird.



  • SeppJ schrieb:

    mgaeckler schrieb:

    Das ist schon C++. Siehe Zeile 71.

    Es ist C++ nach Prä-Standard-Konventionen. Also vermutlich über 20 Jahre alt. Ein heutiger Compiler mit strenger Standardauslegung wird das nicht mehr schlucken.

    Was würde denn Deiner Meinung nach ein aktueller C++ Compiler ablehnen? Abgesehen von dosenspezifischen Zeugs finde ich jetzt eigentlich nichts.

    SeppJ schrieb:

    Der Quelltext ist aber auch sonst nicht besonders gut. Es ist nicht zu empfehlen darauf aufzubauen. Man wird nicht besser im Programmieren, indem man schlechten Code abschreibt. Selbst bei gutem Code wäre dies schon fragwürdig. Die wahre Empfehlung wäre, den Code überhaupt nicht zu übernehmen. Die 40 Zeilen hat man in wenigen Minuten in viel besserem Stil selber programmiert.

    Da gebe ich Dir vollkommen recht.

    VG Martin


  • Mod

    mgaeckler schrieb:

    SeppJ schrieb:

    mgaeckler schrieb:

    Das ist schon C++. Siehe Zeile 71.

    Es ist C++ nach Prä-Standard-Konventionen. Also vermutlich über 20 Jahre alt. Ein heutiger Compiler mit strenger Standardauslegung wird das nicht mehr schlucken.

    Was würde denn Deiner Meinung nach ein aktueller C++ Compiler ablehnen? Abgesehen von dosenspezifischen Zeugs finde ich jetzt eigentlich nichts.

    Nicht-Standard Header. Fehlender Namespace für die Standardbibliothek. Falsche Signatur von main.

    Abseits des Sprachstandards ist conio.h etwas, das man auf modernen Rechnern nicht mehr findet.



  • SeppJ schrieb:

    mgaeckler schrieb:

    SeppJ schrieb:

    mgaeckler schrieb:

    Das ist schon C++. Siehe Zeile 71.

    Es ist C++ nach Prä-Standard-Konventionen. Also vermutlich über 20 Jahre alt. Ein heutiger Compiler mit strenger Standardauslegung wird das nicht mehr schlucken.

    Was würde denn Deiner Meinung nach ein aktueller C++ Compiler ablehnen? Abgesehen von dosenspezifischen Zeugs finde ich jetzt eigentlich nichts.

    Nicht-Standard Header. Fehlender Namespace für die Standardbibliothek. Falsche Signatur von main.

    Abseits des Sprachstandards ist conio.h etwas, das man auf modernen Rechnern nicht mehr findet.

    void main() habe ich übersehen. Das ist ja schon in C falsch.
    Ich dachte <iostream.h> ist vom Standard gedeckt. Auch daß dann der namespace weggelassen werden kann. (Ah ich lese gerade: Das gilt nur für die alten Standard C-includes).
    conio.h und Konsorten habe ich ja schon unter "dosenspezifischen Zeugs" subsumiert. 😃

    Danke für den Hinweis.

    VG


Anmelden zum Antworten