مقدمه

وقتی برای اولین بار شروع به برنامه نویسی کردم و یادگرفتم تابع چی هست و چه جوری میشه اون رو فراخوانی کرد، با یه مسأله ای مواجه شدم به نام برجهای هانوی که به نظرم خیلی جالب اومد! ساعتها وقت گذاشتم و بالاخره برنامه اون رو نوشتم و اجرا کردم. بعدها وقتی تب المپیاد کامپیوتر تازه تو ایران راه افتاده بود، یه جزوه ای به دستم رسید که قسمتی داشت به نام الگوریتمهای بازگشتی. واسه اولین بار بود که فهمیدم یه تابع، میتونه خودش رو صدا بزنه! و وقتی راه حل مسأله برجهای هانوی رو به روش بازگشتی دیدم تعجب کردم. با خودم گفتم مگه میشه راه حل به این کوتاهی داشته باشه؟ حتما غلطه! و با اطمینان نشستم به ردیابی و تست و اجرای الگوریتم... ولی درست بودپیش خودم گفتم کسی که این راه حل کوتاه و بازگشتی رو نوشته حتما نابغه هست! ولی...

بعدها فهمیدم که باز هم اشتباه کردم... اگه درست بازگشتی رو بفهمیم و به کار ببریم، حل مسایلی مانند هانوی به روش بازگشتی، بسیار راحت تر از حل و فهم اونها به روش غیربازگشتیه! از اونجا که هیچ کتابی رو ندیدم که نکات مهم بازگشتی رو مختصر و مفید بیان کنه، خودم دست به کار شدم و این درس رو ساختم تا نه فقط دانشجوهایی که سر کلاس دروس الگوریتم یا برنامه نویسی هستند، بلکه همه برنامه نویسهایی که با بازگشتی مشکل دارن، یاد بگیرن که تفکر بازگشتی میتونه واقعا ساده و شیرین باشه. جوری که حتی بعضی وقتها تفکر غیربازگشتی، حداقل برای بعضی مسائل، سخت تره! پس...

اگه شما هم فکر میکنید فهمیدن و به خصوص نوشتن توابع بازگشتی نبوغ خاصی میخواد و کار هر کسی نیست و... این درس رو از دست ندیدیک بار برای همیشه مشکلتون رو با دسته بزرگی از الگوریتمها حل کنید: الگوریتمها و توابع بازگشتی!

سرفصل این درس

  • 01
    فصل اول - مقدمه
    Show Content
  • 02
    فصل دوم - تعاریف و مفاهیم پایه
    Show Content
  • 03
    فصل سوم - بررسی دو تابع بازگشتی ساده
    Show Content
    • توابع بازگشتی و فاکتوریل
    • کد جاوای برنامه محاسبه فاکتوریل به روش غیربازگشتی
    • کد جاوای برنامه محاسبه فاکتوریل به روش بازگشتی
    • توابع بازگشتی و فیبوناچی
    • کد جاوای برنامه محاسبه سری فیبوناچی به روش غیربازگشتی
    • کد جاوای برنامه محاسبه سری فیبوناچی به روش بازگشتی
  • 04
    فصل چهارم - تکنیکهای طراحی و پیاده سازی توابع بازگشتی
    Show Content
    • طراحی و پیاده سازی تابع بازگشتی هانوی
    • ردیابی تابع بازگشتی هانوی
    • کد جاوای برنامه برجهای هانوی به روش بازگشتی
  • 05
    فصل پنجم - حالا دیگر بازگشتی بنویسید
    Show Content
    • چاپ کردن یک رشته به شکل معکوس به روش بازگشتی
    • کد جاوای برنامه چاپ یک رشته به شکل معکوس به روش بازگشتی
  • 06
    فصل ششم - ضمیمه ها و فایلهای این درس
    Show Content
    • پروژه های استفاده شده در این درس
    • اسلایدهای استفاده شده در این درس
    • فایلهای صوتی ویدیوهای این درس

این درس شامل چه چیزهایی است و چه مقدار زمان می برد؟

  • 8 Videos

  • 9 Downloads

  • 01:03:54 Hours

با الگوریتمهای بازگشتی آشنا شوید

جزء اولین کسانی باشید که از آموزشهای آینده ما باخبر می شوید و

همین حالا ثبت نام کنید

درباره مدرس این درس

رضا خجسته مدرک کارشناسی خود را با رتبه دوم و مدرک کارشناسی ارشد خود را با رتبه اول در رشته مهندسی نرم افزار از دانشکده مهندسی کامپیوتر و فناوری اطلاعات - دانشگاه صنعتی امیرکبیر (پلی تکنیک تهران) دریافت کرد. وی از اوایل دهه هفتاد شمسی به عنوان مهندس کامپیوتر، برنامه نویس و استاد دروس کامپیوتر مشغول به کار است، هرچند که علاقه بیش از حدش به تدریس، بیشتر او را در محیطهای دانشگاه و کالج نگاه داشته است 

او پس از مدت زیادی تدریس در دانشگاه ها و کالج های داخل کشور، در حال حاضر به تدریس در کالج سنکا (بزرگترین کالج کانادا واقع در تورنتو) مشغول است. مهمترین دغدغه فکری - حرفه ای او همواره این بوده که بتواند مفاهیم و مسائل بعضاً پیچیده در علوم، مهندسی و برنامه نویسی کامپیوتر را، با استفاده از مفاهیم و مثالهای رایج در زندگی روزمره، به روشهایی ساده تر و قابل فهم تر به دانشجویان منتقل کند  

وی در ویرایش و تولید چندین مقاله، کتاب، و سرفصل دروس کامپیوتری در دانشگاهها و کالجهای داخل و خارج از ایران مشارکت داشته و سابقه شرکت، سخنرانی، داوری، هدایت و سرپرستی تیمهای مختلف دانشجویی در کنفرانسها، همایشها، کارگاهها و مسابقات علمی متعدد کامپیوتری داخلی و بین المللی را داراست

  • دیگران چه می گویند؟

    من رضا را اولین بار در سال ۱۹۹۸، وقتی که یک دانشجوی سال اولی مهندسی نرم افزار در دانشگاه صنعتی امیرکبیر تهران بودم، ملاقات کردم. او یکی از بهترین دانشجوهای سال بالایی در دانشکده محسوب میشد و هم در "طراحی و پیاده سازی الگوریتمها" و هم در "هوش مصنوعی" بسیار فعال بود. در اثر تعاملاتی که با رضا در کلاس "برنامه نویسی سی پلاس پلاس" او داشتم، و پس از آنکه در جریان فعالیتهای وی در مسابقات روبوکاپ قرار گرفتم، بسیار به ادامه هوش مصنوعی علاقه مند شدم. و چنین شد که من، هوش مصنوعی را به عنوان زمینه اصلی تحقیقاتی خود در تحصیلات تکمیلی انتخاب کردم، و همینطور حرفه خود را، شغلی با هسته مرکزی هوش مصنوعی، برگزیدم. من رضا را یکی از تأثیرگذارترین اساتید خود میدانم و فراگیری و استفاده از سرویسهای آموزشی او را به شدت توصیه میکنم

    رضا رستگار

    دکترای ریاضیات کاربردی از دانشگاه ایالتی آیووای آمریکا، و مدیر تحلیل های داده ای شرکت نفتی اکسیدنتال در هیوستون آمریکا

    رضا رستگار
  • دیگران چه می گویند؟

    رضا خجسته، به لحاظ مهارتهای تدریس بسیار عالی اش، در بین اکثر دانشجوهای کارشناسی دانشکده مهندسی کامپیوتر دانشگاه صنعتی امیرکبیر تهران، بسیار شناخته شده بود. او میتوانست به خوبی هرچه تمام تر، مفاهیم، مدلها و الگوهای پیچیده برنامه نویسی را، به روشی قابل فهم، و به جهت ایجاد علاقه و اشتیاق در بین دانشجویان، ارائه دهد. مورد مهمتر این بود که او بسیار صبور در تدریس، و همچنین، همواره آماده برای پاسخ دادن به سؤالات بود

    امیر حداد

    دکترای علوم کامپیوتر از دانشگاه ملی استرالیا و متخصص در امور داده های کلان

    امیر حداد
  • دیگران چه می گویند؟

    جناب آقای رضا خجسته، اولین استاد بنده بعد از ورود به دانشگاه صنعتی امیرکبیر در مقطع کارشناسی، و در درس مبانی کامپیوتر بوده اند. ایشان از دید بنده و تعداد کثیری از فارغ التحصیلان دانشکده کامپیوتر دانشگاه امیرکبیر، که شاگردی در یکی از دروس ایشان را تجربه کرده اند، همواره به عنوان فردی با استعداد، مجرب در زمینه علوم کامپیوتر، مشتاق در به اشتراک گذاشتن علم و تجربه خود برای دیگران، و مجرب در زمینه تدریس شناخته شده اند. راه اندازی این وبسایت و ادامه تلاشهای ایشان برای آموزش دیگران بسیار تحسین بر انگیز است. من استفاده از مطالب آموزشی تهیه شده توسط آقای خجسته را به تمامی علاقه مندان رشته علوم کامپیوتر توصیه میکنم

    حامد جانزاده

    مهندس کامپیوتر، و مدیر فنی دپارتمان فروش بین الملل شرکت آمازون، آستین تگزاس، آمریکا

    حامد جانزاده

با الگوریتمهای بازگشتی آشنا شوید

جزء اولین کسانی باشید که از آموزشهای آینده ما باخبر می شوید و

همین حالا ثبت نام کنید

نظرات شما

  • رضا ادیب

    “من تا به حال آموزشهای زیادی در این مورد دیده بودم و آموزش شما به نظرم، بهترین آموزش در مورد توابع بازگشتی هست”

    “من تا به حال آموزشهای زیادی در این مورد دیده بودم و آموزش شما به نظرم، بهترین آموزش در مورد توابع بازگشتی هست”

    Read Less
  • Nasser Rahmati

    “عالی و مفید”

    “عالی و مفید”

    Read Less