Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 24-12-2003, 15:43
langejongen
Avatar van langejongen
langejongen is offline
Ik ben voor school in C++ Builder een programma aan het maken.Er moet een sinus in de tijd getekend worden. Ik heb hieronder een stuk van het programma: Ik heb dus de .h-file en de C-file al gemaakt, alleen moet ik nog de .C-file maken. Ik ben een beginner in C++, dus heb geen idee hoe ik dat moet doen. Ik heb alleen het tablad Sinus.cpp en Sinus.h.

.h-file:

#ifndef SinusH
#define SinusH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TTimer *Timer1;
void __fastcall Timer1Timer(TObject *Sender);
private: // User declarations
public: // User declarations
{ int X;
int Y;
}
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

c-file:

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "Sinus.h"
#include "Math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

# define aantalperioden 4
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ // Dit is de intialisatie, het laten beginnen van X op 1 en Y op 30
{ X=1;
Y=30;
}
}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
{ float H;
int pixelperperiode=Form1->Width/aantalperioden;

H=2*M_PI*(float)X/(float)pixelperperiode;
Canvas->MoveTo(X,Y-floor(sin(H)*30+0.5));
X++;
H=2*M_PI*(float)X/(float)pixelperperiode;
Canvas->MoveTo(X,Y-floor(sin(H)*30+0.5));
X++;
if (X>=Form1->Width)X=1;

Dit zijn de errors die ik krijg als ik het programma run:

[C++ Error] Sinus.h(19): E2040 Declaration terminated incorrectly
[C++ Error] Sinus.cpp(17): E2316 '_fastcall TForm1::{(TComponent *)' is not a member of 'TForm1'
[C++ Error] Sinus.cpp(31): E2451 Undefined symbol 'X'
[C++ Error] Sinus.cpp(32): E2451 Undefined symbol 'Y'
[C++ Warning] Sinus.cpp(39): W8004 'pixelperperiode' is assigned a value that is never used

Hopelijk kunnen jullie mij helpen.
__________________
De meeste mensen lopen in en uit je leven, maar alleen vrienden laten voetstappen achter in je hart.
Met citaat reageren
Advertentie
Oud 24-12-2003, 15:44
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
plaats ze eens tussen code tags of paste het op http://www.rafb.net/paste/
Ik zal er effe naar kijken
Met citaat reageren
Oud 24-12-2003, 17:55
Verwijderd
sinus.cpp

Code:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "sinus.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

#define aantalperioden 4

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  X=1;
  Y=30;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  float H;
  int pixelperperiode=Form1->Width/aantalperioden;

  H=2*M_PI*(float)X/(float)pixelperperiode;
  Canvas->MoveTo(X,Y-floor(sin(H)*30+0.5));
  X++;
  H=2*M_PI*(float)X/(float)pixelperperiode;
  Canvas->LineTo(X,Y-floor(sin(H)*30+0.5));
  X++;
  if (X>=Form1->Width)X=1;
}
//---------------------------------------------------------------------------
sinus.h

Code:
//---------------------------------------------------------------------------
#ifndef sinusH
#define sinusH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
  TTimer *Timer1;
  void __fastcall Timer1Timer(TObject *Sender);
private:	// User declarations
public:		// User declarations
  int X;
  int Y;
  __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
En zet de timer-interval op 250, werkt prima

(maak een leeg projectje aan, met de unit sinus.cpp.. de header maakt ie autmatisch aan, en noem het project zelf anders dan 'sinus'.. zet een timer op je form, kopieer dan de inhoud).
Met citaat reageren
Oud 24-12-2003, 18:21
langejongen
Avatar van langejongen
langejongen is offline
Ik krijg een output writing error. En wat heb je allemaal veranderd in het programma?????
__________________
De meeste mensen lopen in en uit je leven, maar alleen vrienden laten voetstappen achter in je hart.
Met citaat reageren
Oud 24-12-2003, 18:37
Verwijderd
1. bij de TForm1 class mogen de members niet tussen haakjes
2. compiler defines worden door de pre-processor alleen herkend als ze als '#define' worden geschreven, dus zonder spatie
3. je timer-functie opent met 2 haakjes en wordt niet afgesloten
4. en ik heb van je 2e MoveTo een LineTo gemaakt, anders wordt helemaal niks getekend
Met citaat reageren
Oud 24-12-2003, 19:10
langejongen
Avatar van langejongen
langejongen is offline
Zal allemaal wel.;-)
__________________
De meeste mensen lopen in en uit je leven, maar alleen vrienden laten voetstappen achter in je hart.
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 13:45.