Tecnologia, programação e muito Visual FoxPro.

quarta-feira, 8 de dezembro de 2010

Re: ]] XL-mania [[ Membuat Penampakan Datar KOMBINASI

 

walaupun challenge (celeng palsu) ini tidak laku..
terlampir jawabannya (versi siti sendiri) : workbook 'Penampakan Hasil Kombinasi (V3).xls'
berisi makro yg memungkinkan kita mengubah ubah nilai argument kedua (jumlah Grup)

tanpa harus mengubah-ubah VBA codenya.


di situh... pengulangannya diimplemetasikan melalui cara rekursif, yaitu
prosedur yg didalamnya mengandung perintah memanggil DIRInya sendiri

Private Sub CombiRec(ByVal p As Integer, ByVal q As Integer, _
                     ByVal r As Integer, ByVal s As Variant)
   ' siti Vi / blueewater 27 Nov 2010
   ' meng-generated Daftar Kombinasi /ditulis di kolom TopDat
   ' secara rekursif
  
   If q > p - r + 1 Then Exit Sub
   If q <= 0 Then
      If Len(s) > 1 Then s = Left(s, Len(s) - 1)
      TopDat = s
      nKombi = nKombi + 1
      Set TopDat = TopDat(2, 1)
      Exit Sub
   End If
   CombiRec p, q - 1, r + 1, s & r & "-"  '<--kupangggil diriku sendiri
   CombiRec p, q, r + 1, s

End Sub

mudah-mudahan tidak terlalu banyak mudharat-nya



2010/11/29 STDEV(i) <setiyowati.devi@gmail.com>


misal ada sejumlah suster ngesot, katakan 13 orang,
dari 13 manusia itu akan dipilih 4 orang yg akan dikirim (sbg TKI sambil sekolah lagi)
ke negri belanda.

berapa banyak kemungkinan susunan NAMA 4 suster-ngesot itu ?
(katanya, disebut kombinasi)
maka dengan gampang dapat ditebak dengan fungsi COMBIN
=COMBIN(13,4)
hasilnya kalo ndak salah =715

tetapi bagaimana & seperti apa "rumusnya" untuk menampilkan Penampakan Daftar
Susunan Nama 
sebanyak 715 set itu ??

dengan secuil makro; cara kasar; seperti ini kita dapat menampilkannya

For A = 1 To n - 3
  For B = 2 To n - 2
    For C = 3 To n - 1
      For D = 4 To n - 0
        If A < B And B < C And C < D Then
          ActiveCell = A & "-" & B & "-" & C & "-" & D
          ActiveCell(2, 1).Select
          nKombi = nKombi + 1
        End If
      Next D
    Next C
  Next B
Next A

dapat kita lihat ada Nested Loop bertingkat 4.

 Tetapi jika kemudian ternyata argument ke2 berubah
misalnya dari 13 orang akan dipilih (bukan lagi 4 orang) tetapi 3 orang
maka makro harus diboangkar pasang, loopnya diubah menjadi nested loop
bertingkat 3, mungkin seperti ini

For A = 1 To n - 2
   For B = 2 To n - 1
      For C = 3 To n
         If A < B And B < C Then
            ActiveCell = A & "-" & B & "-" & C
            ActiveCell(2, 1).Select
            nKombi = nKombi + 1
         End If
      Next C
   Next B
Next A

padahal kita mauknya ingin argument kedua itu dapat diubah-ubah sesuka hati
dan ogah lah yauw.. kalau setiap kali harus mengubah programnya...

Jadi... Problemnya adalah :
(kalau boleh, ini disebut sbg Celeng Palsu edisi akhir tahun 2010)
Bagaimana membuat prosedur (dlm VBA Code) yg memungkinkan kita mengubah
ubah nilai argument kedua (jumlah Grup) tanpa harus mengubah-ubah VBA codenya.

Jika anda tidak suka makro, boleh juga membuat FORMULA untuk keperluan tsb.

Maaf bang Momod.. lampiran sudah di-zip ternyata masih > 200KB

Bluwwater,
27 nov 2010
siti

__._,_.___
Recent Activity:
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| momods mencari penerbit buku yang oke dan muantab.... adakah?     |
| ayo silahkan coba lowongan yang momod kirim...                    |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf          |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau...  |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html           |
+-------------------------------------------------------------------+
| Message lama ada di :                                             |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id]  |
| http://www.mail-archive.com/xl-mania@yahoogroups.com              |
+-------------------------------------------------------------------+
MARKETPLACE

Stay on top of your group activity without leaving the page you're on - Get the Yahoo! Toolbar now.


Be a homeroom hero! Help Yahoo! donate up to $350K to classrooms!


Find useful articles and helpful tips on living with Fibromyalgia. Visit the Fibromyalgia Zone today!

.

__,_._,___

Nenhum comentário:

Arquivo do blog