Autor Thema: Verbesserung für Mid3  (Gelesen 4383 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

alexdrik

  • Gast
Verbesserung für Mid3
« am: 15. März 2011, 21:06:24 »
Läßt sich die Funktion Mid3 so schneller ausführen?

IF in1 >= in2 THEN

   IF in1 >= in3 THEN                 (* in1 ist am größten *)
      IF in2 >= in3 THEN
         mid3 := in2;
      ELSE
         mid3 := in3;
      END_IF

   ELSE                                        (* in1 ist größer als in2, aber kleiner als in3 *)
      mid3 := in1;
   END_IF

ELSE

   IF in2 >= in3 THEN                 (* in2 ist am größten *)

      IF in1 >= in3 THEN
         mid3 := in1;
      ELSE
         mid3 := in3;
      END_IF

   ELSE                                         (* in2 ist größer als in1, aber kleiner als in3 *)
      mid3 := in2;
   END_IF

END_IF
« Letzte Änderung: 15. März 2011, 21:09:08 von alexdrik »

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re:Verbesserung für Mid3
« Antwort #1 am: 18. März 2011, 13:42:19 »
mid3 wird im nächsten release folgenden code verwenden:

IF IN1 > IN2 THEN MID3 := IN1; IN1 := IN2; IN2 := MID3; END_IF;
IF IN2 > IN3 THEN IN2 := IN3; END_IF;
MID3 := SEL(IN1 > IN2, IN2, IN1);