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

נושא: עזרה במחסנית

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 03 January 2008 בשעה 15:24 | IP רשוּם
ציטוט בן

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

1.נתונה מחסנית s,המכילה מספרים שלמיםץכתוב אלגוריתם להעברת המספרים לשתי מחסניותץכך שבאחת מהן יהיו מספרים זוגיים, ובשניה יהיו מספרים אי זוגייםץאין להרוס את המחסנית s.

2.כתוב שגרה המקבלת מחרוזת ומחזירה אמת אם המחרוזת היא מהסוג:רצףxרצף לדוגמא: AAAAXAAAA כלומר רצף כלשהו של תו מסויים לאחריו התו X ולאחריו רצף זהה באורכו לרצף הראשון של אותו תו.חובה לבצע את הבדיקה באמצעות מחסנית אחת או יותר.

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


הצטרף / הצטרפה: 18 November 2007
משתמש: מנותק/ת
הודעות: 110
נשלח בתאריך: 04 January 2008 בשעה 02:34 | IP רשוּם
ציטוט idan

אין לי כח לכתוב אלגוריתם, אבל אפשר להסביר בכלליות את הדרך כי אלה שאלות קלות.

1. יוצר 3 מחסניות. אחת zugi, אחת eZugi ואחת sTmp. אתה עובר בלולאה על כל המחסנית s, ובכל פעם שולף את המספר ובודק אם הוא זוגי/אי זוגי ובהתאם לזה שולח למחסנית המתאימה, ודוחף את הערך למחסנית sTmp. כשהלולאה מסתיימת אתה מתחיל לולאה חדשה ששולפת את כל הערכים מsTmp ודוחפת אותם למחסנית S.

2. שים לב שהפתרון שאני מציע פה מקבל גם מחרוזת כמו xxx, שלפי הניסוח גם זה אמור להתקבל.
תחילה כמה איתחולים:
מספר התווים במחרוזת לתוך n.
n div 2 לתוך nd.
התו הראשון במחרוזת לתוך tav.

עובר על תווי המחרוזת עד לnd ודוחף כל תו למחסנית S.
עובר על תווי המחרוזת מ nd+1 עד לn ובודק כל תו-אם הוא שווה לtav ולראש המחסנית אז שולפים את ראש המחסנית.

אם המחרוזת במקום nd שווה ל x והמחסנית ריקה אז החזר true, אחרת החזר false.

*לדעתי מי שכתב את השאלה רצה שבשימוש במחסנית תכניס את כל התווים עד ל-x כולל, תוציא את x ואז את כל התווים ואז תבדוק אם המחסנית ריקה. אבל אם תשתמש בלולאת while של כל עוד התו שונה מ-x אז השגרה תחזיר שגיאה למחרוזת xxx, ואם תשתמש באורך המחרוזת כדי לבדוק את האמצע אז זה יוצא מסורבל יחסית, לפחות בדרך שאני חשבתי עליה זה יצא מסורבל.

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

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

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

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