Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Potenz


lemmak - Mi 28.06.06 15:33
Titel: Potenz
Hallo delphi hat doch bestimmt eine integrierte funktion zum potenz berechenen

also y^x (sprich ypsilon hoch x)

wie kann ich die benutzen


LH_Freak - Mi 28.06.06 15:39

schonmal mit a := x^y; probiert? ^^


Christian S. - Mi 28.06.06 15:40

user profile iconLH_Freak hat folgendes geschrieben:
schonmal mit a := x^y; probiert? ^^
Du anscheinend nicht :zwinker:

Die Funktion power hilft da weiter.


lemmak - Mi 28.06.06 15:52

und wie geht das dann quelltexttechnisch gesehen???


Christian S. - Mi 28.06.06 15:53

Das Wort "power" eingeben, Cursor reinsetzen und F1 drücken. Du wirst Dir viel Zeit ersparen, wenn Du früh anfängst, die Hilfe zu benutzen :-)


Marco D. - Mi 28.06.06 15:53


Delphi-Quelltext
1:
2:
//Ausgabe
showmessage(Power(5,7));


Gausi - Mi 28.06.06 15:58

Da Showmessage einen String als Parameter erwartet, aber power unter Garantie eine Zahl zurückliefert (ich weiß grad nicht ob Integer oder Float, würde aber auf letzteres tippen), geht das natürlich auch in die Hose. Da hilft dann FloatToStr oder IntTostr.

Ist es bei euch eigentlich sooo heiß? :twisted:


lemmak - Mi 28.06.06 16:03

compilerfehler undeclared identifier:'power'


Marco D. - Mi 28.06.06 16:05

user profile iconGausi hat folgendes geschrieben:
Da Showmessage einen String als Parameter erwartet, aber power unter Garantie eine Zahl zurückliefert (ich weiß grad nicht ob Integer oder Float, würde aber auf letzteres tippen), geht das natürlich auch in die Hose. Da hilft dann FloatToStr oder IntTostr.

Ist es bei euch eigentlich sooo heiß? :twisted:

Sorry, mein Fehler! ;)

Muss man nicht die Unit Math einbinden?


Christian S. - Mi 28.06.06 16:05

*seufz* In der Hilfe steht, dass Power in der Unit "Math" steckt. Also muss die noch eingebunden werden.


Jakob Schöttl - Mi 28.06.06 16:41

Ich hab auch mal einen schönen algorithmus dazu gesehen! Für Interessierte...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
function Potenzwert(Basis: Real; Exponent: integer): real;
begin
 try
  //Algorithmus
  result := 1;
  While Exponent > 0 do
    if odd(Exponent) then begin
      result := result * Basis;
      Exponent := Exponent - 1;
    end else begin
      Basis := Basis * Basis;
      Exponent := Exponent div 2;
    end;
 except
  result := 0;
 end;
end;


AXMD - Mi 28.06.06 16:44

user profile iconbokaj hat folgendes geschrieben:
Ich hab auch mal einen schönen algorithmus dazu gesehen! Für Interessierte...

Delphi-Quelltext
1:
function Potenzwert(Basis: Real; Exponent: integer): real;                    


Der funktioniert allerdings nur für natürliche Exponenten. Ganzzahlige oder gar irrationale Exponenten kannst du damit nicht berechnen.

AXMD


Jakob Schöttl - Mi 28.06.06 16:51

ja, das stimmt. Basis und Result waren im orginal auch Extendend, aber wie ich den Algorithmus implementiert hab, wusste ich noch nicht wie man Extendend schreibt...