פורסם 2006 בפברואר 1719 שנים 1. איך מגדירים זכרון דינמי למערך דו מימדי <לדוגמא: [ma[n][m > ???????2. איך פותרים את השאלה ההבאה:. בחברת "לא להשמנה כן להרזיה " יש דיאטה חדישה. מותר לאכול כל מה שרוצים כל עוד שבמשך היום אוכלים 11 יחידות של ויטמין A, 31 יחידות של ויטמין B ו-20 יחידות של ויטמין C.ניתן לקנות מהחברה חבילות ויטמינים כמפורט להלן:חבילה 1 - המכילה יחידת אחת של ויטמין A, 4 יח' של B ו-2 יח' של .Cחבילה 2- המכילה 2 יח' של A, 5 של B ו-3 של C.חבילה 3 -המכילה 3 יח' של A ו-3 של B ואפס יח' של C.העלות של חבילה 1 היא 10 ¤ ושל החבילות האחרות 5 ¤.כתוב תוכנית אשר תדפיס את כל האפשרויות של שלושת החבילות אשר יתנו בדיוק את דרישות הויטמינים ליום אחד. על התוכנית גם להדפיס לאיזה אפשרות יש את העלות הנמוכה ביותר. אני לא יודעת מאיפה להתחיל???? ??? ??? :'(
פורסם 2006 בפברואר 1719 שנים 1) int **arr;או int arr[][];2) תיצור מחלקת חבילות.בתוך החבילה תשים רשימה מקושרת או מבנה נתונים כלשהו ששומר את הויטמינים בתוך החבילה. תשמור גם את המחיר של כל חבילה.תיצור COLLECTION כזה, שבו יהייה המידע על הויטמינים והערך שלהם.תבנה אלגוריתם שמחשב אילו חבילות אתה יכול להכניס כדי לעמוד בדרישות של 11, 31, 20(תשלח אותם בתור פרמטרים שאם ישנו את הדרישות אז לא תצטרך לשנות את כל התוכנית).עריכה: במקרה הזה יש לך 2^3 אפשרויות, מכיוון שיש לך 3 חבילות. אם יהיו לך N חבילות, אז אתה תצטרך ליצור 2^n אפשרויות, ולראות אם כל אחת מהן מתאימה.
פורסם 2006 בפברואר 1719 שנים מחבר אפשר הסבר יותר פשוט ויותר מופרט.....<אני צריכה להגיש את התרגיל הזה ולא מצליחה>אוף!!!!!!! :'(
פורסם 2006 בפברואר 1719 שנים קודם כל, 1:ככה רק מגדירים מערך דו מימדי, אבל לא מקצים לו זכרון.למעשה אי אפשר להקצות זכרון למערך דו מימדי.על מנת להקצות זכרון למערך בגודל m*n צריך למעשה להקצות n מערכים בגודל m, כך:int **arr = new *int[m]; // declare m pointers for m arraysfor (int i = 0 ; i < m ; ++i) { arr[i] = new int[n]; // allocate a n-long array for each pointer}או לחילופין להקצות מערך אחד בגודל m*n ולחלק אותו ל-m מערכים שונים.int **arr = new *int[m]; // declare m pointers for m arraysarr[0] = new int[n*m]; // allocate all the memory needed for m n-long arraysfor (int i = 0 ; i < m ; ++i) { arr[i] = arr[0] + n*i; // make sure each pointer points to the next n ints}הדרך השנייה עדיפה למרות שהיא קצת יותר מסובכת, כי ככה מקצים זכרון רק פעם אחת, וכל המערך יושב בצורה רצופה בזכרון.שימי לב שבשני המקרים צריך מראש להקצות מערך של m מצביעים.לגבי 2:לא ממש ברור לי למה להשתמש ברשימה מקושרת או כל מבנה נתונים אחר....כל מה שצריך הוא struct שמייצג חבילה, שמכיל ארבעה ממברים - כמה כדורים יש מסוג A, כמה מסוג B, כמה מסוג C, ומה המחיר.עכשיו צריך לכתוב פונקציה שמקבלת רשימה/מערך בגודל 3 (אפשר גם שיהיה דינמי, אם רוצים לשנות את מספר החבילות) שמייצג את סוגי החבילות האפשריות, ואת הדרישות למספר הכדורים הסופי.הפתרון החכם הוא פשוט לבנות מערכת משוואות לינאריות ולפתור אותן (הנעלמים - כמה חבילות יש מכל סוג, הקבועים - כמה כדורים מכל סוג יש בכל חבילה).וזהו...
פורסם 2006 בפברואר 1719 שנים לא ממש ברור לי למה להשתמש ברשימה מקושרת או כל מבנה נתונים אחר....כי מחר יגלו את ויטמין D.
פורסם 2006 בפברואר 1819 שנים אני מבין את הרצון להיות כמה שיותר גנרי, ואני בהחלט בעדו.היית יכול גם להגדיר קלאס אבסטרקטי מסוג ויטמין ו-3 בנים שלו מסוג A, B ו-C...אבל בכל זאת מדובר ב(מה שנראה כמו) תרגיל בית ספר.אין צורך לסבך יתר על המידה.
פורסם 2006 בפברואר 1819 שנים השאלה היא למה התכוון המשורר.אם למדתם מה זה רשימות מקושרות, סביר להניח שהוא ירצה שתיישמו את זה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.