
05-03-10, 02:31
|
 | Super Moderator Όνομα: Γιάννης Έκδοση λογισμικού Office: Ms-Office 2007 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 12-10-2009 Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
| |
Με την ευκαιρία να δώσω και εγώ δυο χρήσιμες ίσως συναρτήσεις.
Η πρώτη ( RandomRank) μας επιστρέφει έναν πίνακα ακεραίων σε τυχαία κατάταξη
ενώ η δεύτερη ( ScrambledArray) μας επιστρέφει "ανακατεμένο" τον πίνακα που της περνάμε δια αναφοράς ως παράμετρο.
Με τα ορίσματα της RandomRank καθορίζουμε το εύρος των τιμών που θέλουμε να μας επιστρέψει. Κώδικας: Function RandomRank(ByVal lngMax As Long, _
Optional ByVal lngMin As Long = 1) As Long()
'Δημιουργία πίνακα με τυχαία κατάταξη
Dim alngArray() As Long
Dim lngPos As Long
Dim lngTemp As Long
Dim i As Long
ReDim alngArray(lngMin To lngMax)
For i = lngMin To lngMax
alngArray(i) = i
Next i
For i = lngMax To (lngMin + 1) Step -1
lngPos = Int((i - lngMin + 1) * Rnd + lngMin)
lngTemp = alngArray(lngPos)
alngArray(lngPos) = alngArray(i)
alngArray(i) = lngTemp
Next i
RandomRank = alngArray()
End Function
Function ScrambledArray(varArray As Variant) As Boolean
'Τυχαίο ανακάτεμα του πίνακα varArray
Dim i As Long
Dim lngUB As Long
Dim lngLB As Long
Dim lngPos As Long
Dim varTemp As Variant
If IsArray(varArray) Then
lngUB = UBound(varArray)
lngLB = LBound(varArray)
For i = lngUB To lngLB + 1 Step -1
lngPos = Int((i - lngLB + 1) * Rnd + lngLB)
varTemp = varArray(lngPos)
varArray(lngPos) = varArray(i)
varArray(i) = varTemp
Next i
ScrambledArray = lngUB > lngLB
End If
End Function
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! 
----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |