12 מבנים (struct)

בפרק זה אציג את נושא ה: stuct. המוטיבציה לשימוש ב: struct היא שעת יש לנו כמה משתנים המתארים תכונות שונות של גורם כלשהו בעולם (למשל: כמה משתנים המכילים נתונים שונים אודות סטודנט), אנ ורוצים לארוז אותם יחד לכדי 'חבילה' אחת, כדי להדגיש את העובדה שמדובר בקבוצה של משתנים קשורים (שבד"כ גם יועברו יחד לפונ')

12.1 מוטיבציה והכרות ראשונית

12.1.pdf

תרגול עצמי בסיס בנושא struct

כתבו תכנית המגדירה:

struct Point {

double _x, _y ;

} ;

באמצעות struct Point נוכל לשמור מידע על נקודות במישור.

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

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

12.2 העברת struct כפרמטר לפונקציה

12.2.pdf

תרגול עצמי בסיסי בנושא העברת struct כפרמטר לפונ'

חזרו על התכנית הקודמת, אולם עתה העבירו את שתי הנקודות לפונ' אשר תחזיר ערך בולאני: האם שתי הנקודות מצויות באותו רביע או לא.

התכנית הראשית תשלח פלט כן\לא.

12.3 מערך של struct

12.3.pdf

תרגול עצמי בסיסי בנושא מערך של struct

כתבו תכנית המגדירה:

struct Point {

double _x, _y ;

} ;

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

התכנית הראשית תזמן פונ' read_points לקריאת ערכים למערך. הפונ' read_points, בלולאה, תזמן פונ' לקריאת נקודה בודדת: read_a_point

עתה תזמן התכנית הראשית פונ' שניה אשר תמנה כמה נ' במערך מצויות בכל רביע (הפונ' תחזיר את המידע באמצעות מערך בו בתא #1 יופיע כמה נקודות מצויות ברביע הראשון,..., בתא #4 יופיע כמה נקודות מצויות ברביע הרביעי. התא #0 במערך יישאר לא בשימוש).

התכנית הראשית תציג את המידע (כמה נקודות מצויות בכל רביע).

12.4 מצביע ל- struct כפרמטר ערך

12.4.pdf

תרגול עצמי בסיסי בנושא מצביע ל: struct

חיזרו על התכנית הקודמת (הסופרת כמה נקודות במערך מצויות בכל רביע). עתה, כתבו את הפונ' read_a_point כך שחתימתה תהיה:

void read_a_point(struct Point *p) ;

12.5 מערך דינאמי של מבנים (struct)

12.5.pdf

תרגול עצמי בסיסי בנושא מערך דינאמי של מבנים

כתבו תכנית המגדירה:

struct Point {

double _x, _y ;

} ;

struct Points {

struct Point *_the_points ;

unsigned int _num_of_points ;

} ;

באמצעות משתנה מטיפוס struct Points נוכל לשמור מערך של נקודות, שגודלו ייקבע בעת ריצת התכנית.

הגדירו בתכנית משתנה מטיפוס sturct Points וזמנו פונ' אשר:

א. קוראת מהמשתמש מה גודל המערך שיש להקצות.

ב. מקצה מערך בגודל המתאים.

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

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

התכנית הראשית (במצעות פונ' עזר קטנה נוספת) תציג את המידע.

לבסוף, התכנית תשחרר את המערך, ותסיים

12.6 תרגילים

12.6.pdf