Author
aleksandar-lalovic
View
503
Download
18
Embed Size (px)
DESCRIPTION
Programiranje
1MAINSKI FAKULTET BANJA LUKA Rijeeni zadaci sa vjebi iz Programiranja Pripremio asistent Slavia Todorovi dipl. in. ma. Termin 1: Upoznavanje sa Visual Basic korisnikim interfejsom View Code - prikaz prozora za unos koda View Object - prikaz selektovane forme iz Project prozora View/Project Explorer; Properties Window; Form Layout; Toolbox Zadatak 1: Sastavite program za izraunavanje povrine krunice koristei ugraene InputBox () i MsgBox () Visual Basic funkcije. Rjeenje: Private Sub Form_Load() R = InputBox("") P = R * R * 3.14159 MsgBox (P) End Sub Cilj zadatka: Objanjavanje elemenata jezika (varijable, podaci, operatori, izrazi, naredbe) Obim = 2*r*3.14159 ()2Zadatak 2: Sastavite program za izraunavanje nominalnog napona epruvete krunog poprenog presjeka optereene na zatezanje koristei ugraene InputBox () i MsgBox () Visual Basic funkcije. Rjeenje: Private Sub Form_Load() Sila = InputBox("Unesite silu [N]") R = InputBox("Unesite radijus epruvete [mm]") P = R * R * 3.14159 Napon = Sila / P MsgBox Napon End Sub Cilj zadatka: Proirenje prethodnog zadatka na neto sloeniji inenjerski problem. Upoznavanje studenata sa Prompt argumentom InputBox funkcije koji se koristi u cilju informisanja korisnika programa o ulaznoj veliini koju treba unijeti. Zadatak 3: Sastavite program za izraunavanje zbira dva broja koristei ugraene InputBox () i MsgBox () Visual Basic funkcije. Rjeenje: Private Sub Form_Load() a = InputBox("Unesite prvi broj") b = InputBox("Unesite drugi broj") c = a + b MsgBox c, , "Zbir je" End Sub Cilj zadatka: Upoznavanje studenata sa potrebom za egzaktno definisanje (deklarisanje) tipa podataka za pojedine varijable. Na primjer, bez implicitnog deklarisanja a i b varijabli u single, 5 + 6 daje rezultat 56. Upoznavanje studenata sa Title argumentom funkcije MsgBox koji se moe iskoristiti u cilju obavjetenja korisnika o rezultatu izraunavanja. Zadatak 3: Upoznavanje studenata sa VBA API mogunostima u Windows aplikacijama. Primjer u CATIA V5. 3Termin 2 Tipovi podataka, varijabli i izraza, operacije sa podacima Ukratko ponoviti tipove varijabli prema datoj tabeli: Zadatak 1: Uraditi prethodni zadatak (sastaviti program za izraunavanje zbira dva broja) uz eksplicitno deklarisanje potrebnih varijabli: Rjeenje: Dim a As Single Dim b As Single Dim zbir As Single Private Sub Form_Load() a = InputBox("Unesite prvi broj:") b = InputBox("Unesite drugi broj:") zbir = a + b MsgBox "Zbir je" & zbir druga varijanta: Dim komentar as String, komentar & zbir End Sub Cilj zadatka: Rjeavanje problema iz prolog zadatka deklarisanjem varijabli za zadate brojeve u neki od brojanih tipova. Isprobati Integer, te Single ili Double. Upoznavanje studenata sa kombinovanjem brojanih i znakovnih tipova podataka koritenjem operatora &. MsgBox funkcija se koristi bez zagrade ako ista ne predaje vrijednost nekoj varijabli. Ako se koristi samo Prompt argument MsgBox funkcije onda on moe stajati u zagradi. 4Zadatak 2: Sastavite program koji e za unijetu vrijednost radijusa izraunavati obim i povrinu krunice, te povrinu i zapreminu lopte istog radijusa. (Povrina lopte: P = 4 R2 n , zapremina lopte: I = 43 R3 n) Rjeenje: Dim R As Double Const pi = 3.14159265358979 Dim obim As Double Dim Pkruga As Double Dim Plopte As Double Dim Vlopte As Double Private Sub Form_Load() R = InputBox("Unesite poluprecnik u milimetrima") obim = 2 * R * pi Pkruga = R ^ 2 * pi Plopte = 4 * R ^ 2 * pi Vlopte = 4 / 3 * R ^ 3 * pi MsgBox "Obim kruznice je" & obim & "[mm]" MsgBox "Povrsina kruznice iznosi" & Pkruga & "[mm^2]" MsgBox "Povrsina lopte je" & Plopte & "[mm^2]" MsgBox "Zapremina lopte je" & Vlopte & "[mm^3]" End Sub Cilj zadatka: Primjer potrebe za deklarisanjem konstantne brojane vrijednosti koja se esto ponavlja kroz program, a u svrhu jednostavnijeg zapisivanja naredbi. Upoznavanje studenata sa operatorom za stepenovanje ^. 5Zadatak 3: Sastaviti program koji e nakon pojedinanog unosa Vaeg imena i prezimena i broja godina u jednoj reenici ispisati Vae prezime i ime i koliko imate godina. Rjeenje: Dim ime As String Dim prezime As String Dim god As Integer Private Sub Form_Load() ime = InputBox("Unesite Vase ime") prezime = InputBox("Unesite Vase prezime") god = InputBox("Unesite koliko imate godina") MsgBox "Zovete se" & prezime & ime & "i imate" & god & "godina." End Sub Cilj zadatka: Primjer gdje je potrebno koristiti znakovni i cjelobrojni tip varijabli. Potrebno je rijeiti problem nepreglednog ispisa reenice tako to treba ubaciti razmake tamo gdje je potrebno. Pitati studente kako bi rijeili taj problem, sa slike: 6Termin 3 Funkcije u Visual Basic-u Zadatak 1: Sastaviti program koji e za unesenu vrijednost ugla u stepenima ispisati vrijednosti trigonometrijskih funkcija sino, coso, tgo i ctgo. Rjeenje: Dim ugao As Double Dim sinus As Double Dim kosinus As Double Dim tangens As Double Dim kotangens As Double Dim pi As Double Private Sub Form_Load() ugao = InputBox("Unesite vrijednost ugla u stepenima") pi = 4 * Atn(1) sinus = Sin(ugao * pi / 180) MsgBox "Sinus unesenog ugla je " & sinus kosinus = Cos(ugao * pi / 180) MsgBox "Kosinus unesenog ugla iznosi " & kosinus tangens = Tan(ugao * pi / 180) MsgBox "Tangens unesenog ugla je " & tangens kotangens = kosinus / sinus MsgBox "Kotangens unesenog ugla iznosi " & kotangens End Sub 7Cilj zadatka: Prvo demonstrirati da naziv varijable ne moe da se podudara sa nazivom funkcije! Potom objasniti nain izraunavanja broja PI preko funkcije za tangens ugla: pi = 4 * Atn(1). Zatim detaljnije objasniti pretvaranje argumenta trigonometrijske funkcije iz radijana u stepene: Sin(ugao * pi / 180). Zadatak 2: Sastaviti VB program koji e na osnovu uneene poetne i krajnje take vektora u ravni izraunati i ispisati intenzitet vektora i intenzitet njegovih projekcija. Program treba da obavijesti korisnika i o tome koliki ugao vektor zaklapa sa x i y osom. Rjeenje: Dim x0 As Double 'x koordinata pocetne tacke vektora Dim y0 As Double 'y koordinata pocetne tacke vektora Dim x1 As Double 'x koordinata krajnje tacke vektora Dim yz As Double 'y koordinata krajnje tacke vektora Dim intenzitet As Double 'intenzitet vektora Dim xProj As Double 'Projekcija vektora na x - osu Dim yProj As Double 'Projekcija vektora na y - osu Dim xUgao As Double 'Ugao koji vektor zaklapa sa x - osom Dim yUgao As Double 'Ugao koji vektor zaklapa sa y - osom Dim pi As Double Private Sub Form_Load() x0 = InputBox("Unesite x koordinatu pocetne tacke vektora") y0 = InputBox("Unesite y koordinatu pocetne tacke vektora") x1 = InputBox("Unesite x koordinatu krajnje tacke vektora") Y1 = InputBox("Unesite y koordinatu krajnje tacke vektora") pi = 4 * Atn(1) xProj = Abs(x1 - x0) yProj = Abs(y1 - y0) intenzitet = Sqr(xProj ^ 2 + yProj ^ 2) xUgao = Atn(yProj / xProj) * 180 / pi yUgao = 90 - xUgao MsgBox "Intenzitet vektora iznosi " & intenzitet MsgBox "Projekcija vektora na x-osu iznosi" & xProj MsgBox "Projekcija vektora na y-osu iznosi" & yProj MsgBox "Ugao koji vektor zaklapa sa apscisom je " & xUgao & " stepeni." MsgBox "Ugao koji vektor zaklapa sa ordinatom je " & yUgao & " stepeni." End Sub 8Cilj zadatka je koritenje to veeg broja funkcija. Nakon pisanja koda potrebno je testirati program. Ukazati na problem dijeljenja nulom za sluaj kada je vektor paralelan sa ordinatom. Taj problem emo moi rijeiti na pravi nain nakon savladavanja programskih struktura sa grananjem. Termin 4 Znakovne funkcije Zadatak 1: Sastaviti VB program koji e obavijestiti korisnika o tome koliko je upisao znakova u prozoru InputBox funkcije. Rjeenje: Dim unos As String Dim n As Integer Private Sub Form_Load() unos = InputBox("") n = Len(unos) MsgBox "Upisali ste " & n & " znakova." End Sub Cilj zadatka: Primjer upotrebe Len( ) funkcije. 9Zadatak 2: Sastaviti VB program koji e u unesenom nizu znakova pronai eljeni znak i obavijestiti korisnika na kojoj poziciji se taj znak nalazi u unesenom znakovnom nizu. Rjeenje: Dim unos As String Dim znak As String Dim n As Integer Private Sub Form_Load() unos = InputBox("Unesite niz znakova:") znak = InputBox("Unesite znak koji se trazi u nizu znakova") n = InStr(1, unos, znak) MsgBox "U unesenom nizu: " & unos & " trazeni znak " & znak & " nalazi se na poziciji " & n & "." End Sub Zadatak 3: Sastaviti VB program koji e iz unesenog imena i prezimena neke osobe, izdvojiti ime i prezime i ispisati ih pojedinano. Rjeenje: Dim unos As String 'varijabla koja ce sadrzati upisano ime i prezime osobe Dim ime As String Dim prezime As String Dim n As Integer 'varijabla cija ce vrijednost odgovarati polozaju razmaka u_ upisanom imenu i prezimenu Dim duzina As Integer 'ukupan broj znakova u unesenom imenu i prezimenu,_ racunajuci i razmak Private Sub Form_Load() unos = InputBox("Unesite ime i prezime osobe:") duzina = Len(unos) n = InStr(1, unos, " ") ime = Mid(unos, 1, n) prezime = Mid(unos, n + 1, duzina) MsgBox "Ime osobe je " & ime MsgBox "Prezime osobe je " & prezime End Sub 10Pretvarake funkcije Zadatak 4: Sastaviti VB program koji e omoguiti unos koordinata vektora u ravni koristei samo jednu InputBox() funkciju. Unos koordinata poetne i krajnje take trebada se izvru u sljedeem obliku: x0;y0;x1;y1; , na primjer: Dim unos As String Dim x0 As Double Dim y0 As Double Dim x1 As Double Dim y1 As Double Dim n1 As Integer Dim n2 As Integer Dim duzina As Integer Private Sub Form_Load() unos = InputBox("Unesite koordinate vektora u ravni", , "0;20.5;16;-30.25") duzina = Len(unos) n1 = 1 n2 = InStr(n1, unos, ";") x0 = CDbl(Mid(unos, n1, n2 - n1)) n1 = n2 + 1 n2 = InStr(n1, unos, ";") y0 = CDbl(Mid(unos, n1, n2 - n1)) n1 = n2 + 1 n2 = InStr(n1, unos, ";") x1 = CDbl(Mid(unos, n1, n2 - n1)) n1 = n2 + 1 y1 = CDbl(Mid(unos, n1, duzina - n2)) MsgBox x0 & " " & y0 & " " & x1 & " " & y1 End Sub 11Komentar:Prilikomkoritenjanekihaplikacijaestajepraksadaseujednomkorakuunosiviepodataka.NajslinijiprimjerovomzadatkujepostupakunoenjakoordinatataakauAutoCADuuDekartovimkoordinatama(npr.50,20)iliupolarnimkoordinatama(npr.25