תכנות בשפת C: מבנים ופונקציות
10 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

המערך עצמו מוגדר במבנה כ- ______

arr

הפונקציה שתפקידה לשחרר את הזיכרון שהוקצה עבור הוקטור נקראת ______

freeVec

בתוך מבנה Node, המשתנה הבא מייצג את המידע של האיבר: ______

data

הפונקציה המוסיפה מספר למערך היא בשם ______

<p>addNumber</p> Signup and view all the answers

במבנה Vec, המשתנה המצביע על מספר האיברים בפועל הוא ______

<p>len</p> Signup and view all the answers

מערך של מצביעים לפונקציות חייב להיות באותו ______.

<p>טיפוס</p> Signup and view all the answers

בפונקציה main, המערך נקרא ______.

<p>fun_ptr_arr</p> Signup and view all the answers

כשהמשתמש נכנס במספר גדול מ-2, התכנית מחזירה ______.

<p>0</p> Signup and view all the answers

ישנן פונקציות שונות כמו add, subtract, ו- ______.

<p>multiply</p> Signup and view all the answers

מטרת השימוש במצביעים לפונקציות היא לכתוב קוד ______ יותר.

<p>כללי</p> Signup and view all the answers

Study Notes

מבנה Vec

  • המבנה Vec מייצג ווקטור דינאמי.
  • הוא מכיל שלושה שדות:
    • arr: מצביע למערך של איברים.
    • capacity: גודל המערך שהוקצה בזיכרון (בדרך כלל גדול או שווה למספר האיברים בפועל).
    • len: מספר האיברים בפועל המאוחסנים במערך (כמה מקומות מתוך capacity בשימוש).

פונקציה addNumber

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

פונקציה freeVec

  • הפונקציה מקבלת מצביע ל-Vec.
  • היא משחררת את הזיכרון שהוקצה למערך של ה-Vec.

מבנה Node

  • מבנה Node מייצג צומת ברשימה מקושרת.
  • הוא מכיל שני שדות:
    • data: הערך המאוחסן בצומת.
    • next: מצביע לצומת הבא ברשימה.

פונקציה למחיקת איברים אי זוגיים

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

מצביעים לפונקציות

  • ניתן להגדיר מערך של מצביעים לפונקציות.
  • כל הפונקציות במערך חייבות להיות מאותו טיפוס.
  • ניתן ליישם את המערך במבנה: void (*fun_ptr_arr[])(double, char) = { f1, f2, f3 }.

שימוש במצביעים לפונקציות

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

דוגמה – הדפסת מערך

  • ניתן להגדיר פורמטים שונים של הדפסה: printSpace(int num), printNewLine(int num), printHyphen(int num).
  • ניתן לכתוב פונקציה המדפיסה מערך לפי פורמט: void printArray(int* array, int size, void (*PrintFormat)(int)).
  • ניתן לזמן את הדפסת המערך באופן שנבחר, באמצעות printArray(myArray, SIZE, printSpace).

תרגיל - מיון מערך

  • ניתן לכתוב פונקציה הממיינת מערך של סטודנטים בדרכים שונות: על פי שם הסטודנט, על פי ממוצע הציונים, על פי מספר סידורי.
  • ניתן להגדיר מצביע לפונקציה שתדע להשוות תכונה ספציפית.
  • הפונקציה bubbleSort(student* arr, int n, int (*compFunc)(student, student)) ממיינת מערך של סטודנטים באמצעות פונקציית השוואה ספציפית.
  • ניתן להשתמש בפונקציות עזר כמו compareByName(student a, student b), compareById(student a, student b), compareByGrade(student a, student b) למיון לפי תכונה ספציפית.
  • ניתן לכתוב תכנית הממיינת את המערך בדרכים שונות,לדוגמה, bubbleSort(arr, SIZE, compareByName) ממיינת את המערך על פי שם.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

מועד ג 2024.docx

Description

החידון כולל שאלות על מבנים בפייתון כמו Vec ו-Node וכיצד לפעול עם פונקציות המוסיפות או מוחקות איברים. בנוסף, נבחן את ניהול הזיכרון הקשור לפונקציות שונות. החידון מיועד לסטודנטים בתכנות בשפת C.

More Like This

Use Quizgecko on...
Browser
Browser