נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: שאלה משעורי בית

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 22 February 2010 בשעה 16:56 | IP רשוּם
ציטוט rubingr

היי
אני צריך עזרהלגבי שאלה:

איך אני פונה לפונקצית VOID G מפונקציה אחרת מבלי לקרוא לה.
המורה נתן לנו טיפ דרך מחסנית את זה אני יודע מאסמבלר אבל אני משתמש עם ויזואל סטודיו איך אני שם רואה את המחסנית ושם אני רואה את הכתובת של פונקציה G.
הדרך היחידה שאני יודע זה דרך מצביעים אבל אני לא בטוח שזה מה שהמורה רוצה.
void (*ptr_g)()=&g;
(*ptr_g)();
זה הדרך לעשות זאת עם מצביעים, השאלה שלי איל אני יכול לעשות לפנות לפנוקציה דרך המחסנית.

תודה
ראובן

חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 22 February 2010 בשעה 19:01 | IP רשוּם
ציטוט shoshan

אתה יודע איך עובדת קריאה לפונקציה מבחינת המחסנית ?

דחיפת ה"פרמטרים" לפונקציה
ואז דחיפת המקום בקוד לחזור אליו בסיום הפונקציה.

אם אתה מגדיר משתנה לוקאלי לפונקציה הוא נשמר במחסנית

אם תיקח את הכתובת שלו (derefrence)

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

שושן.

ממליץ לך קצת להיעזר הגוגל (אתה חייב לפרט באיזה קומפיילר אתה משתמש!)


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 23 February 2010 בשעה 11:31 | IP רשוּם
ציטוט rubingr

היי

תודה, איך מחסנית עובדת אני יודע ,אבל אני לא יודע איך לראות את המחסנית בויזואל סטודיו.

ובאיזה כתובת המחסנית מתחילה.


חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 23 February 2010 בשעה 15:29 | IP רשוּם
ציטוט shoshan

זה מה שאמרתי לך, תגדיר משתנה לוקאלי והכתובת שלו זאת הכתובת של המחסנית...

אם אתה רוצה להסתכל על המחסנית תסתכל על הכתובת של מהחסנית בחלון memory

תפתח את ה-EXE ב-OLLYDBG אם אתה רוצה לראות ASSEMBLY לדוגמא שקורא לפונ'


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 03 March 2010 בשעה 11:44 | IP רשוּם
ציטוט rubingr

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

יש לי עוד שאלה באותו נושא:
אם אני צריך לעשות אותו דבר לקרוא לפונקציה אבל הפעם מMAIN איך עושים זאת??
ניסיתי לעשות את זה באותו סגנון אבל אני לא מצליח.

תודה

חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 03 March 2010 בשעה 18:14 | IP רשוּם
ציטוט shoshan

מה זאת אומרת לא מצליח ?

אתה יכול לפרט ?


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 04 March 2010 בשעה 13:21 | IP רשוּם
ציטוט rubingr

היי
ניסיתי אותו עיקרון להגדיר משתנה ולראות את המחסנית.
זו התוכנית שאני אמור להוסיף פקודות כך שאני צריך לפנות לפונקציה g מתוך הMAIN מבלי לםנות אליה:

קוד:
void g()
{
    printf ("In g()!\n");
    system ("pause");
    exit (0);
}

int f(char *source)
{
    char dest [4];
    strcpy(dest, source);
    return 0;
}

int main()
{
    char source[50];
   
//    כאן אני צריך להוסיף את הפקודות.

    f(source);
    system ("pause");
    return 0;
}

עכשיו דרך אחת חשבתי שזה איך שהוא קשור למערך אבל אני לא יודע איך.

תודה
ראובן

חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 05 March 2010 בשעה 18:15 | IP רשוּם
ציטוט shoshan

האמתי שאני לא רואה את ההבדל בין שני המקרים שאתה מתאר...

את הראשון פתרת ?

אני מניח שלא עקפת את SecurityCookie, ולכן אני מניח שביטלת אותו בהגדרות של
הפרוייקט...נכון ?

ואני מניח שלכתוב את הקוד שקובץ לפונקציה g הצלחת, כי אפילו אני עם הידע המאוד
[מאוד מאוד] קטן שלי באסמבלי הצלחתי...

אז מה הבעיה הפעם לכתוב במחסנית על הכתובת שצריך לחזור אליה (מ-main) ?

שושן.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 06 March 2010 בשעה 20:25 | IP רשוּם
ציטוט rubingr

היי

תודה על העזרה זה עובד בשני התרגילים.

בשני זה אותו עיקרון אבל בכתובת שונה (מן הסתם).

קיבלתי השבוע עוד שאלה הפעם זה ברקורסיה
יש לי מערך של 4 איברים  (שמספרם ידוע) ומספר יעד ואני צריך להפעיל 4 פעולות חשבון ברקורסיה כך שאני אגיע למספר היעד שלי הפונקציה מחזירה0 אם היא נכשלת או 1 אם היא מצליחה.
תודה

חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 08 March 2010 בשעה 01:03 | IP רשוּם
ציטוט shoshan

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

כי זה לא ברור מהשאלה כפי ששלחת אותה...

אוקיי, בוא נתחיל בתרגיל ביניים, אתה יודע לכתוב פונקציה שמקבלת מערך של מספרים ומדפיסה כל סידור בן 5 מספרים שכולל את חלקם או את כולם?

אתה יודע לכתוב פונקציה שמקבלת מערך של מספרים ומדפיסה כל סידור בן 5 מספרים שכולל כל אחד מהם פעם אחת ?

עצה: צריך להגדיר עוד מערכ/ים ולהעביר גם אותם כפרמטר, יכול להיות שצריך גם
להעביר פרמטרים של האורך שלהם (אם אתה לא משתמש ב-vector/list/...)


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 08 March 2010 בשעה 15:44 | IP רשוּם
ציטוט rubingr

היי

צריך להשתמש כל פעם במספר אחד בלבד לא משנה הסדר שלהם ובאיזה פעולות חשבון שרוצים. המערך נתון (1,5,6,7) מספר יעד 21.


חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 08 March 2010 בשעה 19:33 | IP רשוּם
ציטוט shoshan

אוקיי אז החתימה של הפונ' צריכה להיות משהו כזה לדעתי:

קוד:
bool canReach(int* nums, bool* numsUsed, int resSoFar, int resWanted)


אתה צריך לעבור על המערך numsUsed
  • אם כולו מלא ב-TRUE אז מחזיר האם resSoFar שווה ל-resWanted.
  • עבור כל תא שהוא FALSE - מסמן אותו כ-TRUE, קורא לפונקציה ב-4
    רקורסיות, כאשר מעדכן את resSoFar ל(תוצאה של המספר עד כה
    ___הפעולה הנוכחית___ המספר במערך שעוד לא השתמשנו בו) - אם אחת
    הקריאות הרקורסיביות מחזירה אמת אתה מחזיר אמת, אם אף אחת מהן לא
    החזירה אמת אתה מחזיר שקר.

אני מקווה שאתה רואה מה המקרה הבסיסי פה - ומה הצעד הרקורסיבי לפישוט הפתרון.

אם לא תשאל.

אם הבנת הכל אני מאתגר אותך לעשות אופטימיזציה כמה שאתה יכול לפתרון כדי
שיעבוד יותר מהר (תשלח לפני ואחרי).

שושן.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 08 March 2010 בשעה 21:19 | IP רשוּם
ציטוט rubingr

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



חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 09 March 2010 בשעה 00:35 | IP רשוּם
ציטוט shoshan

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

שושן.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
rubingr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 01 February 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 18
נשלח בתאריך: 14 March 2010 בשעה 14:39 | IP רשוּם
ציטוט rubingr

היי

תודה על העזרה זה לקח לי כמה ימים אבל בסופ זה עובד.

חזרה לתחילת העמוד הצג את כרטיס החבר של rubingr חפש הודעות אחרות של rubingr
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 14 March 2010 בשעה 17:21 | IP רשוּם
ציטוט shoshan

יפה מאוד!

לדעתי זאת הדרך הכי טובה ללמוד...


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה