Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi meckert bei Case of...kA warum?!? (https://www.delphipraxis.net/16207-delphi-meckert-bei-case-ka-warum.html)

SimOr 12. Feb 2004 14:54


Delphi meckert bei Case of...kA warum?!?
 
Jo, also delphi meckert komischerweise bei case of...was ich überhaupt nicht versteh...
also, ich hab mal so klein privat und ganz allein ein program geschrieben das die pq formel ausrechnet, so als übung.
mit dem rechnerischen gibts da auch kein problem, und ohne case of läuft das program auch, ach..ich zeig euch erstmal den source
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    //Variabeln
    P, Q, X1, X2, D   : Real;
    M                 : Integer;
    //Procedures
    procedure Pq;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Procedure TForm1.Pq;
//Eingabe und Abfrage von P, Q
begin
P:=StrtoFloat(EdP.text);
Q:=StrtoFloat(EdQ.text);
//Berechnung von "minus P halbe" und zuweisung von X1, X2
X1:=(P * -1) / 2;
X2:=(P * -1) / 2;
//Berechnung der Diskriminanten
D:=sqr(P / 2) - Q;
//If Abfrage zum verhindern von Abstürzen ( D < 0)
If D < 0 then
  begin
  Memo1.Lines.add('Die Gleichung besitzt keine Lösung');
  end
  else
//Ausrechnen von X1, X2
begin
X1:=X1 + sqrt(D);
X2:=X2 + sqrt(D);
end;
//Benutzen einer Marker Variabel für Antwortsatz
If D < 0 then
  M:=1
  else
    begin
    If D = 0 then
      M:=2
      else
      M:=3;
    end;
end;
//Case M of für Antwortsatz
Case M of
1 : Memo1.lines.add('Die Gleichung hat keine Lösung');
2 : Memo1.lines.add('Die Gleichung hat eine Lösung');
3 : Memo1.lines.add('Die Gleichung hat zwei Lösungen');
end

procedure TForm1.Button1Click(Sender: TObject);
begin
Pq;
end;

end.
also
wenn ich das case rauslasse geht das programm, auch wenns noch nich soweit ist was auszugeben, is auch inich von belang hier...aber sobald ich das case of reinschreib sagt der deklaration erwartet aber case gefunden...und hält genau hinter dem case an..?!?
naja, weiß nich was delphi von mir will..wisst ihrs?!?

Stanlay Hanks 12. Feb 2004 14:57

Re: Delphi meckert bei Case of...kA warum?!?
 
ein case bereich wird miteinem end abgeschlossen:

Delphi-Quellcode:
Case x of
  1: ...;
  2: ...;
end; //Bei dir fehlt ein END
Man liest sich, Stanlay :hi:

SimOr 12. Feb 2004 14:58

Re: Delphi meckert bei Case of...kA warum?!?
 
hmz, ich hab da doch eins...?!?

MisterNiceGuy 12. Feb 2004 14:59

Re: Delphi meckert bei Case of...kA warum?!?
 
hi, beim letzten end fehlt das Semikolon und ich zähle auch ein end zu viel. Muss mal nachzählen und evtl. ein bisschen sinnvoller einrücken, dann siehst du die Fehler schneller :)

Stanlay Hanks 12. Feb 2004 15:07

Re: Delphi meckert bei Case of...kA warum?!?
 
Delphi-Quellcode:
Procedure TForm1.Pq;
//Eingabe und Abfrage von P, Q
begin
.
.
.
  //Berechnung von "minus P halbe" und zuweisung von X1, X2
.
.
.
//Berechnung der Diskriminanten
.
//If Abfrage zum verhindern von Abstürzen ( D < 0)
  If D < 0 
  THEN
    begin
     
    end
  ELSE
//Ausrechnen von X1, X2
    begin

    end;
//Benutzen einer Marker Variabel für Antwortsatz
  IF D < 0 
  THEN
  .
  ELSE
    begin
      IF D = 0 THEN
      .
      ELSE
      .
    end;

//Case M of für Antwortsatz
Case M of
.
.
.
end;
end;
Wenn ich mich nicht vertippt hab, sollte die Struktur so in der Richtung aussehen. mir is grade auch aufgefallen, dass vor dem Case wirklich ein end zuviel war. :gruebel:

Man liest sich, Stanlay :hi:

Legolas 12. Feb 2004 15:25

Re: Delphi meckert bei Case of...kA warum?!?
 
Hallo,

ich habe das ganze mal auseinander genommen. Mein Resultat ist das ein "end" an der falschen stand. Habe es mal korriegiert und richtig formatiert.

Ich denke so sollte es funktionieren (hab's net probiert).

Delphi-Quellcode:
  private
    { Private-Deklarationen } 
    //Variabeln
    P, Q, X1, X2, D   : Real;
    M                 : Integer;
    //Procedures
    procedure Pq;
  public
    { Public-Deklarationen } 
  end;

var Form1: TForm1;

implementation

{$R *.dfm} 

Procedure TForm1.Pq;
  //Eingabe und Abfrage von P, Q
begin
  P:=StrtoFloat(EdP.text);
  Q:=StrtoFloat(EdQ.text);
  X1:=(P * -1) / 2; //Berechnung von "minus P halbe" und zuweisung von X1, X2 
  X2:=(P * -1) / 2;
  D:=sqr(P / 2) - Q; //Berechnung der Diskriminanten
  If D < 0 then //If Abfrage zum verhindern von Abstürzen ( D < 0)
  begin
    Memo1.Lines.add('Die Gleichung besitzt keine Lösung');
  end
  else
  begin
    X1:=X1 + sqrt(D); //Ausrechnen von X1, X2 
    X2:=X2 + sqrt(D);
  end;
  If D < 0 then //Benutzen einer Marker Variabel für Antwortsatz
    M:=1 
  else
  begin
    If D = 0 then
      M:=2 
      else
      M:=3;
    // end; <- Eine End zuviel
  end;
  Case M of //Case M of für Antwortsatz
    1 : Memo1.lines.add('Die Gleichung hat keine Lösung');
    2 : Memo1.lines.add('Die Gleichung hat eine Lösung');
    3 : Memo1.lines.add('Die Gleichung hat zwei Lösungen');
  end;
end; <- dieses End fehlte

procedure TForm1.Button1Click(Sender: TObject);
begin
  Pq;
end;

end.

SimOr 14. Feb 2004 09:12

Re: Delphi meckert bei Case of...kA warum?!?
 
Ja, danke...das wars...ich hab da nochwas geändert im code, das hat sich dann quasi ausgeglichen..vielen dank leute


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz