Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Extended in Integer (https://www.delphipraxis.net/149194-extended-integer.html)

checker1992 16. Mär 2010 11:38


Extended in Integer
 
Hallöchen...
ich möchte einen Funktionsgraphen zeichnen und habe mich dazu einem vorhandenen Parser bedient.
Es funktioniert soweit gut, ABER ich bekomme die x und y werte zum zeichnen im extended format.
Ich braucher meiner Meinung nach Integerwerte um mit der Image.Komponente zu zeichnen.
Hat jemand eine Idee wie ich mein Problem lösen könnte. Ich habe auch schon gesucht, aber richtig fündig wurde ich leider nicht.

Mit freundlichen Grüßen
checker

Luckie 16. Mär 2010 11:44

Re: Extended in Integer
 
Delphi-Referenz durchsuchentrunc, Delphi-Referenz durchsuchenceil, Delphi-Referenz durchsuchenfloor.

sirius 16. Mär 2010 12:04

Re: Extended in Integer
 
Und neben den Rundungsfunktionen natürlich noch die lineare Transformation von deinem Koordinatensystem auf die Koordinaten des Bildschirms.

checker1992 16. Mär 2010 16:30

Re: Extended in Integer
 
Danke schon einmal für die Antworten.
Aber werder trunc, noch ceil oder floor wirken. Es kommt immer wieder die Fehlermeldung, dass die Variablen nicht übereinstimmmen würden.
Das Problem ist, ich kann jetzt auch nicht den quelltext angeben, da dieser äußerst umfangreich ist.
Hat jemand eine andere Idee, oder kann mir mal zeigen wie z.B. trunc angewendet wird. Vielleicht habe ich dabei einfach einen Fehler gemacht.

MFG
checker

Noedel 16. Mär 2010 17:02

Re: Extended in Integer
 
und was ist mit "round"? Das müsste auf jeden fall gehen.

Wolfgang Mix 16. Mär 2010 17:08

Re: Extended in Integer
 
@checker1992

Delphi-Quellcode:
Var x:double;
    j:integer;

j:=trunc(x);

Jakob Ullmann 16. Mär 2010 17:45

Re: Extended in Integer
 
Zitat:

Zitat von checker1992
Danke schon einmal für die Antworten.
Aber werder trunc, noch ceil oder floor wirken. Es kommt immer wieder die Fehlermeldung, dass die Variablen nicht übereinstimmmen würden.
Das Problem ist, ich kann jetzt auch nicht den quelltext angeben, da dieser äußerst umfangreich ist.
Hat jemand eine andere Idee, oder kann mir mal zeigen wie z.B. trunc angewendet wird. Vielleicht habe ich dabei einfach einen Fehler gemacht.

MFG
checker

Dann kopiere doch bitte mal die exakte Fehlermeldung, die erscheint. :zwinker:

checker1992 16. Mär 2010 19:56

Re: Extended in Integer
 
Liste der Anhänge anzeigen (Anzahl: 1)
sooo...
also das hier ist erstmal die Prozedur die Ausgeführt wird:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var l,i:integer;
var x,y,xe,xo,ye,yo,xn,yn: extended;
var xwerte:array[1..20] of integer;
var ywerte:array[1..20] of integer;
term: string;
begin
xe:=160;
xo:=150;
ye:=140;
yo:=150;
term:=edit1.text;
l:=length(term);
i:=1;
repeat
if term[i]='x' then begin
                insert('*',term,i);
                inc(i);
                l:=length(term);
                end;
inc(i);
until i=l+1;
l:=length(term);
   memo1.text := 'x     f(x)';
   memo1.Font.Name := 'Courier New';
   x := -5;
   repeat
     y := termToReal(term,x);
     memo1.lines.Add(formatfloat(' 0.0   ;-0.0   ', x) + formatfloat('0.###',y));
     xn:=x*(xe-xo)+xo;
    xwerte[x+6]:=xn;
     yn:=y*(ye-yo)+yo;
     ywerte[x+6]:=FloattoInt(yn);
     x := x + 1/2;
   until x > 5; //Fehler: "until x = 5.5", da extended nicht exakt
end;
"termtoreal(term,x)" ist der angespochene Parser (http://delphi.zsg-rottenburg.de/parser.html). Denn Parser habe ich von der angegeben Seite kopiert. Die Ergebnisse dieses Parser sind nun Extended und genau diese würde ich gern in Integer umwandeln, denn mit Extended werten kann ich leider keinen Graph zeichnen.
Wenn ich es ausführe sieht es dann so aus: s. Anhang.

Was kann ich jetzt machen, denn round ging auch irgendwie nicht. Oder muss ich bei round noch irgendwelche parameter angeben? Wie wird round angewendet?

MFG
checker

Wolfgang Mix 16. Mär 2010 20:14

Re: Extended in Integer
 
Deine Zuweisung stimmt nicht:
Delphi-Quellcode:
xwertw[x+6]:=xn;
Das müßte heißen;
Delphi-Quellcode:
xn:=xwertw[x+6];
Hoffe, das hilft dir weiter

LG

Wolfgang

checker1992 16. Mär 2010 21:51

Re: Extended in Integer
 
danke für die Antworten.
Die Zuweisung stimmt aber, da der Berechnet Wert von xn (Umrechnung von computer koordinatensystem in mahtematisches) in einem Array gespeichert wird. Dieser wird dann zum zeichnen benutzt.
Aber Extended in Integer geht net so einfach oder?

MFG


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Seite 1 von 2  1 2      

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