AGB  ·  Datenschutz  ·  Impressum  







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

Rechnen + Quadratzahlen

Offene Frage von "Dbof"
Ein Thema von Dbof · begonnen am 26. Mär 2008 · letzter Beitrag vom 27. Mär 2008
Antwort Antwort
Dbof

Registriert seit: 20. Mär 2008
61 Beiträge
 
#1

Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 22:07
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
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 22:12
Hi,

Anfänger Tutorials gibt's auf www.dsdt.info

Der Befehl für "Hoch" lautet:

Math.Power(Basis, Exponent);
  Mit Zitat antworten Zitat
Dbof

Registriert seit: 20. Mär 2008
61 Beiträge
 
#3

Re: Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 22:45
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:
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.
Das ergibt folgende Fehler:
Code:
[Fehler] Unit1.pas(42): Nicht genügend wirkliche Parameter
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Komischerweiße wird mir beim Doppelklick auf die 1. Fehlmeldung die end; - Zeile Angezeigt.
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 23:08
Ouch.. was ist das denn?

in die uses (unter interface oder implementation) bindest du die unit math ein:

uses {...},{...},{...},math; im ButtonClick Ereignis kannst du dann z.B. folgendes nutzen:

Edit.Text := FloatToStr(Power(StrToIntDef(Base_edit.Text,0),10));
  Mit Zitat antworten Zitat
Dbof

Registriert seit: 20. Mär 2008
61 Beiträge
 
#5

Re: Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 23:40





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;
begin
end;
end.
Etwa so ?

[Warnung] Unit1.pas(39): Rückgabewert der Funktion 'Power' könnte undefiniert sein
Anscheinend ist das so. Passiert nichts beim Klicken.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 23:43
Arbeite bitte mal diese Tutorials durch, dann wird es dir klar werden.
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Rechnen + Quadratzahlen

  Alt 26. Mär 2008, 23:49
*lufthol* Erläutern wir mal deinen Quelltext (siehe Kommentare):

Delphi-Quellcode:
// 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
Eine nested function ist eine function, die nur innerhalb einer anderen function oder procedure gültig ist.

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.
  Mit Zitat antworten Zitat
Dbof

Registriert seit: 20. Mär 2008
61 Beiträge
 
#8

Re: Rechnen + Quadratzahlen

  Alt 27. Mär 2008, 00:26
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:
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
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:

---------------------------
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).
Angehängte Dateien
Dateityp: zip test_186.zip (206,8 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Rechnen + Quadratzahlen

  Alt 27. Mär 2008, 00:36
Hi,

hier ein ganz einfaches Beispielprojekt, danach solltest Du Dein Problem erkennen.
Angehängte Dateien
Dateityp: zip bspproj_119.zip (2,6 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Rechnen + Quadratzahlen

  Alt 27. Mär 2008, 10:12
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:36 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