Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Matrica u vb2008

[es] :: .NET :: Matrica u vb2008

[ Pregleda: 2242 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-a-1.sezampro.yu.



Profil

icon Matrica u vb200802.05.2010. u 23:27 - pre 170 meseci
Treba da napravim matricu treceg reda gde svaka vrsta ima razlicite vrednosti,da izgleda ovako:



Znam da napravim ovako nesto :

Code:
 Dim mat(2, 2) As Double


    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i, j, c As Double
        c = 1
        For i = 0 To 2
            For j = 0 To 2
                mat(i, j) = c
                c += 1
                TextBox1.Text += CStr(mat(i, j)) + vbTab
            Next
            TextBox1.Text += vbCrLf
        Next
    End Sub


(da na jedan klik ispisuje matricu (1,2,3,4,5,6,7,8,9), znam i da u matrici budu sve iste vrednosti , ali nikako mi ne uspeva da napravim da u prvoj vrsti pise 2,4 drugoj 9,1 trecoj 0,5. (ili nesto slicno)
ako moze mala pomoc bila bih jako zahvalna.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Matrica u vb200803.05.2010. u 01:10 - pre 170 meseci
Pa, moglo bi npr. ovako (uz minimalne modifikacije):

Code (vbnet):

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
          Dim i, j, c As Double
          Dim vals() As Double = {2.4, 9.1, 0.5}
          c = 1
          For i = 0 To 2
               For j = 0 To 2
                    mat(i, j) = c
                    c += vals(i)
                    TextBox1.Text += CStr(mat(i, j)) + vbTab
               Next
               TextBox1.Text += vbCrLf
          Next
     End Sub
 

 
Odgovor na temu

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Matrica u vb200803.05.2010. u 01:50 - pre 170 meseci
Hvaala,prepravila sam ovako : :)

Code:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i, j, c As Double
        Dim vals() As Double = {2.4, 9.1, 0.5}
        For i = 0 To 2
            For j = 0 To 2
                c = vals(i)
                mat(i, j) = c
                TextBox1.Text += Str(mat(i, j)) + vbTab
            Next
            TextBox1.Text += vbCrLf
        Next
    End Sub
End Class


Samo sto mi u trecoj vrsti umesto "0.5" pise samo ".5 " jel' to nema veze ako recimo hocu da saberem dijagonalu i moze li uopste da pise 0.5?
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Matrica u vb200803.05.2010. u 10:24 - pre 170 meseci
Probaj da umesto Str funkcije koristis mat(i, j).ToString(). Ako nece tako, onda dodaj parametar za format stringa. Nisam siguran kako ide tacno, ali mozes videti u dokumentaciji.
Inace, bolje ti je da koristis .ToString() i inace, jer je to standardna .NET funkcija dok je Str() specificna za vb.net.
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Matrica u vb200803.05.2010. u 10:36 - pre 170 meseci
U C# moze ovako:
double.ToString("0.00"); //ako hocesh dve decimale
tako da pretpostavljam da bi trebalo da radi ako napishesh ovako:
mat(i,j).ToString("0.0");//ili koliko vec budesh htela decimalnih mesta.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-1.sezampro.yu.



Profil

icon Re: Matrica u vb200803.05.2010. u 12:06 - pre 170 meseci
Hvala probacu.

Sad imam jos jedan problem, napravila sam da se na klik dugmeta racuna suma svih elemenata prve vrste,to izgleda ovako i radi:

Code:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click


        Dim i, j, sumavrsta1 As Double
        For i = 0 To 2
            For j = 0 To 2
                If i + j = j Then
                    sumavrsta1 += mat(i, j)

                End If
            Next
        Next
        TextBox1.Text = Str(sumavrsta1)


Ali hocu da napravim da se umesto ovoga poziva takva funkcija na klik dugmeta,napravila sam u modulu ovako: (ali ne radi)

Code:


Module Module1
    Public mat(2, 2) As double

    Public Function funsum(ByVal sumavrsta1 As Double)
        Dim i, j As Double

        For i = 0 To 2
            For j = 0 To 2
                If i + j = j Then
                    sumavrsta1 += mat(i, j)

                End If
            Next
        Next

    End Function
End Module



A u klik dogadjaju dugmeta ovako:

Code:


Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        TextBox1.Text = Str(funsum(Val(TextBox1.Text)))


Zbunjuje je me kada pravim funkciju u modulu sto imam vise promenljivih i ByVal, pa ne znam gde gresim, da li pogresno postavljam promenljive u funkciji ili gresim u klik dogadaju,sve sam kombinacije probala i nikako da proradi.
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Matrica u vb200803.05.2010. u 12:30 - pre 170 meseci
Verovatno bi bilo bolje da ti odgovori neko ko radi u vb.net-u, ali i mene
je zanimalo kako se to radi, pa sam malo pogledao i evo kako mislim da
treba. Naime, f-ja ima povratnu vrednost i nju deklarises van zagrada, a
ne treba joj nijedan parametar ako uvek radi sumu prve vrste. I da bi tu
vrednost koju si izracunala (sumvrsta1) vratila pozivas Return (vrednost)

Code (vbnet):

Module Module1
      Public mat(2, 2) As double

      Public Function funsum() As Double
         Dim i, j As Double

          For j = 0 To 2
                  sumavrsta1 += mat(0, j)
          Next
         
     Return(sumavrsta1)
      End Function
  End Module
 


A ako bi htela da f-ja radi sumu za vrstu koju joj ti kazesh, onda ce
imati parametar redni broj vrste

Code (vbnet):

Module Module1
      Public mat(2, 2) As double

      Public Function funsum(ByVal rbVrste as Integer) As Double
         Dim i, j As Double

          For j = 0 To 2
                  sumavrsta1 += mat(rbVrste, j)
          Next
         
     Return(sumavrsta1)
      End Function
  End Module
 



Code (vbnet):


  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
  System.EventArgs) Handles Button4.Click
          TextBox1.Text = funsum().ToString()
     'ili TextBox1.Text = funsum(1).ToString() // recimo
 


Nadam se da ce ti ovo pomoci.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Matrica u vb200803.05.2010. u 13:09 - pre 170 meseci
Vidi ovo:
Code (vbnet):


Module Module1
      Public mat(2, 2) As double

      Public Sub subsumIspravno(ByRef sumavrsta1 As Double)
          Dim i, j As Double
              For j = 0 To 2
                      sumavrsta1 += mat(, j)
              Next
      End Sub


      Public Sub subsumNeispravno(ByVal sumavrsta1 As Double)
          Dim i, j As Double
              For j = 0 To 2
                      sumavrsta1 += mat(, j)
              Next
      End Sub
  End Module


Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
  System.EventArgs) Handles Button4.Click
     Dim c As Double
     c = 0
     subsumNeispravno(c)
     'posle ovoga c je i dalje 0, jer u ovoj proceduri napravljena je kopija  
vrednosti koja je upisana u sumavrsta1
     subsumIspravno(c)
     'poslata je adresa promenjive c i parametar sumavrsta1 ustvari  
predstavlja promenljivu c,
     ' tj. ako menjash sumavrsta1 ustvari menjash c, i na tu adresu je  
upisivan zbir svih elemenata
          TextBox1.Text = c.ToString()
     
 


Kljucna stvar je da prosledish c ne po vrednosti, nego po adresi
(referenci - ByRef), jer ako prosledjujesh parametar po vrednosti(ByVal)
stvara se kopija vrednosti koju poshaljesh, na primeru koji si dala
sumavrsta1, i onda na nju dodajesh sve elemente prve vrste, ali ti ustvari
dodajesh na kopiju koja se napravila u f-ji, a ne na onaj original. Znaci
ako hocesh da posaljesh promenljivu kao parametar i da mozesh direktno da
joj menjash vrednost, morash da taj parametar bude prosledjen ByRef.
Znaci, moglo je i tako da se uradi, ali mislim da je bolje ona prva
verzija, sa f-jom a ne procedurom. Onaj tvoj nacin je bio negde izmedju,
jer si sumu upisivala u sumavrsta1 koja je parametar unutar f-je, a opet,
pri pozivu si je koristila kao f-ju a ne proceduru, tako da sam mislio da
bi ti koristilo i ovo.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-1.sezampro.yu.



Profil

icon Re: Matrica u vb200803.05.2010. u 13:09 - pre 170 meseci
edit, probam pa javljam.
 
Odgovor na temu

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-1.sezampro.yu.



Profil

icon Re: Matrica u vb200803.05.2010. u 13:23 - pre 170 meseci
Sta god da probam dobijem 0 kao rezultat.
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Matrica u vb200803.05.2010. u 13:23 - pre 170 meseci
Meni se sve chini da ti je prazna matrica. :) Po ovom zadnjem kodu koji si
okachila, mat je deklarisana iznad f-je, i ne vidim gde se popunjava.
Proveri da li upishesh u nju one vrednosti, i da li je to ista ona matrica
koju mi koristimo u f-ji funsum .
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Matrica u vb200803.05.2010. u 13:36 - pre 170 meseci
Ako mozesh okachi ceo projekat ili makar ceo kod te forme, to je
verovatno form1.vb ili kako se vec zove forma.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Matrica u vb200803.05.2010. u 20:00 - pre 170 meseci
Sad sam obrisala onaj modul gde je bila funkcija za sumu elemenata vrste,ima jos jedan modul i u njemu je neka druga funkcija koja radi,
evo i projekat:
http://rapidshare.com/files/383138648/pp2.rar.html
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
*.com
Via: [es] mailing liste



+20 Profil

icon Re: Matrica u vb200803.05.2010. u 21:06 - pre 170 meseci
Ta druga f-ja radi zato shto ne koristi matricu. Naime, matrica na koju se
pozivash u f-ji za sumu el. prve vrste, nije ista matrica koju si kreirala
na formi. Jedna je unutar klase form1, a druga unutar modula. F-ja iz
modula ne moze da pristupa matrici u klasi forme. Nema dometa. Matrica
definisana unutar klase vazi samo za tu klasu. Tako da jedina ispravka
koju treba da uradish jeste da kada pozivash funkciju za rachunanje sume
prve vrste, joj poshaljesh matricu kao parametar, da bi imala matricu za
koju rachuna prvu vrstu. :)

znachi, ovako neshto:
Code (vbnet):

     Public Function funsum(ByVal mat(2,2) As Double) As Double
          'ovde onaj kod koji si koristila u f-ji
     End Function
 


I na kraju, kad pozivash f-ju, na neko dugme, pozvacesh je:
Code (vbnet):

     textBox1.Text = funsum(mat).ToString() 'ili ono tvoje Str(funsum(mat)) :P
 


Sad nemam vishe vremena, pa ti bez provere ovo ostavljam da probash,
trebalo bi da radi. I ona f-ja shto si napisala, radila bi da nije bila u
odvojenom modulu. Slabo stojim sa VB-om pa nisam odmah znao(niti
razmishljao) da taj modul nije u istom fajlu. Mislim da je ovo bio jedini
problem. F-ja je rachunala prvu vrstu prazne matrice. Javi kako je proshlo.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
 
Odgovor na temu

ana4539
Beograd

Član broj: 258231
Poruke: 14
*.adsl-a-1.sezampro.yu.



Profil

icon Re: Matrica u vb200803.05.2010. u 23:12 - pre 170 meseci
Ok javljam ,sad sam nesto umorna pa mi ne ide, probacu sutra :)
 
Odgovor na temu

[es] :: .NET :: Matrica u vb2008

[ Pregleda: 2242 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.