Autor Beitrag
trewtrew
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 28.09.09 21:05 
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

ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 765
Erhaltene Danke: 130



BeitragVerfasst: Mo 28.09.09 21:16 
Du berechnest die Diskriminante falsch. Schau Dir noch mal die Formel an.

ub60
trewtrew Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Mo 28.09.09 21:18 
.. und die Deklaration der lokalen Variablen
trewtrew Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: 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 ....

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin