Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Potenz einer Zahl (https://www.delphipraxis.net/107477-potenz-einer-zahl.html)

BullsEye 28. Jan 2008 14:10


Potenz einer Zahl
 
Zitat:

Die Potenz einer Zahl (Basis Exponent) soll berechnen werden. Eingegeben wird
die Basis und der Exponent.
Kann mir da vllt einer Helfen? Das Prob ist, das ich so wirklich GAR KEINE Ahnung hab wie ich das anstellen soll. Soweit ich weiß hat das auch was mit hoch "n" (n= beliebige Zahl) zu tun und ich weiß auch net wie man das Prob lösen könnte. also es gibt ja auf der Tastatur ² und ³ aber wenn ich nun "hoch 7 z.B." hab.

Eine Lösung wäre ja vllt ne extra Editfeld.

Das ganze soll zu dem mit einer FOR Schleife gelöst sein. Das ist eine Hausaufgabe meiner Klassen. Die anderen 6 Aufgaben hab ich sonst auch schon fertig.

Danke nu schonma

sirius 28. Jan 2008 14:13

Re: Potenz einer Zahl
 
Ich nehme an, ihr arvbeitet komplett mit natürlichen Zahlen (wegen der for-Schleife).
Du hast zwei Edit felder.
Und was würdest du jetzt auf dem Papier machen, wenn du 3^6 rechnest? Richtig 3*3*3*3*3*3! Und das packkst du jetzt in eine For-Schleife.

Matze 28. Jan 2008 14:15

Re: Potenz einer Zahl
 
Hallo,

überlege doch mal an einfachen Beispielen, wie das gehen könnte.

Beispiele:

2^3 = 2*2*2
5^6 = 5*5*5*5*5*5

Du musst folglich in einer Schleife, die von 1 bis zur Potenz läuft, die Basis an deine Rückgabevariable multiplizieren.

Grüße

Klaus01 28. Jan 2008 14:15

Re: Potenz einer Zahl
 
Das sollte ungefähr so ausssehen:

Delphi-Quellcode:
var
  i,zahl, exp : Integer;

if exp = 0 then
  zahl := 1
else
  if exp > 1 then
    for i := 2 to exp do
      zahl:= zahl * zahl:
Grüße
Klaus

Neutral General 28. Jan 2008 14:18

Re: Potenz einer Zahl
 
Hi,

:arrow:

function Potenz(Basis, Exponent: Integer): Int64;
var i: Integer;
begin
Result := 1;
for i:= 1 to Exponent do
Result := Result*Basis;
end;


Das wäre die Funktion ohne zu überlegen. Ansonsten würde ich dir empfehlen die ersten 2-3 Posts nochmal zu lesen und selbst drauf zu kommen ;)

Gruß
Neutral General

RavenIV 28. Jan 2008 15:31

Re: Potenz einer Zahl
 
In Delphi gibt es ja die Funktion Power.
Da Du diese aber nicht verwenden darfst/sollst, musst Du es selber bauen.
Die Hinweise meiner Vorredner sind absolut richtig.

Die Funktion Power in Delphi macht auch nix anderes, ist jedoch in Assemblercode hinterlegt.
Somit könnte sie schneller sein, als selbstgeschriebener Delphi-Code.
Vermutlich ist der Assembler-Teil auch stark optimiert.

fLaSh11 28. Jan 2008 15:41

Re: Potenz einer Zahl
 
Falls du aber auf Delphi-Code setzt, gibt es Neutral Generals Code auch in rekursiver Form (evtl. schneller):

Delphi-Quellcode:
function Potenz(Basis, Exponent: Integer): Int64;
begin
  if Exponent = 0 then
    Exit
  else
    Result := Basis * Potenz(Basis, Exponent - 1);
end;
(Nicht für negative Exponenten!)

RavenIV 28. Jan 2008 15:45

Re: Potenz einer Zahl
 
Zitat:

Zitat von fLaSh11
Falls du aber auf Delphi-Code setzt, gibt es Neutral Generals Code auch in rekursiver Form (evtl. schneller):

Rekursion ist hier natürlich schöner.
Aber die Vorgabe ist, dass er es mit einer for-Schleife machen muss.

Ausserdem wird die Rekursion in dem Beispiel langsamer sein, als die Schleifen-Variante.
Vor allem bei grossen Exponenten.

DeddyH 28. Jan 2008 15:45

Re: Potenz einer Zahl
 
Kleine Korrektur:
Delphi-Quellcode:
if Exponent = 0 then
  Result := 1

RavenIV 28. Jan 2008 15:48

Re: Potenz einer Zahl
 
Zitat:

Zitat von DeddyH
Kleine Korrektur:
Delphi-Quellcode:
if Exponent = 0 then
  Result := 1

Da muss noch mehr korrigiert werden.
So würde IMMER 1 rauskommen, weil am Ende der Rekursion der Exponent auf 0 steht.

Aber ich denke, dass dies nur zur Veranschaulichung gedacht war, dass man es auch rekursiv machen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz