Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Pixma

Frischling

  • »Pixma« ist der Autor dieses Themas

Beiträge: 35

Wohnort: Mainz

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

1

21.09.2008, 10:54

[Erledigt] Übungsaufgabe 2.2.8 Nr.1

Hallo,
ich versuche gerade ein wenig das rechnen mit Vectoren zu festigen.
Jedoch läuft mein Programm leider nicht.
Das Programm gibt aus, das die Variablen nicht deklariert sind.
Jedoch sollen die mit tbVector3Random() bzw tbFloatRandom deklariert werden.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
#include <TriBase.h>
#include <iostream>
using namespace std;

int main()
{
    a = tbVector3Random();
    f = tbFloatRandom(0.0f, 10.0f);
    a *= f;
    tbWriteVector3ToLog(a);
    
 }


Und hier ist die Fehlerausgabe:

Zitat

Kompilieren...
the_first.cpp
c:\projekte\übung_1.4.7\übung_1.4.7\the_first.cpp(9) : error C2065: 'a': nichtdeklarierter Bezeichner
c:\projekte\übung_1.4.7\übung_1.4.7\the_first.cpp(10) : error C2065: 'f': nichtdeklarierter Bezeichner
c:\projekte\übung_1.4.7\übung_1.4.7\the_first.cpp(11) : error C2065: 'a': nichtdeklarierter Bezeichner
c:\projekte\übung_1.4.7\übung_1.4.7\the_first.cpp(11) : error C2065: 'f': nichtdeklarierter Bezeichner
c:\projekte\übung_1.4.7\übung_1.4.7\the_first.cpp(12) : error C2065: 'a': nichtdeklarierter Bezeichner
Das Buildprotokoll wurde unter "file://c:\Projekte\Übung_1.4.7\Übung_1.4.7\Debug\BuildLog.htm" gespeichert.
Übung_1.4.7 - 5 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

2

21.09.2008, 11:38

Nein, deine Variablen sind noch nicht deklariert.

Eine Deklaration sieht z.B. so aus

C-/C++-Quelltext

1
TbVector3 a = tbVector3Random();

mfg Philipp

3

21.09.2008, 12:03

Genau, sie sind nicht in der Engine deklariert!

Pixma

Frischling

  • »Pixma« ist der Autor dieses Themas

Beiträge: 35

Wohnort: Mainz

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

4

21.09.2008, 12:27

So habs nun deklariert. Nun kommt nurnoch ein Fehler :)
Aber warum erscheint dieser einer Fehler, warum konvertiert der das den net in Float, das verstehe ich leider noch net so ganz

#include <TriBase.h>
#include <iostream>
using namespace std;
int main()
{
float a = tbVector3Random();
float f = tbFloatRandom(0.0f, 10.0f);
a *= f;
}
---------------------------------------------------------------------------
c:\projekte\übung1.6\übung1.6\learn.cpp(9) : error C2440: 'Initialisierung': 'tbVector3' kann nicht in 'float' konvertiert werden
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
Das Buildprotokoll wurde unter "file://c:\Projekte\Übung1.6\Übung1.6\Debug\BuildLog.htm" gespeichert.
Übung1.6 - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

5

21.09.2008, 12:33

Weil tbVector3 aus drei floats besteht?

C-/C++-Quelltext

1
2
tbVector3 a = tbVector3Random(); 
...


sollte funktionieren.
fka tm

Pixma

Frischling

  • »Pixma« ist der Autor dieses Themas

Beiträge: 35

Wohnort: Mainz

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

21.09.2008, 12:35

k, thx es funktioniert

Pixma

Frischling

  • »Pixma« ist der Autor dieses Themas

Beiträge: 35

Wohnort: Mainz

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

7

21.09.2008, 13:26

So also ich schreibe hier mal meine Lösung, glaube se stimmt :)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <TriBase.h>
#include <iostream>
using namespace std;



int main()
{   
    if(tbInit())
    {
        tbWriteToLog("error on initialising of the function tbInit");
    }
    else
    {
    tbVector3 Result = 0.0;
    tbWriteToLog("funzt");
    for (int i =0; i<5000; i++)
    {
    tbVector3 a = tbVector3Random();
    float f = tbFloatRandom(0.0f, 10.0f);
    a *= f;
    Result=Result+a;
    cout <<*Result<<endl;

    }
    Result=Result / 5000;
    tbWriteVector3ToLog(Result);
    
    system("PAUSE");
    }

 }


Zitat

INFO: TriBase-Engine wird initialisiert... (tribase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (tribase.cpp, Zeile 104, Funktion tbInit)
funzt
3D-Vektor: x = -0.212, y = -0.262, z = -0.272, Länge = 0.433
WARNUNG: tbExit wurde nicht aufgerufen! Wird automatisch erledigt... (tribase.cpp, Zeile 48, Funktion DllMain)
INFO: TriBase-Engine wird heruntergefahren... (tribase.cpp, Zeile 113, Funktion tbExit)
INFO: Alle Speicherbereiche freigegeben! (tbmemory.cpp, Zeile 116, Funktion tbMemExit)
INFO: Herunterfahren abgeschlossen! (tribase.cpp, Zeile 149, Funktion tbExit)

ACHTUNG DAS ERGEBNIS KANN ABWEICHEN, WEIL ES ZUFALLSZAHLEN SIND!!!

Werbeanzeige