Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PI (https://www.delphipraxis.net/151286-pi.html)

-Ptype- 11. Mai 2010 16:07

Re: PI
 
Also hier mal den Code den ich jetzt drin habe und wo bei mir dann schließlich der Fehler auftaucht:

Delphi-Quellcode:
if zahl2 < 0 then
             begin
               showmessage ('Nicht erlaubt');
             end;
             if zahl2 > 0 then
             begin
               n := 1;
               y := zahl;
             while n < zahl2 do
               zahl := zahl * y;
               n := n + 1;
             end
             else
             zahl := 1;
             end;

Der Fehler kommt bei mir bei
Delphi-Quellcode:
 zahl := 1;
und als Fehler steht dort: E2026 Konstantenausdruck erwartet

Noedel 11. Mai 2010 16:18

Re: PI
 
du hast da auch ein begin und ein end vergessen ;)

Delphi-Quellcode:
if zahl2 < 0 then
  begin
    showmessage ('Nicht erlaubt');
  end;
  if zahl2 > 0 then
  begin
    n := 1;
    y := zahl;
    while n < zahl2 do
    begin //hier begin vergessen!
      zahl := zahl * y;
      n := n + 1;
    end; //und das dazugehörige end;
  end
   else
    zahl := 1;
  end;

dominikkv 11. Mai 2010 16:23

Re: PI
 
Bitte gewöhne dir gleich von Anfang an das Einrücken an, auch wenn es mehr Arbeit bedeutet... im Endeffekt spart es aber unheimlich viel Arbeit! Vielleicht fällt dir hier etwas auf:
Delphi-Quellcode:
if zahl2 < 0 then
  begin
    showmessage ('Nicht erlaubt');
  end;
if zahl2 > 0 then
  begin
    n := 1;
    y := zahl;
    while n < zahl2 do
      zahl := zahl * y;
    n := n + 1;
  end else
    zahl := 1;
end;

-Ptype- 11. Mai 2010 16:28

Re: PI
 
Delphi-Quellcode:
if zahl2 < 0 then
  begin
    showmessage ('Nicht erlaubt');
  end;
  if zahl2 > 0 then
  begin
    n := 1;
    y := zahl;
    while n < zahl2 do
    begin //hier begin vergessen! 
      zahl := zahl * y;
      n := n + 1;
    end; //und das dazugehörige end;
  end
   else
    zahl := 1;
  end;
thx dafür aber es kommt immer noch der selbe Fehler bei: zahl := 1; :S

himitsu 11. Mai 2010 16:39

Re: PI
 
Abgesehn von dem fehlenden ELSE zwischen
Delphi-Quellcode:
end;
if zahl2 > 0 then
Zeige mal bitte die gesamte Prozedur, denn in dem aktuell gezeigten Code-Stückchen gibt es anscheinend keinen Grund für diese Fehlermeldung.



PS: genau aus solchen Gründe sollten die ersten Stunden für Themen wie
- Verwendung der IDE und der OH
- Codeformatierung
- Fehleranalyse
- Debugging
verwendet werden.
Ist jetzt kein Vorwurf an dich, sondern mehr an die Lehrer, welche oftmals selber nicht grade "richtig" Ahnung haben.

-Ptype- 11. Mai 2010 16:45

Re: PI
 
Delphi-Quellcode:
procedure TForm2.ButtonGleichClick(Sender: TObject);
{************************************************************************}
var zahl2,n : double;
    pi      : real;
begin
  zahl2 := strtofloat (Edit1.Text);
  case merk of
    plus: zahl := zahl + zahl2;
    minus: zahl := zahl - zahl2;
    mal: zahl := zahl * zahl2;
    geteilt: zahl := zahl / zahl2;
    hoch: zahl := zahl * zahl;
    wurzel: zahl := sqrt(zahl);
    hochx:  if zahl2 < 0 then // Hier Fängts An!
               begin
                 showmessage ('Nicht erlaubt');
               end
             else
             if zahl2 > 0 then
               begin
                 n := 1;
                 y := zahl;
               while n < zahl2 do
               begin
                 zahl := zahl * y;
                 n := n + 1;
               end;
             end
             else
               zahl := 1;
             end;
    wurzelx: begin
               n := zahl;
               zahl := exp((1/n)*ln(zahl2));
             end;
    prozent: begin
               n := 100;
               zahl := zahl * zahl2 / n;
             end;
  end;
    edit1.text:=floattostr(zahl);
    neue_zahl := True;
    ButtonKomma.Enabled := True;
    ButtonGleich.Enabled := False;
end;
Hier das ist die Prozedur wo der Codeschnipsel herstammt.

DeddyH 11. Mai 2010 16:48

Re: PI
 
Schließ den ganzen Code zum Label "hochx" mal in begin und end ein.
Delphi-Quellcode:
case...of
...
hochx: begin
         //Dein Code
       end;

-Ptype- 11. Mai 2010 16:51

Re: PI
 
Delphi-Quellcode:
procedure TForm2.ButtonGleichClick(Sender: TObject);
{************************************************************************} 
var zahl2,n : double;
    pi      : real;
begin
  zahl2 := strtofloat (Edit1.Text);
  case merk of
    plus: zahl := zahl + zahl2;
    minus: zahl := zahl - zahl2;
    mal: zahl := zahl * zahl2;
    geteilt: zahl := zahl / zahl2;
    hoch: zahl := zahl * zahl;
    wurzel: zahl := sqrt(zahl);
    hochx: begin
             if zahl2 < 0 then // Hier Fängts An! 
               begin
                 showmessage ('Nicht erlaubt');
               end
             else
             if zahl2 > 0 then
               begin
                 n := 1;
                 y := zahl;
               while n < zahl2 do
               begin
                 zahl := zahl * y;
                 n := n + 1;
               end;
             end
             else
               zahl := 1;
             end;
           end;
    wurzelx: begin  // HIer ist ein neuer Fehler
               n := zahl;
               zahl := exp((1/n)*ln(zahl2));
             end;
    prozent: begin
               n := 100;
               zahl := zahl * zahl2 / n;
             end;
  end;
    edit1.text:=floattostr(zahl);
    neue_zahl := True;
    ButtonKomma.Enabled := True;
    ButtonGleich.Enabled := False;
end;

Der alte fehler ist weg aber ein neuer ist da -.-

Klaus01 11. Mai 2010 16:52

Re: PI
 
Zitat:

Zitat von -Ptype-
Der alte fehler ist weg aber ein neuer ist da -.-

Und wie zeigt sich der - und wie heißt er?

Grüße
Klaus

DeddyH 11. Mai 2010 16:54

Re: PI
 
Der heißt auf Deutsch "jetzt hat er ein end zuviel". Es geht eben nichts über eine gescheite Einrückung :)


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

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