Poslao: 18 Jul 2006 21:38
|
offline
- Pridružio: 18 Sep 2004
- Poruke: 241
- Gde živiš: Novi Sad
|
Public Class Form1
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Dim ibroj1 As Integer
Dim ibroj2 As Integer
Dim isaberi As Integer
ibroj1 = TextBox1.Text
ibroj2 = TextBox2.Text
isaberi = ibroj1 + ibroj2
If isaberi <= 300 Then
MessageBox.Show("vrednost od " & isaberi & " dinara ne zadovoljava minimalnu uslovnu vrednost za obracunavanje poreza.")
Else
MessageBox.Show(isaberi & " dinara.")
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ibroj1 As Integer
Dim ibroj2 As Integer
Dim isaberi As Integer
Dim ibroj3 As Integer
Dim ibruto As Integer
ibroj1 = TextBox1.Text
ibroj2 = TextBox2.Text
ibroj3 = TextBox3.Text
isaberi = ibroj1 + ibroj2
ibruto = isaberi + isaberi * (ibroj3 / 100)
MessageBox.Show(ibruto & " dinara.")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim ibroj4 As Integer
Dim ibroj1 As Integer
Dim ibroj2 As Integer
Dim isaberi As Integer
Dim ibroj3 As Integer
Dim ibruto As Integer
ibroj1 = TextBox1.Text
ibroj2 = TextBox2.Text
ibroj3 = TextBox3.Text
isaberi = ibroj1 + ibroj2
ibroj4 = isaberi * (ibroj3 / 100)
Select Case ibroj4
Case Is >= 500
MessageBox.Show("vrednost poreza od " & ibroj4 & " dinara je kradja, kupite proizvod na crnom trzistu .")
Case Else
MessageBox.Show("osteceni ste za " & ibroj4 & " dinara")
End Select
End Sub
End Class
Evoooo . Poceo sam nesto malo da brljam oko VB.NET-a
I odmah imam pitanje ...
Naime, da li je ovo moglo mnogo jednostavnije da se uradi ?
Ima tri labela u koje se unose: prva dva cene proizvoda, treci PDV u procentima
tri buttona, prvi izracunava zbir cena dva proizvoda, drugi ukupnu cenu zajedno sa porezom a treci vrednost poreza ... i stiti vas da vaas ne pokradu previse . I sad, ja sam u prvom buttonu ... ne znam kako da se izrazim ... definisao njegovu funkciju programskim kodom ali sam onda u drugom i trecem morao da ponavljam kod predhodnog. Da li je to moglo jednostavnije ? ( ja mislim da jeste pa bih vas zamolio za pomoc )
PS: ovo nije primer iz ``knjige`` za datu oblast. U knjizi je neki debilan primer pa sam ja probao malo da prosirim sve to .
smejte se vi samo
Hvala
snoop.edit: Koristi [ code][ /code] tagove
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 18 Jul 2006 21:51
|
offline
- snoop
- Genghis Khan
- Pridružio: 18 Apr 2003
- Poruke: 8134
- Gde živiš: U kesici gumenih bombona...
|
Da, mogao si jednostavnije.
Napravis funkciju koju poziva koliko hoces puta, na taj nacin smanjujes velicinu programa.
public sub Saberi(ibroj1 as integer, ibroj2 as integer, ibroj3 as integer) as integer
isaberi = ibroj1 + ibroj2
return ibroj4 = isaberi * (ibroj3 / 100)
end sub
Posle ovo pozoves:
Saberi(textbox1.text, textbox2.text, textbox3.text)
Tako da deo koda napisan jednom, ponavljas vise puta na ovaj nacin.
Ja sam odavno izasao iz opsega VBa tako da ako sam nesto pogresno napisao, nije namerno.
|
|
|
|
Poslao: 19 Jul 2006 19:07
|
offline
- Pridružio: 18 Sep 2004
- Poruke: 241
- Gde živiš: Novi Sad
|
evo, probao sam ovako :
Public Class Form1
Public Function Zbir(ByVal Broj1 As Integer, ByVal broj2 As Integer) As Integer
Zbir = Broj1 + broj2
End Function
Public Function PDV(ByVal broj3 As Integer) As Decimal
broj3 = TextBox3.Text
PDV = Zbir(TextBox1.Text, TextBox2.Text) * (broj3 / 100)
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Zbir(TextBox1.Text, TextBox2.Text) <= 300 Then
MessageBox.Show("vrednost od " & Zbir(TextBox1.Text, TextBox2.Text) & " dinara je previse mala da bi se na nju obracunao porez.")
Else
MessageBox.Show(Zbir(TextBox1.Text, TextBox2.Text) & " dinara")
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim broj3 As Integer
broj3 = TextBox3.Text
MessageBox.Show("ukupna cena je " & Zbir(TextBox1.Text, TextBox2.Text) + Zbir(TextBox1.Text, TextBox2.Text) * (broj3 / 100) & " dinara")
Label4.Text = PDV(TextBox3.Text)
If Label4.Text >= 300 Then
Label4.Text = ("vrednost od " & PDV(TextBox3.Text) & " dinara poreza je prevelika, kupite proizvod na crnom trzistu.")
Else
Label4.Text = ("odrali su vas za " & PDV(TextBox3.Text) & " dinara.")
End If
End Sub
End Class
A da li funkcija moze preciznije da se definise, da ne moram svaki put da kucam (textbox1.text, textbox2.text) odakle da kupi podatke funkcija ``saberi`` recimo ?
tj. kada napravim funkciju primera radi:
?Public Function Saberi(ByVal broj1 as Integer, ByVal broj2 as integer) as integer
Saberi = broj1 + broj2
end function
moram da kucam svaki put kada pozivam tu funkciju
Saberi(textbox1.text, textbox2.text)
da li mozda moze:
Public Function saberi(byval broj1 as integer, byval broj2 as integer ) as integer
saberi = broj1 + broj2
saberi(textbox1.text, textbox2.text)
end function
?
ne bi da probavam kod sebe u VB.NET-u jer kad napravim tako neku gresku ukljuci mi program i onda se sve zapuca i izadje ono Eror report send/don`t send ... i potom mu treba nekoliko duuugiiih minuta da se otpuca
|
|
|
|
Poslao: 19 Jul 2006 21:17
|
offline
- snoop
- Genghis Khan
- Pridružio: 18 Apr 2003
- Poruke: 8134
- Gde živiš: U kesici gumenih bombona...
|
Ne mozes funkciji da dodelis vrednost (osim ako VB na taj nacin vraca vrednost funkciji. Izasao sam iz VB fazona odavno).
Ali mozes da pozivas funkciju unutar te iste funkcije.
To se zove rekurzija.
|
|
|
|
Poslao: 21 Jul 2006 00:02
|
offline
- GameDeveloper
- Novi MyCity građanin
- Pridružio: 06 Jun 2005
- Poruke: 7
|
Lost_Warior- ::evo, probao sam ovako :
[code]Public Class Form1
Public Function Zbir(ByVal Broj1 As Integer, ByVal broj2 As Integer) As Integer
Zbir = Broj1 + broj2
End Function
Ovo je pogrešno i kod neće radit već će ti javit da funkciji ne možeš dodjelit vrijednost, stoga trebaš umjesto Zbir = Broj1 + Broj2 upisati Return Broj1 + Broj2
|
|
|
|
|
Poslao: 21 Jul 2006 12:47
|
offline
- Bone Collector
- Legendarni građanin
- Pridružio: 18 Apr 2003
- Poruke: 5001
- Gde živiš: Beograd
|
Koliko se ja secam u vb-u se vrednost vraca bas onako kako je Lost_Warior- napisao...
Saberi = broj1 + broj2
|
|
|
|
|
Poslao: 22 Jul 2006 10:50
|
offline
- Pridružio: 18 Sep 2004
- Poruke: 241
- Gde živiš: Novi Sad
|
Potpuno je svejedno
Mozes:
Public function Saberi(dim broj1 as integer, dim broj2 as integer) as integer
saberi = broj1 + broj 2
End function
ili
Public Function Saberi(dim broj1 as integer, dim broj2 as integer) as integer
return broj1 + broj2
End Function
U oba slucaja ce raditi bez problema, to ti je u VB.NET samo predstavljen jos jedan nacin da vratis vrednost, ( barem ja tako mislim )
( ili mozda ima neke razlike izmedju VS 2003 i VS 2005 pa u 2005 ovo moze a ti si mozda radio (radis) na trojci )[/code]
|
|
|
|