[0:00]السلام عليكم ورحمه الله وبركاته يعطيكم الف الف عافيه يا جماعه اليوم ان شاء الله راح نبلش بسلسله جديده بعد سلسله اساسيات مهمه لكل مبرمج الا وهي سلسله الخوارزميات وحل المشاكل Algorithm and Problem Solving. هذه السلسله راح تكون من ضمن المستوى الاول من الخوارزميات والمشاكل وحلها رح تعلمنا رح نتعلم بهذه السلسله اسلوب تفكير ننمي المنطق بالتدريج عن طريق حل مشكلات بسيطه ونتدرج بالصعوبه فيها للاصعب تمام؟ على اساس انت تكون انت كمبرمج بتعرف كيف تفكر في حل المشكله بتمنى انكم ما تبلشوا في هذه السلسله اذا انتم مش مخلصين كل الدروس اللي اخذناها من ضمن سلسله اساسيات مهمه لكل مبرمج لانه هاي السلسله بتعتمد على كثير اشياء اخذناها في سلسله اساسيات مهمه لكل مبرمج فما تضيع وقتك اذا انت مش متاسس هناك مضبوط ما تستعجل. روح الفيديوهات موجوده هون ومش رح تطير رح تضلها موجوده لك في اي وقت بس انت اعطي نفسك الفتره الكافيه لتتدرب على كل شيء اللي حكيناه من ضمن سلسله اساسيات مهمه لكل مبرمج عشان لما تيجي على هاي السلسله تشوف الامور سهله وسلسه ان شاء الله. طب ايش هو الالم؟ الالم بشكل عام كثير المتعلمين البرمجه بخافوا من شيء اسمه الالم يعني بتعقدوا منه بخافوا منه تعرفوا ليش؟ لانه هم بروحوا بدرسوا بطريقه كثير غلط مش مرتبه ما في تسلسل وتدريج في تعلم هذا الشيء الالم ايش هو الالم؟ قبل ما نعرف ايش هو الالم خلينا نشوف امثله من الحياه العمليه. انا اليوم عندك ورقه اي 4 وقلتلك بدي تعملي فيها هذا القارب تمام؟ انت شو رح تعمل؟ بدك عشان توصل بالورقه لانه يطلع عندك قارب مثل هيك. طب ايش هو الالم اللي انا بعمله عشان يطلع عندي هذا القارب؟ هيو الالم الالم هو عباره عن سلسله من الخطوات المرتبه ورا بعض بعملها عشان اوصل لهدف هذا هو الالم الالم هو قدرتك على حل المشكله. تسلسلك بالخطوات والعمليات عشان انا اقدر احل مشكله عندي والله بدي اعمل قارب والله اول شيء بجيب ورقه اي فور خطوه رقم واحد بعمل بثنيها من النص خطوه رقم اثنين برجع بفتحها بعملها فلب هيك بعدين خطوه رقم ثلاثه بمسك الزوايا بثنيهم خطوه رقم اربعه بطلع عندي هيك خطوه رقم خمسه هيك 6 7 8 9 10 لا 12 الموضوع جدا بسيط البرمجه هي نفس هذا القارب. خطوه خطوه اول خطوه طبقها لحالها وفكر فيها لحالها سهله صح؟ ثاني خطوه طبقها لحالها وفكر فيها لحالها اذا هي سهله مضبوط ولا لا؟ ثالث خطوه سهله صناعه هذا القارب من الورقه من ورقه اي فور هي خطوه هي عباره عن سلسله من الخطوات السهله جدا سلسله من الخطوات السهله جدا لكن مشكلتنا في التفكير انه لما نيجي نجي نسوي قارب زي هيك بنفكر في مليون شغله في نفس الوقت لا يا عمي انت انت اقسم هذه المشكله لاجزاء تمام؟ وبعدين اشتغل على كل جزء لحاله بطلع عندك قارب فما في اي صعوبه انك تصنع قارب من ورقه اذا انت عرفت الخطوات المتسلسله انك تعمل قارب تمام ناخذ مثال ثاني. انا بدي اعمل كيكه اليوم عمل الكيكه هو الالم. عمل الكيكه هو الالم الالم اللي خوارزميه الحل خوارزميه الخوارزميه هي خطوات متسلسله يعني انا عشان اعمل كيكه الخطوه الاولى بدي اجيب الانجريدينس اللي هم المكونات. الخطوه الثانيه بدي بدي اضيفها على على اللي بنسميه بالاردن جاط هذا بنحط بنحط المكونات في الوعاء تمام ثالث خطوه بدي انا اجي شو اعمل؟ بدي اخلطهم رابع خطوه بدي احطهم بالفرن خامس خطوه بدي اطلعها وازينها للكيكه. هذه شرح عمل الكيكه باسلوب مبسط فعمل الكيكه هو الالم. انت حياتك كلها الم افرض اليوم لنفرض اليوم انه انت عندك بكره الساعه تسعه الصبح موعد لمقابله في شركه رح تعطيك راتب عمرك تمام؟ فاكيد شو الالم اللي انت بدك تعمله عشان تروح للشركه؟ لو تفكر فيها حياتك كلها الم تحكي اه والله انا بدي لازم انام على الساعه 10 المسا تمام؟ قبل ما انام بدي احط الارم منبه على الساعه 7 الصبح طيب بس يرن الارم تبعك على الساعه 7 الصبح بدك تصحى تاخذ شاور تلبس تفطر بدك تروح على السياره تشغل السياره اوكي رحت بدك تشغل السياره عشان تلحق الموعد تبعك اوف ولا السياره ما بتشتغل صار عندك بدك تاخذ قرار هسه السياره ما بتشتغل معناته انا بدي اروح اطلب اوبر او كريم او بدي بدي اخذ اطلب تاكسي ف فحياتك كلها عباره عن خطوات متسلسله وقرارات وكل قرار بوديك لخطوات ثانيه هذه هي الالم وهذه هي البرمجه. فالبرمجه شيء سهل جدا جدا جدا جدا هو عباره عن مجموعه مجموعه من الخطوات المتسلسله لتوصل لاكبر برنامج تمام؟ فاذا تعريف الالم هو ايش؟ الالم is a step by step instruction in order to solve a problem or perform a task.
[7:49]يعني هي ديزاين تول رح نتعرف عليها هلا ما تحفظ التعريف هلا رح تتعرف عليها ورح تفهمها
[8:11]بتمثللي بتساعدني اني افكر في البرنامج او في المشكله عشان اوجد لها حل
[8:34]اول رمز اللي هو الشكل البيضاوي انا بستخدمه في بدايه ونهايه البرنامج تمام رح ناخذ امثله عمليه عليه. هذا شكل المعين اذا انا بحتاج مدخلات من من اليوزر او مخرجات على الشاشه برضه بستخدم شكل المعين تمام؟ شكل المستطيل هذا اللي بستخدمه اذا عندي عمليات حسابيه عمليات معينه بدي اعملها في البرنامج بروسيس معينه بستخدمه برضه حنخذ عليه مثال ما ما تقلقوا شكل المعين هذا اذا عندي اي قرار بدي اتخذه في البرنامج مثلا اذا كان عمري فوق ال 25 سنه بدي اعمل كذا واذا كان عمري اقل من 25 سنه بدي اعمل كذا فهو استخدم للقرارات للديك تمام والخطوط هذه اللي بتربطلي هاي الاشكال مع بعض كلياتها هذا الحكي كلياته راح ناخذه في امثله عمليه هلا وراح تفهموا تماما. خلينا نبلش هلا رح ناخذ كم من مشكله من السهل للاصعب عشان تفهموا شو يعني فلو شارت شو يعني الالم كيف انا بفكر في حل المشاكل تدريجيا. هلا ال بروبلم رقم واحد رح نبلش بشيء بسيط جدا لو انا حكيتلك رايت اب to your name on screen تمام؟ قبل ما اروح على اي لغه برمجه في الدنيا بدي افكر بهذا البرنامج بدي افكر في الالم تبع هذا البرنامج بعدين بروح بختار اي لغه برمجه في الدنيا وبطبقها عليه فاذا التفكير هو 95% والتنفيذ هو 5% فنحن كل الالمز اللي رح ناخذها بهي السلسله رح بتقدر تحلها على اي لغه برمجه بدك اياها في الدنيا تمام فخلينا نشوف هذا البرنامج برنامج بسيط بيحكيلك اطبع اسمك على الشاشه طيب اول شيء الحل تبعه كالتالي اول شيء بدي افكر في الخطوات الحل لهذا البرنامج. هو برنامج بسيط جدا شو الخطوات؟ ستيب 1 برنت محمد خلصنا هو هذا البرنامج عباره عن خطوه واحده اللي هي اني اطبع اسمي فانا حكيتله برنت محمد خلصت تمام؟ طب ايش الفلو شارت اللي بيساعدني عشان انفذ هذا البرنامج اللي هو كالتالي هاي ستارت هاي بدايه البرنامج عندي بعدين استخدمنا شكل المعين لانه انا بدي اعمل مخرجات على الشاشه وكتبت فيه برنت محمد بعدين انت هي خلصت البرنامج هذا برنامج بسيط جدا عشان هيك الفلو شارت تبعه كثير بسيط وحتى من غير فلو شارت بالحل الفلو شارت حنشوف اهميته كمان في الامثله اللي جايه فبرنامج بسيط مفهوم عباره عن الالم تبعه هو عباره عن خطوه واحده برنت محمد خلصت تمام؟ نيجي على على على المشكله اللي بعديها بروبلم رقم اثنين لو انا حكيتلك رايت to ask the user to enter his name and print on the screen اذا انا بطلب منك برنامج مش زي البرنامج الاولاني انه اطبع اسمك لا هاي المره انا بحكيلك اكتبلي برنامج يسال المستخدم عن اسمه ويطبعه على الشاشه يعني لو دخل علي يطبع علي لو دخل احمد يطبع احمد لو دخلت لانا تطبع لانا تمام؟ فهذا البرنامج فيه شغلتين انا بدي اعملهم هيك بفكر دائما في البرامج شغلتين بدي اعملهم اول شيء بدي اقرا الاسم من اليوزر تمام؟ وبعدين بدي اطبعه على الشاشه خلينا نشوف شو خطواته خطواته كالتالي اول خطوه بدي اطلب من اليوزر يدخل اسمه تمام؟ ثاني خطوه بدي اطبع اسمه على الشاشه هاي هو عباره عن برنامج اصعب شوي من البرنامج الاولاني اللي اخذناه بيقرأ الاسم من اليوزر وبيطبعه على الشاشه طب ايش الفلو شارت تبعه لهذا البرنامج؟ الفلو شارت كالتالي اي برنامج ببلش بستارت اللي هو الشكل البيضاوي بعدين شكل المعين هذا اللي بنستخدمه عشان نقرا الشيء من اليوزر احنا رح نقرا الاسم فحكينا ريد نيم تمام؟ بعدين شكل معين ثاني عشان بدي اخرج الاسم على الشاشه برنت نيم وبعدين انت هي خلصنا هذا البرنامج تمام؟ تعالوا على على على المثال اللي بعديه تمام؟ رح يكون شوي اصعب تمام؟ لو لو حكيتلك انا رايت اب to ask the user to enter a number then print if it's odd or even if it's even يعني بالعربي انا بطلب منك تعملي برنامج يقرا رقم من المستخدم ويشيك على هذا الرقم ويشوف اذا الرقم هذا فردي او زوجي فهذا برنامج اصعب شوي من اللي فوق خلينا نشوف نفكر في خطوات حله تمام؟ اي برنامج في الدنيا اذا فكرت فيه خطوه خطوه حله بكون سهل خطوات الحل هي كالتالي اول خطوه انا بدي اقرا الرقم تمام بدي اخلي اليوزر يدخل لي رقم هي اول خطوه خلصناها ثاني خطوه انا طيب كيف بدي اعرف ان الرقم زوجي او فردي بغض النظر عن لغه البرمجه انسى احنا بنحكيش لغات برمجه على ورقه بدك تحلها هسه الرقم ايت بكون فردي وانت بكون زوجي؟ الرقم بكون زوجي اذا باقي قسمته على اثنين بتساوي صفر يعني لو اعطيتك اربع تفاحات اقسمهم على اثنين كل واحد باخذ تفاحتين بضل عندي تفاح لا لانه ما في باقي قسمه
[15:01]لكن لو انا اعطيتك خمس تفاحات وحكيتلك اقسمهم على شخصين كل واحد باخذ تفاحتين صح؟ بس بتبقى معي تفاحه واحده مش عارف وين اروح فيها هذه هي باقي القسمه تمام؟ فاذا 5 مده اثنين بتعطيني واحد ظل باقي القسمه واحد 4 مده اثنين ما في باقي القسمه صفر فاذا انا شو بعمل؟ انا هيك حابب احل البرنامج
[15:32]بحكي الرزلت بتساوي النمبر اللي دخله اليوزر مده اثنين فثالث خطوه بروح بشيك هل هل النتيجه كانت صفر؟ يعني هل في باقي قسمه ولا لا؟ اذا كانت اذا كان ما في باقي قسمه معناته الرقم هو زوجي وغير هيك بكون فردي تمام؟
[16:00]بعدين الخطوه الرابعه بطبع اود او ايفن حسب اذا الرقم كان اذا في باقي قسمه ولا ما في باقي قسمه خلينا نشوف الفلو شارت كيف بده يساعدني بهذا التفكير نيجي هون بنحكي هي بدايه البرنامج ستارت قرانا الرقم من اليوزر اللي هي الخطوه الاولى بعدين حكينا انه الرزلت النتيجه هي عباره عن قسمه الرقم على اثنين باقي قسمه الرقم على اثنين عشان اشوف بعدين الخطوه الثالثه اللي هي بدي اشيك هلا عشان اشيك اذا في عندي باقي او ما في عندي باقي بحكي اذا الرزلت كانت صفر معناته ما عندي باقي اذا الرزلت كانت صفر لاحظوا هون استخدمنا شكل المعين لانه عندي قرار اذا كان اذا كانت النتيجه الجواب يس بروح بطبع ايش؟ ايفن وبنهي البرنامج فهذا الفلو شارت بيساعدني انا
[17:30]اني اتخيل البرنامج خطوه خطوه تمام واخذ قرارات واذا كان القرار اذا كانت مثلا النتيجه الجواب يس بروح بعمل كذا اذا كان نو بعمل كذا هذه هي الخوارزميات بشكل عام خوارزميات هي اسلوب تفكير بتسلسل منطقي لنصل للنتيجه ونرجع بنحكي دائما شو ما كانت المشكله عندك كبيره جزئها لمشاكل صغيره واقعد البرامج اللي بتشوفوها هي عباره عن الاف من المشاكل الصغيره ففرق تسد هذا ديفايد اند كونكر فدائما دائما دائما تذكروا قاعده فرق تسد جزئ المشاكل من كبير لا صغير واشتغل على المشاكل الصغيره حلها اللي بعدها اللي بعدها اللي بعدها بطلع عندك اضخم البرامج في العالم تمام هيك بنكون خلصنا مقدمه بسيطه في الخوارزميات انا ان شاء الله رح اصير انزل لكم فيديوهات فيها مشاكل وحل انا ما راح اعطيكم هوم ورك اليوم لانه رح اصير انزللك مشكله مع حلها فانت بتحضر نص الفيديو شو هي المشكله بتروح بتفكر فيه بتحله بتكتب خطواته ترسم الفلو شارت تبعته بترجع بعدين على الفيديو وبتشوف الحل لك صح او خطا شكرا كثير لكم للمتابعه واذا استفدتوا من هذا المحتوى ما تنسوا تشتركوا بالقناه وتفعلوا زر الجرس عشان يوصلكم كل شيء جديد ولطفا وليس امرا ادعمونا بلايك وحاولوا شاركوا هذا الفيديو مع اصدقائكم عشان تعم الفائده للجميع واخيرا وليس اخرا ما تنسونا من دعواتكم وادعوا لوالدي بالرحمه شكرا كثير لكم نلقاكم في المره القادمه



