You are on page 1of 3

PROGRAMIRANJE KROZ APLIKACIJE

Laboratorijska vjeba I - IZRADA ZADATAKA


1. Napisati funkciju Porez koja ima jedan pozitivan argument Iznos, a vraa vrijednost poreza prema sledeim
pravilima:
Ako je Iznos manji od 200 porez se rauna po stopi od 12%;
Ako je Iznos izmeu 200 i 500 porez se rauna kao 24 + 10% od vrijednosti iznosa preko 200
(Primjer: Iznos je 270, porez je: 24+10%*(270-200)=24+10%*70=24+7=31);
Ako je Iznos vei od 500, porez se rauna kao 54 + 5% od vrijednosti iznosa preko 500
(Primjer: Iznos je 580, porez je: 54+5%*(580-500)=54+5%*80=54+4=58).
Savjet: Zadatak moete (to ne znai da morate) rijeiti tako to broj Iznos rastavite na zbir tri broja a+b+c, pri emu
broj a ne smije biti vei od 200, broj b ne smije biti vei od 300 (500-200). Porez se tada rauna kao 12%*a +
10%*b + 5%*c.
Function Porez(Iznos As Single) As Single
Dim a As Single, b As Single, c As Single
a = 200: b = 0: c = 0
If Iznos < 0 Then
Porez = 0
Exit Function
ElseIf Iznos <= 200 Then
a = Iznos
ElseIf Iznos <= 500 Then
b = Iznos - 200
Else
b = 300
c = Iznos - 500
End If
Porez = 0.12 * a + 0.1 * b + 0.05 * c
End Function

2. Napisati funkciju ProstBroj koja ima jedan pozitivni cjelobrojni argument N (nije potrebno provjeravati ispravnost
broja N), a vraa logiku vrijednost True ako je broj N prost, odnosno False u sluaju da nije prost.
Function ProstBroj(N As Integer) As Boolean
Dim I As Integer
ProstBroj = True
If N = 1 Then
ProstBroj = False
Exit Function
End If
For I = 2 To N / 2
If N Mod I = 0 Then
ProstBroj = False
Exit Function
End If
Next I
End Function

3. Napisati funkciju SPB koja ima jedan pozitivni cjelobrojni argument N (nije potrebno provjeravati ispravnost broja
N), a kao rezultat vraa zbir svih prostih brojeva manjih od N. U rjeavanju koristite funkciju ProstBroj iz
prethodnog zadatka.
Function SPB(N As Integer) As Integer
Dim I As Integer
SPB = 0
For I = 2 To N - 1
If ProstBroj(I) Then SPB = SPB + I
Next I
End Function

4. Napisati funkciju SumCif koja ima jedan cjelobrojni argument N i koja rauna zbir njegovih cifara. Prilagoditi
funkciju tako da ispravno radi i pri unosu negativnih brojeva. Znak broja ne utie na sumu njegovih cifara.
Function SumCif(N As Integer) As Integer
SumCif = 0
If N < 0 Then N = -N
Do
SumCif = SumCif + (N Mod 10)
N = N \ 10 'ili N = Fix(N / 10)
Loop Until N = 0
End Function

Laboratorijska vjeba II - IZRADA ZADATAKA

1. Napisati funkciju sumadjeljivi koji za unijeti prirodan broj N rauna sumu svih prirodnih brojeva sa kojima je N
djeljiv. Ukoliko N nije prirodan broj, prekinuti izvravanje funkcije i vratiti broj -1.
Function sumadjeljivi(N As Integer) As Integer
Dim I As Integer
If N <= 0 Then
sumadjeljivi = -1
Exit Function
End If
sumadjeljivi = 0
For I = 1 To N
If N Mod I = 0 Then
sumadjeljivi = sumadjeljivi + I
End If
Next
End Function

2. Napisati funkciju binarni koja za ulazni argument ima cijeli broj N i koja formira string koji predstavlja binarni
zapis broja N. Na primjer, poziv funkcije binarni(190) vraa string "10111110".
Function binarni(N As Integer) As String
Dim cif As Integer
binarni = ""
Do While N <> 0
cif = N Mod 2
binarni = cif & binarni
N = N \ 2
Loop
End Function

3. Napisati funkciju elim_cif koja za ulazni argument ima string S i koja iz datog stringa eliminie sve cifre. Na
primjer, poziv funkcije elim_cif("srijeda 20.2.2008.") vraa string "srijeda ...".
Function elim_cif(S As String) As String
Dim I As Integer
elim_cif = ""
For I = 1 To Len(S)
If Mid(S, I, 1) Like "[!0-9]" Then
elim_cif = elim_cif & Mid(S, I, 1)
End If
Next I
End Function

4. Napisati funkciju zamjena koja za ulazni argument ima stringove S, S1 i S2, i koja svaku pojavu stringa S1 u S
mijenja stringom S2. Na primjer, poziv funkcije zamjena("prababa","ba","de") vraa string "pradede".

Function zamjena(S As String, S1 As String, _


S2 As String) As String
Dim I As Integer, d As Integer, d1 As Integer
I = 1
duz = Len(S)
duz1 = Len(S1)
zamjena = ""
Do While I <= duz - duz1
If S1 = Mid(S, I, duz1) Then
zamjena = zamjena & S2
I = I + duz1
Else
zamjena = zamjena & Mid(S, I, 1)
I = I + 1
End If
Loop
If S1 = Mid(S, I, duz1) Then
zamjena = zamjena & S2
Else
zamjena = zamjena & Mid(S, I, duz1)
End If
End Function

5. Napisati funkciju num2text koja za ulazni argument ima cijeli broj N i koja vraa string koji predstavlja tekstualni
oblik datog broja. Na primjer, poziv funkcije num2text(249) vraa string "dvije stotine etrdeset devet".
Ovo uradite sami, i to samo ako ne znate ta ete od slobodnog vremena.

You might also like