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:
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?
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
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?