PDA

צפה בגרסה המלאה : עזרה ב - VB



sivan1233210
14-11-2008, 12:40
בס"ד

1) קלוט מספר מהמשתמש ובעזרת פונקציה קבע האם מספר המספר ראשוני או לא. אם כן הפונקציה תחזיר ערך True ,אם לא הפונקציה תחזיר ערך False .

2)כתוב תוכנית הקולטת ערך שלם ומדפיסה את סכום ספרותיו.התוכנית תכלול פונקציה שתפקידה לקבל ערך זה ולחשב את סכומם ספרותיו.

3). נתון numb שווה ל – 8 .אם נעביר את המשתנה בנוהל ByRef לפרוצדורה,והמשתנה יוכפל פי 2,
האם זה ישפיע על התוכנית הקוראת?
כתוב תוכנית על מנת להצדיק תשובתך?


תודה לעוזרים
שבת שלום :)

אריאל
14-11-2008, 12:57
1. כדי לקלוט ערך ממשתמש השתמשי בפונקציה inputbox בצורה הבאה :


x = InputBox("הכנס מספר", "הכנס מספר")

כדי לקבוע אם מספר ראשוני הפונקציה צריכה לרוץ מהסיפרה 2 עד למספר עצמו פחות אחד, ולבדוק אם המספר מתחלק באחד מהמספרים האלה, אם כן - צא מהפונקציה ושלח FALSE , אחרת שלח TRUE (אחרי שהוא עבר על כל המספרים כמובן)

כלומר אם קיבלנו מספר 17 למשל, נרוץ על הספרות מ2 עד 16 ונבדוק האם 17 מתחלק באחד מהם(כמובן בעזרת לולאה) - ואם כן נצא מהפונקציה ונשלח FALSE אחרת TRUE ..

nadav
14-11-2008, 13:14
3 , ברגע שאת מעבירה byref משתנה , את בעצם מעבירה את המצביע שלו, את המיקום שלו
בזכרון , ואז כתוצאה מזה כשאת עושה על המשתנה חישובים מין הסתם גם המשתנה מחוץ לפרוצדורה ישתנה , כי את בעצם משנה את תוכן המיקום ולא יוצרת משתנה חדש במיקום חדש (byval)

אריאל
14-11-2008, 13:16
2. בטופס :




Private Sub Form_Load()
Dim x As Integer
Dim y As Integer
x = InputBox("הכנס מספר", "הכנס מספר")
y = sumNumber(x)
MsgBox (y)

End Sub



במודל :




Public Function sumNumber(x As Integer) As Integer
Dim y As Integer
Do While x > 0
y = y + (x Mod 10)
x = Int(x / 10)
Loop
sumNumber = y

End Function

sivan1233210
14-11-2008, 13:20
בס"ד

רגע כדי לבדוק אם מספר הוא ראשוני זה לא אמור להיות מ - 2 עד המספר עצמו חלקי 2 או שאני טועה?

תודה רבה לשנייכם !!!
שבת שלום :)

אריאל
14-11-2008, 13:24
אפשר ואפילו עדיף.. ( לא שהדרך שלי לא נכונה )

sivan1233210
14-11-2008, 13:32
בס"ד

לגבי שאלה 2: מה זה אומר x = Int(x / 10)

ה - Int ?

תודה רבה על העזרה !!!!!!!!!!!!!!1

אריאל
14-11-2008, 13:34
int מביא מספר שאינו שלם למספר שלם, לדוגמא 1.67 יהפוך ל 1 , 15.2 יהפוך ל15

sivan1233210
14-11-2008, 13:34
בס"ד

הבנתי. תודה רבה!
:)

אריאל
14-11-2008, 13:37
ואגב, לרשום עזרה ב vb לא כלכך עוזר , את בפורום vb מין הסתם שזה יהיה ב vb
כותרת יותר מתאימה לפה "פונקציה ב vb " אולי.
מצידי תתני תכותרת מהדף של השיעורי בית שלך אם את מסתבכת עם זה..

sivan1233210
14-11-2008, 13:39
בס"ד

נדב, אתה יכול לתת לי בבקשה דוגמא לתכנית?

וגם בשאלה הזו:
נתון numb שווה ל – 8 .אם נעביר את המשתנה בנוהל Byval לפרוצדורה,והמשתנה יוכפל פי 2, האם זה ישפיע על התוכנית הקוראת?
כתוב תוכנית על מנת להצדיק תשובתך?

תןדה רבה על העזרה

Hurricane
14-11-2008, 14:21
בתרגיל 1, הדרך היעילה ביותר היא לעבור מ- 2 ועד שורש המספר שנקלט, במקום מ- 2 ועד המספר עצמו.

sivan1233210
14-11-2008, 14:48
בס"ד

למה עד השורש דווקא?
זה יתפוס בכל מספר?

תודה רבה על העזרה.
שבת שלום :)

Hurricane
14-11-2008, 14:58
כן. ניתן להשתמש בזה בכל מספר טבעי.
אני לא יודע למה עד השורש. אני אבדוק ואם לא אצליח להבין למה, אשאל את המורה שלי ביום ראשון.

sivan1233210
14-11-2008, 15:05
בס"ד

תודה רבה :)