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

נושא: שאלה ב C

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 06 December 2007 בשעה 18:27 | IP רשוּם
ציטוט יפתח

הי,
אשמח לעזרה בשאלה שיש לי:
אני מקבל מהמשתמש STRING של מספרים ופעולות חשבון ביניהם, ואני צריך לחשב את התוצאה.
בינתיים נתקלתי בבעיה בטיפול בסוגריים. מה הדרך היעילה לטפל בסוגריים ולחשב את תוכנם ראשון?
תודה מראש
חזרה לתחילת העמוד הצג את כרטיס החבר של יפתח חפש הודעות אחרות של יפתח בקר בדף הבית של יפתח
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 06 December 2007 בשעה 18:47 | IP רשוּם
ציטוט צחי@

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 08 December 2007 בשעה 20:37 | IP רשוּם
ציטוט NeedHelp

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

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

חזרה לתחילת העמוד הצג את כרטיס החבר של NeedHelp חפש הודעות אחרות של NeedHelp בקר בדף הבית של NeedHelp
 
inHaze
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 09 December 2007 בשעה 04:20 | IP רשוּם
ציטוט inHaze

חפש על שיטות postfix ו-infix, יכול לעזור לך.

__________________
הבלוג שלי
חזרה לתחילת העמוד הצג את כרטיס החבר של inHaze חפש הודעות אחרות של inHaze
 
לוק
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 10 December 2007 בשעה 17:46 | IP רשוּם
ציטוט לוק

השיטה היא לדחוף למחסנית עד אשר נתקלים בסוגר ימני, 
שולפים את הביטוי המתמטי מהמחסנית עד לסוגר השמאלי הראשון, מחשבים אותו ודוחפים
חזרה למחסנית.

אלגוריתם:
1. כל עוד לא סוף הקלט.
  1.2 אם האיבר הנסרק שונה מ -"(" דחוף_קלט_למחסנית(x,stack). 
  1.3 אחרת 
    1.3.1 x = שלוף_איבר_ממחסנית(stack).
    1.3.2 OP = שלוף_איבר_ממחסנית(stack).
    1.3.3 y = שלוף_איבר_ממחסנית(stack). 
    1.3.4 z = חשב_ביטוי(x,y,OP).
    1.3.5 דחוף_למחסנית(z,stack).
2. החזר ראש_מחסנית(stack).
  
הסבר:
האלגוריתם מקבל ביטוי (מחרוזת) המייצגת משפט מתמטי תקין.
האלגוריתם סורק איבר איבר.
הפונקציה חשב_ביטוי(x,y,OP) מקבלת שלושה פרמטרים שתי מספרים וערך שלישי שהוא אופרטור.ומחזירה ערך ל-Z.

 

חזרה לתחילת העמוד הצג את כרטיס החבר של לוק חפש הודעות אחרות של לוק בקר בדף הבית של לוק
 
NeedHelp
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 11 December 2007 בשעה 17:23 | IP רשוּם
ציטוט NeedHelp

אוקי.. זה במקרה של סוגריים, אבל מה קורה במקרה של כפל וחילוק?

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

חזרה לתחילת העמוד הצג את כרטיס החבר של NeedHelp חפש הודעות אחרות של NeedHelp בקר בדף הבית של NeedHelp
 
לוק
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 13 December 2007 בשעה 02:03 | IP רשוּם
ציטוט לוק

במקרה כזה יש להפוך את הביטוי ל-prefix ולחשב אותו בעזרת מחסנית.

אתה זקוק ל-2 אלגוריתמים נפרדים אחד שמתרגם ביטוי infix ל-prefix והשני המחשב
ביטוי prefix הייתי כותב אותם פה אבל אתה תסלח לי כי השעה קצת מאוחרת.
במקום פשוט תחפש אני בטוח שתמצא מלא מימושים לזה.
( אני אישית מעדיף את אלו המשתמשים במחסנית).

לילה טוב.
חזרה לתחילת העמוד הצג את כרטיס החבר של לוק חפש הודעות אחרות של לוק בקר בדף הבית של לוק
 

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

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

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