Moj prvi program :). Ako zasluzuje da se zove programom :)

Moj prvi program :). Ako zasluzuje da se zove programom :)

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 Razz . 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 Smile

Hvala



snoop.edit: Koristi [ code][ /code] tagove



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • 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.



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

offline
  • 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.

offline
  • 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

offline
  • Pridružio: 18 Sep 2004
  • Poruke: 241
  • Gde živiš: Novi Sad

pa to radi bez ikakvih problema

Confused

offline
  • 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

offline
  • Pridružio: 18 Jul 2005
  • Poruke: 312

u VB6:

Funkcija=Nesto + Nesto

u VB.NET

Return Nesto + Nesto

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]

Ko je trenutno na forumu
 

Ukupno su 1087 korisnika na forumu :: 4 registrovanih, 0 sakrivenih i 1083 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bojank2, caesar2, nikoladgajic, tokivoki01