Please, HELP!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
RASH_Zet
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 26.07.2006 (Ср) 17:45

Please, HELP!

Сообщение RASH_Zet » 26.07.2006 (Ср) 18:03

Говорю сразу: Я в ВБ - новичек. Я попытался накалякать прогу, чисто для проверки своих способностей. Способности тест не прошли. В общем, я пытался сделать прогу, которая при нажатии на кнопку СЛУЧАЙНО выдавала бы одну из четырех фраз. Я попытался заделать это с помощью Randomize...Но у меня не вышло. Помогите осуществить такую прогу!
Вот кусок кода:
Код: Выделить всё
Option Explicit
Dim Random As Long
Dim Number1 As Long
Dim Number2 As Long

Private Sub Command1_Click()
If Text1 = Label3 Then Number1 = Number1 + 1
Number2 = Number2 + 1
Random = Int((10000 * Rnd) + 1)
Text1.Text = ""
If Number2 = 1 Then Command1.Caption = "DO!"
If Number2 = 1 Then
If Random <= 2500 Then Label3.Caption = "1"
If Random <= 5000 Then Label3.Caption = "2"
If Random <= 7500 Then Label3.Caption = "3"
If Random <= 10000 Then Label3.Caption = "4"

Жду летящих камней! :cry:

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 26.07.2006 (Ср) 18:09

Код: Выделить всё
const sCaptions as string ="1234567890"
private sub command1_click()
label1.caption=mid(sCaptions,round(rnd*10)+1,1)
end sub

RASH_Zet
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 26.07.2006 (Ср) 17:45

Сообщение RASH_Zet » 26.07.2006 (Ср) 18:19

RayShade
Спасибо огромное! :)
И сразу же спрошу: А как быть, если не цифры, а СЛОВА? Типа вместо 1 - ВАСЯ, вместо 2 - ПЕТЯ и т.п.?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.07.2006 (Ср) 18:21

Label1.Caption=Array("Вася","Петя","Миша","Сеня","Коля")(rnd*5)
Изображение

RASH_Zet
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 26.07.2006 (Ср) 17:45

Сообщение RASH_Zet » 26.07.2006 (Ср) 18:22

tyomitch
Данке! :D

RASH_Zet
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 26.07.2006 (Ср) 17:45

Сообщение RASH_Zet » 26.07.2006 (Ср) 18:41

Блин, я, похоже, поспешил..... :(

Код: Выделить всё
Option Explicit
Dim Number1 As Long
Dim Number2 As Long

Private Sub command1_click()
If Text1 = Label3 Then Number1 = Number1 + 1
Number2 = Number2 + 1
Text1.Text = ""
If Number2 = 1 Then
[color=red]Label3.Caption = Array("Вася", "Петя", "Миша", "Сеня", "Коля")(Rnd * 5)[/color]
End If

Я правильно все поставил, или я все-таки ПОЛНЫЙ ламер?
Резалт тот же, что и в моем случае - пишет ПОСЛЕДНЕЕ, а не случайно выбранное! Например, сейчас пишет КОЛЯ!
ПС: Извините, что я своими ЛАМЕРСКИМИ вопросами вас гружу!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.07.2006 (Ср) 18:46

Что ли поставь Randomize в Form_Load
Изображение

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 26.07.2006 (Ср) 22:50

tyomitch, RASH_Zet
Код: Выделить всё
Private Sub Form_Load()
Randomize
End Sub

Private Sub Command1_Click()
MsgBox Array("Вася", "Петя", "Миша", "Сеня", "Коля")(Int(Rnd * 5))
End Sub

Int, потому что по умолчанию Rnd * 5 будет округляться до ближайшего целого, и вероятность первого варианта будет меньше других - 10% вместо 20%. К тому же в 10% случаев будет Subscript out of range.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 37

    TopList