עזרה דחופה!

ofir1948

New member
עזרה דחופה!

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

ofir1948

New member
רגע...

את\ה שולט\ת בזה היטב?!? טוב אז אני יתן לך\ה את השאלה אולי תצליח\י לעזור לי... זה לא הכי קשה אם אתם מתמצים בזה...
 

tamarhp

New member
למה שלא תכתוב את השאלה

ומי שיודע לענות יענה? (ובהתחשב בכך שרובנו למדנו שפת C בשנה א' או לפני, אז כן - רוב הגולשים כאן מתמצאים בה)
 

ofir1948

New member
אין בעיה..!

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

asm32

New member
פשוט מאוד

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

ofir1948

New member
אחי...

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

asm32

New member
...

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

shirbi

New member
זה קצת יותר מורכב

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

ofir1948

New member
לא לא, לא לא

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

freak2100

New member
...

לא צריך לחזור על כל דבר פעמיים לא צריך לחזור על כל דבר פעמיים אתה חייב עוד מחסנית, איך אתה יכול להחליט בוודאות שאתה לא צריך עוד מחסנית אם אתה לא יודע איך לפתור את זה? בשביל לבדוק אם איבר מסויים קיים במחסנית אתה עושה דבר כזה: * found = false * כל עוד מחסנית1 (המחסנית שבה אנחנו מחפשים את האיבר) לא ריקה וגם לא found: * הוצא איבר ממחסנית 1 -> X * דחוף את X למחסנית_עזר * אם X == האיבר שאנחנו מחפשים: * found = true * כל עוד מחסנית_עזר לא ריקה: * הוצא איבר ממחסנית_עזר -> X * דחוף את X למחסנית1 * החזר את found זה פחות או יותר, בפסדו-קוד, על אף שאני לא מכיר את הכתיבה הרישמית של פסדו-קוד (אם יש כזאת)
 

ofir1948

New member
תודה אחי!

זה לא כיתבה הכי נכונה אבל תודה בכל זאת זה מובן לי בהחלט!
 
למעלה