Avatar billede jsc Nybegynder
28. september 2002 - 17:50 Der er 13 kommentarer og
3 løsninger

sinus, cosinus og tangens (evt. sinh, cosh og tanh)

Hejsa Eksperter...

Jeg er helt overbevist om at det findes nogle kommandoer der definere sinus, cosinus og tangens. Men jeg kan ikke finde dem, og hvis jeg fik/fandt dem, ville jeg nok heller ikke lige kunnet bruge dem, så derfor hvordan laver jeg sin, cos og tan i vb?? Og evt. sinh, cosh, tanh???

/jsc
Avatar billede fiskesuppe Nybegynder
28. september 2002 - 17:56 #1
Har du ikke prøvet at søge på Google? Der er MANGE sider om emnet...:
http://www.google.com/search?q=cos+sin+tan+visual+basic&ie=UTF-8&oe=UTF-8&hl=da&lr=
Avatar billede jsc Nybegynder
28. september 2002 - 18:05 #2
det er helt rigtigt at der er masser af materiale, men det er ikke så godt når den ikke regner rigtigt!!
jeg tog et kig her: http://www.pgacon.com/VB6BB.HTM

jeg skal desuden også bruge disse kommandoer: tan^-1, sin^-1 og cos^-1

/jsc
Avatar billede jsc Nybegynder
28. september 2002 - 18:06 #3
men det kan jo være at de hedder sådan som jeg har skrevet
Avatar billede jsc Nybegynder
28. september 2002 - 18:10 #4
det med at den regner forkert er fordi den regner i radianer og ikke grader... så jeg vil gerne have mere info om dette forplem også (jeg giver flere point for de ekstra svar)

/jsc
Avatar billede fiskesuppe Nybegynder
28. september 2002 - 18:15 #5
Så kan du jo bare bruge lidt matematik til at få det til at passe, så det bliver i grader. Det vil jo bare ikke altid give mening, f.eks. hvis du regner på bølgefunktioner.

1° = pi/180 rad = 0,01745
1 rad = 180°/pi = 57,2958°
Avatar billede fiskesuppe Nybegynder
28. september 2002 - 18:17 #6
Ups, jeg glemte lige at sætte en enhed ind i slutningen af linje 1:
1° = pi/180 rad = 0,01745 rad
Avatar billede jsc Nybegynder
28. september 2002 - 18:19 #7
det er helt forstået det du siger!
så hvis jeg f.eks. har 30°, så hedder formlen, der regner om til radian 30/pi... Men det er jo ikke det jeg er ude efter.., jeg vil ikke regne RAD

/jsc
Avatar billede fiskesuppe Nybegynder
28. september 2002 - 18:21 #8
Nej, jeg har jo også skrevet to omregningsformler:
1. ° -> rad
2. rad -> °

se mit svar 18.15.43
Avatar billede jsc Nybegynder
28. september 2002 - 18:41 #9
ja okay.. jeg kan godt se hvor du vil hen, så skal jeg bare lave de største omregninger, det gør selvfølgelig heller ikke noget! Men så mangler jeg kun et svar og det er på hvad man skriver istedet for tan^-1, sin^-1 og cos^-1... disse kommandoer virker nemlig ikke!

/jsc
Avatar billede mikker Nybegynder
28. september 2002 - 20:13 #10
Kan du bruge noget af det her?

http://www.eksperten.dk/spm/147202

- Mikker
Avatar billede mikker Nybegynder
28. september 2002 - 20:13 #11
Avatar billede mikker Nybegynder
28. september 2002 - 20:16 #12
Med hensyn til invers er der dårlige nyheder...

http://www.eksperten.dk/spm/166513

Sig til hvis det ikke er nok...
- Mikker
Avatar billede sion Nybegynder
28. september 2002 - 22:43 #13
Funktionerne i VB er simpelt nok; sin(Tal), cos(Tal) og tan(Tal). Funktionerne til invers sin, -cos og -tan er lidt mere advanceret, men hvis du har brug for dem, kan jeg godt indsætte en lille kodestump jeg har lavet til at beregne disse...
-Sion
Avatar billede jsc Nybegynder
29. september 2002 - 13:17 #14
sion -> det lyder godt hvis du har noget kode :) Jeg vil meget gerne se lidt nærmere på det...
Avatar billede jsc Nybegynder
29. september 2002 - 13:22 #15
mikker -> dine links henviser til en masse, der sikkert er godt, jeg fatter bare ikke noget af det.. så - kom igen :)
Avatar billede sion Nybegynder
30. september 2002 - 10:04 #16
OK, sæt følgende i et modul:

'--------------
Global Const PI = 3.14159265358979

Public Function ArcSin(Tal As Single, Optional Radianer As Boolean = True) As Single
    Dim Resultat As Single, Grader As Single
   
    If Tal = 1 Then
        Resultat = PI / 2
    Else
        Resultat = Atn(Tal / Sqr(-Tal * Tal + 1))
    End If
    If Radianer = True Then
        ArcSin = Resultat
    Else
        Grader = Replace(Resultat, ".", ",")
        ArcSin = RadTilGrad(Resultat)
    End If
End Function

Public Function ArcCos(Tal As Single, Optional Radianer As Boolean = True) As Single
    Dim Resultat As Single, Grader As Single
   
    If Tal = 1 Then
        Resultat = PI / 2
    Else
        Resultat = Atn(-Tal / Sqr(-Tal * Tal + 1)) + 2 * Atn(1)
    End If
    If Radianer = True Then
        ArcCos = Resultat
    Else
        Grader = Replace(Resultat, ",", ".")
        ArcCos = RadTilGrad(Resultat)
    End If
End Function

Public Function ArcTan(Tal As Single, Optional Radianer As Boolean = True) As Single
    Dim Resultat As Single, Grader As Single
   
    Resultat = Atn(Tal)
    If Radianer = True Then
        ArcTan = Resultat
    Else
        ArcTan = Resultat * (180 / PI)
    End If
End Function

Public Function RadTilGrad(Radianer As Single) As Single
    RadTilGrad = Radianer * PI / 180
End Function

Public Function GradTilRad(Grader As Single) As Single
    GradTilRad = Grader * 180 / PI
End Function
'---------------

Således skal det gøres :D
Hvis du ofte laver mat-programmer, kan du jo gemme modulet under "...VB98\Templates\Modules", for så kan du vælge modulet under "Add Module".
-Sion
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester