Hallo,
ich muß nächste Woche in der Schule ein Programm beschreiben, es geht dabei um das Spiel Fußballtoto, bei diesem Programmausschnitt geht es um die zufällige Auswahl der Spielbegegnungen, sie werden vorher aus einer Textdatei eingelesen und dann,zusammen gestellt. (Wie?)
Währe nett wenn mir jemand diese paar Zeilen hier erklären könnte, ich hab an die Zeilen die ich nicht verstehe einfach ein Fragezeichen hingemacht:
#include
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Amüsant - eine Art halbausgefülltes Kreuzworträtsel :-) Das der Code ein wenig kryptisch ist, liegt daran das hier irrsinniger Weise HTML Posts verwendet werden und < und > in C und HTML unterschiedliche Syntaxen einleiten. Und jedesmal wenn einer auf diese idiotie aufmerksam macht, heißts "du fliegst gleich raus"
@Aragorn: schau dir in so einem Fall einfach den Quelltext der Seite an. Da steht das Posting noch so wie's hätte aussehen sollen.
Zum Problem:
In der ersten '?' Zeile werden die Vereine als Text ausgelesen und in einem Vector gespeichert. Ein Vector ist die STL implementation einer verketteten Liste
In der zweiten '?' Schleife werden die Vereine zufällig gemischt. Dazu wird ein zufälliger Verein ausgewählt
x= Vereine.begin()+rand()%Vereine.size()
Der gewählte Verein wird dann in die Spieleliste eingefügt
Spiele.push_back(*x)
Das Sternchen ist nötig weil die Daten eingefügt werden sollen nicht nur ein Pointer darauf.Damit Vereine nur einmal eingefügt werden, wird in der letzen Zeile der Verein aus der Liste entfernt.
Die letzte Schleife hätte so aussehen sollen:
for(i=0;i<Spiele.size();i+=2)
std::cout <<"\\n\\nSpiel "<< i/2+1 <<": "<< Spiele[ i ]<<" gegen "<<Spiele[i+1]<<std::endl;
Hier werden die Spielpaarungen tabellarisch ausgegeben. Trivial abgesehen davon das die << Syntax für neulinge etwas ungewohnt ist. Übrigens verrekt das Ding erbarmungslos wenn die Anzahl der Vereine ungerade ist. Ließe sich umgehen indem man die Schleife ändert auf
for(i=0;i<Spiele.size()-1;i+=2)