Gdzie umieścić procedury w C++ Builder?

0

Nie wiem gdzie umieścić kilkanaście procedur. Konkretnie chodzi o takie coś:

Mam button który ma wykonywać 2 procedury. Każda z nich składa się również z kilku procedur. Moje pytanie dotyczy miejsca gdzie mam je wkleić.

W delphi wkleiłem je po stworzeniu buttona i dopisaniu zmiennych między var a begin i działa. Próbowałem tak zrobić w C++ Builder ale nie działa.

1

wklej je po linkowaniu bibliotek i przed funkcją main

1
#include <iostream>

void funkcja(void);

int main(int argc, char **argv)
{
	
	return 0;
}

void funkcja(void)
{
 coś
}

To tylko przykład na zwykłym kodzie, ale chodzi o to samo.
Pamiętaj, że w c++ zamiast procedury jest po prostu funkcja która nic nie zwraca :-)

0

Zrobiłem tak jak piszecie ale wyskakuje coś takiego:

[Linker Error] Unresolved external <funkcja> referenced from C:\USERS\Admin\PULPIT

0

pokaż kod.

0
 //---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "math.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float a, b, c, delta, p, q, x1, x2, x0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
void niekwadrat();
{

Edit4->Text =  "";
Edit5->Text =  "";
Edit6->Text =  "";
Edit7->Text =  "";
Edit8->Text =  "";
}



void liczdelte();
{
 delta =(b*b)-4*a*c;
}

void zer3();
{
x1 =(-b-pow(delta,0.5))/(2*a);
x2 =(-b+pow(delta,0.5))/(2*a);
Edit4->Text =""+FloatToStr (x1)+" i " +FloatToStr (x2)+"";
}


void zer();
{
if (delta<0)
Edit4->Text = "Funkcja nie ma miejsc zerowych.";
if (delta>0)
zer3();
}


void zer2();
{
if (delta==0)
  x0=-b/(2*a);
  Edit4->Text = FloatToStr (x0);
if (delta!=0)
 zer();
}

void dokanonicznej();
{
 p =-b/(2*a);
 q =-delta/(4*a);
}

void kanoniczna();
{
 dokanonicznej();
 if (p>=0)
 if (q>=0)
 Edit5->Text ="y="+FloatToStr (a)+"(x-"+FloatToStr (p)+")^2+"+FloatToStr (q);
 if (q<=0)
 Edit5->Text ="y="+FloatToStr (a)+"(x-"+FloatToStr (p)+")^2"+FloatToStr (q);
 if (p<=0)  if (q>=0)
 Edit5->Text ="y="+FloatToStr (a)+"(x-("+FloatToStr (p)+"))^2+"+FloatToStr (q);
 if (q<=0)
 Edit5->Text ="y="+FloatToStr (a)+"(x-("+FloatToStr (p)+"))^2"+FloatToStr(q);
}

void iloczyn();
{
 if (delta<0)
 Edit6->Text ="Funkcja nie ma postaci iloczynowej.";
 if (delta>0)
 Edit6->Text ="y="+FloatToStr (a)+"(x-("+FloatToStr (x1)+")(x-"+FloatToStr (x2)+")";
}

void doiloczynowej();
{
 if (delta=0)
 Edit6->Text ="y="+FloatToStr (a)+"(x-"+FloatToStr (x0)+")^2";
 if (delta!=0)
 iloczyn();
}

void wieksze();
{
 Edit7->Text ="y min = "+FloatToStr (q)+" dla x= "+FloatToStr (p);
 Edit8->Text ="Funkcja nie ma wartosci najwiekszej.";
}

void mniejsze();
{
 Edit7->Text ="y max = "+FloatToStr (q)+" dla x= "+FloatToStr (p);
 Edit8->Text ="Funkcja nie ma wartosci najmniejszej.";
}

void max();
{
if (a>0)
 wieksze();
if (a<0)
 mniejsze();
}

void ok();
{

 liczdelte();
 zer2();
 kanoniczna();
 doiloczynowej();
 max();
}

void main();
a = StrToFloat (Edit1->Text);
b = StrToFloat (Edit2->Text);
c = StrToFloat (Edit3->Text);
if (a==0) niekwadrat();
if (a!=0) ok();
}
//---------------------------------------------------------------------------
 
0

Musisz podać definicje funkcji w pliku nagłówkowym(.h), a później w pliku cpp umieścić implementację, pamiętając o tym, że są to metody klasy TForm1, tak jak jest to robione tu:

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}

W przeciwnym wypadku, twoje metody nie będą widziały komponentów(Chyba, że prześlesz je metodzie, jako parametry)

1 użytkowników online, w tym zalogowanych: 0, gości: 1