13. oktober 2001 - 13:42
Der er
61 kommentarer og 1 løsning
Delphi skal regne!!!
Hej, jeg er lige begyndt på delphi, og har lavet et program som skal kunne regne noget ud vha. en formel. Jeg har tre edit-felter, hvor man skal indtaste værdierne, og nederst har jeg en knap med teksten beregn. Formlen delphi skal regne ud vha. de tre værdier ser sådan ud: ((1+r)**t*r) / ((1+r)**t-1) de to ** betyder \"i\" f.eks to i anden og \"/\" betyder divider
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
13. oktober 2001 - 13:43
#1
hovsa - jeg glemte lige noget i formlen: ((1+r)**t*r) / ((1+r)**t-1) * h
13. oktober 2001 - 13:44
#2
når man har klikket på beregn skal resultatet komme frem i et edit-felt allernederst
13. oktober 2001 - 13:46
#3
Når du skal opløfte i potens skal du bruge Sqr, jeg har klippet lidt ind fra hjælpen nedenunder. Giv mig lige 5. min så skal du få formlen i delphi function Sqr(X: Extended): Extended; function Sqr(X: Integer): Integer; Description The Sqr function returns the square of the argument. X is a floating-point expression. The result, of the same type as X, is the square of X, or X*X.
13. oktober 2001 - 13:47
#4
hmm prøv lige at skrive et eksempel med formlen. ps i anden på en computer ser sådan ud: ^2 Dennis
13. oktober 2001 - 13:47
#5
Tror ikke du får nogen svar når du lige har oprettet din profil i dag.. og så smider alle points i et spørgsmål. Det er imod ånden og ideen med
www.eksperten.dk
13. oktober 2001 - 13:48
#6
Eller lig din mail adr, så sender jeg lige det færdige projekt til dig
13. oktober 2001 - 13:48
#8
morten_s -> Det skal han da kun hvis han skal have kvadarat roden af et tal, og så vidt jeg kan se prøver han ikke på det nogle steder :|
13. oktober 2001 - 13:49
#9
er det ikke bare output.text := inttostr(((1+ strtoint(r.text))**strtoint(t.text)*strtoint(r.text)) div ((1+strtoint(r))**strtoint(t.text)-1) * strtoint(h.text));
13. oktober 2001 - 13:50
#10
Sorry den heder Power function Power(const Base, Exponent: Extended): Extended; Description Power raises Base to any power. For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.
13. oktober 2001 - 13:51
#11
nej, du kan ikke bare sige til delphi at den skal sætte at tal i anden.
13. oktober 2001 - 13:53
#12
dennishoyer@ofir.dk
13. oktober 2001 - 13:55
#13
Øjeblik, den er på vej
13. oktober 2001 - 13:57
#14
mange tak
13. oktober 2001 - 13:58
#15
du skal også sende koden med så jeg lige kan se hvordan ud har gjort
13. oktober 2001 - 13:59
#16
koden kommer også, jeg sender nu
13. oktober 2001 - 14:00
#17
tak
13. oktober 2001 - 14:02
#18
morten_s > Smid koden her ind også.
13. oktober 2001 - 14:12
#19
300 point plejer at få mig til at tænke noget... Hvis koden ikke bliver smidt herind tror jeg vi har en sag..!
13. oktober 2001 - 14:13
#20
13. oktober 2001 - 14:16
#21
rolig rolig procedure TForm1.Button1Click(Sender: TObject); var r, t, h : Integer; res : double; begin r := StrToInt(Editr.Text); t := StrToInt(Editt.Text); h := StrToInt(Edith.Text); res := (power((1+r),(t*r))/power((1+r),(t-r)))*h; Edit1.text := FloatToText(res); end; koden er her, jeg mangler bare at få res oversat til en textstreng, nogen som kan hjælpe med dette ?
13. oktober 2001 - 14:17
#22
Hvis der er snyd med i dette spg. ja så er jeg ikke med
13. oktober 2001 - 14:18
#23
Nu er jeg mere rolig :o) 300 point lugter bare langt væk, synes jeg :o)
13. oktober 2001 - 14:18
#24
Snyd??
13. oktober 2001 - 14:20
#25
nej nej - jeg ville bare være sikker på at få et ordentligt svar så derfor gav jeg så mange point :)
13. oktober 2001 - 14:20
#26
Som sagt har du formlen ovenfor, mangler bare at få res oversat til text.
13. oktober 2001 - 14:21
#27
morten_s - når jeg trykker F9 kommer den frem med kodeoversigten hvor linien res := (power((1+r),(t*r))/power((1+r),(t-r)))*h; er markeret med rødt og cursoren står lige efter power
13. oktober 2001 - 14:23
#28
du skal angive math under uses
13. oktober 2001 - 14:24
#29
er der ingen som har en ide til hvordan res oversættes til editres.text ?
13. oktober 2001 - 14:24
#30
nbpunig> res skal være at typen real
13. oktober 2001 - 14:24
#31
jeg tror du har misforstået formlen.... ((1+r)^t *r) (1+r) i \"t-ende\" gange r
13. oktober 2001 - 14:25
#32
hvor angiver man math
13. oktober 2001 - 14:26
#33
res bliver da bare recreated hvis delphi ikke lige kan se den.
13. oktober 2001 - 14:26
#34
under uses øverst oppe min ser sådan her ud: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math;
13. oktober 2001 - 14:27
#35
jeg går ud fra at du vil opløfte 1+r i t*r
13. oktober 2001 - 14:27
#36
Hva for et tal har du i t-ende??
13. oktober 2001 - 14:28
#37
når jeg trykker på F9 efter at have angivet math og har ændret res til real er linien stadig markeret med rødt, men nu står markøren efter :=
13. oktober 2001 - 14:28
#38
nej - jeg vil opløfte 1+r i t og bagefter gange det med r
13. oktober 2001 - 14:29
#39
okey, så skal der lige koorigere, øjeblik
13. oktober 2001 - 14:30
#40
Hvis ingen får det til at virke. Kommer jeg snart hjem igen pg så laver jeg lige noget kode tile dig.
13. oktober 2001 - 14:30
#41
res := ((power((1+r),t)*r)/power((1+r),(t-r)))*h; så må del være sådan her
13. oktober 2001 - 14:31
#42
som sagt mangler jeg kun at få oversat res til text, det kan være dkn har en ide til det ?
13. oktober 2001 - 14:33
#43
okey - når jeg compiler nu er linien Edity.text := FloatToText(res); markeret med rødt og markøren står imellem (res) og ;
13. oktober 2001 - 14:34
#44
altså det du rettede skal selvfølgelig også rettes på den del der skal divideres - har du gjort det??
13. oktober 2001 - 14:36
#45
nej jeg troede ikke at du ville trække t fra der så får vi res := ((power((1+r),t)*r)/(power((1+r),t)-r))*h;
13. oktober 2001 - 14:38
#46
Nej det skal være et 1 tal res := ((power((1+r),t)*r)/(power((1+r),t)-1))*h;
13. oktober 2001 - 14:38
#47
hvorfor kan jeg ikke compile ???
13. oktober 2001 - 14:41
#48
Fordi vi mangler en funtion til at oversætte et real til text, arbejder på sagen
13. oktober 2001 - 14:42
#49
ok
13. oktober 2001 - 14:52
#50
Jeg kan ikke finde en funktion som kan oversætte real til tekst (sorry) så jeg tror du bliver nødt til at oprette et nyt spg. med følgende tekst: Oversætte real til tekst jeg har en real som jeg ønsker vist i et edit felt, hvordan gøres det ?
13. oktober 2001 - 14:53
#51
Du kan jo bare overfører nogle af pointene herfra til det nye spg
13. oktober 2001 - 14:59
#52
morten_s > nu kom jeg til at acceptere dit svar :) kan du ikke oprette et nyt spg??? - jeg har ikke flere points
13. oktober 2001 - 15:09
#53
Jo øjeblik, jeg var lige over og handle
13. oktober 2001 - 15:10
#54
spg. er oprettet
13. oktober 2001 - 15:17
#55
Det viste sig at være Float ToStr ;-(( synes ellers at den var afprøvet, nå men anyway her har du den totale kode: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; type TForm1 = class(TForm) Editr: TEdit; Button1: TButton; Editt: TEdit; Edith: TEdit; Label1: TLabel; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var r, t, h : Integer; res : real; res1, res2 : extended; db1, db2 : double; begin r := StrToInt(Editr.Text); t := StrToInt(Editt.Text); h := StrToInt(Edith.Text); res := ((power((1+r),t)*r)/(power((1+r),t)-1))*h; Edit1.Text := FloatToStr(Res); end; end.
13. oktober 2001 - 15:22
#56
mange tak for hjælpen - jeg har bare et spørgsmål til, og selvom du har fået pointene håber jeg du vil svare... jeg har oprettet en MainMenu med Afslut og Ny - når man klikker på Ny skulle den gerne slette alt der står i de fire edit-felter - hvordan gør man det??
13. oktober 2001 - 15:25
#57
du gør bare sådan her: edit1.text := \'\'; edit2.text := \'\';
13. oktober 2001 - 15:26
#58
ok - tak
13. oktober 2001 - 15:27
#59
Hvis du har flere så bare skriv dem her
13. oktober 2001 - 15:36
#60
jeg har lige en mere - værdien \"r\" skal kunne indeholde kommatal - fx. 1,5
13. oktober 2001 - 15:55
#61
kan du hjælpe mig med det
13. oktober 2001 - 16:02
#62
Prøv dette : procedure TForm1.Button1Click(Sender: TObject); var r, t, h : Real; // <-RETTELSE res : real; res1, res2 : extended; db1, db2 : double; begin r := StrToFloat(Editr.Text); // <-RETTELSE t := StrToFloat(Editt.Text); // <-RETTELSE h := StrToFloat(Edith.Text); // <-RETTELSE res := ((power((1+r),t)*r)/(power((1+r),t)-1))*h; Edit1.Text := FloatToStr(Res); end;
Kurser inden for grundlæggende programmering