1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,700 >> ডেভিড জে MALAN: এর মধ্যে একটি প্রোগ্রাম লিখতে শুরু করা যাক আমরা মূল্যবোধের অদলবদল করার চেষ্টা যা 3 00:00:02,700 --> 00:00:04,970 দুটি ভেরিয়েবল, এক্স এবং ওয়াই. 4 00:00:04,970 --> 00:00:07,490 অগ্রিম, আমি অনেক কিছু লিখিত করেছি ইতিমধ্যে এই প্রোগ্রামের. 5 00:00:07,490 --> 00:00:11,130 প্রথমত, আমি একটি পরিবর্তনশীল, এক্স ডিক্লেয়ার, এবং, এটা মধ্যে 1 মূল্য সঞ্চয়. 6 00:00:11,130 --> 00:00:14,120 তারপর আমি পরিবর্তনশীল Y ঘোষণা এবং এটা মান, 2 সঞ্চয়. 7 00:00:14,120 --> 00:00:17,700 >> তারপর আমি প্রদর্শন printf, সাথে এগিয়ে ঐ দুটি ভেরিয়েবলের মান. 8 00:00:17,700 --> 00:00:21,090 এরপর আরো একটি printf সঙ্গে দাবি ঐ ভেরিয়েবল সোয়াপিং হবে. 9 00:00:21,090 --> 00:00:23,690 তারপর আমি swap 'নামক একটি ফাংশন কল. 10 00:00:23,690 --> 00:00:26,100 এবং তারপর আমি দাবি যে ভেরিয়েবল আনা হয়েছে. 11 00:00:26,100 --> 00:00:30,610 এবং তারপর আমি প্রিন্ট আউট যে কি আমি দাবি x এবং y এর নতুন মান. 12 00:00:30,610 --> 00:00:32,030 >> এখন এই ফাংশন swap 'কি? 13 00:00:32,030 --> 00:00:34,970 এটা সি সাথে কিছু না প্রকৃতপক্ষে, আমরা উপরে তাকান আমার 14 00:00:34,970 --> 00:00:38,850 ফাইল, আপনি আমি ঘোষণা করেছি বিজ্ঞপ্তি পাবেন এই ফাংশন swap 'র জন্য একটি প্রোটোটাইপ 15 00:00:38,850 --> 00:00:42,750 এটি দুটি ints লাগে যে উল্লেখ, ইচ্ছামত A এবং B বলা হয়, এবং এই 16 00:00:42,750 --> 00:00:44,300 ফাংশন কিছু ফেরত দেয় না. 17 00:00:44,300 --> 00:00:48,370 তাই সম্ভবতঃ, এটা এটা বলছেন কি বিনিময়সমূহ একটি এর এবং B এর মান. 18 00:00:48,370 --> 00:00:50,170 এর এখন swap 'বাস্তবায়ন করা. 19 00:00:50,170 --> 00:00:53,820 >> প্রথমত, আমি একটি অস্থায়ী ঘোষণা করা যাচ্ছে না পরিবর্তনশীল এবং এটি করার দায়িত্ব অর্পণ 20 00:00:53,820 --> 00:00:57,260 একটি মান, যদিও আমি ঠিক করতে পারে যত সহজে B সংরক্ষিত. 21 00:00:57,260 --> 00:01:00,925 আমি তখন মান পরিবর্তন করা যাচ্ছে না একটি বি এ যে সমান হবে. 22 00:01:00,925 --> 00:01:04,849 এবং তারপর সর্বশেষে, আমি পরিবর্তন করা যাচ্ছে না B এর মান কি একটা ছিল কিন্তু হয় হতে 23 00:01:04,849 --> 00:01:06,340 এখন temp মধ্যে. 24 00:01:06,340 --> 00:01:08,910 >> এখন আমি শুধু আমি সম্পন্ন করেছি দাবি কথাটি সঠিক. 25 00:01:08,910 --> 00:01:12,780 আমি একটি অস্থায়ী ভেরিয়েবল একটি সংরক্ষিত করেছি তারপর খ এর করা একটি এর মান পরিবর্তন করা, এবং 26 00:01:12,780 --> 00:01:15,580 কি এর ছিল বলে B এর মান পরিবর্তন. 27 00:01:15,580 --> 00:01:18,620 কিন্তু আমি কম্পাইল এবং এই রান যখন প্রোগ্রাম, আমি যে না চিন্তা করবেন 28 00:01:18,620 --> 00:01:20,140 কি আমি দেখতে যাচ্ছি. 29 00:01:20,140 --> 00:01:21,625 >> , কোন swap 'করুন. 30 00:01:21,625 --> 00:01:24,350 বিন্দু, কোন swap 'কাট. 31 00:01:24,350 --> 00:01:27,560 এবং দুর্ভাগ্যবশত, printf অনুযায়ী x এবং y এর মান, এমনকি 32 00:01:27,560 --> 00:01:31,560 আমরা সোয়াপিং করার দাবি পরে তাদের, এখনও 1 ও 2. 33 00:01:31,560 --> 00:01:32,630 >> এখন এটা কেন হয়? 34 00:01:32,630 --> 00:01:36,160 ওয়েল, দেখা যাচ্ছে যে মূল সালে, যখন আমরা কথা প্রসঙ্গে, এই ফাংশন swap 'কল 35 00:01:36,160 --> 00:01:39,960 আর্গুমেন্ট হিসাবে x এবং y, এটি আসলে এর x এবং y কপি করে 36 00:01:39,960 --> 00:01:41,310 swap 'র মধ্যে পাস হয়. 37 00:01:41,310 --> 00:01:45,430 যথা, তাদের মান 1 এবং 2 হয় A এবং B হিসাবে swap 'র মধ্যে পাস. 38 00:01:45,430 --> 00:01:48,590 এবং এটা আমরা শেষ পর্যন্ত যে A এবং B এর মূল মধ্যে সোয়াপিং. 39 00:01:48,590 --> 00:01:50,810 >> যে 2 1 পরিণত হয়, 1 2 পরিণত হয়. 40 00:01:50,810 --> 00:01:54,630 কিন্তু swap 'কোন রিটার্ন মান আছে, কারণ এবং কারণ এটি এক্স কপি পেয়েছি 41 00:01:54,630 --> 00:01:58,220 এবং y, এটা আচরণ করেছে এর এক্স এবং ওয়াই উপর কোনো প্রভাব. 42 00:01:58,220 --> 00:02:02,610 প্রকৃতপক্ষে, A এবং B, তাই কথা বলতে scoped হয়, x এবং y থাকা যেহেতু, বিনিময় করা 43 00:02:02,610 --> 00:02:03,990 প্রধান যাও scoped. 44 00:02:03,990 --> 00:02:05,070 >> সুতরাং আমরা একটি সমস্যা আছে. 45 00:02:05,070 --> 00:02:06,320 কিন্তু কিভাবে এটা ঠিক? 46 00:02:06,320 --> 00:02:08,312