1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Windows Programmierung "emulieren"?

Dieses Thema im Forum "OS X-Developer" wurde erstellt von plaetzchen, 19.09.06.

  1. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Hallo!

    Folgendes Problem:

    Ich bin Azubi zum FISi auf Macs und lerne in der Schule Programmierung oder was die dafür halten, egal, unser Lehrer meint uns mit Turbo C++ zu quälen, ein Windows Compiler der etwas älteren Bauart. Ich nutze bis jetzt allerdings mein MacBook mit XCode, allein schon aus idiologischen Gründen.
    Wir programmieren im Moment noch sehr einfache Sachen und ich komm auch im Moment noch ganz gut dahinter wie der Code "umzuschreiben" ist damit X Code in schluckt.
    Heute sollten wir ein Programm schreiben das Zufallszahlen generiert. Dafür bekamen wir:

    randomize();
    x = rand() %10;

    Ich tippe also das ganze in XCode, aber randomize; kennt der nicht. Ich hab auch die stdlib eingebunden, aber ich bekomme immer nur eine Zahl raus und keine zufällige zwischen 1 - 10 sondern immer 7, mal so zum Beispiel.

    Kann ich mir Turbo C++ emulieren oder die Bibliotheken und so in XCode nutzen um nicht "hinterher zu hinken" oder gibt es eine Datenbank in der ich solche Unterschiede rausbekomme oder weiß jemand wie man randomize(); benutzt?

    Danke

    Philip
     
  2. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Hallo,

    ist Turbo-C++ ein C++ Compiler? Blöde frage, aber bei dem Wort "Turbo" bin ich mir nicht sicher.

    Um dein Problem zu beantworten:
    srand(time(NULL)); ist ein Ersatz für randomize();
    Dadurch, dass du srand mit der aktuellen Uhrzeit (time(NULL)) aufrufst gehst du sicher, dass dein Programm für seinen Aufruf einen einmaligen(?) Startwert für die Zufallsberechnung hat.

    Eine Datenbank kenne ich nicht direkt, aber wenn du im Terminal beispielsweise mittels apropos random suchst, findest du schnell passende Funktionen und kannst dir deren Dokumentation mittels (beispielsweise) man srand anschauen.

    Viele Grüße
    Squart
     
  3. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Ah danke dafür...

    Ja Turbo C++ ist ein C++ Compiler, allerdings ist der so alt, das Windows XP ihn als DOS Programm ausführt und emuliert...
     
  4. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Nach ein wenig testen:

    Ist das dann ehcter zu Fall?
    Wenn ich:
    #include <iostream.h>
    #include <stdlib.h>

    int main(){
    float zahl, rat = 0;
    srand(time(NULL));
    zahl = rand() %10;
    cout<<zahl;
    }

    eingebe kommt des Öfteren eine Zahl hintereinander oder so. Wie kann das sein?
     
  5. Squart

    Squart Pomme Etrangle

    Dabei seit:
    29.01.04
    Beiträge:
    910
    Hm, ich bin mir nicht sicher, was du mit "eine Zahl hintereinander" meinst, allerdings ist der Rückgabewert von rand() laut Dokumentation vom Typ int, nicht float.
    Um den Code zu verbessern:
    Code:
    #include <iostream> 
    // Wir sind in C++, wenn ich das richtig
    // verstanden habe soll man von C++
    // Libraries (?) die .h-Endung weglassen und
    // ein namespace einfügen...
    #include <stdlib.h>
    
    using namespace std;
    
    int main(int argc, char *argv[]) { 
    	// Die Argumente von main() sollte man sich,
    	// wenn auch noch nicht verwendet, doch schon
    	// angewöhnen.
    	
    	int zahl;
    	// rat = 0 wurde nicht gebraucht
    	// zahl muss int sein, da dies der Rückgabewert
    	// von rand() ist.
    	
    	srand(time(NULL));
    	zahl = rand() %10;
    	cout << zahl <<endl;
    	// Neue Zeile macht die Ausgabe übersichtlicher
    	
    	return 0;
    	// Nicht vergessen, dass main() ein int zurückgeben 
    	// muss
    }
     
  6. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Danke!

    Ich wusste doch, dass das was unser Lehrer uns beibringt veraltet ist. Komme aus der php Gegend umd musste ihm erst mal glauben... Danke für eure Hilfe!
     
  7. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Hi there.

    Gibt es sowas wie selfhtml oder selfphp auch für C++?
    Wäre ja sehr praktisch...
     
  8. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Es gibt diverse C++ Tutorials im Netz, allerdings setzen diese eigentlich alle C++ 1998 voraus. Der uralt Compiler, den ihr verwendet, ist aber definitiv kein C++ 1998 Compiler (wird wohl eher C++ 3.0 oder C++ 2.0 sein), so daß viele Dinge, die mittlerweile in C++ üblich sind, nicht möglich sind.

    Aus diesem Grund wird Dir ein neues Tutorial nichts nützen. Du brauchst schon die Uralt Dokumentation des Turbo C++ Compilers. Also als erstens besrog Dir die Versionnummer des Compilers, danach kann man Dir Tips geben.
     
  9. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    Naja ich dache eigentlich mehr für XTools...
    Der Uralt Compiler ist mir sch... egal, denn bei der Prüfung wird nicht eine Sprache abgefragt sonder wege usw. Also wie setze ich welche Schleife ein und so...
     
  10. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Der Programmierstil zwischen altem C++ und neuem C++ hat sich ziemlich gewandelt. Es nützt Dir nicht viel, wenn Du saubere ISO C++ 1998 Programme schreibst, Deine Lehrer aber denen nicht folgen können, weil sie etwa die Standard Library, die erst mit ISO C++ Einzug hielt, kennen.

    Zum Lernen von ISO C++ ist das Buch "Accelerated C++; Koenig, Moo; Addison-Wesley" angeraten. Es gibt eine ganze Reihe von guten Büchern zu C++ bei Addison-Wesley unter anderem "C++ Primer; Lippman, LaJoie, Moo", "The C++ Programming Language (Special Edition); Stroustrup". Einige Tutorials gibt es im Netz, suche mal via groups.google.de was sich da findet.
     

Diese Seite empfehlen