Einzelnen Beitrag anzeigen

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, 13: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