PANEVROPSKI UNIVERZITET APEIRON FAKULTET POSLOVNE INFORMATIKE
Redovne studije Smer „IT menadžment”
Predmet Viši programski jezici i RAD alati programiranje u VB- u
„RIJEŠENI PRIMJERI” (seminarski rad)
Predmetni nastavnik Prof. dr Zoran Ž. Avramović, dipl.inž.elek.
Student
Ognjen Kostić, student Index br. 032-08/ RIT
Banja Luka, februar 2014
Panevropski univerzitet Apeiron SADRŽAJ FAKULTET POSLOVNE INFORMATIKE..........................................................................1 Redovne studije.................................................................................................................1 Smer „IT menadžment”...........................................................................................................1 Predmet..............................................................................................................................1 Viši programski jezici i RAD alati programiranje u VB- u...............................................1 1. UVOD.....................................................................................................................................3 1.1 Tipovi podataka..............................................................................................................4 1.2 RADNI PROSTOR VISUAL BASIC-a..........................................................................7 2. VJEŽBE ................................................................................................................................8 2.1 Vježba 1 - Dobro dosli u Visual Basic.............................................................................8 2.2 Viježba 2 – Najmanji Broj...............................................................................................9 2.3 Viježba 3 - Razlika najvećeg i zbira preostala dva broja...............................................10 2.4 Vježba 4 – Površina i obim praugaonika.......................................................................11 2.5 Viježba 5 – Obrnuti tekst...............................................................................................12 2 .6 Vježba 6 – Prestupna godina.........................................................................................13 2.7 Vježba 7 – Zahtjev za lozinku.......................................................................................14 2.8 Vježba 8 – Mjeseci u godini.........................................................................................15 2.9 Vježba 9 - Primjena Pitagorine.....................................................................................16 2.10 Vježba 10 - Izračunavanje površine trougla korištenjem Heronovog obrasca...........18 2.11 Vježba 11 - Mala i velika slova..................................................................................19 2.12 Vježba 12 – Geometrijska sredina dva broja..............................................................20 2.13 Vježba 13 – Kalkulator...............................................................................................21 2.14 Vježba 14 – Pozitivan ili negativan broj.....................................................................22 2.15 Vježba 15 – Datum i tačno vrijeme.............................................................................23 2.16 Vježba 16 – Štoperica ................................................................................................24 2.17 Vježba 17 - Čitanje teksta..........................................................................................25 2.18 Vježba 18 – Web Browser..........................................................................................25 2.19 Vježba 19 – Beeper.....................................................................................................27 2.20 Vježba 20 – Redanje brojeva ( Shuffle ).....................................................................28 3. Zakljucak............................................................................................................................33 4. Literatura.............................................................................................................................34
Riješeni primjeri Page 2
Panevropski univerzitet Apeiron
1. UVOD Na Univerzitetu Dartmouth, 1965. godine, dva profesora John Kemeny i Thomas Kurtz razvila su "Beginner's All-purpose Symbolic Instruction Code" ili skraćeno BASIC. BASIC je prvenstveno bio razvijen zbog potrebe interaktivnosti programskih jezika. Ova interaktivnost znači da programeri mogu da unose komande i da odmah potom iskuse rezultate obrade.Sredinom osamdesetih "Microsoft" je razvio novu verziju QuickBasic. Iako je QuickBasic okruženje bilo moćno i lako za korištenje i učenje, postojao je problem sa opštom platformom (MS-DOS) u okviru koje su programeri radili. Naime, MSDOS nije imao ugrađen korisnički interfejs kakav danas poznajemo; umjesto toga - bilo je to tekstualno-orijentisano okruženje. U takvom tekstualno-orijentisanom okruženju nije moguće upotrijebiti bilo kakvu grafičku prezentaciju - moguće je koristiti samo jednostavne linije ili karaktere. Ovo je MS-DOS činilo teškim za upotrebu zato što je od korisnika zahtjevao dosta tipkanja, a programere je ograničavao u pogledu mogućnosti prikaza rezultata korisnicima. Nakon više izdanja BASIC-a od strane različitih softverskih kuća, Microsoft je 1991. godine u prodaju pustio Visual Basic, razvojno okruženje koje je predstavljao, do tada, potpuno različit programerski šablon: • Okruženje je koristilo operativni sistem Windows za razvoj Windows aplikacija okruženje je koristilo različite kontrole (komponente), čime se obezbjeđivala višestruka upotreba istog koda i lakše korištenje Windows objekata. Za razumijevanje postupka razvijanja aplikacije, korisno je razumjeti neke ključne zamisli na osnovu kojih je kreiran Visual Basic. Obzirom da je Visual Basic programski jezik za Windows okruženje, nuormalna je sličnost s Windows okolinom. Pojednostavljena verzija rada Windows operativnog sustava uključuje tri osnovna pojma: prozore, događaje i poruke. Prozor ćemo shvatiti jednostavno kao pravouglo područje s vlastitim granicama, prozor Explorera u Windowsima, prozor s dokumentom u našoj aplikaciji za obradu teksta ili dijaloški okvir koji se pojavljuje da nas podsjeti na neki sastanak. Iako su to najčešći primjeri, zapravo postoji puno drugih vrsta prozora. Naredbeno dugme je prozor, ikone, okviri s tekstom, tasteri izbora i trake s izbornicima su također prozori. Operativni sustav Microsoft Windows upravlja mnoštvom tih prozora dodjeljujući svakome od njih jedinstven identifikacijski broj (window handle ili hWnd). Sistem neprekidno prati svaki od tih prozora tražeći znakove aktivnosti ili događaja. Događaji se mogu pojaviti zahvaljujući akciji korisnika kao što je klik mišem ili pritisak na tipku, tokom programirane kontrole, ili čak kao rezultat akcije nekog drugog prozora. Svaki put kad se pojavi događaj, uzrokuje poruku koja se šalje operativnom sistemu. Sistem obrađuje poruku i prosljeđuje je drugim prozorima. Svaki prozor zatim može poduzeti odgovarajuću akciju zasnovanu na vlastitim uputama kako bi obradio tu određenu poruku ( npr. ponovno će iscrtati ako je bio pokriven drugim prozorom). Obrada svih mogućih kombinacija prozora, događaja i poruka može biti pravo opterećenje. Na sreću, Visual Basic nas oslobađa potreba baratanja svim manje važnim porukama. Većinu poruka Visual Basic obrađuje automatski; ostale nam se daju na znanje kao Riješeni primjeri Page 3
Panevropski univerzitet Apeiron Event postupci. To nam omogućuje brzo stvaranje moćnih aplikacija bez potrebe za obradom nebitnih detalja. Microsoft Visual Basic je prije svega programski jezik. To je najbrži i najlakši način stvaranja aplikacija za Microsoft Windows-e. Sama riječ "Visual" (vidni, vizualan) se odnosi na način stvaranja grafičkog korisničkog okruženja (GUI - graphical user interface). Dakle, tokom čitavog procesa stvaranja aplikacije programer je u mogućnosti da vidi kako njegov program vizualno izgleda.Visual Basic programeri koriste više nego bilo koji drugi programski jezik u istoriji računarstva. Njegovi korjeni dosežu do najranijih verzija programskog jezika Basic. Medjutim, Visual Basic se znatno razlikuje od Basica po tome sto nudi vizuelno okruženje za poslove projektovanja. Visual Basic je od pocetka nudio nacin za proširivanje programskog okruženja. Program u Visual Basicu ima dva dijela: 1. Dio za deklarisanje i 2. Posebne programske procedure. Deklarisati znači definisati vrijednosti promjenjivih u skladu sa tipovima. Zadavanjem tipa promjenjive govorimo dvije važne stvari o njima: 1. Opseg vrijednosti koje može uzeti promjenjiva i 2. Operacije koje se mogu izvesti nad promjenjivima. Radi discipline i preglednosti najbolje je deklarisanje raditi na početku. Procedure u Visual Basicu su: 1. (Pod)rutina – Sub, 2. Funkcija – Function 3. Svojstvo – Property. Funkcija (Function) vraća (daje) samo jedan rezultat, dok Sub daje (vraća) više različitih vrijednosti i okončava sa jednim ili više rezultata.
1.1
Tipovi podataka
Tipovi podataka govore kompjuteru i programeru kakvu vrijednost može imati neka varijabla. Uz varijable, i ostali elementi Visual Basic jezika, poput konstanti, svojstava objekata, argumenata potprograma i funkcija i povratnih vrijednosti funkcija imaju tip podatka. Korištenje raznih tipova podataka u aplikacijama je potrebno radi bolje funkcionalnosti i kvalitete aplikacije. Varijabla tipa Boolean koriste se za prikaz dva različita stanja, istinito (True) ili lažno (False) i zauzimaju 2 bajta memorije. Dim Ja_Imam_18_god as Boolean Ja_Imam_18_god = False Byte tip podatka se koristi za držanje vrlo malene numeričke vrijednosti u rasponu od 0 do 255. Byte tip podataka zauzima samo jedan bajt memorije i ne može sadržavati negativne vrijednosti. Char tip podataka služi za zapisivanje numeričkih vrijednosti u rasponu od 0 do 65535 gdje svaki broj predstavlja jedan Unicode znak. Unicode sistem znakova je standard na svim platformama. Dim Znak as Char Znak = „a“ Znak = „b“c Riješeni primjeri Page 4
Panevropski univerzitet Apeiron Kod pridjeljivanja vrijednosti Char varijabli, slovo se stavlja unutar navodnika iza kojih može, a ne mora stajati slovo c. Slovo c na kraju vijednosti se mora koristiti ako je upaljena,opcija Option Strict. Date tipa podataka možemo prikazati određeni datum. Date tip podatka je 64bitna numerička vrijednost pomoću koje možemo prikazati datum u rasponu od 1. januara do 31. decembra 9999. i vrijeme u rasponu od 00:00 do 23:59. Varijable tipa Date zauzimaju 8 bajtova memorije. Kod pridjeljivanja nekog datuma varijabli Date tipa, vrijednost mora biti unutar znakova # i mora biti formata m/d/yyyy (month/day/year). Dim Nova_Godina as Date Nova_Godina = #31/12/2007# Tip podatka Decimal služi za rad s brojevima bez zaokruživanja vrijednosti. Decimal tip podatka može raditi sa 28 decimalnih mjesta. Najveća vrijednost bez decimala koju može primiti varijabla.Decimal tipa je +/-79,228,162,514,264,337,593,543,950,335.S maksimalnim brojem decimalnih mjesta, u varijablu tipa Decimal moguće je zapisati najveću vrijednost od +/-7.9228162514264337593543950335. Varijable Decimal tipa zauzimaju 16 bajtova memorije. Kod pridjeljivanja vrijednosti varijabli Decimal tipa vrijednost bez slova D na kraju moguće je da će Visual Basic smatrati vrijednost kao da je tipa Long što može dovesti do greške ako baratate s jako velikim ciframa. Vrijednost u dole prikazanom primjeru je prevelika za Long tip podatka i kada biste pokušali kompilirati program u kojem se nalazi slijedeći dio koda sigurno bi dobili grešku „OverFlow“, tj. prekoračenje maksimalne vrijednosti koju može primiti varijabla nekog tipa. Dim Racun as Decimal Racun = 10223372036854775807 'ova linija sadrzi gresku Tačan kod je prikazan na slijedećem primjeru. Dim Racun as Decimal Racun = 10223372036854775807D Double tip podatka se koristi za zapisivanje decimalnih vrijednosti u rasponu od -1.79769313486231579E+308 do -4.94065645841246544E-324 za negativne vrijednosti i 4 94065645841246544E-324 do 1.79769313486231579E+308 za pozitivne vrijednosti. Kod pridjeljivanja vrijednosti varijabli tipa Double vrijednost može biti neki od brojeva koji spada u gore navedeni raspon, a ako želite naznačiti da se radi o Double vrijednosti onda na kraj vrijednosti dodajte slovo R. Dim Vrijednost as Double Vrijednost = 1234567R Varijable tipa Double zauzimaju 8 bajtova memorije. Varijabla tipa Integer koriste se za zapisivanje cjelih brojeva u rasponu od – 2.417,483,648 do 2,147,483,647. Integer vrijednosti su 32bitne i zauzimaju 4 bajta memorije. Varijable tipa Integer su najefikasnije varijabke u Visual Basicu .NET i obično se one Riješeni primjeri Page 5
Panevropski univerzitet Apeiron najčešće koriste za razne sitne kalkulacije. Vrlo je vjerovatno da ćete uz String tip najviše koristiti varijable Integer tipa. Dim I as integer I = 1000 Varijable tipa Long mogu sadržavati cjele brojeve u rasponu od -9, 223, 373, 036, 854, 775, 808 do 9,223,373,036,854,775,808. Vrijednosti tipa Long možete pridjeliti varijablama tipa Long, Single, Double i Decimal bez dodatnih pretvaranja u drugi tip podataka. Kod pridjeljivanja Long vrijednosti nekoj varijabli možete normalno pridjeliti samu vrijednost, a ako želite Visual Basicu dati do znanja da se radi baš o Long vrijednosti onda se iza vrijednosti dodaje slovo L. Dim LongVrijednost As Long LongVrijednost = 345678 LongVrijednost = 345678L U navedenom primjeru, Visual Basic će vrijednost 345678 shvatiti kao Integer vrijednost, a vrijednost 345678L kao Long. Varijable tipa Long su 64bitne i zauzimaju 8 bajtova memorije. Tip podataka Object je osnovni tip podataka u Visual Basicu .NET. Svi ostali tipovi podataka “vuku svoje korijene” iz Object tipa podatka i sve varijable bilo kojeg tipa su ustvariobjekti sa svojim svojstvima i postupcima. Object tip podatka je pokazivač na neko mjesto u memoriji gdje se nalazi neki objekt. Varijable tipa Object možete pridijeliti vrijednost bilo kojeg tipa. Varijabla tipa Object zauzima 4 bajta memorije. Svakog puta kada se u Object varijablu zapisuje drugačiji tip podatka Visual Basic mora pretvoriti varijablu u drugi tip podatka, a to iziskuje određeno vrijeme.
Riješeni primjeri Page 6
Panevropski univerzitet Apeiron
1.2 RADNI PROSTOR VISUAL BASIC-a Radni prostor Visual Basica čini: 1. Naslovna traka 2. Traka izbornika 3. Alatna traka 4. Alatni prozor 5. Prozor forme 6. Prozor svojstva 7. Projektni prozor
Dijelovi Visual Basic projekta su: Projekat – to je riječ koja označava sve što je obuhvaćeno u VB-u, Forma – prozor gdje se kreira interface između korisnika i računara i, Kontrole (objekti) - grafičke karakteristike ili alati koji se postavljaju na formu da doznače korisničku interakciju (okviri za tekst, komandni tasteri, forma kao kontrola).
Postavljanje kontrola se vrši njihovim odabirom u okviru Toolbox i prenošenjem na formu. Svojstva kontrola se podešavaju u prozoru Properties. Properties prozor je uređen u obliku tablice sa dvije kolone. U lijevoj koloni se nalaze imena svih svojstava koja se mogu Riješeni primjeri Page 7
Panevropski univerzitet Apeiron promijeniti na odabrani objekt. Desna kolona pokazuje podešenu vrijednost za svako svojstvo. Svako svojstvo ima unaprijed podešenu vrijednost koja će djelovati sve dok se ne promijeni.
2. VJEŽBE 2.1 Vježba 1 - Dobro dosli u Visual Basic Zadatak je zamišljen kao dobrodoslica Visual Basic-a. Kad pritisnemo dugme „OK“ u MassageBox-u nam se pojavi poruka „Dobro došli u Visual Basic“, a kad pritisnemo Izlaz aplikacija se zatvara. U ovom programu smo koristili „Button1“ i „Button2“ i u samom kodu smo pozval “ MassageBox“. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close()
Riješeni primjeri Page 8
Panevropski univerzitet Apeiron End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Dobro došli u Visual Basic", "Visual Basic") End Sub End Class
2.2 Viježba 2 – Najmanji Broj Za ovu vježbu, na formu sam stavio četiri textbox-a, četiri labele i dva komandna dugmeta. Ovdje sam prikazao upoređivanje tri broja i kao krajnji rezultat dobio sam poruku o tome koji je od tri broja najmanji. Ako prilikom unosa bude biše od jednog najmanjeg broja program će iznbaciti gresku „Nepostoji najmanji broj“ VB Aplikacija
Programski kod Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " " TextBox2.Text = " " TextBox3.Text = " " TextBox4.Text = " " End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a As Single Dim b As Single Dim c As Single Dim min As String
Riješeni primjeri Page 9
Panevropski univerzitet Apeiron a = b = c = min
TextBox1.Text TextBox2.Text TextBox3.Text = TextBox4.Text
min = a If b < a Then If c < a Then If a = b Or b Broj", "Problem") TextBox4.Text
min = b min = c = c Then MessageBox.Show("Trenutno nepostoji najmanji = min
2.3 Viježba 3 - Razlika najvećeg i zbira preostala dva broja Na formu sam stavio četiri labele, četiri textbox-a i jedno komandno dugme (Računaj). Prilikom unosa tri broja različitih veličina, program treba da izračuna razliku najvećeg broja i zbira preostala dva broja. Koristio sam If Then petlju. VB Aplikacija
Programski kod Public Class Form1 Dim a As Integer Dim b As Integer Dim c As Integer Dim rez As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = TextBox1.Text b = TextBox2.Text c = TextBox3.Text If a > b And a > c Then rez = a - (b + c) ElseIf b > a And b Then rez = b - (c + a) Else rez = c - (b + a) End If TextBox4.Text = rez End Sub
Riješeni primjeri Page 10
Panevropski univerzitet Apeiron Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " " TextBox2.Text = " " TextBox3.Text = " " TextBox4.Text = " " End Sub End Class
2.4 Vježba 4 – Površina i obim praugaonika Kada pokrenemo program, učitava se forma prikazana na slici gore. U prvi TextBox unosi se dužina pravougaonika, a u drugi širina pravougaonika. Nakon klika na dugme „Izračunaj“ u TextBox-ovima će se prikazati rezultati za površinu i obim pravougaonika. Koristio sam 4 TextBox-a, prva 2 za unos stranica dužine I širinei, a druga 2 za ispisivanje rezultata.Na formi postoji komanda ‘’Izračunaj. Klikom na “Izračunaj” izvršava se programski kod. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim duzina As Integer Dim sirina As Integer duzina = TextBox1.Text sirina = TextBox2.Text TextBox4.Text = duzina * sirina TextBox3.Text = 2 * (duzina + sirina) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " "
Riješeni primjeri Page 11
Panevropski univerzitet Apeiron TextBox2.Text = " " TextBox3.Text = " " TextBox4.Text = " " End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub End Class
2.5 Viježba 5 – Obrnuti tekst Pokrenemo novi projekat i na formu postavimo 2 labele sa tekstom kao na slici gore, dva komandna dugmeta „Obrni tekst“ i „Izlaz“ i 2 TextBox-a. Da bi program bio u funkciji potreban je odgovarajući programski kod. Pokretanjem programa u prvi TextBox unesemo neku riječ. Pritiskom na komandu „OBRNI TEKST“ u drugom TextBox-u pojavljuje se obrnuti tekst. Iz programa izlazimo klikom na „Izlaz“. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim rijec As String rijec = TextBox1.Text TextBox2.Text = StrReverse(rijec) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " "
Riješeni primjeri Page 12
Panevropski univerzitet Apeiron TextBox2.Text = " " End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub End Class
2 .6 Vježba 6 – Prestupna godina Pokrenemo novi projekat i u formu postavljamo tri labele sa tekstom kao na slici. Zatim napravimo dva okvira za tekst i tri komandna dugmeta (“Kreni”, “Poništi” i “Izlaz”). Da bi program bio u funkciji napisati programski kod. Kada pokrenemo program sledeći uputstva unesemo godinu u prvi TextBox i pritisnemo dugme „Kreni“. U drugom okviru za tekst ispisaće se odgovor, a pritiskom na dugme „Poništi“ tekst iz okvira se briše i možemo ponoviti upit. Iz programa se izlazi pritiskom na dugme “Izlaz”. Promenljiva x je deklarisana kao podatak tipa String, odnosno znakovni niz. Da bismo podijelili dva broja tako da izračunamo ostatak koristimo operator Mod. U dijelu programskog koda, koji glasi If x Mod 4 <> 0 ... znači : Ako je ostatak koji preostane po dijeljenju x sa 4 različit od nule...itd. Vrijednost promenljive x je na početku postavljena na nulu. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = " " TextBox2.Text = " " End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As String x = TextBox1.Text If x Mod 4 <> 0 Then TextBox2.Text = "Godina nije prestupna"
Riješeni primjeri Page 13
Panevropski univerzitet Apeiron Else TextBox2.Text = "Godina je prestupna" End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class
2.7 Vježba 7 – Zahtjev za lozinku Pokrenuti novi projekat i na formu postaviti dugme “Unesi lozinku“. Kada pokrenemo program pojaviće se forma kao na slici gore i pritiskom na komandno dugme „Unesi lozinku“ pojavljuje se prozor „InputBox“ u koji unosimo šifru, a rezultat se pokazuje u MsgBox-u. Petlja Do While...Loop koju vidimo u programskom kodu gore ne radi ništa dok ne ispita da li je neki uslov ispunjen. ako je ispunjen onda počinje da radi prema instrukcijama, u suprotnom prelazi na sledeću naredbu u programu Visual Basic-a. Uslov mora biti promenljiva ili izraz koji vraća vrednost True ili False. Oblik petlje primenjene u ovoj aplikaciji je: Do While Uslov Instrukcije Loop. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim start As Integer Dim lozinka As String Do While start < 3 lozinka = InputBox("Unesi lozinku", "Pristup Bazi Podataka")
Riješeni primjeri Page 14
Panevropski univerzitet Apeiron If lozinka = "goran" Then MessageBox.Show("Prihvacam", "Baza Podataka") Else MessageBox.Show("Pokusaj ponovo", "Baza podataka") End If start = start + 1
Loop End Sub End Class
2.8 Vježba 8 – Mjeseci u godini Ovaj zadatak ima za cilj da kad uneseš redni broj mjeseca ona u textbox-u izpise njegovo ime, Za ovaj zadatak sam koristio 2 TextBox-a, 2 Button-a, i koristio sa naredbu Case koja sluzi za izbor jedne naredbe (ili nekoliko naredbi) iz skupa od nekoliko mogućih a na osnovu vrijednosti nekog izraza. Naredba Case se moze prikazati preko naredbe if, a svaka naredba if se moze opisati preko naredbe case. VB Aplikacija
Programski kod Public Class Form1 Private Function mjeseci(ByVal redni As Integer) As String Select Case redni Case 1 TextBox2.Text = "Januar" Case 2 TextBox2.Text = "Februar" Case 3 TextBox2.Text = "Mart" Case 4 TextBox2.Text = "April" Case 5 TextBox2.Text = "May" Case 6
Riješeni primjeri Page 15
Panevropski univerzitet Apeiron TextBox2.Text Case 7 TextBox2.Text Case 8 TextBox2.Text Case 9 TextBox2.Text Case 10 TextBox2.Text Case 11 TextBox2.Text Case 12 TextBox2.Text Case Else TextBox2.Text
= "June" = "Juli" = "August" = "Septembar" = "Oktobar" = "Novembar" = "Decembar" = "U godini ima 12 mjeseci"
End Select End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call mjeseci(TextBox1.Text) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " " TextBox2.Text = " " End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub End Class
2.9 Vježba 9 - Primjena Pitagorine Ovaj zadatak ima za cilj izracunavanje treće stranice prougla na osnovu poznavanja ostale dvije stranice. Za izračunavanje ovog zadatka koristićemo Pitagorinu teoremu: „Površina kvadrata nad hipotenuzom je jednaka zbiru površina kvadrata nad katetama“. VB Aplikacija
Riješeni primjeri Page 16
Panevropski univerzitet Apeiron
Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a As Single Dim b As Single Dim c As Single b = TextBox2.Text c = TextBox3.Text a = Math.Sqrt(c * c - b * b) TextBox1.Text = a End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim a As Single Dim b As Single Dim c As Single a = TextBox1.Text c = TextBox3.Text b = Math.Sqrt(c * c - a * a) TextBox2.Text = b End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim a As Single Dim b As Single Dim c As Single a = TextBox1.Text b = TextBox2.Text c = Math.Sqrt(b * b + a * a) TextBox3.Text = c End Sub End Class
Riješeni primjeri Page 17
Panevropski univerzitet Apeiron
2.10 Vježba 10 - Izračunavanje površine trougla korištenjem Heronovog obrasca Poznati Heronov obrazac za izračunavanje površine trougla glasi: P=
. Gdje je S = (a+b+c)/2. Kod ovog zadatka je uslov da
je jedna stranica duža od zbira dužina preostalih dviju stranica. VB Aplikacija
Programski kod Public Class Dim a As Dim c As Dim b As
Form1 Double Double Double
Riješeni primjeri Page 18
Panevropski univerzitet Apeiron Dim s As Double Dim p As Double Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = TextBox1.Text b = TextBox2.Text c = TextBox3.Text 'provjeravamo dali je jedna stranica manja od zbira druge dvije If a < (b + c) And b < (a + c) And c < (b + a) Then s = (a + b + c) / 2 p = (s * (s - a) * (s - b) * (s - c)) TextBox4.Text = p Else MessageBox.Show("Stranica treba biti veca od zbira preostale dvije", "Nemoze se Izracunati") End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " " TextBox2.Text = " " TextBox3.Text = " " TextBox4.Text = " " End Sub End Clas
2.11 Vježba 11 - Mala i velika slova Program vrši pretvaranje velikih slova u mala i obrnuto. Koristio sam naredbe Lcase i Ucase. VB Aplikacija
Programski kod Public Class Form1
Riješeni primjeri Page 19
Panevropski univerzitet Apeiron Dim mala As String Dim velika As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click mala = TextBox1.Text velika = UCase(mala) TextBox2.Text = velika End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click velika = TextBox1.Text mala = LCase(velika) TextBox2.Text = mala End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox1.Text = " " TextBox1.Text = " " End Sub End Class
2.12 Vježba 12 – Geometrijska sredina dva broja Ovaj program se koristi za izračunavanje geometriske sredine dva broja. Geometriska sredina dva broja je polovina njihovih proizvoda (a + b) / 2. Koristio sam tri Button-a, tri TextBox-a i tri Label-e. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub
Riješeni primjeri Page 20
Panevropski univerzitet Apeiron Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a As Integer Dim b As Integer Dim g As Single a = TextBox1.Text b = TextBox2.Text g = (a + b) / 2 TextBox3.Text = g End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " " TextBox2.Text = " " TextBox3.Text = " " End Sub End Class
2.13 Vježba 13 – Kalkulator VB Aplikacija
Programski kod Public Class Form1 Dim a As Integer Dim b As Integer Dim c As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = TextBox1.Text b = TextBox2.Text
Riješeni primjeri Page 21
Panevropski univerzitet Apeiron c = a + b TextBox3.Text = c End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click a = TextBox1.Text b = TextBox2.Text c = a - b TextBox3.Text = c End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click a = TextBox1.Text b = TextBox2.Text c = a * b TextBox3.Text = c End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click a = TextBox1.Text b = TextBox2.Text If a <> 0 And b <> 0 Then c = a / b TextBox3.Text = c Else MessageBox.Show("Broj se nemoze djeliti sa 0", "Greska") End If End Sub End Class
2.14 Vježba 14 – Pozitivan ili negativan broj Zadatak koji provjerava dali je unešeni broj pozitivan, negativan ili je nula. VB Aplikacija
Programski kod Riješeni primjeri Page 22
Panevropski univerzitet Apeiron Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer i = TextBox1.Text If i > 0 Then MessageBox.Show("Unesen broj je pozitivan", "Odgovor") ElseIf i < 0 Then MessageBox.Show(" Uneseni broj je negativan", "Odgovor") Else MessageBox.Show("Uneseni broj je nula", " Odgovor") End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text = " " End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub End Class
2.15 Vježba 15 – Datum i tačno vrijeme Pokrenuti novi projekat i na formu postaviti jednu “Label” i u njene osobine “Caption” unijeti dati naslov odnosno tekst kao na slici. Osim labele napraviti tri komandna dugmeta sa nazivima kao na slici. Zatim postavljamo dva TextBox-a u kojima će se pokazati datum,a u drugom datum i vrijeme. Naravno, da bi sve ovo radilo moramo napisati odgovarajući programski kod koji je prikazan na slici gore. Prilikom pokretanja programa učitava se obrazac kao na gornjoj slici. Pritiskom na komandno dugme „Pokaži datum“ u Textbox-u će se očitati današnji datum, a pritiskom na komandno dugme ’’Pokaži datum i vrijeme’’ u TextBox-u će se očitati datum i vrijeme Pritiskom na komandno dugme Izlaz izlazimo iz programa. VB Aplikacija
Riješeni primjeri Page 23
Panevropski univerzitet Apeiron
Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = DateTime.Today TextBox2.Text = DateTime.Now End Sub End Class
2.16 Vježba 16 – Štoperica U ovom zadatku smo napravili štopericu. Koristili smo 3 Button-a (Start, Stop i Reset), uzeli četiri Labele. Kada kliknemo na dugme Start u Labeli počne da teče vrijeme, kada se u Labeli1 brojač izbroji do 100, onda u Labeli2 počne da broji sekunde, kad Labela2 bude jednaka 60 u Labeli3 počinju da teku minute. Kad pritisnemo dugme Stop štoperica prestaje da broji a dugme Reset vraća sve Labele na početno stanje.
VB Aplikacija
Programski kod Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Start() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Timer1.Stop() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Label1.Text = "0" Label2.Text = "00"
Riješeni primjeri Page 24
Panevropski univerzitet Apeiron Label3.Text = "00" End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Interval = 10 Label3.Text += 1 If Label3.Text = "100" Then Label2.Text += 1 Label3.Text = 0 End If If Label2.Text = 60 Then Label1.Text += 1 Label2.Text = 0 End If If Label1.Text = 60 Then Label4.Text += 1 End If End Sub End Class
2.17 Vježba 17 - Čitanje teksta Za ovaj zadatak potreban nam je jedan Button i jedan TextBox, I nova alatka sapi pomoću koje realizujemo da sve ono što napisemo bude pročitano. U programski kod Buttona upisujemo kod pomoću kojeg dajemo naredbu da sve što napišemo u TextBox-u bude rečeno naravno to je moguće ostvariti pomoću sapi-a, alatke koja služi za govor u Visual Basic-u, nažalost sapiu razumije samo Engleski jezik. VB Aplikacija
Programski Public Class
kod Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim reci = CreateObject("sapi.spvoice") Dim recirijec As String = TextBox1.Text reci.speak(recirijec) End Sub End Class
2.18 Vježba 18 – Web Browser Riješeni primjeri Page 25
Panevropski univerzitet Apeiron Da bi smo rješili ovaj zadatak potrebni su nam 3 Buttona, TextBox i WebBrowser. U Button-e ćemo upisati osnovne stvari koje su nam potrebne za WebBrowser a to su napred, nazad i učitaj. Učemo u programski kod Buttona učitaj i pomoću koda stavljamo naredbu da kad TekxBox upisemo naziv neke stranice direktno učita istu. Naravno moramo biti spojeni na Internet da bi naš zadatak bio realizovan.
VB Aplikacija
Riješeni primjeri Page 26
Panevropski univerzitet Apeiron Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WebBrowser1.Navigate(TextBox1.Text) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click WebBrowser1.GoForward() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click WebBrowser1.GoBack() End Sub End Class
2.19 Vježba 19 – Beeper Da bi rješili ovaj zadatak potrebno su nam 4 Button-a i Timer sa kojim se susrećemo već po drugi put. U Button-e upisati Beep, Start, Stop i Hide Me. U programskom kodu prvog Buttona Beep upisujemo kod kad se to dugme pritisne da se čuje zvuk beep. Kad dugme Start pritisnemo onda se beep čuje svakih 10 sekundi ( to smo riješili pomoću Timera),i to traje sve dok ne pritisnemo dugme Stop. Dugme Hide Me služi da čitav program sakrije u pozadinu. VB Aplikacija
Programski kod Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Console.Beep() End Sub
Riješeni primjeri Page 27
Panevropski univerzitet Apeiron Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Console.Beep() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Timer1.Start() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Timer1.Stop() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Hide() ShowInTaskbar = False End Sub End Class
2.20 Vježba 20 – Redanje brojeva ( Shuffle ) Ovo je najteža aplikacija koju ćemo napraviti ali pošto je zadnji zadatak to bi valjda tako trebalo biti. Za ovaj zadatak pored labela i button koje smo koristili u prethodnim primjerima koristićemo i modul. VB aplikacija
Programski kod- Form1.vb Public Class Form1 Public count As Integer
Riješeni primjeri Page 28
Panevropski univerzitet Apeiron Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Button 2,5 CheckButton(Button1, Button2) CheckButton(Button1, Button5) CheckSolved() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' 1,3,6 CheckButton(Button2, Button1) CheckButton(Button2, Button3) CheckButton(Button2, Button6) CheckSolved() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click ' 2,4,7 CheckButton(Button3, Button2) CheckButton(Button3, Button4) CheckButton(Button3, Button7) CheckSolved() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click ' 3,8 CheckButton(Button4, Button3) CheckButton(Button4, Button8) CheckSolved() End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click ' 1,6,9 CheckButton(Button5, Button1) CheckButton(Button5, Button6) CheckButton(Button5, Button9) CheckSolved() End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click ' 5,2,7,10 CheckButton(Button6, Button5) CheckButton(Button6, Button2) CheckButton(Button6, Button7) CheckButton(Button6, Button10) CheckSolved() End Sub
Riješeni primjeri Page 29
Panevropski univerzitet Apeiron Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click ' 6,3,8,11 CheckButton(Button7, Button6) CheckButton(Button7, Button3) CheckButton(Button7, Button8) CheckButton(Button7, Button11) CheckSolved() End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click ' 7,4,12 CheckButton(Button8, Button7) CheckButton(Button8, Button4) CheckButton(Button8, Button12) CheckSolved() End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click ' 5,10,13 CheckButton(Button9, Button5) CheckButton(Button9, Button10) CheckButton(Button9, Button13) CheckSolved() End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click ' 9,6,11,14 CheckButton(Button10, Button9) CheckButton(Button10, Button6) CheckButton(Button10, Button11) CheckButton(Button10, Button14) CheckSolved() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click ' 10,7,12,15 CheckButton(Button11, Button10) CheckButton(Button11, Button7) CheckButton(Button11, Button12) CheckButton(Button11, Button15) CheckSolved() End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click ' 11,8,16 CheckButton(Button12, Button11) CheckButton(Button12, Button8) CheckButton(Button12, Button16)
Riješeni primjeri Page 30
Panevropski univerzitet Apeiron CheckSolved() End Sub Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click ' 9,14 CheckButton(Button13, Button9) CheckButton(Button13, Button14) CheckSolved() End Sub Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click ' 13,10,15 CheckButton(Button14, Button13) CheckButton(Button14, Button10) CheckButton(Button14, Button15) CheckSolved() End Sub Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click ' 14,11,16 CheckButton(Button15, Button14) CheckButton(Button15, Button11) CheckButton(Button15, Button16) CheckSolved() End Sub Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click ' 15,12 CheckButton(Button16, Button15) CheckButton(Button16, Button12) CheckSolved() End Sub Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click End Sub Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click Me.Close() End Sub Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed End Sub Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Riješeni primjeri Page 31
Panevropski univerzitet Apeiron Dim x = MsgBox("Do you want to Exit?", vbYesNo + vbQuestion) If (x = Windows.Forms.DialogResult.No) Then e.Cancel = True End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Shuffle() End Sub End Class
Programski kod – Module1.vb Module Module1 Sub CheckButton(ByRef Butt1 As Button, ByRef Butt2 As Button) If Butt2.Text = "" Then Butt2.Text = Butt1.Text Butt1.Text = "" End If End Sub Sub CheckSolved() If Form1.Button1.Text = "1" And Form1.Button2.Text = "2" And Form1.Button3.Text = "3" And Form1.Button4.Text = "4" And Form1.Button5.Text = "5" And Form1.Button6.Text = "6" And Form1.Button7.Text = "7" And Form1.Button8.Text = "8" And Form1.Button9.Text = "9" And Form1.Button10.Text = "10" And Form1.Button11.Text = "11" And Form1.Button12.Text = "12" And Form1.Button13.Text = "13" And Form1.Button14.Text = "14" And Form1.Button15.Text = "15" Then MsgBox("Wow, You did it in " & Form1.count & "Clicks", vbInformation, "Shuffle") End If Form1.count = Form1.count + 1 Form1.Text = "Shuffle : " & Form1.count & " Clicks" End Sub Sub Shuffle() Dim a(15), i, j, RN As Integer Dim flag As Boolean flag = False i = 1 a(j) = 1 Do While i <= 15 Randomize() RN = CInt(Int((15 * Rnd()) + 1)) For j = 1 To If (a(j) flag Exit End If Next
i = RN) Then = True For
If flag = True Then flag = False
Riješeni primjeri Page 32
Panevropski univerzitet Apeiron Else a(i) = RN i = i + 1 End If Loop Form1.Button1.Text Form1.Button2.Text Form1.Button3.Text Form1.Button4.Text Form1.Button5.Text
= = = = =
a(1) a(2) a(3) a(4) a(5)
Form1.Button6.Text = a(6) Form1.Button7.Text = a(7) Form1.Button8.Text = a(8) Form1.Button9.Text = a(9) Form1.Button10.Text = a(10) Form1.Button11.Text Form1.Button12.Text Form1.Button13.Text Form1.Button14.Text Form1.Button15.Text Form1.Button16.Text
= = = = = =
a(11) a(12) a(13) a(14) a(15) ""
End Sub End Module
3. Zakljucak Pri izradi ovog seminarskog rada prvi put sam se susreo sa programiranjem u Visual Basic-u 2008. Nastojao sam da kroz 20 primjera (zadataka) u svom seminarskom radu, obuhvatim osnovne mogućnosti koje pruža VB. Svakako ću i nakon što položim ovaj ispit nastaviti sa usavršavanjem rada u VB. VB predstavlja okruženje za pravljenje projekta (računarskog programa), unutar koga možemo da počnemo s pravljenjem projekta, možemo ga pokrenuti i testirati, uklanjati greške i snimati ga za kasnije korišćenje. Kod nekih drugih računarskih jezika program pišete obično u posebnom programu za uređivanje teksta, zatim pozivate program za prevođenje (engl. compiler) da biste napravili tzv. izvršnu (engl. execute) verziju programa, a u posebnom programu testirate svoj program. VB integriše sve ove programe u jedno razvojno okruženje, što je njegova ogroman prednost u odnosu na druge programske jezike. Takođe poznavanje programskog jezika QBasic je od velike koristi za učenje programiranja u VB 2005 i stoga je preporučljivo savladati prvo ovaj jezik pa tek onda se uhvatiti u koštac sa moćnim Visual Basicom 2008. Ovo mi je od velike pomoći za budući rad, te mi je to još jedan podstrek više da ne odustanem u namjeri da bolje upoznam Visual Basic nego što to sada znam.
Riješeni primjeri Page 33
Panevropski univerzitet Apeiron
4. Literatura Microsoft Visual Basic- vodič za programere Microsoft® Visual Basic 6.0 programer.s Guide. „Strijelac“- Zagreb 1999. Damir Omerasevic, Muhamed Sarajlic, Basic, Svjetlost Sarajevo 2003. Nedžad Jupić Osnove programiranja /Rapid Applications Development System/skripta Visual Basic za neupućene – Wallace Wang
Riješeni primjeri Page 34
Panevropski univerzitet Apeiron
Riješeni primjeri Page 35