ডগ লয়েড: আপনি দেখা করেছি পুনরাবৃত্তির ভিডিও,
পুরো প্রক্রিয়া থাকতে পারে অল্প ঐন্দ্রজালিক করলো.
এটা কিভাবে কাজ করে?
ফাংশন কিভাবে জানি না তারা অপেক্ষা এবং আরেকটি মান জন্য অপেক্ষা করতে হবে
একটি ভিন্ন ফাংশন থেকে ফিরে আমরা চাই ফলাফল পেতে যাতে কল?
>> ওয়েল, এই কাজ করে কারণ কারণ হল কল স্ট্যাক হিসাবে পরিচিত কিছু.
আপনি যদি একটি ফাংশন কল করার সময়, সিস্টেম মেমরি স্পেস সেট সরাইয়া
যে ফাংশন জন্য তার কাজ.
আর আমরা মেমরি এই অংশ যে কল প্রতিটি ফাংশন জন্য নাকচ করা হচ্ছে
একটি স্ট্যাক ফ্রেম বা ফাংশন ফ্রেম কল.
আর আপনি আশা করতে পারে, এই স্ট্যাকের ফ্রেম
মেমরি স্ট্যাকের পক্ষ থেকে বাস.
>> একাধিক ফাংশন এর সময় স্ট্যাক ফ্রেম একটি নির্দিষ্ট সময়ে মেমরি উপস্থিত হতে পারে.
প্রধান একটি ফাংশন সরানো কল, এবং সরানো অভিমুখ কল,
সব তিনটি ফাংশন ওপেন ফ্রেম আছে.
কিন্তু তারা সক্রিয় ফ্রেম না সব আছে.
এই ফ্রেম একটি স্ট্যাকের মধ্যে সাজানো হয়.
আর থেকে ফ্রেম অতি সম্প্রতি বলা
ফাংশন স্ট্যাকের উপর সর্বদা.
এবং যে সর্বদা সক্রিয় ফ্রেম হয়.
শুধুমাত্র সত্যিই কি কেউ নেই একটি সময়ে সক্রিয় যে ফাংশন.
এটা স্ট্যাকের উপর এক.
>> যখন একটি ফাংশন অন্য আহ্বান ফাংশন, এটা ধরণের বিরতি presses.
এটা ধরণের অপেক্ষা, হোল্ড উপর.
আর অন্য সময় স্ট্যাক ফ্রেম push করা হয় এটি উপরে স্ট্যাকের মধ্যে.
যে সক্রিয় ফ্রেম.
এবং ফ্রেম অবিলম্বে এটা অপেক্ষা করার প্রয়োজন নীচের
এটা আবার সক্রিয় ফ্রেম হয় না হওয়া পর্যন্ত এটা তার কাজ পুনরায় শুরু করতে পারেন আগে.
যখন একটি ফাংশন সম্পূর্ণ এবং এটি সম্পন্ন,
তার ফ্রেম স্ট্যাকের বন্ধ popped হয়.
পরিভাষা আছে.
এবং ফ্রেম অবিলম্বে এটা নিচে, আমি শুধু বলেছি,
নতুন সক্রিয় ফ্রেম.
>> এবং এটি অন্য ফাংশন কল যদি, এটা আবার বিরতি যাচ্ছে.
যে নতুন ফাংশন এর সময় স্ট্যাক ফ্রেম হবে স্ট্যাক উপরের দিকে push করা.
রিবুটের করব.
এটা বন্ধ ফিরে পপ পারে.
এবং অন্যান্য ফাংশন নীচের এটা আবার পুনরায় শুরু করতে পারেন.
>> সুতরাং আসুন খুঁজছেন, আবার এই মধ্য দিয়ে যেতে দেওয়া গৌণিক ফাংশনের ধারণা এ
আমরা সংজ্ঞায়িত যে পুনরাবৃত্তির ভিডিও দেখতে
ঠিক কিভাবে এই পিছনে জাদু রিকার্সিভ প্রক্রিয়া স্থান গ্রহণ করা হয়.
সুতরাং এই আমাদের সম্পূর্ণ ফাইল, ডান?
আমরা দুই সংজ্ঞায়িত প্রধান এবং আসলে ফাংশন.
আর আমরা আশা করতে পারে, কোন সি প্রোগ্রাম যাচ্ছে
প্রধান প্রথম লাইন থেকে খেলা আরম্ভ করার.
>> সুতরাং আমরা প্রধান জন্য একটি নতুন সময় স্ট্যাক ফ্রেম তৈরি.
এবং এটা চলমান শুরু করতে যাচ্ছে.
প্রধান কল printf.
এবং printf যাচ্ছে 5 গৌণিক প্রিন্ট আউট.
ওয়েল, এটা জানে না 5 এর কি গৌণিক, হয়
এবং তাই এই কল ইতিমধ্যে অন্য ফাংশন কল উপর নির্ভর করে.
সুতরাং প্রধান ডান সেখানে বিরতি যাচ্ছে.
আমি ছেড়ে যাচ্ছি তার , ঠিক আছে রঙ তীর
এটা হিসাবে একই রং ডানদিকে ফ্রেম গাদা,
প্রধান হিমায়িত করা যাচ্ছে ইঙ্গিত 5 গৌণিক বলা হয় এখানে যখন.
>> তাই 5 গৌণিক বলা হয়.
আর এটা খুব এ শুরু করতে যাচ্ছে গৌণিক ফাংশনের শুরুতে.
এটা প্রশ্ন আমি 1 সমান করছি জিজ্ঞেস?
1 সমান 5?
না, ভাল.
সুতরাং এটি নিচে যেতে যাচ্ছে অন্য অংশ, রিটার্ন এন বার
এন বিয়োগ 1 এর গৌণিক.
ওহ ঠিক আছে.
>> তাই এখন, 5 গৌণিক অন্য কল উপর নির্ভর
ক্ষণস্থায়ী, গৌণিক করতে প্যারামিটার হিসেবে 4.
আর তাই গৌণিক 5 ফ্রেম, লাল ফ্রেম, যে
ঠিক আছে হিমায়িত করা যাচ্ছে যে লাইনে আমি নির্দেশিত করেছি
কিন্তু শেষ করতে 4 গৌণিক জন্য অপেক্ষা এটা তারপর যাতে এটা কি কি প্রয়োজন
সক্রিয় ফ্রেম আবার হতে পারে.
>> সুতরাং এ 4 শুরু গৌণিক গৌণিক শুরুতে.
1 সমান 4?
না, তাই এটা একই জিনিস করতে যাচ্ছে.
এটা অন্য শাখা নামা যাচ্ছে.
এটা কোড যে লাইন পেতে যাচ্ছে.
ঠিক আছে, আমি চার বার ফিরে যাচ্ছি.
ওহ, 3-- গৌণিক তাই গৌণিক 4 3 সমাপ্তি গৌণিক উপর নির্ভর করে.
>> আর তাই এটি 3 গৌণিক কল করার প্রয়োজন.
এবং যে কাজ করত মধ্য দিয়ে যেতে হচ্ছে আবার একই প্রক্রিয়া.
এটা মাধ্যমে শুরু হয় এখানে পায়.
3 গৌণিক নির্ভর 1 এর গৌণিক উপর.
2 শুরু তাই গৌণিক, এখানে পায়.
এটা 1 গৌণিক উপর নির্ভর করে.
1 শুরু গৌণিক.
>> ঠিক আছে.
সুতরাং এখন, আমরা পেয়ে থাকেন কোথাও আকর্ষণীয়, ডান?
তাই এখন, 1 1 সমান.
আর তাই আমরা 1 ফিরে.
এই মুহুর্তে, আমরা ফিরে যাব.
ফাংশন এর কাজ.
এটা আচরণ আছে হচ্ছে ÑÑ এটা কি জন্য অন্য কিছুই,
এবং তাই এর সময় স্ট্যাক ফ্রেম জন্য 1 এর গৌণিক পপ বন্ধ.
ইহা শেষ.
এটা 1 ফিরে.
এবং এখন, 2 গৌণিক, যা ফ্রেম তা নীচের অবিলম্বে ছিল
স্ট্যাকের মধ্যে, সক্রিয় ফ্রেম.
>> আর এটা নিতে পারবেন ঠিক এটা যেখানে আপনি বাম বন্ধ.
এটি একটি গৌণিক জন্য অপেক্ষা করা হয়েছে 1 তার কাজ শেষ করতে.
এটা এখন সমাপ্ত হয়েছে.
আর তাই এখানে আমরা.
>> 1 এর গুণিতক 1 একটি মান ফিরে.
2 পারেন তাই গৌণিক বলতে 2 বার 1 আসতে.
তার কাজ এখন সম্পন্ন করা হয়.
এটা গৌণিক 2 ফিরে হচ্ছে 3, এটা জন্য অপেক্ষা করছে, যা.
3 গৌণিক এখন উপরের ফ্রেম হয়, স্ট্যাকের মধ্যে সক্রিয় ফ্রেম.
আর তাই এটি ঠিক আছে, ভাল, আমি যাচ্ছি, বলেছেন 6 যা 3 বার 2, ফিরে যাওয়ার জন্য.
আর আমি যে দিতে যাচ্ছি গৌণিক ফিরে মূল্য
4, আমার জন্য অপেক্ষা করা হয়েছে, যা.
আমি কাজ করছি.
3 গৌণিক স্ট্যাকের বন্ধ পপ আপ, এবং 4 গৌণিক এখন সক্রিয় ফ্রেম হয়.
>> 4 ঠিক আছে, আমি 4 বার ফিরে যাচ্ছি, বলেছেন ছয়, যা ছিল 3 গৌণিক,.
যে মান ছিল 3 গৌণিক ফিরে.
তাই 4 বার 6 24.
আর আমি পাস যাচ্ছি যে ফিরে গৌণিক করতে
5, আমার জন্য অপেক্ষা করা হয়েছে, যা.
5 এর গুণিতক এখন সক্রিয় ফ্রেম হয়.
এটা 5 বার ফিরে যাচ্ছে 4-- 5 বার 24, বা 120-- গৌণিক
এবং যে মূল্য দিতে ফিরে যা, প্রধান
একটি জন্য খুব অকাতরে অপেক্ষা করা স্ট্যাকের নীচে দীর্ঘ সময়.
>> এটা শুরু যেখানে এটি.
এটা এই আহ্বান জানান.
একাধিক ফ্রেম উপরের ভার গ্রহণ করেন.
এটা এখন ফিরে স্ট্যাকের উপর হয়.
এটি সক্রিয় ফ্রেম এর.
সুতরাং প্রধান মূল্য পেয়েছেন 120 ফিরে 5 গৌণিক থেকে.
এটা করার জন্য অপেক্ষা করা হয়েছে যে মান প্রিন্ট আউট.
এবং তারপর এটি করা হচ্ছে.
প্রধান কোডের আরো লাইনের কোন নেই.
সুতরাং প্রধান ফ্রেম পপ বন্ধ স্ট্যাক, এবং আমরা কাজ করছি.
>> পুনরাবৃত্তির কিভাবে কাজ করে এবং যে.
যে স্ট্যাক ফ্রেম কাজ কিভাবে.
ওপরের ফাংশন কল যে ঘটেছে পূর্বে
শুধু বিরাম হয় অপেক্ষা পরবর্তী কলের জন্য
তাই তারা সক্রিয় হয়ে যাবে শেষ ফ্রেমে এবং তারা যা করতে হবে তা শেষ.
>> আমি ডগ লয়েড আছি.
এটি CS50.