Johdanto ja tavoite
Tässä osiossa tutustutaan Visual Basic:in matemaattisiin funktioihin. Tämän osion jälkeen opiskelija
osaa käyttää ja soveltaa matemaatiikkaa omissa ohjelmissaan.
Matemaattiset operaattorit
Ohjelmoinnissa tarvitaan hyvin usein peruslaskutoimituksia. Alla on esitelty seitsemän Visual Basic:n
laskutoimitusta esimerkkeineen. Tulet tarvitsemaan em. operaattoreita joten opettele ne hyvin.
Matemaattinen operaattori | Käyttötarkoitus | Esimerkki |
+ | yhteenlasku | 1 + 2 = 3 |
- | vähennyslasku | 5 - 6 = -1 |
* | kertolasku | 2 * 6 = 12 |
/ | jakolasku | 10 / 2 = 5 |
\ | jakolasku (kokonaisluku) | 15 \ 4 = 3 |
mod | jakojäännös | 11 mod 3 = 2 |
^ | potenssi | 2 ^ 3 = 8 |
Seuraavassa esimerkissä käyttäjää pyydetään syöttämään luku. Luvusta kerrotaan onko se jaollinen
kymmenellä. Jos luku on jaollinen kymmenellä, on jakojäännös nolla. Muussa tapauksessa jakojäännös
ei ole nolla.
Dim Luku As Long
Luku = Val(InputBox("Syötä luku"))
If (Luku Mod 10) = 0 Then
MsgBox "Luku " & Luku & " on jaollinen kymmenellä!", vbInformation
Else
MsgBox "Luku " & Luku & " ei ole jaollinen kymmenellä!", vbInformation
End If
Matemaattiset funktiot
VB:ssä on muutama matemaattinen funktio jota tulet tarvitsemaan. Hyvin usein tarvitset esim. jonkin
luvun itseisarvoa (esim. luvun -3 itseisarvo on 3, luvun 7 itseisarvo on 7, jne..). Alla on esitelty
kaksitoista matemaattista funktiota esimerkkien kera.
Matemaattinen funktio | Käyttötarkoitus | Esimerkki |
Abs | Itseisarvo | Abs(-6) = 6 |
Atn | Arkustangentti | Atn(1) = 0,785398163397448 |
Cos | Kosini | Cos(5) = 0,283662185463226 |
Exp | Eksponentiaali | Exp(6) = 403,428793492735 |
Fix | Kokonaisluku | Fix(5.96432) = 5 |
Int | Kokonaisluku | Int(5.96432) = 5 |
Log | Logaritmi | Log(5) = 1,6094379124341 |
Rnd | Satunnaisluku väliltä 0-1 | Rnd = 0,5795186 (tai jotain muuta) |
Sgn | Luvun etumerkki | Sgn(-642) = -1 |
Sin | Sini | Sin(6) = -0,279415498198926 |
Sqr | Neliöjuuri | Sqr(4) = 2 |
Tan | Tangentti | Tan(4) = 1,15782128234958 |
Seuraava esimerkkiohjelma demonstroi kuinka voit arpoa satunnaislukuja halutulta lukuväliltä:
Dim Alaraja, Ylaraja, Satunnaisluku As Long
Alaraja = 1
Ylaraja = 10
Randomize Timer
Satunnaisluku = Int(Rnd * (Ylaraja - Alaraja) + Alaraja) + 1
MsgBox "Satunnaisluku on " & Satunnaisluku, vbInformation