![]() |
Schnittpunkt Quadartische Gleichung und lineare Funktion
Hallo,
ich will ein Programm mit Delphi programmieren, welches den bzw. die Schnittpunkte einer Quadratischen Gleichung und einer linearen Funktion bestimmt. Die Quadratische Gleichung will ich in der Form: y=ax²+bx+c angeben und die lineare Funktion in der Form: y=mx+n. Die Parameter m,n,a,b, und c will ich einlesen lassen. Die Graphen sollen in ein Koordinatensystem gezeichnet werden und der bzw. die Schnittpunkte hervor gehoben werden. Die Spezialfälle, also keine Schnittpunkte oder nur ein Schnittpunkt (wäre dann die Tangente an der Quadratischen Funktion), muss ich auch berücksichtigen. Leider hab ich noch ein paar Probleme mit Delphi und bräuchte deswegen ein wenig Hilfe. Vielleicht hat ja jemand schon mal so ein ähnliches Programm geschrieben. Über Hilfe wäre ich sehr dankbar. Beste Grüße und im voraus vielen Dank... |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Weißt du wie das klingt ??
"Ich kenne mich mit Delphi nicht aus" (ist noch ok) "Und trotzdem möchte ich keine Selbstinitiative zeigen" (sick) "Deshalb bitte ich euch, mir fertige Codestücke zu liefern, damit ich ne gute Note bekomme" (-> sicher nicht) So wird (/ kann) dir keiner helfen. Falls du Probleme an bestimmten Stellen hast, dann frag ruhig. MfG |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Herzlich willkommen in der DP.
Wenn du konktrete Fragen hast, sind wir dir gerne bereit zu helfen. Jedoch für Leute, die lediglich nur fertigen Code verlangen, haben wir kein Verständnis. Der Schlüssel liegt in der Eigeninitiative, Ansätze zu finden und auch so einen Lerneffekt zu erzielen. Da dein Eingangspost mangels obigen und #2 genannten Sachen meinen Doktrinen verstößt, empfängst du auch von mir keine Lösung. Falls du im Entstehungsprozess ernsthafte Fragen hast, dann stelle diese bitte und wir sind gern bereit, Hilfestellung zu leisten. Ebenso enthält das Forum mitsamt seinen gespeicherten Threads und der Code Library ein gewaltiges Kompensium an Informationen, welche du nutzen kannst. Und ich bin mir sicher, Teilprobleme aus deinem Gesamtproblem sind hier zu 100% behandelt und schon gelöst. Mit freundlichen Grüßen Edit: Jedoch will ich dir ein paar Ansätze für deinen Denkprozess liefern. Bedenke, was du realisieren willst. Somit musst du eine Eingabeschnittstelle schaffen, wo die quadratische und die lineare Gleichung eingetragen werden. Diese müssen dann geparst werden. Die daraus extrahierten Gleichungen können nun in einem beliebigen Bereich gezeichnet werden (zB auf ein TPaintBox). Die Berechung der Schnittstelle basiert auf mathematischen Prinzipien, die leicht umzusetzen sind. |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Also bei der Mathematik kann ich dir ein wenig weiterhelfen:
Parabel war ja Y = ax² + bx + c und die Gerade war Y = mx + n Wenn sie sich schneiden (oder berühren) sind X und Y Werte gleich. Gleichsetzen liefert: ax² + bx + c = mx + b umformen liefert ax² + (b - m) * x + (c - b) = 0 Was das Problem aus die Suche der Nullstellen einer quadratischen Gleichung reduziert. Die X-Werte einfach mit einer geigneten Lösungsformel ausrechnen und fertig ;) |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Hi,
auf das Formular zeichnen mit canvas.moveto(x0,y0) und canvas.lineto(x1,y1). Wenn du das ganz komfortabel machen willst schreib dir eine Prozedur.
Delphi-Quellcode:
Aufruf mit:
procedure linie(can:tobject;x1,y1,x2,y2:integer);
Begin (can as tcanvas).moveto(x1,y1); (can as tcanvas).lineto(x2,y2); end; linie(canvas,100,100,200,200); So jetzt haben wir dir, glaube ich genug geholfen. Den Rest machst du selber! Viel Spass! |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Hi,
bei der Prozedur linie repräsentiert der erste Parameter die Zeichenläche auf die du zeichnen willst. Die nächsten beiden Zahlen sind die Startkoordinaten und die letzten beiden die Endkoordinaten der Linie. Viel Spass |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Hi,
hier auch noch die entsprechende Routine für den Kreis.
Delphi-Quellcode:
x1,y1 --> Mittelpunkt de Kreises.
procedure Kreis(can:tobject;x1,y1,r1:integer);
Begin (can as tcanvas).Ellipse(x1-r1,y1-r1,x1+r1,y1+r1); end; r1 --> Radius. So das wars jetzt auf dem Silbertablett. Es wäre nett wenn du das Ergebnis deiner Arbeit hier publizieren könntest! Bemerkung: Ich hab dir nur geholfen um dir einen Anschubser zu geben. Vielleicht bekommst du jetzt etwas Lust einiges selbst zu probieren. Ansonsten gibts hier jede Menge Tutorials. Viel Spass! |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
es ist nicht so, dass ich überhaupt nichts machen will und nur einen quelltext geliefert haben möchte, hab mich da bestimmt unklar ausgedrückt...
also ich hab jetzt schon mal mit der image-komponente ein koordinatensystem gezeichnet...vielleicht kann mir jemand bei der zeichnung der graphen und bei den schnittstellen helfen...wie ich die schnittstellen dann farblich hervor hebe in dem koordinatensystem, weiß ich leider gar nicht...ich füg mal meine bisherige arbeit an
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls; type TForm1 = class(TForm) bild: TImage; MainMenu1: TMainMenu; Datei1: TMenuItem; Bearbeiten1: TMenuItem; Hilfe1: TMenuItem; Sc1: TMenuItem; Schnittpunkteberechnen1: TMenuItem; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Lschen1: TMenuItem; procedure FormCreate(Sender: TObject); procedure Schnittpunkteberechnen1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; function f(x:real):real; function g(z:real):real; var Form1: TForm1; a,b,c,m,n,x,y:real; xb,yb,xm,ym,k,ymax,xmax:word; implementation {$R *.dfm} function f(x:real):real; begin f:=a*x*x+b*x+c*x end; function g(z:real):real; begin g:=m*z+n end; procedure loeschen; begin with form1.bild.canvas do begin brush.color:=clwhite; pen.color:=clwhite; rectangle(0,0,form1.bild.width,form1.bild.height); end; end; procedure koordinatensystem; var i :integer; begin k:=30; xm:=form1.bild.width div 2; ym:=form1.bild.height div 2; xmax:=form1.bild.width; ymax:=form1.bild.height; with form1.bild.canvas do begin moveto (8,ym); lineto (xmax-8,ym); moveto (xm,8); lineto (xm,ymax-8); font.name:='Arial'; font.size:=8; xb:=xm-8*k; for i:=-8 to 8 do begin moveto (xb,ym); lineto (xb,ym+3); textout (xb-3,ym+8,inttostr(i)); xb:=xb+k; end; yb:=ym+8*k; for i:=-8 to 8 do begin moveto (xm,yb);lineto (xm+3,yb); if i<>0 then textout (xm+8,yb-8,inttostr(i)); yb:=yb-k; end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin koordinatensystem; x:=-10; repeat y:=f(x); xb:=round(xm+x*k); yb:=round(ym-y*k); bild.canvas.pixels[xb,yb]:=clblack; x:=x+0.001; until x>10 end; procedure TForm1.Schnittpunkteberechnen1Click(Sender: TObject); begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.text); c:=strtofloat(edit3.text); m:=strtofloat(edit4.text); n:=strtofloat(edit5.text); end; end. |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
hallo alle zusammen, also die quadratische funktion wird jetzt schon gezeichnet...aber die lineare funktion nicht, muss irgendwo ein fehler drin sein, vielleicht könnte jemand mal drüber schaun und mir sagen, was ich falsch mache...im voraus schonmal danke
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls; type TForm1 = class(TForm) bild: TImage; MainMenu1: TMainMenu; Datei1: TMenuItem; Bearbeiten1: TMenuItem; Hilfe1: TMenuItem; Sc1: TMenuItem; Schnittpunkteberechnen1: TMenuItem; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Lschen1: TMenuItem; Edit4: TEdit; Edit5: TEdit; Label4: TLabel; Label5: TLabel; procedure Lschen1Click(Sender: TObject); procedure Schnittpunkteberechnen1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; function f(x:real):real; function g(x:real):real; var Form1: TForm1; a,b,c,n,m,x,y:real; xb,yb,xm,ym,k,ymax,xmax:word; implementation {$R *.dfm} function f(x:real):real; begin f:=a*x*x+b*x+c*x end; function g(x:real):real; begin g:=m*x+n; end; procedure loeschen; begin with form1.bild.canvas do begin brush.color:=clwhite; pen.color:=clwhite; rectangle(0,0,form1.bild.width,form1.bild.height); end; end; procedure koordinatensystem; var i :integer; begin k:=30; xm:=form1.bild.width div 2; ym:=form1.bild.height div 2; xmax:=form1.bild.width; ymax:=form1.bild.height; with form1.bild.canvas do begin moveto (10,ym); lineto (xmax-10,ym); moveto (xm,10); lineto (xm,ymax-10); font.name:='Arial'; font.size:=8; xb:=xm-5*k; for i:=-5 to 5 do begin moveto (xb,ym); lineto (xb,ym+3); textout (xb-3,ym+5,inttostr(i)); xb:=xb+k; end; yb:=ym+5*k; for i:=-5 to 5 do begin moveto (xm,yb);lineto (xm+3,yb); if i<>0 then textout (xm+5,yb-5,inttostr(i)); yb:=yb-k; end; end; end; procedure TForm1.Lschen1Click(Sender: TObject); begin loeschen; end; procedure TForm1.Schnittpunkteberechnen1Click(Sender: TObject); begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.text); c:=strtofloat(edit3.text); m:=strtofloat(edit4.text); n:=strtofloat(edit5.text); koordinatensystem; x:=-5; repeat y:=f(x); xb:=round(xm+x*k); yb:=round(ym-y*k); bild.canvas.pixels[xb,yb]:=clblack; x:=x+0.001; until x>5 x:=-5; repeat y:=g(x); xb:=round(xm+x*k); yb:=round(ym-y*k); bild.canvas.pixels[xb,yb]:=clblack; x:=x+0.001; until x>5 end; end. |
Re: Schnittpunkt Quadartische Gleichung und lineare Funktion
Thread kann geschlossen werden...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz