Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Problem bei Berechnung Winkel, Schleife

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Problem bei Berechnung Winkel, Schleife (2728 mal gelesen)
swxch
Mitglied
Konstrukteur


Sehen Sie sich das Profil von swxch an!   Senden Sie eine Private Message an swxch  Schreiben Sie einen Gästebucheintrag für swxch

Beiträge: 318
Registriert: 14.12.2006

erstellt am: 20. Mai. 2008 07:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


vb.txt.jpg

 
Guten Morgen Zusammen,

ich bin leider noch in den Anfängen von VB und habe nun mein erstes eigenes Programm entworfen...
Könnte vielleicht mal jemand drüber schauen, ich möchte einen Winkel berechnen im rechtwinkligen dreieck, über die eingabe von 2 gegebenen Seiten...
Problem1: Wenn ich Go Button1 betätige und Werte über Inputbox eingebe, berechnet er den Wert und macht direkt mit Go Button 2 weiter....ALso wie eine Schleife.... wollte eigentlich pro Button nur die eine Berechnung.

Problem2: wenn ich mit dem Taschenrechner rechne kommen immer abweichende Werte raus, wie ist das mit dem Bogenmaß bei VB?

Besten Dank für eure Hilfe....

Hier mal das Programm:

Public Class frmWinkel
    'Deklarieren der Variablen
    Dim a, b, c, wy, wß As String

    Private Sub cmdzurück_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdzurück.Click
        'Umblenden ins Hauptmenü
        Frmstart.Visible = True
        Me.Visible = False
    End Sub

    Private Sub cmdStart4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
        'auslesen
        c = InputBox("Die Länge der Seite c in mm?", "Abfrage", "?")
        b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
        'rechnen
        wy = Math.Atan(c / b) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel" & wy & "°")
    End Sub
    Private Sub cmdStart5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
        'auslesen
        c = InputBox("Die Länge der Seite c in mm?", "Abfrage", "?")
        a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Do While a >= c
            MsgBox("Seite a darf nicht größer Seite c sein", MsgBoxStyle.OkOnly, "Fehler")
            'erneutes auslesen
            c = InputBox("Die Länge der Seite c in mm?", "Abfrage", "?")
            a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Loop
        'rechnen
        wy = Math.Asin(c / a) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel" & wy & "°")
    End Sub
    Private Sub cmdStart6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
        'auslesen
        b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
        a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Do While b >= a
            MsgBox("Seite a darf nicht größer Seite c sein", MsgBoxStyle.OkOnly, "Fehler")
            'erneutes auslesen
            b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
            a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Loop
        'rechnen
        wy = Math.Acos(b / a) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel" & wy & "°")
    End Sub
    Private Sub cmdStart7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
        'auslesen
        b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
        c = InputBox("Die Länge der Seite c in mm?", "Abfrage", "?")
        'rechnen
        wß = Math.Atan(b / c) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel" & wß & "°")
    End Sub
    Private Sub cmdStart8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
        'auslesen
        b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
        a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Do While b >= a
            MsgBox("Die Seite a darf nicht größer Seite c sein", MsgBoxStyle.OkOnly, "Fehler")
            'erneutes auslesen
            b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
            a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Loop
        'rechnen
        wß = Math.Asin(b / a) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel" & wß & "°")
    End Sub
    Private Sub cmdStart9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
        'auslesen
        c = InputBox("Die Länge der Seite c in mm?", "Abfrage", "?")
        a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Do While c >= a
            MsgBox("Die Seite a darf nicht größer Seite c sein", MsgBoxStyle.OkOnly, "Fehler")
            'erneutes auslesen
            c = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
            a = InputBox("Die Länge der Seite a in mm?", "Abfrage", "?")
        Loop
        'rechnen
        wß = Math.Acos(c / a) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel" & wß & "°")
    End Sub
End Class

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

swxch
Mitglied
Konstrukteur


Sehen Sie sich das Profil von swxch an!   Senden Sie eine Private Message an swxch  Schreiben Sie einen Gästebucheintrag für swxch

Beiträge: 318
Registriert: 14.12.2006

Intel XEON CPU E5-1620 3,6GHz
NVIDIA Quadro K4000
SWX Premium 2014; SP3.0

erstellt am: 20. Mai. 2008 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sorry für den Doppelpost...

Ich weiß das hat keine Klasse für euch...doch allerdings bräuchte dringend mal wenigstens nen Tipp habe zwar eine Dokumentation und ein Lehrbuch leider ist dsa für mich nicht wirklich hilfreich...und ich habe eine Winkelberechnung noch nicht gemacht...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 21. Mai. 2008 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für swxch 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von swxch:
Private Sub cmdStart4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart4.Click, cmdstart9.Click, cmdstart8.Click, cmdstart7.Click, cmdstart6.Click, cmdstart5.Click
das verstehe ich so, dass die Prozedur "cmdStart4_Click" auf alle Aktionen aller anderen Buttons auch reagieren soll  wozu die Handles auf die anderen Buttons?
Meines Erachtens darf das nur heißen
Zitat:
Original erstellt von swxch:
...
Problem2: wenn ich mit dem Taschenrechner rechne kommen immer abweichende Werte raus, wie ist das mit dem Bogenmaß bei VB?...


Was heißt "abweichend", richtig falsch? Oder erst an der 10. Stelle nach dem Komma?
Ich denke, du solltest vor dem Berechnen die Strings erst in Zahlenwerte umwandeln. In diesem Fall wohl in Double. Und dabei aufpassen, was mit Punkt und Komma passiert. Ebenfalls bei der Ausgabe des Ergebnisses.

Vielleicht kannst du das Projekt ja zur Verfügung stellen?

PS: Ich habe mal deine erste Berechnung (cmdStart4_Click)in ein Testprojekt eingebaut und getestet:

Code:
Public Class Form1

    Private Sub cmdStart1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart1.Click
        Dim a As String
        Dim b As String
        Dim c As String
        Dim wy As String
        c = InputBox("Die Länge der Seite c in mm?", "Abfrage", "?")
        b = InputBox("Die Länge der Seite b in mm?", "Abfrage", "?")
        'rechnen
        wy = Math.Atan(c / b) * 180 / Math.PI
        'ausgabe
        MsgBox("Der Winkel Gamma ist " & wy & "°")
    End Sub
End Class



mit c= 3 und b=4 kommt bei mir heraus 36,869897645844
Der Windows-"Taschen"-Rechner bringt heraus 36,869897645844021296855612559093
und mein richtiger Taschenrechner sagt 36,86989765
Also alles 3 die selben Ergebnisse, auf die jeweils mögliche Stelle gerundet. Passt doch! Selbst ohne Typumwandlung.
------------------
Klaus

    www.al-ko.com | mein Gästebuch | privat...

[Diese Nachricht wurde von KMassler am 21. Mai. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

swxch
Mitglied
Konstrukteur


Sehen Sie sich das Profil von swxch an!   Senden Sie eine Private Message an swxch  Schreiben Sie einen Gästebucheintrag für swxch

Beiträge: 318
Registriert: 14.12.2006

Intel XEON CPU E5-1620 3,6GHz
NVIDIA Quadro K4000
SWX Premium 2014; SP3.0

erstellt am: 23. Jul. 2008 15:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke nochmal Klaus...
Hab ich aus Eile vor Abgabe des Projekts total vergessen...
Sehr hilfreich...habe auf der Basis dann weiter gemacht...
War nen Schulprojekt

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz