vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: pq-Formel automatisieren 
Autor: Manfred X
Datum: 28.03.11 18:28

Hallo!

Wenn Du statt "IsNumeric" zu verwenden, lieber einen Fehler auffängst,
muss die Error-Sprungmarke ganz nach hinten in der Routine.
Danach kommt nur noch die Fehlermeldung und End Sub.
Keine weiteren Anweisungen.
Eine Abfrage der Textboxen auf Leerstring ist unzureichend.

Wenn a = 0 im Dialog gesetzt wird, liegt keine quadratische Gleichung vor.

Bei der Berechnung muss zunächst die Determinante
bestimmt werden. Danach folgt die Fallunterscheidung:
keine, eine oder zwei reelle Lösungen der Gleichung
(d.h. der Ausdruck unter der Wurzel kann negativ werden.
Das führt dann zu einer Fehlermeldung).

Private Sub CB_Berechnen_Click()
 
Dim a#, b#, c#, p#, q#, diskr#, x1#, x2#
Const eps# = 0.0000001
 
On Error GoTo Fehler
 
If Not IsNumeric(tb_a.Text) Or Not IsNumeric(tb_b.Text) Or _
Not IsNumeric(tb_c.Text) Then _
MsgBox ("Unzulässige oder fehlende Eingabe(n)"): Exit Sub
 
a = CDbl(tb_a.Text): b = CDbl(tb_b.Text): c = CDbl(tb_c.Text)
If Abs(a) < eps Then MsgBox ("a: ungleich 0 eingeben"): Exit Sub
 
p = b / a: q = c / a
 
 
'Determinante berechnen
diskr = (p / 2) * (p / 2) - q
'Fallunterscheidung durchführen und Lösung berechnen
If diskr < -eps Then
   lb_Result.Caption = "Keine reelle Lösung (neg. Diskriminante)"
ElseIf Abs(diskr) <= eps Then
   lb_Result.Caption = CStr(Round(-p / 2, 4))
Else
   x1 = -p / 2 + Sqr(diskr)
   x2 = -p / 2 - Sqr(diskr)
   'Lösungen gerundet in ein "Lösungslabel" übertragen
   lb_Result.Caption = CStr(Round(x1, 4)) & "      " & CStr(Round(x2, 4))
 
   'Kontrollrechnung (optional)
   If Abs(x1 ^ 2 * a + x1 * b + c) > 2# * eps Then Stop
   If Abs(x2 ^ 2 * a + x2 * b + c) > 2# * eps Then Stop
End If
 
Exit Sub
 
Fehler:
MsgBox "Fehler ist aufgetreten" & vbCrLf & Err.Description
 
End Sub
MfG
Manfred

Beitrag wurde zuletzt am 28.03.11 um 18:31:07 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
pq-Formel automatisieren2.911marie9325.03.11 05:56
Re: pq-Formel automatisieren1.389ModeratorRalfE25.03.11 09:24
Re: pq-Formel automatisieren1.388marie9325.03.11 21:05
Re: pq-Formel automatisieren1.340Franki26.03.11 05:57
Quadratische Gleichung??2.300Manfred X26.03.11 17:31
Re: pq-Formel automatisieren1.386marie9327.03.11 19:08
Re: pq-Formel automatisieren1.271Franki28.03.11 03:14
Re: pq-Formel automatisieren1.255Manfred X28.03.11 14:15
Re: pq-Formel automatisieren1.296marie9328.03.11 16:52
Re: pq-Formel automatisieren1.315Manfred X28.03.11 17:57
Re: pq-Formel automatisieren1.369Manfred X28.03.11 18:28
Re: pq-Formel automatisieren1.380marie9331.03.11 14:20
Re: pq-Formel automatisieren1.356Manfred X31.03.11 16:41
Re: pq-Formel automatisieren1.400Manfred X31.03.11 17:18
Re: pq-Formel automatisieren1.214marie9306.04.11 15:51
Re: pq-Formel automatisieren1.253marie9306.04.11 20:10
Re: pq-Formel automatisieren1.199Manfred X06.04.11 20:25
Re: pq-Formel automatisieren1.342Franki07.04.11 05:50
Re: pq-Formel automatisieren1.378marie9307.04.11 13:44
Re: pq-Formel automatisieren1.334Manfred X07.04.11 13:53
Re: pq-Formel automatisieren1.374Franki08.04.11 04:30
Re: pq-Formel automatisieren1.240marie9311.04.11 22:10
Re: pq-Formel automatisieren1.445Manfred X12.04.11 10:56
Re: pq-Formel automatisieren1.313Franki13.04.11 03:24

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel