עבור לתוכן

שאלה בסיסית על זכירת ערך ב VB.

Featured Replies

פורסם

אוקיי,אז יש לי שאלה מאוד מאוד בסיסית שאני מתפלא על על עצמי איך אני לא רואה את התשובה בעצמי.

אני כותב תכנית פשוטה בVB שכשנניח אני לוחץ על כפתור COMMAND מתרחש תהליך שבסופו ערך M שווה למספר מסויים.

עכשיו אני רוצה שערך L יהיה שווה לסכום כל ערכי M שהיו עד עכשיו מאז שאני מריץ את התוכנית.

הבעיה שאני לא יודע איך להוציא ערך מחוץ ל"פעולה",כלומר מחוץ לקוד שנכתב עבור אירוע הלחיצה של כפתור ה COMMAND.

פורסם

בGENERAL אתה יוצר משתנה מסוג INTEGER, בINITIALIZE אתה מאתחל אותו ב-0 וכל פעם בCOMMAND_CLICK אתה מגדיל אותו.

פורסם
  • מחבר

תודה,זה בדיוק מה שעשיתי ובשורה האחרונה של הקוד לCOMMAND רשמתי "L=L+M",וזה באמת מציג את הסכום,שהבעיה שמשום מה כל פעם בלחיצה ה 6 בערך יש איזו שגיאה של "OVERFLOW".מה זה אומר?

ועוד שאלה שזה אתה צצה,איך אני עושה מספרים רנדומליים?

חשבתי שהפקודה a = Int(100 * Rnd + 1( תיתן ל a ערך רנדומלי בין 1 ל100,אבל עכשיו שמתי לב שכל הרצה מחדש(לחיצה על END ו RUN) נותנת את אותם המספרים.

פורסם

OVERFLOW אומר שהערך שאתה מנסה להציב לתוך המשתנה גדול מהיכולת המקסימלית שלו... אני לא יודע באיזה קפיצות מדובר פה, אבל אולי צריך משתנה מסוג אחר (LONG INT וכו, לא סגור על איך זה הולך ב VB).

הסיבה שזה יוצר אותם משתנים זה כי אתה צריך לפני הפקודה RND, לאתחל את ה RANDOM SEED לפני כן, אמור להיות פקודה שעושה את זה (חפש בקישור של ה HELP ב VB לגבי RND) ולפקודה הזו אתה יכול להכניס למשל את השעה הנוכחית, דבר שיתן SEED שונה בכל הרצה.

פורסם

אם איני טועה בVB אתה לא צריך להכניס את השעה.. זה מכניס אוטו..

פורסם
  • מחבר

ב GENERAL הגדרתי את L כINTEGER,והקפיצות הם בערך ביו 4000 ל 5000,הטעות קוראת(איך לרשום נכון?) בערך ב30000.

בקשר לRND,אתה יכול לתת לי דוגמא איך רושמים?פשוט הMSDN שלי לא עובד.

תודה!!!

פורסם

תנסה randomize לפני השורה עם ה RND

פורסם
  • מחבר

תנסה randomize לפני השורה עם ה RND

היי תודה,נדמה לי שזה עזר. :)

אבל איך אני מתגבר עכשיו על הבעיה של הOVERFLOW?

לא ייתכן שמשתנה מסוג INTEGER,לא יכול להכיל ערך של שלושים אלף.

אגב מה באמת הקיבולת המקסימלית של משתנה כזה?

עריכה-טוב הגדרתי את המשתנה כCURRENCY ובנתיים אין לי טעוית,אבל עדיין...מה הבעיה עם INTEGER?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים