• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Windows Programmierung "emulieren"?

plaetzchen

Kaiserapfel
Registriert
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
 

Squart

Pomme Etrangle
Registriert
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
 

plaetzchen

Kaiserapfel
Registriert
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...
 

plaetzchen

Kaiserapfel
Registriert
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?
 

Squart

Pomme Etrangle
Registriert
29.01.04
Beiträge
910
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?
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
}
 

plaetzchen

Kaiserapfel
Registriert
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!
 

plaetzchen

Kaiserapfel
Registriert
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...
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Gibt es sowas wie selfhtml oder selfphp auch für C++?
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.
 

plaetzchen

Kaiserapfel
Registriert
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...
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
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...
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.