Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ?? (https://www.delphipraxis.net/177767-koent-ihr-mir-sagen-diesem-bmi-rechner-versuch-d-falsch-ist.html)

MuschBuschAffe 26. Nov 2013 14:37

könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
Code:
procedure TForm1.btncloseClick(Sender: TObject);
begin
close;
end;

procedure TForm1.btnrechnenClick(Sender: TObject);
 var Groese,Gewicht,fehler : Integer;
     BMI : real;


begin
   val(edgroese.Text,Groese,fehler);
   val(edgewicht.text,Gewicht,fehler);
   BMI:= Gewicht/Groese*Groese;


if Form1.rgGeschlecht.ItemIndex = 0  //Berechnung Mann
              then
               case BMI of
        16..19: begin
                pnlErgebnis.caption:= 'Untergewicht'
                end;
        20..25: begin
                pnlErgebnis.caption:='Normalgewicht'
                end;
        26..30: begin
                pnlErgebnis.caption:='Übergewicht'
                end;
        31..40: begin
                pnlErgebnis.caption:='Fettsack'
                end;

               else
                    begin
         case BMI of //Berechnung Frau
        15..18: begin
                pnlErgebnis.caption:= 'Untergewicht'
                end;
        19..24: begin
                pnlErgebnis.caption:='Normalgewicht'
                end;
        25..29: begin
                pnlErgebnis.caption:='Übergewicht'
                end;
        30..40: begin
                pnlErgebnis.caption:='Fettsack'
                end;

end;

end.

und wie kann ich denn die fehlermeldungen aus delphi kopieren ??

baumina 26. Nov 2013 14:45

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
formatiers einfach richtig, dass siehst du es auf einen Blick:

Delphi-Quellcode:
if rgGeschlecht.ItemIndex = 0 then //Berechnung Mann
begin // hier würde ich dir ein "begin" ans Herz legen <<-----
  case BMI of
    16..19: begin
              pnlErgebnis.caption:= 'Untergewicht';
            end;
    20..25: begin
              pnlErgebnis.caption:='Normalgewicht';
            end;
    26..30: begin
              pnlErgebnis.caption:='Übergewicht';
            end;
    31..40: begin
              pnlErgebnis.caption:='Fettsack';
            end;
  end; // hier fehlte das "end" vom case <<-----
end else // und hier ein "end" <<----
begin
  case BMI of //Berechnung Frau
    15..18: begin
              pnlErgebnis.caption:= 'Untergewicht';
            end;
    19..24: begin
              pnlErgebnis.caption:='Normalgewicht';
            end;
    25..29: begin
              pnlErgebnis.caption:='Übergewicht';
            end;
    30..40: begin
              pnlErgebnis.caption:='Fettsack';
            end;
  end; // hier fehlte das "end" vom case <<-----
end;

joachimd 26. Nov 2013 14:46

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
Delphi-Quellcode:
BMI:= Gewicht/Groese*Groese;
Ist das nicht (Groese)^2? Dann fehlt die Klammerung:
Delphi-Quellcode:
BMI:= Gewicht/(Groese*Groese);

DeddyH 26. Nov 2013 14:46

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
Case funktioniert nur mit ordinalen Typen, d.h. Typen, die einen klar definierten Vorgänger bzw. Nachfolger haben. BMI ist aber eine Fließkommazahl, Du wirst also wohl oder übel auf If-Abfragen o.ä. umstellen müssen.

himitsu 26. Nov 2013 14:47

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
kopieren: Strg+C?
Geht übrigens auch bei Fehlerdialogen.

Und notfalls hättest du das auch noch abschreiben können ... mit der dürftigen nichtvorhandenen Fehlerbeschreibung kannst du froh sein, daß es hier so viele Hellseher gibt.

Delphi-Quellcode:
val(edgroese.Text,Groese,fehler);
val(edgewicht.text,Gewicht,fehler);
Wieso wird Fehler nicht ausgewertet? (PS: Delphi-Referenz durchsuchenStrToInt)

Delphi-Quellcode:
BMI:= Gewicht/Groese*Groese;

x = x / Groese * Groese
siehe joachimd ... Klammern setzen oder Delphi-Referenz durchsuchenSqr

Und die Fehlermeldung beim "case BMI" sollte dir eigentlich sagen was du falsch machst.
Nja, ich vermute mal, du wolltes da den Wert etwas runden (Delphi-Referenz durchsuchenRound).

gammatester 26. Nov 2013 14:47

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
Auf jeden Fall den val-Rückgabecode fehler testen.

baumina 26. Nov 2013 14:51

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
wow, ist ja wie bei "finde 10 Fehler" :drunken:

himitsu 26. Nov 2013 14:56

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
Und gewöhn dir mal eine "ordentliche" Codeformatierung an.
Hab jetzt erst zufällig gesehn, da da ganz bestimmt noch ein paar END fehlen.

Zitat:

Delphi-Quellcode:
procedure TForm1.btnrechnenClick(Sender: TObject);
...
begin
...
if Form1.rgGeschlecht.ItemIndex ...

Du bist schon in TForm1, als lass' um Himmels Willen die Finger von der globalen Variable :!: (
Delphi-Quellcode:
Form1.
weglassen oder
Delphi-Quellcode:
Self.
verwenden)

MuschBuschAffe 26. Nov 2013 15:00

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
hier noch die fehler:
Code:
[Fehler]
[Fehler] Ubmi.pas(54): Ordinaltyp erforderlich
[Fehler] Ubmi.pas(70): Ordinaltyp erforderlich
[Fehler] Ubmi.pas(86): ';' erwartet, aber '.' gefunden
[Fehler] Ubmi.pas(90): Deklaration erwartet, aber Dateiende gefunden
[Fataler Fehler] Pbmi.dpr(5): Verwendete Unit 'Ubmi.pas' kann nicht compiliert werden

Der schöne Günther 26. Nov 2013 15:02

AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
 
Cool, danke für deine Mühen. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.
Seite 1 von 2  1 2      

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