Бања Лука, април, 2008.

ПАНЕВРОПСКИ УНИВЕРЗИТЕТ АПЕИРОН

ФАКУЛТЕТ ПОСЛОВНЕ ИНФОРМАТИКЕ

Ванредне студије

Смјер “Наставничка информатика“

Предмет: Виши програмски језици и RAD алати

Програмирање у VB

Тема:

“Рјешени примјери“

Предметни наставник

Проф. др Зоран Ж. Аврамовић, дипл.инж.елек.

Студент

Весна Пилиповић, инж. информатике

Index бр. 0027-07/ВНИ

Увод:

Visual Basic је програм контролисан (покретан) догађајима. Догађаји се могу појавити 
као акција корисника као што је: клик мишем, избор ставке из менија или као резултат 
акције неког другог прграма, дијела програма и сл.
У   „процедуралним“   програмима   сам   програм   контролише   редослијед   извођења 
појединих дијелова програмског кода. Извођење почиње првом  „извршном“ наредбом 
и слиједи унапријед одређене путање.
У програму управљаном догађајима   програмски код не слиједи унапријед одређене 
путање, већ се изводе различити дијелови програмског кода као одговори на догађаје. 
Догађаји   могу   бити   покренути   акцијом   корисника,   порукама   система   или   других 
програма као и самог програма, чији су дио. Редослијед тих догађаја одређује путању 
којом ће програмски код бити изведен.
Будући   да   се   не   може   предвидјети   редослијед   догађаја   (па   ни   који   ће   се   догађај 
„догодити“,   а   који   не),   програмски   код   мора   узети   у   обзир   неке   предпоставке   о 
„општем стању“ када се почне изводити-нпр. садржи ли поље за упис податка неку 
вриједност или не и сл.
Ови ријешени примјери не садрже све елементе потребене за приказ ситуација које 
могу   наступити   у   програмима   управљаним   догађајима.   Програми   настоје   пратити 
нјчешћу   логику   која   се   примјењује   при   рјешавању   ове   врсте   задатака.   Исто   тако, 
настоје приказати различите типове рјешења истог или сличног програмског проблема 
користећи могућности Visual Basic-a.

1

background image

        

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

background image

        

'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

Želiš da pročitaš svih 31 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti