Entwickler-Ecke

Sonstiges (Delphi) - pq Formel Fehler, nur wo?


trewtrew - Mo 28.09.09 21:05
Titel: pq Formel Fehler, nur wo?
Hallo,

ich bin gerade dabei für eine Klassenarbeit zu lernen,
als Übungsaufgabe wurde uns gesagt ein Programm zu schreiben
das die Unbekannten berechnen kann.
Meiner Meinung nach ist das Programm richtig geschrieben!
Doch Delphi ist nicht ganz damit einverstanden ;-)

Schon mal vielen Dank für Antworeten

Dies sind meine Fehlermeldungen:
[Fehler] Unit1.pas(33): ',' oder ':' erwartet, aber 'BEGIN' gefunden
[Warnung] Unit1.pas(40): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
unit Unit1;

interface

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

type
TEdq = class(TForm)
Edp: TEdit;
Ed: TEdit;
EdLoes1: TEdit;
EdLoes2: TEdit;
EdKomm: TEdit;
btBerechnen: TButton;
procedure btBerechnenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Edq: TEdq;

implementation

{$R *.dfm}

procedure TEdq.btBerechnenClick(Sender: TObject);
var d,p,q,x1,x2
begin
edLoes1.Text := '';
edLoes2.Text := '';
EdKomm.Text := '';
p := StrToFloat (Edp.Text);
q := StrToFloat (Edq.Text);
d := -(p/2) * -(p/2);
if d < 0 then
begin
edKomm.text := '1 Lösung';
x1 := -(p/2);
EdLoes1.Text := FloatToStr (x1);
end
else
Begin
edkomm.Text := '2 Lösungen';
x1 := -(p/2) + d;
x2 := -(p/2) - d;
EdLoes1.Text := FloatToStr (x1);
EdLoes2.Text := FloatToStr (x2);
End;


end;

end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


ub60 - Mo 28.09.09 21:16

Du berechnest die Diskriminante falsch. Schau Dir noch mal die Formel an.

ub60


trewtrew - Mo 28.09.09 21:17

user profile iconub60 hat folgendes geschrieben Zum zitierten Posting springen:
Du berechnest die Diskriminante falsch. Schau Dir noch mal die Formel an.

ub60


hab ich jetzt verbessert, aber ich habe immer noch kein Lauffähiges Programm?


d := (-p/2) * (-p/2);


Tryer - Mo 28.09.09 21:18

.. und die Deklaration der lokalen Variablen


trewtrew - Mo 28.09.09 21:19

user profile iconTryer hat folgendes geschrieben Zum zitierten Posting springen:
.. und die Deklaration der lokalen Variablen


danke....
jetzt klappts

var d,p,q,x1,x2 :real;

das mit dem real hab ich iwie ganz vergessen!


der organist - Mo 28.09.09 22:39

sollte es nicht d := SQR(p/2)-q; sein??

Und des weiteren, du erhälst eine Lösung, wenn d=0, wenn d<0, dann gibbet keine Lösung und bei d>0 zwei stück ....