צריך עזרה... דחוף...

gabrielr

New member
צריך עזרה... דחוף...

המורה הטילה עלינו להגיש לה עבודה, ולכתוב אלגוריתם. בעייה קטנה, היא לימדה את זה בדיוק 10 דקות, ועשתה תרגיל שממש לא קשור, ואני לא מבין איך עושים, והאמת אין אף אחד שיעזור לי... אני יודע שלא צריך לשאול פה שאלות של ש"ב, אבל שוב, אין לי ממש עזרה ממקומות אחרים השאלה : כתוב אלגוריתם המקבל מחסנית S ומחזיר ´אמת´ אם האיברים במחסנית ממויינים בסדר שאינו יורד או ´שקר´ אחרת. בסיום האלגוריתם על המחסנית להיות כפי שהייתה במצבה ההתחלתי אני מאוד אודה למי שיפתור את זה, ויסביר לי מה הוא עשה (זה לא השאלה היחידה, אבל אני מנסה להבין את הרעיון המרכזי)
 

nahsh

New member
הנה רעיון:

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

gabrielr

New member
כן... אבל

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

weismana

New member
מהי מחסנית ...

מחסנית היא "אוביקט" שיש לו שתי פעולות בסיסיות PUSH)X( הכנסת איבר X לראש המחסנית . ו POP שמוציאה את האיבר שבראש המחסנית (FILO - ראשון נכנס אחרון יוצא ) . אני מניח שבתיאור אלגוריתם - רוצים ממך פסאודו קוד של האלגוריתם - ז"א תיאור של שלבי האלגוריתם כאילו כתבת תוכנית מחשב , תיאור הרעיון המרכזי שכבר פורט בהודעות הקודמות , בלי צורך להיות מחובר לשפת תכנות מסוימת . בהצלחה
 

darkstar

New member
סליחה על השאלה אבל

מה זה מחסנית ולמה זה טוב? יש מערך לא? ואיך אני מגדיר את זה בפסקל?
 

nahsh

New member
בוא ננסה:

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