Autor Beitrag
malibu85
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Do 13.12.07 16:42 
Hallo, ich habe ein Problem mit der Potenzfunktion Power bzw. IntPower die syntax ist mir dank der Borland Hilfe bekannt aber leider habe ich das noch nicht so ganz begriffen. Ich möchte ein Zinsrechner darstelen, der die dyamsche Verzinsung berechnet ( Kapitalwert*(1+Znssatz)^n) Ich habe erstmal versucht, die Funkton auszugeben ohne die vollständige berechnung durchzuführen.
Ich bekomme folgende fehlermeldung wenn ich die Funktion ausführen will:
[Pascal Fehler] Unit1.pas(50): E2035 Nicht genügend wirkliche Parameter

Habe ich an der unktion Power etwas falsch verstanden? Seht sie euch bitte einmal an!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
var
  Form1: TForm1;
  Kap, Zins, Jahre, KapNeu :real;

implementation

function Power(const Base: real; const Exponent: real): real;
begin
Zins:=(1+Zins);
Zins:=Base;
Jahre:=Exponent;

end;

{$R *.nfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=FloatToStr(Kap);
Edit2.Text:=FloatToStr(Jahre);
Edit3.Text:=FloatToStr(Zins);

label1.Caption:=StrToFloat(Power);


end;
volvox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 112

WIN XP
Delphi 7 Personal
BeitragVerfasst: Do 13.12.07 16:51 
Ähm irgendwie ist das komisch. Also erstmal ganz wichtig, dass du oben bei uses "maths" ergänzt.

Und Power ist halt schon ne fertige Funktion. Genauso wie du z.B. schreibst

ausblenden Delphi-Quelltext
1:
StrToIn('1');					


schreibst du bei power

ausblenden Delphi-Quelltext
1:
Power(basis,exponent);					


also z.B. die Funktion power(3,2) liefert den Wert 9



wichtig ist, dass die Basis integer, und der Exponent extended (Kommazahl) ist

---

Korrektur: Wenn beides extended ist, klappt es aber auch
malibu85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Do 13.12.07 17:22 
ach so ist das zu verstehen ich dachte, das es so wie in c ist, dass man eine Variable zur verfügung stellt und mit dieser dann arbeiten kann stellvertretend für einen Wert der im Programm auftauch. Danke für deinen Hinweis.
volvox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 112

WIN XP
Delphi 7 Personal
BeitragVerfasst: Do 13.12.07 17:29 
Wenn das Problem gelöst ist, markier es bitte auch so
malibu85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Do 13.12.07 17:54 
Hier nochmal die Lösung zum Problem
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel,math;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Kapital,Jahre,Zins,Klammerausdruck, KapitalwertNeu :real;
implementation

{$R *.nfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

// einlesen der Werte für die Formel Kapitalwer*(1+Zins)^n//
Kapital:=StrToFloat(edit1.Text);
Zins:=StrToFloat(Edit2.Text);
Jahre:=StrToFloat(Edit3.Text);

// aus Zins den Ausdruck (1+Zins) machen//

Zins:=(1+Zins);

//neues Kapital nach n -Jahren Berechenen//

Klammerausdruck:=power(Zins,Jahre);
KapitalwertNeu:= Kapital*Klammerausdruck;

//Ausgabe des Ergebnis auf Label1//

Label1.Caption:=FloatToStr(KapitalwertNeu);


end;

end.