Benutzer-Werkzeuge

Webseiten-Werkzeuge


k10:k10.2:start

10.2 Auswahl – Fallunterscheidungen oder Selektion

Oft müssen Anweisungen oder eine Folge von Anweisungen in einem Anweisungsblock unter ganz bestimmten Bedingungen ausgeführt werden. Ein klassisches Beispiel ist die Berechnung der Lösungen einer quadratischen Gleichung in der allgemeinen Form a·x²+b·x+c = 0. Diese wird zuerst in die Normalform x²+p·x+q = 0 transformiert, um die Probe nach Vieta für die beiden Lösungen x1 und x2 mit x1+x2 = -p und x1·x2 = q einfach zu gestalten. Danach bestimmt man deren Lösungsvielfalt mit Hilfe der Diskriminante D mit D = (p²/4-q). Man kommt auf genau 3 unterscheidbare Fälle:

  • 1. Fall: D > 0 → 2 verschiedene reelle Lösungen oder
  • 2. Fall: D = 0 → 2 gleiche reelle Lösungen (Doppellösung) oder
  • 3. Fall: D < 0 → Keine reellen Lösungen, sondern 2 konjugiert komplexe Lösungen.

Mit dem Einsatz der Komponente gb.complex können Sie den o.a. Ansatz schnell realisieren:

Public Function CalculateRoots(fP As Float, fQ As Float) As Variant[]
  Dim fDiskriminante As Float = 0
  Dim fX1, fX2 As Variant
  Dim fXC1, fXC2 As Complex
 
  fDiskriminante = (fP * fP) / 4 - fQ
 
  Select Sgn(fDiskriminante)
    Case 1 ' D>0
       fX1 = - fP / 2 - Sqr(fDiskriminante)
       fX2 = - fP / 2 + Sqr(fDiskriminante)
       Return [fX1, fX2]
    Case 0 ' D=0
       fX1 = - fP / 2
       fX2 = fX1
       Return [fX1, fX2]
    Case Else ' D<0      
       fXC1 = Complex(- fP / 2, - Sqr(- fDiskriminante))
       fXC2 = fXC1.Conj()
       Return [fXC1, fXC2]
  End Select
 
End ' CalculateRoots(fP As Float, fQ As Float) As Variant[]

In diesem Kapitel 10.2 werden die folgenden Kontrollstrukturen beschrieben:

  • Einseitige Auswahl IF … THEN … ENDIF
  • Zweiseitige Auswahl 1 IIF(Selektor, A, B)
  • Zweiseitige Auswahl 2 IF … THEN … ELSE … ENDIF
  • Mehrfach-Auswahl 1 IF … THEN … [ ELSE IF … .. ELSE IF ] … ENDIF
  • Mehrfach-Auswahl 2 SELECT CASE … END SELECT
  • Mehrfach-Auswahl 3 Choose

Download

Artikel

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k10/k10.2/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge