Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wurzel ziehen (https://www.delphipraxis.net/102654-wurzel-ziehen.html)

Sani2003 15. Nov 2007 13:07

Re: Wurzel ziehen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

hab mir das Thema mal durchgelesen aber für mein Problem noch keine Antwort gefunden....

Das Programm soll die ach so schöne Mitternachtsformel lösen.

Hier der Quellcode:

Delphi-Quellcode:
unit sqrt;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Math;

type
  TForm1 = class(TForm)
    Edit_a: TEdit;
    Edit_b: TEdit;
    Edit_c: TEdit;
    Edit_x1: TEdit;
    Edit_x2: TEdit;
    Button_solve: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Button_clear: TButton;
    Button_exit: TButton;
    procedure Edit_bExit(Sender: TObject);
    procedure Edit_cExit(Sender: TObject);
    procedure Button_solveClick(Sender: TObject);
    procedure Button_exitClick(Sender: TObject);
    procedure Button_clearClick(Sender: TObject);
    procedure Edit_bEnter(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a,b,c,d,e,x1,x2  :real;


implementation

{$R *.DFM}


procedure TForm1.Edit_bExit(Sender: TObject);
begin
     b:=strtofloat(edit_b.text);
end;

procedure TForm1.Edit_cExit(Sender: TObject);
begin
     c:=strtofloat(edit_c.text);
end;

procedure TForm1.Button_solveClick(Sender: TObject);
begin

  if a <> 0 then
  begin
     d:=(sqr(b))-(4*a*c);
     if d > 0 then
     begin
       e:=sqrt(d);                       //[u][b]<--------  Fehlerstelle !![/b][/u]
       x1:=(-b+e)/(2*a);
       x2:=(-b-e)/(2*a);
       edit_x1.Text:=floattostr(x1);
       edit_x2.text:=floattostr(x2);
     end
     else
       showmessage('Aus negativen Zahlen kann keine Wurzel gezogen werden!');
     end
  else
     showmessage('Division durch 0 ist unzulässig!');
end;



procedure TForm1.Button_exitClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.Button_clearClick(Sender: TObject);
begin
  edit_a.Clear;
  edit_b.Clear;
  edit_c.Clear;
  edit_x1.Clear;
  edit_x2.Clear;
end;

procedure TForm1.Edit_bEnter(Sender: TObject);
begin
  a:=strtofloat(edit_a.text);
end;

end.
Als Fehler kommt beim kompilieren:

'.' erwartet aber '(' gefunden.

Ich hab erst angefangen mit Programmieren also verezeiht wenn ich den Wald vor lauter Bäumen nicht sehe...

Danke für die Hilfe.

Sani2003

jakobwenzel 15. Nov 2007 13:10

Re: Wurzel ziehen
 
Versuch mal, deine Unit nicht so wie eine Funktion, die du benutzt, zu nennen.

Sani2003 15. Nov 2007 13:16

Re: Wurzel ziehen
 
Danke für die schnelle Antwort.
Geht das denn ohne weiteres? also einfach umbenenenn ist ja nicht so prikelnd...
Gibts da nen Trick das alle Verknüpfungen automatisch geändert werden?

[EDIT]
DANKE DAS WARS !!!!
Jetzt gehts, Prima :-D
[/EDIT]

jakobwenzel 15. Nov 2007 14:22

Re: Wurzel ziehen
 
Die Alternative wär gewesen, System.sqrt beim Aufruf zu schreiben, um Delphi klar zu sagen, das du die Funktion sqrt aus der Unit System willst und nicht die Unit sqrt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Seite 3 von 3     123   

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