Visual Basic/יסודות השימוש בשפה/הגרלת מספר אקראי: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
←‏הזחה: איך לבצע הזחה, הגדרת הגודל שלה
מ מארק-אפ של קוד מקור
שורה 7:
 
כעת, בכל שורה שלאחר הפקודה Randomize, אנו יכולים להשתמש בפונקציה <tt>Rnd</tt> כדי להגריל מספר. פקודה זו מגרילה שבר עשרוני, בין 0 ל-0.999. נבנה תוכנה פשוטה שתדגים את השימוש בפקודת ההגרלה. נפתח טופס חדש ונמקם בו כפתור-פקודה ותיבת-טקסט. אנו רוצים שבכל פעם שנלחץ על הכפתור התיבה תציג שבר אקראי, לכן נכתוב בחלון הקוד את השורות הבאות:
<source lang="vb">
<div style="Direction:Ltr">
Private Sub Command1_Click()
Randomize
Text1.Text = Rnd
End Sub
</source>
</div>הפקודה <tt>Rnd</tt> תיתן לנו מספר בטווח 0-0.999. כעת נניח, במקום זאת, שאנו רוצים תוכנה שתגריל עבורנו מספר שלם בטווח 0-99. לצורך כך, נכפיל את תוצאת ההגרלה ב-100, ונעגל אותה כלפי מטה. כך, אם ההגרלה תוציא 0, התוצאה הסופית תשאר 0; אם נקבל 0.999, ההכפלה תיתן לנו 99.9, והתוצאה הסופית תהיה 99; אם נקבל, למשל, 0.482, התוצאה הסופית תהיה 48, וכו'. כדי לעגל מספר כלפי מטה, נשתמש בפקודה <tt>Int</tt>. שורת הקוד הרלוונטית תראה כעת כך:
<div style="Direction:Ltr">
<source lang="vb">
Text1.Text = Int(Rnd * 100)
</div>
</source>
על פי העקרון שהשתמשנו בו כאן, ניתן לאמר באופן כללי שכאשר אנחנו רוצים להגריל מספר בטווח 0 עד N, עלינו לכתוב את הפקודה הבאה:
<source lang="vb">
<div style="Direction:Ltr">
Int(Rnd * N+1)
</divsource>
אפשרות נוספת, במקום להשתמש בפקודה <tt>Int</tt> היא להצהיר על משתנה מסוג '''שלם''' (Integer) ולשים בתוכו את הערך המוגרל. כאשר אנו שמים שבר בתוך משתנה שאמור להכיל מספר שלם, השבר מעוגל אוטומטית כלפי מטה. הקוד יראה כעת כך:
<source lang="vb">
<div style="Direction:Ltr;">
Private Sub Command1_Click()
Dim X As Integer
Randomize
X = Rnd * 100
Text1.Text = X
End Sub
</divsource>
כעת, הבה נדון במספר נקודות חשובות המופיעות בקטע הקוד הזה.