AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Potenz einer Zahl

Ein Thema von BullsEye · begonnen am 28. Jan 2008 · letzter Beitrag vom 28. Jun 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#1

Potenz einer Zahl

  Alt 28. Jan 2008, 15:10
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
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 15:13
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 15:15
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
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 15:15
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 15:18
Hi,



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
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 16:31
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#7

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 16:41
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!)
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 16:45
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 16:45
Kleine Korrektur:
Delphi-Quellcode:
if Exponent = 0 then
  Result := 1
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Potenz einer Zahl

  Alt 28. Jan 2008, 16:48
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.
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