1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> ডেভিড জে MALAN: এটি CS50 এবং এই সপ্তাহে চার শুরু হয়. 3 00:00:14,050 --> 00:00:18,630 আর, ছেলে, ভক্সওয়াগেন হয় সব কারণ সফ্টওয়্যার সমস্যা. 4 00:00:18,630 --> 00:00:20,264 আমাদের কটাক্ষপাত করা যাক. 5 00:00:20,264 --> 00:00:20,930 [ভিডিও প্লেব্যাক] 6 00:00:20,930 --> 00:00:25,560 -Cars, বুদ্ধিমান অক্ষর দ্রুত এবং অগ্নিশর্মা চলচ্চিত্রে. 7 00:00:25,560 --> 00:00:29,100 এই সপ্তাহে জার্মান গাড়ি ভক্সওয়াগেন নিজেই পাওয়া 8 00:00:29,100 --> 00:00:32,490 একটি কলঙ্ক মাঝখানে সম্ভাব্য অপরাধমূলক অনুপাত. 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen বিলিয়ান জন্য সম্বন্ধ করা হয় জরিমানা, সম্ভব অপরাধের অভিযোগ 10 00:00:36,060 --> 00:00:38,560 তার আধিকারিকদের জন্য, হিসাবে কোম্পানি ক্ষমা 11 00:00:38,560 --> 00:00:41,840 11 মিলিয়ন গাড়ি rigging জন্য এটা নির্গমন পরীক্ষা বীট সাহায্য. 12 00:00:41,840 --> 00:00:44,950 >> -Certain ডিজেল মডেলের ছিল অত্যাধুনিক সফটওয়্যার দিয়ে ডিজাইন 13 00:00:44,950 --> 00:00:48,440 যে সহ ব্যবহৃত তথ্য স্টিয়ারিং এবং গাড়ির অবস্থান 14 00:00:48,440 --> 00:00:51,870 গাড়ী ছিল নির্ধারণ গতি নির্গমন টেস্টিং চলছে. 15 00:00:51,870 --> 00:00:55,650 যে পরিস্থিতিতে অধীনে, ইঞ্জিন বিষাক্ত নির্গমন কমাবে. 16 00:00:55,650 --> 00:00:59,070 কিন্তু গাড়ির বাইপাস করার কারচুপি হয়েছিল এটা চালিত হচ্ছে যখন. 17 00:00:59,070 --> 00:01:03,320 নির্গমন 40 থেকে 10 বৃদ্ধি গ্রহণযোগ্য নম্বর EPA মাত্রা উপরে বার. 18 00:01:03,320 --> 00:01:04,280 >> [END টি প্লেব্যাক] 19 00:01:04,280 --> 00:01:05,220 >> ডেভিড জে MALAN: সুতরাং আসুন এক নজর দেখে নাও 20 00:01:05,220 --> 00:01:07,250 এবং ঠিক কিভাবে এই দেখুন বাস্তবায়িত হতে পারে 21 00:01:07,250 --> 00:01:09,680 এবং এই প্রভাব পড়তে পারে এই মত অনেক গাড়ি. 22 00:01:09,680 --> 00:01:12,840 সুতরাং আমার হাতে এখানে প্রেস যে EPA-- দ্বারা জারি প্রকাশ ছিল 23 00:01:12,840 --> 00:01:14,620 পরিবেশগত প্রোটেকশন এজেন্সি যা 24 00:01:14,620 --> 00:01:18,032 অবস্থান নিয়ন্ত্রক সংস্থা যে পরিবেশগত উদ্বেগ হ্যান্ডলগুলি, 25 00:01:18,032 --> 00:01:19,740 এবং তারপর প্রকৃত ছিল যে আইনি নোটিশ 26 00:01:19,740 --> 00:01:22,420 মাত্র কয়েক দিন আগে ভক্সওয়াগেন পাঠাতে. 27 00:01:22,420 --> 00:01:26,530 >> তাই নম্বর EPA লিখেছেন, এবং এখন discloses প্রকাশ্যে একটি অত্যাধুনিক সফটওয়্যার 28 00:01:26,530 --> 00:01:29,390 নির্দিষ্ট অ্যালগরিদম ভক্সওয়াগেন যানবাহন সনাক্ত 29 00:01:29,390 --> 00:01:32,630 যখন গাড়ী চলছে হয় সরকারী নির্গমন টেস্টিং 30 00:01:32,630 --> 00:01:36,505 এবং পূর্ণ নির্গমন সক্রিয় শুধুমাত্র পরীক্ষার সময় উপর নিয়ন্ত্রণ করে. 31 00:01:36,505 --> 00:01:38,380 কার্যকারিতা এই যানবাহন দূষণ 32 00:01:38,380 --> 00:01:43,260 নির্গমন নিয়ন্ত্রণ যন্ত্র ব্যাপকভাবে হয় সব স্বাভাবিক ড্রাইভিং সময় হ্রাস 33 00:01:43,260 --> 00:01:44,320 পরিস্থিতিতে. 34 00:01:44,320 --> 00:01:48,190 এই দেখা যে গাড়ির মধ্যে ফলাফল পরীক্ষাগার বা পরীক্ষামূলক মান 35 00:01:48,190 --> 00:01:52,790 স্টেশন, কিন্তু স্বাভাবিক অপারেশনের সময় নাইট্রোজেন oxides-- বা NOx-- নির্গত 36 00:01:52,790 --> 00:01:54,950 এ পর্যন্ত 40 বার স্ট্যান্ডার্ড. 37 00:01:54,950 --> 00:01:58,220 ভক্সওয়াগেন দ্বারা উত্পাদিত সফটওয়্যার একটি উদ্ধৃতি উদ্ধতি, পরাজয়ের ডিভাইস, হয় 38 00:01:58,220 --> 00:02:00,650 ক্লিন দ্বারা সংজ্ঞায়িত মার্কিন যুক্তরাষ্ট্রে এয়ার এক্ট. 39 00:02:00,650 --> 00:02:03,410 >> তারা বলে যেতে EPA এবং অন্য সংস্থা 40 00:02:03,410 --> 00:02:07,020 পরাজয়ের ডিভাইস উদলা স্বাধীন বিশ্লেষণের পর সফটওয়্যার 41 00:02:07,020 --> 00:02:09,660 ওয়েস্ট গবেষক ভার্জিনিয়া বিশ্ববিদ্যালয়ের. 42 00:02:09,660 --> 00:02:14,160 NOx দূষণ ঘটাতে সাহায্য নাইট্রোজেন ডাই অক্সাইড, স্থল ওজোন, 43 00:02:14,160 --> 00:02:15,700 এবং সূক্ষ্ম বস্তুকণা. 44 00:02:15,700 --> 00:02:18,090 এই এক্সপোজার দূষণকারী লিঙ্ক হয়েছে 45 00:02:18,090 --> 00:02:20,870 বিস্তৃত সঙ্গে গুরুতর স্বাস্থ্য প্রভাব, 46 00:02:20,870 --> 00:02:23,637 হাঁপানি সহ আক্রমণ এবং অন্যান্য শ্বাসযন্ত্রের 47 00:02:23,637 --> 00:02:26,470 যথেষ্ট গুরুতর হতে পারে যে অসুস্থতা হাসপাতালে মানুষ পাঠাতে. 48 00:02:26,470 --> 00:02:28,660 ওজোন এক্সপোজার এবং বস্তুকণা এছাড়াও আছে 49 00:02:28,660 --> 00:02:31,960 অকাল যুক্ত হয়েছে সংশ্লিষ্ট শ্বাসযন্ত্রের কারণে মৃত্যু 50 00:02:31,960 --> 00:02:35,690 বা কার্ডিওভাসকুলার প্রভাব সম্পর্কিত. 51 00:02:35,690 --> 00:02:38,940 শিশু, বৃদ্ধ, সঙ্গে মানুষ preexisting শ্বাসযন্ত্রের রোগ 52 00:02:38,940 --> 00:02:42,840 বিশেষ জন্য ঝুঁকি থাকে এই দূষণকারী স্বাস্থ্য প্রভাব. 53 00:02:42,840 --> 00:02:45,056 >> যথেষ্ট এটা বেশ সিরিয়াস, বলতে হয়. 54 00:02:45,056 --> 00:02:46,930 আর এর পড়া শেষ করে ফেলা উচিত শুধু একটা আরো উদ্ধৃতাংশ 55 00:02:46,930 --> 00:02:49,370 এবং তারপর আমরা কটাক্ষপাত করব অন্তর্নিহিত প্রভাব 56 00:02:49,370 --> 00:02:50,920 একটি গাড়ী প্রেক্ষাপটে এই. 57 00:02:50,920 --> 00:02:53,730 বিশেষ করে, ভক্সওয়াগেন শিল্পজাত ইনস্টল 58 00:02:53,730 --> 00:02:56,210 তথাকথিত সফ্টওয়্যার বৈদ্যুতিন নিয়ন্ত্রণ 59 00:02:56,210 --> 00:02:59,320 module-- বা ECM-- এর স্যাটেলাইট যে এইসব যানবাহন 60 00:02:59,320 --> 00:03:03,580 গাড়ির জন্য পরীক্ষা করা হয়েছিল যখন নম্বর EPA প্রকার মানের সঙ্গে সঙ্গতিপূর্ণ. 61 00:03:03,580 --> 00:03:07,510 সহ বিভিন্ন ইনপুট উপর ভিত্তি করে চাকা অবস্থান, গাড়ির 62 00:03:07,510 --> 00:03:11,280 গতি, ইঞ্জিন এর সময়কাল অপারেশন, এবং আবহমানসংক্রান্ত চাপ, 63 00:03:11,280 --> 00:03:13,720 এই ইনপুট অবিকল পরামিতি ট্র্যাক 64 00:03:13,720 --> 00:03:17,600 জন্য ব্যবহৃত ফেডারেল পরীক্ষা পদ্ধতি নিয়ে EPA শংসাপত্র জন্য প্রকার পরীক্ষামূলক 65 00:03:17,600 --> 00:03:18,400 উদ্দেশ্যে. 66 00:03:18,400 --> 00:03:21,850 >> EPA এর প্রকার পরীক্ষার সময়, যানবাহন ECM সফটওয়্যার 67 00:03:21,850 --> 00:03:25,060 উত্পাদিত যা সফটওয়্যার দৌড়ে অনুবর্তী নির্গমন ফলাফল. 68 00:03:25,060 --> 00:03:28,340 সব অন্য সময়ে, গাড়ির ECM সফটওয়্যার 69 00:03:28,340 --> 00:03:31,090 একটি পৃথক সড়ক দৌড়ে কমে যা ক্রমাঙ্কন 70 00:03:31,090 --> 00:03:34,360 কার্যকারিতা সার্বিক প্রকার নিয়ন্ত্রণ ব্যবস্থা, 71 00:03:34,360 --> 00:03:37,864 বিশেষভাবে সিলেক্টিভ ক্যাটালিটিক লীন হয় NOx হ্রাস trap-- 72 00:03:37,864 --> 00:03:39,280 যা আমরা একটি মুহূর্ত সম্পর্কে দেখতে পাবেন. 73 00:03:39,280 --> 00:03:43,040 NOx এর ফলে, নির্গমন 10 থেকে 40 বার একটি গুণক দ্বারা বর্ধিত 74 00:03:43,040 --> 00:03:47,450 নম্বর EPA অনুবর্তী মাত্রা উপরে ড্রাইভ সাইকেল ধরনের উপর নির্ভর করে. 75 00:03:47,450 --> 00:03:50,800 >> এই সত্যিই মানে, এবং তাই কি সফটওয়্যার চলমান সোর্স কোড 76 00:03:50,800 --> 00:03:53,190 ভক্সওয়াগেন এর উপর না আছে এখনও প্রকাশ্যে, প্রকাশ করা 77 00:03:53,190 --> 00:03:56,460 যে, কার্যকরভাবে, এই হল সমতুল্য ভিতরে কোথাও নেই 78 00:03:56,460 --> 00:03:57,830 ভক্সওয়াগেন এর কোড. 79 00:03:57,830 --> 00:04:02,200 যদি আপনি পরীক্ষা, এবং হচ্ছে গাড়ী যদি নির্দিষ্ট পরিবেশগত বিষয়গুলির সনাক্ত 80 00:04:02,200 --> 00:04:04,330 স্টিয়ারিং হুইল ভালো অবস্থান বা আন্দোলন 81 00:04:04,330 --> 00:04:06,710 অথবা তার অভাব গাড়ির বা উহার অন্যান্য কারণের যে কোন সংখ্যার 82 00:04:06,710 --> 00:04:09,940 যে বর্তমানে অনুসিদ্ধান্ত এই সূত্র অংশ হতে, 83 00:04:09,940 --> 00:04:12,370 তারা কেবল চালু পূর্ণ নির্গমন নিয়ন্ত্রণ. 84 00:04:12,370 --> 00:04:15,670 অন্য কথায়, তারা শুরু দূষণকারী কম emitting. 85 00:04:15,670 --> 00:04:18,769 >> অন্যথায়, প্রত্যেক অন্যান্য পরিস্থিতি এটা হচ্ছে হিসেবে সনাক্ত না হলে 86 00:04:18,769 --> 00:04:20,790 ল্যাবরেটরী, তারা ঠিক না. 87 00:04:20,790 --> 00:04:24,320 এবং যাতে আপনি আরো মধ্যে এই প্রক্রিয়া সহজ করতে পারেন কিছু কংক্রিট pseudocode 88 00:04:24,320 --> 00:04:24,820 এটার মত. 89 00:04:24,820 --> 00:04:27,810 চাকার বাঁক কিন্তু হয় চাকা, ইঙ্গিতপূর্ণ নয় 90 00:04:27,810 --> 00:04:30,060 গাড়ী কিছু হয় যে আবর্তিত সিলিন্ডার ধরনের 91 00:04:30,060 --> 00:04:32,550 কিন্তু কিছু ধরনের গুদাম পরীক্ষা করা হচ্ছে, 92 00:04:32,550 --> 00:04:36,070 তারপর হিসাবে আচরণ নম্বর EPA আপনি চাই. 93 00:04:36,070 --> 00:04:37,960 অন্যথা না. 94 00:04:37,960 --> 00:04:40,420 তাই এর কটাক্ষপাত করা যাক একটি ছোট ভিডিও এ যে 95 00:04:40,420 --> 00:04:45,391 কি প্রভাব কটাক্ষপাত নেয় আসলে যান্ত্রিকভাবে এই হয়. 96 00:04:45,391 --> 00:04:48,620 >> [ভিডিও প্লেব্যাক] 97 00:04:48,620 --> 00:04:52,800 >> শুক্রবার -শেষ নম্বর EPA ঘোষণা যে কিছু ভক্সওয়াগেন অডি গাড়ির 2009 এর মধ্যে তৈরি 98 00:04:52,800 --> 00:04:55,840 এবং এই বছর ব্যবহার করা হয়েছে একটি তথাকথিত পরাজয়ের ডিভাইস 99 00:04:55,840 --> 00:04:59,060 নির্গমন আইন স্বমতে আনা ক্লিন এয়ার রাখতে. 100 00:04:59,060 --> 00:05:01,700 কিন্তু যে ঠিক কি মানে? 101 00:05:01,700 --> 00:05:04,666 >> ওয়েল, আধুনিক গাড়ির ডজন আছে তাদের ভিতরে কম্পিউটারের. 102 00:05:04,666 --> 00:05:07,040 আর ঐ কম্পিউটারের কিছু ফাংশন সমণ্বয় সাহায্য 103 00:05:07,040 --> 00:05:09,590 সর্বোত্তম জন্য ইঞ্জিন কর্মক্ষমতা নিশ্চিত তৈরীর সময় 104 00:05:09,590 --> 00:05:12,340 অত্যধিক আবর্জনা নেই যে নিষ্কাশন নল থেকে বেরিয়ে আসছে. 105 00:05:12,340 --> 00:05:15,170 তারা আসলে কাজ করে থাকেন এখন কয়েক দশক ধরে এই ভাবে. 106 00:05:15,170 --> 00:05:17,380 মূলত, প্রতিটি অংশ একটি আধুনিক গাড়ির ইঞ্জিন 107 00:05:17,380 --> 00:05:20,080 একটি সেন্সর বা নিয়ন্ত্রক হয়েছে এটা, এবং এইসব কম্পিউটারে 108 00:05:20,080 --> 00:05:23,460 তথ্য হাজারের মধ্যে পড়া হয় দ্বিতীয় সমন্বয় করছে প্রতি বার 109 00:05:23,460 --> 00:05:26,220 এয়ার জ্বালানী অনুপাত মত যে সিলিন্ডার মধ্যে যাচ্ছে. 110 00:05:26,220 --> 00:05:28,730 >> এই প্রতারণার ভক্সওয়াগেন এবং অডি মডেল diesels থেকে, হয় 111 00:05:28,730 --> 00:05:30,890 এবং diesels এক আরো আছে সত্যিই গুরুত্বপূর্ণ কম্পিউটার 112 00:05:30,890 --> 00:05:34,030 যা নিয়ন্ত্রিত পরামিতি, যাচ্ছে unburned জ্বালানী পরিমাণ 113 00:05:34,030 --> 00:05:35,200 নিষ্কাশন মধ্যে. 114 00:05:35,200 --> 00:05:36,310 এখন যে খারাপ শোনাচ্ছে. 115 00:05:36,310 --> 00:05:39,642 আপনি চাইবেন পছন্দের নয় নিষ্কাশন মধ্যে যাওয়া unburned জ্বালানী. 116 00:05:39,642 --> 00:05:41,600 কিন্তু একটি ক্ষেত্রে ডিজেল, আপনি কিছু আছে 117 00:05:41,600 --> 00:05:46,110 একটি ডিভাইস যা একটি NOx ফাঁদ নামক যে শোষণ ও নাইট্রোজেন অক্সাইড জন্য যাত্রীর সঙ্গের নিজলটবহর 118 00:05:46,110 --> 00:05:48,880 দূষণকারী যে would হয় অন্যথায় বায়ুমন্ডলে ঢোকা. 119 00:05:48,880 --> 00:05:53,040 এবং যে হয় NOx ফাঁদ প্রভাব unburned জ্বালানী দিয়ে ফুটিয়ে তোলা হয়েছে. 120 00:05:53,040 --> 00:05:56,650 সুতরাং একটি পরাজয়ের ডিভাইস একটি বিশেষ প্রোগ্রাম এই কম্পিউটারের ভিতরে যে এটি করতে পারেন 121 00:05:56,650 --> 00:05:59,527 গাড়ী প্রকার পূরণ মত চেহারা মান এটা হয় না, এমনকি যখন. 122 00:05:59,527 --> 00:06:01,110 ভক্সওয়াগেন তার হাতের একটি সমস্যা. 123 00:06:01,110 --> 00:06:04,050 তার ডিজেল ইঞ্জিনের পরিচিত ছিল মহান জ্বালানী অর্থনীতি পাবার জন্য, 124 00:06:04,050 --> 00:06:07,510 কিন্তু হয় NOx ফাঁদ শুধুমাত্র ভাল কাজ করে আরো জ্বালানী ব্যবহার করা হচ্ছে যখন. 125 00:06:07,510 --> 00:06:10,460 তাই গাড়ী, সনাক্ত করতে পারব এই পরাজয়ের ডিভাইস ব্যবহার করে, 126 00:06:10,460 --> 00:06:13,870 এটি একটি নির্গমন পেয়ে ছিল যখন পরীক্ষা, এটা আরো জ্বালানী ব্যবহার করতে হবে, 127 00:06:13,870 --> 00:06:16,830 ভাল হয় NOx ফাঁদ কাজ করতে, নির্গমন জরিমানা করা হবে. 128 00:06:16,830 --> 00:06:21,130 কিন্তু তারপর আপনি, রাস্তা ডিভাইস পেতে বন্ধ সক্রিয়, আপনি কম জ্বালানী বার্ন করছি 129 00:06:21,130 --> 00:06:24,256 কিন্তু আপনি হিসাবে অনেক হিসাবে 40 বার নির্বাণ করছি বায়ুমন্ডলে আরো দূষণকারী. 130 00:06:24,256 --> 00:06:26,130 কিন্তু নরক কিভাবে গাড়ী এটি ছিল জানেন 131 00:06:26,130 --> 00:06:27,720 নির্গমন মেনে চলার জন্য পরীক্ষা করা হচ্ছে? 132 00:06:27,720 --> 00:06:30,590 নম্বর EPA এটি একটি অত্যাধুনিক ছিল বলেছেন কিছু চেক করে সিস্টেম 133 00:06:30,590 --> 00:06:34,090 চাকা অবস্থানে মত, গতি, ইঞ্জিন ছিল কতদিন, 134 00:06:34,090 --> 00:06:35,507 এবং এমনকি বায়ুমন্ডলীয় চাপ. 135 00:06:35,507 --> 00:06:37,673 অন্য কথায়, ছিল কোন ভাবে এই আকস্মিক ছিল 136 00:06:37,673 --> 00:06:40,260 সফটওয়্যার ছিল কারণ সনাক্ত করা খুব সাবধানে পরিকল্পিত 137 00:06:40,260 --> 00:06:41,630 একটি সরকারী নির্গমন পরীক্ষা. 138 00:06:41,630 --> 00:06:43,588 যে কিছু প্রশংসনীয় গুরুতর প্রতারণা ও যে 139 00:06:43,588 --> 00:06:45,420 কেন ভক্সওয়াগেন হয় যেমন গুরুতর সমস্যা. 140 00:06:45,420 --> 00:06:48,600 বস্তুত, তাদের সিইও, মার্টিন Winterkorn, শুধু ক্ষমতা থেকে সরে দাঁড়ান. 141 00:06:48,600 --> 00:06:49,820 >> তাই কি চোদাটাই না চুদল? 142 00:06:49,820 --> 00:06:53,900 আচ্ছা আপনি অর্ধ মিলিয়ন মধ্যে একজন হন, তাহলে ডিজেল Jettas, দ্য বিট্লস, Golfs, Passats মনে, 143 00:06:53,900 --> 00:06:56,220 বা অডি A3s, প্রভাবিত ভাল খবর হয় 144 00:06:56,220 --> 00:06:57,886 যে আপনার গাড়ী এখনও চালনা করা নিরাপদ. 145 00:06:57,886 --> 00:07:00,510 আপনি তা পরিত্যাগ করা হবে না ভক্সওয়াগেন একটি রিকল যতক্ষণ. 146 00:07:00,510 --> 00:07:02,509 কিন্তু কিছু সময়ে তারা আছেন সম্ভবত আছে যাচ্ছে 147 00:07:02,509 --> 00:07:04,230 আপনার গাড়ির ভিতর সফটওয়্যার আপডেট করার জন্য. 148 00:07:04,230 --> 00:07:06,927 এটি ঘটে যখন আপনি পারে ট্যাংক প্রতি কম মাইল পেতে. 149 00:07:06,927 --> 00:07:09,260 আইনজীবীরা ইতিমধ্যে প্রস্তুতি নিচ্ছে ক্লাস একশন মামলা জন্য আপ 150 00:07:09,260 --> 00:07:12,500 তাই মালিকরা ক্ষতিপূরণ পেতে পারে ভবিষ্যতে কিছু সময়ে. 151 00:07:12,500 --> 00:07:15,832 কিন্তু যে যাচ্ছে না খুব শীঘ্রই যে কোন সময় ঘটতে. 152 00:07:15,832 --> 00:07:16,711 >> [END টি প্লেব্যাক] 153 00:07:16,711 --> 00:07:19,960 ডেভিড জে MALAN: সুতরাং এই আসলে উত্থাপন একটি আকর্ষণীয় বড় ছবি প্রশ্ন 154 00:07:19,960 --> 00:07:20,660 হিসাবে বিশ্বাস করতে. 155 00:07:20,660 --> 00:07:21,160 রাইট? 156 00:07:21,160 --> 00:07:24,300 আমাদের সমস্ত iPhones বা Androids আছে বা আমাদের পকেট কিছু সম্ভবত 157 00:07:24,300 --> 00:07:26,500 এই দিন, বা ল্যাপটপের হয় আমাদের laps এবং 158 00:07:26,500 --> 00:07:28,510 তৈরি চলমান সফটওয়্যার অ্যাপল এবং Microsoft দ্বারা 159 00:07:28,510 --> 00:07:30,710 অন্যান্য কোম্পানীর এবং কাঁদি. 160 00:07:30,710 --> 00:07:34,240 কিন্তু কিভাবে আমরা জানি যে কি এই সফটওয়্যার তৈরী করছেন 161 00:07:34,240 --> 00:07:37,680 কি এইসব আসলে কোম্পানি তারা করছেন বলে? 162 00:07:37,680 --> 00:07:39,610 >> উদাহরণস্বরূপ, যারা এর বলে যে প্রত্যেক সময় আপনি 163 00:07:39,610 --> 00:07:42,200 আপনার আইফোনের একটি ফোন কল করতে বা অ্যানড্রইড ফোন বা মত, 164 00:07:42,200 --> 00:07:45,650 যে ফোন নাম্বার নয় যে কিছু কোম্পানির সার্ভারে আপলোড করা হচ্ছে 165 00:07:45,650 --> 00:07:48,399 কিছু প্রোগ্রাম আপনাকে করেছি কারণ এটা অপারেটিং কিনা, লেখা 166 00:07:48,399 --> 00:07:51,070 iOS বা Android এর মত সিস্টেম নিজেই, অথবা আপনি ডাউনলোড করেছি কারণ 167 00:07:51,070 --> 00:07:53,880 কিছু থার্ড পার্টি অ্যাপ্লিকেশন একরকম শোনা হয় যে 168 00:07:53,880 --> 00:07:57,120 সবকিছু যে আপনি টাইপ করছেন বা সবকিছু আপনি আসলে বলছে. 169 00:07:57,120 --> 00:07:59,500 আপনি জানি না কিভাবে, কখন আপনাকে বলছি ঝনঝন দৌড়াচ্ছে 170 00:07:59,500 --> 00:08:02,590 অথবা কম্পাইল করতে আপনার এবং CS50, কিভাবে নিজের সফটওয়্যার 171 00:08:02,590 --> 00:08:06,080 আপনি যে CS50 এর নিজস্ব কর্মীদের না, CS50 লাইব্রেরি প্রণালী দ্বারা 172 00:08:06,080 --> 00:08:08,690 ভাষার লগিং করা হয়েছে আপনি কি কখনও করেছি অর্জিত স্ট্রিং 173 00:08:08,690 --> 00:08:10,276 বা ভাষার আপনি কি কখনও করেছি অর্জিত ইঞ্চি? 174 00:08:10,276 --> 00:08:12,900 ওয়েল, আপনি অবশ্যই তাকান পারে কিছু সোর্স কোড 175 00:08:12,900 --> 00:08:15,233 CS50 লাইব্রেরি মত, আপনি সোর্স কোড তাকান পারে 176 00:08:15,233 --> 00:08:18,170 লিনাক্স অপারেটিং সিস্টেম এর জন্য এবং CS50 আইডিই চলমান. 177 00:08:18,170 --> 00:08:23,090 কিন্তু একটি আশ্চর্যজনক উপস্থাপনা 1984 সালে ফিরে দেওয়া হয় 178 00:08:23,090 --> 00:08:26,730 একটি করে টুরিং পুরস্কার প্রাপ্তির মধ্যে পরিচিত খুব বিখ্যাত কম্পিউটার বিজ্ঞানী 179 00:08:26,730 --> 00:08:29,750 নামে কেন থম্পসন as-- যারা টুরিং পুরস্কার লাভ যা 180 00:08:29,750 --> 00:08:33,500 কম্পিউটার বিজ্ঞান এর সাজানোর নোবেল পুরস্কার, যদি আপনি হবে, 181 00:08:33,500 --> 00:08:35,309 একটি তার কাজের জন্য অপারেটিং সিস্টেম বলা 182 00:08:35,309 --> 00:08:39,039 অনুরূপ, যা ইউনিক্স, আমরা যা ব্যবহার করি তা আত্মা লিনাক্স. 183 00:08:39,039 --> 00:08:41,960 এবং প্রশ্ন তিনি জিজ্ঞাসা তার মূলত গ্রহণযোগ্যতা বক্তৃতা, 184 00:08:41,960 --> 00:08:44,910 জন্য কাঠামো পাড়ার নিচে বছর এবং আলোচনার বছর 185 00:08:44,910 --> 00:08:46,970 আস্থা ও নিরাপত্তা সম্পর্কে, এই ছিল. 186 00:08:46,970 --> 00:08:50,410 কতখানি উচিত এক ট্রাস্ট একটি করুন একটি টুকরা প্রোগ্রামটিতে যে বিবৃতি 187 00:08:50,410 --> 00:08:53,010 এর software-- ট্রোজান হর্স বিনামূল্যে হয়? 188 00:08:53,010 --> 00:08:56,500 সম্ভবত এটা বিশ্বাস করতে আরো গুরুত্বপূর্ণ সফটওয়্যার লিখেছে. 189 00:08:56,500 --> 00:08:58,650 >> এবং সত্য, আমরা লিঙ্ক করেছি আলোচনা করতে যে তিনি 190 00:08:58,650 --> 00:09:02,400 এই পুরস্কার গ্রহণ যখন দিয়েছেন CS50 এর ওয়েবসাইটে '80s মধ্যে 191 00:09:02,400 --> 00:09:04,030 আজকের জন্য লেকচার পাতা অধীনে. 192 00:09:04,030 --> 00:09:06,071 আপনি দেখতে পাবেন কি কারণ তিনি আসলে দেয় 193 00:09:06,071 --> 00:09:09,430 কিভাবে এমনকি একটি মোটামুটি সহজ উদাহরণ ঝনঝন বা যাই হোক না কেন ভালো একটি কম্পাইলার 194 00:09:09,430 --> 00:09:13,950 অন্যদের অতীতে ব্যবহার করেছেন কম্পাইলার, কম্পাইলার আমরা এমবেড তাহলে কি 195 00:09:13,950 --> 00:09:18,190 নিজেদেরকে যদি একটু ব্যবহার করা হয় মূলত বলছেন যে অবস্থা, 196 00:09:18,190 --> 00:09:22,360 আপনি এই কোড ব্যবহার করা হয় যে লক্ষ্য করা হলে GetString ফাংশন বা কাজ GetInt 197 00:09:22,360 --> 00:09:26,600 ফাংশন, এগিয়ে যান এবং সন্নিবেশ একটি খিড়কি বা একটি সাহসী যোদ্ধা ঘোড়া 198 00:09:26,600 --> 00:09:29,340 যেমন যে প্রোগ্রাম এখন কিছু শূন্য আছে 199 00:09:29,340 --> 00:09:30,930 এবং দূষিত কিছু লোক যে কি. 200 00:09:30,930 --> 00:09:33,080 সব লগিং আপনার যে তথ্য আপলোড কি-স্ট্রোক 201 00:09:33,080 --> 00:09:35,100 কিছু সার্ভার, অথবা সত্যিই কিছু করতে. 202 00:09:35,100 --> 00:09:37,290 >> আর তা কেন থম্পসন তার আলাপ না করা যায় 203 00:09:37,290 --> 00:09:40,580 এমনকি যদি যে প্রদর্শন করা হয় আপনি সোর্স এক্সেস আছে 204 00:09:40,580 --> 00:09:43,794 একটি কম্পাইলার কোড যে বিদ্বেষপূর্ণ এই কাজ হতে পারে 205 00:09:43,794 --> 00:09:46,210 এটা কারণ কোন ব্যাপার না এই চিকেন এবং ডিম আছে 206 00:09:46,210 --> 00:09:49,500 অতীতে অনেক বাস্তবতা বছর যদ্দ্বারা কম্পাইলার 207 00:09:49,500 --> 00:09:51,960 নিজেদের কম্পাইল করা হয়. 208 00:09:51,960 --> 00:09:55,440 অন্য কথায়, বহুকাল আগে যখন কেউ প্রথম কম্পাইলার লেখা দরকার ছিল. 209 00:09:55,440 --> 00:09:59,060 এবং তারপরে, যে কোনো সময় তারা আপডেট করেছি তার সোর্স কোড পরিবর্তন করে একটি কম্পাইলার, 210 00:09:59,060 --> 00:10:02,020 বৈশিষ্ট্য যুক্ত করা এবং এটি কম্পাইল করতে থাকেন আমাদের মত মানুষ ব্যবহার করার জন্য, ভাল, 211 00:10:02,020 --> 00:10:04,270 তারা পুরানো ব্যবহার করছেন কম্পাইলার সংস্করণ 212 00:10:04,270 --> 00:10:06,370 নতুন কম্পাইল কম্পাইলার সংস্করণ. 213 00:10:06,370 --> 00:10:08,370 আর আপনি কটাক্ষপাত করা হলে তিনি দিয়েছেন যে আলাপ, 214 00:10:08,370 --> 00:10:10,970 আপনি, কারণ যে দেখতে পাবেন যে গোলাকার এর, 215 00:10:10,970 --> 00:10:14,330 আপনি আসলে বাগ থাকতে পারে বা ট্রোজান হর্স সফটওয়্যার এমবেড 216 00:10:14,330 --> 00:10:14,990 আমরা ব্যবহার করছি. 217 00:10:14,990 --> 00:10:18,010 এবং আপনি তাকান, এমনকি যদি ঐ প্রোগ্রামের জন্য সোর্স কোড, 218 00:10:18,010 --> 00:10:21,550 এটা এমনকি স্পষ্ট হতে পারে কপট আসলে কারণ 219 00:10:21,550 --> 00:10:24,710 একটি কিছু পুরোনো সংস্করণ বরাবর হয়েছে যে কম্পাইলার 220 00:10:24,710 --> 00:10:27,340 আমাদের সফ্টওয়্যার মধ্যে হুমকি ইনজেকশন. 221 00:10:27,340 --> 00:10:29,740 >> যা শুধুমাত্র এক বলার সত্যিই সম্ভব নয় এবং না করা উচিত 222 00:10:29,740 --> 00:10:32,939 ট্রাস্ট সফটওয়্যার আমাদের ল্যাপটপের চলমান ফোন বা স্থানের কোনো সংখ্যা বা. 223 00:10:32,939 --> 00:10:36,230 এবং বাস্তবিকই, পরে যখন এই সেমিস্টারে আমরা ওয়েব প্রোগ্রামিং সম্পর্কে কথা বলা শুরু 224 00:10:36,230 --> 00:10:38,521 এবং আসলে নির্মাণ শুরু ওয়েব অ্যাপ্লিকেশন নিজেদেরকে, 225 00:10:38,521 --> 00:10:40,285 আমাদের অনুমতি ছাড়া এই বিষয়ে কথা বলতে পারবেন হুমকি এবং অন্যদের. 226 00:10:40,285 --> 00:10:43,410 এখন, আপনি বিস্ময়ের ও লক্ষ্য আছে হতে পারে একটি ক্ষুদ্র সামান্য ডার্থ ছিল 227 00:10:43,410 --> 00:10:45,842 ক্লিপ ভেডার যে সীমাস্থ আছে দেশ ছিল 228 00:10:45,842 --> 00:10:47,550 ভক্সওয়াগেন সম্পর্কে. যদি আপনি দেখেননি করেছি, আমি 229 00:10:47,550 --> 00:10:49,190 আমরা হালকা করা উচিত মেজাজ এই সব কারণ 230 00:10:49,190 --> 00:10:50,780 খুব বিষণ্ণ এবং ভয়ানক. 231 00:10:50,780 --> 00:10:52,910 আমি পিছনে তাকান যাচ্ছি সুপার বোল 2011 এ 232 00:10:52,910 --> 00:10:55,300 যখন একটি বাণিজ্যিক Volkswagen-- এবং এই 233 00:10:55,300 --> 00:10:59,620 প্রায় again-- তাদের মনোরম তোলে টিভিতে প্রথমবার সম্প্রচারিত. 234 00:10:59,620 --> 00:11:04,039 এটা 60 সেকেন্ড ক্লিপ এর আমি আপনি উপভোগ করবেন মনে করি যে. 235 00:11:04,039 --> 00:11:04,705 [ভিডিও প্লেব্যাক] 236 00:11:04,705 --> 00:11:08,198 [সঙ্গীত - "থেকে Star Wars" থেকে থিম] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [কুকুর ছাল] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [গাড়ী আরম্ভ] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [END টি প্লেব্যাক] 243 00:12:05,955 --> 00:12:06,830 ডেভিড জে MALAN: হ্যাঁ. 244 00:12:06,830 --> 00:12:07,663 আমি শুধু চেক ছিল. 245 00:12:07,663 --> 00:12:11,360 যে গাড়ির লঙ্ঘনের তালিকার হয়. 246 00:12:11,360 --> 00:12:12,000 ঠিক আছে. 247 00:12:12,000 --> 00:12:14,040 তাই আমরা কিছু তাকান একটি মুহূর্ত আগে pseudocode. 248 00:12:14,040 --> 00:12:15,380 এবং এখানে একটি বড় pseudocode কোড স্নিপেট 249 00:12:15,380 --> 00:12:16,921 যে আমরা এ পর্যন্ত কয়েক বার দেখা করেছি. 250 00:12:16,921 --> 00:12:19,970 আর এর এই একটি সুযোগ ব্যবহার করা যাক এখন একটি নতুন প্রোগ্রামিং পরিচয় করিয়ে 251 00:12:19,970 --> 00:12:23,776 আমরা কি যে কৌশল algorithmically, দেখতে 252 00:12:23,776 --> 00:12:25,400 গত সপ্তাহে আমরা একত্রীকরণ সাজানোর দিকে তাকিয়ে. 253 00:12:25,400 --> 00:12:28,270 কিন্তু এর এটা ডিক্রী এবং কিভাবে দেখতে দিন আমরা প্রকৃত কোড এটি ব্যবহার হতে পারে 254 00:12:28,270 --> 00:12:30,350 এবং তারপর আমরা এই ব্যবহার করতে যাচ্ছেন রাস্তা নিচে কৌশল সবচেয়ে 255 00:12:30,350 --> 00:12:32,000 অন্য কিছু সমস্যার সমাধান করতে পারে. 256 00:12:32,000 --> 00:12:35,790 >> তাই এই প্রথম প্রোগ্রাম এক ছিল আমরা কখনও pseudocode কোড যদ্যপি লিখেছিলেন. 257 00:12:35,790 --> 00:12:37,790 এবং কি এই প্রোগ্রাম আমাদের অবশ্যই করতে অনুমতিপ্রাপ্ত 258 00:12:37,790 --> 00:12:41,510 একটি ফোন বই মাইক স্মিথ এটি ছিল. 259 00:12:41,510 --> 00:12:46,216 আর বিশেষ লাইন আট বিজ্ঞপ্তি এবং এই সরকার যাতে বিবৃতি ছিল যা 11. 260 00:12:46,216 --> 00:12:48,090 এবং সত্য, কিছু প্রত্যেক তাদের মধ্যে সি, 261 00:12:48,090 --> 00:12:50,006 আসলে একটি আছে কি আক্ষরিক অর্থ হল যে বিবৃতি 262 00:12:50,006 --> 00:12:52,710 যে আপনি করতে পারবেন যান একটি নির্দিষ্ট লাইন ঝাঁপ. 263 00:12:52,710 --> 00:12:55,470 এটা সাধারণত কারণ উপর frowned হচ্ছে এটা খুব সহজেই নির্যাতিত হতে পারে 264 00:12:55,470 --> 00:12:58,490 এবং আপনি জাম্পিং শুরু করতে পারেন আপনার উল্টোদিকে সব জায়গায় বেশি প্রোগ্রাম 265 00:12:58,490 --> 00:13:00,690 ধরনের ব্যবহার করতে যুক্তিবিজ্ঞান এবং নিয়ন্ত্রণ প্রবাহ 266 00:13:00,690 --> 00:13:04,000 আমরা শুধু সঙ্গে এ পর্যন্ত ব্যবহার করেছি যে loops এবং শর্ত এবং ভালো. 267 00:13:04,000 --> 00:13:08,660 >> কিন্তু আমরা এই অ্যালগরিদম প্রক্রিয়া সহজ করতে পারেন pseudocode কোড হিসাবে অনুসরণ করে. 268 00:13:08,660 --> 00:13:11,250 পরিবর্তে এই পুনরাবৃত্ত এর বা পদ্ধতির looping 269 00:13:11,250 --> 00:13:14,160 যেখানে আমরা ফিরে বর্তা এবং ফিরে এবং ফিরে তিনটি রেখায়, 270 00:13:14,160 --> 00:13:18,300 কেন আমরা শুধু ধরনের পান্ট এবং আরো না সাধারণত, লাইন সাত এবং 10 এর মধ্যে বলে 271 00:13:18,300 --> 00:13:20,570 শুধু ঐ দুটি প্রতিস্থাপন সঙ্গে লাইনের জোড়া, 272 00:13:20,570 --> 00:13:22,810 স্মিথ তার আগে অন্য তাহলে বইটি আমরা করব 273 00:13:22,810 --> 00:13:25,110 মাইক জন্য অনুসন্ধান বইয়ের বাম অর্ধেক. 274 00:13:25,110 --> 00:13:28,560 স্মিথ পরে হয় অন্যথায় যদি বই, ডানদিকে মাইক জন্য অনুসন্ধান 275 00:13:28,560 --> 00:13:29,540 অর্ধেক বই. 276 00:13:29,540 --> 00:13:31,180 আর ইতিমধ্যে বৃত্ততুল্যতা লক্ষ্য. 277 00:13:31,180 --> 00:13:31,680 রাইট? 278 00:13:31,680 --> 00:13:34,250 আমি মাইক জন্য অনুসন্ধান করছি ফোন বই এবং তারপর 279 00:13:34,250 --> 00:13:37,090 আমি শেষ পর্যন্ত হয়তো আঘাত লাইন সাত বা হয়তো লাইন 10 280 00:13:37,090 --> 00:13:41,089 এবং নিজেকে আমার নির্দেশ অনুসন্ধান ফোন বইয়ের অর্ধেক মাইক জন্য. 281 00:13:41,089 --> 00:13:42,380 ওয়েল, কিভাবে আমি মাইক অনুসন্ধান করেন? 282 00:13:42,380 --> 00:13:44,213 আমি মাঝখানে আছি মাইক, কেন অনুসন্ধানের 283 00:13:44,213 --> 00:13:45,860 আপনি ধরণের একটি বৃত্তে আমাকে পাঠাচ্ছেন? 284 00:13:45,860 --> 00:13:49,590 কিন্তু যে এই জায়গায় পৌছানো একমাত্র ঠিক আছে সমস্যার আকার ঘটছে, 285 00:13:49,590 --> 00:13:52,630 লাইন 7 ও 10 লেখা হিসেবে? 286 00:13:52,630 --> 00:13:54,989 আমরা শুধু সার্চ করছি বলছে না মাইক জন্য, মাইক জন্য অনুসন্ধান. 287 00:13:54,989 --> 00:13:56,280 আমরা বিশেষভাবে তা বলার অপেক্ষা রাখে না, তাই না? 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 বাম অর্ধেক তার জন্য খোঁজো কার্যকরভাবে যা ডান অর্ধেক 290 00:14:01,610 --> 00:14:03,440 সমস্যা অর্ধেক আকার. 291 00:14:03,440 --> 00:14:07,170 তাই আমরা ধরনের করছি যে ঠিক আছে এই গোলাকার রত, 292 00:14:07,170 --> 00:14:09,180 এই বিজ্ঞপ্তি যুক্তি, অন্তত আমরা করছি কারণ 293 00:14:09,180 --> 00:14:11,090 ছোট ছোট সমস্যা তৈরি. 294 00:14:11,090 --> 00:14:14,220 এবং অবশেষে আমরা পৌঁছানোর চলুন যে তথাকথিত বেস ক্ষেত্রে যেখানে 295 00:14:14,220 --> 00:14:16,780 আমরা শুধু একটা পাতা আছে left-- আমাদের স্বেচ্ছাসেবক হিসাবে গত সপ্তাহে 296 00:14:16,780 --> 00:14:18,684 did-- আমরা একটি পৃষ্ঠা ছিল তারপর বাম এবং আমরা না 297 00:14:18,684 --> 00:14:21,600 মাইক স্মিথ অনুসন্ধানের রাখা আছে তিনি যে পেজে হয় কারণ 298 00:14:21,600 --> 00:14:23,080 বা তিনি না হয়. 299 00:14:23,080 --> 00:14:27,480 >> সুতরাং আমরা এই ধারণা, এই বাস্তবায়ন করতে পারেন প্রকৃত কোড বৃত্ততুল্যতা সাজানোর? 300 00:14:27,480 --> 00:14:31,030 ওয়েল, আমরা একটি কৌশল লিভারেজ পারেন যে সাধারণত recursion হিসাবে পরিচিত. 301 00:14:31,030 --> 00:14:33,960 আর আমরা এই দেখা করেছি একত্রীকরণ সাজানোর জন্য pseudocode গত সপ্তাহে. 302 00:14:33,960 --> 00:14:37,190 এই যে প্রত্যাহার করা একত্রীকরণ সাজানোর জন্য pseudocode. 303 00:14:37,190 --> 00:14:40,560 তা তর্কসাপেক্ষ চেয়ে সহজ এমনকি এর বাবল বা নির্বাচন বা সন্নিবেশ সাজানোর 304 00:14:40,560 --> 00:14:43,310 শুধু সরলতা পরিপ্রেক্ষিতে যা দিয়ে আপনি এটা প্রকাশ করতে পারেন. 305 00:14:43,310 --> 00:14:46,750 >> কিন্তু যে কারণে এর আমরা সাজান বৃত্তাকারে এর আছেন 306 00:14:46,750 --> 00:14:51,350 কিছু অনুসন্ধান, বলার অপেক্ষা রাখে না আবার এর জন্য অনুসন্ধান দ্বারা. 307 00:14:51,350 --> 00:14:53,960 আর আমরা প্রত্যাশায় আছি উপর অনুসন্ধান করছেন বাম অর্ধেক বা ডান অর্ধেক 308 00:14:53,960 --> 00:14:56,070 এবং তারপর অবশেষে আমরা আছেন এই ক্ষেত্রে মার্জ. 309 00:14:56,070 --> 00:14:58,520 কিন্তু এখানে খুব, সঙ্গে ঐ দুটি সাজান লাইন, 310 00:14:58,520 --> 00:15:01,320 আমরা আবার এই আছে হয়নি recursion ধারণা. 311 00:15:01,320 --> 00:15:05,350 আর মূর্তভাবে এর মানে কি, একটি অ্যালগরিদম প্রেক্ষাপটে, 312 00:15:05,350 --> 00:15:10,880 একটি অ্যালগরিদম রিকার্সিভ হয় এটি ব্যবহার করে বা নিজেই কল করে. 313 00:15:10,880 --> 00:15:14,330 >> বা গ পদ, একটি ফাংশন একটি ফাংশন বলা recursive-- 314 00:15:14,330 --> 00:15:18,510 foo বিন্যাস, foo বিন্যাস যদি রিকার্সিভ হয় কোথাও তার সোর্স কোড, 315 00:15:18,510 --> 00:15:21,250 ফাংশন foo বিন্যাস কল নিজেই. 316 00:15:21,250 --> 00:15:25,790 আর যে সব foo বিন্যাস কি আছে তাহলে খারাপ আবার এবং আবার নিজেই কল. 317 00:15:25,790 --> 00:15:30,600 Foo বিন্যাস অবশেষে বন্ধ করে আছে হিসাবে এটা, ঠিক আছে , বলার অপেক্ষা রাখে না, সাজানোর একত্রীকরণ একটি মিনিট অপেক্ষা করুন, 318 00:15:30,600 --> 00:15:32,980 এই সমস্যা সুপার হলে ছোট, উদাহরণস্বরূপ, 319 00:15:32,980 --> 00:15:35,840 বা আমি নই যাকে তাকে পাওয়া খুঁজছেন, শুধু ফিরে আসতে. 320 00:15:35,840 --> 00:15:41,000 পৌনঃপুনিকভাবে, না না cyclically আবার নিজেকে কল. 321 00:15:41,000 --> 00:15:44,200 >> আর তাই এর কটাক্ষপাত করা যাক আসলে এই কাজ করতে পারে কিভাবে. 322 00:15:44,200 --> 00:15:48,430 তাই আমি এগিয়ে এবং খোলা যেতে চলেছি এখানে দুটি সোর্স কোড উদাহরণ আপ. 323 00:15:48,430 --> 00:15:50,321 যা এক সিগমা 0 বলা হয়. 324 00:15:50,321 --> 00:15:52,320 আর এই সব নয় রিকার্সিভ কিন্তু এর নেওয়া যাক 325 00:15:52,320 --> 00:15:53,694 একটি কি এই প্রোগ্রাম আছে তাকান. 326 00:15:53,694 --> 00:15:55,737 আমি সব আউট ছিনতাই করেছি এটা কিন্তু সব থেকে মন্তব্য 327 00:15:55,737 --> 00:15:58,070 CS50 এর সোর্স কোড এর ওয়েবসাইট যদি মন্তব্যগুলি 328 00:15:58,070 --> 00:15:59,570 পরে আবার তা পড়তে চায়. 329 00:15:59,570 --> 00:16:02,010 আর এর একটি দম্পতি করতে দিন বৈধতা এখানে পরীক্ষা করা হবে. 330 00:16:02,010 --> 00:16:06,640 >> , এই কোড উপরের তাই আমরা cs50.h. অন্তর্ভুক্ত আছে 331 00:16:06,640 --> 00:16:07,650 এটা আসলে কী? 332 00:16:07,650 --> 00:16:08,990 কেন এখানে? 333 00:16:08,990 --> 00:16:11,740 যুক্তিসঙ্গত layman এর পরিপ্রেক্ষিতে. 334 00:16:11,740 --> 00:16:12,424 এটার কাজ কি? 335 00:16:12,424 --> 00:16:12,858 হ্যা. 336 00:16:12,858 --> 00:16:14,160 >> শ্রোতা: GetInt ফাংশন কাজ করে যাতে. 337 00:16:14,160 --> 00:16:16,243 >> ডেভিড জে MALAN: সুতরাং যে GetInt ফাংশন কাজ করে. 338 00:16:16,243 --> 00:16:18,115 এই ভেতরে কারণ ফাইল, CS50.h, যা 339 00:16:18,115 --> 00:16:20,950 আমরা দীর্ঘ আগে দেখতে পাবেন তার সোর্স কোড পদ, 340 00:16:20,950 --> 00:16:23,270 ফাংশন একটি গুচ্ছ আছে declared-- GetInt, GetString,, 341 00:16:23,270 --> 00:16:26,950 others-- ও যদি না একটি গুচ্ছ এবং আমরা আসলে, যে লাইন অন্তর্ভুক্ত আছে 342 00:16:26,950 --> 00:16:29,320 কম্পাইলার ঝনঝন নয় এটি বিদ্যমান জানা যাচ্ছে যে. 343 00:16:29,320 --> 00:16:32,400 এবং একই লাইন জন্য যায় কোন int সংজ্ঞায়িত যেখানে দুই 344 00:16:32,400 --> 00:16:35,101 একটি ফাংশন যা printf,, আমরা বেশ একটু ব্যবহার করতে থাকুন. 345 00:16:35,101 --> 00:16:37,850 এখন, লাইন চার একটু ভীতু মনে এটা শুধু একটি এক মাছ ধরার নৌকা, কারণ. 346 00:16:37,850 --> 00:16:41,570 এটা কোন কোঁকড়া, একটি সেমিকোলন পেয়েছিলাম ধনুর্বন্ধনী, এটি ভেতরে কোন কোড. 347 00:16:41,570 --> 00:16:44,640 কিন্তু আমরা কি কল করেনি সপ্তাহ অতীতে এই জিনিস? 348 00:16:44,640 --> 00:16:45,140 হ্যা. 349 00:16:45,140 --> 00:16:46,060 সুতরাং একটি প্রোটোটাইপ. 350 00:16:46,060 --> 00:16:48,390 আর কেনই বা আমরা একটি আছে না মনে হয়, যার প্রোটোটাইপ 351 00:16:48,390 --> 00:16:51,050 একটু অপ্রয়োজনীয় হতে সাধারণত সাধারণত আমরা কারণ 352 00:16:51,050 --> 00:16:53,474 আবার ফাংশন দেখতে পরে ফাইলে, ডান? 353 00:16:53,474 --> 00:16:56,390 তাই কেন আমরা আপনাকে ঠিক করছি থাকতে না আপনার মাথা চুলকানো কিন্তু আমি তা গ্রহণ করব. 354 00:16:56,390 --> 00:16:57,302 হ্যা. 355 00:16:57,302 --> 00:17:00,000 >> শ্রোতা: [শ্রবণাতীত] প্রধান পর ফাংশন. 356 00:17:00,000 --> 00:17:01,000 ডেভিড জে MALAN: ঠিক. 357 00:17:01,000 --> 00:17:04,089 কম্পাইলার আপনাকে জানেন, যাতে অবশেষে সংজ্ঞায়িত বা বাস্তবায়ন হবে 358 00:17:04,089 --> 00:17:06,579 সম্ভবতঃ প্রধান পর যে ফাংশন,. 359 00:17:06,579 --> 00:17:08,462 সুতরাং ঝনঝন এবং সবচেয়ে কম্পাইলার ধরনের মূক 360 00:17:08,462 --> 00:17:10,510 এবং তারা শুধুমাত্র জানতে পারবেন কি আপনি তাদের বলুন. 361 00:17:10,510 --> 00:17:12,569 এবং আপনি ব্যবহার করতে চান তাহলে সিগমা নামক একটি ফাংশন, 362 00:17:12,569 --> 00:17:15,710 আপনি ভাল কম্পাইলার শেখান এটা আগাম বিদ্যমান. 363 00:17:15,710 --> 00:17:17,970 >> এখন, প্রধান নিজে, এমনকি এটা লাইনের একটি গুচ্ছ যদিও, 364 00:17:17,970 --> 00:17:19,839 এখন দ্বারা আশা বেশ পরিচিত. 365 00:17:19,839 --> 00:17:21,942 এটি একটি বিক্ষোভ যখন লুপ পেয়েছিলাম জীবনে যার উদ্দেশ্য 366 00:17:21,942 --> 00:17:24,400 এখানে দৃশ্যত একটি পেতে হয় ব্যবহারকারী থেকে ধনাত্মক পূর্ণসংখ্যা. 367 00:17:24,400 --> 00:17:27,349 এবং শুধু তাকে জালাতন রাখতে বা তার তারা সহযোগিতা না হওয়া পর্যন্ত. 368 00:17:27,349 --> 00:17:30,670 তারপর লাইন 16 সালে আমি আছে একটি আকর্ষণীয় কল. 369 00:17:30,670 --> 00:17:31,570 IntAnswer. 370 00:17:31,570 --> 00:17:33,710 বাম হাতের উপর যা সাইড সম্পর্কে কোন int দেয় 371 00:17:33,710 --> 00:17:36,650 Answer-- বলা স্টোরে যেতে পারে, যা সংরক্ষণ করা যাচ্ছে, যা দৃশ্যত, 372 00:17:36,650 --> 00:17:39,090 সিগমা ফেরত মান. 373 00:17:39,090 --> 00:17:41,840 তাই সিগমা শুধু একটি নয় নির্বিচারে কিন্তু অর্থপূর্ণ নাম 374 00:17:41,840 --> 00:17:44,500 আমি একটি ফাংশন দিয়েছি যে জীবনে যার উদ্দেশ্য 375 00:17:44,500 --> 00:17:47,680 এক argument-- নেওয়া হয় আমরা এই ক্ষেত্রেই এ এন ডাকবো 376 00:17:47,680 --> 00:17:52,280 এবং শুধু যে সংখ্যার যোগফল নেওয়া প্লাস প্রতি ধনাত্মক সংখ্যা যে 377 00:17:52,280 --> 00:17:53,200 এটা চেয়ে ছোট. 378 00:17:53,200 --> 00:17:58,140 >> আমি 2 নম্বর পাস তাই আপনি যদি সিগমা, আমি যোগ করতে চান 2 প্লাস 1 379 00:17:58,140 --> 00:18:00,240 প্লাস 0-- যাতে আমার 3 দেয় না 0--. 380 00:18:00,240 --> 00:18:05,320 আমি সিগমা 3 পাস হলে, আমি চাই 3 প্লাস 2 প্লাস 1 আছে, যা আমার 6 দেয়. 381 00:18:05,320 --> 00:18:05,900 হলোও তাই. 382 00:18:05,900 --> 00:18:09,750 তাই এটা শুধু অ্যাডস আপ সব সংখ্যার এটা কম বা সমান. 383 00:18:09,750 --> 00:18:12,040 >> এখন, নিচে এখানে আমি শুধু যাচ্ছি উত্তর প্রিন্ট আউট. 384 00:18:12,040 --> 00:18:17,330 সুতরাং একটি দ্রুত বৈধতা পরীক্ষা হিসাবে, এর দিন সিগমা 0-- ডট স্ল্যাশ সিগমা 0-- 385 00:18:17,330 --> 00:18:18,690 এবং আমার 2 টাইপ. 386 00:18:18,690 --> 00:18:19,960 আর আমি তো 3 পেতে. 387 00:18:19,960 --> 00:18:21,240 আমার 3 টাইপ. 388 00:18:21,240 --> 00:18:22,860 আমি তো 6 পেতে. 389 00:18:22,860 --> 00:18:27,636 আর যে কেউ দ্রুত গণিত করতে পারেন তাহলে, আমি পেতে যাচ্ছি তা 50 কি তাহলে? 390 00:18:27,636 --> 00:18:29,839 >> শ্রোতা: [শ্রবণাতীত]. 391 00:18:29,839 --> 00:18:30,880 ডেভিড জে MALAN: হ্যাঁ, কোন. 392 00:18:30,880 --> 00:18:33,340 কিন্তু 1,275 সুন্দর পাসে যা. 393 00:18:33,340 --> 00:18:38,850 তাই এই 50 করছেন পরিনাম প্লাস 49 প্লাস 48 প্লাস 47 প্লাস 46 394 00:18:38,850 --> 00:18:40,349 1 নিচে সব পথ. 395 00:18:40,349 --> 00:18:41,390 যে তাই সব সিগমা আছে. 396 00:18:41,390 --> 00:18:43,350 কিন্তু কিছু বলতে আমরা করেছি দেখতে দিন এখন এটা বাস্তবায়িত. 397 00:18:43,350 --> 00:18:45,790 তাই নিচে এখানে ফাংশন নিজেই. 398 00:18:45,790 --> 00:18:49,000 আর এই আছে বলে মনে হয় না কিছু এখনো recursion সঙ্গে কাজ করতে. 399 00:18:49,000 --> 00:18:51,070 আসলে, আমরা একটি ব্যবহার করছেন পুরানো স্কুল টেকনিক. 400 00:18:51,070 --> 00:18:56,680 আমি একটি পরিবর্তনশীল নামক সমষ্টি আরম্ভের করছি শূন্য, তারপর আমি এখানে একটি foreloop আছে, 401 00:18:56,680 --> 00:19:00,790 এবং আমি কোন int বলা ঘোষণা করছি আমি 1 টি এটি সমান সেটিং 402 00:19:00,790 --> 00:19:04,080 আমি এটা সেট সমান পারে যদিও শূন্য, কিন্তু আমি ছাড়াও করছি যেহেতু, 403 00:19:04,080 --> 00:19:05,340 এটি শূন্য বা এক যদি যারা বজায় রাখে. 404 00:19:05,340 --> 00:19:06,660 এটা কোন প্রভাব আছে যাচ্ছে. 405 00:19:06,660 --> 00:19:10,110 >> তাই আমি এতক্ষণ আমি হিসাবে iterating করছি অপেক্ষাকৃত ছোট বা এম, সমান, যা 406 00:19:10,110 --> 00:19:11,671 প্রেরণ করা হত যে যুক্তি. 407 00:19:11,671 --> 00:19:13,670 এবং তারপর আমি ঠিক রাখতে আই এবং অন্তর্দৃষ্টি বৃদ্ধিশীল 408 00:19:13,670 --> 00:19:20,010 লুপ সব আমি সমষ্টি করছে করছি প্লাস আই সমান এবং যে ইচ্ছাকৃত না. 409 00:19:20,010 --> 00:19:22,326 আমি এই কাজ করতে চান না কেস, সমষ্টি প্লাস প্লাস চাই. 410 00:19:22,326 --> 00:19:24,790 আমি আসলে যোগ করতে চান আমি বর্তমান মান 411 00:19:24,790 --> 00:19:28,190 যা পেয়ে এবং বড় বড় রাখে এবং চলমান মিল বড়. 412 00:19:28,190 --> 00:19:30,210 >> এবং তারপর আমি সমষ্টি আসতে. 413 00:19:30,210 --> 00:19:33,850 তাই উত্তর মান সমষ্টি পায়. 414 00:19:33,850 --> 00:19:35,282 এবং তারপর আমি এটি প্রিন্ট আউট. 415 00:19:35,282 --> 00:19:37,740 সুতরাং একটি সুযোগ আছে এখানে, যদিও ধরনের প্রক্রিয়া সহজ করতে 416 00:19:37,740 --> 00:19:41,260 এই কোড ধারণার এবং পেশা ধরনের এক 417 00:19:41,260 --> 00:19:43,250 শর্তাবলী মনে সরলতা যদিও এটা 418 00:19:43,250 --> 00:19:45,700 বাছাই করার সময় নেয় কেন এই প্রশংসা 419 00:19:45,700 --> 00:19:47,330 এইসব ছোট উদাহরণ শক্তিশালী হয়. 420 00:19:47,330 --> 00:19:50,380 এখানে তাই one-- সিগমা হয় এই কোড দ্বিতীয় সংস্করণ. 421 00:19:50,380 --> 00:19:55,290 উপরের সবকিছু তাই অভিন্ন যে একই গল্প আগে হিসাবে প্রযোজ্য. 422 00:19:55,290 --> 00:19:59,220 কিন্তু এখন এর তাকান সিগমা বাস্তবায়ন যা 423 00:19:59,220 --> 00:20:05,040 আমি শুধু এই নিচে whittled করেছি lines-- কোড চার লাইন, সত্যিই, 424 00:20:05,040 --> 00:20:06,980 প্লাস কিছু কোঁকড়া ধনুর্বন্ধনী এবং সাদা স্থান. 425 00:20:06,980 --> 00:20:07,930 >> কিন্তু আমি কি করছি? 426 00:20:07,930 --> 00:20:11,050 এম কম বা সমান হলে শূন্য, আমি ধরনের ব্যবস্থা করতে হবে 427 00:20:11,050 --> 00:20:12,490 যে সুপার সহজ ক্ষেত্রে. 428 00:20:12,490 --> 00:20:15,450 আর তুমি আমাকে শূন্য বা কিছু হাতে যদি শুধু যা অদ্ভুত নেতিবাচক 429 00:20:15,450 --> 00:20:17,909 আমি শুধু ইচ্ছামত যাচ্ছি কিন্তু ধারাবাহিকভাবে শূন্য ফিরে. 430 00:20:17,909 --> 00:20:20,200 আমি এই জিনিস চাই না কিছু অদ্ভুত অসীম ঢোকা 431 00:20:20,200 --> 00:20:21,810 কারণ একটি ঋণাত্মক মান লুপ. 432 00:20:21,810 --> 00:20:25,070 আপনি আমাকে দিতে যদি তাই আমি ঠিক, বলার অপেক্ষা রাখে না শূন্য বা তার কম, আমি শূন্য ফেরত দিচ্ছি. 433 00:20:25,070 --> 00:20:28,220 >> যে কারণ কিন্তু যে ভালো ফোন বইয়ের যে একক পাতা 434 00:20:28,220 --> 00:20:28,790 যে বাকি আছে. 435 00:20:28,790 --> 00:20:32,660 আমি একটি খুব নির্দিষ্ট সমস্যা কামড়ে করছি এবং পৌনঃপুনিকভাবে কিছু কলিং না. 436 00:20:32,660 --> 00:20:36,580 কিন্তু লাইন 31 সালে, তা আমি কাজ হবে বলে মনে হচ্ছে না? 437 00:20:36,580 --> 00:20:39,780 বন্ধনীর শুধু পালন করা হয় কিছু আশা, একটু পরিস্কার. 438 00:20:39,780 --> 00:20:42,110 কিন্তু আমি করছি সব আমি করছি m-- ফিরে যাই হোক না কেন 439 00:20:42,110 --> 00:20:45,790 আপনি ভগবন্ প্লাস হাত m-- দুঃখিত মান, 440 00:20:45,790 --> 00:20:49,052 প্লাস M বিয়োগ 1 সিগমা মান. 441 00:20:49,052 --> 00:20:50,010 তাহলে এর অর্থ কি? 442 00:20:50,010 --> 00:20:53,965 আপনি ইনপুট হিসেবে আমার নম্বর 3 দিতে পারেন, উত্তর আমি চরমভাবে পেতে চান 443 00:20:53,965 --> 00:20:57,307 3 প্লাস 2 প্লাস 1 আমার 6 দেয়, কারণ 6. 444 00:20:57,307 --> 00:20:59,390 কিন্তু আমি প্রায় কিভাবে মনে করেন এই কোড কিভাবে চলমান? 445 00:20:59,390 --> 00:21:03,070 আমি সিগমা কল প্রথমবার এবং আমি, মান 3 পাস 446 00:21:03,070 --> 00:21:07,960 যে এক টুকরা উপর বলছে মত কাগজ, এখানে মান 3 এর 447 00:21:07,960 --> 00:21:09,920 এবং আমি সিগমা হিসেবে এই পাস করে থাকেন. 448 00:21:09,920 --> 00:21:13,090 3 স্পষ্টত তাই অন্যূন 0 যদি শর্ত প্রযোজ্য নয়. 449 00:21:13,090 --> 00:21:14,020 অন্য কারো. 450 00:21:14,020 --> 00:21:14,990 তাই আমি কি করতে পারি? 451 00:21:14,990 --> 00:21:19,902 আমি যা, এম ফিরে আসতে চান এম বিয়োগ 1 এর 3, প্লাস সিগমা. 452 00:21:19,902 --> 00:21:21,110 তাই আমাকে এই সম্পর্কে অবগত রাখা যাক. 453 00:21:21,110 --> 00:21:22,710 আমি এই লাগাতে যাচ্ছি কাগজের নিচে সমাচার. 454 00:21:22,710 --> 00:21:24,668 আর কি মূল্য, হতে স্পষ্ট, আমি পাস যাচ্ছি 455 00:21:24,668 --> 00:21:26,540 গল্পের এই সময়ে সিগমা মধ্যে? 456 00:21:26,540 --> 00:21:28,080 কি নাম্বার? 457 00:21:28,080 --> 00:21:28,610 2, ডান? 458 00:21:28,610 --> 00:21:29,670 3 বিয়োগ 1 2. 459 00:21:29,670 --> 00:21:32,000 তাই আমি শুধু একটু প্রয়োজন এখানে কাগজ স্ক্র্যাপ. 460 00:21:32,000 --> 00:21:33,931 তাই এখন সিগমা আবার বলা হচ্ছে. 461 00:21:33,931 --> 00:21:35,930 আর আমি ইচ্ছাকৃতভাবে রেখেছি এই ডাউন এটা কারণ 462 00:21:35,930 --> 00:21:38,070 ধরনের pausing মত গল্পের যে সংস্করণ 463 00:21:38,070 --> 00:21:40,720 এখন আমি নিবদ্ধ করছি কারণ এম বিয়োগ 1 এর সংকেত. 464 00:21:40,720 --> 00:21:42,660 সুতরাং m 3, এম ছিল মাইনাস 1 2. 465 00:21:42,660 --> 00:21:45,110 তাই এখানে আমি পাশ করে থাকেন যে 2 হয়. 466 00:21:45,110 --> 00:21:48,510 2 স্পষ্টত চেয়ে কম নয় 0 যাতে ক্ষেত্রে প্রযোজ্য নয়. 467 00:21:48,510 --> 00:21:53,445 অন্যথায় আমি এই যা, এম আসতে কি মান জিনিস, প্লাস সিগমা? 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 তাই সিগমা 1 টি এম কারণ যদি এই মুহূর্তে 2 তাই 2 বিয়োগ 1 1. 470 00:21:59,650 --> 00:22:01,950 তাই এখন আমি মান 1 আছে. 471 00:22:01,950 --> 00:22:04,810 আমি শুধু সংখ্যা পার করছি ফাংশন sigma-- 1 472 00:22:04,810 --> 00:22:09,120 অথবা নিজেকে এখানে তাই 1 স্পষ্টত নয় কম শূন্য আর, এখনও প্রযোজ্য নয়. 473 00:22:09,120 --> 00:22:12,970 >> অন্য বিনিময়ে 1 প্লাস কি সিগমা? 474 00:22:12,970 --> 00:22:13,470 0. 475 00:22:13,470 --> 00:22:14,678 তাই আমাকে শুধু যে মনে রাখা যাক. 476 00:22:14,678 --> 00:22:15,920 আমি পরে যে ফিরে পাবেন. 477 00:22:15,920 --> 00:22:18,060 এখন আমি এগিয়ে এবং একফোঁটা যেতে চলেছি সংখ্যা 0 নিচে যে কারণ 478 00:22:18,060 --> 00:22:19,470 আমার যুক্তি বা প্যারামিটার. 479 00:22:19,470 --> 00:22:22,400 আমি সংখ্যা 0 পাস করছি এবং অবশেষে এই প্রক্রিয়া 480 00:22:22,400 --> 00:22:25,760 শুধু নিজেকে বিজ্ঞাপনটি পুনরায় nauseum কি কারণ থামা নেই 481 00:22:25,760 --> 00:22:28,820 আমি এই 0 দেখতে একবার আমি অবিলম্বে করবেন? 482 00:22:28,820 --> 00:22:29,790 আমি শূন্য ফিরে. 483 00:22:29,790 --> 00:22:31,790 তাই এখন আপনি গল্প গুটিয়ে আছে. 484 00:22:31,790 --> 00:22:34,430 >> আমি এখন সময় পিছনের দিকে চলা যদি, সবচেয়ে সাম্প্রতিকতম বিষয় কি ছিল 485 00:22:34,430 --> 00:22:36,670 আপনি আক্ষরিক হলে আমি একটি ভিডিও গুটাতে? 486 00:22:36,670 --> 00:22:41,630 আমি সবচেয়ে সাম্প্রতিকতম নিতে যাচ্ছি 1 এবং যে আমার 1 দেয় প্লাস 0 1. 487 00:22:41,630 --> 00:22:44,100 আমি গুটাতে রাখতে হলে গল্প, যে আমাকে দিতে যাচ্ছে 488 00:22:44,100 --> 00:22:46,880 1, যা 2 প্লাস এই চলমান মান. 489 00:22:46,880 --> 00:22:47,789 সুতরাং যে 3 এর. 490 00:22:47,789 --> 00:22:49,330 এবং তারপর আমি গুটাতে রাখা যাচ্ছে না. 491 00:22:49,330 --> 00:22:54,220 আমি প্রথম সংখ্যা রাখা যখন 3-- তাই 3 প্লাস 3 6 আমাকে দেয়. 492 00:22:54,220 --> 00:22:57,272 >> আর এখন, আপনি rewound থাকেন তাহলে এই বিন্দু পর্যন্ত ভিডিও আপ, 493 00:22:57,272 --> 00:22:58,980 এই খুব ছিল প্রথম প্রশ্ন আমি জিজ্ঞাসা. 494 00:22:58,980 --> 00:23:01,450 3 পৌছাল, 3 সিগমা কি? 495 00:23:01,450 --> 00:23:04,204 এটা প্রকৃতপক্ষে 6, এর সমষ্টি এই সব কাগজের টুকরা. 496 00:23:04,204 --> 00:23:07,120 যে একটু সময় লাগে, তাই যদি করতে যখন যে সূক্ষ্ম, আপনার মন চারপাশে মোড়ানো. 497 00:23:07,120 --> 00:23:10,700 কিন্তু এটা little-- একটি ছিল বিবেচনা আমি স্তুপীকৃত যে খুব ইচ্ছাকৃত ছিল 498 00:23:10,700 --> 00:23:12,990 একে অপরের উপরে এই সংখ্যার. 499 00:23:12,990 --> 00:23:17,440 এটা একটা থাকার মত কোন ধরনের সময় একটি রেকর্ড মেমরি, 500 00:23:17,440 --> 00:23:19,940 একটি ভিডিওতে একটি স্ক্রাবার মত, আমি তোমাদের মধ্যে গুটিয়ে করতে পারে. 501 00:23:19,940 --> 00:23:24,350 আর আমরা ফিরে আসতে যাচ্ছেন অল্পমাত্র বিট যে রূপক. 502 00:23:24,350 --> 00:23:28,240 >> কিন্তু প্রথম, এটা আছে যে দেখা যাচ্ছে geeks এবং মজার মানুষ অনেক, 503 00:23:28,240 --> 00:23:29,614 আমি গুগল এ, অনুমান. 504 00:23:29,614 --> 00:23:31,530 Would খুব কে কেউ Googling মন ভাল 505 00:23:31,530 --> 00:23:34,270 মাত্র কয়েক মিনিটের জন্য উত্ক্রান্ত এবং আমার কিছু অনুসন্ধান সাহায্য? 506 00:23:34,270 --> 00:23:35,650 অত্যন্ত কম কী. 507 00:23:35,650 --> 00:23:37,870 কখনও কেউ এর সম্ভবত, আগে আসা পর্যন্ত. 508 00:23:37,870 --> 00:23:38,370 ঠিক আছে. 509 00:23:38,370 --> 00:23:39,030 হ্যা? 510 00:23:39,030 --> 00:23:39,530 চলে আসো. 511 00:23:39,530 --> 00:23:41,410 নিচে আস. 512 00:23:41,410 --> 00:23:42,183 তোমার নাম কি? 513 00:23:42,183 --> 00:23:42,870 >> স্যাম: স্যাম. 514 00:23:42,870 --> 00:23:44,290 >> ডেভিড জে MALAN: স্যাম, নিচে চলো. 515 00:23:44,290 --> 00:23:45,320 এই একই. 516 00:23:45,320 --> 00:23:46,280 দেখা হওয়ায় খুশী হলাম. 517 00:23:46,280 --> 00:23:46,780 আরে. 518 00:23:46,780 --> 00:23:47,580 আসো. 519 00:23:47,580 --> 00:23:51,290 তাই সব আমি আপনি, তাহলে কি করতে হবে আপনি, স্যাম, গুগলের পারে. 520 00:23:51,290 --> 00:23:53,240 আপনি শব্দটি recursion জন্য অনুসন্ধান করতে পারেন? 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 লুণ্ঠন না. 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> আর এখন হ্যা let's--. 525 00:24:00,970 --> 00:24:03,380 ঠিক যে ক্লিক করুন. 526 00:24:03,380 --> 00:24:04,315 ভাল যে ক্লিক করুন. 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 ওহ, এটা বুঝতে পারছি. 529 00:24:08,020 --> 00:24:08,520 কোন? 530 00:24:08,520 --> 00:24:09,050 ঠিক আছে. 531 00:24:09,050 --> 00:24:10,430 সুতরাং আসুন একটি দম্পতি অন্যদের কাজ করতে দিন. 532 00:24:10,430 --> 00:24:12,830 সংশ্লিষ্ট এত নেই অ্যাকাডেমিকভাবে এখানে, কিন্তু আপনি 533 00:24:12,830 --> 00:24:14,520 কখনও anagram জন্য গুগল অনুসন্ধান? 534 00:24:14,520 --> 00:24:15,280 >> স্যাম: নং 535 00:24:15,280 --> 00:24:15,520 >> ডেভিড জে MALAN: ঠিক আছে. 536 00:24:15,520 --> 00:24:17,186 Anagram পরিবর্তে recursion জন্য অনুসন্ধান করুন. 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 কিভাবে বাঁকাভাবে সম্পর্কে. 539 00:24:23,790 --> 00:24:25,515 আপনি কি কখনো বাঁকাভাবে অনুসন্ধান? 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 এখন, এই এক একটি সামান্য কঠিন দেখতে কিন্তু আশা ঠিক everything's--. 542 00:24:32,692 --> 00:24:34,150 এটা আপনার এবং আমার এই সেবন. 543 00:24:34,150 --> 00:24:34,690 ঠিক আছে. 544 00:24:34,690 --> 00:24:38,950 >> সুতরাং পরিশেষে, এই one's-- এটি একটি সামান্য বাঁকাভাবে এর. 545 00:24:38,950 --> 00:24:40,810 এখন একটি পিপা রোল না. 546 00:24:40,810 --> 00:24:44,460 547 00:24:44,460 --> 00:24:45,310 ওয়ান্ডারফুল. 548 00:24:45,310 --> 00:24:45,910 ঠিক আছে. 549 00:24:45,910 --> 00:24:47,110 বিগ স্যাম আপনাকে ধন্যবাদ. 550 00:24:47,110 --> 00:24:49,416 এখানে আপনি যান. 551 00:24:49,416 --> 00:24:50,400 ধন্যবাদ. 552 00:24:50,400 --> 00:24:52,807 >> তাই কি সব ঘটছে এইসব মূর্খ উদাহরণ কয়েক? 553 00:24:52,807 --> 00:24:55,640 সত্যিই তাই, ফণা নীচে কোড লাইনের গুগলের লক্ষ 554 00:24:55,640 --> 00:24:58,860 দৃশ্যত, যদি কয়েক অর্থহীন মূলত যে শর্ত 555 00:24:58,860 --> 00:25:01,160 ব্যবহারকারী যদি চেক এই শব্দগুচ্ছ টাইপ, 556 00:25:01,160 --> 00:25:03,760 সম্ভবত নেন যে কিছু করতে সময় একটি nontrivial পরিমাণ 557 00:25:03,760 --> 00:25:06,080 শুধু বাস্তবায়ন এই ভাবে মজাদার হতে. 558 00:25:06,080 --> 00:25:08,430 কিন্তু এটা boils সব ফণা নীচে নিচে. 559 00:25:08,430 --> 00:25:11,570 কিন্তু, অবশ্যই, recursion geekier আরো 560 00:25:11,570 --> 00:25:13,880 ঐ বিশেষ ঠাট মধ্যে উদাহরণস্বরূপ. 561 00:25:13,880 --> 00:25:16,880 আর নিশ্চয় সেখানে অন্যদের সেখানে আউট পাশাপাশি আমরা সম্ভবত আছে না এমনকি 562 00:25:16,880 --> 00:25:18,230 শুধু এখনো আবিষ্কৃত. 563 00:25:18,230 --> 00:25:22,830 >> তাই দেখব, বা বিবেচনা এখন নিচের প্রোগ্রামটি, 564 00:25:22,830 --> 00:25:24,830 এবং অবশ্যই কোনো দখল আপনার উপায় খুঁজে এই নিয়ে. 565 00:25:24,830 --> 00:25:28,820 আমি এগিয়ে যেতে চলেছি এবং যে একটি প্রোগ্রাম খুলুন 566 00:25:28,820 --> 00:25:30,920 দুই মূল্যবোধের অদলবদল করার চেষ্টা করতে যাচ্ছে. 567 00:25:30,920 --> 00:25:33,210 আমরা সেখানে যাওয়ার আগে কিন্তু, এই কাজ করা যাক. 568 00:25:33,210 --> 00:25:38,500 আমরা আরও একটি পেতে পারে স্বেচ্ছাসেবক, আমি মনে করি? 569 00:25:38,500 --> 00:25:40,480 আপনি স্বেচ্ছাসৈনিক চাই? 570 00:25:40,480 --> 00:25:40,980 কোন? 571 00:25:40,980 --> 00:25:41,890 চলো. 572 00:25:41,890 --> 00:25:42,390 চলো. 573 00:25:42,390 --> 00:25:42,890 ঠিক আছে. 574 00:25:42,890 --> 00:25:44,136 আপনার নাম কি? 575 00:25:44,136 --> 00:25:44,810 >> Lauren: লরেন. 576 00:25:44,810 --> 00:25:45,768 >> ডেভিড জে MALAN: লরেন. 577 00:25:45,768 --> 00:25:46,890 আপ লরেন চলো. 578 00:25:46,890 --> 00:25:50,140 সুতরাং লরেন হচ্ছে নিম্নরূপ এখানে চ্যালেঞ্জ. 579 00:25:50,140 --> 00:25:52,310 দেখা হওয়ায় খুশী হলাম. 580 00:25:52,310 --> 00:25:55,730 সুতরাং লরেন এখানে সামনে আছে তার দুটি খালি কাপ. 581 00:25:55,730 --> 00:25:57,570 আর আমরা কিছু কমলা আছে রস এবং কিছু দুধ 582 00:25:57,570 --> 00:26:00,301 এবং আমরা যেতে চলুন এগিয়ে এবং নিচের কাজগুলো. 583 00:26:00,301 --> 00:26:01,550 আমরা শুধু এই ভরাট করতে যাচ্ছেন. 584 00:26:01,550 --> 00:26:07,840 এখানে ওভার দুধ কয়েক আউন্স এবং এর যাক এখানে ওভার একটু কমলার রস পূরণ করুন. 585 00:26:07,840 --> 00:26:11,475 >> আর সব সামনে এই শ্রোতা সদস্যদের, 586 00:26:11,475 --> 00:26:13,550 এই কাপ দুই মূল্যবোধের অদলবদল. 587 00:26:13,550 --> 00:26:16,970 দুধ কাপে কমলার রস রাখুন এবং কমলার রস কাপ দুধ. 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 আপনি ছিল যদি আপনি এই কাজ করতে হবে কিভাবে বাড়ি ও অন্যান্য দ্রব্যের অ্যাক্সেস ছিল? 590 00:26:26,150 --> 00:26:27,400 Lauren: অন্য কাপে এটা রাখুন. 591 00:26:27,400 --> 00:26:28,191 ডেভিড জে MALAN: ঠিক আছে. 592 00:26:28,191 --> 00:26:31,940 সুতরাং আসুন একটি অস্থায়ী আছে যাক পরিবর্তনশীল, আমি ইচ্ছা করলে. 593 00:26:31,940 --> 00:26:35,871 এবং এখন এগিয়ে যান এবং বাস্তবায়ন এই একই পদ্ধতি সোয়াপিং. 594 00:26:35,871 --> 00:26:36,370 খুব ভাল. 595 00:26:36,370 --> 00:26:41,490 আমরা অস্থায়ী মধ্যে OJ রেখেছি পরিবর্তনশীল, OJ পরিবর্তনশীল মধ্যে দুধ, 596 00:26:41,490 --> 00:26:44,481 এবং এখন অস্থায়ী পরিবর্তনশীল দুধ পরিবর্তনশীল মধ্যে. 597 00:26:44,481 --> 00:26:44,980 ঠিক আছে. 598 00:26:44,980 --> 00:26:48,740 তাই খুব ভাল এ পর্যন্ত কাজ. 599 00:26:48,740 --> 00:26:50,990 সুতরাং এটা যে রাখা out-- সক্রিয় মাত্র কয়েক মিনিটের জন্য চিন্তা. 600 00:26:50,990 --> 00:26:54,479 এখানে, শুধু একটি বিট এটা যাও গুরু, এই সংশ্লিষ্ট C কোড হতে হবে 601 00:26:54,479 --> 00:26:55,520 আমরা শুধু যে বাস্তবায়িত. 602 00:26:55,520 --> 00:26:58,650 আমরা দুটি ইনপুট, A এবং B, উভয় ছিল যা আমরা শুধু সরলীকরণের জন্য বলবো 603 00:26:58,650 --> 00:26:59,260 কোন int এর. 604 00:26:59,260 --> 00:27:02,780 আমি অদলবদল করতে চান তাহলে, এখানে লক্ষ্য দুটি ভেরিয়েবল, A এবং B এর মান, 605 00:27:02,780 --> 00:27:06,890 আমরা প্রকৃতপক্ষে একটি ফড়িয়া প্রয়োজন, একটি অস্থায়ী পরিবর্তনশীল, একটি অস্থায়ী কাপ, 606 00:27:06,890 --> 00:27:10,830 যার মধ্যে The মান এক ঢালা যাতে আমরা এটি জন্য একটি স্থানধারক আছে. 607 00:27:10,830 --> 00:27:13,480 কিন্তু তারপর কোড ঠিক হয় লরেন হিসেবে এখানে বাস্তবায়িত. 608 00:27:13,480 --> 00:27:15,500 >> এখন, শুধু একটি পেতে একটু পাগল, দেখা যাচ্ছে 609 00:27:15,500 --> 00:27:20,930 আপনি ছাড়া এই কাজ করতে পারে একটি অস্থায়ী পরিবর্তনশীল. 610 00:27:20,930 --> 00:27:24,870 যদিও, আমরা চলুন, সঠিকভাবে এই কাজ কিছু রসায়ন সঙ্গে প্রতারণা করার আছে. 611 00:27:24,870 --> 00:27:26,380 আমরা এখানে কিছু অতিরিক্ত কাপ আছে. 612 00:27:26,380 --> 00:27:29,600 সুতরাং সর্বনিকটবর্তী বস্তু যে দেখায় দুধ ও পানি সম্ভবত দিন ভালো 613 00:27:29,600 --> 00:27:34,090 বা দুধ ও OJ-- আমরা কিছু আছে পানি, তাই আমরা এই এক ভরাট করব 614 00:27:34,090 --> 00:27:36,486 পরিষ্কার জল কয়েক আউন্স সঙ্গে. 615 00:27:36,486 --> 00:27:38,332 যে খুব বেশী সম্ভবত. 616 00:27:38,332 --> 00:27:38,832 হ্যা. 617 00:27:38,832 --> 00:27:39,934 খুব বেশি যে স্পষ্টভাবে. 618 00:27:39,934 --> 00:27:40,600 এক সেকেন্ড ধরে থাকুন. 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> আর এখন আমরা আমি প্রত্যাহার হিসাবে যা, তেল, আছে মধ্যম স্কুল রসায়ন বর্গ থেকে, 621 00:27:48,420 --> 00:27:49,990 আশা করি এটি জলে মিশ্রিত না. 622 00:27:49,990 --> 00:27:53,650 কিন্তু এটা কোন ধরনের সাজানোর দুধ এবং OJ মত দেখায়. 623 00:27:53,650 --> 00:27:55,760 এখন তাই, ব্যবহার না করেই একটি অস্থায়ী পরিবর্তনশীল, 624 00:27:55,760 --> 00:27:59,260 আপনি ঐ দুটি মান অদলবদল করতে পারেন? 625 00:27:59,260 --> 00:28:03,884 , পানি এক কাপ মধ্যে যায় তেলরং তাই পানি তেল কাপ মধ্যে যায়. 626 00:28:03,884 --> 00:28:04,800 Lauren: অন্য কোন কাপ? 627 00:28:04,800 --> 00:28:05,940 ডেভিড জে MALAN: অন্য কোন কাপ. 628 00:28:05,940 --> 00:28:07,860 আর আমি আসলে না করেছি এই বছর আগে এই পরীক্ষা 629 00:28:07,860 --> 00:28:10,110 এই হবে, তাই যদি আমি জানি না আসলে রাসায়নিকভাবে কাজ. 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 উনিশশো একাত্তর সেটা মানবে অনুমিত ছিল না. 632 00:28:18,650 --> 00:28:19,761 এটা কাজ করছে? 633 00:28:19,761 --> 00:28:20,260 ঠিক আছে. 634 00:28:20,260 --> 00:28:20,990 তাই আলাদা? 635 00:28:20,990 --> 00:28:21,490 ভাল. 636 00:28:21,490 --> 00:28:24,714 এখন আমরা পেতে পেয়েছেন অন্যান্য কাপ জল. 637 00:28:24,714 --> 00:28:27,630 স্মার্ট রসায়ন concentrators পারা সম্ভবত আমার চেয়ে ভাল এই কাজ. 638 00:28:27,630 --> 00:28:28,510 >> Lauren: জল নীচে আছে. 639 00:28:28,510 --> 00:28:31,910 >> ডেভিড জে MALAN: ছিল water-- কি আমরা এই কি শেষ সময় কী. 640 00:28:31,910 --> 00:28:33,950 আপনি সঠিক অনুক্রমে এটি করতে হবে. 641 00:28:33,950 --> 00:28:34,450 হ্যা. 642 00:28:34,450 --> 00:28:35,270 ঠিক আছে. 643 00:28:35,270 --> 00:28:37,290 তাই এখন আমরা তেল দুই কাপ আছে. 644 00:28:37,290 --> 00:28:37,790 ঠিক আছে. 645 00:28:37,790 --> 00:28:38,510 ঠিক আছে. 646 00:28:38,510 --> 00:28:40,110 কিন্তু এই I-- তুলনায় কাজ রাসায়নিকভাবে যদি 647 00:28:40,110 --> 00:28:41,200 >> Lauren: এই জল. 648 00:28:41,200 --> 00:28:41,930 >> ডেভিড জে MALAN: যে বেশিরভাগ জল. 649 00:28:41,930 --> 00:28:42,430 ঠিক আছে. 650 00:28:42,430 --> 00:28:44,210 কিন্তু যে এখনও আগের মতই বিশ্বকাপের. 651 00:28:44,210 --> 00:28:47,570 তাই এটিকে ওইখানে এটা চেষ্টা ঢালা. 652 00:28:47,570 --> 00:28:49,300 ঠিক আছে. 653 00:28:49,300 --> 00:28:51,010 এই শ্রেণীর একটি সময় ভাল ব্যবহার আজ. 654 00:28:51,010 --> 00:28:51,510 ঠিক আছে. 655 00:28:51,510 --> 00:28:53,890 তাই এখন সুন্দর we--. 656 00:28:53,890 --> 00:28:55,460 এক প্রকার. 657 00:28:55,460 --> 00:28:55,960 ঠিক আছে. 658 00:28:55,960 --> 00:28:56,690 তাই খুব ভাল. 659 00:28:56,690 --> 00:29:00,006 লরেন থেকে আপনাকে ধন্যবাদ. 660 00:29:00,006 --> 00:29:01,950 অনেক ভালো করেছ. 661 00:29:01,950 --> 00:29:04,570 >> তাই শুধু আপনার মন গাট্টা এবং এই সম্ভবত কিছু হয় 662 00:29:04,570 --> 00:29:08,660 আপনি CS50 আইডি চান তাহলে সাথে খেলতে, আপনি, আসলে, দুটি ভেরিয়েবল অদলবদল করতে পারেন 663 00:29:08,660 --> 00:29:11,470 একটি অস্থায়ী পূর্ণসংখ্যা ব্যবহার না করেই. 664 00:29:11,470 --> 00:29:13,060 আর এই সংশ্লিষ্ট সি কোড. 665 00:29:13,060 --> 00:29:16,110 এবং আপনি শেষ থেকে প্রত্যাহার হলে বুধবার, আমরা যদি সংক্ষেপে, চালু 666 00:29:16,110 --> 00:29:19,720 সি আর আছে কিছু নতুন অপারেটর কেউ কি একটু গাজর প্রত্যাহার 667 00:29:19,720 --> 00:29:23,660 প্রতীক, যে একটু ত্রিভুজীয় হয় কীবোর্ড থেকে প্রতীক প্রতিনিধিত্ব? 668 00:29:23,660 --> 00:29:26,003 কি bitwise অপারেটর? 669 00:29:26,003 --> 00:29:26,770 >> শ্রোতা: EXOR. 670 00:29:26,770 --> 00:29:27,645 >> ডেভিড জে MALAN: EXOR. 671 00:29:27,645 --> 00:29:28,560 একচেটিয়া বা. 672 00:29:28,560 --> 00:29:32,920 আপনি শুধু মজা করার জন্য, চান তাহলে হোম, A এবং B দুটি নির্বিচারে দিতে 673 00:29:32,920 --> 00:29:36,072 কোনো eight-- এবং আমি মত মান আট বিট মান চয়ন করবে. 674 00:29:36,072 --> 00:29:38,530 আপনি 32 বিট সঙ্গে এই কাজ করেন, আপনি খুব দ্রুত উদাস পাবেন. 675 00:29:38,530 --> 00:29:42,150 কিন্তু মাত্র আট বিট দিতে , এক বা দুই যাই হোক না কেন যে মান, 676 00:29:42,150 --> 00:29:43,790 এবং একটি অনুরূপ মান বি দিতে. 677 00:29:43,790 --> 00:29:46,810 এবং তারপর সংজ্ঞা ব্যবহার গত বুধবার থেকে XOR এর, 678 00:29:46,810 --> 00:29:52,560 , বিট দ্বারা প্রতিটি যে বিট আবেদন A এবং B প্রতিটি যারা আট বিট, 679 00:29:52,560 --> 00:29:54,980 এবং তারপর এই কোড প্রতি ঠিক তা না. 680 00:29:54,980 --> 00:29:58,170 এবং এটা ভুল না কি আপনি পর্দায় এখানে দেখতে. 681 00:29:58,170 --> 00:30:02,100 এটা প্রকৃতপক্ষে boils নিচে তিন XOR কাজকর্মকে 682 00:30:02,100 --> 00:30:05,910 এবং একরকম magically একটি এবং B অবস্থানের বিনিময় হবে 683 00:30:05,910 --> 00:30:08,010 কোন তথ্য হারানো ছাড়া. 684 00:30:08,010 --> 00:30:11,580 >> তাই তেল ও পানি কৌতুক নিকটস্থ বাস্তব জগতে অবতার 685 00:30:11,580 --> 00:30:12,980 আমি যে অনুকরণমূলক মনে হতে পারে. 686 00:30:12,980 --> 00:30:15,950 কিন্তু এটা নিশ্চয় সহজ একটি অস্থায়ী ভেরিয়েবল ব্যবহার, 687 00:30:15,950 --> 00:30:16,920 এখানে এই ক্ষেত্রে হিসাবে. 688 00:30:16,920 --> 00:30:21,190 এবং খুব এই একটি সুযোগ, বলতে হয় খুব, মাইক্রো অপ্টিমাইজেশান এই ধরনের, 689 00:30:21,190 --> 00:30:23,590 একজন কম্পিউটার বিজ্ঞানী হিসাবে বলতে হবে, যখন ধরনের মজা 690 00:30:23,590 --> 00:30:27,060 আপনি ছাড়া এই কেমন বড়াই করা একটি অতিরিক্ত পরিবর্তনশীল সঙ্গে সোয়াপিং মত, 691 00:30:27,060 --> 00:30:28,640 এটা যে সব বাধ্যকারী না. 692 00:30:28,640 --> 00:30:31,619 32 বিট, হিসাবে সংরক্ষণ করতে, কারণ একটি প্রকৃত int এর ক্ষেত্রে, 693 00:30:31,619 --> 00:30:33,410 সব যে আকর্ষক নয় একটি সিস্টেম যেখানে প্রথম 694 00:30:33,410 --> 00:30:36,722 আপনি মেগাবাইটের দশ ব্যবহার করা যেতে পারে বা আরও বেশি যেমন মেমরি এইসব দিন. 695 00:30:36,722 --> 00:30:38,680 এবং সত্য, আমরা যখন পেতে পরবর্তী সমস্যা সেট করতে 696 00:30:38,680 --> 00:30:41,010 এবং আপনি বানান বাস্তবায়ন পরীক্ষক ও আপনাকে করব 697 00:30:41,010 --> 00:30:43,550 তাই না চ্যালেঞ্জ করা এই হিসাবে সামান্য র্যাম এবং হিসাবে সামান্য 698 00:30:43,550 --> 00:30:46,820 সম্ভব হিসাবে সময় এখনও আপনি কম্পিউটারে 699 00:30:46,820 --> 00:30:50,160 বাস্তবায়নের জন্য একটি সপ্তাহ আছে যদি আপনি হবেন থাকতে হবে এটিকে 700 00:30:50,160 --> 00:30:51,799 যারা সম্পদ কমানোর জন্য চ্যালেঞ্জ. 701 00:30:51,799 --> 00:30:53,840 এবং যে সত্যিই শুধুমাত্র এই সেমিস্টারে অনুষ্ঠানের 702 00:30:53,840 --> 00:30:57,940 আপনি শেভ করার পরামর্শ দেওয়া হবে যেখানে এমনকি শেখ কর্মক্ষমতা বন্ধ 703 00:30:57,940 --> 00:30:59,340 অন্যথায় খরচ. 704 00:30:59,340 --> 00:31:02,200 >> সুতরাং আমরা কিভাবে করতে পারেন what-- এই প্রকৃত কোড দেখতে? 705 00:31:02,200 --> 00:31:04,530 আমাকে এখন এগিয়ে যাওয়া যাক এবং একটি উদাহরণ খুলুন 706 00:31:04,530 --> 00:31:07,700 যে ইচ্ছাকৃতভাবে বলা হয় কোন সোয়াপ একটিও ভাষা ব্যবহারযোগ্য না কারণ 707 00:31:07,700 --> 00:31:10,670 আসলে ভেরিয়েবল অদলবদল আসলে আপনি আশা করতে পারে হিসাবে. 708 00:31:10,670 --> 00:31:12,260 তাই এর কটাক্ষপাত করা যাক. 709 00:31:12,260 --> 00:31:17,050 এখানে কোন CS50 আছে একটি প্রোগ্রাম গ্রন্থাগার, শুধু স্ট্যান্ডার্ড ইনপুট / আউটপুট যাওয়া. 710 00:31:17,050 --> 00:31:19,560 এখন আমরা একটি প্রোটোটাইপ আছে টপ আপ swap 'র জন্য যা শুধু 711 00:31:19,560 --> 00:31:21,540 তা পরবর্তী সংজ্ঞায়িত করা পেয়েছিলাম মানে. 712 00:31:21,540 --> 00:31:22,550 এবং এখানে মেইনের. 713 00:31:22,550 --> 00:31:26,000 >> আমি ইচ্ছামত X এবং Y বরাদ্দ, যথাক্রমে মান এক এবং দুই 714 00:31:26,000 --> 00:31:28,590 শুধু তারা ক্ষুদ্র কারণ এবং সহজ সম্পর্কে চিন্তা করা. 715 00:31:28,590 --> 00:31:32,280 এবং তারপর আমি শুধু printfs একটি গুচ্ছ আছে আমি একটি মানসিক সুস্থতা চেক আছে যেখানে. X 1 716 00:31:32,280 --> 00:31:35,110 এবং y 2 সম্ভবতঃ হয় যারা printfs বলবে কি. 717 00:31:35,110 --> 00:31:36,530 সুতরাং কোন যাদু পর্যন্ত. 718 00:31:36,530 --> 00:31:40,100 >> তারপর আমি সঙ্গে দাবি করতে যাচ্ছি ডট ডট ডট সোয়াপিং, Def প্রিন্ট করা হবে. 719 00:31:40,100 --> 00:31:43,730 আমি ও swap 'র কল যাচ্ছি ফাংশন, এক্স এবং ওয়াই এ ক্ষণস্থায়ী. 720 00:31:43,730 --> 00:31:47,350 এবং এর এখন যে জন্য অনুমান করা যাক অদল-বদলের কাজটি ঠিক বাস্তবায়িত হয় 721 00:31:47,350 --> 00:31:49,930 এটি একটি মুহূর্ত আগে ছিল একটি অস্থায়ী পরিবর্তনশীল. 722 00:31:49,930 --> 00:31:52,670 আর তাই আমি নির্ভয়ে দাবি, আনা যায়. 723 00:31:52,670 --> 00:31:55,429 X এই এবং Y এখন যে এখন হয়. 724 00:31:55,429 --> 00:31:57,220 কিন্তু ফাইল, অবশ্যই, কোন সোয়াপ বলা হয়. 725 00:31:57,220 --> 00:31:58,678 সুতরাং আসুন আসলে কি দেখতে দিন. 726 00:31:58,678 --> 00:32:04,450 আমি তখন কোন অদল-বদল ও সঙ্কলন ./noswap না, এক্স 1, Y 2 হয়. 727 00:32:04,450 --> 00:32:05,770 আনা সোয়াপিং. 728 00:32:05,770 --> 00:32:07,200 X Y 2, 1 হয়. 729 00:32:07,200 --> 00:32:11,980 সুতরাং এটা আসলে এমনকি দ্বিধান্বিত হতে মনে হয় swap-- যদিও এখন আমি নিচে স্ক্রল যাক 730 00:32:11,980 --> 00:32:16,542 প্রতি ঠিক বাস্তবায়িত হয় কোড আমি একটি মুহূর্ত আগে প্রস্তাব. 731 00:32:16,542 --> 00:32:19,000 সুতরাং আমরা অভিনব পেতে যাচ্ছেন না এখন জন্য XOR কাপড় দিয়ে. 732 00:32:19,000 --> 00:32:21,890 এই, খুব, ঠিক কাজ করা উচিত দুধ এবং OJ সঙ্গে মত, 733 00:32:21,890 --> 00:32:25,820 কিন্তু এটা কাজ হবে বলে মনে হচ্ছে না. 734 00:32:25,820 --> 00:32:27,180 >> সুতরাং আসুন আবার এই কাজ করা যাক. 735 00:32:27,180 --> 00:32:29,310 হয়তো আমি ঠিক এটা চলমান যায়নি. 736 00:32:29,310 --> 00:32:32,010 সুতরাং আসুন আবার কোন swap চালানো যাক. 737 00:32:32,010 --> 00:32:32,900 হয়তো I-- কোন. 738 00:32:32,900 --> 00:32:34,400 তাই এটা শুধু কাজ করছে না. 739 00:32:34,400 --> 00:32:36,060 সুতরাং আসুন একটু বৈধতা পরীক্ষা না দেওয়া. 740 00:32:36,060 --> 00:32:39,690 আমার অদল-বদল এখানে এগিয়ে যান এবং মাত্র, যোগ একটি মিনিট অপেক্ষা করুন, 741 00:32:39,690 --> 00:32:43,856 একটি% আমি হয় / এন ও এর দিন প্লাগ ইন একটি মান. 742 00:32:43,856 --> 00:32:45,730 আমি সত্যিই চান কারণ কি ঘটছে দেখতে. 743 00:32:45,730 --> 00:32:47,570 এবং প্রকৃতপক্ষে, এই হল একটি ডিবাগিং কৌশল 744 00:32:47,570 --> 00:32:50,028 আপনি ব্যবহার করা যেতে পারে যে অফিসে ঘন্টা বা ইতিমধ্যে বাড়ীতে, 745 00:32:50,028 --> 00:32:53,560 ড্যান প্রথমার্ধে সদৃশ PSET3 মধ্যে Armendariz এর ভিডিও 746 00:32:53,560 --> 00:32:56,870 আমরা প্রিন্ট চালু যাহাতে হিসাবে Def অন্তত একটি সুপারিশ কৌশল, 747 00:32:56,870 --> 00:32:58,080 সহজ ক্ষেত্রে. 748 00:32:58,080 --> 00:33:01,720 আমাকে এগিয়ে যান এবং না চালানো যাক আবার কোন swap, ./noswap. 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> জবর. 751 00:33:05,840 --> 00:33:11,670 সুতরাং সত্য হতে পারে বলে মনে হয় তা লক্ষ্য করা. এক্স 1 হয়, Y 2, কিন্তু বি 1 পাবো একটি 2 হয়. 752 00:33:11,670 --> 00:33:16,790 তাই ঐ দুটি একরকম আনা গিয়েছে কিন্তু x এবং y অদলবদল পাচ্ছে না. 753 00:33:16,790 --> 00:33:21,090 তাই কি ঘটছে, পরিষ্কার করা , আপ এখানে আমি x এবং y আছে হয় 754 00:33:21,090 --> 00:33:25,380 এবং যারা স্থানীয় ভেরিয়েবল প্রধান সুযোগ, আমি x এবং y এর মধ্যে পার করছি 755 00:33:25,380 --> 00:33:26,170 বিনিময় করা. 756 00:33:26,170 --> 00:33:29,080 এখন, swap ', একটি পৃথক ফাংশন হিসাবে, তার আর্গুমেন্ট কল করুন বিনামূল্যে 757 00:33:29,080 --> 00:33:30,590 বা তার পরামিতি কিছু এটা চায়. 758 00:33:30,590 --> 00:33:33,280 ফু X বা Y অথবা A অথবা B অথবা দণ্ড বা. 759 00:33:33,280 --> 00:33:36,870 শুধু যে তারা পরিষ্কার করতে X অভিন্ন না এবং Y সহজাতভাবে 760 00:33:36,870 --> 00:33:38,020 আমি A এবং B বলেন করেছি. 761 00:33:38,020 --> 00:33:40,040 কিন্তু আমরা তাদের আমরা কিছু করতে চান পেরেছিলাম. 762 00:33:40,040 --> 00:33:43,960 >> আর তাই এটা দেখে মনে হচ্ছে অদল-বদল পাস হচ্ছে 763 00:33:43,960 --> 00:33:48,980 x-- ওরফে ছাগু karigor.com এবং এটা * সাথে ওরফে বি পাস হচ্ছে. 764 00:33:48,980 --> 00:33:51,900 একরকম এই তিনটি লাইন ঠিক ঐ মান সোয়াপিং 765 00:33:51,900 --> 00:33:53,510 লরেন দুধ এবং OJ সঙ্গে করেনি. 766 00:33:53,510 --> 00:33:56,010 কিন্তু আমরা প্রিন্ট আউট যখন মান, A এবং B 767 00:33:56,010 --> 00:34:01,340 অদলবদল ইচ্ছাধীন কিন্তু এক্স এবং Y তাদের কোন পরিবর্তন আছে. 768 00:34:01,340 --> 00:34:03,150 যে x এবং y এখানে আপ হয় প্রত্যাহার. 769 00:34:03,150 --> 00:34:05,320 >> তাই আমরা এই মাধ্যমে দেখতে পারেন পাশাপাশি অন্য কৌশল. 770 00:34:05,320 --> 00:34:08,110 এবং এই অত্যন্ত একটি কৌশল সমস্যা এমবেড তিন সেট. 771 00:34:08,110 --> 00:34:10,780 আসুন এগিয়ে যান এবং এই কাজ এবং CS50 আইডি আপনি ইতিমধ্যে না থাকে তাহলে. 772 00:34:10,780 --> 00:34:13,730 ডান দিকে আমরা এই ডিবাগার ট্যাব আছে. 773 00:34:13,730 --> 00:34:16,159 এবং যদি আপনি এই পর্যন্ত খুলতে হলে, কিছু গোপনীয় তথ্য আছে 774 00:34:16,159 --> 00:34:17,530 যে প্রথমে আপনি এ নিক্ষিপ্ত. 775 00:34:17,530 --> 00:34:19,310 কিন্তু এর বাস্তব দ্রুত এই সরাইয়া জ্বালাতন করা যাক. 776 00:34:19,310 --> 00:34:21,620 >> তাই এক, আপনি স্থানীয় ভেরিয়েবল দেখতে. 777 00:34:21,620 --> 00:34:26,230 এবং CS50 আইডিই মধ্যে নির্মাণ যে সক্রিয় আউট, এবং প্রোগ্রামিং পরিবেশে অনেক আরো 778 00:34:26,230 --> 00:34:28,060 সাধারণত, একটি ডিবাগার হয়. 779 00:34:28,060 --> 00:34:31,340 আপনি চাক্ষুষরূপে দেখতে পারবেন যে একটি টুল কি আপনার প্রোগ্রামের ভিতর যাচ্ছে 780 00:34:31,340 --> 00:34:34,380 যোগ করার জন্য অবলম্বন ছাড়াই printfs এবং কম্পাইল এবং চলমান 781 00:34:34,380 --> 00:34:37,588 এবং printf এর যোগ এবং কম্পাইল এবং অফিস ঘন্টার মধ্যে, যা ইতিমধ্যেই চলমান 782 00:34:37,588 --> 00:34:40,070 অথবা বাড়িতে, সম্ভবত হয় বেশ ক্লান্তিকর পেয়ে. 783 00:34:40,070 --> 00:34:43,090 >> তাই এখানে, মাত্র কয়েক মিনিটের মধ্যে আমরা আছেন রিয়েল টাইমে দেখতে যাচ্ছে 784 00:34:43,090 --> 00:34:44,760 আমাদের স্থানীয় ভেরিয়েবলের মান. 785 00:34:44,760 --> 00:34:47,880 আমরা সেট করতে সক্ষম হতে যাচ্ছেন ব্রেকপয়েন্ট বলা হয় কি যা 786 00:34:47,880 --> 00:34:52,570 সুযোগ বিরতি আমার প্রোগ্রাম হয় কোড একটি নির্দিষ্ট লাইনে মৃত্যুদন্ড 787 00:34:52,570 --> 00:34:53,710 আমি সম্পর্কে জানতে আগ্রহী নই যে. 788 00:34:53,710 --> 00:34:54,210 রাইট? 789 00:34:54,210 --> 00:34:55,969 এই প্রোগ্রামের একটি বিভক্ত দ্বিতীয় রান. 790 00:34:55,969 --> 00:35:00,450 এটা আমাদের ধীর মানুষের জন্য ধরনের চমৎকার , বিরাম একটি মুহূর্ত নিতে পাবে, দেখতে 791 00:35:00,450 --> 00:35:02,380 চারপাশে কি ঘটছে কোড একটি নির্দিষ্ট লাইন 792 00:35:02,380 --> 00:35:05,050 প্রোগ্রাম চাষ ছাড়া এটা মাধ্যমে এবং সম্পূর্ণরূপে শেষ. 793 00:35:05,050 --> 00:35:08,510 সুতরাং একটি ব্রেকপয়েন্ট আমাদের অনুমতি যাচ্ছে বিরতি এবং একটি নির্দিষ্ট সময়ে বিরতি. 794 00:35:08,510 --> 00:35:12,990 >> কল স্ট্যাক একটি অভিনব উপায় ফাংশন কি বর্তমানে বলছে 795 00:35:12,990 --> 00:35:14,140 মুহূর্তে বলা হচ্ছে. 796 00:35:14,140 --> 00:35:15,370 প্রধান সবসময় প্রথম বলা হয়. 797 00:35:15,370 --> 00:35:17,230 কিন্তু মূল একটি কল যদি সোয়াপ বলা ফাংশন, 798 00:35:17,230 --> 00:35:20,470 আমরা আসলে এই দেখতে যাচ্ছেন হয়েছে যে ফাংশন টাওয়ার 799 00:35:20,470 --> 00:35:22,400 বিপরীত ক্রমে বলা. 800 00:35:22,400 --> 00:35:23,310 সুতরাং আসুন যে দেখতে দিন. 801 00:35:23,310 --> 00:35:24,327 >> আমি জুম আউট করা যাচ্ছে না. 802 00:35:24,327 --> 00:35:25,660 আমি আমার কোড ফিরে যেতে চলেছি. 803 00:35:25,660 --> 00:35:27,540 আর আমি চাই, কারণ এখানে গোঁড়া হবে, 804 00:35:27,540 --> 00:35:31,100 আমি এগিয়ে যান এবং ক্লিক করুন যাচ্ছি শুধু লাইন পাঁচটি বাঁদিকে. 805 00:35:31,100 --> 00:35:32,830 এবং যে একটি লাল বিন্দু সৃষ্টি. 806 00:35:32,830 --> 00:35:36,200 আর ডান দিকে লক্ষ্য ডিবাগার আরে, জানেন যে, 807 00:35:36,200 --> 00:35:41,020 আমি শুধু বলেছি একটি ব্রেকপয়েন্ট এ noswap.c লাইন পাঁচটি, বিশেষভাবে 808 00:35:41,020 --> 00:35:42,480 কোড এই লাইন এ. 809 00:35:42,480 --> 00:35:45,090 সুতরাং ডিবাগার যে আমি জানে পরবর্তী সময় যে অনুরোধ করেছেন 810 00:35:45,090 --> 00:35:48,530 আমি আমার প্রোগ্রাম এটি বিরতি চালানো সেখানে বদলে শুধু মৃত্যুদন্ড 811 00:35:48,530 --> 00:35:50,390 সুপার ফাস্ট গোটা ব্যাপারটাই চলমান. 812 00:35:50,390 --> 00:35:53,889 >> তাই এখন আমি ডিবাগ ক্লিক যাচ্ছি আইডিই খুব উপরের বোতাম 813 00:35:53,889 --> 00:35:55,430 এবং যে নিচের কাজগুলো করতে যাচ্ছে. 814 00:35:55,430 --> 00:36:00,680 এটা প্রথমে কিছুটা খুলতে যাচ্ছে ভয়ের খুঁজছেন দ্বিতীয় টার্মিনাল উইন্ডোতে 815 00:36:00,680 --> 00:36:02,679 থেকে দূরবর্তী ডিবাগিং যেমন হোস্ট এবং such-- 816 00:36:02,679 --> 00:36:04,970 এবং আমরা ফিরে আসবো কি সব যে অর্থ আগে দীর্ঘ. 817 00:36:04,970 --> 00:36:09,020 কিন্তু এখন জন্য গুরুত্বপূর্ণ কি যে লাল বিন্দু আঘাত ছিল না, 818 00:36:09,020 --> 00:36:11,735 ডিবাগার ইচ্ছাকৃতভাবে আছে execution-- বিরাম 819 00:36:11,735 --> 00:36:15,560 না কোনটাই যে লাইনে কিন্তু প্রথম প্রথম যে ফাংশন প্রকৃত কোড লাইন. 820 00:36:15,560 --> 00:36:18,040 লাইন সাত কেন এবং যে এখন হলুদ হাইলাইট. 821 00:36:18,040 --> 00:36:20,550 >> এবং এখন এর কটাক্ষপাত করা যাক ডান দিকে এ. 822 00:36:20,550 --> 00:36:27,300 এটি ডিফল্টরূপে, দেখে মনে হচ্ছে, সুন্দরভাবে যথেষ্ট, এক্স কি মূল্য আছে? 823 00:36:27,300 --> 00:36:27,860 0. 824 00:36:27,860 --> 00:36:29,750 আর Y কি মূল্য আছে? 825 00:36:29,750 --> 00:36:30,410 জিরো. 826 00:36:30,410 --> 00:36:35,540 আর যে অর্থে হবে বলে আশা করা হচ্ছে যে এক্স এবং হলুদ লাইনে আছে * সাথে 827 00:36:35,540 --> 00:36:36,770 এখনো মৃত্যুদন্ড না. 828 00:36:36,770 --> 00:36:38,510 তাই x এর মান 1 আছে করা উচিত নয়. 829 00:36:38,510 --> 00:36:41,470 এটা অন্য কোন মূল্য থাকতে পারে, একটি তথাকথিত আবর্জনা মান. 830 00:36:41,470 --> 00:36:44,320 আর আমরা এটা ভাগ্যবান যে মূলত, এই সময়ে শূন্য. 831 00:36:44,320 --> 00:36:46,400 >> তাই এখন মাত্র কয়েক আছে বোতাম আমরা যত্নের প্রয়োজন 832 00:36:46,400 --> 00:36:48,100 এই ভাবে ডিবাগ করার সময় সম্পর্কে. 833 00:36:48,100 --> 00:36:49,970 এখানে লক্ষ্য করুন, আমরা একটি প্লে বাটন আছে. 834 00:36:49,970 --> 00:36:51,877 এবং আমরা খেলা যদি বা আঘাত ঠিক যে, পুনরায় শুরু 835 00:36:51,877 --> 00:36:53,710 মাধ্যমে চালানো যাচ্ছে প্রোগ্রাম বাকি 836 00:36:53,710 --> 00:36:55,300 অথবা এটা অন্য ব্রেকপয়েন্ট হিট পর্যন্ত. 837 00:36:55,300 --> 00:36:56,910 কিন্তু আমি অন্য কোন সেট না থাকেন ব্রেকপয়েন্ট তাই এটা ঠিক 838 00:36:56,910 --> 00:36:58,118 শেষ মাধ্যমে চালানো যাচ্ছে. 839 00:36:58,118 --> 00:37:00,280 নষ্ট তজ্জাতীয় প্রায় খোঁচা উদ্দেশ্য. 840 00:37:00,280 --> 00:37:03,290 >> সুতরাং পরিবর্তে, আমি যত্নশীল ডানে এই আইকন. 841 00:37:03,290 --> 00:37:05,360 আর আমি উপর কার্সার রেখে যদি তাদের হিসাবে আপনি খুব উচিত 842 00:37:05,360 --> 00:37:07,450 আপনি একটু tips-- টুল টিপস দেখতে পাবেন. 843 00:37:07,450 --> 00:37:09,020 এই এক ওভার করে. 844 00:37:09,020 --> 00:37:11,290 এখন যে ছেড়ে মানে এই নয় কোড নিম্নলিখিত পংক্তিটি. 845 00:37:11,290 --> 00:37:14,840 যে শুধু এটি চালানো মানে এবং পরের সরানো, পরের সরানো, 846 00:37:14,840 --> 00:37:15,580 পরবর্তী সরাতে. 847 00:37:15,580 --> 00:37:17,610 অন্য কথায়, মাধ্যমে যে বাটন, আমি পায়চারি করতে পারেন 848 00:37:17,610 --> 00:37:20,390 একটি সময়ে আমার কোড এক ধাপ মাধ্যমে. 849 00:37:20,390 --> 00:37:21,914 আক্ষরিক পাতিপাতি,. 850 00:37:21,914 --> 00:37:23,830 এখন, ডান অন্য আর একটা আছে, যে 851 00:37:23,830 --> 00:37:25,163 আমরা মাত্র কয়েক মিনিটের মধ্যে দেখতে পাবেন যে. 852 00:37:25,163 --> 00:37:27,820 এই তথাকথিত হয় যে আইকন মধ্যে পইঠা 853 00:37:27,820 --> 00:37:30,300 আমার ডাইভ অনুমতি দিতে যাচ্ছে আরেকটি ফাংশন. 854 00:37:30,300 --> 00:37:31,800 কিন্তু এর মাত্র কয়েক মিনিটের মধ্যে এই দেখুন. 855 00:37:31,800 --> 00:37:33,280 তাই আমি ধরে ধাপে ক্লিক করুন যাচ্ছি. 856 00:37:33,280 --> 00:37:35,820 আমি ক্লিক হিসাবে এবং এখন, লক্ষ্য উপরের ডানদিকে এই বাটন, 857 00:37:35,820 --> 00:37:41,260 স্থানীয় অধীনে প্রায় আপনার চোখ রাখা ভেরিয়েবল এবং এক্স দেখুন সেখানে কি ঘটছে. 858 00:37:41,260 --> 00:37:44,115 X বর্তমানে কারণ 1 হলুদ রেখা এখন মৃত্যুদন্ড কার্যকর করা হয়েছে 859 00:37:44,115 --> 00:37:45,840 এবং আমরা লাইন থেকে 8 সরানো করেছি. 860 00:37:45,840 --> 00:37:49,840 আর মাত্র কয়েক মিনিটের মধ্যে Y আশা 2 হওয়া উচিত. 861 00:37:49,840 --> 00:37:52,330 >> এখন, কিছুই আকর্ষণীয় যে একটি বিট জন্য এরকম. 862 00:37:52,330 --> 00:37:53,390 এই হল printf. 863 00:37:53,390 --> 00:37:58,010 আর আমার দ্বিতীয় টার্মিনালে, লক্ষ্য উইন্ডো, আমি প্রিন্ট Def আউটপুট দেখতে. 864 00:37:58,010 --> 00:38:01,080 এবং এখন আমি একটি করতে হবে প্রোগ্রামার হিসেবে সিদ্ধান্ত. 865 00:38:01,080 --> 00:38:04,360 আমি এই লাইন উপর পইঠা পারেন কোড, এটা নির্বাহ কিন্তু না 866 00:38:04,360 --> 00:38:06,220 ভিতরে কি সম্পর্কে কৌতুহলী. 867 00:38:06,220 --> 00:38:11,130 অথবা আমি আসলে তা বাড়ানো যাবে এবং সোয়াপ নিজেই ভেতরে যেতে. 868 00:38:11,130 --> 00:38:12,340 সুতরাং আসুন আধুনিক করতে দিন. 869 00:38:12,340 --> 00:38:15,550 >> আমাকে এগিয়ে যান এবং ক্লিক করুন না আসিতে কিন্তু মধ্যে পর্যায়. 870 00:38:15,550 --> 00:38:17,300 লক্ষ্য করুন, হঠাৎ সব উইন্ডো পরিবর্তন 871 00:38:17,300 --> 00:38:19,330 প্রথম তুলে ধরতে সোয়াপ কোড লাইন. 872 00:38:19,330 --> 00:38:20,710 যে লাইন 21 এর. 873 00:38:20,710 --> 00:38:25,220 এবং এখন, ভীতু ধরনের যে কি, আপনি এখানে উপর তাকান,, প্রত্যাশা 874 00:38:25,220 --> 00:38:29,720 একটি কমা B যথাক্রমে 1 এবং 2, হয়. 875 00:38:29,720 --> 00:38:33,840 কেন টেম্প 32.767 হয়? 876 00:38:33,840 --> 00:38:36,560 অনেক মত, যে টেম্প স্মরণ একটি মুহূর্ত আগে খালি কাপ, 877 00:38:36,560 --> 00:38:38,980 লাইন 21 এখানে ঘোষিত হয়. 878 00:38:38,980 --> 00:38:43,390 আমি বলতে চাচ্ছি কেন 32,000-, কেন হয় এটা শুধু কিছু অদ্ভুত মান? 879 00:38:43,390 --> 00:38:43,890 হ্যা? 880 00:38:43,890 --> 00:38:45,190 >> শ্রোতা: এটি সক্রিয়া না. 881 00:38:45,190 --> 00:38:46,940 >> ডেভিড জে MALAN: এটা সক্রিয়া করা. 882 00:38:46,940 --> 00:38:49,370 তাই আমাদের কম্পিউটার সবসময় প্রকৃত মেমরি আছে. 883 00:38:49,370 --> 00:38:50,544 এটা সবসময় প্রকৃত RAM আছে. 884 00:38:50,544 --> 00:38:52,710 আর সবসময় আছে জিরো এবং এক ডান, ওখানে? 885 00:38:52,710 --> 00:38:54,626 আমরা ব্যবহার করছি, কারণ আমাদের সব দিন লম্বা কম্পিউটার, 886 00:38:54,626 --> 00:38:57,210 আপনি CS50 আইডিই ব্যবহার করছেন অথবা সার্ভার সব দিন লম্বা. 887 00:38:57,210 --> 00:39:01,159 যে র্যাম কিছু শূন্য আছে, তাই হয় বা কেউ বা কিছু zeros এবং বেশী. 888 00:39:01,159 --> 00:39:02,950 কোন ব্যাপার কিনা বা আপনি তাদের ব্যবহার করছেন না. 889 00:39:02,950 --> 00:39:05,270 আপনি শুধু ফাঁকা থাকতে পারে না শূণ্যস্থান যেখানে আপনি বিট চান. 890 00:39:05,270 --> 00:39:06,850 তারা zeros এবং বেশী হয় হন. 891 00:39:06,850 --> 00:39:09,610 >> সুতরাং এটা, কারণ, যে টেম্প সক্রিয় আউট আমরা এখনো সক্রিয়া করেছি 892 00:39:09,610 --> 00:39:14,580 আমরা যারা 32 বিট আছে কিন্তু তারা না করেছি কোনো পরিচিত মান সক্রিয়া করা. 893 00:39:14,580 --> 00:39:18,110 তাই তারা ছিল যাই হোক না কেন অধিকাংশ সম্প্রতি যারা 32 bits-- for-- ব্যবহৃত 894 00:39:18,110 --> 00:39:23,000 আমরা শুধু কিছু হস্তনির্মিত দেখছি ঐ বিশেষ 32 পূর্ববর্তী ব্যবহারের 895 00:39:23,000 --> 00:39:23,500 বিট. 896 00:39:23,500 --> 00:39:27,780 যত তাড়াতাড়ি আমি যদিও আসিতে ক্লিক হিসাবে, ছি ছি, টেম্প মূল্য 1 পেতে যাচ্ছে. 897 00:39:27,780 --> 00:39:31,600 আমি আবার এটা করতে হলে, একটি হল মান 2 দেওয়া যাচ্ছে 898 00:39:31,600 --> 00:39:33,830 এবং তারপর বি যাচ্ছে মান 1 দেওয়া. 899 00:39:33,830 --> 00:39:36,390 >> তাই কি এখন সুন্দর গল্পে এই বিন্দু 900 00:39:36,390 --> 00:39:39,750 ডিবাগার হয় সুপার ধীরে ধীরে, আমার দেশ 901 00:39:39,750 --> 00:39:42,640 আমার নিজস্ব গতিতে, কি অদল-বদল রাজ্যের হয়. 902 00:39:42,640 --> 00:39:47,490 কিন্তু এখানে উপরে, নোটিস লক্ষ্য যে আসলে কল স্ট্যাক 903 00:39:47,490 --> 00:39:49,180 এটি দুটি স্তর আছে. 904 00:39:49,180 --> 00:39:53,240 হিসাবে হাইলাইট যে এখন এক সোয়াপ, আমি পরিবর্তে মুখ্য উপর ক্লিক করুন, 905 00:39:53,240 --> 00:39:57,100 স্থানীয় ভেরিয়েবল পরিবর্তন কিভাবে লক্ষ্য ডেভেলপার শুধু প্রস্থান করতে পারেন, কারণ 906 00:39:57,100 --> 00:39:59,740 কাছাকাছি এবং কোন বিভিন্ন সুযোগ ঢোকা. 907 00:39:59,740 --> 00:40:04,070 আমরা এই সব করছেন সুতরাং যদিও কাজ ও সঠিকভাবে a ও b সোয়াপিং, 908 00:40:04,070 --> 00:40:09,080 আমি অদলবদল মধ্যে আগে পিছে যেতে হলে একটি 2 এবং বি 1 এবং প্রধান যেখানে, 909 00:40:09,080 --> 00:40:11,851 প্রধান সব সময়ে আক্রান্ত হয়েছে? 910 00:40:11,851 --> 00:40:12,350 না. 911 00:40:12,350 --> 00:40:13,930 সুতরাং Takeaway এখানে কি? 912 00:40:13,930 --> 00:40:18,200 ওয়েল, এটা যে কোনো সময় দেখা যাচ্ছে যে আপনি, swap 'র মত একটি ফাংশন কল 913 00:40:18,200 --> 00:40:21,600 এবং আপনি এটা আর্গুমেন্ট, পাস কি আপনি সোয়াপ ফাংশন পার করছি 914 00:40:21,600 --> 00:40:24,730 এই ক্ষেত্রে একটি কপি যারা আর্গুমেন্ট. 915 00:40:24,730 --> 00:40:28,620 সুতরাং x এবং y যথাক্রমে প্রতিটি হয় তাহলে 32 বিট, কি অদল-বদল হচ্ছে 916 00:40:28,620 --> 00:40:30,760 দুটি নতুন স্থানীয় ভেরিয়েবল, বা আর্গুমেন্ট, 917 00:40:30,760 --> 00:40:34,380 নামক একটি এবং বি কিন্তু যারা নির্বিচারে হয় names-- কিন্তু শূন্য প্যাটার্ন 918 00:40:34,380 --> 00:40:39,520 এবং ভিতরে A এবং B এর বেশী হয় বূ্যহিত X এবং Y অভিন্ন হবে 919 00:40:39,520 --> 00:40:42,610 কিন্তু তারা না হয় X এবং Y হিসাবে একই জিনিস. 920 00:40:42,610 --> 00:40:46,880 >> প্রধান তার স্থানের হিসাবে যদিও এটা কাগজের সংখ্যা 1 এবং X ও Y জন্য 2, 921 00:40:46,880 --> 00:40:49,260 এবং এটা যে হাত তারপর যখন কাগজ এক টুকরা অদলবদল, 922 00:40:49,260 --> 00:40:51,970 সোয়াপ খুব দ্রুত পায় নিজস্ব কলম, নিচে লিখেছেন 923 00:40:51,970 --> 00:40:56,240 1 ও কাগজের নিজস্ব পত্রকে 2, হাত প্রধান মূল XY ব্যাক 924 00:40:56,240 --> 00:40:58,790 এবং তারপর তার নিজের করে A এবং B সঙ্গে জিনিস. 925 00:40:58,790 --> 00:41:01,940 এবং এইটা এখন কারণ সুপার গুরুত্বপূর্ণ এই nontrivial বিষয় রয়েছে 926 00:41:01,940 --> 00:41:06,260 আসলে সঠিক কোড লেখার জন্য মনে হবে, কারণ আমরা অদলবদল করা যাবে না 927 00:41:06,260 --> 00:41:07,500 দুটি ভেরিয়েবল. 928 00:41:07,500 --> 00:41:09,150 >> আমি একটি সঠিক swap ফাংশন লেখা আছে. 929 00:41:09,150 --> 00:41:12,770 আমরা যেমন Lauren সঙ্গে এটি প্রয়োগ করেছি বাস্তবে একটি সঠিক ও swap 'র ফাংশন, 930 00:41:12,770 --> 00:41:16,700 কিন্তু যে দৃশ্যত কেউ গুরুত্বপূর্ণ হলে আপনি আসলে না পারেন 931 00:41:16,700 --> 00:41:19,530 স্থায়ীভাবে দুই মূল্যবোধের অদলবদল. 932 00:41:19,530 --> 00:41:21,970 সুতরাং আমরা অন্য ভাবে প্রয়োজন আসলে এই সময়ে পেতে, 933 00:41:21,970 --> 00:41:24,472 এবং আমরা পাবে প্রয়োজন আসলে এই সমস্যার সমাধান. 934 00:41:24,472 --> 00:41:27,180 আর এটা বলতে সক্রিয় এবং আমরা আসবো ফিরে এই বিশেষ ছবি 935 00:41:27,180 --> 00:41:30,500 দীর্ঘ আগে এই এক উপায় যে আপনি আপনার কম্পিউটার এর মেমরি আঁকতে পারে. 936 00:41:30,500 --> 00:41:31,460 এটি শুধু একটি আয়তাকার এর. 937 00:41:31,460 --> 00:41:32,960 আপনি যে কোনো এটা আঁকতে পারে উপায় কিন্তু এটা সংখ্যা 938 00:41:32,960 --> 00:41:35,740 একটি হিসাবে এটি আঁকা সুবিধাজনক নিম্নলিখিত কারণে আয়তক্ষেত্র. 939 00:41:35,740 --> 00:41:40,040 >> আমরা অতিক্রম আজ শুরু এবং চলুন তথাকথিত স্ট্যাকের সম্পর্কে কথা বলা. 940 00:41:40,040 --> 00:41:43,870 এবং স্ট্যাকের শুধু একটি খণ্ড এর মেমরি একটি খণ্ড উপস্থিত RAM- 941 00:41:43,870 --> 00:41:47,100 ফাংশন এক্সেস আছে তারা নামক করছি যখন করতে. 942 00:41:47,100 --> 00:41:49,800 আর তাই এটি যে সময়ে দেখা যাচ্ছে এই স্ট্যাকের খুব নীচে 943 00:41:49,800 --> 00:41:53,590 মেইনের স্থানীয় ভেরিয়েবল সব কোথায় সংস্থা সি এবং org ভী এবং যে সব উপাদান এবং 944 00:41:53,590 --> 00:41:56,950 ডিফল্টরূপে যেতে যাচ্ছি. এবং প্রধান তাহলে , swap 'র মত কিছু অন্যান্য ফাংশন কল 945 00:41:56,950 --> 00:42:00,330 ভাল, সোয়াপ অন্য পেতে যাচ্ছে এটা উপরে মেমরি স্তর. 946 00:42:00,330 --> 00:42:04,490 >> আর তাই শুধু আপনি একটি দ্রুত দ্রুত দিতে এই ছবি আমি পুনরালোচনা যদি এখানে 947 00:42:04,490 --> 00:42:09,450 এবং আমার উপর এই মিরর দিন উপরি হিসেবে সত্যিই আমি আছে কি well--, 948 00:42:09,450 --> 00:42:12,100 আমরা সম্পর্কে শুধুমাত্র যত্ন যদি এখন জন্য এই ছবি নীচে, 949 00:42:12,100 --> 00:42:15,070 যে আমি যখন একটি প্রোগ্রাম চালানো এবং প্রধান, বলা পরার 950 00:42:15,070 --> 00:42:18,330 প্রধান একটি খণ্ড দেওয়া হয় যে আমার কম্পিউটার উপস্থিত RAM- র 951 00:42:18,330 --> 00:42:20,060 এই তথাকথিত স্ট্যাকের নীচে. 952 00:42:20,060 --> 00:42:22,143 এবং আমি এটা আঁকতে চলেছি ইচ্ছাকৃতভাবে একটি বর্গ হিসাবে. 953 00:42:22,143 --> 00:42:24,540 সুতরাং এটা 32 বিট বা চার বাইট মত. 954 00:42:24,540 --> 00:42:28,790 এবং এই মূল ফাংশন আছে যদি একটি 1 এর একটি মান সঙ্গে পরিবর্তনশীল নামক এক্স 955 00:42:28,790 --> 00:42:32,626 এবং এটি একটি পরিবর্তনশীল নামক হয়েছে 2 এর মান সঙ্গে Y, যে 956 00:42:32,626 --> 00:42:35,750 মেমরি এই কাঠের ছিলকা নেওয়ার মত যে প্রধান অপারেটিং দ্বারা দেওয়া হয়েছে 957 00:42:35,750 --> 00:42:38,850 সিস্টেম এবং যাতে এটি আপ বিভাজক প্রথম স্থানীয় পরিবর্তনশীল, এখানে যায় 958 00:42:38,850 --> 00:42:40,930 দ্বিতীয় এখানে যায়, এবং যে এটি. 959 00:42:40,930 --> 00:42:45,590 >> প্রধান সোয়াপ, অদলবদল কল যখন মেমরি নিজস্ব ফালি পায় 960 00:42:45,590 --> 00:42:48,280 আমরা ভালো আঁকা করব যে অপারেটিং সিস্টেম থেকে, 961 00:42:48,280 --> 00:42:50,820 এবং এটি আছে যাচ্ছে তার নিজস্ব স্থানীয় ভেরিয়েবল ভিত্তি 962 00:42:50,820 --> 00:42:53,825 আমাদের বাস্তবায়ন উপর আগে স্থানীয় ভেরিয়েবল সঙ্গে একটি 963 00:42:53,825 --> 00:42:58,010 প্রথমে ও বি যে মান 1 এবং 2 পেতে. 964 00:42:58,010 --> 00:43:00,450 কিন্তু তারপর, যত তাড়াতাড়ি সোয়াপ কোড, executes 965 00:43:00,450 --> 00:43:03,760 এবং Lauren আসলে বিনিময়সমূহ OJ এবং দুধ, কি ঘটছে? 966 00:43:03,760 --> 00:43:09,030 ওয়েল, এই 2 একটি 1, এই হয়ে উঠছে না 1, উপায় দ্বারা, একটি 2 হয়ে উঠছে, এবং হয় 967 00:43:09,030 --> 00:43:13,360 হচ্ছে যে একটি টেম্প পরিবর্তনশীল নেই যে অবশেষে যে পুরো সময় ব্যবহৃত 968 00:43:13,360 --> 00:43:14,470 দূরে যায়. 969 00:43:14,470 --> 00:43:16,720 কিন্তু এটা কোন ব্যাপার না কত কাজ আপনি না 970 00:43:16,720 --> 00:43:22,160 এই লাইন এই মেমরি স্থান র মধ্যে, X এবং Y সম্পূর্ণ অক্ষত আছে. 971 00:43:22,160 --> 00:43:26,320 >> সুতরাং আমরা দান কিছু উপায় প্রয়োজন এটা মত অদল-বদল ও কার্যাবলী 972 00:43:26,320 --> 00:43:32,640 গোপন এক্সেস, যদি আপনি হবে, এর সাথে ফাংশন X এবং Y মত মেমরি করার মত. 973 00:43:32,640 --> 00:43:35,110 সুতরাং আসুন কটাক্ষপাত করা যাক সাহায্য করে একটি উদাহরণ 974 00:43:35,110 --> 00:43:38,220 আমাদের হয়েছে ঠিক কি দেখতে এই পুরো সময় যাচ্ছে. 975 00:43:38,220 --> 00:43:40,284 আমি এগিয়ে যেতে চলেছি এবং খুলুন জিরো তুলনা. 976 00:43:40,284 --> 00:43:42,200 আর আমি বন্ধ করা যাচ্ছে না আমাদের ডিবাগার, আমি যাচ্ছি 977 00:43:42,200 --> 00:43:44,360 এই ভীতিকর খুঁজছেন বার্তা বন্ধ করতে শুধু, একটি মিনিট অপেক্ষা করুন বলছেন, 978 00:43:44,360 --> 00:43:45,800 আপনি মাঝখানে ডিবাগ মধ্যে আছেন. 979 00:43:45,800 --> 00:43:48,383 আমি এখানে এই ট্যাব আড়াল করতে যাচ্ছি শুধু ফিরে সরলতা যেতে. 980 00:43:48,383 --> 00:43:50,160 , GDB নিহত হলে তাই চিন্তা করবেন না. 981 00:43:50,160 --> 00:43:53,910 যে শুধু প্রোগ্রাম আছে যে মানে ইচ্ছাকৃতভাবে এই ক্ষেত্রে, প্রস্থান করা, 982 00:43:53,910 --> 00:43:54,820 আমার দ্বারা. 983 00:43:54,820 --> 00:43:57,700 >> আর এখন জিরো এই আছে তুলনা. 984 00:43:57,700 --> 00:44:00,110 আমি CS50 ব্যবহার করছি স্ট্যান্ডার্ড ইনপুট / আউটপুট লাইব্রেরি. 985 00:44:00,110 --> 00:44:04,319 আমি যে প্রথম একটি প্রধান ফাংশন পেয়েছেন বলেছেন, কিছু বলতে, এবং একটি পংক্তি পায়. 986 00:44:04,319 --> 00:44:06,110 অতঃপর তুমি বার বার এটা বলছেন অন্য স্ট্রিং পায়. 987 00:44:06,110 --> 00:44:09,910 আর যে এই দুটি স্ট্রিং লক্ষ্য যথাক্রমে এর এবং T বলা হয়. 988 00:44:09,910 --> 00:44:12,910 আর এখন এই প্রোগ্রাম, তুলনা জিরো, জীবনের উদ্দেশ্য, 989 00:44:12,910 --> 00:44:15,470 এটা আমাকে বলুন অনুমিত এর, আমি একই জিনিস টাইপ হয়নি? 990 00:44:15,470 --> 00:44:16,910 আর তাই আমি সপ্তাহে এক ফিরে যাচ্ছি. 991 00:44:16,910 --> 00:44:19,950 আমি আমার সমান সমান অপারেটর ব্যবহার করছি যা মানের অপারেটর. 992 00:44:19,950 --> 00:44:22,220 না নিয়োগ অপারেটর, সমতা অপারেটর. 993 00:44:22,220 --> 00:44:23,890 আমি শুধু এর এবং T তুলনা করছি. 994 00:44:23,890 --> 00:44:27,470 >> সুতরাং আসুন আসলে এগিয়ে যান এবং এই কাজ করা যাক. 995 00:44:27,470 --> 00:44:32,680 এবং আমি এগিয়ে যেতে চলেছি এবং জিরো তুলনা করতে. 996 00:44:32,680 --> 00:44:35,110 আমি ./comparezero কাজ করতে যাচ্ছি. 997 00:44:35,110 --> 00:44:37,150 এবং আমি যেতে যাচ্ছি এগিয়ে এবং কিছু বলতে 998 00:44:37,150 --> 00:44:43,450 মত, এর ছোট হাতের মধ্যে মায়ের না যাক এবং কিভাবে বড় হাতের মধ্যে মায়ের ওপর. 999 00:44:43,450 --> 00:44:45,034 এবং অবশ্যই আমি বিভিন্ন জিনিস টাইপ. 1000 00:44:45,034 --> 00:44:45,533 ঠিক আছে. 1001 00:44:45,533 --> 00:44:46,570 বলে আশা করা হচ্ছে. 1002 00:44:46,570 --> 00:44:47,640 >> এর আবার এটি চালানো যাক. 1003 00:44:47,640 --> 00:44:49,740 উভয় বার, ছোট হাতের এবং ছোট হাতের না. 1004 00:44:49,740 --> 00:44:51,490 এটা আমার কাছে সুপার দেখায় অভিন্ন. 1005 00:44:51,490 --> 00:44:52,930 লিখুন. 1006 00:44:52,930 --> 00:44:53,430 ঠিক আছে. 1007 00:44:53,430 --> 00:44:55,804 হয়তো এটা কারণ শুধু অদ্ভুত এটা আমার ব্যাকরণ পচ্ছন্দ না. 1008 00:44:55,804 --> 00:44:59,930 সুতরাং আসুন একটি মূলধন মায়ের কাজ করা উচিত, রাজধানী মায়ের, অভিন্ন. 1009 00:44:59,930 --> 00:45:01,490 বিভিন্ন জিনিষ. 1010 00:45:01,490 --> 00:45:03,907 >> তাই কেন যে হয়? 1011 00:45:03,907 --> 00:45:06,240 ওয়েল, আসলে কি ঘটছে এখানে ফণা নীচে? 1012 00:45:06,240 --> 00:45:08,180 সুতরাং আসুন ফিরে যেতে দিন এখানে শুধু একটি মুহূর্ত জন্য 1013 00:45:08,180 --> 00:45:10,910 এবং তা বিবেচনা GetString, আসলে করছে. 1014 00:45:10,910 --> 00:45:13,385 আপনি কল GetString যখন, একটি ফাংশন যে আমরা এর 1015 00:45:13,385 --> 00:45:16,510 নিজেদেরকে লিখেছিলেন এবং এটা একরকম একটি পায় ব্যবহারকারী থেকে অক্ষরের ক্রমানুসারে. 1016 00:45:16,510 --> 00:45:20,280 আর এর প্রথম যে অনুমান করা যাক সময় আমি GetString কল, যে আমাকে দেয় 1017 00:45:20,280 --> 00:45:21,930 মেমরি একটি খণ্ড যে ভালো দেখায়. 1018 00:45:21,930 --> 00:45:26,990 আর আমি সব ছোট হাতের মধ্যে টাইপ করা হলে এম-হে-m-- এবং কি এটা পরে যায়? 1019 00:45:26,990 --> 00:45:28,840 শুধু একটি দ্রুত বৈধতা পরীক্ষা. 1020 00:45:28,840 --> 00:45:29,780 >> ব্যাকস্ল্যাশ শূন্য. 1021 00:45:29,780 --> 00:45:30,510 আমরা জানি যে. 1022 00:45:30,510 --> 00:45:32,784 আর আমরা অভিনয় করে প্রত্যাহার প্রায় Zamila এর নামের সাথে 1023 00:45:32,784 --> 00:45:34,950 এবং অন্যান্য নামের একটি গুচ্ছ যখন রব এখানে খুঁজছিলাম 1024 00:45:34,950 --> 00:45:36,280 মেমরি ভিতরে কি ঘটছে এ. 1025 00:45:36,280 --> 00:45:37,780 সুতরাং যে গল্প ঠিক একই. 1026 00:45:37,780 --> 00:45:40,160 এই কি GetString, আমার ফিরে আসছে. 1027 00:45:40,160 --> 00:45:44,780 এখন, আমার কোড একটি মুহূর্ত আগে সংরক্ষিত GetString ফেরত মান 1028 00:45:44,780 --> 00:45:47,510 একটি পরিবর্তনশীল নামক গুলি. 1029 00:45:47,510 --> 00:45:51,390 এবং তারপর দ্বিতীয় সময় আমি এটা বলা, এটি একটি পরিবর্তনশীল নামক T মধ্যে এটি সংরক্ষণ করা. 1030 00:45:51,390 --> 00:45:55,070 >> আমি এখানে যান সুতরাং, আমি প্রয়োজন এই স্থানীয় ভেরিয়েবল আঁকা 1031 00:45:55,070 --> 00:45:59,610 এবং আমি সাধারণত যাচ্ছি ঠিক করা আমরা করব একটি স্ট্রিং আঁকা 1032 00:45:59,610 --> 00:46:02,360 এখানে একটি সামান্য বর্গ হিসাবে এটি s-- কল. 1033 00:46:02,360 --> 00:46:09,760 মায়ের কীভাবে এবং এখন, somehow-- এই পরিবর্তনশীল এর ভিতরে যেতে? 1034 00:46:09,760 --> 00:46:12,010 ওয়েল, আমরা ফিরে যেতে হবে এখানে প্রথম নীতির. 1035 00:46:12,010 --> 00:46:15,660 GetString আসলে কি ফিরে আসছে? 1036 00:46:15,660 --> 00:46:19,030 >> সুতরাং এটা যে এম-হে-এম সক্রিয় আউট ব্যাকস্ল্যাশ শূন্য, এবং কোনো সংখ্যা 1037 00:46:19,030 --> 00:46:22,364 মত মেমরি অন্যান্য স্ট্রিং Zamila ও রব বা অ্যান্ডি বা অন্যেরা 1038 00:46:22,364 --> 00:46:24,280 অবশ্যই হয় আমাদের কম্পিউটার এর র্যাম বা মেমরি. 1039 00:46:24,280 --> 00:46:27,760 আর আপনার র্যাম আপনি করার মত আছে উপস্থিত RAM- র একটি কোঁচ, উপস্থিত RAM- র দুটি যোগাড়, 1040 00:46:27,760 --> 00:46:30,860 বা বিলিয়ন বা দুই বিলিয়ন বাইট, হয়তো বা আরও বেশি এইসব দিন. 1041 00:46:30,860 --> 00:46:34,070 সুতরাং আসুন আজকের উদ্দেশ্যে, অনুমান করা যাক, এটা আমরা সংখ্যা কিভাবে কোন ব্যাপার না যে 1042 00:46:34,070 --> 00:46:36,640 তাদের, কিন্তু আমরা প্রতিটি সংখ্যা পারেন যারা বিলিয়ন বা দুই বিলিয়ন 1043 00:46:36,640 --> 00:46:37,880 অথবা চার বিলিয়ন বাইট. 1044 00:46:37,880 --> 00:46:42,240 >> আর এর ঠিক ইচ্ছামত যে বলা যাক এই প্রথম কামড়, দ্বিতীয় কামড় হয়, 1045 00:46:42,240 --> 00:46:43,380 তৃতীয়, চতুর্থ. 1046 00:46:43,380 --> 00:46:46,570 আমি ইচ্ছাকৃতভাবে জন্য শূন্য ব্যবহার করছি না আজ কিন্তু আমরা যে ফিরে আসবো. 1047 00:46:46,570 --> 00:46:49,570 তাই অন্য কথায় এই, যদি খুব প্রথমবার আমি প্রোগ্রাম ব্যবহার করছি 1048 00:46:49,570 --> 00:46:52,715 আমি শুধু ভাগ্যবান এবং প্রথম পেয়ে করছি কামড় তারপর পাঁচ এক সময়ে দুই 1049 00:46:52,715 --> 00:46:53,590 তারপর তিন থেকে চার তুলনায়. 1050 00:46:53,590 --> 00:46:57,430 আর আমি অঙ্কন রাখা, তাহলে হতে পারে বক্স নম্বর দুই বিলিয়ন পথ ধরে এখানে হবে. 1051 00:46:57,430 --> 00:47:02,200 >> সুতরাং আপনি তারপর, আপনি কি মনে করেন, GetString আসলে ফেরৎ? 1052 00:47:02,200 --> 00:47:06,010 এটা এম হে-এম ব্যাকস্ল্যাশ ফিরে না শূন্য কোনটাই স্পষ্ট যে কারণ 1053 00:47:06,010 --> 00:47:08,180 আমি টানা করেছি যে বক্সে মাপসই করা হবে না. 1054 00:47:08,180 --> 00:47:11,210 তাই আসলে কি কি GetString পারে ফিরে সব এই সপ্তাহ করা? 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 উত্তরের হয় বোর্ড এখানে কোথাও. 1057 00:47:16,820 --> 00:47:20,390 আপনি, এম-হে-এম ব্যাকস্ল্যাশ শূন্য মাপসই করা যাবে না তাই কি পরিবর্তে জানার জন্য হতে পারে? 1058 00:47:20,390 --> 00:47:23,424 আপনি নির্বাণ, সুপার চতুর হতে ছিল তথাকথিত ইঞ্জিনিয়ারিং টুপি, 1059 00:47:23,424 --> 00:47:24,340 আপনি কি আসতে পারে? 1060 00:47:24,340 --> 00:47:27,340 কি তথ্য অন্তত পরিমাণ আপনি এখনও would যে আসতে পারে 1061 00:47:27,340 --> 00:47:30,610 আপনি মেমরি এম হে-এম খুঁজে? 1062 00:47:30,610 --> 00:47:31,270 হ্যা? 1063 00:47:31,270 --> 00:47:31,950 >> শ্রোতা: এক. 1064 00:47:31,950 --> 00:47:32,200 >> ডেভিড জে MALAN: এক. 1065 00:47:32,200 --> 00:47:33,021 আর কেনই বা এক? 1066 00:47:33,021 --> 00:47:35,520 শ্রোতা: এটা বলতে হবে কারণ আপনি যেখানে [শ্রবণাতীত] যেতে. 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 ডেভিড জে MALAN: ঠিক. 1069 00:47:39,390 --> 00:47:44,300 আমি শুধু অঙ্ক ফিরে যাচ্ছি আমি অর্জিত যে স্ট্রিং এর. 1070 00:47:44,300 --> 00:47:46,570 এই অঙ্ক যদি পাঁচ অন্যতম. 1071 00:47:46,570 --> 00:47:51,280 সত্যিই কি তাই s-- সঞ্চিত হচ্ছে এবং প্রতি স্ট্রিং ভেরিয়েবল এইভাবে far-- 1072 00:47:51,280 --> 00:47:53,430 শুধু হয়েছে স্ট্রিং এর ঠিকানা. 1073 00:47:53,430 --> 00:47:57,840 >> এদিকে, আমি কল যদি একটি দ্বিতীয় সময় এবং আমি GetString 1074 00:47:57,840 --> 00:48:03,300 আক্ষরিক একই জিনিস টাইপ Lowercase-- এম হে-এম এম-হে-এম 1075 00:48:03,300 --> 00:48:06,200 এবং অন্য backslash শূন্য, এবং এখন হয়তো আমার প্রোগ্রাম এর 1076 00:48:06,200 --> 00:48:09,820 কিছু সময়ের জন্য, তাই হয়ত এই চলমান হয়েছে 10, এই, এই 12 হয়, পাঁচ 11 1077 00:48:09,820 --> 00:48:10,700 এই 13 হয়. 1078 00:48:10,700 --> 00:48:13,590 অন্য কিছু ব্যবহার করে কম্পিউটার কারনের জন্য মেমরি. 1079 00:48:13,590 --> 00:48:18,172 কি এখন আমার দ্বিতীয় যায় আমার প্রোগ্রাম টি পরিবর্তনশীল? 1080 00:48:18,172 --> 00:48:19,390 10. 1081 00:48:19,390 --> 00:48:20,050 ঠিক. 1082 00:48:20,050 --> 00:48:23,910 >> আর তাই আমরা তাকান এই প্রোগ্রামের সোর্স কোড 1083 00:48:23,910 --> 00:48:26,550 যেখানে আমি কেবল চেষ্টা করছি দুটি মান তুলনা, 1084 00:48:26,550 --> 00:48:32,180 টন সমান সমান গুলি, কি সুস্পষ্ট মানুষের উত্তর? 1085 00:48:32,180 --> 00:48:34,890 1 10 সমান যায় না, ঠিক কোন কারণ. 1086 00:48:34,890 --> 00:48:36,861 আর তাই এখানে একটি মিথ্যা আমাদের জন্য সুযোগ সত্যিই 1087 00:48:36,861 --> 00:48:39,610 শুধু প্রথম, আবার ফিরে যেতে নীতি ও ভাল, আমার মনে হয়, 1088 00:48:39,610 --> 00:48:41,110 কি ফণা নীচে যাচ্ছে? 1089 00:48:41,110 --> 00:48:43,240 আমরা যে বিষয়ে কথা হয়েছে করেছি বিট এবং বাইট এবং মেমরি, 1090 00:48:43,240 --> 00:48:46,820 কিন্তু এটা বুঝতে আসলে দরকারী আপনি কল GetString কারণ যখন, 1091 00:48:46,820 --> 00:48:50,280 আমরা মনে যদিও এটা এম-হে-এম বা স্ট্রিং মায়ের ফিরে 1092 00:48:50,280 --> 00:48:53,120 বা অ্যান্ডি বা Zamila বা মত, টেকনিক্যালি 1093 00:48:53,120 --> 00:48:55,510 এটা শুধু ফিরে ঠিকানা মেমরি যে তাল. 1094 00:48:55,510 --> 00:48:56,910 >> কিন্তু এটা ঠিক আছে. 1095 00:48:56,910 --> 00:49:00,570 আমি কিভাবে জানি না, কারণ স্ট্রিং যেখানে শেষ হয়? 1096 00:49:00,570 --> 00:49:03,840 আমি মাত্র শুরু করছি দেওয়া যদি? 1097 00:49:03,840 --> 00:49:05,380 ওয়েল, ব্যাকস্ল্যাশ শূন্য, ডান? 1098 00:49:05,380 --> 00:49:08,800 শুধু আমি করতে রৈখিক সময় মুদ্রণ Def এম হে-এম সাথে প্রিন্ট আউট. 1099 00:49:08,800 --> 00:49:11,820 এবং যত তাড়াতাড়ি আমি ব্যাকস্ল্যাশ দেখতে হিসাবে আমি শুরু যেখানে শূন্য, আমি না যত্ন 1100 00:49:11,820 --> 00:49:14,950 আমি ইতিমধ্যে পরোক্ষভাবে জানেন যেখানে আমি শেষ করতে হবে. 1101 00:49:14,950 --> 00:49:18,700 >> আর তাই আজ শুরুতে চিহ্নিত করা এবং আমার কারণে আমরা নাটকীয়ভাবে এই কাজ করা যাক 1102 00:49:18,700 --> 00:49:21,800 কষ্টে অনেক মাধ্যমে গিয়েছিলাম এই এখানে wheels-- প্রশিক্ষণ পেতে 1103 00:49:21,800 --> 00:49:29,840 তাই আজ প্রশিক্ষণ চাকার শুরু খসা এবং আমরা এ প্রকাশ করতে least-- 1104 00:49:29,840 --> 00:49:31,373 >> [সাধুবাদ] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> যে ট্রিপ মূল্য ছিল হ্যাঁ, আজ সকালে লক্ষ্য? 1107 00:49:36,160 --> 00:49:39,600 তাই এখন নেই, এটি সক্রিয় আউট, স্ট্রিং যেমন জিনিস. 1108 00:49:39,600 --> 00:49:41,140 স্ট্রিং বিদ্যমান নয়. 1109 00:49:41,140 --> 00:49:43,760 এটা আমরা করেছি যে একটি প্রতিশব্দ আছে ভেতরের CS50 লাইব্রেরি. 1110 00:49:43,760 --> 00:49:48,660 অত: পর, আমরা কলিং শুরু করতে যাচ্ছেন এর এবং T না স্ট্রিং কিন্তু গৃহস্থালি বড়. 1111 00:49:48,660 --> 00:49:51,180 গৃহস্থালি তারকা এবং আমরা করব আগে দীর্ঘ সরাইয়া জ্বালাতন. 1112 00:49:51,180 --> 00:49:53,510 কিন্তু এই বলতে হয়, আমরা অবিরত, এমনকি যদি যে 1113 00:49:53,510 --> 00:49:56,180 এখন জন্য GetString ব্যবহার, টেকনিক্যালি আমি উচিত 1114 00:49:56,180 --> 00:49:59,010 গৃহস্থালি তারকা এবং গৃহস্থালি তারা বলছে হতে. 1115 00:49:59,010 --> 00:50:01,720 >> আর এটা কি যে তারকা সক্রিয় আউট বোঝান যাচ্ছে কিছু হয় 1116 00:50:01,720 --> 00:50:04,340 একটি পয়েন্টার বা একটি ঠিকানা বলা. 1117 00:50:04,340 --> 00:50:06,110 এবং বাস্তবিকই, একটি টিজার জন্য কি এগিয়ে মিথ্যা 1118 00:50:06,110 --> 00:50:09,760 থেকে এই 20 সেকেন্ড ক্লিপ আমাদের স্ট্যানফোর্ড এ বন্ধু নিক Parlante 1119 00:50:09,760 --> 00:50:12,927 যারা বেশ কিছু সময় আগে, ব্যয় সময় একটি হাস্যকর পরিমাণ, 1120 00:50:12,927 --> 00:50:15,010 সেরা হিসেবে আমি বলতে পারেন তার রান্নাঘর বা তার বুনিয়াদ, 1121 00:50:15,010 --> 00:50:17,140 claymation উপার্জন বিশ্বের প্রবর্তন 1122 00:50:17,140 --> 00:50:20,010 নামে একটি চরিত্র একটি পোলট্রি খামারে Binky যাদের সাথে আমরা আছি 1123 00:50:20,010 --> 00:50:22,010 পয়েন্টার পরবর্তী সময় প্রবর্তন করা. 1124 00:50:22,010 --> 00:50:24,588 তাই এখানে আসা কি হল একটি প্রাকদর্শন. 1125 00:50:24,588 --> 00:50:26,370 >> [ভিডিও প্লেব্যাক] 1126 00:50:26,370 --> 00:50:27,510 >> -আরে, Binky অনলাইন. 1127 00:50:27,510 --> 00:50:28,260 জাগো. 1128 00:50:28,260 --> 00:50:30,672 এটা মজা করার জন্য পয়েন্টার সময়. 1129 00:50:30,672 --> 00:50:31,616 >> -ওটা কী? 1130 00:50:31,616 --> 00:50:33,032 পয়েন্টার সম্পর্কে জানুন? 1131 00:50:33,032 --> 00:50:34,450 ওহ, বুড়ি. 1132 00:50:34,450 --> 00:50:35,431 >> [END টি প্লেব্যাক] 1133 00:50:35,431 --> 00:50:38,055 ডেভিড জে MALAN: এবং যে নোট উপর, আমরা বুধবার আপনাকে দেখতে হবে. 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 ঠিক আছে. 1136 00:50:48,090 --> 00:50:48,740 নাচ কে? 1137 00:50:48,740 --> 00:50:49,240 চলে আসো. 1138 00:50:49,240 --> 00:50:50,330 নাচ কে? 1139 00:50:50,330 --> 00:50:51,820 তুমি আমাকে এটা শুরু করতে চান? 1140 00:50:51,820 --> 00:50:53,770 আমি এটা শুরু করতে হবে. 1141 00:50:53,770 --> 00:50:54,270 Woooo! 1142 00:50:54,270 --> 00:51:04,070 1143 00:51:04,070 --> 00:51:07,580 >> Lauren: মিষ্টি অভিনব মূসা.