1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 ছিনিয়ে বাউডেন: হাই, আমি, রব বাউডেন আছি এবং এর quiz0 সম্পর্কে কথা বলুন. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> সুতরাং, প্রথম প্রশ্ন. 5 00:00:14,545 --> 00:00:17,750 এই প্রশ্নের কোথায় আপনি নম্বর কোড করার প্রয়োজন 6 00:00:17,750 --> 00:00:21,270 বাইনারি বাল্ব মধ্যে 127. 7 00:00:21,270 --> 00:00:23,550 আপনি চান, তাহলে আপনি পারে নিয়মিত রূপান্তর করতে 8 00:00:23,550 --> 00:00:25,950 দশমিক বাইনারি থেকে যাও, bi-- বা থেকে. 9 00:00:25,950 --> 00:00:28,300 কিন্তু যে সম্ভবত যাচ্ছে অনেক সময় নিতে. 10 00:00:28,300 --> 00:00:31,750 আমি আপনাকে যে জিনিসটা পারে, মানে, ঠিক আছে, 1, সেখানে, 2 সেখানে হয় হয় 11 00:00:31,750 --> 00:00:33,650 4 সেখানে, 8 সেখানে হয় হয়. 12 00:00:33,650 --> 00:00:39,280 সুষ্ঠু ভাবে, 127 128 বিয়োগ এক. 13 00:00:39,280 --> 00:00:42,013 যে leftmost আলোর বাল্ব 128-বিট. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 সুতরাং 127 শুধু সব সত্যিই হয় অন্যান্য লাইট বাল্ব এর, 16 00:00:47,860 --> 00:00:51,420 যে leftmost যেহেতু আলোর বাল্ব বিয়োগ 1. 17 00:00:51,420 --> 00:00:52,800 যে যে প্রশ্নের জন্য এটি. 18 00:00:52,800 --> 00:00:54,060 >> প্রশ্ন এক. 19 00:00:54,060 --> 00:00:56,710 3 বিট সঙ্গে তাই আপনি যা করতে পারেন 8 স্বতন্ত্র মান প্রতিনিধিত্ব. 20 00:00:56,710 --> 00:01:01,000 কেন, তারপর, বৃহত্তম অ ঋণাত্মক 7 আপনি উপস্থাপন করতে পারেন দশমিক পূর্ণসংখ্যা? 21 00:01:01,000 --> 00:01:04,050 ওয়েল, যদি আমরা শুধুমাত্র পারেন 8 স্বতন্ত্র মান প্রতিনিধিত্ব, 22 00:01:04,050 --> 00:01:07,430 তারপর কি আমরা হতে যাচ্ছেন প্রতিনিধিত্বমূলক 7 মাধ্যমে 0. 23 00:01:07,430 --> 00:01:08,745 0 মান এক আপ লাগে. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> প্রশ্ন দুটি. 26 00:01:11,190 --> 00:01:14,610 এন বিট সঙ্গে, কতগুলি স্বতন্ত্র মান আপনি উপস্থাপন করতে পারেন? 27 00:01:14,610 --> 00:01:19,080 সুতরাং, এন বিট সঙ্গে, আপনি 2 আছে প্রতিটি বিট জন্য সম্ভাব্য মান. 28 00:01:19,080 --> 00:01:22,300 সুতরাং আমরা 2 সম্ভাব্য মান জন্য আছে প্রথম বিট, 2 সম্ভাব্য মান 29 00:01:22,300 --> 00:01:24,450 দ্বিতীয় জন্য, 2 তৃতীয় জন্য সম্ভব. 30 00:01:24,450 --> 00:01:28,730 তাই যে 2 বার 2 বার 2, এবং শেষ পর্যন্ত উত্তর এন যাও 2 হয়. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> প্রশ্ন তিনটি. 33 00:01:31,100 --> 00:01:33,450 বাইনারি মধ্যে 0x50 কি? 34 00:01:33,450 --> 00:01:39,490 তাই হেক্সাডেসিমেল একটি খুব আছে মনে রাখা বাইনারি করার সহজবোধ্য রূপান্তর. 35 00:01:39,490 --> 00:01:43,180 তাই এখানে, আমরা শুধু তাকান প্রয়োজন 5 এবং স্বাধীনভাবে 0. 36 00:01:43,180 --> 00:01:45,110 সুতরাং বাইনারি মধ্যে 5 কি? 37 00:01:45,110 --> 00:01:48,400 0101, যে 1 বিট এবং 4 বিট. 38 00:01:48,400 --> 00:01:49,900 বাইনারি 0 কি? 39 00:01:49,900 --> 00:01:50,520 চতুর নেই. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 তাই শুধু তাদের একত্র করা, এবং যে বাইনারি মধ্যে পূর্ণ সংখ্যা. 42 00:01:54,970 --> 00:01:57,640 01010000. 43 00:01:57,640 --> 00:02:00,439 আপনি চেয়েছিলেন এবং যদি আপনি করতে পারে যে leftmost শূন্য অপসৃত. 44 00:02:00,439 --> 00:02:01,105 এটা অপ্রাসঙ্গিক. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> আমি তখন অন্যথায়, দশমিক 0x50 কি? 47 00:02:05,733 --> 00:02:08,649 আপনি চেয়েছিলেন আপনি যদি, আপনি could-- বাইনারি সঙ্গে আরো আরামদায়ক, 48 00:02:08,649 --> 00:02:11,340 আপনি যে বাইনারি উত্তর নিতে পারে এবং দশমিক মধ্যে যে রূপান্তর. 49 00:02:11,340 --> 00:02:13,870 অথবা আমরা শুধু মনে রাখতে পারে যে হেক্সাডেসিমাল. 50 00:02:13,870 --> 00:02:21,140 0 যাতে 0-তম স্থানে, এবং 5 প্রথমেই যাও 16 হয়. 51 00:02:21,140 --> 00:02:25,990 তাই এখানে, আমরা 5 বার 16 আছে প্রথম, শূন্য প্লাস 0 বার 16, 52 00:02:25,990 --> 00:02:27,520 80 হল. 53 00:02:27,520 --> 00:02:29,710 এবং যদি আপনি দিকে তাকিয়ে যদি প্রশ্নের শিরোনাম, 54 00:02:29,710 --> 00:02:32,920 এটি একটি ধরনের যা ছিল সি এস 80, ছিল এই সমস্যার উত্তর দিতে প্রজ্ঞান. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> প্রশ্ন পাঁচটি. 57 00:02:35,420 --> 00:02:40,320 আমরা যা, এই ভূত স্ক্রিপ্ট আছে 4 বার চিনাবাদাম মাখন জেলি পুনরায়. 58 00:02:40,320 --> 00:02:42,800 তাই কিভাবে আমরা সি কোড এখন যে কি? 59 00:02:42,800 --> 00:02:47,730 ভাল, আমরা এখানে গাঢ় অংশ থাকে আপনি বাস্তবায়ন ছিল একটি অংশ মাত্র. 60 00:02:47,730 --> 00:02:51,950 সুতরাং আমরা 4 looping যে একটি 4 লুপ আছে বার printf,-ing চিনাবাদাম মাখন জেলি, 61 00:02:51,950 --> 00:02:53,910 নতুন লাইন দিয়ে সমস্যার জন্য অনুরোধ জানাবে হিসাবে. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> প্রশ্ন ছয়, অন্য ভূত সমস্যা. 64 00:02:57,490 --> 00:03:00,210 আমরা আমরা একটি চিরকালের লুপ দেখতে. 65 00:03:00,210 --> 00:03:05,000 আমরা পরিবর্তনশীল তোমার বলছে এবং তারপর 1 দ্বারা আমি বৃদ্ধিশীল. 66 00:03:05,000 --> 00:03:09,580 এখন আমরা সি আছে যে কাজ করতে চান আমরা এই কাজ করে থাকতে পারে একাধিক উপায়ে. 67 00:03:09,580 --> 00:03:12,840 এখানে আমরা কোড ঘটেছে কিছুদিনের (সত্য) হিসাবে চিরকালের লুপ. 68 00:03:12,840 --> 00:03:16,600 তাই আমরা ঠিক, পরিবর্তনশীল আমি ঘোষণা ভালো আমরা ভূত পরিবর্তনশীল তোমার ছিল. 69 00:03:16,600 --> 00:03:21,950 পরিবর্তনশীল আমি ঘোষণা, এবং চিরকালের (সত্য), যখন আমরা পরিবর্তনশীল আমি বলতে. 70 00:03:21,950 --> 00:03:25,260 Printf,% তোমার বা তোমার% ঘ ব্যবহার করেছি পারে তাই. 71 00:03:25,260 --> 00:03:27,985 আমরা যে ভেরিয়েবল বলে, ও তারপর তা বাড়ায়, i ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> প্রশ্ন সাত. 74 00:03:30,830 --> 00:03:35,560 এখন আমরা খুব অনুরূপ কিছু করতে চান মারিও ডট গ করতে সমস্যা থেকে এক সেট. 75 00:03:35,560 --> 00:03:39,110 আমরা এই হ্যাশট্যাগ প্রিন্ট করতে চান, আমরা একটি পাঁচ প্রিন্ট করতে চান 76 00:03:39,110 --> 00:03:40,700 এই হ্যাশ এর তিনটি আয়তক্ষেত্র দ্বারা. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 তাই কিভাবে আমরা তা করতে যাচ্ছি? 79 00:03:43,162 --> 00:03:45,370 ভাল, আমরা আপনাকে একটি পুরো দিতে কোড অফ গুচ্ছ, এবং আপনি শুধু 80 00:03:45,370 --> 00:03:47,560 মুদ্রণ গ্রিড ফাংশন পূরণ করতে হবে. 81 00:03:47,560 --> 00:03:49,540 >> তাই কি PrintGrid কেমন হয়েছে? 82 00:03:49,540 --> 00:03:51,480 ওয়েল আপনি অতীতের আছেন প্রস্থ এবং উচ্চতা. 83 00:03:51,480 --> 00:03:53,520 সুতরাং আমরা একটি বাইরের আছে 4 লুপ, যে looping এর 84 00:03:53,520 --> 00:03:57,650 এই সারি সর্বাঙ্গে আমরা প্রিন্ট আউট করতে চান যে গ্রিড. 85 00:03:57,650 --> 00:04:01,250 তারপর আমরা, আন্ত নেস্টেড 4 লুপ আছে যে প্রতিটি কলামের উপর প্রিন্টিং এর. 86 00:04:01,250 --> 00:04:06,210 সুতরাং প্রতিটি সারির জন্য, আমরা জন্য প্রিন্ট প্রতিটি কলাম, একটি একক হ্যাশ. 87 00:04:06,210 --> 00:04:10,045 তারপর সারি শেষে আমরা মুদ্রণ একটি একক নতুন লাইন পরবর্তী সারিতে যেতে. 88 00:04:10,045 --> 00:04:11,420 এবং যে পুরো গ্রিড জন্য এটি. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> প্রশ্ন আটটি. 91 00:04:13,675 --> 00:04:17,170 PrintGrid মত একটি ফাংশন বলা হয় একটি ফিরতি একটি পার্শ্ব প্রতিক্রিয়া আছে, কিন্তু না 92 00:04:17,170 --> 00:04:17,670 মান. 93 00:04:17,670 --> 00:04:19,209 পার্থক্য ব্যাখ্যা কর. 94 00:04:19,209 --> 00:04:23,080 তাই এই আপনি মনে উপর নির্ভর একটি পার্শ্ব প্রতিক্রিয়া কি. 95 00:04:23,080 --> 00:04:25,180 ওয়েল, একটি ফিরতি মান আমরা PrintGrid না জানি 96 00:04:25,180 --> 00:04:28,180 যেহেতু, ফিরতি মূল্য আছে এখানে ডান এটি অকার্যকর বলেছেন. 97 00:04:28,180 --> 00:04:31,150 অকার্যকর ফিরিয়ে দেয় তাই কিছু সত্যিই কিছু ফেরত না. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 সুতরাং পার্শ্ব প্রতিক্রিয়া কি? 100 00:04:33,620 --> 00:04:36,620 ওয়েল, একটি পার্শ্ব প্রতিক্রিয়া সাজান চলতেই যে কিছু 101 00:04:36,620 --> 00:04:39,500 ফাংশন শেষ হওয়ার পর যে, শুধু ফিরে ছিল না 102 00:04:39,500 --> 00:04:41,340 এবং এটি শুধু ইনপুট থেকে ছিল না. 103 00:04:41,340 --> 00:04:44,970 >> সুতরাং, উদাহরণস্বরূপ, আমরা প্রতাপ একটি বিশ্বব্যাপী পরিবর্তনশীল পরিবর্তন. 104 00:04:44,970 --> 00:04:46,590 এটা একটি পার্শ্ব প্রতিক্রিয়া হতে হবে. 105 00:04:46,590 --> 00:04:49,000 এই বিশেষ ক্ষেত্রে, একটি খুব গুরুত্বপূর্ণ পার্শ্ব প্রতিক্রিয়া 106 00:04:49,000 --> 00:04:51,070 পর্দা মুদ্রণ করা হয়. 107 00:04:51,070 --> 00:04:53,110 সুতরাং যে একটি পার্শ্ব প্রতিক্রিয়া যে PrintGrid হয়েছে. 108 00:04:53,110 --> 00:04:54,980 আমরা পর্দায় এই জিনিস প্রিন্ট করা হবে. 109 00:04:54,980 --> 00:04:56,370 এবং যদি আপনি মনে করতে পারেন একটি পার্শ্ব প্রতিক্রিয়া হিসাবে, 110 00:04:56,370 --> 00:04:58,690 কিছু যে যেহেতু যে এই ফাংশন শেষ হয় পরে চলতেই থাকে. 111 00:04:58,690 --> 00:05:01,481 যে সুযোগ বাইরে কিছু এই ফাংশন যে শেষ পর্যন্ত 112 00:05:01,481 --> 00:05:03,380 পরিবর্তিত হচ্ছে, পর্দার বিষয়বস্তু. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> প্রশ্ন নয়. 115 00:05:05,839 --> 00:05:07,880 নীচের প্রোগ্রাম বিবেচনা করুন যা লাইন নম্বর 116 00:05:07,880 --> 00:05:09,740 জন্য যোগ করা হয়েছে আলোচনা অনুরোধে. 117 00:05:09,740 --> 00:05:13,480 এই প্রোগ্রামে তাই আমরা ঠিক হয় এটি সংরক্ষণ, GetString আহ্বান 118 00:05:13,480 --> 00:05:16,220 এই পরিবর্তনশীল এর মধ্যে, এবং তারপর যে পরিবর্তনশীল এর মুদ্রণ. 119 00:05:16,220 --> 00:05:16,720 ঠিক আছে. 120 00:05:16,720 --> 00:05:19,090 লাইন এক উপস্থিত কেন তাই ব্যাখ্যা. 121 00:05:19,090 --> 00:05:20,920 # অন্তর্ভুক্ত CS50 ডট জ. 122 00:05:20,920 --> 00:05:23,820 কেন আমরা CS50 ডট জ # অন্তর্ভুক্ত করতে হবে? 123 00:05:23,820 --> 00:05:26,180 আচ্ছা আমরা আহ্বান করছি ফাংশন GetString, 124 00:05:26,180 --> 00:05:28,840 এবং GetString সংজ্ঞায়িত করা হয় CS50 লাইব্রেরি. 125 00:05:28,840 --> 00:05:31,600 আমরা আছে কি না যদি তাই # অন্তর্ভুক্ত CS50 ডট জ, 126 00:05:31,600 --> 00:05:35,760 আমরা যে অন্তর্নিহিত ঘোষণা পেতে চাই GetString ফাংশন ত্রুটির 127 00:05:35,760 --> 00:05:36,840 কম্পাইলার থেকে. 128 00:05:36,840 --> 00:05:40,110 সুতরাং আমরা লাইব্রেরি অন্তর্ভুক্ত করা প্রয়োজন আমরা হেডার ফাইল অন্তর্ভুক্ত করা প্রয়োজন, 129 00:05:40,110 --> 00:05:42,870 বা অন্য কম্পাইলার না করবে না GetString বিদ্যমান যে স্বীকার করে. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> লাইন দুটি উপস্থিত কেন ব্যাখ্যা কর. 132 00:05:46,140 --> 00:05:47,890 তাই প্রমিত IO ডট জ. 133 00:05:47,890 --> 00:05:50,430 এটা ঠিক একই আগের সমস্যা হিসাবে, 134 00:05:50,430 --> 00:05:53,310 পরিবর্তে মোকাবেলার ছাড়া GetString, আমরা printf বিষয়ে কথা বলছি. 135 00:05:53,310 --> 00:05:56,654 আমরা আমরা প্রয়োজন বলে না যদি তাই প্রমিত IO ডট জ অন্তর্ভুক্ত, 136 00:05:56,654 --> 00:05:58,820 তারপর আমরা পারব না printf ফাংশন ব্যবহার করতে, 137 00:05:58,820 --> 00:06:00,653 কম্পাইলার কারণ এটা সম্পর্কে জানেন না. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- তাৎপর্য কি লাইন চার বাতিলযোগ্য? 140 00:06:05,260 --> 00:06:08,010 তাই আমরা এখানে int প্রধান (অকার্যকর) আছে. 141 00:06:08,010 --> 00:06:10,600 যে শুধু যে আমরা এর বলছে কোন কমান্ড লাইন প্রাপ্ত না হয় 142 00:06:10,600 --> 00:06:12,280 প্রধান আর্গুমেন্ট. 143 00:06:12,280 --> 00:06:17,390 আমরা int বলতে পারে যে মনে রাখুন প্রধান int-argc স্ট্রিং argv বন্ধনী. 144 00:06:17,390 --> 00:06:20,400 তাই আমরা এখানে শুধু আমরা বলতে অকার্যকর বলে কমান্ড লাইন আর্গুমেন্ট উপেক্ষা করা হয়. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> ঠিক, মেমরি সম্মান সঙ্গে, ব্যাখ্যা করো লাইনে কি GetString ছয় আয়. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString একটি ব্লক ফিরে আসছে মেমরি, অক্ষরের একটি অ্যারের. 149 00:06:31,640 --> 00:06:34,870 এটা সত্যিই একটি ফিরে পাবে প্রথম অক্ষর পয়েন্টার. 150 00:06:34,870 --> 00:06:37,170 একটি স্ট্রিং একটি গৃহস্থালি তারকা মনে রাখবেন. 151 00:06:37,170 --> 00:06:41,360 সুতরাং প্রথম একটি পয়েন্টার চরিত্র যাই হোক না কেন এ পংক্তি 152 00:06:41,360 --> 00:06:43,510 ব্যবহারকারী কীবোর্ড এ প্রবেশ করানো. 153 00:06:43,510 --> 00:06:47,070 এবং যে মেমরি malloced করা হবে, তাই যে মেমরি গাদা হয়. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> প্রশ্ন 13. 156 00:06:50,450 --> 00:06:51,960 নিচের প্রোগ্রামটি বিবেচনা করুন. 157 00:06:51,960 --> 00:06:55,579 তাই এই সব প্রোগ্রাম করছে 10 দ্বারা বিভক্ত 1 printf,-ing হয়. 158 00:06:55,579 --> 00:06:57,370 তাই কম্পাইল করার সময় এবং মৃত্যুদন্ড কার্যকর, এই প্রোগ্রাম 159 00:06:57,370 --> 00:07:01,170 আউটপুট 0.0, যদিও 10 দ্বারা বিভক্ত 1 0.1 হয়. 160 00:07:01,170 --> 00:07:02,970 সুতরাং কেন এটা 0.0 হয়? 161 00:07:02,970 --> 00:07:05,510 ওয়েল, এই কারণ হল পূর্ণসংখ্যা বিভাগের. 162 00:07:05,510 --> 00:07:08,580 তাই 1 একটি পূর্ণসংখ্যা 10 একটি পূর্ণসংখ্যা হয়, হয়. 163 00:07:08,580 --> 00:07:11,980 তাই 1 থেকে 10, সবকিছু দ্বারা বিভক্ত ইন্টিজার হিসেবে গণ্য করা হয়, 164 00:07:11,980 --> 00:07:16,380 এবং সি, আমরা পূর্ণসংখ্যা বিভাগ না হলে, আমরা কোনো দশমিক পয়েন্ট অগ্রভাগ ছাঁটিয়া. 165 00:07:16,380 --> 00:07:19,590 সুতরাং 1 10 দ্বারা বিভক্ত 0, এবং তারপর আমরা চেষ্টা করছি 166 00:07:19,590 --> 00:07:24,410 তাই, একটি float হিসাবে যে প্রিন্ট একটি float হিসাবে মুদ্রিত শূন্য 0.0 হয়. 167 00:07:24,410 --> 00:07:27,400 আমরা 0.0 পেতে কেন এবং যে. 168 00:07:27,400 --> 00:07:28,940 >> নিচের প্রোগ্রামটি বিবেচনা করুন. 169 00:07:28,940 --> 00:07:31,280 এখন আমরা 0.1 মুদ্রণ করছি. 170 00:07:31,280 --> 00:07:34,280 সুতরাং কোন পূর্ণসংখ্যা বিভাগ, আমরা শুধু 0.1 মুদ্রণ করছি 171 00:07:34,280 --> 00:07:37,100 কিন্তু আমরা এটা মুদ্রণ করছি 28 দশমিক স্থান. 172 00:07:37,100 --> 00:07:41,810 এবং আমরা এই 0.1000, আভা পেতে শূন্যের, 5 5 5, বাজে বাজে বাজে কথা. 173 00:07:41,810 --> 00:07:45,495 এটা আছে কেন তাই এখানে প্রশ্ন হল পরিবর্তে ঠিক 0.1 এর, যে মুদ্রণ? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> তাই এখানে কারণে এখন হয় পয়েন্ট অনির্দিষ্টতা ভাসমান. 176 00:07:49,640 --> 00:07:53,410 একটি float শুধুমাত্র 32 বিট মনে রাখবেন. 177 00:07:53,410 --> 00:07:57,540 সুতরাং আমরা শুধুমাত্র একটি সসীম সংখ্যা উপস্থাপন করতে পারেন যারা 32 সঙ্গে ফ্লোটিং পয়েন্ট মান 178 00:07:57,540 --> 00:07:58,560 বিট. 179 00:07:58,560 --> 00:08:01,760 ওয়েল শেষ পর্যন্ত অসীম নেই অনেক ফ্লোটিং পয়েন্ট মান, 180 00:08:01,760 --> 00:08:04,940 এবং ভাসমান অসীম অনেক আছে 0 এবং 1 এর মধ্যে যে বিন্দু মান, 181 00:08:04,940 --> 00:08:07,860 এবং আমরা অবশ্যই সক্ষম হন যে চেয়ে আরও বেশি মান প্রতিনিধিত্ব. 182 00:08:07,860 --> 00:08:13,230 তাই আমরা বলি করতে হবে সবচেয়ে মান প্রতিনিধিত্ব করতে পারবে. 183 00:08:13,230 --> 00:08:16,960 >> সুতরাং 0.1 মত একটি মান, দৃশ্যত আমরা যে ঠিক না প্রতিনিধিত্ব করতে পারে. 184 00:08:16,960 --> 00:08:22,500 সুতরাং পরিবর্তে 0.1 প্রতিনিধিত্বমূলক এর আমরা কি সেরা আমরা এই 0.100000 5 5 উপস্থাপন করতে পারেন 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 এবং যে, নিকট প্রশংসনীয় কিন্তু অ্যাপ্লিকেশন অনেক জন্য 187 00:08:26,306 --> 00:08:28,430 আপনি চিন্তা করতে হবে পয়েন্ট অনির্দিষ্টতা ভাসমান, 188 00:08:28,430 --> 00:08:30,930 আমরা শুধু প্রতিনিধিত্ব করতে পারে না, কারণ সব ঠিক পয়েন্ট ভাসমান. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> প্রশ্ন 15. 191 00:08:33,380 --> 00:08:34,679 নিচের কোড বিবেচনা করুন. 192 00:08:34,679 --> 00:08:36,630 আমরা শুধু 1 প্লাস 1 মুদ্রণ করছি. 193 00:08:36,630 --> 00:08:38,289 তাই এখানে কোন কৌতুক আছে. 194 00:08:38,289 --> 00:08:41,780 1 প্লাস 1 2 মূল্যায়ণ, এবং তারপর আমরা যে মুদ্রণ করছি. 195 00:08:41,780 --> 00:08:42,789 এই মাত্র 2 ছাপে. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> প্রশ্ন 16. 198 00:08:44,700 --> 00:08:49,450 এখন আমরা অক্ষর মুদ্রণ করছি 1 প্লাস অক্ষর 1. 199 00:08:49,450 --> 00:08:52,110 সুতরাং কেন এই না একই জিনিস মুদ্রণ? 200 00:08:52,110 --> 00:08:57,680 ওয়েল চরিত্র 1 প্লাস চরিত্র 1, চরিত্র 1 ASCII মান 49 আছে. 201 00:08:57,680 --> 00:09:04,840 তাই এই সত্যিই 49 বলছে প্লাস 49, এবং হয় শেষ পর্যন্ত এই 98 প্রিন্ট করতে যাচ্ছে. 202 00:09:04,840 --> 00:09:06,130 তাই এই 2 প্রিন্ট করে না. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> প্রশ্ন 17. 205 00:09:09,271 --> 00:09:11,520 বাস্তবায়ন সম্পন্ন করুন এমনভাবে নীচের বিজোড় 206 00:09:11,520 --> 00:09:14,615 ফাংশন যদি ফেরৎ সত্য যে এন এমনকি যদি এন বিজোড় এবং মিথ্যা. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 এটি একটি মহান উদ্দেশ্য mod অপারেটর জন্য. 209 00:09:19,330 --> 00:09:24,530 সুতরাং আমরা আমাদের যুক্তি এন নিতে, এন mod 2 পাশাপাশি 1, সমান হলে 210 00:09:24,530 --> 00:09:28,030 যে এন বিভক্ত যে মানে 2 দ্বারা একটি বাকি ছিল. 211 00:09:28,030 --> 00:09:33,270 N 2 দ্বারা বিভক্ত, একটি বাকি ছিল যে এন বিজোড় হয়, তাই আমরা সত্য ফিরে মানে হল যে. 212 00:09:33,270 --> 00:09:34,910 অন্যথায় আমরা ফিরে মিথ্যা. 213 00:09:34,910 --> 00:09:39,070 এছাড়াও আপনি 2 সমান mod n কাজ করতে পারে শূন্য, অন্যথায়, মিথ্যা ফিরে ফিরে সত্য. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> নীচের রিকার্সিভ ফাংশন বিবেচনা করুন. 216 00:09:43,640 --> 00:09:46,920 এন যদি তাই কম বা 1 ফিরে, 1 সমান, 217 00:09:46,920 --> 00:09:50,430 এন বিয়োগ 1 চ অন্য রিটার্ন এন বার. 218 00:09:50,430 --> 00:09:52,556 তাই এই ফাংশন কি? 219 00:09:52,556 --> 00:09:54,305 ওয়েল, এই মাত্র হল গৌণিক ফাংশন. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 এই চমত্কারভাবে প্রতিনিধিত্ব করা হয় এন গৌণিক হিসেবে. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> তাই এখন 19 প্রশ্ন, আমরা চাই এই রিকার্সিভ ফাংশন নিতে. 224 00:10:02,310 --> 00:10:04,530 আমরা এটা পুনরাবৃত্ত করতে চাই. 225 00:10:04,530 --> 00:10:05,874 তাই কিভাবে আমরা তা করতে পারি? 226 00:10:05,874 --> 00:10:07,790 ওয়েল কর্মীদের জন্য সমাধান, এবং আবার আছে 227 00:10:07,790 --> 00:10:11,090 আপনি কাজ করতে পারে একাধিক উপায় আমরা এই int পণ্য দিয়ে শুরু যে 228 00:10:11,090 --> 00:10:11,812 1 সমান. 229 00:10:11,812 --> 00:10:13,520 এবং এই সারা লুপ জন্য, আমরা চলুন 230 00:10:13,520 --> 00:10:17,590 পরিণামে করার পণ্যের গুন করা পূর্ণ গৌণিক দিয়ে শেষ. 231 00:10:17,590 --> 00:10:21,870 Int জন্য আমি 2 সমান সুতরাং, আমি হয় কম বা সমান হবে, i ++. 232 00:10:21,870 --> 00:10:24,130 >> আমি 2 সমান কেন আপনি হতাশ হতে পারে. 233 00:10:24,130 --> 00:10:28,380 ভাল, আমরা আছে এখানে মনে রাখা আমাদের বেস ক্ষেত্রে সঠিক কি না. 234 00:10:28,380 --> 00:10:32,180 এন চেয়ে কম বা সমান যদি তাই 1 যাও, আমরা শুধু 1 ফিরে করছি. 235 00:10:32,180 --> 00:10:34,830 আমি 2 সমান এখানে ওভার সুতরাং, আমরা শুরু. 236 00:10:34,830 --> 00:10:39,090 ওয়েল আমি 1, হলে তারপর the-- বা এন লুপ জন্য তারপর 1, হলে 237 00:10:39,090 --> 00:10:40,600 এ সব না চালানো হবে. 238 00:10:40,600 --> 00:10:43,190 তাই আমরা ঠিক would 1 যা রিটার্ন পণ্য,. 239 00:10:43,190 --> 00:10:45,920 একইভাবে, যদি এন ছিল বেশী কিছু কম 1 টি 240 00:10:45,920 --> 00:10:49,290 এটা 0, যদি নেতিবাচক 1, যাই হোক না কেন আমরা এখনও, 1 ফিরে যেতে চাই 241 00:10:49,290 --> 00:10:52,260 যা ঠিক কি রিকার্সিভ সংস্করণ করছে. 242 00:10:52,260 --> 00:10:54,660 >> এখন, এন বেশী হলে 1 বেশী, তারপর আমরা চলুন 243 00:10:54,660 --> 00:10:56,550 অন্তত একটি কাজ করতে এই লুপ পুনরাবৃত্তির. 244 00:10:56,550 --> 00:11:00,630 তখন আমরা করছি, এর এন 5 হয় বলা যাক পণ্য বার করতে যাচ্ছে 2 সমান. 245 00:11:00,630 --> 00:11:02,165 তাই এখন পণ্য 2 হয়. 246 00:11:02,165 --> 00:11:04,040 এখন আমরা কি করতে যাচ্ছেন পণ্য কয়েকবার 3 সমান. 247 00:11:04,040 --> 00:11:04,690 এখন তা 6 এর. 248 00:11:04,690 --> 00:11:07,500 প্রোডাক্ট বার এটি এখন 24 এর, 4 সমান. 249 00:11:07,500 --> 00:11:10,420 প্রোডাক্ট বার এটি এখন 120 এর, 5 সমান. 250 00:11:10,420 --> 00:11:16,730 আমি তখন শেষ পর্যন্ত, আমরা ফিরে করছি সঠিকভাবে 5 গৌণিক যা 120,. 251 00:11:16,730 --> 00:11:17,510 >> প্রশ্ন 20. 252 00:11:17,510 --> 00:11:22,480 এই কমান্ডের সাহায্যে আপনি পূরণ করতে হবে যেখানে এক কোনো আলগোরিদিম সঙ্গে এই টেবিলের, 253 00:11:22,480 --> 00:11:25,735 আমরা দেখা করেছি কিছু যে, যে এই আলগোরিদিমিক রান ফিট 254 00:11:25,735 --> 00:11:28,060 বার এই asymptotic চালানোর বার. 255 00:11:28,060 --> 00:11:33,270 সুতরাং একটি অ্যালগরিদম কি যে 1 এর ওমেগা, কিন্তু n এর বড় হে হয়? 256 00:11:33,270 --> 00:11:35,970 তাই অসীম হতে পারে এখানে অনেক উত্তর. 257 00:11:35,970 --> 00:11:39,790 আমরা সম্ভবত সবচেয়ে পাচ্ছি যে এক ঘন ঘন শুধু রৈখিক অনুসন্ধান. 258 00:11:39,790 --> 00:11:42,050 >> সেরা ক্ষেত্রে তাই দৃশ্যকল্প, আমরা করছি আইটেমটি 259 00:11:42,050 --> 00:11:44,050 খুঁজছেন এ হল তালিকার শুরুতে 260 00:11:44,050 --> 00:11:47,400 এবং তাই 1 ধাপের ওমেগা সালে, আমরা পরীক্ষা সর্বপ্রথম, 261 00:11:47,400 --> 00:11:49,740 আমরা সঙ্গে সঙ্গে ফিরে যে আমরা আইটেমটি পাওয়া. 262 00:11:49,740 --> 00:11:52,189 লক দৃশ্যকল্প ইন, আইটেম, শেষে হয় 263 00:11:52,189 --> 00:11:53,730 অথবা আইটেমটি এ সব তালিকায় না থাকে. 264 00:11:53,730 --> 00:11:56,700 সুতরাং আমরা আপনাকে আছে সম্পূর্ণ তালিকা, সব এন 265 00:11:56,700 --> 00:11:58,480 উপাদান, এবং এটি n হে কেন. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> তাই এখন এটা যে উভয় কিছু এন লগ n র ওমেগা, এবং n log n এর বড় হে. 268 00:12:04,880 --> 00:12:08,650 ওয়েল সবচেয়ে প্রাসঙ্গিক জিনিস আমরা এখানে দেখা সাজানোর একত্রীকরণ হয় করেছি. 269 00:12:08,650 --> 00:12:12,950 সুতরাং সাজানোর, মনে একত্রীকরণ, পরিণামে থীটা হয় 270 00:12:12,950 --> 00:12:16,920 থেটা সংজ্ঞায়িত করা হয় যেখানে n log n, এর ওমেগা ও বড় হে উভয় একই হলে. 271 00:12:16,920 --> 00:12:17,580 উভয় এন এন লগ ইন করুন. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> ওমেগা কিছু যে কি n র, এবং n হে ছক? 274 00:12:21,970 --> 00:12:23,990 ওয়েল, আবার আছে একাধিক সম্ভাব্য উত্তর. 275 00:12:23,990 --> 00:12:26,440 এখানে আমরা বুদ্বুদ সাজানোর বলতে ঘটতে. 276 00:12:26,440 --> 00:12:28,840 সন্নিবেশন সাজানোর এছাড়াও এখানে কাজ করবে. 277 00:12:28,840 --> 00:12:31,400 যে বুদ্বুদ সাজানোর মনে রাখুন যে অপ্টিমাইজেশান যেখানে আছে, 278 00:12:31,400 --> 00:12:34,630 আপনি পেতে পারবেন যদি সম্পূর্ণ তালিকা মাধ্যমে 279 00:12:34,630 --> 00:12:37,402 কি প্রয়োজন ছাড়া কোনো অদলবদল, তারপর, ভাল, 280 00:12:37,402 --> 00:12:40,110 আমরা অবিলম্বে যে আসতে পারেন তালিকায় দিয়ে শুরু করতে সাজানো হয়েছিল. 281 00:12:40,110 --> 00:12:43,185 , শ্রেষ্ঠ কেস দৃশ্যকল্প মধ্যে তাই এটি এন শুধু ওমেগা এর. 282 00:12:43,185 --> 00:12:45,960 এটি শুধু একটি চমত্কারভাবে না হলে , দিয়ে শুরু করতে তালিকায় সাজানো 283 00:12:45,960 --> 00:12:48,270 তারপর আমরা n হে বিনিময়সমূহ ছক আছে. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 এবং পরিশেষে, আমরা নির্বাচন সাজানোর আছে n ছক জন্য, ওমেগা এবং বড় ও উভয় 286 00:12:55,610 --> 00:12:56,850 >> প্রশ্ন 21. 287 00:12:56,850 --> 00:12:58,870 পূর্ণসংখ্যা ওভারফ্লো কি? 288 00:12:58,870 --> 00:13:02,160 ওয়েল আবার, আগে অনুরূপ, আমরা শুধুমাত্র finitely অনেক বিট আছে 289 00:13:02,160 --> 00:13:04,255 একটি পূর্ণসংখ্যা প্রতিনিধিত্ব, তাই হয়তো 32 বিট. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 আসুন আমরা একটি স্বাক্ষরিত পূর্ণসংখ্যা আছে বলে. 292 00:13:09,180 --> 00:13:12,800 তারপর শেষ পর্যন্ত সর্বোচ্চ ধনাত্মক সংখ্যা আমরা উপস্থাপন করতে পারেন 293 00:13:12,800 --> 00:13:15,910 হল 2 থেকে 31 বিয়োগ 1. 294 00:13:15,910 --> 00:13:19,370 আমরা চেষ্টা করে তাই কি হবে তারপর যে পূর্ণসংখ্যা বাড়ায়? 295 00:13:19,370 --> 00:13:25,320 ভাল, আমরা 31 থেকে 2 থেকে যেতে চলুন বিয়োগ 1, নিচে নেতিবাচক 2 সব পথ 296 00:13:25,320 --> 00:13:26,490 31. 297 00:13:26,490 --> 00:13:29,470 তাই এই পূর্ণসংখ্যা ওভারফ্লো হয় আপনি বৃদ্ধিশীল রাখতে হলে, 298 00:13:29,470 --> 00:13:32,330 এবং শেষ পর্যন্ত আপনি করতে পারেন না কোনো উচ্চতর এবং এটা শুধু পেতে 299 00:13:32,330 --> 00:13:34,520 ফিরে সব পথ গোপন করে একটি নেতিবাচক মান কাছাকাছি. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> একটি বাফার ওভারফ্লো সম্পর্কে কি? 302 00:13:37,779 --> 00:13:39,820 সুতরাং একটি বাফার overflow-- একটি বাফার কি মনে. 303 00:13:39,820 --> 00:13:41,000 এটা মেমরি শুধু একটি খণ্ড. 304 00:13:41,000 --> 00:13:43,350 একটি অ্যারের মত কিছু একটা বাফার হয়. 305 00:13:43,350 --> 00:13:46,120 সুতরাং একটি বাফার ওভারফ্লো যখন হয় আপনি মেমরি অ্যাক্সেস করার চেষ্টা 306 00:13:46,120 --> 00:13:47,880 যে অ্যারের শেষ বহুদূরে. 307 00:13:47,880 --> 00:13:50,410 আপনি একটি আছে সুতরাং আকার 5 এবং আপনি অ্যারে 308 00:13:50,410 --> 00:13:53,700 অ্যারে বন্ধনী অ্যাক্সেস করতে চেষ্টা 5 বা বন্ধনী 6 বা বন্ধনী 7, 309 00:13:53,700 --> 00:13:56,610 তার পরেও বা কিছু শেষ, অথবা এমনকি কিছু 310 00:13:56,610 --> 00:14:00,790 নীচের অ্যারে বন্ধনী নেতিবাচক 1 টি ঐ সব বাফার উপচে হয়. 311 00:14:00,790 --> 00:14:02,810 আপনি খারাপ উপায়ে মেমরি স্পর্শ করছি. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> প্রশ্ন 23. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 আপনি প্রয়োজন এই এক তাই strlen বাস্তবায়ন. 316 00:14:09,100 --> 00:14:11,630 এবং আমরা আপনি পারেন যে আপনি বলুন এর নাল হবে না অনুমান, 317 00:14:11,630 --> 00:14:13,790 তাই আপনাকে করতে হবে না নাল জন্য কোনো চেক করতে. 318 00:14:13,790 --> 00:14:16,190 এবং একাধিক উপায় আছে আপনি এই কাজ করতে পারে. 319 00:14:16,190 --> 00:14:18,440 এখানে আমরা শুধু সহজবোধ্য নিতে. 320 00:14:18,440 --> 00:14:21,780 আমরা এন, একটি কাউন্টার সঙ্গে শুরু. এন হয় আছে কতগুলি অক্ষর গণনা. 321 00:14:21,780 --> 00:14:25,560 তাই আমরা আমরা 0 থেকে আরম্ভ, এবং সম্পূর্ণ তালিকায় পুনরুক্তি. 322 00:14:25,560 --> 00:14:29,092 >> সমান গুলি বন্ধনী 0 নাল টারমিনেটর অক্ষর? 323 00:14:29,092 --> 00:14:31,425 আমরা খুঁজছেন মনে রাখুন নাল টারমিনেটর অক্ষর 324 00:14:31,425 --> 00:14:33,360 আমাদের স্ট্রিং কতদিন নির্ধারণ. 325 00:14:33,360 --> 00:14:35,890 যে বিনষ্ট যাচ্ছে কোনো প্রাসঙ্গিক পংক্তি. 326 00:14:35,890 --> 00:14:39,400 সুতরাং গুলি বন্ধনী সমান 0 নাল টারমিনেটর কিভাবে? 327 00:14:39,400 --> 00:14:42,850 এটা না, তাহলে আমরা চলুন গুলি বন্ধনী 1, গুলি বন্ধনী 2 তাকান. 328 00:14:42,850 --> 00:14:45,050 আমরা পর্যন্ত বর্তা নাল টারমিনেটর খুঁজে. 329 00:14:45,050 --> 00:14:48,580 আমরা এটা পেয়েছি একবার, তারপর এন রয়েছে স্ট্রিং এর মোট দৈর্ঘ্য, 330 00:14:48,580 --> 00:14:49,942 এবং আমরা শুধু যে যেতে পারেন. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> প্রশ্ন 24. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 তাই এই এক যেখানে আপনি বাণিজ্য বন্ধ করতে হবে. 335 00:14:56,050 --> 00:14:59,810 তাই এক জিনিস এক ভালো হয় কিন্তু কি ভাবে ভাবে এটা খারাপ? 336 00:14:59,810 --> 00:15:02,980 তাই এখানে, একত্রীকরণ সাজানোর থাকে বুদ্বুদ সাজানোর তুলনায় দ্রুততর হতে. 337 00:15:02,980 --> 00:15:06,530 সেখানে, ভাল যে সব বলেন না একাধিক উত্তর এখানে আছে. 338 00:15:06,530 --> 00:15:12,930 কিন্তু প্রধান এক যে বুদ্বুদ বাছাই করা একটি অনুসারে সাজানো তালিকা জন্য n র ওমেগা হয়. 339 00:15:12,930 --> 00:15:14,950 >> আমরা আগেই আমরা দেখেছি যে টেবিল রাখবেন. 340 00:15:14,950 --> 00:15:17,600 সুতরাং বুদ্বুদের ওমেগা অসুস্থ এন, শ্রেষ্ঠ কেস দৃশ্যকল্প 341 00:15:17,600 --> 00:15:20,010 এটা শুধু ওভার যেতে সক্ষম হয় তালিকায় একবার, নির্ধারণ 342 00:15:20,010 --> 00:15:22,270 হেই এই জিনিস আগে থেকেই সাজানো, এবং বিনিময়ে. 343 00:15:22,270 --> 00:15:25,960 কোন ব্যাপার, সাজানোর মার্জ কি আপনাকে যা, এন লগ n র ওমেগা হয়. 344 00:15:25,960 --> 00:15:29,200 অনুসারে সাজানো তালিকা জন্য, বুদ্বুদ তাই সাজান দ্রুত হতে যাচ্ছে. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> এখন তালিকার সম্পর্কে লিঙ্ক? 347 00:15:32,430 --> 00:15:36,070 সুতরাং একটি লিঙ্ক তালিকা বাড়া এবং সঙ্কুচিত করতে পারেন প্রয়োজন হিসাবে অনেক উপাদান মাপসই. 348 00:15:36,070 --> 00:15:38,489 তাই যে সব বলেন না সাধারণত সরাসরি তুলনা 349 00:15:38,489 --> 00:15:40,280 একটি লিঙ্ক হতে যাচ্ছে একটি অ্যারের সাথে তার তালিকা দেখাবে. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 সুতরাং এমনকি অ্যারে পারেন, যদিও সহজে বাড়া এবং সঙ্কুচিত 352 00:15:44,050 --> 00:15:47,130 হিসাবে অনেক উপাদান মাপসই হিসাবে প্রয়োজন, একটি তালিকা লিঙ্ক 353 00:15:47,130 --> 00:15:49,600 একটি অ্যারে একটি তুলনা অ্যারে র্যান্ডম এক্সেস আছে. 354 00:15:49,600 --> 00:15:52,960 আমরা একটিতেও সূচক পারেন অ্যারের বিশেষ উপাদান. 355 00:15:52,960 --> 00:15:56,430 >> সুতরাং একটি লিঙ্ক তালিকা জন্য, আমরা নারা শুধু পঞ্চম উপাদান যান, 356 00:15:56,430 --> 00:16:00,260 আমরা শুরু থেকে, তর্ক আছে আমরা পঞ্চম উপাদান পেতে পর্যন্ত. 357 00:16:00,260 --> 00:16:03,990 এবং যে থেকে আমাদের প্রতিরোধ যাচ্ছে বাইনারি অনুসন্ধান ভালো কিছু করছেন. 358 00:16:03,990 --> 00:16:08,150 বাইনারি অনুসন্ধান কথা বলছেন, বাইনারি অনুসন্ধান রৈখিক অনুসন্ধান তুলনায় দ্রুততর হতে থাকে. 359 00:16:08,150 --> 00:16:11,120 যে সব বলেন না তাই, এক সম্ভাব্য জিনিস 360 00:16:11,120 --> 00:16:13,380 আপনি বাইনারি করতে পারে না সংযুক্ত তালিকার উপর অনুসন্ধান, 361 00:16:13,380 --> 00:16:14,730 আপনি শুধুমাত্র অ্যারে উপর এটা করতে পারেন. 362 00:16:14,730 --> 00:16:18,030 কিন্তু সম্ভবত আরো গুরুত্বপূর্ণ, আপনি বাইনারি অনুসন্ধান করতে পারবেন না 363 00:16:18,030 --> 00:16:20,690 সাজানো নয় এরকম একটি অ্যারের উপর. 364 00:16:20,690 --> 00:16:23,990 আপফ্রন্ট আপনাকে বাছাই করতে হবে পারে অ্যারে, এবং শুধুমাত্র তারপর পারেন 365 00:16:23,990 --> 00:16:25,370 আপনি বাইনারি অনুসন্ধান করতে. 366 00:16:25,370 --> 00:16:27,660 আপনার জিনিস না যদি তাই দিয়ে শুরু করতে সাজানো, 367 00:16:27,660 --> 00:16:29,250 তারপর রৈখিক অনুসন্ধান দ্রুততর হতে পারে. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> প্রশ্ন 27. 370 00:16:31,740 --> 00:16:34,770 তাই নীচের প্রোগ্রাম বিবেচনা, যা পরবর্তী স্লাইডে মধ্যে হতে হবে. 371 00:16:34,770 --> 00:16:37,790 আর এই আমরা করছি যেখানে এক স্পষ্টভাবে রাজ্য চাই যাচ্ছে 372 00:16:37,790 --> 00:16:39,980 বিভিন্ন ভেরিয়েবলের জন্য মান. 373 00:16:39,980 --> 00:16:41,990 সুতরাং আসুন যে তাকান. 374 00:16:41,990 --> 00:16:43,160 >> তাই এক রেখায়. 375 00:16:43,160 --> 00:16:45,457 আমরা int x 1 এর সমান আছে. 376 00:16:45,457 --> 00:16:47,040 যে ঘটেছে যে শুধুমাত্র জিনিস. 377 00:16:47,040 --> 00:16:50,440 তাই লাইন এক সময়ে, আমরা দেখতে আমাদের টেবিল, যে Y, A, B, এবং tmp সব হয় 378 00:16:50,440 --> 00:16:51,540 খুঁজে blacked. 379 00:16:51,540 --> 00:16:52,280 তাই x কি? 380 00:16:52,280 --> 00:16:53,860 আচ্ছা আমরা শুধু এটা 1 সমান সেট. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 এবং তারপর, ভাল, দুই লাইন আমরা, y 2 সেট করা হয় দেখতে 383 00:16:58,770 --> 00:17:00,550 এবং টেবিল ইতিমধ্যে হয় আমাদের জন্য এ ভরা. 384 00:17:00,550 --> 00:17:03,040 সুতরাং x 1 এবং y 2 হয়. 385 00:17:03,040 --> 00:17:05,890 >> এখন, লাইন তিনটি, আমরা এখন করছি swap ফাংশন ভিতরে. 386 00:17:05,890 --> 00:17:07,560 আমরা কি অদলবদল পাস হয়নি? 387 00:17:07,560 --> 00:17:11,609 আমরা জন্য ampersand এক্স পাস খ জন্য, এবং ampersand Y. 388 00:17:11,609 --> 00:17:15,160 কোথায় সমস্যা আগে বলেন যে x এর ঠিকানা 389 00:17:15,160 --> 00:17:17,520 0x10, এবং y এর ঠিকানা 0x14 হয়. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 সুতরাং a ও b এর সমান হয় যথাক্রমে 0x10 এবং 0x14,. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> এখন লাইন তিনটি এ, x এবং y কি হয়? 394 00:17:26,250 --> 00:17:28,554 ওয়েল, কিছুই পরিবর্তিত হয়েছে এই সময়ে x এবং y সম্পর্কে. 395 00:17:28,554 --> 00:17:30,470 এমনকি তারা করছি যদিও একটি প্রধান স্ট্যাকের ফ্রেম ভিতরে, 396 00:17:30,470 --> 00:17:32,469 তারা এখনও একই আছে মূল্যবোধ তারা আগে কি. 397 00:17:32,469 --> 00:17:34,030 আমরা কোন মেমরি পরিবর্তিত হয়নি. 398 00:17:34,030 --> 00:17:35,710 তাই x 1, y 2 হয়. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 ঠিক আছে. 401 00:17:37,050 --> 00:17:40,300 তাই এখন আমরা একটি তারকা সমান int-tmp বলেন. 402 00:17:40,300 --> 00:17:44,410 তাই লাইন চার, সবকিছু এ tmp ছাড়া একই. 403 00:17:44,410 --> 00:17:47,130 আমরা কোনো মান পরিবর্তিত হয়নি tmp ছাড়া কিছু. 404 00:17:47,130 --> 00:17:49,230 আমরা একটি তারকা সমান tmp সেটিং করা হয়. 405 00:17:49,230 --> 00:17:50,620 তারা একটি কি? 406 00:17:50,620 --> 00:17:56,240 ওয়েল, একটি পয়েন্ট x যাও, তাই একটি তারকা 1, যা সমান এক্স, যাচ্ছে. 407 00:17:56,240 --> 00:18:00,080 সুতরাং সবকিছু কপি করা হয় নিচে, এবং tmp 1 সেট করা হয়. 408 00:18:00,080 --> 00:18:01,110 >> এখন পরের লাইন. 409 00:18:01,110 --> 00:18:03,380 রাশি একটি তারকা খ সমান. 410 00:18:03,380 --> 00:18:10,000 তাই লাইন দ্বারা পাঁচটি ভাল আবার, সবকিছু তারা একটি যা কিছু ছাড়া একই. 411 00:18:10,000 --> 00:18:10,830 তারা একটি কি? 412 00:18:10,830 --> 00:18:13,720 ভাল, আমরা শুধু তারকা একটি হল x বলেন. 413 00:18:13,720 --> 00:18:16,400 সুতরাং আমরা সমান তারকা খ করার এক্স পরিবর্তন করছি. 414 00:18:16,400 --> 00:18:18,960 তারকা খ কি? Y. Y করতে খ পয়েন্ট. 415 00:18:18,960 --> 00:18:21,030 সুতরাং তারকা খ Y হল. 416 00:18:21,030 --> 00:18:25,140 সুতরাং আমরা, Y করার এক্স সমান সেটিং করছি এবং অন্য সব কিছুর একই. 417 00:18:25,140 --> 00:18:29,130 এক্স এখন যে আমরা পরের সারিতে দেখতে 2, এবং বাকি শুধু নিচে কপি করা হয়. 418 00:18:29,130 --> 00:18:31,120 >> এখন পরের লাইনে, তারকা খ tmp সমান. 419 00:18:31,120 --> 00:18:34,740 ভাল, আমরা শুধু তারকা খ Y হল বলেন, তাই আমরা tmp যাও y সমান সেটিং করছি. 420 00:18:34,740 --> 00:18:37,450 অন্য সব কিছুর একই, তাই সবকিছু নিচে কপি পরার. 421 00:18:37,450 --> 00:18:42,050 আমরা যা, tmp সমান Y সেটিং করছি অন্য এক, এবং সবকিছু একই. 422 00:18:42,050 --> 00:18:43,210 >> এখন পরিশেষে, লাইন সাত. 423 00:18:43,210 --> 00:18:44,700 আমরা ফিরে প্রধান ফাংশন মধ্যে আছেন. 424 00:18:44,700 --> 00:18:46,350 Swap 'সমাপ্ত হয় পরে আমরা করছি. 425 00:18:46,350 --> 00:18:48,972 আমরা একটি, খ হারিয়ে, এবং আছে tmp, কিন্তু আমরা শেষ পর্যন্ত 426 00:18:48,972 --> 00:18:51,180 কোনো মান পরিবর্তন হয় না এই সময়ে কিছু, 427 00:18:51,180 --> 00:18:52,800 আমরা শুধু x এবং y নিচে কপি. 428 00:18:52,800 --> 00:18:56,490 এবং আমরা x এবং y দেখতে এখন 2 এবং 1 এর পরিবর্তে 1 এবং 2. 429 00:18:56,490 --> 00:18:58,160 swap 'র সফলভাবে মৃত্যুদন্ড কার্যকর করেছে. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> প্রশ্ন 28. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 আপনি সম্মুখীন যে ধরুন ত্রুটি বার্তা 434 00:19:03,100 --> 00:19:06,790 অফিসে ঘন্টা সময় নীচের একটি CA বা TF হিসেবে আগামী বছরের. 435 00:19:06,790 --> 00:19:08,930 এই ত্রুটিগুলি প্রতিটি ফিক্স পরামর্শ কিভাবে. 436 00:19:08,930 --> 00:19:11,160 GetString যাও সুতরাং অনির্ধারিত রেফারেন্স. 437 00:19:11,160 --> 00:19:12,540 কেন আপনি এই দেখতে পারে? 438 00:19:12,540 --> 00:19:15,380 ওয়েল, একজন ছাত্র ব্যবহার করা হলে তাদের কোড মধ্যে GetString, 439 00:19:15,380 --> 00:19:20,310 তারা সঠিকভাবে CS50 অন্তর্ভুক্ত হ্যাশ আছে ডট জ CS50 লাইব্রেরি অন্তর্ভুক্ত. 440 00:19:20,310 --> 00:19:22,380 >> ওয়েল, তারা কি এই ত্রুটি ঠিক করা প্রয়োজন? 441 00:19:22,380 --> 00:19:26,810 তারা এ একটি ড্যাশ lcs50 করতে হবে তারা কম্পাইল করছি যখন কমান্ড লাইন. 442 00:19:26,810 --> 00:19:29,501 তারা পাস না হলে সুতরাং ঝনঝন ড্যাশ lcs50, তারা আছেন 443 00:19:29,501 --> 00:19:32,000 প্রকৃত আছে যাচ্ছে না GetString যে কার্যকরী কোড. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> প্রশ্ন 29. 446 00:19:34,170 --> 00:19:36,190 পরোক্ষভাবে ঘোষণা লাইব্রেরি ফাংশন strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 আচ্ছা এই এখন, তারা না আছে সঠিক হ্যাশ সম্পন্ন হল. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 এই বিশেষ ক্ষেত্রে, হেডার ফাইল তারা, স্ট্রিং ডট জ হয় অন্তর্ভুক্ত করা প্রয়োজন 451 00:19:45,410 --> 00:19:48,710 এবং এখন পংক্তি ডট জ সহ এখন student-- কম্পাইলার 452 00:19:48,710 --> 00:19:51,750 ব্যবহার করেছে strlen এর ঘোষণা, 453 00:19:51,750 --> 00:19:54,120 এবং এটা জানেন আপনার কোড যে সঠিকভাবে strlen ব্যবহার করা হয়. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> প্রশ্ন 30. 456 00:19:56,580 --> 00:20:00,240 আরো শতাংশ ধর্মান্তর তথ্য আর্গুমেন্ট বেশী. 457 00:20:00,240 --> 00:20:01,540 তাই এই কি? 458 00:20:01,540 --> 00:20:06,470 ওয়েল এই শতাংশ মনে রাখা তারা printf প্রাসঙ্গিক করছি কিভাবে signs--. 459 00:20:06,470 --> 00:20:08,890 তাই printf মধ্যে আমরা percent-- পারে আমরা কিছু প্রিন্ট পারে 460 00:20:08,890 --> 00:20:11,380 শতাংশ মত আমি এন ব্যাকস্ল্যাশ. 461 00:20:11,380 --> 00:20:15,310 অথবা আমরা, শতাংশ আমি ভালো প্রিন্ট পারে স্থান, শতাংশ আমি, স্থান, শতাংশ আমি. 462 00:20:15,310 --> 00:20:18,950 যারা প্রতিটি জন্য তাই শতাংশ লক্ষণ, আমরা প্রয়োজন 463 00:20:18,950 --> 00:20:21,560 printf, শেষে একটি পরিবর্তনশীল পাস. 464 00:20:21,560 --> 00:20:26,980 >> সুতরাং আমরা বলতে যদি printf, paren শতাংশ আমি, এন বন্ধ paren ব্যাকস্ল্যাশ 465 00:20:26,980 --> 00:20:30,270 ভাল, আমরা এসেছি বলে একটি পূর্ণসংখ্যা মুদ্রণ যাচ্ছে, 466 00:20:30,270 --> 00:20:33,970 কিন্তু তারপর আমরা printf পাস না একটি পূর্ণসংখ্যা আসলে প্রিন্ট করতে. 467 00:20:33,970 --> 00:20:37,182 সুতরাং এখানে আরো শতাংশ তথ্য আর্গুমেন্ট চেয়ে ধর্মান্তর? 468 00:20:37,182 --> 00:20:39,390 যে আমরা আছে যে বলছে শতকরায় আভা, 469 00:20:39,390 --> 00:20:42,445 এবং আমরা যথেষ্ট ভেরিয়েবল নেই আসলে ঐ শতকরায় ভরাট. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> এবং তারপর স্পষ্টভাবে, প্রশ্ন 31 জন্য, নিশ্চিতভাবে এক ব্লকে 40 বাইট হারিয়েছে. 472 00:20:50,010 --> 00:20:52,350 সুতরাং এই একটি Valgrind ত্রুটি হয়. 473 00:20:52,350 --> 00:20:54,720 এই যে বলছে না কোথাও আপনার কোড মধ্যে, 474 00:20:54,720 --> 00:20:59,010 আপনি 40 যে বরাদ্দের আছে বাইট বড় তাই আপনি 40 বাইট malloced 475 00:20:59,010 --> 00:21:00,515 এবং আপনি এটা মুক্ত না. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 আপনি শুধু প্রয়োজন সম্ভবত কিছু মেমরি লিক খুঁজে পেতে, 478 00:21:05,140 --> 00:21:07,650 এবং আপনি প্রয়োজন যেখানে খুঁজে এই মেমরি ব্লক মুক্ত. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> এবং, 32 প্রশ্ন আকার 4 অবৈধ লেখার. 481 00:21:11,910 --> 00:21:13,250 আবার এই একটি Valgrind ত্রুটি হয়. 482 00:21:13,250 --> 00:21:15,440 এই যা করতে হবে না এখন মেমরি তথ্য ফাঁসের সঙ্গে. 483 00:21:15,440 --> 00:21:20,750 এই আমি বলতে চাচ্ছি likely-- সবচেয়ে, এটি, হয় অবৈধ মেমরি অধিকার কিছু বাছাই. 484 00:21:20,750 --> 00:21:23,270 এবং সম্ভবত এই হল কিছু বাফার ওভারফ্লো সাজানোর. 485 00:21:23,270 --> 00:21:26,560 কোথায় আপনি হয়তো, একটি অ্যারে আছে একটি পূর্ণসংখ্যা অ্যারে, এবং এর যাক 486 00:21:26,560 --> 00:21:30,115 এটি আকার 5 হাজার বলতে, এবং আপনি অ্যারে বন্ধনী 5 স্পর্শ করার চেষ্টা করুন. 487 00:21:30,115 --> 00:21:34,150 আপনি যে লিখতে চেষ্টা যদি তাই মান, যে মেমরি এক টুকরা না 488 00:21:34,150 --> 00:21:37,440 আপনি আসলে অ্যাক্সেস আছে, এবং যে তাই আপনি যদি এই সমস্যার পেতে যাচ্ছেন, 489 00:21:37,440 --> 00:21:39,272 আকার 4 অবৈধ লেখার বলছে. 490 00:21:39,272 --> 00:21:42,480 Valgrind আপনি আছেন চিনতে যাচ্ছে অযথাযথভাবে মেমরি স্পর্শ করার চেষ্টা. 491 00:21:42,480 --> 00:21:43,980 >> এবং যে quiz0 জন্য এটি. 492 00:21:43,980 --> 00:21:47,065 আমি রব বাউডেন আছি, এবং এই CS50. 493 00:21:47,065 --> 00:21:51,104