صدقني انت اسطوره ف الشرح ...وبصراحه انت السبب ف إني افهم ال recursion واجزاء كتير غيرها ...ربنا يباركلك
@AdelNasim4 жыл бұрын
يسعدك يا رب ، كل الشكر الك ولدعمك بالتوفيث صديقي
@Muhammed_Hashim2 жыл бұрын
حقيقي والله ما عارف اقول لحضرتك اي يهندسه بس بجد ربنا يجعل كل حرف قلته ف ميزان حسناتك ياااارب وتحيه لاهل الأردن ❤️❤️❤️❤️❤️❤️❤️
@abdulrahmanyasser38976 жыл бұрын
انا مستغرب ان شرحك حلو ونسبه المشاهده قليله ...ربنا يوفقك ويباركلك اخي الكريم
@AdelNasim6 жыл бұрын
السبب انو القناة جديدة .. ان شاء الله بتتحسن مع الوقت .. وشاكر دعمك ..
@rawanalharbi23783 жыл бұрын
@@AdelNasim انا اقترح تحط العنوان بالعربي والانجلش لان كثير يبحثون بالعربي
@alialzoupi78972 жыл бұрын
@@AdelNasim بتستاهل كل خير ان شاء الله تعالى
@alialzoupi78972 жыл бұрын
الله يقويك يارب والله افدت العالم وان شاء الله تعالى الله يجزيك ضعف تعبك اجر وحسنات يارب عن جد شرح حلو وبطريقة مجانية في نفس الوقت
@lenakalil35512 жыл бұрын
شرحك ما شاء الله يجنن ربي يسعدك و يوفقك
@snowwhite99603 жыл бұрын
شرح فوق الرائع، جزاك الله خيرا
@jory_98933 жыл бұрын
عساه بميزان حسناتك الله يوفقك كلش افتهم عليك انت افظل من استاذنه بالجامعة 📚☂️
@ObaedaAlkateb Жыл бұрын
بارك الله فيك كل الشكر بس لو انك متبع خرج الكودين لي خليت الاستدعاء فيهن قبل العمليات المثلث الي بالعكس واخر كود
@mohdAbuAl-yazeed903 жыл бұрын
طريقة أخرى لعكس المثلث @Adel Nasim #include using namespace std; void draw (int n) { if(n>5) return; else for(int i=1;i
@abdallahjaber87155 жыл бұрын
يزززززم رائع رااااائع انت رائع !
@AdelNasim5 жыл бұрын
انت الأروع .. كل التوفيق الك ..
@salamalikom66047 жыл бұрын
الله يرحم والديك يا فنان
@AdelNasim7 жыл бұрын
يسعد قلبك
@sohilaezz14426 жыл бұрын
شكرا جدا استفدت كتييييرجزاك الله خيرا
@AdelNasim6 жыл бұрын
العفو .. واياكم ان شاء الله ..
@omarhelal37725 жыл бұрын
شرحك حلو جدا استمر وجزاك الله كل خير
@AdelNasim5 жыл бұрын
مستمر بدعمك .. كل التوفيق الك صديقي..
@Maestro-vd9mn Жыл бұрын
يعطيك العافية على هذا الشرح الكافي و الوافي 🙏
@tt4m Жыл бұрын
نفس طريقة حساب مجموع محصور عددين (4"+5+6+"7)بطريقة معكوسة فقط❤️💛 #include Int sum (int x, int y) { If (x==y) Return x; else Return x +sum(y, x+1); } Int main () { Cin >>x; Cin >>y; Cout
@shathashawahneh70176 жыл бұрын
شكرا ,كثير استفدت
@AdelNasim6 жыл бұрын
العفو .. وبالتوفيق الك ..
@yosefhalem32223 жыл бұрын
جميل جدا وشرح كويس بس يريت بيكون افضل قبل الكود الي بتحله مثلا تكتب السؤال قبل الكود بتاعه بحيث انه لو حليت الكود وبعد فترة حبيت ارجع للكود اذاكره او افتكر الكود يكون فيه سؤال ليه اتذكر منه المطلوب جوا الكود لانه اوقات ابص للكود الاقيه سهل بس مش عارف ايه المطلوب لاني مش عارف السؤال بيكون ايه
@ahmedelmelegy54905 жыл бұрын
بعد اذنك هو حضرتك لما طلعت f(n-1) ; فوق ازاى حصل الفرق الكبير ده (اللي رسم النجوم ) انا لما تتبعت البرنامج زي اما حضرتك كنت بتقول لقيت ان مش ده اللي هيحصل ممكن حضرتك توضح ازاي حصل كده ؟؟
@AdelNasim5 жыл бұрын
بوافقك الرآي .. ممكن انت الوحيد الي انتبه للموضوع .. هو فعليا لما وصل لل Base case المروض ابلش اعمل تتبع .. انت خليك دايما بلش التتبع بعد وصولك لل Base case ومن ثم اطلع من عند اقل قيمة والي هي ال Base case الى اعلى قيمة وحتبين معك الامور افضل ان شاء الله ..
@ahmedalmohamed28145 жыл бұрын
نفس السؤال ياريت توضح اكتر لاني حاولت اتتبعه لوحدي ما عرفت انا عم فكر كل ما اوصل للاستدعاء الذاتي رح ضل استدعي ووصل لارجاع الصفر واخرج من الفنكشن
@ahmedalmohamed28145 жыл бұрын
اقصد سؤال الاخ احمد عن المثلث المقلوب
@AdelNasim5 жыл бұрын
بالنسبة الى حالة المثلث العادي .. وقبل ما تكمل قراءة كل اشي بكتبو اعملو Copy paste داخل البرمجية عشان الكلام حيكون فايت ببعضو اذا قرأتو من دون ما تنسخو على البرمجية void f(int n)//n=5 { if (n < 0) return; else f(n - 1); //f(5-1)=>4 //f(4-1)=>3 //f(3-1)=>2 //f(2-1)=>1 //f(1-1)=>0 //f(0-1)=>-1رح يتوقف لانو الناتح رح يكون اقل من صفر وهاي القيمة الي بعمل عندها ارجاع زي منتا شايف فوق /*لاحظ ما وصل جملة الطباعة إلا بعد ما وصل للـ base case رح يسأل هل الصفر اقل من صفر ؟ لا معناتو ما رح يطبع اشي رح يطبع سطر جديد .. الي بعد جملة الدوران ولاحظ انا بتحدث عن الامور الي حتحصل بجملة الدوران هذا بالنسبة للـ //f(1-1)=>0 لانو احنا اتفقنا بالريكيرسف لح نطلع من تحت لفوق رح يجيب الـ //f(2-1)=>1 ويطبع نجمة بعدها //f(3-1)=>2 ويطبع نجمتين ويطلع ليجيب الي بعدها وهكذا */ for (size_t i = 0; i < n; i++) { cout 1 //f(1-1)=>0 //f(0-1)=>-1 } /* لحظ هون احنا طبعنا قبل ما ننزل على سطر الاستدعاء الذاتي على عكس المثال السابق فبكل استدعاء رح يطبع بالبداية بعد هيك رح يتم الاستدعاء الذاتي هاي حالات خاصة من الاستدعاء الذاتي وتعتبر من اسهل الحالات كونو مافي داعي تشتغلها من التحت لفوق .. لكن السؤال متى اشتغل من تحت لفوق ومتى اشتغل بتتبع عادي ؟! الجواب : متى انا بوصل للاستدعاء الذاتي بحدد الامور مثلا */ void f(int n) { if (n < 0) return; else cout
@ahmedalmohamed28145 жыл бұрын
قبل ما اقرا الي كاتبه الله يجزيك الخير ويرزقك بركه في الوقت والعمر ويحققلك كل الي تتمناه والله انا مو عارف كيف اشكرك........ما بحسن غير قللك اجرك على الله
@anismohamed24384 жыл бұрын
شكرا للشرح الرائع
@AdelNasim4 жыл бұрын
يسعدك، كل التوفيق الك
@ahmedattyah64105 жыл бұрын
استمر رائع جدا
@AdelNasim5 жыл бұрын
يسعدك يا رب .. بالتوفيق الك
@NourhanAshraf-bp8xg4 жыл бұрын
هو في جمع الارقام في فترة الكود اللي عمله فارض ان اليوزر هيدخل الارقام على حسب ان الرقم الاول الاصغر والثاني الأكبر
@AdelNasim4 жыл бұрын
بالزبط
@alanesandebeall19114 жыл бұрын
السلام عليكم ممكن تشرح حل هذا السؤال كامل مع ادخال write c++ program to find the power of (n,m) number by using: (iteration method and recursion method)باستخدامrecursion?
@Ibn_Ali363 жыл бұрын
جزاك الله خيرا
@essaalobisat25085 жыл бұрын
بمثال الجمع بين عددين مدخلين... لو فرضنا انو الادخال من الuser ودخل قيمة x اكبر من قيمة y كيف رح يكون الحل؟
int pu(int n, int j) { if (n - j == 1 || j - n == 1 || j == n) return j+n; else if (n > j) return n + pu(n - 1, j); else if(n
@جيمرمصري-ق5ق5 жыл бұрын
13:03 انا مش فاهم هي ليه بتطبه و انا باعت )f-1) قبل ال for loop
@Ahmed188284 жыл бұрын
انت قصدك ليش عند ما ينتهي من العوديه ما يخرج من الداله يعني عند n=0 لازم تخلص الداله وما يطبع شي ....اذا كان هيك قصدك فهو هون بس يوصل لعند return بدها تبلش تشتغل الداله....من اجل كل القيم يعني عند n=1 بدو يطبع نجمهn=2 نجمتين......الخ بدك تعرف انو n=0 عند هالقيمه فقط مارح ينزل تحت الاستدعاء اما من اجل باقي القيم رح يشتغل التابع من اجل كل قيمه .....يعني رح يشتغل من اجل n=1 هون شرط التوقف مو موجود لاجل هي القيمه ومن اجل n=2 ....الخ بتمنى تكون فهمت شو قصدي
@angelal53663 жыл бұрын
The First example is (Recursive algorithm) اول مثال هو مثال عن Recursive algorithm ؟؟
@غيثالحريري-ز8ل4 жыл бұрын
السلام عليكم ... أخي الغالي شروحك جداَ ممتازة وانا متابعك من بداية الكورس وكل دروسك فهمتها واستوعبتها بهنيك على المحتوى الي بتقدمه ♥ بسس للأسف الشديد المثال حق المثلث المعكوس 12:52 ما قدرت أفهمه 💔 لي اكثر من ساعتين احاول افهمه وقريت الكومنتس وبرضه ما قدرت افهمه. المفروض في كل مرة الدالة بتستدعي نفسها , قيمه ال إن بتنقص .... طيب قيمة ال إن بتنقص ولما بتوصل ل سالب واحد المفروض يتحقق ال(بيز كيس) ويتنفذ الامر ريتيرن انا بمفهومي ان الريترن معناه يخرج من الفانكشن مش عارف اذا مفهومي صح او غلط بس ياريت تساعدنا وتوضح لي الشغله
@AdelNasim4 жыл бұрын
وعليكم السلام ورحمة الله اهلا اخي وكل الشكر الك ولدعمك بعتذر على التأخير بالرد اذا المشكلة بعدها قائمة ببسطها اكثر الك
@غيثالحريري-ز8ل4 жыл бұрын
@@AdelNasim العفو تستاهل كل خير انت ❤, وشكراً لك على ردك والمشكلة نعم لسا قائمة ,وحتى هذه اليوم وانا احاول أستوعب وأفهم المثال 😅 ما انتقلت للدروس الثانيه لحد ما استوعب المثال الي كتبت لك عليه منتظر ردك أخي الغالي
@AdelNasim4 жыл бұрын
الي صار كالآتي في هذا المثال بالذات لو تلاحظ مافي عنا return وبما انو مافي return رح يختلف مفهوم التجميع من الاسفل الى الاعلي حسب موقع استدعاء الـ function خلينا نتبعو مع بعض، اول اشي استدعينا الـ function وبعثنالو القيمة 5 فات على الفنكشن وجد شرط if (n < 0) return واحنا متفقين انو بدل الـ n رح يتعوض بالرقم 5 الي بعثناه للفنكشن هل ال5 اقل من 0 ؟ لا معناتو ما رح ينفذ الـ return رح يروح على الـ else بالـ else رح يوجد for تلف من الـ 0 لغاية اقل من n طيب كم قيمة الـ n زي ما بعثناها رح تكون 5 معناتو رح يطبع 5 نجوم وبعد ما يطبع ويخرج من الـ for رح ينزل سطر جديد بمعنى endl لاحظ لحد الآن احنا ما مر علينا واحنا بنتبع اشي اسمو استدعاء من الاسفل الى الاعلى كونو نفذنا اللوب ولحد الآن ما استدعينا الفنكشن لما تنزل تحت اللوب رح توجد استدعاء للفنكشن كالآتي f(n-1) طيب كم قيمة الـ n قيمتها 5 ولما نحكي n - 1 معناتو رح نستدعي الفنكشن بالقيمة 5 - 1 = 4 زي كأنو بنحكي f(4) رح يكرر نفس العملية هل الـ n < 0 الاربعة مش اصغر من الصفر معناتو ما رح يعمل return رح يفوت على الـ else الي فيها لوب من 0 لغاية اقل من 4 ويطبع فيها 4 نجوم هل في استدعاء من الاسفل الى الاعلى؟ لا مافي ورح يكرر نفس الخطوات لباقي الارقام لبين ما يتحقق شرط الـ base case الفكرة من المثال انو مش دائما بتم الاستدعاء من الاسفل الى الاعلى وخاصة لما يكون الفنكشن ما برجع قيمة بمعنى الـ return value type = void بتمنى يكون الفرق وصلك اتوقع الي صار معك انك بتستنى اللحظة الي يصير فيها الاستدعاء من الاسفل الى الاعلى ةهذا الشيء لم يحصل في هذا المثال، وكل التوفيق الك
@غيثالحريري-ز8ل4 жыл бұрын
@@AdelNasim قبل كل شئ بجد شكراً لك على تعبك معنا ومحاولتك لتوصيل المعلومة لنا... بجد ما تقصر وأجرك عند الله عظيم ان شاءالله ..... أستاذ عادل انا الي ما فهمته المثال الثاني , المثال الي سيتم استدعاء الفانكشن قبل اللوب المثال الي بيكون الاوت بوت تبعه : يبتدأ ب نجمه واحدة وينتهي ب خمس نجوم
@AdelNasim4 жыл бұрын
@@غيثالحريري-ز8ل يسعدك صديقي اجمعين يارب, تمام، اول اشي انت عارف بعثنا للفنكشن القيمة 5 رح يسأل كالمعتاد هل الـ 5 اصغر من الـ0 ؟ لأ معناتو ما رح يعمل Return رح ينزل على السطر الي بعدو رح يوجد استدعاء للفنكشن كالآتي f(n - 1) طيب كم قيمة الـ n قيمتها 5 معناتو رح يستدعى الفنكشن وهو مبعوثلو 4 f(4) لاحظ هل انزل انفذ الـ for loop? لأ ما بنفذها لانو عندي استدعاء الفنكشن بالقيمة 4 ، الفنكشن تم استدعائها قبل الـ for معناتو رح التزم بسيناريو الاستددعاء، رح يتم استدعاء الفنكشن الجديد بالقيمة 4 ورح يسأل هل الـ4 اقل من صفر لأ معناتو مارح يعمل return رح ينزل للسطر الي بعدو ويستدعي الفنكشن لكن مع القيمة كم؟ مع القيمة 3 كونو انت عارف بنستدعي الفنكشن كالآتي f(n - 1) معناتو رح نستدعي الفنكشن ونبعتلو القيمة 3 f(3) هل رح تنفذ الـ for loop? اكيد لأ لسى كونو ما تحقق الـ Base case بسأل هل الـ3 اصغر من صفر ؟ لأ رح يستدعي الفنكشن كمان مرة لكن مع القيمة 2 f(2) هل الـ2 اصغر من صفر؟ لأ معناتو رح يستدعي الفنكشن كمان مرة مع القيمة 1 f(1) هل الواحد اقل من الصفر؟ لا معناتو رح يستدعي كمان مرة مع القيمة صفر f(0) هل الصفر اقل من صفر؟ لا معناتو رح يسدعي كمان مرة مع القيمة سالب واحد f(-1) هل الـ -1 اقل من الـ 0 اه اقل معناتو اعمل return في هذه اللحظة بنبلش نجمع من الاسفل للأعلى بمعني بنستدعي الـ f(-1) ومن ثم الـ f(0) f(1) f(2) f(3) f(4) f(5) وبس نفوت على كل استدعاء منهم, بنفّذ الـ for مع الـ new line فقط في هاي الحالة تم الاعتماد على الاستدعاء من الاسفل للأعلى مثل فنكشن الـ fact, fib .... وكل التوفيق صديقي
@narimanmerdas21607 жыл бұрын
اخي انا أريد أن أسألك بخصوص الكلاس(التومبلات و friend fonction)
@AdelNasim7 жыл бұрын
شو السؤال؟
@djamelbgd301 Жыл бұрын
أستاذ ما فهمت شو راه يصير لل كومبايلور بعد ما تنقل الفنكشن بعد cout
@yagmur46795 жыл бұрын
بالدقيقة 12:51 ليش هيك صار ممكن تشرح الآلية ؟
@AdelNasim5 жыл бұрын
رح اقتبسلك رد علقتو على احد الاخوان : بالنسبة الى حالة المثلث العادي .. وقبل ما تكمل قراءة كل اشي بكتبو اعملو Copy paste داخل البرمجية عشان الكلام حيكون فايت ببعضو اذا قرأتو من دون ما تنسخو على البرمجية void f(int n)//n=5 { if (n < 0) return; else f(n - 1); //f(5-1)=>4 //f(4-1)=>3 //f(3-1)=>2 //f(2-1)=>1 //f(1-1)=>0 //f(0-1)=>-1رح يتوقف لانو الناتح رح يكون اقل من صفر وهاي القيمة الي بعمل عندها ارجاع زي منتا شايف فوق /*لاحظ ما وصل جملة الطباعة إلا بعد ما وصل للـ base case رح يسأل هل الصفر اقل من صفر ؟ لا معناتو ما رح يطبع اشي رح يطبع سطر جديد .. الي بعد جملة الدوران ولاحظ انا بتحدث عن الامور الي حتحصل بجملة الدوران هذا بالنسبة للـ //f(1-1)=>0 لانو احنا اتفقنا بالريكيرسف لح نطلع من تحت لفوق رح يجيب الـ //f(2-1)=>1 ويطبع نجمة بعدها //f(3-1)=>2 ويطبع نجمتين ويطلع ليجيب الي بعدها وهكذا */ for (size_t i = 0; i < n; i++) { cout 1 //f(1-1)=>0 //f(0-1)=>-1 } /* لحظ هون احنا طبعنا قبل ما ننزل على سطر الاستدعاء الذاتي على عكس المثال السابق فبكل استدعاء رح يطبع بالبداية بعد هيك رح يتم الاستدعاء الذاتي هاي حالات خاصة من الاستدعاء الذاتي وتعتبر من اسهل الحالات كونو مافي داعي تشتغلها من التحت لفوق .. لكن السؤال متى اشتغل من تحت لفوق ومتى اشتغل بتتبع عادي ؟! الجواب : متى انا بوصل للاستدعاء الذاتي بحدد الامور مثلا */ void f(int n) { if (n < 0) return; else cout
@sniperswws4 жыл бұрын
ياخى الله يحفظك ويطول عمرك يااااااخ تعبتة شديد أنا
@sami.f47043 жыл бұрын
@@AdelNasim g
@yousefyasin44572 жыл бұрын
ask plz!...when i give value for this function it appears descending ,,,,why? void f(int n) { if(n
@abdulrahmanyasser38976 жыл бұрын
ارجو رفع الصوت قليلا في الفيديوهات القادمه ليك اخي الكريم
@AdelNasim6 жыл бұрын
شكرا على الملاحظة .. ان شاء الله ..
@asalahabdullah85593 жыл бұрын
شكرًا لك
@mahmoudsh973 жыл бұрын
ممتاز ما شاء الله غليك .. في شي بس ما فهمتو لما نحط الاستدعاء قبل الcout ونعكس الشكل .. ما عرفت اتتبعها
@Nour-ds3ib3 жыл бұрын
هو ازاي لما بعمل استدعاء قبل الcout بيكرر اللوبة مش المفروض يطبع ستار مرة واحدة عشان مِش هيدخل اللوبة غير لما n= 1 وبردو لما عكسنا المثال اللي بعده هيطيع اخر رقم بس
@omar.g202 Жыл бұрын
ياريت لو عرفت تفسير تقوله
@جيمرمصري-ق5ق5 жыл бұрын
5:48 اليس من مفترض ان يعيد 2 لان مجموع 1+1
@AdelNasim5 жыл бұрын
هون انا بفترض اذا تشابهو الارقام سواءا كانو 1..1 5..5 100..100 يرجع نفس العدد .. لكن انت ممكن تفكر غير هيك وتجمعهم .. المثال فكرة,مش للحصر ..
@جيمرمصري-ق5ق5 жыл бұрын
@@AdelNasim tmm
@mohammedbalousha94674 жыл бұрын
يعطيك العافيية
@rayhanalswadi22824 жыл бұрын
مشكوور
@a.egamer56674 жыл бұрын
في طريقة اسهل لاول مثال اكتب cout
@AdelNasim4 жыл бұрын
اكيد اسهل، لكن الفكرة انك تفهم الفكرة من الـ Recursion بالتوفيق الك
@جيمرمصري-ق5ق5 жыл бұрын
و ان لو استخدمت function من نوع char مش كده لازم اعمل return type و في الحالة دي هكون برجع حرف ?'كيب ازاي بقي انا لما باجي لطبع كلمة معينة باستخدم معاها void
@AdelNasim5 жыл бұрын
مش شرط الدالة ترجع قيمة معينة .. يمكن استدعاء متكرر فقط .. راجع الردود على تعليقات الآخ Ahmed Mostafa
@جيمرمصري-ق5ق5 жыл бұрын
@@AdelNasim tmm k
@جيمرمصري-ق5ق5 жыл бұрын
11:13 بس مش مفروض rec تعويض عن for loop
@مريمويحيى-ب2ي7 жыл бұрын
👍👍👍👍👍👍👍👍👍👍👍👍👍👍 الله يعطيك العافيه
@martinnady54223 жыл бұрын
فى اخر مثال ازى اقدر اطبع الرقم لو اول digit 0 زى الرقم دا >>>>012457 وفى نفس الوقت بالترتيب مش معكوسين
@mostafagaz6731 Жыл бұрын
فى الحالة دى عشان تطبعى رقم صفر وهوا على الشمال .. يبقى الأحسن تخزنى كل الأرقام فى array عشان يفضل الرقم صفر موجود
@narimanmerdas21607 жыл бұрын
هل يمكنني أن أطرح سؤال؟شكرا جزيلا على الشرح بارك الله فيك
@AdelNasim7 жыл бұрын
العفو .. اكيد ..
@ahmedsabergalal55485 жыл бұрын
هوا مش معني يعني قسمنا علي 10 17:10
@جيمرمصري-ق5ق5 жыл бұрын
هو ازاى sum شغالة من غير ماكتب logic فيها
@wrq8z2 жыл бұрын
لا ك اسم متغير sum
@muhmmadkrem7515 Жыл бұрын
طريقة حساب مجموع محصو عددين بطريقة معكوسة وسهلة( 5+6+7+8)😀❤️💜😄 int sum(int x,int y) { int mx,mn; mx=x; mn=y; if(mx