x Potenz n

_Dome_

Mitglied
Ich möchte gerne die n-te Potenz von x ausrechnen und dies dem Wert z zuweisen.

Der Benutzer gibt in 2 Edit-Fenster die zwei Zahlen ein und drückt auf einen Button um den Rechenprozess zustarten.


Hier mal der Code:

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y,z;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
x=StrToInt(Edit1->Text);
y=StrToInt(Edit2->Text);
z=IntPower(x,y);
Edit3->Text=z;
}
//---------------------------------------------------------------------------

Ich bekomme da aber folgende Fehlermeldung:
[C++ Fehler] Unit1.cpp(22): E2268 Aufruf der undefinierten Funktion 'IntPower'

kann mir jmd weiterhelfen?
 

Turri

Erfahrenes Mitglied
Hallo,

include mal nich #include <math>
sondern #include <math.h>

Im Link nochn paar Anregungen ;)
Link

MfG Turri
 

_Dome_

Mitglied
Jetzt weiß ich wie ich die IntPower richtig verwende. Danke.

Hab nun auch #include <math.h> eingebunden, bekomme aber immer noch die gleiche Fehlermeldung.

Hier nochmal den Code und Fehlermeldung:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <Math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y,z;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Extended Number, Base;
int Exp;

Base = StrToFloat(Edit1->Text);
Exp = StrToInt(Edit2->Text);
Number = IntPower(Base, Exp);

Edit3->Text = FloatToStr(Number);
}
//---------------------------------------------------------------------------

[C++ Fehler] Unit1.cpp(25): E2268 Aufruf der undefinierten Funktion 'IntPower'

Müßte doch nun so gehen oder mach ich wieder irgendwas falsch?
 

_Dome_

Mitglied
Nein des geht auch nicht. Ich hatte es zuerst klein und hab es dann mal groß probiert ;).

Warum geht das nicht?


Alternativ könnte man sich ja ne funktion schreiben, die die n-te Potenz ausrechnet, aber ich weiß nicht genau wie. Es muß doch mit dieser PowInt - Funktion gehen...


Trotzdem nochmal danke und schonmal danke im voraus.


Gruß
_Dome_
 
Zuletzt bearbeitet:

Turri

Erfahrenes Mitglied
Hallo,

welchen Borland Builder nutzt du denn?
Vielleicht ist in einer älteren Borland Version die IntPower() Funktion
noch nicht in der VCL drinne. (die liegt scheinbar nicht in der math.h ;) )

Du kannst ja nochma auf den link schaun,
und die pow() Funktion testen und nicht die IntPower().
Aber mit der "math.h" versuchen :p

MfG Turri
 

_Dome_

Mitglied
Ich benutze den die 5.0 Version.

Ich werde es heute Nachmitag mal mit der pow() versuchen, aber liegt die pow()-Funktion nicht in der gleichen Unit wie die IntPow, dann hätte ich ja des gleiche Problem oder?


Gruß
_Dome_
 

_Dome_

Mitglied
Es klappt!

Danke Danke Danke es geht mit pow();

Hier der verwendete Code:

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <Math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y,z;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
const double Source = StrToInt(Edit1->Text);
const double Exp = StrToInt(Edit2->Text);

double Result = pow(Source, Exp);
Edit3->Text = Result;
}
//---------------------------------------------------------------------------

Nochmal Danke ;)

Gruß
_Dome_