AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Schnittpunkt Quadartische Gleichung und lineare Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Schnittpunkt Quadartische Gleichung und lineare Funktion

Ein Thema von Benni28 · begonnen am 11. Mär 2009 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Benni28

Registriert seit: 11. Mär 2009
Ort: Lutherstadt Wittenberg
4 Beiträge
 
Delphi 7 Personal
 
#1

Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 11. Mär 2009, 20:46
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...
Benjamin Kranepuhl
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#2

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 11. Mär 2009, 21:44
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
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 11. Mär 2009, 21:52
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.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 11. Mär 2009, 23:36
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
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 12. Mär 2009, 06:15
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:
procedure linie(can:tobject;x1,y1,x2,y2:integer);
   Begin
     (can as tcanvas).moveto(x1,y1);
     (can as tcanvas).lineto(x2,y2);
   end;
Aufruf mit:
linie(canvas,100,100,200,200);

So jetzt haben wir dir, glaube ich genug geholfen. Den Rest machst du selber!

Viel Spass!
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 12. Mär 2009, 06:18
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
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 12. Mär 2009, 06:45
Hi,

hier auch noch die entsprechende Routine für den Kreis.

Delphi-Quellcode:
procedure Kreis(can:tobject;x1,y1,r1:integer);
   Begin
     (can as tcanvas).Ellipse(x1-r1,y1-r1,x1+r1,y1+r1);
   end;
x1,y1 --> Mittelpunkt de Kreises.
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!
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benni28

Registriert seit: 11. Mär 2009
Ort: Lutherstadt Wittenberg
4 Beiträge
 
Delphi 7 Personal
 
#8

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 12. Mär 2009, 15:25
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.
Benjamin Kranepuhl
  Mit Zitat antworten Zitat
Benni28

Registriert seit: 11. Mär 2009
Ort: Lutherstadt Wittenberg
4 Beiträge
 
Delphi 7 Personal
 
#9

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 13. Mär 2009, 14:49
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.
Benjamin Kranepuhl
  Mit Zitat antworten Zitat
Benni28

Registriert seit: 11. Mär 2009
Ort: Lutherstadt Wittenberg
4 Beiträge
 
Delphi 7 Personal
 
#10

Re: Schnittpunkt Quadartische Gleichung und lineare Funktion

  Alt 16. Mär 2009, 15:57
Thread kann geschlossen werden...
Benjamin Kranepuhl
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr.
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