![]() |
Potenz einer Zahl
Zitat:
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 |
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. |
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 |
Re: Potenz einer Zahl
Das sollte ungefähr so ausssehen:
Delphi-Quellcode:
Grüße
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: Klaus |
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 |
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. |
Re: Potenz einer Zahl
Falls du aber auf Delphi-Code setzt, gibt es Neutral Generals Code auch in rekursiver Form (evtl. schneller):
Delphi-Quellcode:
(Nicht für negative Exponenten!)
function Potenz(Basis, Exponent: Integer): Int64;
begin if Exponent = 0 then Exit else Result := Basis * Potenz(Basis, Exponent - 1); end; |
Re: Potenz einer Zahl
Zitat:
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. |
Re: Potenz einer Zahl
Kleine Korrektur:
Delphi-Quellcode:
if Exponent = 0 then
Result := 1 |
Re: Potenz einer Zahl
Zitat:
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 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz