'määritetään muutujat Dim luku1 As Integer Dim luku2 As Integer 'määritetään luvut If luku1 <= 0 Then luku1 = paeillinen 'määritetään tulos If luku1 And luku2 Then 'pariton Else 'parillinen End If 'tulostetaan tulos MsgBox ("luku on parillinen" & " luku on pariton") End Sub
missä mättää ku pitäis saada niinku tämmöstä tulosta että,
kone kysyy käyttäjältä inputboxilla kokonaislukua ja
Jos luku on jaollinen 2:lla
Tulosta ”Parillinen”
Muuten
Tulosta ”Pariton”
LoppuJos
Mod. edit: lisäsinpäs kooditagit
Ahaa, nyt tajuan! Mietin että mihinkäs sä tuota Andia tarvitset, mutta kun katoin aiemman keskustelusi, löysin vastauksen. En tosin ymmärrä tuota And-operaattoria, mutta ei sen väliä, esimerkkikoodini toimii :D
Valmis koodi, vaikka sitähän ei kai saisi antaa:
Dim luku As Integer luku = InputBox("Anna luku") If luku And 1 Then MsgBox "Luku on pariton" Else MsgBox "Luku on parillinen" End If
EDIT: Uusi koodi Andilla.
And-operaattori vertailee lukuja binäärimuodossa. Otetaan vaikka luvut 1, 2, 3 ja 4:
1 = 00000001 2 = 00000010 3 = 00000011 4 = 00000100
Yhdessä tavussa on kahdeksan bittiä, siksi noita binäärimuotoisia lukuja on kahdeksan. Binäärihän on ykkösiä ja nollia. And toimii siten, että se vertailee ensimmäistä että toista lukua ja jättää päälle vain ne bitit, jotka ovat molemmissa aktiivisia. Siten esimerkiksi 3 And 1 antaa vastaukseksi 1:
3 = 00000011 1 = 00000001 And ======== = 00000001
Or-operaattori puolestaan laittaa kaikki aktiiviset päälle:
3 = 00000011 1 = 00000001 Or ========= = 00000011
Xor-operaattori kytkee päälle, jos molemmat ovat erilaiset ja pois jos molemmat ovat samat:
3 = 00000011 1 = 00000001 Xor ======== = 00000010
Auttaa varmaankin ymmärtämään :)
Ai niin, tiedoksi vielä että nämä ovat todella nopeita laskutoimituksia, joten näiden käyttö on varsin järkevää.
Merri kirjoitti:
And-operaattori vertailee lukuja binäärimuodossa. Otetaan vaikka luvut 1, 2, 3 ja 4:
....
Loistoviesti! Selvensi kyllä huomattavasti. Ite kun en ole tollein pintaa syvemmältä ajatellu asioita.
Näin yksinkertaisesti sen voi tarkistaa.
If luku Mod 2 = 0 Then parillinen
Eli Mod:lla otetaan jakojäännös.
rndprogy: Lyhyempi tapa on edelleen And.
Esimerkki:
If luku And 1 Then pariton
And näyttäisi olevan myös aavistuksen verran Modia nopeampi, millä ei tietysti ole juuri väliä, ellei operaatiota joudu käyttämään silmukassa montaa kertaa peräkkäin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.