PANEVROPSKI UNIVERZITET APEIRON FAKULTET POSLOVNE INFORMATIKE
Vanredne studije
Smjer „Informacina tehnologija ”
Predmet: VIZUAL BASIC
PRIMJERI OSNOVNIH VB APLIKACIJA
Predmetni nastavnik
Prof. dr Zoran Ž. Avramović, dipl.inž.elek. d ipl.inž.elek. .
Student
Džanić Emina,inžinjer elektrotehnike Index br. 167-08
Banja Luka, Juni 2009.
Uvod Basic, kao programski jezik je prešao dug razvojni put. Zahvaljujući Microsoft-u Microsoft -u postao je profesionalni razvojni alat i standard za razvoj aplikacija u Windows okruženju. Princip objektnog programiranja u Windows-u, koji je dosledno prenet na Visual Basic, se zasniva na tri ključna termina: 1. Svojstva ( Properitis) 2. Metode ( Methods) 3. Dogadjaje ( Events) Ako bi napravili poređenje sa čovjekom ( u ovom primjeru ) objekt mogla bi se povući paralela: Svojstva čovjeka bi bila njegove fizičke osobine: težina, visina, boja očiju... Metode bi bile njegove sposobnosti u stručnom smislu: sposobnost da projektuje zgradu, popravi automobil, napravi računarski program. Događaji bi bili načini na koje čovjek reaguje na spoljnu sredinu i svoje okruženje. Cjelokupni program je podijeljen na mnoštvo dijelova koji se izvršavaju kada korisnik izvrši neku akciju. Na primjer, akcija bi mogla biti klik na komandno dugme. U tom slučaju komandno dugme je objekat. U njegova svojstva spada tekst koji je ispisan na njemu. njemu. Dugme prepoznaje kada korisnik klikne na njega (događaj) i mi za taj događaj ( Click ) tog objekta ( CommandButton ) pišemo kod. Ovaj kod će se startovati i izvršiti samo kada se korisnik klikne na komandno dugme. Programiranje vođeno događajima je u stvari manji ili veći broj segmenata programa koje korisnik aktivira svojim akcijama. U ovom radu prikazano je dvadeset primjera riješenih zadataka.
.
2
Zadatak 1. 1. Tekst zadatka
Napisati program koji generiše formu sa tekstom "Pozdrav sv ijetu" i jednom kontrolom tipa button čijim pritiskom se forma zatvara. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() End End Sub
4. Opis promjenljivih
Promjenljivih nema..
5. Opis rješenja Program je vrlo jednostavan. Na formi su jedna kontrola tipa label za prikazivanje teksta "Pozdrav svijetu!" i jedna kontrola tipa button sa natpisom "Zatvori me!". Na pritisak dugmeta, tj. na njegov
Click događaj izvršava se naredba End koja završava program i forma se zatvara. 6. Izgled forme u izvršnom modu
Isti kao i u dizajn modu. 7. Opis rada programa
Program prikazje tekst "Pozdrav svijetu!" te na pritisak dugmeta zatvara formu.
8. Uputstvo za korišćenje i napomene Pritisnuti dugme "Zatvori me!"
3
Zadatak 2. 1. Tekst zadatka
Napisati program koji generiše formu sa tekstom "Pozdrav svijetu" i jednom kontrolom tipa button čijim pritiskom se forma zatvara. Na zatvaranje forme prikazati dijalog sa potvrdom kraja programa. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() If MsgBox("Da li ste sigurni da zelite zatvoriti ovaj program?" _ & vbCrLf & vbCrLf & "Za potvrdu pritisnite Yes!", _ vbQuestion + vbYesNo, "Zatvaranje programa") = vbYes Then End End If End Sub
4. Opis promjenljivih
Promjenljivih nema..
5. Opis rješenja Program je vrlo jednostavan. Na formi su jedna kontrola tipa label za prikazivanje teksta "Pozdrav svijetu!" i jedna kontrola tipa button sa natpisom "Zatvori me!". Na pritisak dugmeta, tj. na njegov
Click događaj izvršava se procedura za obradu tog događaja u kojoj se koristi MsgBox MsgBox da bi se potvrdio kraj šrograma, tj. izvršavanje naredbe End koja završava program. Naime, program. Naime, MsgBox vraća vrijednost koja govori koje je dugme pritisnuto koju koristimo u If naredbi bi smo izvršili odgovarajuće akcije, u ovom slučaju završili program 6. Izgled forme u izvršnom modu
Isti kao i u dizajn modu. 7. Opis rada programa
Program prikazje tekst "Pozdrav svijetu!" te na pritisak dugmeta zatvaranja:
"Zatvori me" traži potvrdu
4
Na pritisak dugmeta Yes program se zatvara dok na pritisak dugmeta No glavna forma ostaje otvorena.
8. Uputstvo za korišćenje i napomene Pritisnuti dugme "Zatvori me!". Odgovoriti na postavljeno pitanje.
Zadatak 3. 1. Tekst zadatka
Napisati program
koji za dvije unešene stranice izračunava dužinu treće stranice pravouglog trougla. Za unos dužina stranica koristiti kontrole tipa textbox. Onu stranicu čija dužina nije unešena izračunati. Na formi nacrtati pravougli trougao i textbox -ove rasporediti prema odgovarajučim stranicama trougla. Izračunavanje treće stranice vršiti pritiskom na dugme na kome
treba da stoji tekst "Izracunaj". 2. Izgled forme u dizajn modu
5
3. Izvorni kod programa
Private Sub Command1_Click() Dim A, B, C, x A = Val(Text1.Text) B = Val(Text2.Text) C = Val(Text3.Text) If Text1.Text = "" Then x = Sqr((C * C) - (B * B)) Text1.Text = x End If If Text2.Text = "" Then x = Sqr((C * C) - (A * A)) Text2.Text = x End If If Text3.Text = "" Then x = Sqr((A * A) + (B * B)) Text3.Text = x End If End Sub 4. Opis promjenljivih
služe za čuvanje dužina stranica koje su unešene, dok x služi za čuvanje izračunate dužine stranice. Promjenljive A, B i H
5. Opis rješenja
se učitavaju unešene vrijednosti dužina stranica pretvorene u brojčane vrijednost, kako ne bi došlo do nepredviđene greške u slučaju unosa teksta u polja za dužine stranica. Treća stranica se izračunava na osnovu jednačine Pitagorine teoreme c 2 = a2 + b2, gdje su a U varijable A, B i H
i b katete a c je hipotenuza.
Izračunava se ona stranica za koju nije unešena dužina. Rezultat se upisuje u prazni textbox.
6
6. Izgled forme u izvršnom modu
7. Opis rada programa
Za a = 3, b = 4 izračunaće se c = 5. Za c = 10, b = 4 izračunaće se a = 9.16515138991168 (prikazano na sljedećoj slici, prije pritiska na dugme "Izracunaj")
8. Uputstvo za korišćenje i napomene
Unijeti dužine za dvije stranice i pritisnuti dugme "Izracunaj". Izračunaće se dužina treća stranice pravouglog trougla.
7
Zadatak 4. 1. Tekst zadatka
Poboljšati program iz prethodnog zadatka tako da program daje upozorenje ukoliko je uneše no manje ili više od dvije stranice te ukoliko se unesu dužine koje mogu proizvesti nepredviđenu grešku pri izračunavanju treće (nepoznate) dužine stranice. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() Dim A, B, C, x Dim praznih As Integer praznih = 0 If Text1.Text = "" Then praznih = praznih + 1 If Text2.Text = "" Then praznih = praznih + 1 If Text3.Text = "" Then praznih = praznih + 1 If praznih <> 1 Then MsgBox "Unijeli ste manje vbOKOnly, "Nepravilan unos"
ili
vise
od
dvije
stranice.",
vbExclamation
+
Exit Sub End If A = Val(Text1.Text) B = Val(Text2.Text) C = Val(Text3.Text) If A < 0 Or B < 0 Or C < 0 Then MsgBox
"Dužina
stranica
ne
moze
biti
negativna.",
vbExclamation
+
vbOKOnly,
"Nepravilan unos" Exit Sub End If
8
If Text3.Text <> "" And C <= A + B Then MsgBox "Hipotenuza (c) mora biti najveca stranica.", vbExclamation + vbOKOnly, "Nepravilan unos" Exit Sub End If If Text1.Text = "" Then x = Sqr((C * C) - (B * B)) Text1.Text = x End If If Text2.Text = "" Then x = Sqr((C * C) - (A * A)) Text2.Text = x End If If Text3.Text = "" Then x = Sqr((A * A) + (B * B)) Text3.Text = x End If End Sub
4. Opis promjenljivih
Isto kao u prethodnom zadatku uz dodatnu varijablu praznih
(neunešenih) polja na formi.
koja služi za čuvanje broja praznih
5. Opis rješenja
Algoritam za izračunavanje nepoznate stranice je potpuno isti kao i u prethodnom zadatku. Ovaj program je poboljšan u tome što se prije samog izračunavanja stranice provjera va da li je nepoznata tačno jedna stranica i ako jeste vrši se izračunavanje dok se u suprotnom prikazuje upozorenje te se izračunavanje ne vrši. Dim praznih As Integer praznih = 0 If Text1.Text = "" Then praznih = praznih + 1 If Text2.Text = "" Then praznih = praznih + 1 If Text3.Text = "" Then praznih = praznih + 1 If praznih <> 1 Then MsgBox "Unijeli ste manje ili vise od dvije stranice.", vbExclamation + vbOKOnly, "Nepravilan unos" Exit Sub End If
se upozorenje i u slučajevima kad je unesena negativna dužina stranice ili kateta veća od hipotenuze. Osim toga, prikazuje
If A < 0 Or B < 0 Or C < 0 Then MsgBox "Dužina stranica ne moze biti negativna.", vbExclamation + vbOKOnly,
"Nepravilan unos" Exit Sub End If
9
If txtC.Text <> "" And C <= A + B Then MsgBox "Hipotenuza (c) mora biti najveca stranica.", vbExclamation + vbOKOnly, "Nepravilan unos" Exit Sub End If
6. Izgled forme u izvršnom modu
Izgled glavne forme sa izračunatom dužinom nepoznate strani ce:
Izgled upozorenja:
10
7. Opis rada programa
Program vrši izračunavanje kao u prethodnom zadatku. Na unos nepravilnih podataka prikazuje se upozorenje. - Slučaj unosa više ili manje od dvije stranice:
- Slučaj negativne stranice:
- Slučaj hipotenuze manje od katete:
11
8. Uputstvo za korišćenje i napomene
Unijeti dužine za dvije stranice i pritisnuti dugme "Izracunaj". Izračunaće se dužina treća stranice pravouglog trougla.
Za nepravilne ulazne podatke prikazuje se odgovarajuća poruka. Zadatak 5. 1. Tekst zadatka
Napisati program koji proizvoljan tekst napisan u predviđeno polje dodaje u listu pritiskom na odgovarajuće dugme. Realizovati i brisanje iz liste pomoću odgovarajućeg dugmeta. Pri brisanju se iz liste uklanja obilježeni element, a ako element nije obilježen onda ukloniti zadnji element u listi. Ukoliko je lista prazna onemogućiti brisanje. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() 'Dodaj u listu string koji je trenutno u textBoxu List1.AddItem Text1.Text 'Ako dugme za brisanje nije omoguceno, omoguci ga 'jer je upravo dodan element u listu pa lista sigurno nije prazna If (Command2.Enabled = False) Then Command2.Enabled = True End If End Sub Private Sub Command2_Click() 'Ako lista nije prazna ukloni oznaceni element u listi. 'Ako nije oznacen ni jedan element ukloni zadnji element. 'Ako je lista prazna unemoguci koristenje dugmeta za brisanje
12
If (Not (List1.ListCount = 0)) Then If List1.SelCount > 0 Then List1.RemoveItem (List1.ListIndex) Else List1.RemoveItem (List1.ListCount - 1) End If If (List1.ListCount = 0) Then Command2.Enabled = False End If End Sub 'Pri ucitavanju forme u memoriju provjerava se da li ima elemenata 'u listi te se dugme za brisanje onemogucava ako je lista prazna 'jer bi u protivnom nastala greska ukoliko bi se pokusao brisati 'element iz prazne liste. Private Sub Form_Load() If (List1.ListCount = 0) Then Command2.Enabled = False End If End Sub
4. Opis promjenljivih
U programu se ne koristi niti jedna posebna promjenljiva osim korištenih kontrola sa forme. 5. Opis rješenja Za unos proizvoljnog teksta koristi se textbox kontrola Text1. Lista koja treba da se puni i prazni je listbox kontrola sa nazivom List1. Dodavanje teksta iz textbox- a se vrši pr itiskom na dugme Dodaj (Command1) . To je moguće uraditi
i pritiskom na tipku Enter, jer je Default property ove kontrole podešen na True vrijednost, ili pritiskom na Alt+D jer je Caption property podešen na &Dodaj. Dodavanje u listu se vrši u proceduri za obradu Click događaja ove kontrol e pozivanjem metode AddItem datog listbox-a. Nakon ovoga se dogme za brisanje omogućuje ( Command2.Enabled = True) ukoliko je ono bilo onemogućeno. Slično dodavanju, uklanjanje iz liste se vrši u proceduri za obradu Click događaja kontrole Command2.Ukoliko je neki element u listi obilježen, taj element se uklanja iz liste pomoću RemoveItem metoda: List1.RemoveItem (List1.ListIndex)
Ukoliko nije obilježen ni jedan element u listi, iz liste se uklanja zadnji element: List1.RemoveItem (List1.ListCount - 1)
Nakon svakog uklanjanja elementa iz liste provjerava se ima li u listi još elemenata te se dugme Command2 onemogućuje ukoliko je lista prazna: If (List1.ListCount = 0) Then Command2.Enabled = False
Naravno, čim se program pokrene potrebno je onemogućiti dugme za uklanjanje sa liste ako je lista prazna, kako bi se onemogućio pritisak na ovo dugme. To se vrši u proceduri Form_Load koja se pokreće odmah nakon učitavanja forme u memoriju, a prije njenog prikazivanja na ekranu: Private Sub Form_Load() If (List1.ListCount = 0) Then Command2.Enabled = False End If End Sub
13
6. Izgled forme u izvršnom modu
7. Opis rada programa
U nastavku je prikazano nekoliko izgleda forme sa tekstom koji se dodaje i uklanja. - Dodavanje teksta u listu:
- Uklanjanje elementa liste:
14
8. Uputstvo za korišćenje i napomene
U polje "Tekst koji se dodaje u listu:" upisati proizvoljan tekst i pritisnuti dugme Dodan (ili Enter ili Alt+D) da bi se tekst dodao u listu. Za brisanje obilje ženog elementa iz liste britisnuti dugme Ukloni (ili Alt+U).
Zadatak 6. 1. Tekst zadatka
Napisati program koji tekst upisan u jednu textbox kontrolu modifikuje tako da sva slova pretvara u mala slova i takav novi tekst upisuje u drugu tekst kontrolu. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() Dim i As Integer Dim duzina As Integer Dim znak As String duzina = Len(Text1.Text) Text2.Text = "" For i = 1 To duzina znak = Mid(Text1.Text, i, 1) If znak >= "A" And znak <= "Z" Then znak = Chr(Asc(znak) - Asc("A") + Asc("a")) Text2.Text = Text2.Text & znak Next i End Sub
4. Opis promjenljivih
U programu se, osim kontrola na formi, koriste tri promjenljive: i – cjelobrojna
pomjenljiva koja služi kao brojač u For petlji da bi se mogao dohvatiti svaki pojedinačni znak unešenog teksta. duzina – cjelobrojna promjenljiva koja čuva dužinu unešenog teksta. 15
znak – znakovna promjenljiva koja sadrži trenutni znak unešenog teksta koji se obrađuje.
5. Opis rješenja U ovom programu se koristi osobina ASCII tabele da su slova engleske abecede poredana baš po abecedi i to mala slova redom jedno za drugim te velika slova redom jedno za drugim. Pri tome nije bitno gdje se u ASCII tabeli nalaze ovaj niz znakova niti je bitno da li su velika slova ispred maloh ili obratno.
Unešeni tekst se mijenja u mala slova tako što se uz pomoć For petlje prolazi kroz unešeni tekst znak po znak od početka do kraja teksta, te se provjerava da li trenutni znak ima ASCII kod između A i Z engleske abecede. Ako je odgovor pozitivan, taj znak se pretvara u malo slovo t ako što se relativan položaj tog znaka u odnosu na slovo A u ASCII tabeli dodaje ASCII kod malog slova 'a' te se na taj način dobija ascii znak novodobijenog slova. To slovo se ponovo dodjeljuje promjenljivoj znak te se vrijednost te promjenljive dodaje na trenutnu vrijednos teksta u kontrolo txtRezultat.
Textbox kontrole su podešene tako da se tekst prelama u novi red ukoliko je duži nego što mož stati u jedan red (podešen je Multiline atribut na True). Da bi se pretvaranje moglo izvesti i na pritisak tipk e Enter, podešena je vrijednost propery -ja Default kontrole cmdPretvori na True. 6. Izgled forme u izvršnom modu
7. Opis rada programa
Na sljedećem primjeru vidi se tekst koji je pretvoren u mala slova.
16
8. Uputstvo za korišćenje i napomene
Unijeti šeljeni tekst u gonje polje. Pritisnuti dugme "U mala". U donjem polju će biti prikazan rezultantni tekst. Pretvaranje je moguće izvršiti i pritiskom na tipku Enter na tastaturi ili pritiskom na Alt+M.
Zadatak 7. 1. Tekst zadatka
Napisati program koji tekst upisan u jednu textbox kontrolu modifikuje tako da sve znakove osim cifara zamjenjuje sa praznim znakom (' ') te takav novi tekst upisuje u drugu tekst kontrolu. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() Dim i As Integer Dim duzina As Integer Dim znak As String duzina = Len(Text1.Text) Text2.Text = "" For i = 1 To duzina znak = Mid(Text1.Text, i, 1) If znak < "0" Or znak > "9" Then znak = " " Text2.Text = Text2.Text & znak Next i End Sub
4. Opis promjenljivih
Kao i u prethodnom zadatku, i u ovom programu se, osim kontrola na formi, koriste tri promjenljive: i – cjelobrojna
pomjenljiva koja služi kao brojač u For petlji da bi se mogao dohvatiti svaki pojedinačni znak unešenog teksta. 17
duzina – cjelobrojna promjenljiva koja čuva dužinu
unešenog teksta. znak – znakovna promjenljiva koja sadrži trenutni znak unešenog teksta koji se obrađuje. 5. Opis rješenja I u ovom programu se koristi osobina ASCII tabele da su cifre poredane jedna za drugom po
veličini, tj. od 0 do 9. Cifre se izdvajaju tako što se uz pomoć For petlje prolazi kroz unešeni tekst znak po znak od početka do kraja teksta, te se provjerava da li trenutni znak ima ASCII kod između znaka 0 i znaka 9. Ako je odgovor negativan, tj. ako je ASCII kod znaka manji od ASCII koda cifre 0 ili veći od ASCII koda cifre 9, taj znak se zamjenjuje praznim znakom. Taj znak se ponovo dodjeljuje promjenljivoj znak te se vrijednost te promjenljive dodaje na trenutnu vrijednost teksta u kontrolo txtRezultat.
Textbox kontrole su podešene tako da se tekst prelama u novi red ukoliko je duži nego što mož stati u jedan red (podešen je Multiline property na True). Da bi se pretvaranje moglo izvesti i na pritisak tipke Enter, podešena je vrijednost propery-ja Default kontrole cmdPretvori na True. 6. Izgled forme u izvršnom modu
7. Opis rada programa
Primjer obrađenog teksta:
Vidi se da program može biti koristan prilikom izdvajanja nekih brojčanih vrijednosti iz teksta, kao što je broj telefona. 18
8. Uputstvo za korišćenje i napomene
Unijeti šeljeni tekst u gonje polje. Pritisnuti dugme "U mala". U donjem polju će biti prikazan rezultantni tekst sa brojčanim vrijednostima. Pretvaranje je moguće izvršiti i pritiskom na tipku Enter na tastaturi ili pritiskom na Alt+M.
Zadatak 8. 1. Tekst zadatka
Napisati program koji unešeni tekst prikazuje na formi i omogućava njegovo proizvoljno pomjeranje pomoću odgovarajućih kontrola za vertikalnu i horizontalnu osu. Treba zabraniti minimiziranje forme ali dozvoliti njeno maksimiziranje. 2. Izgled forme u dizajn modu
Da bi e dozvolilo maksimiziranje a zabranilo minimiziranje forme, u dizajn modu ćemo podesiti atribute: MaxButtom na True a MinButton na False. 3. Izvorni kod programa Private Sub Form_Load() HScroll1.Max = Me.Width VScroll1.Max = Me.Height HScroll1.Value = Label2.Left VScroll1.Value = Label2.Top HScroll1.SmallChange = 50 VScroll1.SmallChange = 50 End Sub Private Sub Form_Resize() If Me.Width < 5650 Then Me.Width = 6000 If Me.Height < 1500 Then Me.Height = 1500 HScroll1.Max = Me.Width VScroll1.Max = Me.Height End Sub
19
Private Sub Command1_Click() Label2.Top = (Me.Height - Label2.Height) / 2 Label2.Left = (Me.Width - Label2.Width) / 2 HScroll1.Value = Label2.Left VScroll1.Value = Label2.Top End Sub Private Sub HScroll1_Change() Label2.Left = HScroll1.Value End Sub Private Sub VScroll1_Change() Label2.Top = VScroll1.Value End Sub Private Sub Text1_Change() Label2.Caption = Text1.Text End Sub
4. Opis promjenljivih
U programu nema nekih posebnih promjenljivih osim samih kontrola na formi. Sve vrijednosti sa kojima se radi su u stvari atributi kontrola na formi.
5. Opis rješenja
Ideja je da se tekst unosi pomoći jedne textbox kontrole (Text1 ) a da se taj unešeni tekst prikazuje na ekranu preko label kontrole koja će se onda pomjerati ( Label2). Tekst unutar textboxa se uvijek može promijeniti. Na svaku promjenu teksta taj tekst se kopira u label kontrolu. Ovo je realizovano u proceduri za obradu događaja Change textboxa ( Text1_Change()). Pomjeranje, odnosno pozicija, se reguliše uz pomoć kontrola HScroll i VScroll. Te kontrole će sadržavati poziciju label kontrole, tj. vrijednosti n jenih atributa Left i Top. Na svaku promjenu ovih kontrola ažurira se i vrijednost atributa Left i Top label kontrole na nove vrijednosti HScroll i VScroll kontrola. Tu je još i jedna command kontrola ( Command1) koja služi za postavljenje label kontrole na sredinu forme. Da bi se unešeni tekst uvijek vidio i da bi se mogao postaviti na sredinu, AutoSize atribut label kontrole treba postaviti na True. Ovakvo podešenje omogućava da je veličina label kontrole onolika koliko je potrebno da bi se prikazao sav tekst. Da bi scroll kontrole imale valjane vrijednosti, kao Max atribut im se postavljaju dimenzije forme (Width i Height). Na svaku promjenu dimenzija forme (Resize) atributi Max scroll kontrola se moraju ažurirati na nove vrijednosti širine i visine forme. Prilikom promjene dimenzija ne
dozvoljavaju se dimenzije forme takve da se ne vide kontrole za podešavanje položaja, pa su najmanje dimenzije forme 6000 x 1500.
Nakon učitavanja forme u memoriju postavljaju se početne vrijednosti scroll kontrola (Value i Max) koje zavise od položaja label kontrole i dimenzija forme, te se postavlja korak promjene vrijednosti scroll kontrola pri klikom na njihove strelice (atribut SmallChange scroll kontrola).
20
6. Izgled forme u izvršnom modu
7. Opis rada programa
U nastavku su dati primjeri za promjenu teksta i položaja.
21
8. Uputstvo za korišćenje i napomene
Unijeti proizvoljan tekst u polje "Tekst za prikaz". Ovaj tekst se u svakom trenutku može mienjati. Klikom miša na strelice scroll kontrola pomjerati tekst. Da bi se tekst postavio na sredinu forme kliknuti na dugme "x".
Zadatak 9. 1. Tekst zadatka
Napisati program koji za dva unešena broja izračunava njihovu sumu i prikazuje rezultat. Provjeriti ispravnost unešenih operanada i prikazati poruku ukoliko je potreb no. 2. Izgled forme u dizajn modu
22
3. Izvorni kod programa Private Sub Command1_Click() Text3.Text = Val(Text1.Text) + Val(Text2.Text) End Sub Private Sub Text1_LostFocus() If IsNumeric(Text1.Text) = False Then MsgBox "Operand 1 nije broj. Postavljen na 0.", _ vbExclamation + vbOKOnly, "Nepravilni podaci" Text1.Text = 0 End If End Sub Private Sub Text2_LostFocus() If IsNumeric(Text2.Text) = False Then MsgBox "Operand 2 nije broj. Postavljen na 0.", _ vbExclamation + vbOKOnly, "Nepravilni podaci" Text1.Text = 0 End If End Sub
4. Opis promjenljivih
U programu, osim kontrola na formi, nema posebnih promjenljivih.
5. Opis rješenja Na formi se nalaze dva textboxa za operande, jedan comma nd se upisivati rezultat.
za operator i jedan textbox u koji će
Pošto se rezultat samo izračunava, u dizajn modu je atribut Locked kontrole Text3 postavljen na True. Program se sastoji samo od tri procedure. Prve dvije procedure su procedure za obradu dog ađaja
LostFocus kon trola Text1 i Text 2 koja se izvršava ako se promijeni fokus sa te kontrole. U obje je na identičan način realizovana provjera ispravnosti broja operanda koji je upravo unešen. Ukoliko nije unešena validna brojčana vrijednost, što se provjerava funkcijom IsNumeric, prikazuje se odgovarajuća poruka te se u tu kontrolu upisuje nula.
Treća procedura je zadužena za izračunavanje i upisivanje rezultata u Text3. To je procedura za obradu događaja Click kontrole Command1 koja se izvršava ako se pritisne command koji predstavlja operator sabiranje (+). U dizajn modu su sve text kontrole postavljene na vrijednost 0.
23
6. Izgled forme u izvršnom modu
7. Opis rada programa
Program računa sumu unešenih brojeva:
U slučaju unosa nepravilne numeričke vrijednosti program prikazuje upozorenje:
->
te:
24
8. Uputstvo za korišćenje i napomene
Unijeti operande i pritisnuti operator sabiranja. Rezultat će biti prikazan u polju Rezultat Zadatak 10. 1. Tekst zadatka
Napisati program koji za dva unešena broja i odabranu operaciju (+, - , * ili /) izračunava i prikazuje rezultat. Provesti kontrolu ispravnosti unešenih . 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click(Index As Integer) Text3rez.Text = Val(Text1.Text) + Val(Text2.Text) End Sub Private Sub Command2_Click(Index As Integer) Text3rez.Text = Val(Text1.Text) - Val(Text2.Text) End Sub
25
Private Sub Command3_Click() Text3rez.Text = Val(Text1.Text) * Val(Text2.Text) End Sub Private Sub Command4_Click() If Text2.Text = 0 Then MsgBox "Operand 2 ne smije biti nula " & vbCrLf & _ "jer dijeljenje sa nulom nije dozvoljeno.", vbExclamation + _ vbOKOnly, "Nepravilni operandi" Exit Sub End If Text3rez.Text = Val(Text1.Text) / Val(Text2.Text) End Sub
4. Opis promjenljivih
U programu, osim kontrola na formi, nema posebnih promjenljivih.
5. Opis rješenja
Zadatak je sličan kao prethodna dva zadatka, s tim da sada imamo 4 operatora umjesto jednog. Bez nekog velikog razm išljanja možemo doći do sličnog rješenja kao u prethodnim zadacima, s tim da bi smo imali 4 kontrole za operatore i shodno tome 4 procedure za obradu događaja Click (pritisak mišem). Međutim, i ovdje možemo program učiniti puno preglednijim i kraćim korišt enjem niza kontrola za operatore, slično kao što je urađeno za operande u prethodnom zadatku. Operandi su i ovdje realizovanikao niz textbox kontrola. Dakle, na formi se nalaze dva textboxa koji su u stvari niz textboxova sa nazivom txtOperand. Indeks prvog je 1 a drugog je 2. Tu su još i niz od 4 kontrole tipa command za operatore
(cmdOperator) sa indeksima od 0 do 3, te textbox txtRezultat u koji će se upisivati rezultat. Pošto se rezultat samo izračunava, u dizajn modu je atribut Locked kontrole txtRezul tat postavljen na True. Program se sastoji samo od dvije procedure.
Prva procedura je procedura za obradu događaja LostFocus kontrole txtOperand koja se izvršava ako se promijeni fokus sa te kontrole. U njoj je realizovana provjera ispravnosti broja operanda koji
je upravo unešen. Ukoliko nije unešena validna brojčana vrijednost, što se provjerava funkcijom IsNumeric, prikazuje se odgovarajuća poruka te se u tu kontrolu upisuje nula. Druga procedura je zadužena za izračunavanje i upisivanje rezultata u txt Rezultat. To je procedura za obradu događaja Click kontrole cmdOperator koja se izvršava ako se pritisne neka od 4 kontrole koje predstavljaju operatore +, - , × ili ÷. Za sve četiri kontrole koristi se ista procedura za obradu događaja. To je i razlog zašt o su ove kontrole postavljene kao niz kontrola. Zavisno od operatora, odnosno indeksa pritisnute kontrole, izračunava se rezultat. U slučaju operatora za dijeljenje dodatno se provjerava da li drugi operator ima vrijednost nula te prikazuje odgovarajuću po ruku, ukoliko je potrebno. U dizajn modu su sve text kontrole postavljene na vrijednost 0. 6. Izgled forme u izvršnom modu
26
7. Opis rada programa
U nastavku su prikazani izgledi forme za razne operatore.
27
U slučaju unosa dijeljenja sa nulom (34 : 0) pojavljuje se poruka:
te glavna forma postaje:
8. Uputstvo za korišćenje i napomene
Unijeti operande i pritisnuti željeni op erator. 28
Zadatak 11. 1. Tekst zadatka
Napisati program koji simulira rad štoperice sa mogućnošću prikaza prolaznog vremena. Vrij eme brojati u sekundama i milisekundama. 2. Izgled forme u dizajn modu
Trenutno vrijeme se prikazuje pomoću label kontrole Label1. Timer kontrola Timer1 je podešena tako da okida na svaku milisekundu (atribut Interval = 1) a u dizajn modu je atribut Enabled postavljen na False kako timer kontrola ne bi okidala dok se ne pokrene dugmetom Kreni. 3. Izvorni kod programa Dim pocetak As Single, trenutno As Single Private Sub Command2_Click() pocetak = Timer Command1.Enabled = False Timer1.Enabled = True Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True End Sub Private Sub Command1_Click() Command4.Enabled = True Command1.Enabled = False Command3.Enabled = False Command2.Enabled = False If pocetak = 0 Then pocetak = Timer trenutno = 0 End If Timer1.Enabled = True End Sub
29
Private Sub Command3_Click() pocetak = 0 Command2.Enabled = False Command3.Enabled = False Label1.Caption = Format(0, "0.000") End Sub Private Sub Command4_Click() Command4.Enabled = False Command1.Enabled = True Command3.Enabled = True Command2.Enabled = True Timer1.Enabled = False trenutno = Timer - pocetak + trenutno End Sub Private Sub Timer1_Timer() Label1.Caption = Format(Timer - pocetak + trenutno, "0.000") End Sub
4. Opis promjenljivih
U programu se koriste dvije promjenljive: -
pocetak – služi da se zapamti stanje timera (vrijeme) kad je započeto brojanje
-
trenutno – koristi se za pamćenje prikazalo prolazno vrijeme
stanja timera prilikom klika na dugme Stani kako bi se
5. Opis rješenja
Stanje štoperice se kontroliše pomoću 4 command kontrole (Kreni, Stani, Dalje i Reset). U procedurama za obradu događaja Click ovih kontrola realizovana je promjena stanja štoperice, odnosno stanja timer kontrole.
Na svako okidanje timer kontrole ispisuje se trenutno vrijeme štoperice kao Timer - pocetak + trenutno, gdje je Timer stanje internog sistemskog timera. Klikom na dugme Stani (cmdstani_Click procedura) pamti se trenutno prolazno vrijeme. Ovo
prolazno vrijeme se koristi ako se želi da pritiskom na Dalje štoperica nastavi brojati od prolaznog vremena. Naime u ovom slučaju se promjenljiva pocetak postavlja na trenutno stanje Timera jer se stanje štoperice izračunava k ao Timer - pocetak + trenutno. U različitim stanjima štoperice neke tipke se moraju onemogućiti (atribut Enable postaviti na False) a neke omogućiti (Enable = True). To se može vidjeti u kodu. 6. Izgled forme u izvršnom modu
30
7. Opis rada programa
U nastavku su prikazana različita stanja štoperice.
Štoperica broji:
Prolazno vrijeme:
31
8. Uputstvo za korišćenje i napomene
Kliknuti na Kreni za početak brojanja. Stani – prikaz prolaznog vremena. Ponovni pritisak na Kreni – štoperica prikazuje trenutno vri jeme. Ako se pak klikne na Dalje štoperica nastavlja mjeriti vrijeme ot trenutnog prolaznog vremena. Ako se u stanju prikaza prolaznog vremena pritisne dugme Reset – štoperica se resetuje na vrijeme 0.000.
Zadatak 12. 1. Tekst zadatka
Napisati program koji pretvara kilometre u milje i obratno. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Const KMuMILJI = 1.60934 Private Sub Command2_Click() Text1.Text = Val(Text2.Text) * KMuMILJI End Sub Private Sub Command1_Click() Text2.Text = Val(Text1.Text) / KMuMILJI End Sub
4. Opis promjenljivih
Promjenljivih, osim kontrola na formi, nema. Konstanta KMuMILJI čuva odnos kilometra i milje, odnosno, broj kilometara u milji.
5. Opis rješenja
Unešeni broj milja se pretvara u kilometretako tako što se taj broj pomnoži sa konstantom KMuMILJI, dok se unešeni broj kilometara pretvara u milje kad se podijeli broj kilometara sa konstantom KMuMILJE. Pretvaranje se vrši klikom na odgovarajuće dugme (strelicu), odnosno u procedurama za obradu događaja Click. Prilikom konverzije km u milje i obratno koristi se funkcija Val(tekst) za konverziju teksta u broj.
Ova funkcija je zgodna zbog toga što će čak i za tekst koji nije numerički podatak vratiti numerički podatak, tj. nulu.
32
6. Izgled forme u izvršnom modu
7. Opis rada programa
U nastavku su prikazana dva primjera pretvaranja, prvo km u milje a onda milje u km:
8. Uputstvo za korišćenje i napomene
Unijeti broj kilometara ili milja u odgovarajuće polje i pritisnuti odgovarajuće dugme za konverziju. Zadatak 13. 1. Tekst zadatka
Naisati program koji vrši konverziju dužine između raznih mjernih jedinica (proizvoljnih 8 konverzija). Na formi treba da bude polje u koje će se unsiti dužina u nekoj mjernoj jedinici, combobox koji će služiti za biranje početne i krajnje jedinice te label kontrolu u koji će se upisivati rezultat. Takođe prikazivati i konverzijski odnos. 2. Izgled forme u dizajn modu
33
Za formu podesiti atribut BorderStyle na 1-Fixed Single kako bi se zabranila promjena dimenzija forme. Za combobox cb oKoef pod atributom List unijeti listu konverzija, kao što je prikazano na slj. slici:
Pod ItemData unijeti brojeve od 1 do 8, kako bi svaka konverzija bila jednoznačno određena brojem te se moglo znati o kojoj se konverziji radi. Na osnovu ovog broja se u kodu programa upotrebljava
odgovarajući koeficijent za konverziju. 3. Izvorni kod programa Private Sub Combo1_Click() Dim koef As Single
Select Case Combo1.ItemData(Combo1.ListIndex) Case 1 koef = 39.3701 Case 2 koef = 3.28084 Case 3 koef = 1.09261 Case 4 koef = 0.0254 Case 5 koef = 0.3048 Case 6 koef = 0.9144 Case 7 koef = 0.62137 Case 8 koef = 1.60934 End Select Label3.Caption = koef Text2 = Val(Text1.Text) * koef End Sub
34
4. Opis promjenljivih
U programu se koristi samo jedna promjenljiva – koef, kojoj se dodjeljuje odnos konverzije zavisno od odabranih mjernih jedinica.
5. Opis rješenja
U txtDuzina se unosi dužina za konverziju. U cboKoef se biraju mjerne jedinice iz koje i u koju se vrši konverzija. Na osnovu odabranog člana u listi, cboKoef.ItemData(cboKoef.ListIndex), u proceduri za obradu događaja Click, cboKoef_Click(), varijabli koef se dodjeljuje odgovarajući koeficijent. Ova j koeficijent se pomnoži sa unešenom dužinom i rezultat upiše u lblEkvivalentno. 6. Izgled forme u izvršnom modu
Identično izgledu u dizajn modu. 7. Opis rada programa
U nastavku je dato nekoliko primjera konverzije. 100 metara je 109,261 jard, dok je 100 jardi ekvivalentno 91,44 metra:
21 inč je malo više od 53 cm a 6,21 milja je 10 kilometara:
35
8. Uputstvo za korišćenje i napomene
Unijeto dužinu u polje Duzina. Pomoću combobox -a odabrati koja se konverzija vrši. Rezultat će biti prikazan u polju Ekvivalentna duzina.
Zadatak 14. 1. Tekst zadatka
Napisati program za računanje zapremine previlne četverostrane piramide. Program zahtijeva unos dužine stranice baze i visine piramide. 2. Izgled forme u dizajn modu
Style atribut forme je postavljen na 1-Fixed forme.
Single kako bi se onemogućila promjena dimenzija
Crtež piramide je kreiran korištenjem line kontrola. Za dugme cmdIzracunaj je postavljen atribut Default na True kako bi se omogućilo da se izračunavanje vrši pritiskom na tipku Enter na taststur i. 36
Na formi se nalaze kontrole txtA, txtH, cmdIzracunaj i lblV. 3. Izvorni kod programa Private Sub Command1_Click() Dim a As Single Dim H As Single a = Val(Text1.Text) H = Val(Text2.Text) Label5.Caption = 1 / 3 * a * a * H End
4. Opis promjenljivih
Lokalne promjenljiva u proceduri cmdIzracunaj_Click() su a i H i predstavljaju duzine stranice baze i visine piramide, vrijednostikoje unosi korisnik.
5. Opis rješenja
Za računanje zapremine piramide koristi se formula V = 1/3×a2×H . Vrijednosti za a i H se unose od strane korisnika. Na klik dugmeta Izracunaj pokreće se procedura za obradu događaja Click gdje se na osnovu a i H izračunava zapremina i prikazuje u lblV. 6. Izgled forme u izvršnom modu
7. Opis rada programa
Primjer izračunavanja zapremine:
37
8. Uputstvo za korišćenje i napomene
Unijeti dužine za a i H. Pritisnuti dugme Izračunaj (ili tipku Enter na tastaturi ili Alt+I). Zadatak 15. 1. Tekst zadatka
Napisati program koji na formi iscrtava pravougaonik tako da su stranice pravougaonika udaljene
od ivica forma za četvrtinu širine, odnosno visine forme. Na svaku promjenu dimenzije forme pravougaonik treba da zauzme navedeni položaj. 2. Izgled forme u dizajn modu
U dizajn modu nacrtamo pravougaonik pomoću kontrole Shape. Ovdje n isu itne dimenzije ove kontrole jer će se one izračunavati na Resize događaj za formu. 3. Izvorni kod programa Const TRAKA = 360 Private Sub Form_Resize() Shape1.Left = Me.Width / 4 Shape1.Width = Me.Width / 2 Shape1.Top = (Me.Height - TRAKA) / 4 Shape1.Height = (Me.Height - TRAKA) / 2 End Sub
4. Opis promjenljivih
Konstanta TRAKA služi za postavljenje visine gornje trake forme da bi se od ukupne visine forme mogla oduzeti visina trake kako bi se dobila visina klijent područja. 38
5. Opis rješenja
U proceduri za obradu događaja Resize, koja se izvršava na svako mijenjanje dimenzija forme, uključujući i pokretanje programa, na osnovu dimenzija forme izračunava se položaj i dimenzije shape kontrole shpPravougaonik te se odmah i postavljaju nove vrijednosti. 6. Izgled forme u izvršnom modu
7. Opis rada programa
Nasvaku projenu dimenzija forme pravougaonik se ponovo iscrtava. Dato je nekoliko primjera:
8. Uputstvo za korišćenje i napomene
Mijenjati dimenzije forme.
Zadatak 16. 1. Tekst zadatka
39
Napisati program koji pronalazi sve proste brojeve između dva unešena broja. 2. Izgled forme u dizajn modu
Za formu podesiti atribut BorderStyle na vrijednost 1 – Fixed Single, kako bi se spriječila promjena dimenzija. Za dugme podesiti atribut Defau lt da bi se događaj Click mogao inicirati pritiskom na tipku Enter.
Textbox txtRezultat će sadržavati sve proste brojeve između unešenih brojeva. Da bi se mogli vidjeti svi pronađeni brojevi podesiti MultiLine atribut na True i ScrollBars na 2 – Vertical. 3. Izvorni kod programa Private Sub Command1_Click() Dim odbroja As Long Dim dobroja As Long Dim x As Long Dim y As Long Dim granica As Long Dim pomocna As Long Dim prost As Boolean Text3.Text = "" odbroja = Val(Text1.Text) dobroja = Val(Text2.Text) If odbroja > dobroja Then pomocna = odbroja odbroja = dobroja dobroja = pomocna End If For x = odbroja To dobroja prost = True granica = Sqr(x) For y = 2 To granica If x Mod y = 0 Then prost = False Exit For
40
End If Next y If prost Then Text3.Text = Text3.Text & CStr(x) & ", " Next x End Sub
4. Opis promjenljivih
Koriste se sljedeće promjenljive: odbroja varijabla koja čuva početnu granicu opsega brojeva za koje se traže prosti brojevi dobroja
varijabla koja čuva krajnju granicu opsega brojeva za koje se traže prosti brojevi
pomocna
varijabla koja se korist prilikom zamjene vrijednosti granica opsega (od broja i dobroja) u slučaju da je unešen broj dobroja koji je manji od broja odbroja.
x
trenutni broj koji se ispituje da li je prost
y
broj za koji se provjerava da li je broj x djeljiv brojem y
granica
varijabla koja čuva broj do ko ga treba provjeravati djeljivost broja x varijabla tipa Boolean koja služi za označavanje da li je broj x prost ili ne kako bi se onda u slučaju da je prost mogao dodati u listu prostih brojeva ( Text3)
prost
Cjelobrojne varijable su tipa Long kako bi
se obezbijedio najveći mogući radni opseg.
5. Opis rješenja Prema definiciji, broj je prost ako je djeljiv samo sa jedinicom i sa samim sobom. U ovom programu ćemo provjeravati da li je neki broj x djeljiv nekim brojem y tako što provjeravamo da li je ostatak cjelobrojnog dijeljenja jednak nuli. Ako jeste, to je znak da je x djeljivo sa y, odnosno da x nije prost broj. Za svaki broj x iz opsega odbroja do dobroja provjeravaćemo da li je djeljiva sa svim brojevima u opsegu od 2 do korijena tog broja ( x). 6. Izgled forme u izvršnom modu
7. Opis rada programa
41
U nastavku je dat izgled forme za nekoliko primjera opsega: -
svi prosti brojevi od 1 do 1000:
-
svi prosti brojevi od 2200 do 3000:
-
slučaj kad se zamijene granice (od većeg do manjeg broja):
42
Ovdje se vidi po scroll baru da se ne vide svi brojevi. Da bi se vidjeli ostali brojevi, treba pomjeriti scrollbar. 8. Uputstvo za korišćenje i napomene
Unijeti granice i pritisnuti dugme Pronadji (ili tipku Enter na tastaturi, il i Alt+P).
Zadatak 17. 1. Tekst zadatka
Napisati program koji ima zadatak da učitava tri broja te određuje i ispisuje najveći od njih. Pri rješavanju ovog zadatka koristi se If... Then petlja 2. Izgled forme u dizajn modu
3. Izvorni kod programa Dim A, B, C As Single Dim MAX As String Private Sub Command1_Click() A = Text1.Text B = Text2.Text C = Text3.Text MAX = Text4.Text MAX = A If B > MAX Then MAX = B If C > MAX Then MAX = C Text4.Text = MAX End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub
43
4. Opis promjenljivih
Promjenljive prvi broj, drugi broj i treci broj služe za čuvanje vrijednosti unesenih brojeva, dok najveci broj je služi za čuvanje izračunatog broja. 5. Opis rješenja Za unos proizvoljnih brojeva koristi se textbox kontrola Text1, Text2 i Text3. Za ispis najveceg brojeva koristi se textbox kontrola Text4. Da bi smo izracunali najveci broj potrebno je izvrsini prvo unos a nakon toga jednostruki klik na dugme Izracunaj da bi se izracunao najveci broj koji se ispisuje u textbox Text4. Postoji mogucnost nakon jednog pokretanja programa izvrsiti vise puta unos novih vrijednosti te da bismo mo mogli uciniti postoji i dugme Novi unos , gdje klikom na to dugme brisu se prethodni unosi za brojeve i ceka se novi unos. 6. Izgled forme u izvršnom modu
7. Opis rada programa
U nastavku je prikazano nekoliko izgleda forme za pojedine unesene podatke.
44
8. Uputstvo za korišćenje i napomene
U polje prvi broj, drugi broj i treci broj upisati proizvoljane brojeve i pritisnuti dugme Izracunaj da bi se izracunao najveci broj. Za novi unos elemenata pritisnuti dugme Novi unos dok rezultat dobivamo prikazan u polju najveci broj je .
Zadatak 18. 1. Tekst zadatka
Program izračunava površineu trougla pomoću Heronove formule.Heronova formula glasi _______________ P = √ s*(s-a)*(s-b)*(s-c) gdje je s= (a+b+c)/2, a a,b,c su stranice trougla.
Kod ovog zadatka usiovje da zbir dviju strnica mora biti veći od dužine treće stranice. Ako je ovaj uslov zadovoljen program radi, dok u suprotnom program javlja da se mora ispostovati ovaj uslov. Zbog toga u ovom zadatku se koristi IF...then....else petlja. 2. Izgled forme u dizajn modu
45
3. Izvorni kod programa Dim A, B, C, S, P As Double Private Sub Command1_Click() A = CDbl(Text1.Text) B = CDbl(Text2.Text) C = CDbl(Text3.Text) If A < (B + C) And B < (A + C) And C < (A + B) Then S = (A + B + C) / 2 P = Math.Sqr(S * (S - A) * (S - B) * (S - C)) Text4.Text = P End If End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub
4. Opis promjenljivih
Promjenljive stranica a, stranica b i stranica c služe za čuvanje dužina stranica koje su unešene, dok Povrsina je služi za čuvanje izračunatog broja.
5. Opis rješenja Za unos stranica trougla koristi se textbox kontrola Text1, Text2 i Text3. Za ispis povrsine trougla preko heronove formule koristi se textbox kontrola Text4. Kada zelimo da izracunamo povrsinu trougla nekog preko Heronove formule kao prvo moramo izvrsiti unos potrebnih podataka a to jest unos duzina stranica datog trougla a to vrsimo unosom u odgovarajuce text boxove koje imamo napravljene.Nakon sto unesemo sve potrebne podatke klikon na dugme izracunaj dobiti cemo rjesenje koje se odnosi na proracun preko Heronove formule ili obrasca. Dobiveno rjesenje se ispisuje u textbox uz koji se nalazi i label sa porukom Povrsina je:.Ukoliko zelimo izvrsiti novi unos i poracun idem na dugme Novi unos i automatski se brise prethodni unos i program je spreman za novi unos i proracun. 6. Izgled forme u izvršnom modu
46
7. Opis rada programa
U nastavku je prikazano nekoliko izgleda forme za pojedine unesene podatke.
47
8. Uputstvo za korišćenje i napomene
U polje stranica a, stranica b i stranica c upisati proizvoljane brojeve koji se odnose na duzine trih pojedinih stranica i pritisnuti dugme Izracunaj da bi se izracunao povrsinu tog trougla po Heronovoj formuli. Za novi unos elemenata pritisnuti dugme Novi unos dok rezultat dobivamo prikazan u polju Povrsina trougla je: .
Zadatak 19. 1. Tekst zadatka
Napisati program koji ima zadatak da učitava tri broja te određuje i ispisuje najmanji od njih. Pri rješavanju ovog zadatka koristi se If... Then petlja 2. Izgled forme u dizajn modu
48
3. Izvorni kod programa Dim A, B, C As Single Dim MAX As String Private Sub Command1_Click() A = Text1.Text B = Text2.Text C = Text3.Text MIN = Text4.Text MIN = A If B < MIN Then MIN = B If C < MIN Then MIN = C Text4.Text = MIN End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub
4. Opis promjenljivih
Promjenljive prvi broj, drugi broj i treci broj služe za čuvanje vrijednosti unesenih brojeva, dok najmanji broj je služi za čuvanje izracunatog broja. 5. Opis rješenja Za unos proizvoljnih brojeva koristi se textbox kontrola Text1, Text2 i Text3. Za ispis najmanjeg brojeva koristi se textbox kontrola Text4 Da bi smo izracunali najmanji broj potrebno je izvrsini prvo unos a nakon toga jednostruki klik na dugme Izracunaj da bi se izracunao najmanji broj koji se ispisuje u textbox Text4. Postoji mogucnost nakon jednog pokretanja programa izvrsiti vise puta unos novih vrijednosti te da bismo mo mogli uciniti postoji i dugme Novi unos , gdje klikom na to dugme brisu se prethodni unosi za brojeve i ceka se novi unos. 6. Izgled forme u izvršnom modu
49
7. Opis rada programa
U nastavku je prikazano nekoliko izgleda forme za pojedine unesene podatke.
50
8. Uputstvo za korišćenje i napomene
U polje prvi broj, drugi broj i treci broj upisati proizvoljane brojeve i pritisnuti dugme Izracunaj da bi se izracunao najmanji broj. Za novi unos elemenata pritisnuti dugme Novi unos dok rezultat dobivamo prikazan u polju najmanji broj je .
Zadatak 20. 1. Tekst zadatka
Napisati program koji simulira crtanje linija sa misem. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Option Explicit Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.PSet (X, Y) End Sub
51
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then ' Nacrtaju liniju od zadnjeg dugmeta pa do ovoga Me.Line -(X, Y) End If End Sub
5. Opis rješenja Navedeni zadatak je realizovn uz samo dvije naredbe koje se odnose na pomjeranje misa a sto i jest sustina ovog problema. Sve se svodi na pomjeranje misa a na putanji koju mis predje pojavljuje se kao trag ili linija. 6. Izgled forme u izvršnom modu
7. Opis rada programa
U nastavku su prikazan primjer crtanja sa misem.
. 8. Uputstvo za korišćenje i napomene
Samim pokretanjem ovog programa mozemo poceti crtati misem u okviru novo otvorenog prozora (Forme Crtanje).
52
Zadatak 21. 1. Tekst zadatka
Napisati program koji vrsi poredjenje unesenog broja sa ekvivalentnim mjesecom i odgovarajuci dati mjesec ispisuje. 2. Izgled forme u dizajn modu
3. Izvorni kod programa Private Sub Command1_Click() Dim mj1 As String, mj2 As String mj1 = Text1.Text mj2 = mj1 Text2.Text = mj2 Select Case mj2 Case "1" Text2.Text = "Januar" Case "2" Text2.Text = "Februar" Case "3" Text2.Text = "Mart" Case "4" Text2.Text = "April" Case "5" Text2.Text = "Maj" Case "6" Text2.Text = "Juni" Case "7" Text2.Text = "Juli" Case "8" Text2.Text = "Avgust" Case "9" Text2.Text = "Septembar" Case "10" Text2.Text = "Oktobar"
53
Case "11" Text2.Text = "Novembar" Case "12" Text2.Text = "Decembar" Case Else Text2.Text = "Taj mjesec ne postoji." End Select End Sub Private Sub Command2_Click() Unload Me End Sub
4. Opis promjenljivih
Zadatak je realiziran uz pomoc naredbe CASE.Koristene su dvije promjenjive sa odgovarajucim text boxovima.Text1.Text kao promjenjiva a za unos broj za mjesec i Text2.Text kao promjenjiva za ispis naziva datog mjeseca.
5. Opis rješenja Rjesenje ovog zadatka se jednostavno dobivs a funkcijom CASe gdje se za svaki broj dodjeljuje neki mjsesec a za sve ostalo cemu nije dodijeljen odgovarajuci mjesec on to smatra da nije unesen tacan podatak te ispisuje odgovarajucu poruku korisniku. Koristenasu dva text boxa jedan za unos broj a to je Text1.Text i drugi za ispis mjeseca a to je Text2.Text i dva command bottona koji vrse nalazenje ekvivalentnog mjeseca a to je dugme Izracunaj i drugo Izadji koje zavrsava rad ovog programa. 6. Izgled forme u izvršnom modu
7. Opis rada programa
U narednom dijelu su prikazani primjeri za onos datog odgovarajuceg broja sa ekvivalentnim mjesecom koji postoji i unos broja koji nema ekvivalentni mjesec.
54