Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Potenzrechnen und Wurzelziehen? (https://www.delphipraxis.net/94240-potenzrechnen-und-wurzelziehen.html)

GISS79 18. Jun 2007 16:10


Potenzrechnen und Wurzelziehen?
 
Hallo allerseits,

ich bin blutiger anfänger und weiß gerade nicht, was delphi von mir möchte. Mein code:

Delphi-Quellcode:
K:=strtoint(Kapital.text);
        Z:=strtoint(ZSatz.Text);
        D:=strtoint(Dauer.Text);
        E:=K*(1+(Z/100))power D;
        Ergebnis.Text:=inttostr(E);
und er sagt mir beim Compilieren:
Zitat:

[Error] Main.pas(65): Incompatible types: 'Integer' and 'Extended'
was muss ich machen, damit ich eine Potenz bei dieser Zeile
Delphi-Quellcode:
E:=K*(1+(Z/100))power D;
rechnen kann?

Vielen dank für eure Hilfe.

Lg Giss

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

cruiser 18. Jun 2007 16:13

Re: Potenrechnen und Wurzelziehen?
 
Delphi-Quellcode:
E:=K * Power(1+(Z/100), D); // <-- power ist eine Funktion definiert
                            //     in Math und erwartet 2 Argumente
Ergebnis.Text:=FloatToStr(E); // <-- du hast kein Integer hier, sondern
                              //     einen Floatwert (Single, Double, Extended)
nicht vergessen die Unit Math einzubinden.

Ach ja... wie allen Einsteigern empfehl ich dir, dich über Datentypen schlau zu machen und dir mal ein paar Tutorials anzusehn.

Greetz

GISS79 18. Jun 2007 19:05

Re: Potenrechnen und Wurzelziehen?
 
danke soweit erstmal.

wie du sicher gesehen hast, ist die Variable D als integer deklariert und wird aus einem textfeld übernommen.

wenn ich das so mache wie du vorschlägst, meldet er mir immer noch, dass eine ' fehlt und er nicht genug relevante parameter hat.

Die Variable E ist derzeit auch als integer deklariert, da ich sie für spätere operationen als integer brauche, und sie auch aus einem textfeld übernommen wird, und in ein solches übergeben wird.

das soll dann später mal ein routine zur zineseszinsberechnung werden.

Namenloser 18. Jun 2007 19:17

Re: Potenrechnen und Wurzelziehen?
 
Hi,

Wie schon gesagt, solltest du dich einmal über Datentypen informieren.
Ein Integer ist eine ganze zahl, also ohne Nachkommastellen. Ein Floatwert, z.B. Single, Double und Extended (Näheres zu den Unterschieden siehe OH) hingegen ist eine sogenannte reelle Zahl ( Also eine Zahl mit Kommastellen), und damit für Zinsrechnung wohl die bessere Wahl.

Rechnen kannst du damit fast genau so, bloß musst du für die Division den Operator / statt div verwenden.
Was den Fehler mit dem ' angeht: Der muss sich an einer anderen Stelle des Codes befinden, denn in deinem Code kann dieser Fehler gar nicht vorkommen. vermutlich weißt du an irgendeiner Stelle einer Variable einen Text zu, oder gibst diesen Text an eine Funktion (z.B. ShowMessage) und hast das abschließende ' vergessen.

GISS79 18. Jun 2007 19:19

Re: Potenrechnen und Wurzelziehen?
 
ok ich habe den fehler gefunden, habe jetzt alle zahlen variablen als extended deklariert, und dann klappt das auch...


ich danke euch für die gute hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 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