הקורס "מבוא למדעי המחשב בשפת C" מותאם מבחינת התוכן הנלמד לסטודנטים אשר לומדים קורסי מבוא לתכנות בשפת C ובשפת ++C.
ללומדי שפת ++C ההבדלים מבוארים ב - "קצת על הקורס".
בקורס זה ילמדו יסודות התכנות במימוש שפת C, ויכוסו הנושאים הבאים: הגדרת תוכניות, משפטי תנאי, לולאות, ניתוח זמן ריצה, מערכים ומטריצות, פונקציות, מחרוזות, מצביעים, אריתמטיקה של מצביעים, רקורסיות,היכרות עם אלוגריתמי מיון וחיפוש, מבנים והקצאות דינאמיות.
הקורס "מבוא למדעי המחשב בשפת C" מותאם מבחינת התוכן הנלמד לסטודנטים אשר לומדים קורסי מבוא לתכנות בשפת C ובשפת ++C.
השפות C ו ++C זהות פרט לפקודת הקלט (scanf בשפת C לעומת cin בשפת ++C)
ולפקודת הפלט (printf בשפת C לעומת cout בשפת ++C).
עבור הסטודנטים אשר לומדים את הקורס בשפת ++C יש בפרק הראשון של הקורס תת-פרק הנקרא "מ - C ל - ++C" המדגים את המעבר ל - ++C.
פרט לשוני מינורי זה, ישנו שינוי נוסף בנושא של הקצאות דינאמיות (פרק 14), ולכן פרק זה הוקלט במיוחד גם עבור הסטודנטים אשר לומדים את הקורס בשפת ++C.
פרק 1 - משפת C לשפת C++
▼
הגדרת תכנות מכוון עצמים
השוני הסינטקטי בין C ל- C++:
printf --> cout
scanf --> cin
gets --> cin.getline
malloc --> new
free --> delete
nullptr
טיפוס התייחסות
העמסת פונקציות
ערכי ברירת מחדל לפונקציות
פרק 2 - משפת C לשפת C++ - הפרוייקט המתגלגל
פרק 3 - מחלקות ואובייקטים
▼
מהו תכנות מונחה עצמים
מהי מחלקה
פניה אל תכונות ושיטות המחלקה
הרשאות גישה
שיטות set ו- get
ערכי default לפרמטרים של שיטות
פרק 4 - מחלקות ואובייקטים - הפרוייקט המתגלגל
פרק 5 - נושאים שונים - חלק א'
▼
enum
מחלקה המכילה מחלקה אחרת
בעיית ה- include הכפולים
תהליך הקומפילציה
const
- פרמטר const
- שיטת const
- ערך מוחזר const
constexpr
מתודות inline
פרק 6 - נושאים שונים - חלק א' - הפרוייקט המתגלגל
פרק 7 - קונסטרקטורים ודיסטרקטורים
▼
בנאי (constructor)
בנאי ב"מ (empty/default constructor)
מפרק (destructor)
בנאי העתקה (copy constructor)
R-Value ו- move constructor
מילות המפתח default ו- delete
בנאי ככלי להמרה
explicit c’tor
פרק 8 - קונסטרקטורים ודיסטרקטורים - הפרוייקט המתגלגל
פרק 9 - נושאים שונים - חלק ב'
▼
שורת אתחול (init line / init list)
מעבר ב- c’tor עבור אובייקטים מוכלים
המצביע this
מצביע שהוא const
static:
-משתנים סטטיים במחלקה
-שיטות סטטיות
friend:
פונקציית friend
-מחלקת friend
-תכונות mutable
מרחבי שמות (namespace)
ranged based for loop
auto
string literals
פרק 10 - נושאים שונים - חלק ב' - הפרוייקט המתגלגל
פרק 11 - העמסת אופרטורים
▼
מהי העמסת אופרטורים ומוטיבציה
אופרטור אונארי לעומת אופרטור בינארי
העמסת אופרטורים:
אופרטורים + ו- -
אופרטורים כפונקציות friend
אופרטור השמה
שימוש באופרטור השמה מ- copy c’tor
ההבדל בין copy c’tor לאופרטור השמה
אופרטור מינוס (- אונארי)
אופרטור =+, =-
אופרטורים ++ ו- -- (prefix, postfix)
אופרטור [ ]
אופרטורים לוגיים: ==, >, < , =>, =<
אופרטור >>, <<
אופרטור casting
אופרטור ()
אופרטור השמה המקבל &&
std:swap ו- std::move
פרק 12 - העמסת אופרטורים - הפרוייקט המתגלגל
פרק 13 - הורשה
▼
מוטיבציה להורשה
ההרשאה protected
מעבר בבנאים בהורשה
מעבר ב- d’tor בהורשה
ה- copy c’tor שניתן במתנה
אופרטור ההשמה שניתן במתנה
שליחת יורש לפונקציה המצפה לקבל בסיס
הורשה בשרשרת
הורשה מרובה
הורשה מרובה עם אב-קדמון משותף
סדר האתחול
הורשת protected ו- private
פרק 14 - הורשה - הפרוייקט המתגלגל
פרק 15 - פולימורפיזם
▼
שימוש במצביע לאב ויצירת אובייקט כבן
מוטיבציה לפולימורפיזם
קישור סטטי לעומת קישור דינאמי
הטבלה הוירטואלית
מערך שאיבריו מטיפוסים שונים בעלי בסיס משותף
d’tor וירטואלי
זיהוי טיפוס בזמן ריצה
dynamic cast
מימוש נכון של >> בפולימורפיזם
מתודות override
שיטות ומחלקות אבסטרקטיות
השיטה clone
מתודות final
פרק 16 - פולימורפיזם - הפרוייקט המתגלגל
פרק 17 - חריגות
▼
מוטיבציה לטיפול בשגיאות
המנגנון לטיפול בשגיאות
הפונקציה terminate
גילגול שגיאות
שגיאות ובנאים
יצירת אובייקטי שגיאה
זריקת שגיאות סטנדרטיות
פרק 18 - חריגות - הפרוייקט המתגלגל
פרק 19 - קבצים
▼
מוטיבציה לעבודה עם קבצים
עבודה עם קבצים ב- C++ לעומת C
קובץ טקסט לעומת קובץ בינארי
כתיבה וקריאת אובייקטים
כתיבת וקריאת מערך אובייקטים
כתיבה וקריאת אובייקט מכיל
כתיבת וקריאה בשילוב ירושה ופלימורפיזם
פרק 20 - קבצים - הפרוייקט המתגלגל
פרק 21 - templates
▼
מוטיבציה לעבודה עם templates
פונקציות template
Specialization
מחלקות template
Variadic Template
פרק 22 - templates - הפרוייקט המתגלגל
פרק 23 - STL
▼
סקירת ה- STL
סוגים של conatiner'ים
איטרטור
Object Functions
אלגוריתמים
המחלקה string
תכנות פונקציונלי / Lambda Expression
פרק 24 - STL - הפרוייקט המתגלגל
בקורס זה ילמדו יסודות התכנות במימוש שפת C, ויכוסו הנושאים הבאים: הגדרת תוכניות, משפטי תנאי, לולאות, ניתוח זמן ריצה, מערכים ומטריצות, פונקציות, מחרוזות, מצביעים, אריתמטיקה של מצביעים, רקורסיות,היכרות עם אלוגריתמי מיון וחיפוש, מבנים והקצאות דינאמיות.
הקורס "מבוא למדעי המחשב בשפת C" מותאם מבחינת התוכן הנלמד לסטודנטים אשר לומדים קורסי מבוא לתכנות בשפת C ובשפת ++C.
השפות C ו ++C זהות פרט לפקודת הקלט (scanf בשפת C לעומת cin בשפת ++C)
ולפקודת הפלט (printf בשפת C לעומת cout בשפת ++C).
עבור הסטודנטים אשר לומדים את הקורס בשפת ++C יש בפרק הראשון של הקורס תת-פרק הנקרא "מ - C ל - ++C" המדגים את המעבר ל - ++C.
פרט לשוני מינורי זה, ישנו שינוי נוסף בנושא של הקצאות דינאמיות (פרק 14), ולכן פרק זה הוקלט במיוחד גם עבור הסטודנטים אשר לומדים את הקורס בשפת ++C.