Autor Beitrag
nooBies
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 04.04.08 17:27 
Hallo,
also ich habe ein riesen Problem ;)
Wir müssen in Informatik so einen Funktionsplotter machen, mit StringGrid, Koordinatensystem usw und ich komm schon am Anfang nimmer weiter. Und zwar soll ich die Zahlen von -10 bis 10 in diesen StingGrid eintragen und ich bekomms einfach nicht hin....
Desweiteren sollen diesen Zahlen dann Funktionswerte von einer Funtion 5.Grades zugeortnet werden....
Ich weiß nicht, wie lange ich jetzt daran sitze (2 Wochen bestimmt....und nix....ich dreh noch durch)...

Es wär echt toll wenn mir jemand helfen könnte....

LG
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Fr 04.04.08 17:41 
Wenn du schon so lange daran sitzt, hast du doch sicher schon einen Ansatz, bei dem wir dir weiterhelfen können.
nooBies Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 04.04.08 23:30 
Also des Funktioniert alles noch nicht so wie ich des will...bzw es geht garnicht, ich verzweifel.....
Ich hoff irgendjemand von euch kann mit meinem Pseudoprogramieren was anfangen^^ ;)
Als ein bisschen Unterstützung für des was ich eigentlich programieren will hab ich mal des Deckblatt hochgeladen. Kleine Erklärung dazu: oben in des Image-Feld soll ein Koordinatenkreuz das mir die Funktion zeichnet, genau so wie die 1. Ableitung, in den StringGrid sollen in die erste Reihe die Zahlen von -10 bis 10, darunter die Funktionswerte der Funktion und darunter die Werte der 1. Ableitung. Mit den Buttons "+" bzw "-" muss ich in diesen Graph rein oder rauszoomen....
Aber genug jetzt....
Danke schon mal im vorraus!!

ausblenden volle Höhe Delphi-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:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
implementation

{$R *.DFM}




procedure Eingabe (var a,b,c,d,e,f : real);
begin
     a:= strtofloat(form1.ed_a.text);
     b:= strtofloat(form1.ed_b.text);
     c:= strtofloat(form1.ed_c.text);
     d:= strtofloat(form1.ed_d.text);
     e:= strtofloat(form1.ed_e.text);
     f:= strtofloat(form1.ed_f.text);
end;

function fkt()
         function potenz()     //des is mir klar wiesos nicht geht, steht auch nix drin
begin
end


procedure Funktionswerte (a,b,c,d,e,f : real; Zeile : integer);
var i : integer;
begin
     for i:= -10 to 10 do
     form1.StringGrid1.cells[i+11,0]:=inttostr(i);
     form1.StringGrid1.cells[0,1]:= 'y-Werte';
     form1.StringGrid1.cells[0,2]:= '1. Ableitung';
     floattostr (fkt(a,b,c,d,e,f,i);  // s.o.
end;


procedure Zeichnegraph (a,b,c,d,e,f,xMin,xMax,yMin,yMax : real);
var x,y,xMF,yMF : real;
    xs,ys,xsMax,ysMax : integer;
begin
     xsMax:= form1.Im_koordi.width;
     xMF:= xsMax/(xMax-xMin);
     ysMax:= form1.Im_Koordi.height;
     yMF:= ysMax/(yMax-yMin);
     form1.Im_koordi.canvas.moveto(0,0);
     for xs:= 0 to xsMax do
        begin
           x:= xMin+xs/xMF;
           y:= fkt(a,b,c,d,e,f,x);  // s.o.
           y:= ((yMax-y)*yMF);
           if (y<=maxint) and (y>-maxint) then
              begin
                 ys:= round(y);
                 form1.Im_Koordi.canvas.lineto(xs,ys);
              end;
        end;
end;



procedure TForm1.bt_berClick(Sender: TObject);
var a,b,c,d,e,f : real;
begin
     Eingabe(a,b,c,d,e,f);
     Funktionswerte(a,b,c,d,e,f,1);
     Zeichnegraph(a,b,c,d,e,f);  // ?????
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
     im_koordi.canvas.rectangle(0,0,400,224);
     im_koordi.Width:= 400;
     im_koordi.Height:= 224;
     im_koordi.canvas.MoveTo(0,112);// das sollte ich besser verpacken in form von zb width/2 oder so
     im_koordi.Canvas.LineTo(400,112); // weiß aber nicht wies geht, hab schon in der delphi-hilfe nach
     im_koordi.canvas.moveTo(200,0);  // Trunc gesucht, hilft mir aber nicht weiter
     im_koordi.canvas.LineTo(200,224);

end;

procedure TForm1.bt_ablClick(Sender: TObject);
var a,b,c,d,e,f : real;
begin
     Eingabe(a,b,c,d,e,f);
     Funktionswerte(0,5a,4b,3c,2b,e,2);
     Zeichnegraph(0,5a,4b,3c,2d,e);
   // ????
end;

end.


joa, also die function fkt fehlt irgendwie ganz^^

wie gesagt wenns jemand hinbekommt, boah des wär echt geil!!



Nachtrag um 01:21h: so, ich habs mitlerweile raus, wie man in einen stringgrid schreibt, und habe ein koordinatensystem gezeichnet...aber alles andere funktioniert noch nicht....die stellen wo delphi rumspinnt sind von mir markiert....
Einloggen, um Attachments anzusehen!