13
1 Osnovni elementi Visual Basic- a Programski jezik Visual Basic koristi sledeće simbole: - slova engleske azbuke A, B, C, D, ..., X, Y, Z - cifre dekadnog brojnog sistema 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - simbole aritmetičkih operacija + - * / \ ^ - simbole relacija <><= >= <>>< = - simbole logičkih operacija And, or, Xor, Not - specijalne simbole ? ! " % $ - službene ili ključne reči END, IF, FOR, NEXT, THEN, ELSE, CASE... * Stringovisemoguupoređivatikorišćenjemrelacijskihoperatora. Postojepravilakojatrebapoštovati: "Velikaslovasumanjanegomalaslova, "A"<"B"<"C"<"D".......<"Z" ibrojevisumanjiodslova. Osnovni tipovi podataka Tabela 2.1 : Numerički tipovi podataka Tip podataka Memorijski prostor Interval vrednosti Byte 1 byte 0 to 255 Integer 2 bytes -32,768 to 32,767 Long 4 bytes -2,147,483,648 to 2,147,483,648 Single 4 bytes -3.402823E+38 to -1.401298E-45 za negativne vrednosti 1.401298E-45 to 3.402823E+38 za pozitivne vrednosti Double 8 bytes -1.79769313486232e+308 to -4.94065645841247E-324 za negativne vrednosti 4.94065645841247E-324 to 1.79769313486232e+308 za pozitivne vrednosti Currency 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807 Decimal 12 bytes +/- 79,228,162,514,264,337,593,543,950,335 ako nisu korišćena decimalna mesta +/- 7.9228162514264337593543950335 (28 decimalnihmesta) Tabela 2.2: Nenumerički tipovi podataka Tip podataka Memorijskiprostor Interval vrednosti String (fiksne dužine) Dužinastringa 1 to 65,400 karaktera String (promenljivedužine) Dužina + 10 bytes 0 to 2 billionakaraktera Date 8 bytes January 1, 100 to December 31, 9999 Boolean 2 bytes True or False Object 4 bytes Any embedded object Variant (broj) 16 bytes Kaorealnidvostruki

Nasa skripta

Embed Size (px)

Citation preview

Page 1: Nasa skripta

1

Osnovni elementi Visual Basic- a Programski jezik Visual Basic koristi sledeće simbole:

- slova engleske azbuke

A, B, C, D, ..., X, Y, Z

- cifre dekadnog brojnog sistema

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

- simbole aritmetičkih operacija

+ - * / \ ^

- simbole relacija

<><= >= <>>< =

- simbole logičkih operacija

And, or, Xor, Not

- specijalne simbole

? ! " % $

- službene ili ključne reči

END, IF, FOR, NEXT, THEN, ELSE, CASE...

* Stringovisemoguupoređivatikorišćenjemrelacijskihoperatora. Postojepravilakojatrebapoštovati:

"Velikaslovasumanjanegomalaslova, "A"<"B"<"C"<"D".......<"Z" ibrojevisumanjiodslova.

Osnovni tipovi podataka

Tabela 2.1 : Numerički tipovi podataka

Tip

podataka

Memorijski

prostor

Interval vrednosti

Byte 1 byte 0 to 255

Integer 2 bytes -32,768 to 32,767

Long 4 bytes -2,147,483,648 to 2,147,483,648

Single 4 bytes -3.402823E+38 to -1.401298E-45 za negativne vrednosti

1.401298E-45 to 3.402823E+38 za pozitivne vrednosti

Double 8 bytes -1.79769313486232e+308 to -4.94065645841247E-324 za negativne vrednosti

4.94065645841247E-324 to 1.79769313486232e+308 za pozitivne vrednosti

Currency 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807

Decimal 12 bytes +/- 79,228,162,514,264,337,593,543,950,335 ako nisu korišćena decimalna mesta

+/- 7.9228162514264337593543950335 (28 decimalnihmesta)

Tabela 2.2: Nenumerički tipovi podataka

Tip podataka Memorijskiprostor Interval vrednosti

String (fiksne dužine) Dužinastringa 1 to 65,400 karaktera

String (promenljivedužine) Dužina + 10 bytes 0 to 2 billionakaraktera

Date 8 bytes January 1, 100 to December 31, 9999

Boolean 2 bytes True or False

Object 4 bytes Any embedded object

Variant (broj) 16 bytes Kaorealnidvostruki

Page 2: Nasa skripta

2

Variant (tekst) Dužina+22 bytes Kao znakovni tip

Praviladeklarisanjapromenljivih Promenljivima se u Visual Basic-u dodeljuju podaci. Zato bi trebalo da se program Visual Basic- a obavesti o tome

kakve će tekuće vrednosti promenljiva moći da dobija u programu. Dakle, treba deklarisati promenljive pre njihovog

korišćenja dodeljujući im ime i tip podatka.

U jeziku Visual Basic postoji onoliko tipova promenljivih koliko ima tipova podatka. Postupak prijavljivanja vrste

promenljive naziva se deklarisanje promenljive.

Dozvoljena su dva načina deklarisanja promenljive: eksplicitni i implicitni.

Eksplicitni način deklarisanja promenljive koristi službenu reč Dim. Ova naredba izgleda ovako:

Dim ImePromenljive As Vrsta promenljive, ImePromenljive As Vrsta promenljive...

1. Zbirdvabroja

PublicClass Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim A AsSingle, B AsSingle, C AsSingle

A = TextBox1.Text

B = TextBox2.Text

C = A + B

TextBox3.Text = C

EndSub

EndClass

Zbir, razlika, proizvod, količnik

Page 3: Nasa skripta

3

PublicClass Form1

PrivateSub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button3.Click

Dim A AsSingle, B AsSingle, C AsSingle, D AsSingle, F AsSingle, M AsSingle

A = txtPrviBroj.Text

B = txtDrugiBroj.Text

C = A + B

txtZbir.Text = C

D = A - B

txtRazlika.Text = D

F = A * B

txtProizvod.Text = F

M = A / B

txtKolicnik.Text = M

EndSub

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

txtPrviBroj.Text = " "

txtDrugiBroj.Text = " "

txtZbir.Text = " "

txtKolicnik.Text = " "

txtProizvod.Text = " "

txtRazlika.Text = " "

EndSub

EndClass

Srednja vrednost

Napisati Visual Basic program za određivanje srednje vrednosti unetih brojeva 4321 ,,, aaaa .

Srednja vrednost unetih brojeva dobija se kada se oni saberu i zbir podeli brojem 4:

4

4321 aaaaA

Page 4: Nasa skripta

4

Opštinsko takmičenje I zadatak

1. Zamak u daljini 6 dasaka .Prva duzine K druga K+20, treca K+40, cetvrta kao trda, peta kao drugai šesta kao prva.

Page 5: Nasa skripta

5

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim K AsInteger, KU AsInteger

K = TextBox1.Text

KU = 6 * K + 120

TextBox2.Text = KU

EndSub

1. ( pravougaona parcela sa plavim paradaizom, koliko metara kanapa je potrebno da se oiviči parcela sa crvenim paradaizom ako se zna sirina S duzina D i rastojanje izmedju parcela R) Crveni paradaiz se sadi okolo plavog.

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim D AsSingle, S AsSingle, R AsSingle, O AsSingle

D = TextBox1.Text

S = TextBox2.Text

R = TextBox3.Text

O = (S + 4 * R + D) * 2

TextBox4.Text = O

EndSub

Mama je poslala Pericu da kupi nešto u radnji. Dala mu je A kovanica od 5 dinara, B kovanica od 10 dinara. T

Institut za šumarstvo je kokstatovao da je stanje šuma i šumskog zemljišta područja Srbije nepovoljno sa više aspekata i da su funkcije šuma redukovane neracionalnim gazdovanjem u prošlosti. U želji da se obnovi šumski fond , šumsko gazdinstvo omorika napravilo je stručni plan strategije pošumljavanja. U okviru zaštite i unapređenja šumskih ekosistema sprovode se mere obnavljanja šumskih resursa.Strategija predviđa da se svaka pravougaona parcela širine L i dužine H ogradi tako što se polazeći od jednog temena postavi stablo na svakih S metara po ivicama šume ili paralelno njima unutar šume. Napisati program POŠUMLJAVANJE kojim se unose celi brojevi L,H,S i izračunava koliko stabala šumsko gazdinstvo Omorika treba da postavi tako da na opisan način način ogradi maksimalnu površinu šume .

Page 6: Nasa skripta

6

PublicClass Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim L AsInteger, H AsInteger, S AsInteger, Stabla AsInteger

L = TextBox1.Text

H = TextBox2.Text

S = TextBox3.Text

Stabla = 2 * (L \ S + H \ S)

TextBox4.Text = Stabla

EndSub

EndClass

Na takmičenju mladih izviđača timovi uvek rešavaju nekoliko različitih zadataka. Prvi zadatak je bio da naprave viseći most .Most treba da se sastoji od dva paralelna kanapa koja su vezana za obale . Treći kanap treba da se čvorovima pričvrsti za oba kanapa u cik cak tako da formira određeni broj trouglova jednakih stranica.Napisati program koji će da pomogne izviđačima da izračunaju koliko čvorova ukupno treba napraviti ako se zna da treba formirati T trouglova. T=4 izlaz : 6

Page 7: Nasa skripta

7

PublicClass Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim T AsInteger, C AsInteger

T = TextBox1.Text

C = T + 2

TextBox2.Text = C

EndSub

EndClass

Petlje i upravljačke strukture Struktura If ... Then ... Else Struktura If ... Then ... Else je najjednostavnija uslovna logička struktura. Opšti format ove strukture je: If uslov Then VB naredbe Else VB naredbe End If Oblici ove naredbe su: 1. If uslov Then naredba 2. If uslov Then naredba1 naredba2 ... naredban End If 3. If uslov Then blok naredbi1 Else blok naredbi2 End if 4. If uslov1 Then blok naredbi1 Else If uslov2 Then blok naredbi2 End if

Page 8: Nasa skripta

8

* svaka If ... Then ... Else struktura mora da se završi sa End If. Ponekad nije neophodno da se koristi Else.

3.Maksimalanbroj

PublicClass Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim A AsSingle, B AsSingle, Max AsSingle

A = TextBox1.Text

B = TextBox2.Text

If A > B Then

Max = A

Else

Max = B

EndIf

TextBox3.Text = Max

EndSub

EndClass

2. Da li je istinitizraz

4.Brojdanaprestupnagodina

Page 9: Nasa skripta

9

PublicClass Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim redniBrojM AsInteger, BrojDana AsInteger, obradamsg AsString, prestupnamsg AsString,

nButtons AsInteger

redniBrojM = TextBox1.Text

If redniBrojM < 1 Or redniBrojM > 12 Then

obradamsg = MsgBox("Broj meseca je nekorektan", 0, "Poruka o greski")

Else

SelectCase redniBrojM

Case 1, 3, 5, 7, 8, 10, 12

TextBox2.Text = "31"

Case 4, 6, 9, 11

TextBox2.Text = "30"

CaseIs = 2

nButtons = vbYesNo

prestupnamsg = MsgBox("Da li je godina prestupna", nButtons, "Prestupna

godina DA/Ne")

If prestupnamsg = vbYes Then

BrojDana = "29"

TextBox2.Text = BrojDana

EndIf

If prestupnamsg = vbNo Then

BrojDana = "28"

TextBox2.Text = BrojDana

EndIf

EndSelect

EndIf

EndSub

PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button2.Click

TextBox1.Text = ""

TextBox2.Text = ""

EndSub

EndClass

Page 10: Nasa skripta

10

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim B AsInteger, K AsInteger, D AsInteger, M AsInteger, MU1 AsInteger, MU2 AsInteger

B = TextBox1.Text

K = TextBox2.Text

D = TextBox3.Text

M = TextBox4.Text

MU1 = B * K

MU2 = B * D

If MU2 > M Then

TextBox5.Text = MU2

TextBox6.Text = "KARTON"

EndIf

If MU1 < M Then

TextBox5.Text = MU1

TextBox6.Text = "DRVO"

EndIf

Page 11: Nasa skripta

11

PublicClass Form1

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim a AsInteger, b AsInteger, c AsInteger, k AsInteger

a = TextBox1.Text

b = TextBox2.Text

c = TextBox3.Text

k = a + b + c

If (a + b * c > k) Then k = a + b * c

If (a * b + c > k) Then k = a * b + c

If (a * b * c > k) Then k = a * b * c

TextBox4.Text = k

EndSub

PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button2.Click

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

EndSub

EndClass

U jednom od zadataka mladi izviđači treba da za što kraće vreme pređu stazu na kojoj se nalazi pokretni

most. Takmičaru jedne ekipe od polazne tačke do mosta treba T sekundi. Tačno P sekundi nakon što

može da pođe sa polazne tačke ( od početka merenja) most počinje da se podiže. O trenutka podizanja pa

do spuštanja Protiče N sekundi I prelaz preko mosta za to vreme nije moguc. Nakon toga most ostaje

spušten. Takmičari za čekanje na prelaz kod mosta dobijaju negativne poene I zato je ovaj takmičar rešio

da tačno odredi kad treba da krene da bi preko mosta prešao bez zaustavljanja.Napisati program koji

učitava vremena T,P I N i određuje nakon koliko sekundi , od početka merenja vremena takmičar treba da

krene da bi najbrže prešao most , bez zaustavljanja.

5. Funkcije

Page 12: Nasa skripta

12

PrivateSub cmdObrada_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles cmdObrada.Click

Dim x AsInteger, y AsInteger

x = txtUnetiBroj.Text

If x < 0 Then

y = -5

ElseIf x < 1 Then

y = x + 2

ElseIf x < 5 Then

y = 3 * x - 1

Else

y = 2 * x

EndIf

txtResenje.Text = y

EndSub

Sa takmičenja :Potrebno je odreditibrojpločicaoblika kvadrata dimenzije P, koje su potrebne da

bi se popločala prostorija dimenzija D i S .

PrivateSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button3.Click

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

Page 13: Nasa skripta

13

TextBox4.Text = ""

EndSub

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button1.Click

Dim D AsSingle, S AsSingle, P AsSingle, R AsInteger

D = TextBox1.Text

S = TextBox2.Text

P = TextBox3.Text

R = 0

If (D Mod P <> 0) And (S Mod P = 0) Then

R = S \ P

ElseIf (D Mod P = 0) And (S Mod P <> 0) Then

R = D \ P

ElseIf (D Mod P <> 0) And (S Mod P <> 0) Then

R = (D \ P) + (S \ P) + 1

EndIf

TextBox4.Text = R

EndSub

6. Štampanjetrocifrenihbrojevauzuskov A*B*C= (A*B)2- C2

0<A=<9, 0<=B<=9, 0<=B<=9

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Button1.Click

Dim z AsInteger, y AsInteger, A AsInteger, B AsInteger, C AsInteger

For A = 1 To 9

For B = 0 To 9

For C = 0 To 9

z = A * 100 + B * 10 + C

y = (10 * A + B) ^ 2 - C ^ 2

If z = y Then

TextBox1.Text = z

EndIf

Next C

Next B

Next A

EndSub

EndClass