Einzelnen Beitrag anzeigen

Zwock

Registriert seit: 14. Sep 2005
Ort: Erlensee
20 Beiträge
 
#1

Problem mit 2 Bedingungen in einer IF Schleife!

  Alt 13. Okt 2005, 18:21
Hi Leute!
Wiedereinmal bin ich auf eure Hilfe angewiesen.
Ich soll wiedereinmal etwas für den Informatik-Kurs programmieren.
Dabei geht es dabei um einen Idealgewicht-berechner. Ich stelle euch meinen Gedankengang und meinen Code vor, damit ihr Denkansatz-Fehler u. Code Fehler ausmachen könnt. Vielen Dank schon im Voraus!

Aufgabenstellung:

Einen Idealgewichtserrechner programmieren! Die Formel für das männliche IDealgewicht ist: Körpergröße -100, und davon 95%. Wir sollen 2% +/- einbeziehen.

Meine Lösung: Ein Programm mit 2 Edit-Feldern (Größe/Gewicht), und einem Button "Antwort". Hat man beides eingetippt und klickt auf "Antwort", wird in 2 Variablen (IdealHigh; IdealLow - beides Real) das idealgewicht gespeichert. In IdealHigh also die Körpgeröße -100 * 0.97 (95% + 2% = 97% weg. der erwähnten 2 Prozent Karenz), und in IdealLow das Ganze mit 0.93 (93%, wieder weg. der Karenz). Das Ganze wird mit dem eingetippten Gewicht verglichen. Wenn IdealHigh kleiner als das eingetippte Gewicht ist, hat man übergewicht. Ist IdealLOW größer als das eingetippte Gewicht, hat man untergewicht.
Mein Problem ist nun das Idealgewicht, denn bei meiner Lösung (siehe Code unten), wird mir sobald ich auf 150 cm, 54 KG (IDealgewicht für 150 cm) eintippe, passiert beim klicken auf den Antwortbutton einfach garnichts! Was mache ich falsch?

Delphi-Quellcode:
 
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm2 = class(TForm)
    RGGender: TRadioGroup;
    LHeight: TLabel;
    LWeight: TLabel;
    EHeight: TEdit;
    EWeight: TEdit;
    BAnswer: TButton;
    BEnd: TButton;
    procedure BAnswerClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  IdealHigh: Real;
  IdealLow: Real;

implementation

{$R *.dfm}

procedure TForm2.BAnswerClick(Sender: TObject);
begin

 if RGGender.ItemIndex = 0 then // einfach nicht beachten ist nur zur Geschlechtsfeststellung//
    IdealHigh:= StrToFloat(EHeight.Text) - 100;
    IdealHigh:= IdealHigh * 0.97;
    IdealLow:= StrToFloat(EHeight.Text) - 100;
    IdealLow:= IdealLow * 0.93;


 if IdealHigh < StrToFloat(EWeight.Text) then
    ShowMessage ('Sie haben Übergewicht!')

 else if IdealLow > StrToFloat(EWeight.Text) then
     ShowMessage ('Sie haben Untergewicht!')

 else if (IdealHigh >= StrToFloat(EWeight.Text)) and
         (IdealLow <= StrToFloat(EWeight.Text)) then
     ShowMessage ('Sie haben Idealgewicht!');
end;

end.
Denke nie gedacht zu haben, denn das Denken der Gedanken ist gedankenloses Denken!
  Mit Zitat antworten Zitat