rechthoekige driehoek

Status
Niet open voor verdere reacties.

NICKVO

Gebruiker
Lid geworden
15 mrt 2010
Berichten
30
ik ben een wiskundig programmatje aan het maken, waarbij je dit krijgt:
een rechthoekige driehoek
ABC
c = 90°


je hebt wat je ziet op de afbeelding in de bijlage (ik weet niet hoe ik afbeelding hieren krijg ^^)

de opdracht is gekozen ( rechthoekige driehoek)
het programma moet doen:
er worden minstens 2 extra dingen ingegeven (1 zijde en nog iets)
daarmee berekent het programma al de rest.
hou er rekening mee dat dit bedoelt is voor zeer oude pc's , die leerlingen op school gebruiken, en die een vb-programma dat vastloopt niet aankunnen, (veiligheden ZITTEN erin)
alleen lukt het niet echt.
(probleem zit bij de hoeken denk ik)

dit heb ik:
Code:
ElseIf soort = 3 Then
            'programma DREIHOEK          
            azijdes = 0
            ahoek = 1

            'wat is wat? 
            '-----------------------------
            'ZIJDE A =

            If Txta.Text = "" Or Not IsNumeric(Txta.Text) Then
                Txta.Text = 0
                gza = 0
            ElseIf Txta.Text <= 0 Then
                MessageBox.Show("Zijdes mogen niet 0 zijn, of kleiner, anders heb je geen driehoek", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                'programma reset
            Else
                azijdes = azijdes + 1
                gza = 1
                za = CDec(Txta.Text)
            End If

            'ZIJDE B =

            If Txtb.Text = "" Or Not IsNumeric(Txtb.Text) Then
                Txtb.Text = 0
                gzb = 0
            ElseIf Txtb.Text <= 0 Then
                MessageBox.Show("Zijdes mogen niet 0 zijn, anders heb je geen driehoek", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                'programma reset
            Else
                azijdes = azijdes + 1
                gzb = 1
                zb = CDec(Txtb.Text)
            End If

            'ZIJDE C =
            If Txtc.Text = "" Or Not IsNumeric(Txtc.Text) Then
                Txtc.Text = 0
                gzc = 0
            ElseIf Txtc.Text <= 0 Then
                MessageBox.Show("Zijdes mogen niet 0 zijn, anders heb je geen driehoek", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                GoTo <5>
            Else
                azijdes = azijdes + 1
                gzc = 1
                zc = CDec(Txtc.Text)
                If gzb = 1 And gzc = 1 Then
                    'controle of zc² = zb² + za²
                End If
            End If

            'HOEK A =
            If (Txtha1.Text = "" Or Txtha1.Text = 0 Or Not IsNumeric(Txtha1.Text)) And (txtha2.Text = "" Or txtha2.Text = 0 Or Not IsNumeric(txtha2.Text)) And (Txtha3.Text = "" Or Txtha3.Text = 0 Or Not IsNumeric(Txtha3.Text)) Then
                ghoeka = 0
            Else

                If Txtha1.Text = "" Or Not IsNumeric(Txtha1.Text) Or Txtha1.Text = 0 Then
                    hoeka1 = 0
                Else
                    hoeka1 = CUShort(Txtha1.Text) * (Math.PI / 180)
                End If

                If (txtha2.Text = "" Or txtha2.Text = 0 Or Not IsNumeric(txtha2.Text)) Then
                    hoeka2 = 0
                Else
                    hoeka2 = CUShort(txtha2.Text) * (Math.PI / 10800)
                End If

                If (Txtha3.Text = "" Or Txtha3.Text = 0 Or Not IsNumeric(Txtha3.Text)) Then
                    hoeka3 = 0
                Else
                    hoeka3 = CUShort(Txtha3.Text) * (Math.PI / 648000)
                End If
                ahoek = ahoek + 1
                ghoeka = 1
                hoeka = hoeka1 + hoeka2 + hoeka3
            End If
            'HOEK B =
            If (Txthb1.Text = "" Or Txthb1.Text = 0 Or Not IsNumeric(Txthb1.Text)) And (Txthb2.Text = "" Or Txthb2.Text = 0 Or Not IsNumeric(Txthb2.Text)) And (Txthb3.Text = "" Or Txthb3.Text = 0 Or Not IsNumeric(Txthb3.Text)) Then
                ghoekb = 0
            Else

                If Txthb1.Text = "" Or Not IsNumeric(Txthb1.Text) Or Txthb1.Text = 0 Then
                    hoekb1 = 0
                Else
                    hoekb1 = CUShort(Txthb1.Text) * (Math.PI / 180)
                End If

                If (Txthb2.Text = "" Or Txthb2.Text = 0 Or Not IsNumeric(Txthb2.Text)) Then
                    hoekb2 = 0
                Else
                    hoekb2 = CUShort(Txthb2.Text) * (Math.PI / 10800)
                End If

                If (Txthb3.Text = "" Or Txthb3.Text = 0 Or Not IsNumeric(Txthb3.Text)) Then
                    hoekb3 = 0
                Else
                    hoekb3 = CUShort(Txthb3.Text) * (Math.PI / 648000)
                End If
                ahoek = ahoek + 1
                ghoekb = 1
                hoekb = hoekb1 + hoekb2 + hoekb3
            End If
            'HOEK C =
            hoekc = Math.PI / 2




            '+++++++++++++++++++++++++++++++++++++++++++++++

            If azijdes = 0 Then
                MessageBox.Show("Je moet minstens 1 zijde weten", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If


            hoektot = hoeka + hoekb + hoekc
            atot = azijdes + ahoek
            If atot < 3 Then
                MessageBox.Show("Je moet minstens 2 gegevens weten (naast de rechte hoek).", "error", MessageBoxButtons.OK, MessageBoxIcon.Error)


            ElseIf hoektot = Math.PI And ahoek = 3 Then
                MessageBox.Show("De twee hoeken die jij opgaf, zijn samen te groot of te klein.(moeten samen 90° zijn)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

                'ElseIf zc <> Math.Sqrt(za ^ 2 + zb ^ 2) Then
                ' MessageBox.Show("De zijdes die jij opgaf kunnen niet; 'zijde c'² moet gelijk zijn aan 'zijde b'² + 'zijde a'²", "error", MessageBoxButtons.OK, MessageBoxIcon.Error)


            ElseIf gza = 1 And gzb = 1 Then
                zc = (za ^ 2 + zb ^ 2) ^ (1 / 2)
                hoeka = Math.Asin(za / zc)
                hoekb = Math.Asin(zb / zc)

                '(klaar)
            ElseIf gzb = 1 And gzc = 1 Then
                za = (zc ^ 2 - zb ^ 2) ^ (1 / 2)
                hoekb = Math.Asin(zb / zc)
                hoeka = Math.Asin(za / zc)
                '(klaar)
            ElseIf gza = 1 And gzc = 1 Then
                zb = (zc ^ 2 - za ^ 2) ^ (1 / 2)
                hoeka = Math.Asin(za / zc)
                hoekb = Math.Asin(zb / zc)
                '(klaar)

            ElseIf gza = 1 And ghoeka = 1 Then
                hoekb = (Math.PI / 2) - hoeka
                zc = Math.Sin(hoeka) / za
                zb = Math.Sqrt((zc ^ 2) - (za ^ 2))
                '(klaar)
            ElseIf gza = 1 And ghoekb = 1 Then
                hoeka = (Math.PI / 2) - hoekb
                zc = Math.Cos(hoekb) / za
                zb = Math.Sqrt((zc ^ 2) - (za ^ 2))
                '(klaar)

            ElseIf gzb = 1 And ghoeka = 1 Then
                hoekb = (Math.PI / 2) - hoeka
                zc = Math.Cos(hoeka) / zb
                za = Math.Sqrt((zc ^ 2) - (zb ^ 2))
                '(klaar)
            ElseIf gzb = 1 And ghoekb = 1 Then
                hoeka = (Math.PI / 2) - hoekb
                zc = Math.Sin(hoekb) / zb
                za = Math.Sqrt((zc ^ 2) - (zb ^ 2))
                '(klaar)

            ElseIf gzc = 1 And ghoeka = 1 Then
                hoekb = (Math.PI / 2) - hoeka
                za = Math.Sin(hoeka) * zc
                zb = Math.Sqrt((zc ^ 2) - (za ^ 2))
                '(klaar)
            ElseIf gzc = 1 And ghoekb = 1 Then
                hoeka = Math.PI / 2 - hoekb
                zb = Math.Sin(hoekb) * zc
                za = Math.Sqrt((zc ^ 2) - (zb ^ 2))
                '(klaar)
            End If
korte "verduidelijking":
g(iets) = gegeven(iets) : 1 = ja, 0 = nee
a(iets = aantal(iets)
iets-letter = a/B/C - hoek/zijde
(iets)tot = totale hoeveelheid van dat iets

voor de makkelijkheid heb ik gewoon de hele map in bijlage, ^^
(in 2 stukken, anders was het te groot)

kan er is iemand naar kijken?
 

Bijlagen

  • naamloos.jpg
    naamloos.jpg
    100,9 KB · Weergaven: 52
  • map1.zip
    map1.zip
    18,9 KB · Weergaven: 20
  • map2.zip
    map2.zip
    91,5 KB · Weergaven: 22
En wat lukt er precies niet?
Het is best veel code om te lezen. Als je vertelt wat precies het probleem ermee is dan kunnen wij wat gerichter zoeken.
 
het stukje voor van "soort = 3" werkt niet;
het verwerk-stukje is in orde (denk ik)
maar het inlezen (met veiligheden) van de gegevens, en het uitvoeren lukt niet zo goed,
graag suggesties/oplossingen
 
Laatst bewerkt:
de opdracthgever (leerkracht)

ik weet dat ik dit niet moet gebruiken als huiswerk-oplosmiddel, maar heb toestemming van leerkracht, en ik vraag niet om hele programma's (of dat is toch niet de bedoeling)
 
Van school (6e bericht) denk ik:D

Volgens, mij is het inderdaad niet de bedoeling dat je je huiswerk hier dumpt...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan