![]() |
Rechnen + Quadratzahlen
Habe trotz SuFu nicht herausgefunden, wie ich eine Integer mit einer Quadratzahl multiplizieren kann.
ich möchte z.B. die Zahl "2" mit 2 hoch 10 malnehmen. Aus anderen Sprachen kenne ich das so: 2*2^10 Hier gelingt mir das nicht so. Habe durch sorgfältige Suche den Befehl sqr gefunde, kann aber nichts damit anfangen. Kann mir jemand etwas helfen?? P.S. Falls jemand weiß, wo ich ein/mehrere gute Anfänger-Tutoriale zu Delphi finden kann, darf sich gerne bei mir melden |
Re: Rechnen + Quadratzahlen
Hi,
Anfänger Tutorials gibt's auf ![]() Der Befehl für "Hoch" lautet:
Delphi-Quellcode:
Math.Power(Basis, Exponent);
|
Re: Rechnen + Quadratzahlen
Hab mich mal daran versucht, aber ich brauche umbedingt ein Beispiel, da ich nicht genau weiß, wie ich das Ergebnis anzeigen lasse.
Hier ist mein Versuch:
Delphi-Quellcode:
Das ergibt folgende Fehler:
procedure TForm1.Button1Click(Sender: TObject);
Function Power(Base, Exponent: Extended): Extended; var x, y : Extended; begin x := StrToInt(Base_edit.Text); y := 10; Power(x, y); Edit.Text := Power end; end.
Code:
Komischerweiße wird mir beim Doppelklick auf die 1. Fehlmeldung die end; - Zeile Angezeigt.
[Fehler] Unit1.pas(42): Nicht genügend wirkliche Parameter
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Re: Rechnen + Quadratzahlen
Ouch.. was ist das denn? :wall:
in die uses (unter interface oder implementation) bindest du die unit math ein:
Delphi-Quellcode:
im ButtonClick Ereignis kannst du dann z.B. folgendes nutzen:
uses {...},{...},{...},math;
Delphi-Quellcode:
Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0),10));
|
Re: Rechnen + Quadratzahlen
:wiejetzt:
:wall: :wall: :wall:
Delphi-Quellcode:
Etwa so ?
procedure TForm1.Button1Click(Sender: TObject);
Function Power(Base, Exponent: Extended): Extended; begin Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0), 10)); end; begin end; end. [Warnung] Unit1.pas(39): Rückgabewert der Funktion 'Power' könnte undefiniert sein Anscheinend ist das so. Passiert nichts beim Klicken. :( :( |
Re: Rechnen + Quadratzahlen
Arbeite bitte mal
![]() |
Re: Rechnen + Quadratzahlen
*lufthol* Erläutern wir mal deinen Quelltext (siehe Kommentare):
Delphi-Quellcode:
Eine nested function ist eine function, die nur innerhalb einer anderen function oder procedure gültig ist.
// Das OnClick-Ereignis
procedure TForm1.Button1Click(Sender: TObject); // Eine nested function namens Power Function Power(Base, Exponent: Extended): Extended; begin // In der nested function versuchst du etwas in der GUI zu machen Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0), 10)); // ^ // Dieses Power ruft wieder die nested function auf // Da kein Wert zurück gegeben wird, kommt der Fehler end; begin // Der Inhalt des Ereignisses wie du siehst // ist hier nichts, was soll also passieren? end; end. // << gehört zur Unit und sollte da auch bleiben, // ist aber hier nicht dein Problem Wenn du die Unit Math eingebunden hast reicht:
Delphi-Quellcode:
// Das OnClick-Ereignis
procedure TForm1.Button1Click(Sender: TObject); begin // Im OnClick machst du etwas mit der GUI Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0), 10)); // ^ // Dieses Power ruft das Power aus der Unit Math auf end; Und bitte nimm den Rat an und geh die Tutorials durch. Danke. |
Re: Rechnen + Quadratzahlen
Liste der Anhänge anzeigen (Anzahl: 1)
Sorry, wenn ich es nicht verstehe, werde morgen auf jeden Fall die Tutoriale durchmachen.
Du meinst also, ich kann das begin end; weglassen? Hier ist dann mein Quellcode mit eingebauten fehlern:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Function Power(Base, Exponent: Extended): Extended; begin Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0), 10)); end; //Rückgabewert der Funktion 'Power' könnte undefiniert sein end; //BEGIN erwartet, aber END gefunden end. // <---Hier wird ja das Dateiende deklariert Nun eine Variante, die ich auch noch ausprobiert habe:
Delphi-Quellcode:
So, nun kann man es wenigstens compilieren. Wenn im Edit-Feld "Base_edit" nichts eingegeben wird, kommt in "Edit" der Wert 0. Wird jedoch etwas eingegeben, meldet sich der Debugger mit der Fehlmeldung:
procedure TForm1.Button1Click(Sender: TObject);
Function Power(Base, Exponent: Extended): Extended; begin Edit2.Text := '10' //Das ist einfach eine 2. Edit end; //Rückgabewert der Funktion 'Power' könnte undefiniert sein begin Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0), 10)); end; end. // <---Hier wird ja das Dateiende deklariert --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project1.exe ist eine Exception der Klasse EInvalidOp aufgetreten. Meldung: 'Ungültige Gleitkommaoperation'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Nun, es tut mir Leid, dass ich so viele Probleme habe, also habe ich mal das Programm gepostet(Anhang). |
Re: Rechnen + Quadratzahlen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
hier ein ganz einfaches Beispielprojekt, danach solltest Du Dein Problem erkennen. |
Re: Rechnen + Quadratzahlen
Mach doch bitte erst ein paar Grundlagen-Tutorials, bevor du irgend etwas weiteres fragst. Es ist mehr als offensichtlich, dass du einfach nur irgendwie irgendwas hinschreibst, und komplett keine Vorstellung davon hast, was du tust. Null. Das ganze hier kann so zu nichts führen.
Wir helfen bei konkreten Problemen gern, aber dir feinschrittweise Delphi von null an beizubringen ist eigentlich nicht der Sinn des Forums. Dafür gibts Tutorials. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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-2025 by Thomas Breitkreuz