![]() |
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 ?? |
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; |
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Delphi-Quellcode:
Ist das nicht (Groese)^2? Dann fehlt die Klammerung:
BMI:= Gewicht/Groese*Groese;
Delphi-Quellcode:
BMI:= Gewicht/(Groese*Groese);
|
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.
|
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:
Wieso wird Fehler nicht ausgewertet? (PS:
val(edgroese.Text,Groese,fehler);
val(edgewicht.text,Gewicht,fehler); ![]()
Delphi-Quellcode:
BMI:= Gewicht/Groese*Groese;
x = x / Groese * Groese siehe joachimd ... Klammern setzen oder ![]() 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 ( ![]() |
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Auf jeden Fall den val-Rückgabecode fehler testen.
|
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
wow, ist ja wie bei "finde 10 Fehler" :drunken:
|
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:
weglassen oder
Form1.
Delphi-Quellcode:
verwenden)
Self.
|
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 |
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Cool, danke für deine Mühen. :thumb:
|
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Code:
CASE nimmt nur ordinale Typen an, was z.B. Integer und Enums wären.
[Fehler] Ubmi.pas(54): Ordinaltyp erforderlich
Also praktisch nur Ganzzahlige Typen, aber keine Fließkommatypen oder Strings.
Code:
Die fehlenden END;
[Fehler] Ubmi.pas(86): ';' erwartet, aber '.' gefunden
Und der Rechenfehler wird dir natürlich nicht vom Compiler bemängelt, da die Syntax der Berechnung ja stimmt. |
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var Groese,Gewicht,fehler : Integer; BMI : Extended; intBMI : Integer; begin //nur zum Testen edgroese.Text:= '172'; //cm edgewicht.text:= '74'; //kg rgGeschlecht.ItemIndex:=0; // val(edgroese.Text,Groese,fehler); val(edgewicht.text,Gewicht,fehler); BMI:= (Gewicht /(Groese*Groese))*10000; //wegen cm-Eingabe lblBMI.caption:= FloatToStrF(BMI, ffFixed, 4, 2); intBMI:= Round(BMI); if rgGeschlecht.ItemIndex = 0 //Berechnung Mann then case intBMI of 16..19: pnlErgebnis.caption:= 'Untergewicht'; 20..25: pnlErgebnis.caption:='Normalgewicht'; 26..30: pnlErgebnis.caption:='Übergewicht'; 31..40: pnlErgebnis.caption:='Fettsack'; end else case intBMI of //Berechnung Frau 15..18: pnlErgebnis.caption:= 'Untergewicht'; 19..24: pnlErgebnis.caption:='Normalgewicht'; 25..29: pnlErgebnis.caption:='Übergewicht'; 30..40: pnlErgebnis.caption:='Fettsack'; end; end; |
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Die Variable Fehler sollte noch geprüft werden, genauso wie die Größe auf <> 0.
|
AW: könt ihr mir sagen was an diesem bmi rechner (versuch :D) falsch ist ??
Hallo MuschBuschAffe,
benutze bitte Groß-/Kleinschreibung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 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