AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Graph zeichnen

Ein Thema von -Julchen- · begonnen am 8. Feb 2009 · letzter Beitrag vom 9. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von -Julchen-
-Julchen-

Registriert seit: 8. Feb 2009
Ort: Berlin
8 Beiträge
 
#1

Graph zeichnen

  Alt 8. Feb 2009, 16:20
Hallo,

wir haben die Aufgabe, ein Programm zu erstellen (delphi 5), in dem man ein Koordinatenstystem hat, daneben 4 verschiedene Funktionen anklicken kann und im unten stehenden Feld Zahlen für die Variablen eingeben kann.

Die ersten zwei Funktionen funktionieren, aber irgendwie wird die dritte Funktion nicht gezeichnet.
Weiß jemand Rat?
Wir sind leider nicht so gut in Informatik.^^

Vielen Dank im Voraus!

Hier der Quelltext:

Delphi-Quellcode:
implementation

{$R *.dfm}

var a,b,c: real;

procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin

  with image1.Canvas do
  begin
  moveto(20,220); lineto(420,220); //x-Achse
  moveto(220,20); lineto(220,420); //y-Achse
  moveto(410,215); lineto (422,220);
  lineto (410,225); //x-Pfeil
  moveto(215,30); lineto (220,18);
  lineto (225,30); //y-Pfeil
  textout(425,225,'x'); //Beschriftung
    for i:=-3 to 3 do
    begin
    moveto(220+50*i,215);
    lineto (220+50*i,225); //x-Einteilung
    moveto(215,220+50*i);
    lineto (225,220+50*i); //y-Einteilung
    textout(222+50*i,225,inttostr(i)); //Zahlen x-Achse
    if i <> 0 then
    textout (205,213+50*i,inttostr(-i)); //Zahlen y-Achse
    end;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
x,y: real;
  begin

  a:=strtofloat(Edit1.Text); //Eingabe
  b:=strtofloat(Edit2.Text);

  i:=20;
  while i < 420 do
  begin
  i:=i+1;
  x:=(i-220)/50;
  y:=a*x+b;
  j:=round((220-y*50));
  image1.Canvas.Pixels[i,j]:=clred;
  image1.Canvas.Pen.Color:=clred;
  image1.Canvas.TextOut(400,42,'y=ax+b'); //Beschriftung
  end;
  
end;



procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
x,y:real;
  begin

  a:=strtofloat(Edit1.Text); //Eingabe
  b:=strtofloat(Edit2.Text);
  c:=strtofloat(Edit3.Text);

  i:=70;
  while i<420 do
    begin
    i:=i+1;
    x:=(i-220)/50; //x skalieren
    y:=a*sqr(x)+b*x+c; //Funktion y=ax²+bx+c
    j:=round((220-y*50)); //j berechnen
    image1.Canvas.Pixels[i,j]:=clgreen; //zeichnen

    image1.Canvas.TextOut(400,100,'y=ax²+bx+c'); //Beschriftung
    end;
  end;


procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer;
x,y:real;
begin

  a:=strtofloat(Edit1.Text); //Eingabe
  b:=strtofloat(Edit2.Text);
  c:=strtofloat(Edit3.Text);

  
  i:=70;
  while i<420 do
    begin
    i:=i+1;
    x:=(i-220)/50; //x skalieren
    y:=a*sqr(x+b)+c; //Funktion y=a*(x+b)²+c
    j:=round((220-y*50)); //j berechnen
    image1.Canvas.Pixels[i,j]:=clblue; //zeichnen

    image1.Canvas.TextOut(400,100,'y=a*sqr(x+b)+c'); //Beschriftung
    end;
  end;

end;

end.
Julia
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#2

Re: Graph zeichnen

  Alt 8. Feb 2009, 16:24
Was für Werte haben a,b,c bei der dritten Funktion ?
  Mit Zitat antworten Zitat
Benutzerbild von -Julchen-
-Julchen-

Registriert seit: 8. Feb 2009
Ort: Berlin
8 Beiträge
 
#3

Re: Graph zeichnen

  Alt 8. Feb 2009, 16:39
Die Werte kann der Benutzer selbst eingeben.

So siehts aus:

Schnipp


[edit=Matze]Bild angehängt. MfG, Matze[/edit]
Miniaturansicht angehängter Grafiken
delphiqm1_115.jpg  
Julia
  Mit Zitat antworten Zitat
Noedel
(Gast)

n/a Beiträge
 
#4

Re: Graph zeichnen

  Alt 8. Feb 2009, 18:28
ich hab das ganze mal selber kompiliert (mit deinem QC) und das ganze geht wunderbar, soweit ich das sehe.
Wüsste also nicht, was da nicht stimmen sollte...
Was passiert überhaupt? Gar nichts?
  Mit Zitat antworten Zitat
Benutzerbild von -Julchen-
-Julchen-

Registriert seit: 8. Feb 2009
Ort: Berlin
8 Beiträge
 
#5

Re: Graph zeichnen

  Alt 8. Feb 2009, 19:05
Nein, es passiert gar nix.

Mir ist aber schon von Anfang an was komisches aufgefallen:
Wir haben das ja in der Schule programmiert und sollten das zu Hause weiter machen.
Also hab ich den ganzen Ordner auf meinen PC gezogen und als ich das bearbeiten wollte, ist mir aufgefallen, dass ich nicht mehr auf den grünen Pfeil klicken kann (um es abzuspielen), da dann gleich eine Fehlermeldung kommt, obwohl ich da noch NICHTS geändert hatte.

Die Fehlermeldung lautet:
[Fatal Error] Unit1.pas(6): File not found: 'Variants.dcu'

Also hab ich dann einfach immer was dazugeschrieben, es abgespeichert und "project1.exe" aufgerufen, um es mir anzugucken. Jedoch ist wie gesagt bei der dritten Funktion, bei der ich neuen Code hinzugefügt hatte, nix passiert.

Oder kann man das so nicht machen?
Julia
  Mit Zitat antworten Zitat
Noedel
(Gast)

n/a Beiträge
 
#6

Re: Graph zeichnen

  Alt 8. Feb 2009, 19:43
Am besten wäre es wohl in dem Fall, ein neues Projekt anzufangen, und den Code zu übernehmen.
So viel ist auf deinem Projekt ja nicht drauf. Aber ne Erklärung habe ich dafür auch nicht...
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#7

Re: Graph zeichnen

  Alt 8. Feb 2009, 20:13
Moin, Moin.
Ich denke, das ist kein großes Problem. Immer wenn du ein neues Formular erzeugst, werden in uses automatisch eine Reihe von Units aufgenommen, auch "Variants" - obwohl man die meist gar nicht benötigt. Und diese Units findet der Compiler auf deinem System nicht. Komisch, aber nicht weiter tragisch.
Für deinen Source benötigst du sie ebenfalls nicht. Also ist die Lösung ganz einfach: Einfach "Variants" aus der uses-Liste löschen.
Ralph
  Mit Zitat antworten Zitat
Noedel
(Gast)

n/a Beiträge
 
#8

Re: Graph zeichnen

  Alt 8. Feb 2009, 20:21
erklärt das das eigentliche Problem / Fehler / Bug ... vom TE?
Wie gesagt, ich habe mir alles aus dem QC von Julchen übernommen und einfach einen Button3, 3 Editfelder und ein Image1 auf eine sonst leere Form geklatscht und den Code eingesetzt. Alles lief problemlos. (Das KOS habe ich nicht gezeichnet )
Da kann doch nur ein Bug oÄ vorliegen?!
Oder gibts dafür eine Erklärung?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#9

Re: Graph zeichnen

  Alt 8. Feb 2009, 20:24
Meine Antwort bezieht sich (natürlich) nur auf die in #5 beklagte Fehlermeldung
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#10

Re: Graph zeichnen

  Alt 8. Feb 2009, 20:26
Zitat von taaktaak:
Meine Antwort bezieht sich (natürlich) nur auf die in #5 beklagte Fehlermeldung
Ist doch klar... Die Unit "Variants" gab es in Delphi 5 doch noch garnicht^^
Von daher einfach aus der Uses Klausel entfernen, und schon sollte es kein Problem beim Kompilieren geben
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:34 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