Einzelnen Beitrag anzeigen

Benutzerbild von Dyami
Dyami

Registriert seit: 24. Sep 2013
Ort: Schleswig-Holstein
25 Beiträge
 
Delphi 10.3 Rio
 
#1

Taschenrechner

  Alt 2. Okt 2013, 13:44
Delphi-Version: 5
Hallo,

ich habe ein Anliegen. Ich habe einen kleinen Taschenrechner programmiert. Nichts dolles und wollte wissen, ob man auch diese ganzen IF-Abfragen verkürzen kann. Es sind nicht allzu viele, aber ich würde gerne noch etwas im Taschenrechner programmieren.

Delphi-Quellcode:
begin
  r_erg := 0;
  try
    begin
      if (Edit1.Text = 'Pflichtfeld') or (Edit2.Text = 'Pflichtfeld') or
        (Edit3.Text = 'Pflichtfeld') then
      begin
        showmessage('Pflichtfelder ausfüllen');

      end
      else
      begin
        r_Zahl1 := strtofloat(Edit1.Text);
        r_Zahl2 := strtofloat(Edit3.Text);
        S_zeichen := Edit2.Text;

        if Edit4.Text = 'then
        begin
          if S_zeichen = '+then
          begin
            r_erg := (r_Zahl1 + r_Zahl2);
          end
          else
          begin
            if S_zeichen = '-then
            begin
              r_erg := (r_Zahl1 - r_Zahl2);
            end
            else
            begin
              if S_zeichen = '*then
              begin
                r_erg := (r_Zahl1 * r_Zahl2);
              end
              else
              begin
                if S_zeichen = '/then
                begin
                  r_erg := (r_Zahl1 / r_Zahl2);
                end
                else
                  showmessage('Falsches Rechenzeichen');
              end;
            end;
          end;
        end
        else
        begin
          r_zahl3 := strtofloat(Edit4.Text);
          if S_zeichen = '+then
          begin
            r_erg := (r_Zahl1 + r_Zahl2 + r_zahl3);
          end
          else
          begin
            if S_zeichen = '-then
            begin
              r_erg := (r_Zahl1 - r_Zahl2 - r_zahl3);
            end
            else
            begin
              if S_zeichen = '*then
              begin
                r_erg := (r_Zahl1 * r_Zahl2 * r_zahl3);
              end
              else
              begin
                if S_zeichen = '/then
                begin
                  r_erg := (r_Zahl1 / r_Zahl2 / r_zahl3);
                end
                else
                  showmessage('Falsches Rechenzeichen');
              end;
            end;
          end;
        end;
      end;
    end;
  except
    showmessage('Ungültige zahlen');
  end;

  Label1.Caption := 'Ergenbis: ' + Floattostr(r_erg);

Oder muss ich das so lassen? Ich habe es mit Case versucht, aber das funktioniert leider nicht.
Also bitte ich um eure Hilfe

Danke im Vorraus

Gruß
Philipp
Philipp
  Mit Zitat antworten Zitat