Full Transcript

33599\_meshulav\_up **החוג להנדסת תוכנה** **10064 תכנות בשפת C ו C++** **מועד ג\' תשפ\"ד** מרצה: מר הראל וולך מתרגלת: גב׳ תמר באש משך הבחינה:3 שעות חומר עזר: **כל חומר עזר מותר בשימוש בהתאם לתנאי המכללה.** עליך לענות על כל השאלות. יש לכתוב את התשובות על טופס הבחינה במקומות המיועדים לכך [בלב...

33599\_meshulav\_up **החוג להנדסת תוכנה** **10064 תכנות בשפת C ו C++** **מועד ג\' תשפ\"ד** מרצה: מר הראל וולך מתרגלת: גב׳ תמר באש משך הבחינה:3 שעות חומר עזר: **כל חומר עזר מותר בשימוש בהתאם לתנאי המכללה.** עליך לענות על כל השאלות. יש לכתוב את התשובות על טופס הבחינה במקומות המיועדים לכך [בלבד]. תשובות שייכתבו במחברת הבדיקה לא ייבדקו. אם אין לכם מקום לרשום במקומות המיועדים, ניתן להפוך את הדף ולכתוב שם. **בהצלחה!!!** 1. typedef struct Vec{ int \*arr ; int capacity; int len; } Vec; - arr - המערך עצמו - capacity - גודל המערך הנוכחי שהוקצה בזיכרון (ערך זה יהיה גדול/שווה למספר האיברים בפועל). - len - מספר האיברים בפועל המאוחסנים במערך ברגע נתון, כלומר כמה מקומות מתוך capacity כבר בשימוש. 1. כתבו פונקציה בשם addNumber המוסיפה מספר למערך ומגדילה את גודלו במידת הצורך. חתימת הפונקציה: void addNumber(Vec \*v, int number); 2. כתבו פונקציה freeVec שמשחררת את הזיכרון שהוקצה עבור הוקטור. חתימת הפונקציה: void freeVec(Vec \*v); **[שאלה 2 (30 נקודות): ]** נתון מבנה המייצג איבר ברשימה מקושרת: typedef struct Node { int data; struct Node\* next; }Node; כתבו פונקציה המקבלת מצביע לראש הרשימה ומוחקת ממנה את האיברים האי זוגיים. לדוגמה: אם זאת הרשימה שהתקבלה: 1-\>2-\>3-\>4-\>5-\> לאחר הקריאה לפונקציה הרשימה תיראה כך: 2-\>4-\> חתימת הפונקציה: void deleteOdd(Node\*\* head); **[שאלה 3 (20 נקודות):]** מתכנת כתב תכנית, כדי לבדוק struct המייצג מערך דינמי של מספרים. כדי לבדוק שהמערך מאותחל באופן תקין, הוא כתב פונקציית הדפסה. typedef struct Vec{ double \*\_arr; int \_len; } Vec; void initVec (Vec v, double args\[\], int n) { int i; for (i=0; i\

Use Quizgecko on...
Browser
Browser