لمحة عن الدورة
هذه الدورة تركز على تنمية المهارات العملية (التعلم من خلال التطبيق) لذلك سوف نقوم دائما بالتعلم من خلال ضرب عدد من الأمثلة بدلا من الاعتماد على الشروحات النظرية.
ماهي لغة ++C
تعتبر لغة ++C لغة ذات استخدامات عامة وهي امتداد للغة C الشهيرة. من مزايا هذه اللغة أنها لغة كائنية التوجة Object Oriented كما تتميز بأنها لغة ذات مستوى منخفض حيث تصنف لغات البرمجة إلى مستوى عالي ومستوى منخفض. ويقصد باللغة ذات المستوى المنخفض هو قربها للغة الآلة نفسها.
استخدامات لغة ++C
بما ان لغة ++C تعتبر من اللغات القريبة للغة الآلة وإدارة الذاكرة بها عالية جدا سوف تجدها مستخدمه في مجالات تتطلب أداء عالي جدا ومنها:
لمن موجهة هذه الدورة؟
سنبدأ في هذه الدورة بتعلم أساسيات ++C وكل ماهو مطلوب منك هو الرغبة بالتعلم.
ستكون هذه الدورة مفيدة لك سواء كانت لديك خبرة مسبقة بلغات برمجة أخرى أم كانت هذه هي المرة الأولى التي تتعلم بها، في حال كنت مبرمج محترفا يمكنك البدء من منتصف هذه الدورة حيث سنتعلم مفاهيم متقدمة في البرمجة والتي ستزيد مهاراتك البرمجية والمعرفية.
المدة | الدروس (149) |
---|---|
المقدمة -
لا يوجد وصف
|
|
07:23 |
عن هذه الدورة ولغة C++
بهذا الدرس ستتعرف على هذه الدورة وطريقة التعلم وعلى لغة C++ |
01:31 |
كيف تحصل على الدعم والمساعدة
شاهد هذا الدرس لكي تعرف كيفية الحصول على الدعم والمساعدة بالطريقة الصحيحة |
تجهيز البيئة المحلية +
لا يوجد وصف
|
|
04:31 |
تجهيز نظام ويندوز Windows
هذا الدرس سيكون حول كيفية تجهيز نظام ويندوز للبرمجة |
01:14 |
تجهيز نظام جنو\لينكس GNU/Linux
تستخدم لينكس؟ الموضوع بسيط تابع هذا الدرس |
03:05 |
تجهيز نظام ماك MacOS
هذا الدرس مخصص لتجهيز نظام MacOS للتطوير باستخدم C++ |
05:09 |
تحميل بيئة التطوير المتكاملة IDE
سنقوم بهذا الدرس بتحميل بيئة التطوير المتكاملة IDE مع تثبيت الاضافات التي سوف تساعدنا على العمل |
كتابة أول برنامج لك +
سنقوم في هذا القسم بكتابة أول برنامج لنا ثم سنقوم بتحليل ماكتبناه حتى نتعرف على لغة C++
|
|
05:02 |
كتابة أول برنامج
أهلا بالعالم! هنا سنقوم بكتابة اول برنامج لكي نتعرف على كيفية إنشاء المشاريع وتشغيلها |
07:32 |
مالذي قمنا بكتابته؟
بهذا الدرس سنقوم بتشريح الكود البرمجي الذي قمنا بكتابته لنتعرف على خصائص البنية البرمجية للغة سي++ |
04:08 |
مفهوم namespaces
جرعة إضافية
سنتعرف في هذا الدرس على مفهوم namespaces وكيف يستخدم |
03:56 |
كتابة التعليقات على الكود البرمجي
أثناء البرمجة، قد تضطر لشرح جزء ما، وهنا تأتي أهمية كتابة التعليقات البرمجية على الكود |
05:28 |
مقدمة في الدوال functions
الدالة هي "وظيفة" برمجية وسنتعرف الآن على كيفية ترتيب البرنامج الخاص بنا عن طريق استخدام functions |
02:17 |
استخدام المجال العام لـ namespaces
سنتعرف الآن على المجال العام Global Scope |
06:35 |
أساسيات المدخلات والمخرجات cin, cout
جرعة إضافية
وصلنا الآن لمرحلة أخذ المدخلات من المستخدم عبر لوحة المفاتيح وسنتعرف أيضا على std::cin و std::cout |
01:14 |
تمرين كيفية اخذ المدخلات من المستخدم
تمرين
جرعة إضافية
سأشرح لك في هذا الدرس التمرين والذي من خلاله سنحاول اخذ مدخلات من المستخدم ثم تطبيق عملية جمع عليها |
03:52 |
حل تمرين كيفية اخذ المدخلات من المستخدم
تمرين
قدرت تحله؟ تعال نشوف كيف ممكن نحل هذا التمرين مع بعض |
المتغيرات والثوابت Variables & Constants +
سنتعلم في هذا القسم كيفية استخدام المتغيرات والثوابت والتي تقوم بحفظ قيم لنا في الذاكرة
|
|
08:06 |
مقدمة في المتغيرات و العنونه addressing & variables
جرعة إضافية
بهذا الدرس سنتعرف على المتغيرات وكيفية ربطها في الذاكرة باستخدام memory address |
04:12 |
تعريف المتغيرات
الآن سنتعرف على كيفية تعريف المتغير Variable |
07:53 |
مجالات المتغيرات Variable scopes
لكل متغير مجال خاص فيه، تعال نشوف المقصود بالمجالات وكيف يمكن الوصول لها |
07:16 |
التسميات للمتغيرات Naming conventions
مهم
جرعة إضافية
من أهم الممارسات البرمجية هو اتباعك لاسلوب تسمية معين، بهذا الدرس سنتعرف على التسميات وأنواعها وأهمية استخدامها |
07:37 |
أنواع البيانات للمتغيرات Data Types
لكل متغير نوع بيانات هل لاحظت ذلك في الدروس السابقة؟ لنتعرف على أنواع البيانات الأساسية الآن والفروقات بينها |
03:32 |
التحقق من أحجام المتغيرات باستخدام sizeof
لأن الموارد ليست دائما كبيرة، من الجيد أن تعرف أي نوع بيانات سوف تستخدمه يعتبر الأنسب لذلك؟ تعال نشوف الاحجام باستخدام sizeof |
03:09 |
تعريف أنواع البيانات تلقائيا باستخدام auto
مكسل أو عندك نوع بيانات تلقائي؟ راح تستفيد بشكل كبير من استخدام auto |
01:18 |
إعادة تعريف أنواع المتغيرات باستخدام typedef
بهذا الدرس ستتعرف على كيفية اعادة تسمية\تعريف أنواع البيانات للمتغيرات باستخدام typedef |
05:09 |
تعريف الثوابت constants
الثوابت هي بيانات لا تقبل التغيير عليها لاحقا، وسنتعرف الآن على كيفية استخدامها وامثله على ذلك |
03:31 |
التعبيرات الثابته const expressions
يمكن ان نحتفظ بنتيجة تعبير برمجي معين بشكل ثابت بحيث نحصل على النتيجة دائما بدل من المعالجة ثم الحصول على النتيجة |
07:49 |
التعداد (القوائم) Enumeration
Enumeration وفي رواية enum هو نوع ذو خيارات محددة يسمح لك بالاختيار منه فقط |
المصفوفات Arrays +
بالدروس التالي سنتعرف على المصفوفات وانواعها وكيف تستخدم وفي ماذا تفيد
|
|
11:06 |
ماهي المصفوفات ولماذا تستخدم
جرعة إضافية
للمصفوفات عدد من الاستخدام وبهذا الدرس سنتعرف عليها وسنعرف الفرق بين المصفوفات static و dynamic |
05:08 |
تعريف المصفوفات
كيف تقوم بتعريف مصفوفة محددة الحجم و وضع القيم بها؟ |
04:22 |
تعريف المصفوفات متعددة الحدود multidimensional arrays
بعد ان عرفنا مصفوفات ذات حد واحد، تعال نعرف مصفوفات متعددة الحدود |
02:21 |
اسناد القيم والتغيير عليها في المصفوفات
يمكن اسناد قيمة جديدة أو تغيير قيمة موجودة في عنصر بالمصفوفة وتعال نشوف كيف |
الجُمل والعوامل Expressions & Operators +
الجمل البرمجية والعوامل Expressions & Operators
|
|
02:10 |
ماهو التعبير البرمجي Statement ؟
سنتعرف في هذا القسم على التعبير البرمجي Statement |
06:05 |
العوامل الرياضية Math operators
وصلنا الآن لكيفية استخدام العوامل الرياضية "رياضيات" وكيف يمكن استخدامها والتعامل معها |
05:21 |
عوامل المقارنة equality operators
لكي تعرف إذا ماكان حدين (الحد الأول والحد الثاني) متساوية أم لا سوف تستخدم معها عوامل المقارنة |
08:58 |
المقارنات المنطقية Logical Operators
شاهد وصف الدرس
الآن وصلنا للمقارنات المنطقية والتي من خلالها يمكن الدمج مابين أنواع المقارات الأخرى للوصول لنتيجة منطقية أكبر |
الشروط conditions +
سنتعرف على استخدام الشروط في السلسلة القادمة من الدروس والتي تساعدنا في التحكم بسير البرنامج
|
|
03:55 |
استخدام الشروط البرمجية if else
بدأنا من هنا بتعلم الخوارزميات. والآن سنتعلم كيفية استخدام الشروط للتحكم في تشغيل البرمجيات شرطيا |
05:20 |
تكرار الشروط nested if
خلصنا من مدير العمارة تعال نشوف كيف تستخدم شروط متداخله مع بعض وتسمى nested if conditions |
04:28 |
استخدام else if
نستخدم else if لاسناد سلسلة متتالية من الشروط وما يتحقق منها يعمل أولا. تعال نشوف كيف |
05:59 |
استخدام switch case
الآن سنتعرف على switch case وهي شبيهه نوعا ما بـ else if ما عدا فرق سنتعرف عليه بهذا الدرس |
01:54 |
الحالة الافتراضية default switch case
إن لم تتحقق أي حالة من الحالات؟ نقدر نستخدم default وهي شبيهة بـ else |
02:54 |
عامل الشرط الثلاثي ternary operator
سنتعرف الآن على عامل الشرط الثلاثي ternary operator متى يستخدم وكيف ممكن يبسط الكود البرمجي. |
التكرار Loops +
وصلنا الآن للتكرار في البرمجة والذي يساعدنا في تكرار بعض العمليات البرمجية دون الحاجة لإعادة الكتابة
|
|
05:49 |
ماهو التكرار وكيف يتم استخدام تكرار goto
سنتعرف بهذا الدرس على مفهوم التكرار ونستخدم أول نوع وهو goto |
04:24 |
التكرار باستخدام while
طالما أن هناك شرط ما صحيح، سيعمل هذا التكرار. وهذا المقصود بكلمة while |
05:17 |
التكرار باستخدام do while
لو حبيت ان التكرار عندك يشتغل مرة وحدة على الأقل، الحل المناسب لك هو استخدام do .. while |
05:19 |
التكرار باستخدام for
أشهر أنواع التكرار واهو تكرار مكون من ثلاثة حدود تعال نتعرف عليها |
04:25 |
التكرار باستخدام range-based for
range-based وتسمى ايضا for each في بعض اللغات |
02:57 |
الايقاف والتخطي في التكرار باستخدام break & continue
تحتاج تتدخل أحيانا في عمليات التكرار الخاصة فيك بحيث تعمل له إيقاف break أو تعمل تخطي continue |
05:14 |
التكرار المتكرر "أو الشبكي" nested for
إذا استخدمت عملية تكرار، داخل عملية تكرار ثانية هذا يسمى nested loop وهنا سنتعرف عليه ونعرف فائدته واستخداماته |
07:43 |
تمرين التكرار داخل المصفوفات متعددة الحدود
تمرين
يلا نحل التمرين سوا ونشوف كيف ممكن نستخدم nested for للتكرار داخل مصفوفات متعددة الحدود |
الدوال Functions +
سنتعلم في الدروس القادمة ماهي functions وكيف تستخدم لتنظيم الكود البرمجي وتسهيل عمليات التعديل والتطوير
|
|
12:50 |
ماهي الدوال functions وكيف تكتب
حان وقت تعلم الدوال بشكل أعمق الآن |
03:29 |
استخدام parameters متعددة
بهذا الدرس سنتعلم كيفية استخدام اكثر من parameter للدالة بحيث تصبح أكثر ديناميكية |
03:40 |
القيم الافتراضية في parameters
تمرين
سنتعلم الآن كيف يمكنك استخدام default parameters بحيث يمكنك تخطي بعضها إذا كانت اختيارية |
07:41 |
تمرين على استخدام الدوال functions
نحل التمرين سويا، كيف ممكن تستخدم function مع switch statement ؟ |
01:32 |
Inline Functions
سنتعلم الآن inline functions وهي دوال بسيطة لا تحتاج لتعريف مسبق |
05:56 |
تعدد أنواع البيانات function overloading
تعلمنا سابقا كيف ممكن يكون للدالة نوع بيانات ولكن كيف ممكن نجعلها تقبل أنواع كثيرة من البيانات؟ هنا سنتعلم overloading |
البرمجة الكائنية Object Oriented Programming OOP +
البرمجة كائنية التوجه هي إحدى مزايا لغة سي++ وهي واحدة من أهم الممارسات البرمجية التي تجعل برمجياتك أكثر مرونة وأقل عرضة للخطأ
|
|
07:01 |
ماهي البرمجة الكائنية وماهي classes
بهذا الدرس راح نتعرف على مفهوم البرمجة كائنية التوجه وكيف تكتب الكلاسات classes |
09:09 |
التعرف على الكائنات وكيف تستخدم objects
إذا كان الكلاس عبارة عن هيكل أو قالب، إذن الكائن عبارة عن نسخة ذات مواصفات. object يسمى أيضا instance |
08:24 |
خصائص الظهور public & private
خصائص الظهور (access modifier) في الكلاس تساعدك على تأمين ماذا يظهر وماذا يختفي بحيث "تمخمخ" على الأجزاء الحساسة من عملك |
07:11 |
مفهوم التغليف encapsulation
التغليف Encapsulation هو أحد مفاهيم البرمجة الكائنية ويقصد فيه "تغليف" البيانات بحيث لا يظهر منها إلا ماتريد إظهاره مع التحكم بالمخرجات ومعالجتها قبل الظهور |
03:24 |
ماهو constructor وفي ماذا يستخدم؟
عند عمل كائن من الكلاس، يوجد دالة تشتغل تلقائيا يمكن من خلالها عمل كل مايلزم عمله بشكل مبدئي وهذه الدالة تسمى constructor |
06:16 |
Constructor Overloading
مثل ما أنه تعلمنا أن الدالة يمكن عمل overload لها بحيث تقبل أنواع متعددة من البيانات، يمكن أيضا عمل نفس الشيء مع constructor حتى يصبح الكلاس مرن |
02:12 |
القيم الافتراضية في constructor
سنتعلم الآن كيفية وضع قيم افتراضية في constructor |
02:18 |
ضبط القيم الافتراضية عبر القوائمconstructor initialization lists
طريقة أخرى لضبط قيم constructors عبر استخدام القوائم المبدئية للتشغيل والتي تسمى initialization list |
04:54 |
ماهي destructors وكيف تستخدم؟
إذا كان أول شيء يعمل في الكلاس هو constructor فآخر شيء يعمل فيه عند إنتهاؤه من العمل أو حذفه هو destructor |
07:29 |
Static Functions
الدوال التي لا ترتبط بالكائن يمكن ربطها بشكل مباشر في الكلاس وتسمى هذه الدوال static functions |
04:52 |
المؤشر this
جرعة إضافية
أخيرا وصلنا له. this pointer له مزايا كثيرة وأهمها هو التمييز بين خصائص الكلاس وبين المتغيرات الأخرى. تعال نتعلمه |
02:34 |
كم تستهلك الكلاسات من الذاكرة؟
هل فكرت كم فعلا يستهلك الكلاس من الذاكرة؟ تعال نشوف حجمه يعتمد على ماذا |
02:19 |
تعرف على structs
من الجيد أن نتعرف عليها، ماهي structs في سي++؟ |
04:42 |
صديق الكلاس friend of class
جرعة إضافية
كن صديقي.. لا 😠 >> صديق الكلاس هو الشيء الي يسمح الكلاس له بأن يصبح صديقه بحيث يمكن له الوصول للعناصر الخاصة به (ويفضفض له) |
الوراثة Inheritance +
وصلنا في هذه المرحلة للوراثة وهي إحدى مفاهيم البرمجة الكائنية الهامة بحيث يمكن لنا اعادة استخدام المنطق البرمجي مرة أخرى
|
|
05:25 |
ماهي الوراثة وكيف تعمل Inheritance
سنتعرف الآن على مفهوم الوراثة والتي يمكن من خلالها إعادة استخدام خصائص الكلاسات الخاصة بك في كلاس آخر دون الحاجة لإعادة كتابة ماقمت به |
03:49 |
خاصية الظهور protected
إحدى خصائص الظهور المتعلقة بالوراثة هي خاصية protected وهي اخت private و public إنما تفيدنا بشكل كبير في حالة الوراثة فقط |
08:27 |
التعامل مع base class constructor
بعد وراثتك لكلاس معين، كيف تستطيع تشغيل constructor الخاص فيه؟ |
04:36 |
الكتابة على الدوال function overriding
إذا اضطريت إلى إعادة صياغة دالة معينة، هذا الشيء يسمى overriding. تعال نتعلمه |
02:30 |
الوصول للدوال الأصلية base class functions
نحتاج في بعض الحالات إلى الوصول للدالة الأصل من الكلاس الموروث من الخارج. كيف؟ |
02:07 |
ترتيب التشغيل لـ constructors & desctructors
جرعة إضافية
من يشتغل قبل الثاني في الوراثة للكلاسات؟ هي الوارث أو الموروث؟ |
03:54 |
الوراثة الخاصة private inheritance
كل الي تعلمناه سابقا يسمى public inheritance الآن راح نتعلم الوراثة الخاصة وهي عكسها بحيث يمكن لنا منع الكائنات من الوصول لخصائص الكلاس الأساسي |
04:38 |
الوراثة المحمية protected inheritance
جربت تعمل كلاس يرث كلاس وارث ولكن بخاصية وراثة خاصة؟ الكلاس الي عملته لن يستطيع الوصول للخصائص الأساسية في base class لسبب أنه private وهنا تأتي فائدة protected inheritance |
05:15 |
تعدد الوراثة multiple inheritance
راح نتعلم الآن كيف ممكن تسوي كلاس يرث عدد من الكلاسات بدل مايرث واحد فقط |
01:46 |
منع وراثة الكلاسات عن طريق final
عملت كلاس بس ماتبي أحد يسوي له وراثة ويعدل عليه؟ تعال نشوف كيف ممكن يصير عبر استخدام كلمة وحدة فقط وهي final |
المؤشرات والمراجع Pointers & References +
بعد أن تعلمنا كيف تعمل المتغيرات حان الوقت لتعلم ماهي المؤشرات والمراجع وكيف يمكن من خلالها العمل بمرونة مع البيانات في الذاكرة
|
|
04:01 |
ماهي المؤشرات pointers وكيف تستخدم
المؤشر يأشر، كيف الشرح؟ تعال نشوف على مين يأشر وليش تحتاجه |
04:30 |
تعريف المؤشر والحصول على العنوان في الذاكرة
الآن بعد أن تعرفت على ماهية المؤشر، تعال نشوف كيف ممكن نعرف المؤشرات ونحصل على العناوين من الذاكرة |
04:28 |
الوصول للبيانات وتعديلها من خلال المؤشرات
معك عنوان التخزين؟ تقدر توصل للمعلومة المخزنة بهذا العنوان وأيضا تعدلها وهذا الي راح نتعلم الآن |
04:10 |
كم حجم المؤشرات؟ sizeof
فكرت كم حجم المؤشر؟ وهل هو نفس حجم المتغير الي يأشر عليه أو له حجم خاص؟ |
04:44 |
تخصيص الذاكرة الديناميكي dynamic memory allocation
سنتعلم الآن كيف يمكن حجز أو إلغاء حجز مكان بالذاكرة بشكل ديناميكي أثناء تشغيل البرنامج |
03:25 |
الوو شرطة الكمبيوتر؟ عندنا مؤشرات ضالة!! 🚓 🚓
عندك زومبي بالذاكرة انتبه له، يسمى stray pointer 🧟 |
07:23 |
increment & decrements على المؤشرات
شيء مثير للاهتمام، ماذا يحدث إذا استخدمت علامات (++) أو (--) على المؤشر؟ |
03:20 |
التحقق من حجز المكان في الذاكرة
لأنه ليس دائما متاح لك حجز مكان بالذاكرة، كيف تتأكد أنه فعلا تم حجز المكان؟ |
08:32 |
ماهي المراجع وكيف تستخدم references
المرجع عبارة عن اسم مستعار للمتغير من خلاله تستطيع الوصول للمتغير بشكل طبيعي والتعامل معه |
تعدد النماذج Polymorphism +
تعدد النماذج من مفاهيم البرمجة الكائنية (الوراثة) على وجه التحديد وهو يسمح لك بإنشاء عدد من النماذج لنفس الكلاسات المتوارثة وهو مايسمى Polymorphism
|
|
09:33 |
مفهوم تعدد النماذج وكيف يعمل polymorphism
فكرت كيف ممكن لدالة وحدة أن يكون لها تصرفات مختلفة على حسب الكائن الخاص فيها؟ هذا مايسمى polymorphism |
08:39 |
أهمية استخدام virtual destructor
لا تنسى تسوي لك virtual destructor، طيب ليش؟ تعال شوف الي راح يصير بالذاكرة لو ماسويته |
07:19 |
التجريد وكيفيه عمله abstraction
الكلاسات المجردة abstract classes من خلالها تفرض استخدام خصائص معينة على كل كلاس وارث بحيث يصبح عندك نماذج "متكاملة" لكل كلاس تصنعه |
08:23 |
ماهي diamond problem وكيف نتعامل معها
إذا عندك كلاس ورث عدد من الكلاسات "الوراثة المتعددة" سيظهر لك سلوك غريب جدا يستهلك الموارد عندك بسبب أنه يستعدي كل الكلاسات السابقة. تعال نشوف المشكلة وحلها |
Macros +
في السلسلة القادمة سنتعامل مع الماكرو macro في لغة سي++ وسنتعرف على أهم استخداماته ومزاياه
|
|
06:09 |
ماهو الماكرو و preprocessor
راح نتعرف بهذا الدرس على الماكرو macro ايش هي وظيفته وكيف ممكن يخدمك كمبرمج؟ وايضا ماهو مفهوم preprocessor ؟ |
03:19 |
تعريف macro functions
نستخدم الماكرو أحيانا لتعريف دوال بسيطة، تعال نشوف كيف ممكن نسوي هذا الشيء |
القوالب +
لا يوجد وصف
|
|
06:50 |
ماهي القوالب Templates وكيف يتم تعريفها
بهذا الدرس راح نتعرف على القوالب وماهي نقاط القوة بها وكيف يمكن تعريفها بشكل مبسط |
04:48 |
تعريف template class
بهذا الدرس راح نتمدد قليلا... كيف ممكن نسوي قالب كلاس؟ |
06:39 |
تعريف أكثر من برامتر parameter في القوالب
بهذا الدرس راح نتعرف على تعدد parameters وايضا default parameter مع القوالب |
النصوص Strings +
وصلنا في هذه السلسلة الآن إلى التعامل مع Standard Template Library في لغة سي++ وفي الدروس التالي كيفية التعامل مع النصوص
|
|
06:10 |
مقدمة عن STL وكيف نستخدم النصوص string
سنتعرف بهذا الدرس على STL وسنبدأ الآن بالتعرف على كيفية تعريف النصوص بأكثر من طريقة |
01:28 |
الوصول لعنصر في النص عن طريق index
يمكن لنا الوصول لحرف في سلسلة نصية بأكثر من طريقة وسنتعلم الآن الوصول لها بأسلوب المصفوفة |
03:27 |
حل تمرين الوصول للنصوص عن طريق التكرار for
تمرين
بهذا الدرس راح نحل التمرين السابق ونتعرف على مشكلة قد تحدث وكيف يمكن لنا حلها |
01:44 |
الحصول على طول النصوص باستخدام دالة length
تعرضنا لمشكلة في الدرس الماضي وحلها سيكون عبر استخدام الدالة length |
03:02 |
تمرين تحديد عدد الحروف
تمرين
بهذا التمرين راح نستخدم cin بحيث يكتب لنا المستخدم نص معين ولكن بطول محدد مسبقا |
05:08 |
ماهو iterator ؟
سنتعرف الآن على iterator وهو مؤشر يمكن من خلاله التنقل مابين أجزاء النصوص في الذاكرة |
03:00 |
تمرين على استخدام iterators
تمرين
الآن راح نسوي تمرين مع بعض بحيث نشوف كيف يمكن لنا التنقل عبر استخدام iterator |
03:51 |
دمج النصوص concatenation
سنتعلم بهذا الدرس يمكن لنا دمج النصوص سويا وهي مايسمى string concatenation |
05:18 |
البحث في النصوص والتعرف على std::string::npos
بهذا الدرس راح نشوف كيف يمكن لنا البحث في النصوص وراح نتعرف على string::npos |
01:21 |
الحذف من النصوص truncate
الحذف او truncate من نص معين كيف يتم؟ هيا بنا |
03:08 |
تمرين كيفية البحث والحذف من النصوص
تمرين
حليته؟ اذا قدرت فهذا جميل وإذا ماقدرت تعال نشوف كيف |
02:52 |
عكس النصوص خوارزمية reverse
راح نتعلم الآن كيف ممكن نعكس النص بحيث نتأكد من تطابقه |
02:20 |
تغيير حالة الأحرف toupper & tolower
راح نتعلم الآن كيف ممكن تحول نص مثل HELLO إلى hello ؟ والعكس |
المصفوفات الدنياميكية +
لا يوجد وصف
|
|
03:59 |
ماهي المصفوفة الديناميكية وكيف يستخدم vector
ودخلنا الآن على المصفوفات الديناميكية وراح نتعلم الآن أول نوع وهو vector |
01:58 |
الإضافة للفيكتور vector
عرفت مصفوفة؟ كيف تتم الإضافة الآن؟ |
03:05 |
إضافة العناصر في مكان محدد vector insert
الآن وصلنا لإضافة العناصر ولكن ليس في النهاية إنما في مكان محدد عن طريق insert |
02:42 |
استخدام المصفوفات deque
نوع ثاني من المصفوفات الديناميكية وهو deque يمكن اضافة العناصر لها في البداية أو النهاية |
القوائم list & forward_list +
سنتعلم في السلسلة القادمة من الدروس التعامل مع القوائم list & forward_list ومالمقصود بـ linked lists
|
|
04:31 |
مقدمة عن القوائم lists كيف تعمل وكيف يتم تعريفها
سنتعلم بهذا الدرس ماهي lists وكيف تعرف ومالمميز بها |
03:26 |
إضافة العناصر على list
لا جديد هنا بالنسبة للإضافة، فهي تعمل بنفس طريقة المصفوفات الديناميكية |
08:20 |
ادخال عناصر للقوائم باستخدام insert
ادخال العناصر على القوائم باستخدم insert راح يبين لنا فرقها الفعلي عن vector |
03:50 |
الحذف من القوائم
بهذا الدرس راح نتعلم كيف نقدر نحذف عناصر من القائمة |
02:18 |
خوارزميات الترتيب وعكس الترتيب للقوائم
بهذا الدرس راح نتعلم على sort و reverse والي تسمح لنا بترتيب وعكس ترتيب أي قائمة عندنا |
01:39 |
ماهي forward_list وكيف نتعامل معها
تفرق عن list بأنها ذات اتجاه واحد عكس list ذات الاتجاهات المتعددة |
المجموعات set & multiset +
المجموعات هو نوع يتميز بسرعة البحث فيه والسبب في ذلك طريقة التخزين الخاصة به. في الدروس الجاية سنتعرف على مزايا المجموعات sets وكيف نتعامل معها
|
|
03:15 |
مقدمة في set & multiset وتعريفها
تتميز بطريقة التخزين الخاصة بها وهذا معناه سرعة بالبحث. لكن تعال نشوف كيف نُعرفها بأكثر من طريقة |
04:32 |
الإدخال واحتساب عدد العناصر المكررة set & multiset
بهذا الدرس راح نشوف كيف نسوي insert للمجموعات وأيضا كيف ممكن نعرف عدد مرات التكرار في multiset |
04:32 |
البحث داخل المجموعات
راح نتعلم الحين كيف نبحث عن عناصر معينة ونتحقق من وجودها داخل مجموعة بيانات معينة |
02:29 |
الحذف من المجموعات
تتوقع الحذف كيف يتم؟ صعب سهل؟ راح نستخدم الفنكشن erase المرة هذي |
03:07 |
تمرين البحث والحذف من المجموعات
بهذا التمرين راح نتعامل مع مدخلات المستخدم + الشروط + التحقق من وجود عنصر في مجموعة وفي الأخير كيف نحذفه |
الخرائط map & multimap +
في السلسلة القادمة سنتعلم مفهوم map وهي بيانات مكونة من زوج (مفتاح + قيمة) من ناحية الادخال والبحث والفروقات بين multimap & map
|
|
07:58 |
مقدمة عن map و binray tree
سنتعرف بهذا الدرس على map وكيف تعمل ومالمقصود بـ binary tree ؟ |
03:54 |
تعريف map وادخال البيانات لها
الآن حان وقت تعريف نوع map ومعرفة كيف يتم ادخال البيانات لها |
02:13 |
الوصول للعناصر في maps
راح نتعرف بهذا الدرس على كيفية الوصول للعناصر المخزنة في map وماهو first , second ؟ |
03:36 |
تمرين الوصول للعناصر من خلال التكرار
الآن راح نحل التمرين والي من خلاله راح نسوي عملية تكرار لعرض البيانات في map |
04:16 |
الادخال باستخدام insert مع فكرة التبسيط باستخدام typedef
بهذا الدرس راح نستفيد من معلومة تعلمناها سابقا وهي typedef ومنها راح نستخدم طريقة الإدخال باستخدام الدالة insert |
04:30 |
البحث في maps
البحث في map يتم عن طريق ماذا؟ عن طريق تحديد مفتاح :) |
04:15 |
ادخال البيانات واحتساب التكرار في multimap
بما ان البيانات في multimap تقبل التكرار، هذا يعني وجود مشكلة معينة لازم نتعرض لها بهذا الدرس ونشوف ايش هي المشكلة وايش سببها؟ |
الدوال المجهولة lambda functions +
وصلنا لسلسلة تعلم الدوال المجهولة Lambda functions وهي دوال لا تحمل اسم وتستخدم مرة واحدة فقط
|
|
06:20 |
مقدمة عن اللامدا lambda وكيف يعرف ويستخدم
lambda فكشن بدون اسم! لكن الموضوع أهميته ليست هنا تعال نشوف بهذا الدرس ايش هو وكيف يتم تعريفه واستخدامه |
05:03 |
Lambda capture list
capture list هي قائمة متغيرات تحصل عليها من المجال الخارجي الخاص باللامدا بحيث تستخدمها في مجاله الخاص |
07:14 |
استخدام اللامدا بوضع closure
closure هو فنكشن نهائي يستخدم كاستدعاء نهائي ويسمى ايضا function object |
الخوارزميات مع Standard Template Library +
في هذه السلسلة سنتعلم أهم الخوارزميات في STL وهي خوارزميات عمومية يمكن تطبيقها على الأنواع الخاصة بـ STL التي تعلمناها سابقا مثل vector و list
|
|
09:15 |
مقدمة عن خوارزميات STL وكيف نستخدم البحث find find_if
بهذا الدرس راح ناخذ مقدمة عن خوارزميات STL ونبدا باستخدام اولها وهي خوارزميات البحث find و find_if |
05:09 |
خوارزميات العد count count_if
حتى نعرف كم مرة تكرر عنصر معين سواء عن طريق تحديد العنصر كمدخل أو تطبيق عملية برمجية عليه نقدر نستخدم count او count_if |
08:14 |
خوارزميات التعبئة fill fill_n
عندك حاوية تحتاج تعمل لها تعبئة؟ نقدر نستخدم fill هنا |
06:09 |
خوارزميات توليد القيم generate generate_n
مثل ماتعلمنا fill كانت تعمل تعبئة، لكن مع generate نستطيع التعبئة ولكن من خلال توليد القيم بشكل برمجي |
05:34 |
خوارزمية التكرار والمعالجة وماذا يمكنك ان تفعل أيضا؟
مهم
جرعة إضافية
تعلمناها كثير وهي خوارزمية for_each لكن هذا الدرس مهم تشوف ايش ممكن تسوي باستخدمها هي أو غيرها |
08:30 |
البحث عن نطاق أو نمط باستخدام search
تعلمنا سابقا البحث باستخدام find بس الحين جاء وقت search وهي من خلالها نقدر نحدد نطاق أو نمط متكرر ونبحث عنه في حاوية معينة |
04:29 |
خوارزميات النسخ
بهذا الدرس راح نتعلم كيف تتم عمليات النسخ من حاوية لأخرى عن طريق خوارزميات copy و copy_if |
05:24 |
خوارزميات الحذف
بهذا الدرس راح نشوف كيف ممكن نحذف شيء من حاوية معينة بس فيه فكرة جديدة غير الحذف بنتعلمها بعد.. بسم الله |
04:35 |
خوارزميات الاستبدال
جرعة إضافية
عندك حاوية فيه معلومات حاب تستبدلها؟ تعال نتعلم كيف |
02:02 |
خوارزمية حذف القيم المكررة
عندك حاوية فيها معلومات مكررة وتبي تحذف التكرار بدون وجع راس؟ هيا بنا نشوف كيف تشتغل unique |
03:32 |
خوارزميات تجزئة الحاويات
بهذا الدرس راح نشوف كيف ممكن نعمل تجزئة لحاوية عندنا |
الحاويات التكيفية Adaptive Containers +
في لغة C++ يوجد ما يسمى Adaptive Containers وهي حاويات بيانات متكيفة لكي تحاكي أسلوب هياكل البيانات من نوع Stack و Queue
|
|
13:59 |
ماهي stacks & queues؟ مشينا على الخباز!
بهذا الدرس راح نتعلم ماهي stacks و queue لكن قبلها بنروح على الخباز نجيب خبز وبعدها راح نفهم أن الخباز شخص طبق هذا المفهوم عنده في المخبز من زمان! |
08:46 |
تعريف stack وكيفية التعامل معها
بهذا الدرس راح نتعلم كل شيء يخص stack من كيفية تعريفها إلى ادخال وحذف البيانات منها مرورا بتفريغها |
04:09 |
تعريف queue وكيفية التعامل معها ونصائح حول استخداماتها
تعلمنا سابقا كيفية التعامل مع stack الآن جاء دور queue وهنا راح نلاحظ الفارق مابينها من ناحية الأولوية في ترتيب العناصر |
03:19 |
priority_queue ماهي وكيف نتعامل معها؟
تقدر تقول أنها queue بس مهتمه بترتيب العناصر؟ هيا بنا نشوف |
عرض الكل + إخفاء الكل - |
دورة مكثفة في تعليم أساسيات البرمجة حتى المستويات المتقدمة بها وذلك من خلال استخدام لغة ++C
مدرب في فلكس كورسز وقائد فريق التطوير والبرمجة في هذا الموقع الرائع. إذا كنت ترغب بمعرفة المزيد عني يمكنك زيارة موقعي الشخصي.
المزيد ...