מי יכול ורוצה לקבל

itamartl

New member
מי יכול ורוצה לקבל

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

vinney

Well-known member
מה עם אגודת הסטודנטים?

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

itamartl

New member
הקובץ

תרגיל מס' 5 – מצביעים והקצאות דינמיות הוראות הגשה • מועד אחרון להגשה: כמופיע בלוח המטלות באתר הקורס (HighLearn). • יש לשלוח את כל קבצי המקור (.c ו-.h, אם יש) באמצעות פקודת submitex לפני חלוף התאריך האחרון להגשה. שם ההגשה: ptr5 • כל הודעות השגיאה (המוגדרות והלא מוגדרות) בתכנית הם error. • בתרגיל זה אינכם צריכים לבדוק את טיפוס הקלט, כלומר אם הנכם מצפים למספר אנו מתחייבים להכניס רק מספר. התכנית מחסנית היא מבנה נתונים מסוג רשימה, בה נתונים מוכנסים ומוצאים מאותו צד. צורת ניהול זו מכונה LIFO – Last In First Out – שכן הנתון שנכנס אחרון הוא הראשון שייצא. הפעולות אשר נתמכות ע"י מחסנית הן: א. new – יצירת מחסנית ריקה. ב. push – הכנסת איבר למחסנית. ג. top – החזרת ערך האיבר שבראש המחסנית. ד. pop – הוצאת איבר מהמחסנית (האיבר שבראש המחסנית--- האיבר האחרון שנכנס). ה. isEmpty – בדיקה אם המחסנית ריקה. תרגיל 1 – מימוש מחסנית המחסנית תמומש ע"י מערך מסוג int בגודל קבוע 3. יש לממש את הפעולות הנתמכות ע"י המחסנית: א. push(x) – הכנס איבר x למחסנית. ב. top – החזר את האיבר שבראש המחסנית (מבלי להוציאו מהמחסנית). ג. pop – הוצאת איבר מהמחסנית (האיבר שבראש המחסנית--- האיבר האחרון שנכנס). ד. isEmpty – מחזיר true אם המחסנית ריקה ו- false אם המחסנית מלאה. חובה עליכם לבצע פעולות אילו ללא השימוש באופרטור [] (כגון: array[3]) אלא באריתמטיקה של מצביעים (כגון: *(array+3) או arrayPointer++) פרט לפקודה בה אתם מגדירים את המחסנית בפעם הראשונה לפני התפריט. יש ליצור תפריט למשתמש אשר יענה לדרישות הבאות: 1. Push element to stack 2. Print the head of the stack 3. Deleting element from stack 4. Print is stack empty 5. Exit פקודה 1 מקבל קלט של מספר (איבר להוסיף למחסנית). במקרה ונבחרה פקודה 2 או 3 כשהמחסנית ריקה תהיה ההודעה error וכן כאשר נבחרה הפעולה 1 כאשר המחסנית מלאה. אם נבחרה אופציה מחוץ לטווח, תהיה הודעת error והתוכנית תמשיך להתבצע עד אשר תבחר האופציה 5 (יציאה). אין להדפיס את התפריט או הוראה כלשהי למשתמש. דוגמה: >> 2 //מיהו ראש המחסנית error //לא קיימים איברים >> 1 3 //הוספת האיבר 3 למחסנית << 1 -6 // הוספת האיבר 6- למחסנית >> 1 8 //הוספת איבר 8 למחסנית >> 1 10 //ניסיון להוספת האיבר 10 למחסנית error //האיבר האחרון (10) לא ייתוסף--המחסנית מלאה >> 2 //מהו האיבר שבראש המחסנית 8 >> 2 //מהו האיבר שבראש המחסנית 8 >> 3 //מחיקת איבר מראש המחסנית (ז"א האיבר 8 נמחק) >> 2 //מהו האיבר שבראש המחסנית 6 >> 4 // מהו מצב המחסנית false >> 3 >> 4 // מהו מצב המחסנית false >> 3 >> 4 true >> 5 //exit תרגיל 2 התוכנית הבאה תרחיב את התוכנית הקודמת. עליכם לממש מחסנית דינמית מסוג int. המתכנת יקבע את גודל המחסנית ל-2 בזמן יצירתה, ומכאן ולהבא יש לדאוג שתפוסתה לא תהיה יותר מ-90% ופחות מ 50% (פרט למקרה ההתחלתי בו המחסנית ריקה ותפוסתה 0%). לצורך כך, אם היא הגיעה לגבולות אלו (קטן מ-50% או גדול מ-90%), יש להקצות או לשחרר מקום כך שתהיה בתפוסה של (קרוב ביותר ל-) 70%. בנוסף: ניתן ליצור מספר בלתי-מוגבל של מחסניות (בכל פעם שהמשתמש יבחר באפשרות מספר 1 תיווצר מחסנית חדשה. האפשרויות 1–4 מתרגיל 1 לעיל הופכות לאפשרויות 2–5 (ראה תפריט מעודכן להלן). נוסיף אפשרות (אפשרות מספר 6) בה ניתן למחוק מחסנית מהזיכרון ע"י ציון מספר המחסנית אשר ברצוננו למחוק. אם המשתמש בחר למחוק את מחסנית מספר 3 והייתה קיימת מחסנית מספר 4 אז מחסנית מספר 4 תהפוך להיות כעת מספר 3, 5 תהפוך 4 וכן הלאה. נוסיף אפשרות (אפשרות מספר 7) המחזירה את מספר המחסניות הקיימות. נוסיף אפשרות (אפשרות מספר 8) המחזירה את תפוסתה של המחסנית באחוזים (מספר שלם אשר יעוגל תמיד כלפי מעלה ז"א אם תפוסתה 55.34 אחוזים יעוגל ל-56). עבור אפשרויות2,3,4,5,6,8 נצטרך לציין על איזו מחסנית ברצוננו לבצע את הפעולה (מספר המחסנית יהיה הקלט הראשון; המספור של המחסניות מתחיל ב-1). אפשרות 9 הינה יציאה מהתוכנית. הפורמט המדויק יפורט בדוגמה שלהלן. לפניכם התפריט לתכנית זו: 1. Create new stack. 2. Push element to stack 3. Print the head of the stack 4. Deleting element from stack 5. Print is stack empty 6. Delete stack 7. Number of existing stacks 8. Stack capacity 9. Exit אם הוקש מספר שהוא מחוץ לטווח 1–9, תהיה הודעת error ותהיה אפשרות נוספת לבחירה עד ליציאה. בבחירה של Exit ישוחרר כל המקום שהוקצה. הדוגמה שלפניכם מפרטת את הפורמט הרצוי לפעולות המוגדרות. במקרה שהמשתמש מבקש פעולה אשר לא תיתכן (כגון פעולה 8 על מחסנית שלא קיימת), יש להדפיס error. התוכנית תמשיך להתבצע גם לאחר ה-error ותחכה לקלט חדש מהמשתמש (ז"א בחירה מחדש של אופציה מהתפריט). אין להדפיס את התפריט. כל השגיאות אשר הוגדרו בתרגיל הקודם תקפות גם כאן. הדוגמה >> 1 //יצירת מחסנית (הגודל יהיה 2) >> 1 //יצירת מחסנית נוספת (כעת, מחסנית מספר 2) >> 2 2 3 // הכנסת האיבר 3 למחסנית מספר 2 << 2 3 5 // הכנסת האיבר 5 למחסנית מספר 3 (מחסנית שלא קיימת) error //המערכת מדפיסה >> 1 //יצירת מחסנית (נוצרה מחסנית מספר 3) >>6 2 //מחיקת מחסנית מספר 2 –כך גם נמחקים כל האיברים שהיו בה (לאחר הפעולה מחסנית מספר 3 הופכת להיות מספר 2 וכן אילו הייתה מחסנית מספר 4 הייתה הופכת להיות מספר 3 וכו') >> 2 3 4 // ניסיון להכניס את האיבר 4 למחסנית 3 (אולם מחסנית 3 כבר לא קיימת) error >> 2 2 7 //הכנסת המספר 7 למחסנית מספר 2 >> 2 2 3 // הכנסת האיבר 3 למחסנית מספר 2. כאן התוכנית תצטרך להקצות מקום כך שתפוסתה תהיה קרובה ל 70% לכן תצטרך להקצות עוד איבר אחד ותפוסתה תהיה 66.66% >> 2 2 1 // הכנסת האיבר 1 למחסנית מספר 2. כאן התוכנית תצטרך להקצות מקום כך שתפוסתה תהיה קרובה ל 70% לכן תצטרך להקצות עוד איבר אחד ותפוסתה תהיה 75% >> 2 2 7 // הכנסת האיבר 7 למחסנית מספר 2. כאן התוכנית תצטרך להקצות מקום כך שתפוסתה תהיה קרובה ל 70%.כאן תצטרך להקצות עוד שני אברים ותפוסתה:66.66% >> 8 2 //מהי תכולת המחסנית 67% >> 3 2 //ללא הוצאתו)) מיהו האיבר בראש מחסנית 2 7 >> 4 2 //מחיקת איבר שבראש מחסנית 2 (כאן לא צריך לעדכן את גודל המחסנית עפ"י האחוזים---מאחר ובמחסנית זו יש לאחר המחיקה 3 איברים, שמהווים בדיוק 50% >>5 2 //2 מהו מצב המחסנית false >>5 1 //מהו מצב מחסנית 1 true >>3 1 //מהו האיבר בראש מחסנית 1 error //המחסנית ריקה >>3 2 //מהו האיבר בראש מחסנית 2 1 >>7 //מחזיר מספר מחסניות קיימות 2 >>8 1 // מהי תכולת מחסנית 1 0% //רק כאשר המחסנית ריקה נקבל שהתכולה היא 0, אחרת התכולה תהיה בין 50%-90% >>8 2 // מהי תכולת מחסנית 2 50% >>8 3 //מהי תכולת מחסנית 3 error //המחסנית ריקה >>9 אין להדפיס את התפריט. בהצלחה! 
 

DNile

New member
איזה חבל שאח שלי בדיוק איתך בקורס

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

שאח שלך בן 14
 

the new L

New member
הנה תרגיל 1

החלטתי להיות נחמד, אני אצרף את הקבצים. שים לב ששמתי את 3 קבצי המקור בקובץ txt אחד, אבל שמתי הפרדה ביניהם, פשוט תפריד ל3 קבצים. אני רק אזהיר שלא נגעתי ב C טהור כבר כמה שנים (בניגוד לC++) אז אני מקווה שלא עשיתי שם שום דבר שהוא לא C-יי...
 
למעלה