A programok felépítése
Minden program fő felépítése azonos, és a következőhárom részből áll.
(1) Adatbevitel,
(2) Adatfeldolgozás,
(3) Eredménykiírás.
Az adatok bevitele megvalósulhat egyrészt az adatbeviteli eszközök segítségével, tehát a billentyűzettel és az egérrel, de olvashatunk adatokat helyi vagy internetes fájlból is. Külön-
böző utasítások és függvények állnak a rendelkezésünkre, hogy a felhasználótól érkező információkat a programban is felhasználható formában át tudjuk venni. A feldolgozás alatt azt kell érteni, hogy a kapott adatokból valamilyen más jellegű információt akarunk kinyerni,
és az ehhez szükséges lépéseket valósítjuk meg. A kapott adatokat az eredménykiírás programrészben adjuk át a felhasználónak. Az eredmény az esetek többségében szöveges vagy képi adat, amit a rendelkezésünkre álló utasításokkal megjelenítünk a képernyőn, de az eredmény lehet egy új fájl, egy hang vagy bármilyen más formátumú fájl is.
Első programunk, szöveg kiíratása
Írassunk ki egy szöveget. Ehhez egy üzenetablakot fogunk használni. (MsgBox) Ennyi az egész program:
MsgBox "Üzenet", 64, "Hello World!"

Értelmezzük a programot. Maga a MsgBox annyit ír ki, hogy üzenet. A 64 megadja, milyen fajta ikont jelenítsen meg. Program neve Hello World.

Változók
Változók segítségével nem kell előre megadott adatokkal dolgoznunk, hanem bekérhetjük őket a felhasználótól. Típusuk lehet szöveges és numerikus. A szöveges adatot mindig dézőjelek közé kell tenni, míg a numerikus értékeket soha nem szabad.A változó neve csak angol betűt, számjegyet és né-hány egyedi karaktert tartalmazhat,például aláhúzásjelet. A VBScriptben nincs különbség a kis- és nagybetűk között. A változóba az egyenlőségjel operátorral helyezünk értéket. Például:kod=32
Nézzük meg az előző kódot változókkal: legyen minden információ egy-egy változóban elmentve. (uzenet, fejlec, kod)
uzenet="Üzenet" fejlec="Hello World" kod=64 MsgBox uzenet, kod, fejlec

a = "Írd " : b = "be az" c = " üzenet szövegét!" uzenet = a + b + c MsgBox uzenet, 64, "SzövegÖsszefűzése"
Kerdes = "Írd be az üzenet szövegét!" uzenet = InputBox(Kerdes) fejlec="Hello World" kod=64 MsgBox uzenet, kod, fejlec
Műveletek számokkal
Option explicit
Dim a,b,hanyados,kulonbseg,szorzat,osszeg
a=InputBox("a szám")
b=InputBox("b szám")
a=cdbl(a)
b=cdbl(b)
hanyados=a/b
kulonbseg=a-b
szorzat=a*b
osszeg=a+b
MsgBox hanyados, 64, "Hanyados"
MsgBox kulonbseg, 64, "Kulonbseg"
MsgBox szorzat, 64, "Szorzat"
MsgBox osszeg, 64, "Osszeg"
Négyzet területe, kerülete, adat bekéréssel
3 változónk lesz: oldal, terulet, kerulet. Az oldalt bekérjük a felhasználótól, a területet és kerületet kiszámoltatjuk a programmal. A végén kiíratjuk őket.
Option Explicit: amennyiben használjuk, minden változót létre kell hozni (deklarálni kell) mielőtt használjuk. Ezzel kiszürhető például, ha elgépeltük valamelyiknek a nevét, mert ilyen esetben hibaüzenetet kapunk.
Option Explicit
Dim oldal, terulet, kerulet
oldal=InputBox("A négyzet oldala:")
terulet=oldal*oldal
kerulet=oldal*4
MsgBox("Területe:" &terulet)
MsgBox("Kerülete:" &kerulet)
Téglalap kerülete, területe
Itt szükségünk lesz két változóra, a és b oldalra. Ahhoz, hogy jól működjön az összeadás, ne szövegként hanem számként kezelje a bekért adatokat szükség lesz még a cdbl függvényre is.
Option Explicit
Dim aoldal, boldal,terulet, kerulet
aoldal=InputBox("A téglalap -A- oldala:")
boldal=InputBox("A téglalap -B- oldala:")
terulet=aoldal*boldal
kerulet=(cdbl(aoldal)+cdbl(boldal))*2
MsgBox("Területe:" &terulet)
MsgBox("Kerülete:" &kerulet)
Üzemanyag költség kalkulátor
A program kérje be az útvonal hosszát. Az üzemanyag költsége fix 365Ft, ezt az ar változó rátolja. Az autónk átlag fogyasztása is fix 6 liter/100km, ezt a fogyasztas változó tárolja. Ezen adatok alapján kiszámoljuk, mennyi lesz az utazás költsége, melyet a koltseg változó fog tárolni.
Dim tav, fogyasztas, ar, koltseg
fogyasztas=6
ar=365
tav=InputBox("Távolság?")
koltseg=tav/100*ar*fogyasztas
MsgBox(koltseg)
Feltételek
Az If utasítással tudunk feltételt megadni, és vizsgálni. Nézzünk egy egyszerű példát: vizsgáljuk meg, nagyobb-e x, mint 5. Ha igen, akkor írja ki a program, hogy X nagyobb, mint 5: (ha megnézzük a fordítottját, akkor nem történik semmi, nincs mit kiírnia)
c=10 If c>5 Then MsgBox "X nagyobb, mint 5"
Az Else utasítás:
Bővítsük ki az előző példát, kérjünk be egy számot, és írassunk ki üzenetet akkor is, ha c kisebb mint 5.
c=InputBox("Kérek egy számot 1 és 10 között: ")
If c>5 Then valasz="Nagyobb, mint 5" Else valasz="Kisebb, mint 5"
MsgBox valasz
Mi a helyzet akkor, ha c=5? A megoldás az Elseif
c=InputBox("Kérek egy számot 1 és 10 között: ")
if c=5 then
v="Egyenlő öttel"
elseif c>5 then
v="Nagyobb, mint 5"
elseif c<5 then
v="Kisebb, mint 5"
End if
MsgBox v
Ha több feltétel is van… AND, OR
Például, osztható-e egy adott szám hattal? Azok a számok oszthatóak hattal, amelyek 2-vel és 3-mal is oszthatóak. A feltételek közé a jobb átláthatóság miatt érdemes zárójeleket tenni, de azok nélkül is működik.
Option Explicit
Dim szam
szam=InputBox("Vizsgalt szam: ")
if ((szam Mod 2 = 0) and (szam Mod 3 = 0)) then
MsgBox("Ez a szam oszthato hattal! " &szam)
else MsgBox("Nem oszthato hattal!") end if
Milyen számjegyekből állhat egy bináris szám? Ha a válasz 0 vagy 1, akkor helyes, ha nem akkor rossz:
Option Explicit
Dim szam
szam=InputBox("Milyen számjegyekből állhat egy bináris szám? ")
if szam = 0 or szam = 1 then
MsgBox("Helyes valasz! ")
else MsgBox("Hibas! Csak 0 vagy 1 lehet!") end if
Egy kicsit összetettebb példa. Dollár-forint átváltás. Kérjünk be a felhasználótól f betűt, ha forintora akarunk átváltani, d betűt, ha dollárra. Ha mást ír be, akkor a program adjon egy hibaüzenetet. Ha a helyes betűket kapja, számolja át a pénznemeket. Az egyszerűség kedvéért fix árfolyammal dolgozunk.
dim arfolyam, penznem, mennyit, usd, huf
arfolyam=281
penznem=InputBox("Mire váltsak át? F USD>HUF D HUF>USD")
mennyit=InputBox("Mennyit váltsak át? ")
if penznem="f" then
usd=arfolyam*mennyit
MsgBox mennyit &" dollár= "& usd&" Ft"
elseif penznem="d" then
huf=mennyit/arfolyam
MsgBox mennyit &" forint= "& huf&" $"
End if
Hibakezeléssel: (csak f vagy d betű esetén kezd átváltani)
dim arfolyam, penznem, mennyit, usd, huf
arfolyam=281
penznem=InputBox("Mire váltsak át? F USD>HUF D HUF>USD")
if penznem<>"f" and penznem<>"d" then
MsgBox "Csak d vagy f betűvel működik"
elseif penznem="f" then
mennyit=InputBox("Mennyit váltsak át? ")
usd=arfolyam*mennyit
MsgBox mennyit &" dollár= "& usd&" Ft"
elseif penznem="d" then
mennyit=InputBox("Mennyit váltsak át? ")
huf=mennyit/arfolyam
MsgBox mennyit &" forint= "& huf&" $"
End if
Ciklusok
For ciklus
Addig ismétlődik a ciklusmag, amíg a megadott számot el nem éri. Nézzünk egy példát: Írassuk ki 10x a bekért változót. (közben számolja, éppen hol tart)
Dim nev
Dim i
nev=InputBox("Név:")
For i=1 To 10
MsgBox(nev&" ismétlés száma: "&i)
Next
Nézzük meg mennyi az első 5 szám összege:
Az s változó fogja tárolni a számok összegét. Nézzük mennyi az i és az s értéke futás során:
i=1 s=1 mert ekkor még s=0 tehát s=0+1 ami 1 lesz
i=2 s=3 mert ekkor s=1 tehát s=1+2 ami 3 lesz
i=3 s=6 mert ekkor s=3 tehát s=3+3 ami 6 lesz
i=4 s=10 mert ekkor s=6 tehát s=6+4 ami 10 lesz
i=5 s= 15 mert ekkor s=10 tehát s=10+5 ami 15 lesz
Dim i,s s=0 For i=1 To 5 s=s+i Next MsgBox(„Az összeg: ” & s)
While ciklus
Addig ismétel, amíg nem teljesül a feltétel. Nézzünk egy egyszerű barkoba játékot.
A program 1 és 10 között generál egy véletlen számot, ez lesz az x változó. x=Round(Rnd()*10+0.5)
*10 hogy 1-10 között legyen a szám, +0,5, hogy biztos ne legyen 0. A Randomize függvény arra szolgál, hogy minden játékhoz új számot generáljon a program.
A felhasználótól bekérünk egy tippet, ez lesz a tipp változó. A Cdbl függvény biztosítja, hogy a bekért tipp szám (double) típusú változó legyen.
A program mindaddig fut, amíg a tipp nem lesz egyenlő a ‘gondolt’ számmal. Mivel felhasználóbarát, ezért kiírja, hogy a gondolt szám kisebb, vagy nagyobb a tippnél.
Dim tipp, x
Randomize
x=Round(Rnd()*10+0.5)
While x<>tipp
tipp=InputBox("Tipped?")
tipp=Cdbl(tipp)
If tipp>x Then
MsgBox("A keresett szám kisebb...")
ElseIf tipp<x Then
MsgBox("A keresett szám nagyobb...")
End if
Wend
MsgBox("Gratulálok!")
