Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin
http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109
Yksiköt Bitti, 0 tai 1. Bitti tulee englannin sanasta 'bit' ja sitä merkitään pienellä b-kirjaimella Kahdeksan bittiä muodostavat tavun, 'byte'. Tavu lyhennetään suomenkielessä t ja englannissa B kokonaisluvut väliltä 0-255. Samalla yhdellä tavulla on mahdollista ilmaista mikä tahansa kirjainmerkki Kaksi tavua muodostaa sanan (word), johon mahtuu kokonaisluku väliltä -32768-32767. Neljä tavua, kaksi sanaa, muodostaa kaksoissanan (double word), johon mahtuu kokonaisluku väliltä -2147483648 <> 2147483647
Tietokoneen luvut 10 -järjestelmä,luvut 0...9 Esim. 275 = 2*100 + 7*10 + 5 = 2* 10 2 + 7*10 1 +5*10 0 Binääri- eli 2-järjestelmä on yksinkertaisin lukujärjestelmä. Binäärijärjestelmässä on vain kaksi numeroa, 0 ja 1, joista kaikki luvut muodostetaan Esimerkkiluku: 11010 = 1*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = 26 10-järjestelmässä Voidaan merkitä esim 11010b
Tietokoneen luvut Heksadesimaali- eli 16-järjestelmä. Tavallisten numeroiden 0-9 lisäksi järjestelmä sisältää kirjaimet A-F, joista A=10, B=11, C=12, D=13, E=14 ja F=15. Esimerkkiluku: 1A 1*16^1 + A*16^0 = 16 + A = 26 Voidaan merkitä esim 1AH, 0x1A Esim 1001 1111 0011 1100 9 F 3 C = 0x9F3C
00000010 = 2 (dec), 2 (hex) 00011111 = 31 (dec), 1F (hex) 10101101 = 173 (dec), AD (hex) 11111111 = 255 (dec), FF (hex)
Muuttujat Muuttuja on tietokoneen muistissa oleva varattu paikka, johon voi tallentaa erilaista tietoa. Muuttujalla on tyyppi, joka ilmaisee siihen tallennettavan tiedon laadun: käyttäjän nimi esimerkiksi tallennetaan merkkijonomuuttujaan ja laskutoimituksen tulos lukumuuttujaan Muuttujan nimen voi määritellä vapaasti poislukien VB:n varatut sanat, esim Print Muuttujan nimen täytyy alkaa kirjaimella, eikä saa sisältää välilyöntejä Aina kannattaa käyttää kuvaavaa nimeä muuttujalle esim, autonmerkki, vuosi, hinta2011
Merkkijono eli String, mittaa ei tarvitse määritellä Vapaata tekstiä, Esim String * 10, kymmenen merkin mittainen muuttuja Kokonaislukuja ovat Byte, tavu, 0-255 Integer, 2 tavua -32768 < > 32767 Long 4 tavua -2147483648 <>2147483647 Liukulukumuuttujat, voi sisältää myös desimaaliosan Single 4 tavua -3,4 * 10^38 <>3,4 * 10^38 Double 8 tavua -1,8 * 10^308 <>1,8 * 10^308 Desimaaliluku, tarkka desimaali Currency 8 tavua, kokonaisosa 15 merkkiä + 4 desimaaliosaa Totuusarvo Boolean, True/False
Muuttujan määrittely Muuttujan määrittely, aina ohjelman/proseduurin/aliohjelma alussa Public ja Private, julkinen/ paikallinen muuttuja Dim nimi As String ' merkkijonomuuttuja Dim vuosi As Integer ' kokonaislukumuuttuja Dim matkamittari As Single ' liukulukumuuttuja Dim onkohauskaa As Boolean Muuttujan arvon määrittely nimi = "Antti" ' muuttujan arvoksi tulee merkkijono vuosi = 2004 ' muuttujan arvoksi tulee luku matkamittari = 5 * 3.2 ' muuttujan arvoksi tulee laskun tulos vuosi = vuosi - 5 ' muuttujan arvo lasketaan muuttujan perusteella
Vakio Vakion määrittely kirjoitetaan koodin alkuun Const-lauseella Jos jokin muuttuja pysyy vakiona sen sijaan että päivitetään joka paikkaan muuttujan arvo on käytänöllisempää ja luettavampaa määrittää kyseinen muuttuja vakioksi jos vakion arvo myöhemmin vaihtuu, muutos täytyy tehdä vain vakion määrittelyyn esim Dim markat As Currency, eurot As Currency markat = 30 eurot = markat / EUROKERROIN
Perusoperaatiot +summa - vähennys * kertominen / jako ( ) sulkulausekkeet ^ potenssi Normaali laskujärjestys X= (2 + 3) * 4 tulos 20
Sijoituslause sijoituslauseissa muuttujalle sijoitetaan uusi arvo = -merkin oikealla puolella lasketaan matemaattinen arvo ja tehdään siellä mahdollisesti funktiokutsuja tai matemattinen operaatioita lopputulos sijoitetaan = merkin vasemmalla puolella olevan muuttujan arvoksi Nimi = jukka Nimen arvoksi sijoitetaan jukka Hinta = 50 Muuttujan Hinta arvoksi sijoitetaan 50 Hinta = Hinta - alennus Muuttujan Hinta arvoksi sijoitetaan muuttujien Hinta ja alennus erotus Muutujien tyyppien pitää olla yhteensopivia
Boolean operaatiot = yhtäsuuri <> erisuuri > suurempi kuin < pienempi kuin >= suurempi tai yhtäsuuri <= pienempi kuin tai yhtäsuuri AND looginen ja OR looginen tai Not looginen, ei kuulu joukkoon Tulos on aina totuusarvo True tai False!
Dim Password As String Password = InputBox("Please enter the password") If (Password = qwerty") Or (Password = salasana") Then MsgBox "The Password is correct!" Else MsgBox "Incorrect Password!" End End If Dim UserName As String Dim Password As String UserName = InputBox("Please enter the user name") Password = InputBox("Please enter the password") If (Password = qwerty") And (UserName = salasana") Then MsgBox "The login is correct!" Else MsgBox "Incorrect Login!" End End If
Taulukko Dim nimet (1 To 4) As String Esim 5 x5 taulukko Dim ruudukko(1 To 5, 1 To 5) As Integer Sijoitus taulukkoon ruudukko (1,2) = 10 Taulukosta lukeminen esim viesti ikkunaan MsgBox ruudukko (1,2) 1,1 1,2 1,3 1,4 2,1 2,2 2,3 2,4 3,1 3,2. 4,3 4,4
Ehtorakenne If nimi = "Sakari" Then MsgBox "Moikka, Sakke!" End If If kuukausi = 4 Or kuukausi = 6 Or kuukausi = 9 Or kuukausi = 11 Then End If MsgBox "30 päivää" ElseIf kuukausi = 2 Then MsgBox "28 tai 29 päivää" Else MsgBox "31 päivää"
Silmukat, While While ehto lauseke End While While silloin kun ei tiedetä montako kierrosta loopin tulee kestää Ikilooppin vaara, huolehdi että muuttujan arvopäivittyy lausekkeessa Dim i As Integer While i < 5 MsgBox i i = i + 1 End While
Silmukat, For For i = jostakin To jonnekkin Lauseke Next helppo käydä läpi joukko lukuja, jotka kasvavat tai vähenevät säännöllisesti Silmukkaan liittyy muuttuja, jonka arvo kullakin silmukan kierroksella on vuorossa oleva luku Lukuvälin perään voidaan laittaa askel, jolloin muuttujan arvo kasvaa tai laskee suuremmissa tai pienemmissä erissä For i = 0 To 8 Step 2 MsgBox i Next For i = 4 To 0 Step -1 MsgBox i Next
ListBox Indeksoitu listaikkuna Indeksit 0,1,2,3... ListBox1.Items.Count, näyttää montako alkiota on listassa ListBox1.SelectedIndex, monesko alkio on valittu listasta ListBox1.Items.RemoveAt(4), poistaa indeksillä 4 olevan alkion ListBox1.Items.Add( terve ), lisää listan loppuun alkion terve ListBox1.Items(8) = terve, sijoitetaan indesillä 8olevaan alkioon terve -teksti
Dim tiedostonimi As String OpenFileDialog1.InitialDirectory = "c:\" asetetaan polku mistä haetaan OpenFileDialog1.Filter = "txt files (*.txt) *.txt All files (*.*) *.*" asetaan filtteri OpenFileDialog1.FilterIndex = 2 OpenFileDialog1.RestoreDirectory = True If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then tiedostonimi = OpenFileDialog1.FileName FileOpen(1, tiedostonimi, OpenMode.Input) ' Avaa tiedosto lukemista varten While Not EOF(1) ' Loopataan tiedoston loppuun ListBox1.Items.Add(LineInput(1)) ' luetaan rivi listboxiin End While FileClose(1) ' file kiinni MessageBox.Show(tiedostonimi) Else MessageBox.Show("Tiedoston luku epäonnistui ") End If