Dobrej pokec   Lišanská šlapka   MSDN   VB na Microsoft.cz   NCHAT Nový design
   Portál  O firmě  Profil  Reference  Produkty  Odkazy  Diskuse  Tisková verze 



  Novinky e-mailem
Pokud chcete být informováni o změnách ,přihlašte se k odběru novinek!
  
  
  Nejčtenější články
 Seznam všech českých hubů abecedně. (32119)
 Seznam hubů nad 100 uživatelů (20831)
 Konfigurovatelné rozbalovací menu (17448)
 Jak na makra (14330)
 Rozbalovací menu v JavaScriptu (2.) (12655)
  Nejstahovanější soubory
 Action Meter (1846)
 Slovní Fotbal (777)
 IE Boss Guard (484)
 zdroják slovní fotbal (383)
 Folder Watcher (370)
  Anketa

  Nabídka portálu

 Adobe Premiere
    Jak se dá udělat
 Alternativní prohlížeče
    FireFox
 ASP
    Tipy a triky
 Direct Connect
    Huby
    Scripty pro HUB
    Tipy a triky CZDC++
 Game Maker
    Tipy a triky
 Hry
    Akční
    Logické
 HTML
    Scripting (VBS,JS)
    Tipy a triky
 Internet
    Užitečné triky
 Microsoft Office
    Tipy, triky, návody
    Užitečná makra
    VBA Tipy a triky
 MS SQL Server
    Nastavení
    Seriály
    Tipy a triky
 Multimedia
    Návody
 Oracle
    PL/SQL
 PHP
    Jak na to
    Tipy a triky
 Užitečné odkazy
    Grafické programy
    Programátorské
 Visual Basic
    DirectX
    Formuláře
    Jak se dá udělat ...
    Užitečné funkce
    Win32Api
    Zdroje
 Visual Basic .NET
    Užitečné funkce
 Vtípky
    Vtipy a anekdnoty
 Vypalování
    DVD Shrink
    Tipy a triky
 Windows
    Jak se dá ...
    Tipy a triky pro XP
    Triky pro IE


Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.

 Funkce pro vygenerování pole náhodných čísel ve VB

Autor: administrator
Zdroj: 
Vytvořeno: 21.11.2003
Publikováno: 22.11.2003
Čtenářů: 3694
Unikátních: 3624


Potřebujete vygenerovat pole deseti celých čísel od 5 do 55 tak aby se neopakovaly, jindy se naopak mohou opakovat.Zdroj parametrizovatelné funkce, která to udělá za vás najdete přímo zde.

Funkce jejíž kód je uveden níže Vám vygeneruje pole celých kladných čísel v zadaném rozsahu a počtu.Čísla se mohou volitelně opakovat, nebo lze opakování čísel vypnout.

A takto bychom vygenerovali například balík karet:
Takže, karet máme 32 potřebujeme tedy 32 čísel v rozsahu 1 až 32 bez opakování.Funkci bychom volali takto:

  Dim PoleMoje As Variant
  PoleMoje = Generuj(1, 32, 32, False)
  
  'vypis pro kontrolu
  For i = LBound(PoleMoje) To UBound(PoleMoje)
    debug.print PoleMoje(i)
  Next i

Syntaxe funkce je takováto:
Generuj(Minimum As Long, _
        Maximum As Long, _
        Kolik As Long, _
        Volitelně Opakovat (True/false)) _
  výstup je pole (variant)

a následuje zdrojový kód funkce:
Function Generuj(ByVal lMin As Long, _
            ByVal lMax As Long, _
            ByVal lKolik As Long, _
            Optional ByVal bOpakovat As Boolean = True) _
            As Variant
            
  Dim arrPole() As Long
  ReDim arrPole(lKolik - 1)
  Dim Stav As Boolean
  Dim i, j
  Dim lngCislo As Long
  Randomize Timer
  For i = LBound(arrPole) To UBound(arrPole)
    Stav = False
    If Not bOpakovat Then
        Do While Not Stav
           Stav = True
           lngCislo = Int(((lMax) * Rnd) + lMin)
           Debug.Print lngCislo
           For j = LBound(arrPole) To UBound(arrPole)
             If arrPole(j) = lngCislo Then Stav = False
           Next
           If Stav Then
             arrPole(i) = lngCislo
             Exit Do
           End If
           DoEvents
        Loop
     Else
       lngCislo = Int(((lMax) * Rnd) + lMin)
       arrPole(i) = lngCislo
     End If
  Next
  Generuj = arrPole
End Function



Příspěvky ke článku:



© Swit.cz, Marek Kočí 2003