Visual Basic
Бања Лука, април, 2008.
ПАНЕВРОПСКИ УНИВЕРЗИТЕТ АПЕИРОН
ФАКУЛТЕТ ПОСЛОВНЕ ИНФОРМАТИКЕ
Ванредне студије
Смјер “Наставничка информатика“
Предмет: Виши програмски језици и RAD алати
Програмирање у VB
Тема:
“Рјешени примјери“
Предметни наставник
Проф. др Зоран Ж. Аврамовић, дипл.инж.елек.
Студент
Весна Пилиповић, инж. информатике
Index бр. 0027-07/ВНИ
Увод:
Visual Basic је програм контролисан (покретан) догађајима. Догађаји се могу појавити
као акција корисника као што је: клик мишем, избор ставке из менија или као резултат
акције неког другог прграма, дијела програма и сл.
У „процедуралним“ програмима сам програм контролише редослијед извођења
појединих дијелова програмског кода. Извођење почиње првом „извршном“ наредбом
и слиједи унапријед одређене путање.
У програму управљаном догађајима програмски код не слиједи унапријед одређене
путање, већ се изводе различити дијелови програмског кода као одговори на догађаје.
Догађаји могу бити покренути акцијом корисника, порукама система или других
програма као и самог програма, чији су дио. Редослијед тих догађаја одређује путању
којом ће програмски код бити изведен.
Будући да се не може предвидјети редослијед догађаја (па ни који ће се догађај
„догодити“, а који не), програмски код мора узети у обзир неке предпоставке о
„општем стању“ када се почне изводити-нпр. садржи ли поље за упис податка неку
вриједност или не и сл.
Ови ријешени примјери не садрже све елементе потребене за приказ ситуација које
могу наступити у програмима управљаним догађајима. Програми настоје пратити
нјчешћу логику која се примјењује при рјешавању ове врсте задатака. Исто тако,
настоје приказати различите типове рјешења истог или сличног програмског проблема
користећи могућности Visual Basic-a.
1

If
mtxt_PrviBroj.Text =
""
Or
mtxt_DrugiBroj.Text =
""
Then
GoTo
Greska
' pocetne vrijednosti potrebnih promjenjivih
Sadrzilac = 1
Brojac = 1
'radi dok oba broja nisu jednaka jedinici
Do
Until
(PrviBroj = 1
And
DrugiBroj = 1)
'brojac postavljam na 2, ako ostane 1 idem u beskonacnu petlju
Brojac = Brojac + 1
' prvo dijeljenje sa 2-ako moze
OstatakPrvi = PrviBroj
Mod
Brojac
OstatakDrugi = DrugiBroj
Mod
Brojac
' dijelim dalje i Brojac akumuliram u Sadrzilac dok god je
jedan od brojeva djeljiv bez ostatka
Do
Until
(OstatakPrvi <> 0
And
OstatakDrugi <> 0)
If
OstatakPrvi = 0
And
OstatakDrugi = 0
Then
PrviBroj = PrviBroj Brojac
DrugiBroj = DrugiBroj Brojac
Sadrzilac = Sadrzilac * Brojac
OstatakPrvi = PrviBroj
Mod
Brojac
OstatakDrugi = DrugiBroj
Mod
Brojac
ElseIf
OstatakPrvi = 0
Then
PrviBroj = PrviBroj Brojac
Sadrzilac = Sadrzilac * Brojac
OstatakPrvi = PrviBroj
Mod
Brojac
ElseIf
OstatakDrugi = 0
Then
DrugiBroj = DrugiBroj Brojac
Sadrzilac = Sadrzilac * Brojac
OstatakDrugi = DrugiBroj
Mod
Brojac
End
If
Loop
Loop
txt_Rezultat.Text = Sadrzilac.ToString()
Return
Greska:
MessageBox.Show(
" Unesi prirodne brojeve "
)
mtxt_PrviBroj.Clear()
mtxt_DrugiBroj.Clear()
mtxt_PrviBroj.Focus()
End
Sub
Private
Sub
mtxt_PrviBroj_Click(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
mtxt_PrviBroj.Click
mtxt_PrviBroj.Clear()
mtxt_DrugiBroj.Clear()
txt_Rezultat.Clear()
End
Sub
End
Class
Задатак 2 : Калкулатор
Написати програм који извршава 4 основне аритметичке операције.
3
Иницијални назив
објекта
Нови назив
Нови текст
TextBox1
txt_PrviBroj
TextBox2
txt_DrugiBroj
TextBox3
txt_Operacija
TextBox4
txt_Rezultat
Label1
lbl_Jednako
=
Button1
btn_Izracunaj
Izracunaj
Проблем је ријешен класично, наредбом case, у случају грешке програм се шаље
на програмску лабелу Грешка, што се сматра лошом праксом, јер прави тзв. шпагета
код. Ово се могло избјећи класичном if петљом.
У програмском коду дефинисан је догађај: клик на први текстуални бокс, који ће
узроковати пражњење свих текстуалних боксова и омогућиће нови унос.
Public
Class
frmKalkulator
Private
Sub
Button1_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
btn_Izracunaj.Click
On
Error
GoTo
err
Dim
PrviBroj, DrugiBroj, Rezultat
As
Double
Dim
Operacija
As
String
' Pretvara tekst u broj i to Double, zbog mogucnosti unosa realnih
brojeva
If
txt_PrviBroj.Text <>
""
Then
PrviBroj =
CDbl
(txt_PrviBroj.Text)
If
txt_DrugiBroj.Text <>
""
Then
DrugiBroj =
CDbl
(txt_DrugiBroj.Text)
If
txt_Operacija.Text <>
""
Then
Operacija = txt_Operacija.Text
Select
Case
Operacija
Case
"+"
: Rezultat = PrviBroj + DrugiBroj
Case
"-"
: Rezultat = PrviBroj - DrugiBroj
Case
"*"
: Rezultat = PrviBroj * DrugiBroj
Case
"/"
:
If
DrugiBroj <> 0
Then
Rezultat = PrviBroj /
DrugiBroj
Else
GoTo
err
4

'Promjenjive su: broj koji provjeravamo, brojac koraka i suma
Dim
int_Broj, i, Suma
As
Integer
' Provjeravam da li je polje za unos prazno
If
mtxt_Broj.Text =
""
Then
MessageBox.Show(
" Unesite broj koji želite provjeriti!"
)
Else
' u promjenjivu int_Broj smijestam vrijednost osobine textBox-a
int_Broj = mtxt_Broj.Text
' Sumu postavljam na 1
Suma = 1
'Racunam sumu
For
i = 2
To
int_Broj 2
If
int_Broj
Mod
i = 0
Then
Suma = Suma + i
End
If
Next
'Provjeravam da li je broj jednak sumi svojih djelitelja
If
int_Broj = Suma
Then
MessageBox.Show(
" Broj "
+ int_Broj.ToString() +
" je
savrsen!"
)
Else
MessageBox.Show(
" Broj "
+ int_Broj.ToString() +
" nije
savrsen"
)
End
If
End
If
mtxt_Broj.Clear()
mtxt_Broj.Focus()
End
Sub
Private
Sub
btn_Izlaz_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
btn_Izlaz.Click
Me
.Close()
End
Sub
End
Class
Задатак 4: Највећи заједнички дјелилац
Написати програм који израчунава највећи заједнички дјелилац два природна броја.
6
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti