Randomize (timer)
alibek писал(а):Составляешь список из ста чисел (от 1 до 100), выбираешь из них четыре случайных элемента, используешь.
Private Sub Form_Load()
Dim a As Integer
qq:
a = Int(Rnd * 100)
If List1.ListCount <> 4 Then
For i = 1 To List1.ListCount
If a = List1.List(i - 1) Then
GoTo qq
Exit For
End If
Next i
List1.AddItem (a)
GoTo qq
Else
Exit Sub
End If
End Sub
Aster писал(а):можно воспользоваться этим кодом:
Private Sub Form_Load()
Dim I As Long, N As Long
Const NumCount As Long = 4
List1.Visible = False
List1.Clear
For I = 1 To 100
List1.AddItem Trim$(Str$(I))
Next I
N = List1.ListCount - NumCount
Randomize
For I = 1 To N
List1.RemoveItem Fix(Rnd * List1.ListCount)
Next I
List1.Visible = True
End Sub
Dim a(1 To 4) As Integer
For i = 1 To 4
letting:
a(i) = Int(Rnd * 100)
For h = 1 To i - 1
If a(i) = a(h) Then GoTo letting
Next h
Next i
Александр Дмитриев писал(а):Самый быстрый и действенный способ - после каждого присваивания проверять совпадения:
ism писал(а):Млин, когда же этот GoTo вымрет окончательно, в 100% случаев можно обойтись без него
Option Explicit
Private Const MaxVal = 4096
Private Const NumCnt = 256
Dim tabIn(MaxVal - 1) As Long, tiSize As Long
Dim tabOut(NumCnt - 1) As Long
Private Sub Form_Load()
Dim n As Long, i As Long
For n = 1 To MaxVal
tabIn(n - 1) = n
Next n
tiSize = MaxVal
For n = 0 To NumCnt - 1
i = tiSize * Rnd
tabOut(n) = tabIn(i)
tabIn(i) = tabIn(tiSize - 1)
tiSize = tiSize - 1
Next n
End Sub
tyomitch писал(а):И чем же он тебе, интересно, так мешает?
Private Sub Form_Load()
Dim a1 As Integer
Dim a2 As Integer
Dim a3 As Integer
Dim a4 As Integer
Randomize
a1 = Int(Rnd * 100)
a2 = Int(Rnd * 100)
a3 = Int(Rnd * 100)
a4 = Int(Rnd * 100)
Do While a2 = a1
a2 = Int(Rnd * 100)
Loop
Do While a3 = a2 Or a3 = a1
a3 = Int(Rnd * 100)
Loop
Do While a4 = a3 Or a4 = a2 Or a4 = a1
a4 = Int(Rnd * 100)
Loop
End Sub
ism писал(а):tyomitch писал(а):И чем же он тебе, интересно, так мешает?
Использование GoTo у опытных программистов считается дурным тоном, его давно хотят забыть. ...
http://en.wikipedia.org/wiki/Control_flow писал(а):In brief, undisciplined use of goto leads to spaghetti code which tends to be unmaintainable... However, Donald Knuth has shown in Structured Programming with goto Statements that disciplined use of goto may be necessary to emulate missing control-flow structures.
Крост писал(а):alibek
Вообще читал..
hCORe писал(а):Ну да... А среднее количество операций будет порядка Ln((i-1)^2)
hCORe писал(а):Конечно. Визуальные контролы тормозят
Поэтому надо использовать массивы. Или, в крайнем случае, коллекции.
вроде так ?тот никогда не будет хорошим программистом ...
он имел в виду, что старый васик в основном использует переходы goto, так не имел процедур и функций (т.е. почти что вместо процедур и функций)
т.е. ты смог таки стать крутым программистом, используя переходы Goto вместо процедур и функций.теперь мы имеем: он учитель в школе (т.е. лох ушастый), я работаю программистом и сотрудничаю с иностанными колегами (т.е. стал таки хорошим программистом)
Сейчас этот форум просматривают: SemrushBot и гости: 51