Let's learn C
מערכים
מערך הוא מבנה נתונים שביכולתו לאסוף הרבה מאוד נתונים מאותו הסוג באותו
המקום.
נראה דוגמה למתי נוח לנו לעבוד עם מערך:
עלינו ליצור תוכנה שבה יש כיתה שלמה של סטודנטים שמהם אנחנו קולטים ציון ומחזירים ממוצע כיתתי.
כדי לעשות זאת עלינו ליצור כ-30 תלמידים, לעשות קליטה של כ-30 ציונים ולאחר מכן לחשב את הממוצע ולהחזיר אותו:
נראה דוגמה למתי נוח לנו לעבוד עם מערך:
עלינו ליצור תוכנה שבה יש כיתה שלמה של סטודנטים שמהם אנחנו קולטים ציון ומחזירים ממוצע כיתתי.
כדי לעשות זאת עלינו ליצור כ-30 תלמידים, לעשות קליטה של כ-30 ציונים ולאחר מכן לחשב את הממוצע ולהחזיר אותו:
כרגע קיצרנו קצת את הדוגמה אבל כמובן שכדי לעשות זאת עלינו באמת לרשום 30
משתנים, לבצע 30 קליטות ולאחר מכן לחשב את הממוצע ולהחזירו, מדובר בהרבה מאוד
קוד שממש חוזר על עצמו.
ניתן לעשות זאת ביותר קלות ע"י שימוש במערך בצורה הבאה:
ניתן לעשות זאת ביותר קלות ע"י שימוש במערך בצורה הבאה:
בדוגמה שפה השגנו בדיוק את אותה התוצאה, עם הרבה פחות קוד והרבה יותר סדר.
דברים שחשוב לציין בנוגע למערכים בשפת c:
-
מערך בגודל 5 (שלא אמרנו מה גודלו במהלך ההצהרה אלא רק הכנסנו את האיברים
שלו).
int arr[] = {1,2,3,4,5}; -
מערך בגודל 3 שבו הכנסנו ערכים לשני האיברים הראשונים, באיבר השלישי הערך יהיה שווה ל-0.
double arr[3] = {1,2}; -
מערך בגודל 20 שכל אבריו מאופסים.
double zeroArr[20] = {0};
איך ניגשים לאיבר במערך?
לאחר יצירת המערך אנו נעבוד בעזרת מספר / משתנה שישמש אותנו כאינדקס המצביע
על האזור במערך שעליו אנחנו רוצים לעבוד.
הספירה שלנו במערכים (ובתכנות באופן כללי) מתחיל מ-0 , כך שהאיבר במקום
הראשון במערך שלנו יקרא האיבר במקום ה0.
דוגמה לכך:
אם נרצה לשנות לאיבר האחרון במערך בין חמשת האיברים הבא את הערך נעשה זאת
בצורה הבאה:
ניתן גם לגשת בצורה הבאה:
בקוד 3 ניגשנו לאיבר החמישי בתוך המערך בעזרת הסוגריים המרובעים ושינינו
את הערך שלו.
בקוד 4 לקחנו את המערך (שמצביע תמיד על האיבר הראשון) והלכנו ארבעה צעדים קדימה לסופו ושם שינינו את הערך (כלומר 1 + 4 = 5 , ניגשנו לאיבר החמישי במערך).
בקוד 4 לקחנו את המערך (שמצביע תמיד על האיבר הראשון) והלכנו ארבעה צעדים קדימה לסופו ושם שינינו את הערך (כלומר 1 + 4 = 5 , ניגשנו לאיבר החמישי במערך).
יתרונות במערך סטטי:
-
עשוי לחסוך לנו הרבה מאוד זמן ביצירת משתנים (למשל כמו בדוגמה הראשונה,
30 משתנים בעלי אותו התפקיד – נכנסים טוב בתוך מערך יחיד בגודל 30). - הופך את הקוד לקריא יותר (משתנה אחד , קצר מ30 משתנים).
- הגישה אליו מאוד נוחה, רק צריך לגשת באמצעות אינדקס מספרי.
חסרונות במערך סטטי:
- מגדירים פעם אחת את הגודל, לא ניתן לשנות אותו לאחר מכן (כלומר אם היו לנו 30 תלמידים בכיתה ולפתע הכיתה גדלה ל31 אין לנו אופציה להשתמש במערך הקיים).