[ anakin14 @ 27.01.2008. 10:02 ] @
kako da napravim kod:

Code:
  

for i = 1 to n
...
for j = i + 1 to n
...
for k = j +1 to n 
...
next k
next j
next i


samo u kome ce postojati promenjliva x koja oznacava koliko puta treba da bude petlja u petlji.
znac ako je x=2
onda:

Code:

for i = 1 to n
...
for j = i + 1 to n
...
next j
next i

ako je x=4
onda:
Code:

for i = 1 to n
...
for j = i + 1 to n
...
for k = j +1 to n 
...
for l = k+1 to n
...
next l
next k
next j
next i


kako ovo da uradim? znaci imam vrednost x koja odredjuje koliko ce petlji u petlji da bude...
Puno hvala!

[ timmy @ 27.01.2008. 10:39 ] @
Tako kako si ti zamislio nikako, ali moze pomocu rekurzije.

Ono sto mozes da uradis jeste da za svaku novu For next
stavis unutar IF komadni kojima bi proveravao da li treba
da se izvrsava. Npr.

Code:

If x>=1 then
  for i1=1 to 20
    if x>=2 then
      for i2=i1+1 to 20
        if x>=3 then
          for i3=i2+1 to 20
.....
          next i3
        end if
      next i2
    end if
  next i1
end if


Ovo se verovatno naslanja na poruke o kombinacijama iz druge teme, zar ne?

Pozdrav
[ anakin14 @ 27.01.2008. 10:47 ] @
da, posto umm da napravim samo izracunavanje kombinacija za poznato k od n, pokusavam da onom liku napravim za svako k ok n al mi ne ide.
[ timmy @ 27.01.2008. 13:06 ] @
Pa pogledaj moje resenje u toj temi...

Pozdrav
[ anakin14 @ 27.01.2008. 13:09 ] @
ali treba da se svaka kombinacija prikaze - koji su parovi te kombinacjie i koja je kvota te kombinacije a ne samo maksimalna kvota... pogledaj ti moj primer.
[ timmy @ 27.01.2008. 18:02 ] @
Ma to je gruba sila, pa jos presporo...

Pogledaj dva reda obelezena komentarima u funkciji

Code:

Public Function Dobitak() As Single
Dim M As Integer
Dim N As Integer
Dim I As Integer
Dim J As Integer
Dim solutions As Collection
Dim txt As String
Dim Total As Single
Dim subtotal As Single
    Application.Volatile
    Total = 0
    Set solutions = New Collection
    M = [sheet1!e2]
    N = [sheet1!e1]
    MchoseN N, 1, M, solutions
    For I = 1 To solutions.Count
        txt = txt & solutions(I) & vbCrLf
        subtotal = 1
        For J = 1 To N
            subtotal = subtotal * [Sheet1!B1].Offset(Mid(solutions(I), (J - 1) * 2 + 1, 2), 0).Range("A1").Value
        Next J
        ' Debug.Print solutions(I) & " = " & subtotal
        Total = Total + subtotal
    Next I
    ' Debug.Print "Total = " & Total
    Dobitak = Total / [sheet1!e3]
End Function


Zar mislis da sam slucajno ostavio komentare u kodu?
Ipak nisi dovoljno proucio primer

Skini komentare i pogledaj sta se ispisuje u Immediate prozoru,
pa to iskoristi da popunis tabelu spiskom kombinacija kao i dobijenim
proizvodima (subtotal) ili max dobitak (total).

Pozdrav

P.S. Sve primere koji drugi clanovi postavljaju pregledam,
a uzimam ucesce samo ako smatram da to sto je neko od
prethodnika napisao nije doreceno ili pak nije funkcionalno resenje
[ anakin14 @ 27.01.2008. 19:57 ] @
stvarno moj primer je sporiji a deluje jednostavnije...