| Autor |
Beitrag |
NoEon
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 12:50
Hallo ich stehe gerade von einem Problem. Ich weiss nicht wie ich in meiner Formel die "Hochzahl" angeben muss. --->Potenz?<---
Mist ich kenn gerade nicht mal den Mathematisch korrekten Ausdruck dafür.
Also es geht um ZinsesZinsrechnung.
ich weiss das man das theoretisch auch mit der for do schleife machen kann, aber.. da hab ich im Unterricht "gepennt"
Es gibt aber auch eine Formel dafür, die hab ich mir gebastelt!
Wer kann mal helfen?!
Danke schön
NoEon
|
|
Husar
      
Beiträge: 18
|
Verfasst: So 13.04.03 13:21
Willst du einfach nur potenzieren oder willst du ein funktion zur zinsberechnung, das sind nämlich 2 paar Schuhe und das 2. hat nichts mit Potenzen zu tun?
_________________ unmögliches Sofort, Wunder dauern ein wenig länger
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 13:24
beide Wege würden mir weiterhelfen!! --->weil ich beide nicht kenne!
Potenzieren wäre aber der wichtigste!!
|
|
BungeeBug
      
Beiträge: 901
|
Verfasst: So 13.04.03 13:24
Hi,
naja nicht wirklich da das eine das andere mit sich bringt ... also wenn ich das richtg verstanden hab kannst du das einfach so schreiben <Basis>^<Potenz> und dann geht das schon
MfG BungeeBug
?dit
Scheint doch nicht zu gehn ....
dann bin ich auch mal gespannt ...
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 13:29
na wenn das so ist!... let's go
zufällig ne Ahnzng wo ich den MS Help Workshop herbekomme??
|
|
Husar
      
Beiträge: 18
|
Verfasst: So 13.04.03 13:29
Potenzieren =
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| program potenzieren; uses crt; var x,potenziertes_x,n:integer; begin clrscr; write('Geben Sie die Basis ein: '); readln(x); potenziertes_x:=x; write('Geben Sie den Exponenten ein: '); readln(n); while n>1 do begin potenziertes_x:=potenziertes_x*x; n:=n-1; end; write(radiziertes_x); readln; end. |
_________________ unmögliches Sofort, Wunder dauern ein wenig länger
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.04.03 13:53
Ich würde die Funktion "power" empfehlen.
Oder, wenn Du das nicht willst, für ganzzahlige Exponenten diese Funktion (ist um einiges schneller als eine simple Schleife):
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function potenz (basis : Extended; exponent : Integer) : Extended; VAR ergebnis : Extended; begin if exponent = 0 then result:=1 else begin if exponent = 1 then result:=basis else begin if exponent mod 2 = 0 then begin ergebnis:=potenz(basis, exponent div 2); result:=ergebnis*ergebnis; end else result:=potenz(basis, exponent-1)*basis; end; end; end; |
Oder für x > 0 geht auch, wenn Du x^k haben willst: exp(k*ln(x))
Ich würde aber power empfehlen.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 14:08
Danke das Funzt! Fertig!!!
Was war mit dem Help Workshop zum erstellen von Hilfe Datein? oder macht man das woanderes mit??
Danke schöen
Gruss
NoEoN
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.04.03 14:15
Hi!
Den gibt es, glaube ich, hier:
msdn.microsoft.com/w...hop/author/htmlhelp/
der Link ist aus einem Tutorial bei Delphi-Source. Unter Tutorials --> Tools-Tutorials oder so.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 14:22
Wunderbar!!!
Der Sonntag ist gerettet, die 99 Steps hab ich schon gefunden. Jetzt geht es rund, sprach der Kanarienvogel und flog in den Ventilator
Aso noch was... gibt es da auch so was wo ich das Programm einpacken lassen kann...? So ein Setup Dingsbums?
NoEoN
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.04.03 14:36
Jupp, gibt es: Inno Setup
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 17:42
Titel: mist geht noch nicht ganz
Hallo ich bin es noch mal schau mal das hab ich jetzt Fabriziert:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.BitBtn6Click(Sender: TObject); var kn, k0, n, p:real; begin
k0:=StrToFloat(edit16.Text); p :=StrToFloat(edit17.Text); n :=StrToFloat(edit18.Text);
if edit16.text = '0' then if abfang1(edit16) then Exit; if edit17.text = '0' then if abfang1(edit17) then Exit; if edit18.text = '0' then if abfang1(edit18) then Exit;
kn:= (k0*((1+p)/(100)^n)); label27.caption:-=FloatToStrf(kn, ffFixed, 18,2); end;
end. |
aber das ghet nicht so wie ich mir das gedacht habe.
das Basiert auf der Zinseszinsformel. Ich ich gefunden habe!
Kn=K0*((1+p)/(1*100))^n
das sollte so auch von der Umstellung her Stimmen, kann mir das mal jemand sagen ob das überhaupt richtig ist??
Danke noch mal
NoEoN
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.04.03 17:53
In meiner Formelsammlung steht die Zinseszinsformel so drin, dass nicht 1+p durch 100 geteilt wird, sondern dass es so aussieht: 1+p/100.
Die Formel sieht dann so aus:
kn = k0*q^n mit q = 1+p/100
Außerdem haben wir alle so fleißig Algorithmen und befehle für die Potenzberechnung gepostet, dass Du sie auch benutzen sollest!
| Zitat: |
label27.caption:-=FloatToStrf(kn, ffFixed, 18,2);
|
Das Minus in der Zuweisung solltest Du wegmachen.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 18:03
hast Du p und q durcheinander gebracht???
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.04.03 18:15
Nö. So steht es in der Formelsammlung. Scheint mir auch einleuchtend zu sein. Wenn ich p = 3 habe (also 3% Zinsen), muss ich k0 mit 1,03 multiplizieren. Stimmt doch, oder?
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: So 13.04.03 18:47
ne sorry heute rall ich nichst mehr ich glaub für heute lass ich das ich krieg das jetzt nicht merh in das billy billig Programm rein, mal sehn vielleicht morgen.
sag: for do schleife wurde oben erklärt... wurd die auch schon mal woanderes erklärt ich hab nichts gefunden. :-(
bis dann
ich gebs auf-....
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 13.04.03 19:33
Hier hat sich Chatfix die Mühe gemacht, und was über Schleifen geschrieben.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Mo 14.04.03 13:48
ok also jetzt sieht das bei mri so aus.. mit der Power Funktion
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.BitBtn6Click(Sender: TObject); var z, kn, p,ze,k0, lz:real;
begin
kn:=StrToFloat(edit16.Text); p :=StrToFloat(edit17.Text); lz :=StrToFloat(edit18.Text);
if edit16.text = '0' then if abfang1(edit16) then Exit; if edit17.text = '0' then if abfang1(edit17) then Exit; if edit18.text = '0' then if abfang1(edit18) then Exit;
k0:=kn*power((1+p/1*100), 1/lz); //ze:=k0*(1+p/1*100); //z:=power(ze, 1/lz); //kn:= (k0*(power(1+p)/(100), 1/n)); //kn := k0*q^n mit q = 1+p/100
label27.caption:=FloatToStrf(k0, ffFixed, 18,2); end; |
aber ich bekomme krumme werte raus.. also stimmt nicht .. aber was nur ich hatte die Formel schon 2 mal umgestellt aber es ändert sich nichts!
unit math läuft und ist eingebunden
Danke und Gruss
NoEoN
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 14.04.03 14:08
| Zitat: | | k0:=kn*power((1+p/1*100), 1/lz); |
Wie kommst Du auf diese Formel? Wenn ich die Formel, die ich gepostet habe, nach k0 umstelle, bekomme ich ein 1/(q^lz) und dann muss es also nicht 1/lz, sondern -lz heißen.
| Zitat: | | kn:= (k0*(power(1+p)/(100), 1/n)); |
Wieso 1/n ? Und das (1+p) ist auch falsch. Es muss doch 1 + p/100 heißen und nicht (1+p)/100.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Mo 14.04.03 14:57
hi Peter, erstmal danke das Du Dich intensiv mit meinem Problem beschäftigst!
p das ist meine Variable
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:
| begin if LCSAbfang(edit16) then begin kn:=StrToFloat(edit16.Text); if LCSAbfang(edit17) then begin p :=StrToFloat(edit17.Text); if LCSAbfang(edit18) then begin lz :=StrToFloat(edit18.Text);
-->diese Zeile kn:= (k0*(power(1+p)/(100), 1/p));---->ist unterlegt //k0:=kn*power((1+p/1*100), 1/lz); //ze:=k0*(1+p/1*100); //z:=power(ze, 1/lz); //kn:= (k0*(power(1+p)/(100), 1/n)); //kn := k0*q^n mit q = 1+p/100
label27.caption:=FloatToStrf(kn, ffFixed, 18,2); end; end; end;
end. |
das ist jetzt erstmal mein text (quelltext)
und ich bekomme noch immer folgenden Fehler
warte ich Zitiere
| Zitat: | [Hinweis] Unit1.pas(116): Auf 'wert' zugewiesener Wert wird niemals benutzt
[Fehler] Unit1.pas(228): Nicht genügend wirkliche Parameter
[Fataler Fehler] zinsen.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
so das setht da.. aber was nun noch nicht merh stimmt, das kann ich beim bestenwillen nicht sagen! Weil diese Meldungen, bis auf die letzte kenne ich nicht!
danke
|
|