Du bist nicht angemeldet.

Werbeanzeige

taiBsu

unregistriert

1

02.04.2012, 19:06

Frage zu Übungsaufgabe 2.2.8: 1.

Hallo,
in Aufgabe 1 in Kapitel 2.2.8 sollen 5000 Zufallsvektoren mit zufälliger Länge zwischen 0 und 10 mit einander addiert werden und die Summe durch 5000 dividiert werden.
Ich habe jetzt etwas geschrieben, was meiner Meinung nach Sinn macht (ist in der 3D-Spieleprogrammierung.sln drin):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
// Übung 2.2.8: 5000 Zufallsvektoren mit Werten//              zwischen 1 und 10 addieren und//                durch 5000 dividieren.
#include <TriBase.h>
int main() {
    tbVector3 vektoren[4999];
    tbVector3 summe;
    for (int i=1; i<5000; i++) {
        vektoren[i] = tbVector3Random();        summe += vektoren[i];   }
    summe /= 5000;  tbWriteToLog ("Das Ergebnis Lautet: %f", summe);
}



Nun bekomme ich aber folgenden Fehler:

C-/C++-Quelltext

1
1>PreLinkEvent:1>  Description: Kopiere TriBase-DLL in das Programmverzeichnis...1>  Versuche eine harte Verknuepfung zu erzeugen ...1>  Hardlink created for C:\Users\taiBsu\Desktop\3DSP\3D-Spieleprogrammierung-Update\Eigene Projekte\Übungsaufgaben\TriBase.dll <<===>> C:\Users\taiBsu\Desktop\3DSP\3D-Spieleprogrammierung-Update\TriBase\Bin\TriBase.dll1>  OK.1>MSVCRT.lib(crtexew.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_WinMain@16".1>C:\Users\taiBsu\Desktop\3DSP\3D-Spieleprogrammierung-Update\Eigene Projekte\Übungsaufgaben\Übungsaufgaben.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.1>1>Fehler beim Erstellen1>



Kann mir jemand sagen, was ich da falsch gemacht habe?
LG taiBsu

ProAmateur

Alter Hase

Beiträge: 435

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

2

02.04.2012, 20:28

Guckk Doch mal was die Log Datei sagt...
Ansonsten kopier Doch die Dll in den Ordner
Sagt der Compiler doch
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

taiBsu

unregistriert

3

02.04.2012, 20:33

Hab mich mal wieder n bisschen blöd angestellt...
1. Das Programm sollte in einer WinMain-Funktion geschrieben werden.
2. sollte natürlich die Engine auch initialisiert und geleaved werden...
3. paar kleinere Fehlerchen waren auch noch dabei...

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

02.04.2012, 21:08

Wenn dir noch solch riesigen Probleme mit normalen Arrays hast solltest du dir ernsthaft überlegen ob du schon bereit bist mit TriBase zu arbeiten. Das sind Fehler, die man schon nach 2 Wochen nicht mehr machen dürfte... Grundlagen!

Mal abgesehen von den Fehlern. Wofür zum Teufel brauchst du das Array? xD
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

birdfreeyahoo

Alter Hase

Beiträge: 766

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

5

03.04.2012, 02:19

Würde es nicht auch so gehen, ohne das Array (bei 5000 Vektoren wird das schon groß)?

C-/C++-Quelltext

1
2
tbVector3 summe;
for (int i=1; i<5000; i++) {summe += tbVector3Random();   }

Sp3iky

Treue Seele

Beiträge: 235

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

6

03.04.2012, 09:33

Dann würde ich aber zumindest die Summe noch mit dem Null-Vektor initialisieren, wenn du gleich was drauf addieren willst ;) Ansonsten würde es das wohl auch tun, wenn er die einzelnen Vektoren nicht braucht.

Es sei übrigens angemerkt, dass das Array nur 4999 Elemente enthält und auch die Schleife nur 4999 mal aufgerufen wird, da das erste Element (vectoren[0]) nicht genutzt wird. Zusätzlich greifst du beim letzten Durchlauf auf Speicher zu, der gar nicht mehr zum Array gehört.

Die Anzahl der Schleifenaufrufe gilt auch für das Beispiel von birdfreeyahoo.

Aber ich vermute, das war schon bei "3. paar kleinere Fehlerchen waren auch noch dabei..." mit drin ;)

FSA

Community-Fossil

  • Private Nachricht senden

7

03.04.2012, 10:45

Zitat

Guckk Doch mal was die Log Datei sagt...
Ansonsten kopier Doch die Dll in den Ordner
Sagt der Compiler doch

:crazy:

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veralteten strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

birdfreeyahoo

Alter Hase

Beiträge: 766

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

8

05.04.2012, 16:08

Hab die Schleife einfach kopiert ohne drauf zu achten...

taiBsu

unregistriert

9

07.04.2012, 16:12

Wenn dir noch solch riesigen Probleme mit normalen Arrays hast solltest du dir ernsthaft überlegen ob du schon bereit bist mit TriBase zu arbeiten. Das sind Fehler, die man schon nach 2 Wochen nicht mehr machen dürfte... Grundlagen!

Mal abgesehen von den Fehlern. Wofür zum Teufel brauchst du das Array? xD
Ich hab keine Probleme mit Arrays, wo hab ich das behauptet? Um was für Fehler gehts dir denn? Dass ich n paar Zahlen falsch eingesetzt habe weil ich nich richtig nachgedacht habe?
Es sei übrigens angemerkt, dass das Array nur 4999 Elemente enthält und auch die Schleife nur 4999 mal aufgerufen wird, da das erste Element (vectoren[0]) nicht genutzt wird. Zusätzlich greifst du beim letzten Durchlauf auf Speicher zu, der gar nicht mehr zum Array gehört.
Aber ich vermute, das war schon bei "3. paar kleinere Fehlerchen waren auch noch dabei..." mit drin
Exakt XD

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

07.04.2012, 16:26

Ich hab keine Probleme mit Arrays, wo hab ich das behauptet? Um was für Fehler gehts dir denn? Dass ich n paar Zahlen falsch eingesetzt habe weil ich nich richtig nachgedacht habe?

"nicht richtig nachgedacht"? Du hast falsch nachgedacht. Wie schon gesagt, solche Fehler passieren vielleicht in den ersten zwei Wochen, in denen man übt. Danach macht man sowas automatisch richtig. Aber mach ruhig mit der TriBase weiter :thumbsup:
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige