Tecnologia, programação e muito Visual FoxPro.

quinta-feira, 24 de fevereiro de 2011

Re: ]] XL-mania [[ Menyisipkan satu data pada sorted list

 

Hai Herr SoeCakil...
( milih jeneng wayang kok ya sing "kalahan" to Her... Her )

kalau seandainya di excel tidak ada sheet yg berisi cells (yg mudah disisipi cells baru)
terpaksa kita "memindah" data/elemen yg lebih besar d/p X, (Kriteria =input data baru
yg mau disisipkan) satu-persatu ke bawah, lalu cell kosongnya diisi dgn Inputan data baru

jadi bentuk standar algoritmanya, "dulu ketika belum ada excel"; mungkin seperti di
bawah nanti..

jika dilihat dari pemilihan Jenis struktur LOOPING, sedikitnya ada dua expressi misalnya
menggunakan Loop For - Next dan satunya lagi loop While - Wend
Yang di variablekan sebagai L itu bisa juga berupa ARRAY di memory; bukan di sheet-cells.
Untuk mendeteksi jumlah elemen tentunya bukan dengan property .Count melainkan
dengan fungsi Ubound(L)
Elemen di larik L bisa bertype bilangan bisa type string

'----versi1------
Sub SisipUrut(L As Range, X As Variant)
   Dim i As Long
   For i = L.Count To 1 Step -1
      If L(i) > X Then
         L(i + 1) = L(i)
      Else
         L(i + 1) = X
         Exit For
      End If
   Next
End Sub

'----versi2------
Sub SisipUrut2(L As Range, X As Variant)
   Dim i As Long, Found As Boolean
   i = L.Count
   While i >= 1 And Not Found
      If L(i) > X Then
         L(i + 1) = L(i)
      Else
         L(i + 1) = X
         Found = True
      End If
      i = i - 1
   Wend
End Sub


Dengan kemudahan yg ada di excel (seperti misal solusi dari Mas Herry di milis sebelah)
hal spt diatas seperti mengada-ada, menyulit-sulitkan hal yg sebetulnya mudah..

Walopun begitu, barangkali masih ada gunanya dikitts.. yaitu memahami algoritmanya,
jika seandainya tiba tiba anda berada di bahasa pemrograman lain yg tidak menyediakan sheet
seperti VBA & Excelnya;  bgmana memanfaatkan kalang (Loop) dengan seefektif mungkin
( ah ini 'kan hanya katakataku sendiri, buat 'ngelesss...)

kedua contoh prosedur itu sama dan seirama, hanya berlainan slank-nya
* kunjungi setiap elemen mulai dari elemen terakhir menuju elemen pertama
* setiap elemen yg sedang dikunjungi  L(i) dibandiingkan dengan X
* jika elemen tsb LEBIH KECIL daripada X maka dia nilainya diberikan kepada elemen
  di bawahnya :  L(i + 1) = L(i)
* suatu saat jika hasil pembandingan: elemen LEBIH-BESAR/SAMA DENGAN X
*  maka elemen tsb diisi dengan X:   L(i) = X
*  trusss, seketika itu juga (tanpa harus pamit & cipika-cipiki), loop berhendi / dihentikan,
   Found = True  atau dlm versi For-Next  : Exit For
   artinya kunjungan ke elemen berikutnya (bila masih ada) dibatalkan tanpa perasaan..

'emang enak dibatalkan..?! harus ambil air wudhu lagi tuh...




2011/2/18 HerrSoe <herrsoe@gmail.com>
misal ada list: berisi data
1,3,5,6,8,9 tertulis di sekolom cells di sheet excel
saya ingin menyispkan  data baru : 7
hasil yg diinginkan tentunya sekolo data berisi 1,3,5,6,7,8,9

bagaimanakah caranya ?
mohon bantuan
terima kasih

HerrSoe
alias Heru Sucakil


__._,_.___
Recent Activity:
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| sorry... moderasi super lemot... momods lagi sakit parah...       |
| buku terbaru XL mania: insipartif dan unik, gabungan antara buku  |
| aplikasi bisnis dan buku komputer. isinya tidak biasa!            |
| http://www.xl-mania.com/2011/02/mengapa-boss-benci-chart-anda.html|
| 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              |
+-------------------------------------------------------------------+
.

__,_._,___

Nenhum comentário:

Arquivo do blog