ডেভিড জে MALAN: এটি CS50 এবং এই সপ্তাহে চার শুরু হয়. আর, ছেলে, ভক্সওয়াগেন হয় সব কারণ সফ্টওয়্যার সমস্যা. আমাদের কটাক্ষপাত করা যাক. [ভিডিও প্লেব্যাক] -Cars, বুদ্ধিমান অক্ষর দ্রুত এবং অগ্নিশর্মা চলচ্চিত্রে. এই সপ্তাহে জার্মান গাড়ি ভক্সওয়াগেন নিজেই পাওয়া একটি কলঙ্ক মাঝখানে সম্ভাব্য অপরাধমূলক অনুপাত. -Volkswagen বিলিয়ান জন্য সম্বন্ধ করা হয় জরিমানা, সম্ভব অপরাধের অভিযোগ তার আধিকারিকদের জন্য, হিসাবে কোম্পানি ক্ষমা 11 মিলিয়ন গাড়ি rigging জন্য এটা নির্গমন পরীক্ষা বীট সাহায্য. -Certain ডিজেল মডেলের ছিল অত্যাধুনিক সফটওয়্যার দিয়ে ডিজাইন যে সহ ব্যবহৃত তথ্য স্টিয়ারিং এবং গাড়ির অবস্থান গাড়ী ছিল নির্ধারণ গতি নির্গমন টেস্টিং চলছে. যে পরিস্থিতিতে অধীনে, ইঞ্জিন বিষাক্ত নির্গমন কমাবে. কিন্তু গাড়ির বাইপাস করার কারচুপি হয়েছিল এটা চালিত হচ্ছে যখন. নির্গমন 40 থেকে 10 বৃদ্ধি গ্রহণযোগ্য নম্বর EPA মাত্রা উপরে বার. [END টি প্লেব্যাক] ডেভিড জে MALAN: সুতরাং আসুন এক নজর দেখে নাও এবং ঠিক কিভাবে এই দেখুন বাস্তবায়িত হতে পারে এবং এই প্রভাব পড়তে পারে এই মত অনেক গাড়ি. সুতরাং আমার হাতে এখানে প্রেস যে EPA-- দ্বারা জারি প্রকাশ ছিল পরিবেশগত প্রোটেকশন এজেন্সি যা অবস্থান নিয়ন্ত্রক সংস্থা যে পরিবেশগত উদ্বেগ হ্যান্ডলগুলি, এবং তারপর প্রকৃত ছিল যে আইনি নোটিশ মাত্র কয়েক দিন আগে ভক্সওয়াগেন পাঠাতে. তাই নম্বর EPA লিখেছেন, এবং এখন discloses প্রকাশ্যে একটি অত্যাধুনিক সফটওয়্যার নির্দিষ্ট অ্যালগরিদম ভক্সওয়াগেন যানবাহন সনাক্ত যখন গাড়ী চলছে হয় সরকারী নির্গমন টেস্টিং এবং পূর্ণ নির্গমন সক্রিয় শুধুমাত্র পরীক্ষার সময় উপর নিয়ন্ত্রণ করে. কার্যকারিতা এই যানবাহন দূষণ নির্গমন নিয়ন্ত্রণ যন্ত্র ব্যাপকভাবে হয় সব স্বাভাবিক ড্রাইভিং সময় হ্রাস পরিস্থিতিতে. এই দেখা যে গাড়ির মধ্যে ফলাফল পরীক্ষাগার বা পরীক্ষামূলক মান স্টেশন, কিন্তু স্বাভাবিক অপারেশনের সময় নাইট্রোজেন oxides-- বা NOx-- নির্গত এ পর্যন্ত 40 বার স্ট্যান্ডার্ড. ভক্সওয়াগেন দ্বারা উত্পাদিত সফটওয়্যার একটি উদ্ধৃতি উদ্ধতি, পরাজয়ের ডিভাইস, হয় ক্লিন দ্বারা সংজ্ঞায়িত মার্কিন যুক্তরাষ্ট্রে এয়ার এক্ট. তারা বলে যেতে EPA এবং অন্য সংস্থা পরাজয়ের ডিভাইস উদলা স্বাধীন বিশ্লেষণের পর সফটওয়্যার ওয়েস্ট গবেষক ভার্জিনিয়া বিশ্ববিদ্যালয়ের. NOx দূষণ ঘটাতে সাহায্য নাইট্রোজেন ডাই অক্সাইড, স্থল ওজোন, এবং সূক্ষ্ম বস্তুকণা. এই এক্সপোজার দূষণকারী লিঙ্ক হয়েছে বিস্তৃত সঙ্গে গুরুতর স্বাস্থ্য প্রভাব, হাঁপানি সহ আক্রমণ এবং অন্যান্য শ্বাসযন্ত্রের যথেষ্ট গুরুতর হতে পারে যে অসুস্থতা হাসপাতালে মানুষ পাঠাতে. ওজোন এক্সপোজার এবং বস্তুকণা এছাড়াও আছে অকাল যুক্ত হয়েছে সংশ্লিষ্ট শ্বাসযন্ত্রের কারণে মৃত্যু বা কার্ডিওভাসকুলার প্রভাব সম্পর্কিত. শিশু, বৃদ্ধ, সঙ্গে মানুষ preexisting শ্বাসযন্ত্রের রোগ বিশেষ জন্য ঝুঁকি থাকে এই দূষণকারী স্বাস্থ্য প্রভাব. যথেষ্ট এটা বেশ সিরিয়াস, বলতে হয়. আর এর পড়া শেষ করে ফেলা উচিত শুধু একটা আরো উদ্ধৃতাংশ এবং তারপর আমরা কটাক্ষপাত করব অন্তর্নিহিত প্রভাব একটি গাড়ী প্রেক্ষাপটে এই. বিশেষ করে, ভক্সওয়াগেন শিল্পজাত ইনস্টল তথাকথিত সফ্টওয়্যার বৈদ্যুতিন নিয়ন্ত্রণ module-- বা ECM-- এর স্যাটেলাইট যে এইসব যানবাহন গাড়ির জন্য পরীক্ষা করা হয়েছিল যখন নম্বর EPA প্রকার মানের সঙ্গে সঙ্গতিপূর্ণ. সহ বিভিন্ন ইনপুট উপর ভিত্তি করে চাকা অবস্থান, গাড়ির গতি, ইঞ্জিন এর সময়কাল অপারেশন, এবং আবহমানসংক্রান্ত চাপ, এই ইনপুট অবিকল পরামিতি ট্র্যাক জন্য ব্যবহৃত ফেডারেল পরীক্ষা পদ্ধতি নিয়ে EPA শংসাপত্র জন্য প্রকার পরীক্ষামূলক উদ্দেশ্যে. EPA এর প্রকার পরীক্ষার সময়, যানবাহন ECM সফটওয়্যার উত্পাদিত যা সফটওয়্যার দৌড়ে অনুবর্তী নির্গমন ফলাফল. সব অন্য সময়ে, গাড়ির ECM সফটওয়্যার একটি পৃথক সড়ক দৌড়ে কমে যা ক্রমাঙ্কন কার্যকারিতা সার্বিক প্রকার নিয়ন্ত্রণ ব্যবস্থা, বিশেষভাবে সিলেক্টিভ ক্যাটালিটিক লীন হয় NOx হ্রাস trap-- যা আমরা একটি মুহূর্ত সম্পর্কে দেখতে পাবেন. NOx এর ফলে, নির্গমন 10 থেকে 40 বার একটি গুণক দ্বারা বর্ধিত নম্বর EPA অনুবর্তী মাত্রা উপরে ড্রাইভ সাইকেল ধরনের উপর নির্ভর করে. এই সত্যিই মানে, এবং তাই কি সফটওয়্যার চলমান সোর্স কোড ভক্সওয়াগেন এর উপর না আছে এখনও প্রকাশ্যে, প্রকাশ করা যে, কার্যকরভাবে, এই হল সমতুল্য ভিতরে কোথাও নেই ভক্সওয়াগেন এর কোড. যদি আপনি পরীক্ষা, এবং হচ্ছে গাড়ী যদি নির্দিষ্ট পরিবেশগত বিষয়গুলির সনাক্ত স্টিয়ারিং হুইল ভালো অবস্থান বা আন্দোলন অথবা তার অভাব গাড়ির বা উহার অন্যান্য কারণের যে কোন সংখ্যার যে বর্তমানে অনুসিদ্ধান্ত এই সূত্র অংশ হতে, তারা কেবল চালু পূর্ণ নির্গমন নিয়ন্ত্রণ. অন্য কথায়, তারা শুরু দূষণকারী কম emitting. অন্যথায়, প্রত্যেক অন্যান্য পরিস্থিতি এটা হচ্ছে হিসেবে সনাক্ত না হলে ল্যাবরেটরী, তারা ঠিক না. এবং যাতে আপনি আরো মধ্যে এই প্রক্রিয়া সহজ করতে পারেন কিছু কংক্রিট pseudocode এটার মত. চাকার বাঁক কিন্তু হয় চাকা, ইঙ্গিতপূর্ণ নয় গাড়ী কিছু হয় যে আবর্তিত সিলিন্ডার ধরনের কিন্তু কিছু ধরনের গুদাম পরীক্ষা করা হচ্ছে, তারপর হিসাবে আচরণ নম্বর EPA আপনি চাই. অন্যথা না. তাই এর কটাক্ষপাত করা যাক একটি ছোট ভিডিও এ যে কি প্রভাব কটাক্ষপাত নেয় আসলে যান্ত্রিকভাবে এই হয়. [ভিডিও প্লেব্যাক] শুক্রবার -শেষ নম্বর EPA ঘোষণা যে কিছু ভক্সওয়াগেন অডি গাড়ির 2009 এর মধ্যে তৈরি এবং এই বছর ব্যবহার করা হয়েছে একটি তথাকথিত পরাজয়ের ডিভাইস নির্গমন আইন স্বমতে আনা ক্লিন এয়ার রাখতে. কিন্তু যে ঠিক কি মানে? ওয়েল, আধুনিক গাড়ির ডজন আছে তাদের ভিতরে কম্পিউটারের. আর ঐ কম্পিউটারের কিছু ফাংশন সমণ্বয় সাহায্য সর্বোত্তম জন্য ইঞ্জিন কর্মক্ষমতা নিশ্চিত তৈরীর সময় অত্যধিক আবর্জনা নেই যে নিষ্কাশন নল থেকে বেরিয়ে আসছে. তারা আসলে কাজ করে থাকেন এখন কয়েক দশক ধরে এই ভাবে. মূলত, প্রতিটি অংশ একটি আধুনিক গাড়ির ইঞ্জিন একটি সেন্সর বা নিয়ন্ত্রক হয়েছে এটা, এবং এইসব কম্পিউটারে তথ্য হাজারের মধ্যে পড়া হয় দ্বিতীয় সমন্বয় করছে প্রতি বার এয়ার জ্বালানী অনুপাত মত যে সিলিন্ডার মধ্যে যাচ্ছে. এই প্রতারণার ভক্সওয়াগেন এবং অডি মডেল diesels থেকে, হয় এবং diesels এক আরো আছে সত্যিই গুরুত্বপূর্ণ কম্পিউটার যা নিয়ন্ত্রিত পরামিতি, যাচ্ছে unburned জ্বালানী পরিমাণ নিষ্কাশন মধ্যে. এখন যে খারাপ শোনাচ্ছে. আপনি চাইবেন পছন্দের নয় নিষ্কাশন মধ্যে যাওয়া unburned জ্বালানী. কিন্তু একটি ক্ষেত্রে ডিজেল, আপনি কিছু আছে একটি ডিভাইস যা একটি NOx ফাঁদ নামক যে শোষণ ও নাইট্রোজেন অক্সাইড জন্য যাত্রীর সঙ্গের নিজলটবহর দূষণকারী যে would হয় অন্যথায় বায়ুমন্ডলে ঢোকা. এবং যে হয় NOx ফাঁদ প্রভাব unburned জ্বালানী দিয়ে ফুটিয়ে তোলা হয়েছে. সুতরাং একটি পরাজয়ের ডিভাইস একটি বিশেষ প্রোগ্রাম এই কম্পিউটারের ভিতরে যে এটি করতে পারেন গাড়ী প্রকার পূরণ মত চেহারা মান এটা হয় না, এমনকি যখন. ভক্সওয়াগেন তার হাতের একটি সমস্যা. তার ডিজেল ইঞ্জিনের পরিচিত ছিল মহান জ্বালানী অর্থনীতি পাবার জন্য, কিন্তু হয় NOx ফাঁদ শুধুমাত্র ভাল কাজ করে আরো জ্বালানী ব্যবহার করা হচ্ছে যখন. তাই গাড়ী, সনাক্ত করতে পারব এই পরাজয়ের ডিভাইস ব্যবহার করে, এটি একটি নির্গমন পেয়ে ছিল যখন পরীক্ষা, এটা আরো জ্বালানী ব্যবহার করতে হবে, ভাল হয় NOx ফাঁদ কাজ করতে, নির্গমন জরিমানা করা হবে. কিন্তু তারপর আপনি, রাস্তা ডিভাইস পেতে বন্ধ সক্রিয়, আপনি কম জ্বালানী বার্ন করছি কিন্তু আপনি হিসাবে অনেক হিসাবে 40 বার নির্বাণ করছি বায়ুমন্ডলে আরো দূষণকারী. কিন্তু নরক কিভাবে গাড়ী এটি ছিল জানেন নির্গমন মেনে চলার জন্য পরীক্ষা করা হচ্ছে? নম্বর EPA এটি একটি অত্যাধুনিক ছিল বলেছেন কিছু চেক করে সিস্টেম চাকা অবস্থানে মত, গতি, ইঞ্জিন ছিল কতদিন, এবং এমনকি বায়ুমন্ডলীয় চাপ. অন্য কথায়, ছিল কোন ভাবে এই আকস্মিক ছিল সফটওয়্যার ছিল কারণ সনাক্ত করা খুব সাবধানে পরিকল্পিত একটি সরকারী নির্গমন পরীক্ষা. যে কিছু প্রশংসনীয় গুরুতর প্রতারণা ও যে কেন ভক্সওয়াগেন হয় যেমন গুরুতর সমস্যা. বস্তুত, তাদের সিইও, মার্টিন Winterkorn, শুধু ক্ষমতা থেকে সরে দাঁড়ান. তাই কি চোদাটাই না চুদল? আচ্ছা আপনি অর্ধ মিলিয়ন মধ্যে একজন হন, তাহলে ডিজেল Jettas, দ্য বিট্লস, Golfs, Passats মনে, বা অডি A3s, প্রভাবিত ভাল খবর হয় যে আপনার গাড়ী এখনও চালনা করা নিরাপদ. আপনি তা পরিত্যাগ করা হবে না ভক্সওয়াগেন একটি রিকল যতক্ষণ. কিন্তু কিছু সময়ে তারা আছেন সম্ভবত আছে যাচ্ছে আপনার গাড়ির ভিতর সফটওয়্যার আপডেট করার জন্য. এটি ঘটে যখন আপনি পারে ট্যাংক প্রতি কম মাইল পেতে. আইনজীবীরা ইতিমধ্যে প্রস্তুতি নিচ্ছে ক্লাস একশন মামলা জন্য আপ তাই মালিকরা ক্ষতিপূরণ পেতে পারে ভবিষ্যতে কিছু সময়ে. কিন্তু যে যাচ্ছে না খুব শীঘ্রই যে কোন সময় ঘটতে. [END টি প্লেব্যাক] ডেভিড জে MALAN: সুতরাং এই আসলে উত্থাপন একটি আকর্ষণীয় বড় ছবি প্রশ্ন হিসাবে বিশ্বাস করতে. রাইট? আমাদের সমস্ত iPhones বা Androids আছে বা আমাদের পকেট কিছু সম্ভবত এই দিন, বা ল্যাপটপের হয় আমাদের laps এবং তৈরি চলমান সফটওয়্যার অ্যাপল এবং Microsoft দ্বারা অন্যান্য কোম্পানীর এবং কাঁদি. কিন্তু কিভাবে আমরা জানি যে কি এই সফটওয়্যার তৈরী করছেন কি এইসব আসলে কোম্পানি তারা করছেন বলে? উদাহরণস্বরূপ, যারা এর বলে যে প্রত্যেক সময় আপনি আপনার আইফোনের একটি ফোন কল করতে বা অ্যানড্রইড ফোন বা মত, যে ফোন নাম্বার নয় যে কিছু কোম্পানির সার্ভারে আপলোড করা হচ্ছে কিছু প্রোগ্রাম আপনাকে করেছি কারণ এটা অপারেটিং কিনা, লেখা iOS বা Android এর মত সিস্টেম নিজেই, অথবা আপনি ডাউনলোড করেছি কারণ কিছু থার্ড পার্টি অ্যাপ্লিকেশন একরকম শোনা হয় যে সবকিছু যে আপনি টাইপ করছেন বা সবকিছু আপনি আসলে বলছে. আপনি জানি না কিভাবে, কখন আপনাকে বলছি ঝনঝন দৌড়াচ্ছে অথবা কম্পাইল করতে আপনার এবং CS50, কিভাবে নিজের সফটওয়্যার আপনি যে CS50 এর নিজস্ব কর্মীদের না, CS50 লাইব্রেরি প্রণালী দ্বারা ভাষার লগিং করা হয়েছে আপনি কি কখনও করেছি অর্জিত স্ট্রিং বা ভাষার আপনি কি কখনও করেছি অর্জিত ইঞ্চি? ওয়েল, আপনি অবশ্যই তাকান পারে কিছু সোর্স কোড CS50 লাইব্রেরি মত, আপনি সোর্স কোড তাকান পারে লিনাক্স অপারেটিং সিস্টেম এর জন্য এবং CS50 আইডিই চলমান. কিন্তু একটি আশ্চর্যজনক উপস্থাপনা 1984 সালে ফিরে দেওয়া হয় একটি করে টুরিং পুরস্কার প্রাপ্তির মধ্যে পরিচিত খুব বিখ্যাত কম্পিউটার বিজ্ঞানী নামে কেন থম্পসন as-- যারা টুরিং পুরস্কার লাভ যা কম্পিউটার বিজ্ঞান এর সাজানোর নোবেল পুরস্কার, যদি আপনি হবে, একটি তার কাজের জন্য অপারেটিং সিস্টেম বলা অনুরূপ, যা ইউনিক্স, আমরা যা ব্যবহার করি তা আত্মা লিনাক্স. এবং প্রশ্ন তিনি জিজ্ঞাসা তার মূলত গ্রহণযোগ্যতা বক্তৃতা, জন্য কাঠামো পাড়ার নিচে বছর এবং আলোচনার বছর আস্থা ও নিরাপত্তা সম্পর্কে, এই ছিল. কতখানি উচিত এক ট্রাস্ট একটি করুন একটি টুকরা প্রোগ্রামটিতে যে বিবৃতি এর software-- ট্রোজান হর্স বিনামূল্যে হয়? সম্ভবত এটা বিশ্বাস করতে আরো গুরুত্বপূর্ণ সফটওয়্যার লিখেছে. এবং সত্য, আমরা লিঙ্ক করেছি আলোচনা করতে যে তিনি এই পুরস্কার গ্রহণ যখন দিয়েছেন CS50 এর ওয়েবসাইটে '80s মধ্যে আজকের জন্য লেকচার পাতা অধীনে. আপনি দেখতে পাবেন কি কারণ তিনি আসলে দেয় কিভাবে এমনকি একটি মোটামুটি সহজ উদাহরণ ঝনঝন বা যাই হোক না কেন ভালো একটি কম্পাইলার অন্যদের অতীতে ব্যবহার করেছেন কম্পাইলার, কম্পাইলার আমরা এমবেড তাহলে কি নিজেদেরকে যদি একটু ব্যবহার করা হয় মূলত বলছেন যে অবস্থা, আপনি এই কোড ব্যবহার করা হয় যে লক্ষ্য করা হলে GetString ফাংশন বা কাজ GetInt ফাংশন, এগিয়ে যান এবং সন্নিবেশ একটি খিড়কি বা একটি সাহসী যোদ্ধা ঘোড়া যেমন যে প্রোগ্রাম এখন কিছু শূন্য আছে এবং দূষিত কিছু লোক যে কি. সব লগিং আপনার যে তথ্য আপলোড কি-স্ট্রোক কিছু সার্ভার, অথবা সত্যিই কিছু করতে. আর তা কেন থম্পসন তার আলাপ না করা যায় এমনকি যদি যে প্রদর্শন করা হয় আপনি সোর্স এক্সেস আছে একটি কম্পাইলার কোড যে বিদ্বেষপূর্ণ এই কাজ হতে পারে এটা কারণ কোন ব্যাপার না এই চিকেন এবং ডিম আছে অতীতে অনেক বাস্তবতা বছর যদ্দ্বারা কম্পাইলার নিজেদের কম্পাইল করা হয়. অন্য কথায়, বহুকাল আগে যখন কেউ প্রথম কম্পাইলার লেখা দরকার ছিল. এবং তারপরে, যে কোনো সময় তারা আপডেট করেছি তার সোর্স কোড পরিবর্তন করে একটি কম্পাইলার, বৈশিষ্ট্য যুক্ত করা এবং এটি কম্পাইল করতে থাকেন আমাদের মত মানুষ ব্যবহার করার জন্য, ভাল, তারা পুরানো ব্যবহার করছেন কম্পাইলার সংস্করণ নতুন কম্পাইল কম্পাইলার সংস্করণ. আর আপনি কটাক্ষপাত করা হলে তিনি দিয়েছেন যে আলাপ, আপনি, কারণ যে দেখতে পাবেন যে গোলাকার এর, আপনি আসলে বাগ থাকতে পারে বা ট্রোজান হর্স সফটওয়্যার এমবেড আমরা ব্যবহার করছি. এবং আপনি তাকান, এমনকি যদি ঐ প্রোগ্রামের জন্য সোর্স কোড, এটা এমনকি স্পষ্ট হতে পারে কপট আসলে কারণ একটি কিছু পুরোনো সংস্করণ বরাবর হয়েছে যে কম্পাইলার আমাদের সফ্টওয়্যার মধ্যে হুমকি ইনজেকশন. যা শুধুমাত্র এক বলার সত্যিই সম্ভব নয় এবং না করা উচিত ট্রাস্ট সফটওয়্যার আমাদের ল্যাপটপের চলমান ফোন বা স্থানের কোনো সংখ্যা বা. এবং বাস্তবিকই, পরে যখন এই সেমিস্টারে আমরা ওয়েব প্রোগ্রামিং সম্পর্কে কথা বলা শুরু এবং আসলে নির্মাণ শুরু ওয়েব অ্যাপ্লিকেশন নিজেদেরকে, আমাদের অনুমতি ছাড়া এই বিষয়ে কথা বলতে পারবেন হুমকি এবং অন্যদের. এখন, আপনি বিস্ময়ের ও লক্ষ্য আছে হতে পারে একটি ক্ষুদ্র সামান্য ডার্থ ছিল ক্লিপ ভেডার যে সীমাস্থ আছে দেশ ছিল ভক্সওয়াগেন সম্পর্কে. যদি আপনি দেখেননি করেছি, আমি আমরা হালকা করা উচিত মেজাজ এই সব কারণ খুব বিষণ্ণ এবং ভয়ানক. আমি পিছনে তাকান যাচ্ছি সুপার বোল 2011 এ যখন একটি বাণিজ্যিক Volkswagen-- এবং এই প্রায় again-- তাদের মনোরম তোলে টিভিতে প্রথমবার সম্প্রচারিত. এটা 60 সেকেন্ড ক্লিপ এর আমি আপনি উপভোগ করবেন মনে করি যে. [ভিডিও প্লেব্যাক] [সঙ্গীত - "থেকে Star Wars" থেকে থিম] [কুকুর ছাল] [গাড়ী আরম্ভ] [END টি প্লেব্যাক] ডেভিড জে MALAN: হ্যাঁ. আমি শুধু চেক ছিল. যে গাড়ির লঙ্ঘনের তালিকার হয়. ঠিক আছে. তাই আমরা কিছু তাকান একটি মুহূর্ত আগে pseudocode. এবং এখানে একটি বড় pseudocode কোড স্নিপেট যে আমরা এ পর্যন্ত কয়েক বার দেখা করেছি. আর এর এই একটি সুযোগ ব্যবহার করা যাক এখন একটি নতুন প্রোগ্রামিং পরিচয় করিয়ে আমরা কি যে কৌশল algorithmically, দেখতে গত সপ্তাহে আমরা একত্রীকরণ সাজানোর দিকে তাকিয়ে. কিন্তু এর এটা ডিক্রী এবং কিভাবে দেখতে দিন আমরা প্রকৃত কোড এটি ব্যবহার হতে পারে এবং তারপর আমরা এই ব্যবহার করতে যাচ্ছেন রাস্তা নিচে কৌশল সবচেয়ে অন্য কিছু সমস্যার সমাধান করতে পারে. তাই এই প্রথম প্রোগ্রাম এক ছিল আমরা কখনও pseudocode কোড যদ্যপি লিখেছিলেন. এবং কি এই প্রোগ্রাম আমাদের অবশ্যই করতে অনুমতিপ্রাপ্ত একটি ফোন বই মাইক স্মিথ এটি ছিল. আর বিশেষ লাইন আট বিজ্ঞপ্তি এবং এই সরকার যাতে বিবৃতি ছিল যা 11. এবং সত্য, কিছু প্রত্যেক তাদের মধ্যে সি, আসলে একটি আছে কি আক্ষরিক অর্থ হল যে বিবৃতি যে আপনি করতে পারবেন যান একটি নির্দিষ্ট লাইন ঝাঁপ. এটা সাধারণত কারণ উপর frowned হচ্ছে এটা খুব সহজেই নির্যাতিত হতে পারে এবং আপনি জাম্পিং শুরু করতে পারেন আপনার উল্টোদিকে সব জায়গায় বেশি প্রোগ্রাম ধরনের ব্যবহার করতে যুক্তিবিজ্ঞান এবং নিয়ন্ত্রণ প্রবাহ আমরা শুধু সঙ্গে এ পর্যন্ত ব্যবহার করেছি যে loops এবং শর্ত এবং ভালো. কিন্তু আমরা এই অ্যালগরিদম প্রক্রিয়া সহজ করতে পারেন pseudocode কোড হিসাবে অনুসরণ করে. পরিবর্তে এই পুনরাবৃত্ত এর বা পদ্ধতির looping যেখানে আমরা ফিরে বর্তা এবং ফিরে এবং ফিরে তিনটি রেখায়, কেন আমরা শুধু ধরনের পান্ট এবং আরো না সাধারণত, লাইন সাত এবং 10 এর মধ্যে বলে শুধু ঐ দুটি প্রতিস্থাপন সঙ্গে লাইনের জোড়া, স্মিথ তার আগে অন্য তাহলে বইটি আমরা করব মাইক জন্য অনুসন্ধান বইয়ের বাম অর্ধেক. স্মিথ পরে হয় অন্যথায় যদি বই, ডানদিকে মাইক জন্য অনুসন্ধান অর্ধেক বই. আর ইতিমধ্যে বৃত্ততুল্যতা লক্ষ্য. রাইট? আমি মাইক জন্য অনুসন্ধান করছি ফোন বই এবং তারপর আমি শেষ পর্যন্ত হয়তো আঘাত লাইন সাত বা হয়তো লাইন 10 এবং নিজেকে আমার নির্দেশ অনুসন্ধান ফোন বইয়ের অর্ধেক মাইক জন্য. ওয়েল, কিভাবে আমি মাইক অনুসন্ধান করেন? আমি মাঝখানে আছি মাইক, কেন অনুসন্ধানের আপনি ধরণের একটি বৃত্তে আমাকে পাঠাচ্ছেন? কিন্তু যে এই জায়গায় পৌছানো একমাত্র ঠিক আছে সমস্যার আকার ঘটছে, লাইন 7 ও 10 লেখা হিসেবে? আমরা শুধু সার্চ করছি বলছে না মাইক জন্য, মাইক জন্য অনুসন্ধান. আমরা বিশেষভাবে তা বলার অপেক্ষা রাখে না, তাই না? বাম অর্ধেক তার জন্য খোঁজো কার্যকরভাবে যা ডান অর্ধেক সমস্যা অর্ধেক আকার. তাই আমরা ধরনের করছি যে ঠিক আছে এই গোলাকার রত, এই বিজ্ঞপ্তি যুক্তি, অন্তত আমরা করছি কারণ ছোট ছোট সমস্যা তৈরি. এবং অবশেষে আমরা পৌঁছানোর চলুন যে তথাকথিত বেস ক্ষেত্রে যেখানে আমরা শুধু একটা পাতা আছে left-- আমাদের স্বেচ্ছাসেবক হিসাবে গত সপ্তাহে did-- আমরা একটি পৃষ্ঠা ছিল তারপর বাম এবং আমরা না মাইক স্মিথ অনুসন্ধানের রাখা আছে তিনি যে পেজে হয় কারণ বা তিনি না হয়. সুতরাং আমরা এই ধারণা, এই বাস্তবায়ন করতে পারেন প্রকৃত কোড বৃত্ততুল্যতা সাজানোর? ওয়েল, আমরা একটি কৌশল লিভারেজ পারেন যে সাধারণত recursion হিসাবে পরিচিত. আর আমরা এই দেখা করেছি একত্রীকরণ সাজানোর জন্য pseudocode গত সপ্তাহে. এই যে প্রত্যাহার করা একত্রীকরণ সাজানোর জন্য pseudocode. তা তর্কসাপেক্ষ চেয়ে সহজ এমনকি এর বাবল বা নির্বাচন বা সন্নিবেশ সাজানোর শুধু সরলতা পরিপ্রেক্ষিতে যা দিয়ে আপনি এটা প্রকাশ করতে পারেন. কিন্তু যে কারণে এর আমরা সাজান বৃত্তাকারে এর আছেন কিছু অনুসন্ধান, বলার অপেক্ষা রাখে না আবার এর জন্য অনুসন্ধান দ্বারা. আর আমরা প্রত্যাশায় আছি উপর অনুসন্ধান করছেন বাম অর্ধেক বা ডান অর্ধেক এবং তারপর অবশেষে আমরা আছেন এই ক্ষেত্রে মার্জ. কিন্তু এখানে খুব, সঙ্গে ঐ দুটি সাজান লাইন, আমরা আবার এই আছে হয়নি recursion ধারণা. আর মূর্তভাবে এর মানে কি, একটি অ্যালগরিদম প্রেক্ষাপটে, একটি অ্যালগরিদম রিকার্সিভ হয় এটি ব্যবহার করে বা নিজেই কল করে. বা গ পদ, একটি ফাংশন একটি ফাংশন বলা recursive-- foo বিন্যাস, foo বিন্যাস যদি রিকার্সিভ হয় কোথাও তার সোর্স কোড, ফাংশন foo বিন্যাস কল নিজেই. আর যে সব foo বিন্যাস কি আছে তাহলে খারাপ আবার এবং আবার নিজেই কল. Foo বিন্যাস অবশেষে বন্ধ করে আছে হিসাবে এটা, ঠিক আছে , বলার অপেক্ষা রাখে না, সাজানোর একত্রীকরণ একটি মিনিট অপেক্ষা করুন, এই সমস্যা সুপার হলে ছোট, উদাহরণস্বরূপ, বা আমি নই যাকে তাকে পাওয়া খুঁজছেন, শুধু ফিরে আসতে. পৌনঃপুনিকভাবে, না না cyclically আবার নিজেকে কল. আর তাই এর কটাক্ষপাত করা যাক আসলে এই কাজ করতে পারে কিভাবে. তাই আমি এগিয়ে এবং খোলা যেতে চলেছি এখানে দুটি সোর্স কোড উদাহরণ আপ. যা এক সিগমা 0 বলা হয়. আর এই সব নয় রিকার্সিভ কিন্তু এর নেওয়া যাক একটি কি এই প্রোগ্রাম আছে তাকান. আমি সব আউট ছিনতাই করেছি এটা কিন্তু সব থেকে মন্তব্য CS50 এর সোর্স কোড এর ওয়েবসাইট যদি মন্তব্যগুলি পরে আবার তা পড়তে চায়. আর এর একটি দম্পতি করতে দিন বৈধতা এখানে পরীক্ষা করা হবে. , এই কোড উপরের তাই আমরা cs50.h. অন্তর্ভুক্ত আছে এটা আসলে কী? কেন এখানে? যুক্তিসঙ্গত layman এর পরিপ্রেক্ষিতে. এটার কাজ কি? হ্যা. শ্রোতা: GetInt ফাংশন কাজ করে যাতে. ডেভিড জে MALAN: সুতরাং যে GetInt ফাংশন কাজ করে. এই ভেতরে কারণ ফাইল, CS50.h, যা আমরা দীর্ঘ আগে দেখতে পাবেন তার সোর্স কোড পদ, ফাংশন একটি গুচ্ছ আছে declared-- GetInt, GetString,, others-- ও যদি না একটি গুচ্ছ এবং আমরা আসলে, যে লাইন অন্তর্ভুক্ত আছে কম্পাইলার ঝনঝন নয় এটি বিদ্যমান জানা যাচ্ছে যে. এবং একই লাইন জন্য যায় কোন int সংজ্ঞায়িত যেখানে দুই একটি ফাংশন যা printf,, আমরা বেশ একটু ব্যবহার করতে থাকুন. এখন, লাইন চার একটু ভীতু মনে এটা শুধু একটি এক মাছ ধরার নৌকা, কারণ. এটা কোন কোঁকড়া, একটি সেমিকোলন পেয়েছিলাম ধনুর্বন্ধনী, এটি ভেতরে কোন কোড. কিন্তু আমরা কি কল করেনি সপ্তাহ অতীতে এই জিনিস? হ্যা. সুতরাং একটি প্রোটোটাইপ. আর কেনই বা আমরা একটি আছে না মনে হয়, যার প্রোটোটাইপ একটু অপ্রয়োজনীয় হতে সাধারণত সাধারণত আমরা কারণ আবার ফাংশন দেখতে পরে ফাইলে, ডান? তাই কেন আমরা আপনাকে ঠিক করছি থাকতে না আপনার মাথা চুলকানো কিন্তু আমি তা গ্রহণ করব. হ্যা. শ্রোতা: [শ্রবণাতীত] প্রধান পর ফাংশন. ডেভিড জে MALAN: ঠিক. কম্পাইলার আপনাকে জানেন, যাতে অবশেষে সংজ্ঞায়িত বা বাস্তবায়ন হবে সম্ভবতঃ প্রধান পর যে ফাংশন,. সুতরাং ঝনঝন এবং সবচেয়ে কম্পাইলার ধরনের মূক এবং তারা শুধুমাত্র জানতে পারবেন কি আপনি তাদের বলুন. এবং আপনি ব্যবহার করতে চান তাহলে সিগমা নামক একটি ফাংশন, আপনি ভাল কম্পাইলার শেখান এটা আগাম বিদ্যমান. এখন, প্রধান নিজে, এমনকি এটা লাইনের একটি গুচ্ছ যদিও, এখন দ্বারা আশা বেশ পরিচিত. এটি একটি বিক্ষোভ যখন লুপ পেয়েছিলাম জীবনে যার উদ্দেশ্য এখানে দৃশ্যত একটি পেতে হয় ব্যবহারকারী থেকে ধনাত্মক পূর্ণসংখ্যা. এবং শুধু তাকে জালাতন রাখতে বা তার তারা সহযোগিতা না হওয়া পর্যন্ত. তারপর লাইন 16 সালে আমি আছে একটি আকর্ষণীয় কল. IntAnswer. বাম হাতের উপর যা সাইড সম্পর্কে কোন int দেয় Answer-- বলা স্টোরে যেতে পারে, যা সংরক্ষণ করা যাচ্ছে, যা দৃশ্যত, সিগমা ফেরত মান. তাই সিগমা শুধু একটি নয় নির্বিচারে কিন্তু অর্থপূর্ণ নাম আমি একটি ফাংশন দিয়েছি যে জীবনে যার উদ্দেশ্য এক argument-- নেওয়া হয় আমরা এই ক্ষেত্রেই এ এন ডাকবো এবং শুধু যে সংখ্যার যোগফল নেওয়া প্লাস প্রতি ধনাত্মক সংখ্যা যে এটা চেয়ে ছোট. আমি 2 নম্বর পাস তাই আপনি যদি সিগমা, আমি যোগ করতে চান 2 প্লাস 1 প্লাস 0-- যাতে আমার 3 দেয় না 0--. আমি সিগমা 3 পাস হলে, আমি চাই 3 প্লাস 2 প্লাস 1 আছে, যা আমার 6 দেয়. হলোও তাই. তাই এটা শুধু অ্যাডস আপ সব সংখ্যার এটা কম বা সমান. এখন, নিচে এখানে আমি শুধু যাচ্ছি উত্তর প্রিন্ট আউট. সুতরাং একটি দ্রুত বৈধতা পরীক্ষা হিসাবে, এর দিন সিগমা 0-- ডট স্ল্যাশ সিগমা 0-- এবং আমার 2 টাইপ. আর আমি তো 3 পেতে. আমার 3 টাইপ. আমি তো 6 পেতে. আর যে কেউ দ্রুত গণিত করতে পারেন তাহলে, আমি পেতে যাচ্ছি তা 50 কি তাহলে? শ্রোতা: [শ্রবণাতীত]. ডেভিড জে MALAN: হ্যাঁ, কোন. কিন্তু 1,275 সুন্দর পাসে যা. তাই এই 50 করছেন পরিনাম প্লাস 49 প্লাস 48 প্লাস 47 প্লাস 46 1 নিচে সব পথ. যে তাই সব সিগমা আছে. কিন্তু কিছু বলতে আমরা করেছি দেখতে দিন এখন এটা বাস্তবায়িত. তাই নিচে এখানে ফাংশন নিজেই. আর এই আছে বলে মনে হয় না কিছু এখনো recursion সঙ্গে কাজ করতে. আসলে, আমরা একটি ব্যবহার করছেন পুরানো স্কুল টেকনিক. আমি একটি পরিবর্তনশীল নামক সমষ্টি আরম্ভের করছি শূন্য, তারপর আমি এখানে একটি foreloop আছে, এবং আমি কোন int বলা ঘোষণা করছি আমি 1 টি এটি সমান সেটিং আমি এটা সেট সমান পারে যদিও শূন্য, কিন্তু আমি ছাড়াও করছি যেহেতু, এটি শূন্য বা এক যদি যারা বজায় রাখে. এটা কোন প্রভাব আছে যাচ্ছে. তাই আমি এতক্ষণ আমি হিসাবে iterating করছি অপেক্ষাকৃত ছোট বা এম, সমান, যা প্রেরণ করা হত যে যুক্তি. এবং তারপর আমি ঠিক রাখতে আই এবং অন্তর্দৃষ্টি বৃদ্ধিশীল লুপ সব আমি সমষ্টি করছে করছি প্লাস আই সমান এবং যে ইচ্ছাকৃত না. আমি এই কাজ করতে চান না কেস, সমষ্টি প্লাস প্লাস চাই. আমি আসলে যোগ করতে চান আমি বর্তমান মান যা পেয়ে এবং বড় বড় রাখে এবং চলমান মিল বড়. এবং তারপর আমি সমষ্টি আসতে. তাই উত্তর মান সমষ্টি পায়. এবং তারপর আমি এটি প্রিন্ট আউট. সুতরাং একটি সুযোগ আছে এখানে, যদিও ধরনের প্রক্রিয়া সহজ করতে এই কোড ধারণার এবং পেশা ধরনের এক শর্তাবলী মনে সরলতা যদিও এটা বাছাই করার সময় নেয় কেন এই প্রশংসা এইসব ছোট উদাহরণ শক্তিশালী হয়. এখানে তাই one-- সিগমা হয় এই কোড দ্বিতীয় সংস্করণ. উপরের সবকিছু তাই অভিন্ন যে একই গল্প আগে হিসাবে প্রযোজ্য. কিন্তু এখন এর তাকান সিগমা বাস্তবায়ন যা আমি শুধু এই নিচে whittled করেছি lines-- কোড চার লাইন, সত্যিই, প্লাস কিছু কোঁকড়া ধনুর্বন্ধনী এবং সাদা স্থান. কিন্তু আমি কি করছি? এম কম বা সমান হলে শূন্য, আমি ধরনের ব্যবস্থা করতে হবে যে সুপার সহজ ক্ষেত্রে. আর তুমি আমাকে শূন্য বা কিছু হাতে যদি শুধু যা অদ্ভুত নেতিবাচক আমি শুধু ইচ্ছামত যাচ্ছি কিন্তু ধারাবাহিকভাবে শূন্য ফিরে. আমি এই জিনিস চাই না কিছু অদ্ভুত অসীম ঢোকা কারণ একটি ঋণাত্মক মান লুপ. আপনি আমাকে দিতে যদি তাই আমি ঠিক, বলার অপেক্ষা রাখে না শূন্য বা তার কম, আমি শূন্য ফেরত দিচ্ছি. যে কারণ কিন্তু যে ভালো ফোন বইয়ের যে একক পাতা যে বাকি আছে. আমি একটি খুব নির্দিষ্ট সমস্যা কামড়ে করছি এবং পৌনঃপুনিকভাবে কিছু কলিং না. কিন্তু লাইন 31 সালে, তা আমি কাজ হবে বলে মনে হচ্ছে না? বন্ধনীর শুধু পালন করা হয় কিছু আশা, একটু পরিস্কার. কিন্তু আমি করছি সব আমি করছি m-- ফিরে যাই হোক না কেন আপনি ভগবন্ প্লাস হাত m-- দুঃখিত মান, প্লাস M বিয়োগ 1 সিগমা মান. তাহলে এর অর্থ কি? আপনি ইনপুট হিসেবে আমার নম্বর 3 দিতে পারেন, উত্তর আমি চরমভাবে পেতে চান 3 প্লাস 2 প্লাস 1 আমার 6 দেয়, কারণ 6. কিন্তু আমি প্রায় কিভাবে মনে করেন এই কোড কিভাবে চলমান? আমি সিগমা কল প্রথমবার এবং আমি, মান 3 পাস যে এক টুকরা উপর বলছে মত কাগজ, এখানে মান 3 এর এবং আমি সিগমা হিসেবে এই পাস করে থাকেন. 3 স্পষ্টত তাই অন্যূন 0 যদি শর্ত প্রযোজ্য নয়. অন্য কারো. তাই আমি কি করতে পারি? আমি যা, এম ফিরে আসতে চান এম বিয়োগ 1 এর 3, প্লাস সিগমা. তাই আমাকে এই সম্পর্কে অবগত রাখা যাক. আমি এই লাগাতে যাচ্ছি কাগজের নিচে সমাচার. আর কি মূল্য, হতে স্পষ্ট, আমি পাস যাচ্ছি গল্পের এই সময়ে সিগমা মধ্যে? কি নাম্বার? 2, ডান? 3 বিয়োগ 1 2. তাই আমি শুধু একটু প্রয়োজন এখানে কাগজ স্ক্র্যাপ. তাই এখন সিগমা আবার বলা হচ্ছে. আর আমি ইচ্ছাকৃতভাবে রেখেছি এই ডাউন এটা কারণ ধরনের pausing মত গল্পের যে সংস্করণ এখন আমি নিবদ্ধ করছি কারণ এম বিয়োগ 1 এর সংকেত. সুতরাং m 3, এম ছিল মাইনাস 1 2. তাই এখানে আমি পাশ করে থাকেন যে 2 হয়. 2 স্পষ্টত চেয়ে কম নয় 0 যাতে ক্ষেত্রে প্রযোজ্য নয়. অন্যথায় আমি এই যা, এম আসতে কি মান জিনিস, প্লাস সিগমা? তাই সিগমা 1 টি এম কারণ যদি এই মুহূর্তে 2 তাই 2 বিয়োগ 1 1. তাই এখন আমি মান 1 আছে. আমি শুধু সংখ্যা পার করছি ফাংশন sigma-- 1 অথবা নিজেকে এখানে তাই 1 স্পষ্টত নয় কম শূন্য আর, এখনও প্রযোজ্য নয়. অন্য বিনিময়ে 1 প্লাস কি সিগমা? 0. তাই আমাকে শুধু যে মনে রাখা যাক. আমি পরে যে ফিরে পাবেন. এখন আমি এগিয়ে এবং একফোঁটা যেতে চলেছি সংখ্যা 0 নিচে যে কারণ আমার যুক্তি বা প্যারামিটার. আমি সংখ্যা 0 পাস করছি এবং অবশেষে এই প্রক্রিয়া শুধু নিজেকে বিজ্ঞাপনটি পুনরায় nauseum কি কারণ থামা নেই আমি এই 0 দেখতে একবার আমি অবিলম্বে করবেন? আমি শূন্য ফিরে. তাই এখন আপনি গল্প গুটিয়ে আছে. আমি এখন সময় পিছনের দিকে চলা যদি, সবচেয়ে সাম্প্রতিকতম বিষয় কি ছিল আপনি আক্ষরিক হলে আমি একটি ভিডিও গুটাতে? আমি সবচেয়ে সাম্প্রতিকতম নিতে যাচ্ছি 1 এবং যে আমার 1 দেয় প্লাস 0 1. আমি গুটাতে রাখতে হলে গল্প, যে আমাকে দিতে যাচ্ছে 1, যা 2 প্লাস এই চলমান মান. সুতরাং যে 3 এর. এবং তারপর আমি গুটাতে রাখা যাচ্ছে না. আমি প্রথম সংখ্যা রাখা যখন 3-- তাই 3 প্লাস 3 6 আমাকে দেয়. আর এখন, আপনি rewound থাকেন তাহলে এই বিন্দু পর্যন্ত ভিডিও আপ, এই খুব ছিল প্রথম প্রশ্ন আমি জিজ্ঞাসা. 3 পৌছাল, 3 সিগমা কি? এটা প্রকৃতপক্ষে 6, এর সমষ্টি এই সব কাগজের টুকরা. যে একটু সময় লাগে, তাই যদি করতে যখন যে সূক্ষ্ম, আপনার মন চারপাশে মোড়ানো. কিন্তু এটা little-- একটি ছিল বিবেচনা আমি স্তুপীকৃত যে খুব ইচ্ছাকৃত ছিল একে অপরের উপরে এই সংখ্যার. এটা একটা থাকার মত কোন ধরনের সময় একটি রেকর্ড মেমরি, একটি ভিডিওতে একটি স্ক্রাবার মত, আমি তোমাদের মধ্যে গুটিয়ে করতে পারে. আর আমরা ফিরে আসতে যাচ্ছেন অল্পমাত্র বিট যে রূপক. কিন্তু প্রথম, এটা আছে যে দেখা যাচ্ছে geeks এবং মজার মানুষ অনেক, আমি গুগল এ, অনুমান. Would খুব কে কেউ Googling মন ভাল মাত্র কয়েক মিনিটের জন্য উত্ক্রান্ত এবং আমার কিছু অনুসন্ধান সাহায্য? অত্যন্ত কম কী. কখনও কেউ এর সম্ভবত, আগে আসা পর্যন্ত. ঠিক আছে. হ্যা? চলে আসো. নিচে আস. তোমার নাম কি? স্যাম: স্যাম. ডেভিড জে MALAN: স্যাম, নিচে চলো. এই একই. দেখা হওয়ায় খুশী হলাম. আরে. আসো. তাই সব আমি আপনি, তাহলে কি করতে হবে আপনি, স্যাম, গুগলের পারে. আপনি শব্দটি recursion জন্য অনুসন্ধান করতে পারেন? লুণ্ঠন না. আর এখন হ্যা let's--. ঠিক যে ক্লিক করুন. ভাল যে ক্লিক করুন. ওহ, এটা বুঝতে পারছি. কোন? ঠিক আছে. সুতরাং আসুন একটি দম্পতি অন্যদের কাজ করতে দিন. সংশ্লিষ্ট এত নেই অ্যাকাডেমিকভাবে এখানে, কিন্তু আপনি কখনও anagram জন্য গুগল অনুসন্ধান? স্যাম: নং ডেভিড জে MALAN: ঠিক আছে. Anagram পরিবর্তে recursion জন্য অনুসন্ধান করুন. কিভাবে বাঁকাভাবে সম্পর্কে. আপনি কি কখনো বাঁকাভাবে অনুসন্ধান? এখন, এই এক একটি সামান্য কঠিন দেখতে কিন্তু আশা ঠিক everything's--. এটা আপনার এবং আমার এই সেবন. ঠিক আছে. সুতরাং পরিশেষে, এই one's-- এটি একটি সামান্য বাঁকাভাবে এর. এখন একটি পিপা রোল না. ওয়ান্ডারফুল. ঠিক আছে. বিগ স্যাম আপনাকে ধন্যবাদ. এখানে আপনি যান. ধন্যবাদ. তাই কি সব ঘটছে এইসব মূর্খ উদাহরণ কয়েক? সত্যিই তাই, ফণা নীচে কোড লাইনের গুগলের লক্ষ দৃশ্যত, যদি কয়েক অর্থহীন মূলত যে শর্ত ব্যবহারকারী যদি চেক এই শব্দগুচ্ছ টাইপ, সম্ভবত নেন যে কিছু করতে সময় একটি nontrivial পরিমাণ শুধু বাস্তবায়ন এই ভাবে মজাদার হতে. কিন্তু এটা boils সব ফণা নীচে নিচে. কিন্তু, অবশ্যই, recursion geekier আরো ঐ বিশেষ ঠাট মধ্যে উদাহরণস্বরূপ. আর নিশ্চয় সেখানে অন্যদের সেখানে আউট পাশাপাশি আমরা সম্ভবত আছে না এমনকি শুধু এখনো আবিষ্কৃত. তাই দেখব, বা বিবেচনা এখন নিচের প্রোগ্রামটি, এবং অবশ্যই কোনো দখল আপনার উপায় খুঁজে এই নিয়ে. আমি এগিয়ে যেতে চলেছি এবং যে একটি প্রোগ্রাম খুলুন দুই মূল্যবোধের অদলবদল করার চেষ্টা করতে যাচ্ছে. আমরা সেখানে যাওয়ার আগে কিন্তু, এই কাজ করা যাক. আমরা আরও একটি পেতে পারে স্বেচ্ছাসেবক, আমি মনে করি? আপনি স্বেচ্ছাসৈনিক চাই? কোন? চলো. চলো. ঠিক আছে. আপনার নাম কি? Lauren: লরেন. ডেভিড জে MALAN: লরেন. আপ লরেন চলো. সুতরাং লরেন হচ্ছে নিম্নরূপ এখানে চ্যালেঞ্জ. দেখা হওয়ায় খুশী হলাম. সুতরাং লরেন এখানে সামনে আছে তার দুটি খালি কাপ. আর আমরা কিছু কমলা আছে রস এবং কিছু দুধ এবং আমরা যেতে চলুন এগিয়ে এবং নিচের কাজগুলো. আমরা শুধু এই ভরাট করতে যাচ্ছেন. এখানে ওভার দুধ কয়েক আউন্স এবং এর যাক এখানে ওভার একটু কমলার রস পূরণ করুন. আর সব সামনে এই শ্রোতা সদস্যদের, এই কাপ দুই মূল্যবোধের অদলবদল. দুধ কাপে কমলার রস রাখুন এবং কমলার রস কাপ দুধ. আপনি ছিল যদি আপনি এই কাজ করতে হবে কিভাবে বাড়ি ও অন্যান্য দ্রব্যের অ্যাক্সেস ছিল? Lauren: অন্য কাপে এটা রাখুন. ডেভিড জে MALAN: ঠিক আছে. সুতরাং আসুন একটি অস্থায়ী আছে যাক পরিবর্তনশীল, আমি ইচ্ছা করলে. এবং এখন এগিয়ে যান এবং বাস্তবায়ন এই একই পদ্ধতি সোয়াপিং. খুব ভাল. আমরা অস্থায়ী মধ্যে OJ রেখেছি পরিবর্তনশীল, OJ পরিবর্তনশীল মধ্যে দুধ, এবং এখন অস্থায়ী পরিবর্তনশীল দুধ পরিবর্তনশীল মধ্যে. ঠিক আছে. তাই খুব ভাল এ পর্যন্ত কাজ. সুতরাং এটা যে রাখা out-- সক্রিয় মাত্র কয়েক মিনিটের জন্য চিন্তা. এখানে, শুধু একটি বিট এটা যাও গুরু, এই সংশ্লিষ্ট C কোড হতে হবে আমরা শুধু যে বাস্তবায়িত. আমরা দুটি ইনপুট, A এবং B, উভয় ছিল যা আমরা শুধু সরলীকরণের জন্য বলবো কোন int এর. আমি অদলবদল করতে চান তাহলে, এখানে লক্ষ্য দুটি ভেরিয়েবল, A এবং B এর মান, আমরা প্রকৃতপক্ষে একটি ফড়িয়া প্রয়োজন, একটি অস্থায়ী পরিবর্তনশীল, একটি অস্থায়ী কাপ, যার মধ্যে The মান এক ঢালা যাতে আমরা এটি জন্য একটি স্থানধারক আছে. কিন্তু তারপর কোড ঠিক হয় লরেন হিসেবে এখানে বাস্তবায়িত. এখন, শুধু একটি পেতে একটু পাগল, দেখা যাচ্ছে আপনি ছাড়া এই কাজ করতে পারে একটি অস্থায়ী পরিবর্তনশীল. যদিও, আমরা চলুন, সঠিকভাবে এই কাজ কিছু রসায়ন সঙ্গে প্রতারণা করার আছে. আমরা এখানে কিছু অতিরিক্ত কাপ আছে. সুতরাং সর্বনিকটবর্তী বস্তু যে দেখায় দুধ ও পানি সম্ভবত দিন ভালো বা দুধ ও OJ-- আমরা কিছু আছে পানি, তাই আমরা এই এক ভরাট করব পরিষ্কার জল কয়েক আউন্স সঙ্গে. যে খুব বেশী সম্ভবত. হ্যা. খুব বেশি যে স্পষ্টভাবে. এক সেকেন্ড ধরে থাকুন. আর এখন আমরা আমি প্রত্যাহার হিসাবে যা, তেল, আছে মধ্যম স্কুল রসায়ন বর্গ থেকে, আশা করি এটি জলে মিশ্রিত না. কিন্তু এটা কোন ধরনের সাজানোর দুধ এবং OJ মত দেখায়. এখন তাই, ব্যবহার না করেই একটি অস্থায়ী পরিবর্তনশীল, আপনি ঐ দুটি মান অদলবদল করতে পারেন? , পানি এক কাপ মধ্যে যায় তেলরং তাই পানি তেল কাপ মধ্যে যায়. Lauren: অন্য কোন কাপ? ডেভিড জে MALAN: অন্য কোন কাপ. আর আমি আসলে না করেছি এই বছর আগে এই পরীক্ষা এই হবে, তাই যদি আমি জানি না আসলে রাসায়নিকভাবে কাজ. উনিশশো একাত্তর সেটা মানবে অনুমিত ছিল না. এটা কাজ করছে? ঠিক আছে. তাই আলাদা? ভাল. এখন আমরা পেতে পেয়েছেন অন্যান্য কাপ জল. স্মার্ট রসায়ন concentrators পারা সম্ভবত আমার চেয়ে ভাল এই কাজ. Lauren: জল নীচে আছে. ডেভিড জে MALAN: ছিল water-- কি আমরা এই কি শেষ সময় কী. আপনি সঠিক অনুক্রমে এটি করতে হবে. হ্যা. ঠিক আছে. তাই এখন আমরা তেল দুই কাপ আছে. ঠিক আছে. ঠিক আছে. কিন্তু এই I-- তুলনায় কাজ রাসায়নিকভাবে যদি Lauren: এই জল. ডেভিড জে MALAN: যে বেশিরভাগ জল. ঠিক আছে. কিন্তু যে এখনও আগের মতই বিশ্বকাপের. তাই এটিকে ওইখানে এটা চেষ্টা ঢালা. ঠিক আছে. এই শ্রেণীর একটি সময় ভাল ব্যবহার আজ. ঠিক আছে. তাই এখন সুন্দর we--. এক প্রকার. ঠিক আছে. তাই খুব ভাল. লরেন থেকে আপনাকে ধন্যবাদ. অনেক ভালো করেছ. তাই শুধু আপনার মন গাট্টা এবং এই সম্ভবত কিছু হয় আপনি CS50 আইডি চান তাহলে সাথে খেলতে, আপনি, আসলে, দুটি ভেরিয়েবল অদলবদল করতে পারেন একটি অস্থায়ী পূর্ণসংখ্যা ব্যবহার না করেই. আর এই সংশ্লিষ্ট সি কোড. এবং আপনি শেষ থেকে প্রত্যাহার হলে বুধবার, আমরা যদি সংক্ষেপে, চালু সি আর আছে কিছু নতুন অপারেটর কেউ কি একটু গাজর প্রত্যাহার প্রতীক, যে একটু ত্রিভুজীয় হয় কীবোর্ড থেকে প্রতীক প্রতিনিধিত্ব? কি bitwise অপারেটর? শ্রোতা: EXOR. ডেভিড জে MALAN: EXOR. একচেটিয়া বা. আপনি শুধু মজা করার জন্য, চান তাহলে হোম, A এবং B দুটি নির্বিচারে দিতে কোনো eight-- এবং আমি মত মান আট বিট মান চয়ন করবে. আপনি 32 বিট সঙ্গে এই কাজ করেন, আপনি খুব দ্রুত উদাস পাবেন. কিন্তু মাত্র আট বিট দিতে , এক বা দুই যাই হোক না কেন যে মান, এবং একটি অনুরূপ মান বি দিতে. এবং তারপর সংজ্ঞা ব্যবহার গত বুধবার থেকে XOR এর, , বিট দ্বারা প্রতিটি যে বিট আবেদন A এবং B প্রতিটি যারা আট বিট, এবং তারপর এই কোড প্রতি ঠিক তা না. এবং এটা ভুল না কি আপনি পর্দায় এখানে দেখতে. এটা প্রকৃতপক্ষে boils নিচে তিন XOR কাজকর্মকে এবং একরকম magically একটি এবং B অবস্থানের বিনিময় হবে কোন তথ্য হারানো ছাড়া. তাই তেল ও পানি কৌতুক নিকটস্থ বাস্তব জগতে অবতার আমি যে অনুকরণমূলক মনে হতে পারে. কিন্তু এটা নিশ্চয় সহজ একটি অস্থায়ী ভেরিয়েবল ব্যবহার, এখানে এই ক্ষেত্রে হিসাবে. এবং খুব এই একটি সুযোগ, বলতে হয় খুব, মাইক্রো অপ্টিমাইজেশান এই ধরনের, একজন কম্পিউটার বিজ্ঞানী হিসাবে বলতে হবে, যখন ধরনের মজা আপনি ছাড়া এই কেমন বড়াই করা একটি অতিরিক্ত পরিবর্তনশীল সঙ্গে সোয়াপিং মত, এটা যে সব বাধ্যকারী না. 32 বিট, হিসাবে সংরক্ষণ করতে, কারণ একটি প্রকৃত int এর ক্ষেত্রে, সব যে আকর্ষক নয় একটি সিস্টেম যেখানে প্রথম আপনি মেগাবাইটের দশ ব্যবহার করা যেতে পারে বা আরও বেশি যেমন মেমরি এইসব দিন. এবং সত্য, আমরা যখন পেতে পরবর্তী সমস্যা সেট করতে এবং আপনি বানান বাস্তবায়ন পরীক্ষক ও আপনাকে করব তাই না চ্যালেঞ্জ করা এই হিসাবে সামান্য র্যাম এবং হিসাবে সামান্য সম্ভব হিসাবে সময় এখনও আপনি কম্পিউটারে বাস্তবায়নের জন্য একটি সপ্তাহ আছে যদি আপনি হবেন থাকতে হবে এটিকে যারা সম্পদ কমানোর জন্য চ্যালেঞ্জ. এবং যে সত্যিই শুধুমাত্র এই সেমিস্টারে অনুষ্ঠানের আপনি শেভ করার পরামর্শ দেওয়া হবে যেখানে এমনকি শেখ কর্মক্ষমতা বন্ধ অন্যথায় খরচ. সুতরাং আমরা কিভাবে করতে পারেন what-- এই প্রকৃত কোড দেখতে? আমাকে এখন এগিয়ে যাওয়া যাক এবং একটি উদাহরণ খুলুন যে ইচ্ছাকৃতভাবে বলা হয় কোন সোয়াপ একটিও ভাষা ব্যবহারযোগ্য না কারণ আসলে ভেরিয়েবল অদলবদল আসলে আপনি আশা করতে পারে হিসাবে. তাই এর কটাক্ষপাত করা যাক. এখানে কোন CS50 আছে একটি প্রোগ্রাম গ্রন্থাগার, শুধু স্ট্যান্ডার্ড ইনপুট / আউটপুট যাওয়া. এখন আমরা একটি প্রোটোটাইপ আছে টপ আপ swap 'র জন্য যা শুধু তা পরবর্তী সংজ্ঞায়িত করা পেয়েছিলাম মানে. এবং এখানে মেইনের. আমি ইচ্ছামত X এবং Y বরাদ্দ, যথাক্রমে মান এক এবং দুই শুধু তারা ক্ষুদ্র কারণ এবং সহজ সম্পর্কে চিন্তা করা. এবং তারপর আমি শুধু printfs একটি গুচ্ছ আছে আমি একটি মানসিক সুস্থতা চেক আছে যেখানে. X 1 এবং y 2 সম্ভবতঃ হয় যারা printfs বলবে কি. সুতরাং কোন যাদু পর্যন্ত. তারপর আমি সঙ্গে দাবি করতে যাচ্ছি ডট ডট ডট সোয়াপিং, Def প্রিন্ট করা হবে. আমি ও swap 'র কল যাচ্ছি ফাংশন, এক্স এবং ওয়াই এ ক্ষণস্থায়ী. এবং এর এখন যে জন্য অনুমান করা যাক অদল-বদলের কাজটি ঠিক বাস্তবায়িত হয় এটি একটি মুহূর্ত আগে ছিল একটি অস্থায়ী পরিবর্তনশীল. আর তাই আমি নির্ভয়ে দাবি, আনা যায়. X এই এবং Y এখন যে এখন হয়. কিন্তু ফাইল, অবশ্যই, কোন সোয়াপ বলা হয়. সুতরাং আসুন আসলে কি দেখতে দিন. আমি তখন কোন অদল-বদল ও সঙ্কলন ./noswap না, এক্স 1, Y 2 হয়. আনা সোয়াপিং. X Y 2, 1 হয়. সুতরাং এটা আসলে এমনকি দ্বিধান্বিত হতে মনে হয় swap-- যদিও এখন আমি নিচে স্ক্রল যাক প্রতি ঠিক বাস্তবায়িত হয় কোড আমি একটি মুহূর্ত আগে প্রস্তাব. সুতরাং আমরা অভিনব পেতে যাচ্ছেন না এখন জন্য XOR কাপড় দিয়ে. এই, খুব, ঠিক কাজ করা উচিত দুধ এবং OJ সঙ্গে মত, কিন্তু এটা কাজ হবে বলে মনে হচ্ছে না. সুতরাং আসুন আবার এই কাজ করা যাক. হয়তো আমি ঠিক এটা চলমান যায়নি. সুতরাং আসুন আবার কোন swap চালানো যাক. হয়তো I-- কোন. তাই এটা শুধু কাজ করছে না. সুতরাং আসুন একটু বৈধতা পরীক্ষা না দেওয়া. আমার অদল-বদল এখানে এগিয়ে যান এবং মাত্র, যোগ একটি মিনিট অপেক্ষা করুন, একটি% আমি হয় / এন ও এর দিন প্লাগ ইন একটি মান. আমি সত্যিই চান কারণ কি ঘটছে দেখতে. এবং প্রকৃতপক্ষে, এই হল একটি ডিবাগিং কৌশল আপনি ব্যবহার করা যেতে পারে যে অফিসে ঘন্টা বা ইতিমধ্যে বাড়ীতে, ড্যান প্রথমার্ধে সদৃশ PSET3 মধ্যে Armendariz এর ভিডিও আমরা প্রিন্ট চালু যাহাতে হিসাবে Def অন্তত একটি সুপারিশ কৌশল, সহজ ক্ষেত্রে. আমাকে এগিয়ে যান এবং না চালানো যাক আবার কোন swap, ./noswap. জবর. সুতরাং সত্য হতে পারে বলে মনে হয় তা লক্ষ্য করা. এক্স 1 হয়, Y 2, কিন্তু বি 1 পাবো একটি 2 হয়. তাই ঐ দুটি একরকম আনা গিয়েছে কিন্তু x এবং y অদলবদল পাচ্ছে না. তাই কি ঘটছে, পরিষ্কার করা , আপ এখানে আমি x এবং y আছে হয় এবং যারা স্থানীয় ভেরিয়েবল প্রধান সুযোগ, আমি x এবং y এর মধ্যে পার করছি বিনিময় করা. এখন, swap ', একটি পৃথক ফাংশন হিসাবে, তার আর্গুমেন্ট কল করুন বিনামূল্যে বা তার পরামিতি কিছু এটা চায়. ফু X বা Y অথবা A অথবা B অথবা দণ্ড বা. শুধু যে তারা পরিষ্কার করতে X অভিন্ন না এবং Y সহজাতভাবে আমি A এবং B বলেন করেছি. কিন্তু আমরা তাদের আমরা কিছু করতে চান পেরেছিলাম. আর তাই এটা দেখে মনে হচ্ছে অদল-বদল পাস হচ্ছে x-- ওরফে ছাগু karigor.com এবং এটা * সাথে ওরফে বি পাস হচ্ছে. একরকম এই তিনটি লাইন ঠিক ঐ মান সোয়াপিং লরেন দুধ এবং OJ সঙ্গে করেনি. কিন্তু আমরা প্রিন্ট আউট যখন মান, A এবং B অদলবদল ইচ্ছাধীন কিন্তু এক্স এবং Y তাদের কোন পরিবর্তন আছে. যে x এবং y এখানে আপ হয় প্রত্যাহার. তাই আমরা এই মাধ্যমে দেখতে পারেন পাশাপাশি অন্য কৌশল. এবং এই অত্যন্ত একটি কৌশল সমস্যা এমবেড তিন সেট. আসুন এগিয়ে যান এবং এই কাজ এবং CS50 আইডি আপনি ইতিমধ্যে না থাকে তাহলে. ডান দিকে আমরা এই ডিবাগার ট্যাব আছে. এবং যদি আপনি এই পর্যন্ত খুলতে হলে, কিছু গোপনীয় তথ্য আছে যে প্রথমে আপনি এ নিক্ষিপ্ত. কিন্তু এর বাস্তব দ্রুত এই সরাইয়া জ্বালাতন করা যাক. তাই এক, আপনি স্থানীয় ভেরিয়েবল দেখতে. এবং CS50 আইডিই মধ্যে নির্মাণ যে সক্রিয় আউট, এবং প্রোগ্রামিং পরিবেশে অনেক আরো সাধারণত, একটি ডিবাগার হয়. আপনি চাক্ষুষরূপে দেখতে পারবেন যে একটি টুল কি আপনার প্রোগ্রামের ভিতর যাচ্ছে যোগ করার জন্য অবলম্বন ছাড়াই printfs এবং কম্পাইল এবং চলমান এবং printf এর যোগ এবং কম্পাইল এবং অফিস ঘন্টার মধ্যে, যা ইতিমধ্যেই চলমান অথবা বাড়িতে, সম্ভবত হয় বেশ ক্লান্তিকর পেয়ে. তাই এখানে, মাত্র কয়েক মিনিটের মধ্যে আমরা আছেন রিয়েল টাইমে দেখতে যাচ্ছে আমাদের স্থানীয় ভেরিয়েবলের মান. আমরা সেট করতে সক্ষম হতে যাচ্ছেন ব্রেকপয়েন্ট বলা হয় কি যা সুযোগ বিরতি আমার প্রোগ্রাম হয় কোড একটি নির্দিষ্ট লাইনে মৃত্যুদন্ড আমি সম্পর্কে জানতে আগ্রহী নই যে. রাইট? এই প্রোগ্রামের একটি বিভক্ত দ্বিতীয় রান. এটা আমাদের ধীর মানুষের জন্য ধরনের চমৎকার , বিরাম একটি মুহূর্ত নিতে পাবে, দেখতে চারপাশে কি ঘটছে কোড একটি নির্দিষ্ট লাইন প্রোগ্রাম চাষ ছাড়া এটা মাধ্যমে এবং সম্পূর্ণরূপে শেষ. সুতরাং একটি ব্রেকপয়েন্ট আমাদের অনুমতি যাচ্ছে বিরতি এবং একটি নির্দিষ্ট সময়ে বিরতি. কল স্ট্যাক একটি অভিনব উপায় ফাংশন কি বর্তমানে বলছে মুহূর্তে বলা হচ্ছে. প্রধান সবসময় প্রথম বলা হয়. কিন্তু মূল একটি কল যদি সোয়াপ বলা ফাংশন, আমরা আসলে এই দেখতে যাচ্ছেন হয়েছে যে ফাংশন টাওয়ার বিপরীত ক্রমে বলা. সুতরাং আসুন যে দেখতে দিন. আমি জুম আউট করা যাচ্ছে না. আমি আমার কোড ফিরে যেতে চলেছি. আর আমি চাই, কারণ এখানে গোঁড়া হবে, আমি এগিয়ে যান এবং ক্লিক করুন যাচ্ছি শুধু লাইন পাঁচটি বাঁদিকে. এবং যে একটি লাল বিন্দু সৃষ্টি. আর ডান দিকে লক্ষ্য ডিবাগার আরে, জানেন যে, আমি শুধু বলেছি একটি ব্রেকপয়েন্ট এ noswap.c লাইন পাঁচটি, বিশেষভাবে কোড এই লাইন এ. সুতরাং ডিবাগার যে আমি জানে পরবর্তী সময় যে অনুরোধ করেছেন আমি আমার প্রোগ্রাম এটি বিরতি চালানো সেখানে বদলে শুধু মৃত্যুদন্ড সুপার ফাস্ট গোটা ব্যাপারটাই চলমান. তাই এখন আমি ডিবাগ ক্লিক যাচ্ছি আইডিই খুব উপরের বোতাম এবং যে নিচের কাজগুলো করতে যাচ্ছে. এটা প্রথমে কিছুটা খুলতে যাচ্ছে ভয়ের খুঁজছেন দ্বিতীয় টার্মিনাল উইন্ডোতে থেকে দূরবর্তী ডিবাগিং যেমন হোস্ট এবং such-- এবং আমরা ফিরে আসবো কি সব যে অর্থ আগে দীর্ঘ. কিন্তু এখন জন্য গুরুত্বপূর্ণ কি যে লাল বিন্দু আঘাত ছিল না, ডিবাগার ইচ্ছাকৃতভাবে আছে execution-- বিরাম না কোনটাই যে লাইনে কিন্তু প্রথম প্রথম যে ফাংশন প্রকৃত কোড লাইন. লাইন সাত কেন এবং যে এখন হলুদ হাইলাইট. এবং এখন এর কটাক্ষপাত করা যাক ডান দিকে এ. এটি ডিফল্টরূপে, দেখে মনে হচ্ছে, সুন্দরভাবে যথেষ্ট, এক্স কি মূল্য আছে? 0. আর Y কি মূল্য আছে? জিরো. আর যে অর্থে হবে বলে আশা করা হচ্ছে যে এক্স এবং হলুদ লাইনে আছে * সাথে এখনো মৃত্যুদন্ড না. তাই x এর মান 1 আছে করা উচিত নয়. এটা অন্য কোন মূল্য থাকতে পারে, একটি তথাকথিত আবর্জনা মান. আর আমরা এটা ভাগ্যবান যে মূলত, এই সময়ে শূন্য. তাই এখন মাত্র কয়েক আছে বোতাম আমরা যত্নের প্রয়োজন এই ভাবে ডিবাগ করার সময় সম্পর্কে. এখানে লক্ষ্য করুন, আমরা একটি প্লে বাটন আছে. এবং আমরা খেলা যদি বা আঘাত ঠিক যে, পুনরায় শুরু মাধ্যমে চালানো যাচ্ছে প্রোগ্রাম বাকি অথবা এটা অন্য ব্রেকপয়েন্ট হিট পর্যন্ত. কিন্তু আমি অন্য কোন সেট না থাকেন ব্রেকপয়েন্ট তাই এটা ঠিক শেষ মাধ্যমে চালানো যাচ্ছে. নষ্ট তজ্জাতীয় প্রায় খোঁচা উদ্দেশ্য. সুতরাং পরিবর্তে, আমি যত্নশীল ডানে এই আইকন. আর আমি উপর কার্সার রেখে যদি তাদের হিসাবে আপনি খুব উচিত আপনি একটু tips-- টুল টিপস দেখতে পাবেন. এই এক ওভার করে. এখন যে ছেড়ে মানে এই নয় কোড নিম্নলিখিত পংক্তিটি. যে শুধু এটি চালানো মানে এবং পরের সরানো, পরের সরানো, পরবর্তী সরাতে. অন্য কথায়, মাধ্যমে যে বাটন, আমি পায়চারি করতে পারেন একটি সময়ে আমার কোড এক ধাপ মাধ্যমে. আক্ষরিক পাতিপাতি,. এখন, ডান অন্য আর একটা আছে, যে আমরা মাত্র কয়েক মিনিটের মধ্যে দেখতে পাবেন যে. এই তথাকথিত হয় যে আইকন মধ্যে পইঠা আমার ডাইভ অনুমতি দিতে যাচ্ছে আরেকটি ফাংশন. কিন্তু এর মাত্র কয়েক মিনিটের মধ্যে এই দেখুন. তাই আমি ধরে ধাপে ক্লিক করুন যাচ্ছি. আমি ক্লিক হিসাবে এবং এখন, লক্ষ্য উপরের ডানদিকে এই বাটন, স্থানীয় অধীনে প্রায় আপনার চোখ রাখা ভেরিয়েবল এবং এক্স দেখুন সেখানে কি ঘটছে. X বর্তমানে কারণ 1 হলুদ রেখা এখন মৃত্যুদন্ড কার্যকর করা হয়েছে এবং আমরা লাইন থেকে 8 সরানো করেছি. আর মাত্র কয়েক মিনিটের মধ্যে Y আশা 2 হওয়া উচিত. এখন, কিছুই আকর্ষণীয় যে একটি বিট জন্য এরকম. এই হল printf. আর আমার দ্বিতীয় টার্মিনালে, লক্ষ্য উইন্ডো, আমি প্রিন্ট Def আউটপুট দেখতে. এবং এখন আমি একটি করতে হবে প্রোগ্রামার হিসেবে সিদ্ধান্ত. আমি এই লাইন উপর পইঠা পারেন কোড, এটা নির্বাহ কিন্তু না ভিতরে কি সম্পর্কে কৌতুহলী. অথবা আমি আসলে তা বাড়ানো যাবে এবং সোয়াপ নিজেই ভেতরে যেতে. সুতরাং আসুন আধুনিক করতে দিন. আমাকে এগিয়ে যান এবং ক্লিক করুন না আসিতে কিন্তু মধ্যে পর্যায়. লক্ষ্য করুন, হঠাৎ সব উইন্ডো পরিবর্তন প্রথম তুলে ধরতে সোয়াপ কোড লাইন. যে লাইন 21 এর. এবং এখন, ভীতু ধরনের যে কি, আপনি এখানে উপর তাকান,, প্রত্যাশা একটি কমা B যথাক্রমে 1 এবং 2, হয়. কেন টেম্প 32.767 হয়? অনেক মত, যে টেম্প স্মরণ একটি মুহূর্ত আগে খালি কাপ, লাইন 21 এখানে ঘোষিত হয়. আমি বলতে চাচ্ছি কেন 32,000-, কেন হয় এটা শুধু কিছু অদ্ভুত মান? হ্যা? শ্রোতা: এটি সক্রিয়া না. ডেভিড জে MALAN: এটা সক্রিয়া করা. তাই আমাদের কম্পিউটার সবসময় প্রকৃত মেমরি আছে. এটা সবসময় প্রকৃত RAM আছে. আর সবসময় আছে জিরো এবং এক ডান, ওখানে? আমরা ব্যবহার করছি, কারণ আমাদের সব দিন লম্বা কম্পিউটার, আপনি CS50 আইডিই ব্যবহার করছেন অথবা সার্ভার সব দিন লম্বা. যে র্যাম কিছু শূন্য আছে, তাই হয় বা কেউ বা কিছু zeros এবং বেশী. কোন ব্যাপার কিনা বা আপনি তাদের ব্যবহার করছেন না. আপনি শুধু ফাঁকা থাকতে পারে না শূণ্যস্থান যেখানে আপনি বিট চান. তারা zeros এবং বেশী হয় হন. সুতরাং এটা, কারণ, যে টেম্প সক্রিয় আউট আমরা এখনো সক্রিয়া করেছি আমরা যারা 32 বিট আছে কিন্তু তারা না করেছি কোনো পরিচিত মান সক্রিয়া করা. তাই তারা ছিল যাই হোক না কেন অধিকাংশ সম্প্রতি যারা 32 bits-- for-- ব্যবহৃত আমরা শুধু কিছু হস্তনির্মিত দেখছি ঐ বিশেষ 32 পূর্ববর্তী ব্যবহারের বিট. যত তাড়াতাড়ি আমি যদিও আসিতে ক্লিক হিসাবে, ছি ছি, টেম্প মূল্য 1 পেতে যাচ্ছে. আমি আবার এটা করতে হলে, একটি হল মান 2 দেওয়া যাচ্ছে এবং তারপর বি যাচ্ছে মান 1 দেওয়া. তাই কি এখন সুন্দর গল্পে এই বিন্দু ডিবাগার হয় সুপার ধীরে ধীরে, আমার দেশ আমার নিজস্ব গতিতে, কি অদল-বদল রাজ্যের হয়. কিন্তু এখানে উপরে, নোটিস লক্ষ্য যে আসলে কল স্ট্যাক এটি দুটি স্তর আছে. হিসাবে হাইলাইট যে এখন এক সোয়াপ, আমি পরিবর্তে মুখ্য উপর ক্লিক করুন, স্থানীয় ভেরিয়েবল পরিবর্তন কিভাবে লক্ষ্য ডেভেলপার শুধু প্রস্থান করতে পারেন, কারণ কাছাকাছি এবং কোন বিভিন্ন সুযোগ ঢোকা. আমরা এই সব করছেন সুতরাং যদিও কাজ ও সঠিকভাবে a ও b সোয়াপিং, আমি অদলবদল মধ্যে আগে পিছে যেতে হলে একটি 2 এবং বি 1 এবং প্রধান যেখানে, প্রধান সব সময়ে আক্রান্ত হয়েছে? না. সুতরাং Takeaway এখানে কি? ওয়েল, এটা যে কোনো সময় দেখা যাচ্ছে যে আপনি, swap 'র মত একটি ফাংশন কল এবং আপনি এটা আর্গুমেন্ট, পাস কি আপনি সোয়াপ ফাংশন পার করছি এই ক্ষেত্রে একটি কপি যারা আর্গুমেন্ট. সুতরাং x এবং y যথাক্রমে প্রতিটি হয় তাহলে 32 বিট, কি অদল-বদল হচ্ছে দুটি নতুন স্থানীয় ভেরিয়েবল, বা আর্গুমেন্ট, নামক একটি এবং বি কিন্তু যারা নির্বিচারে হয় names-- কিন্তু শূন্য প্যাটার্ন এবং ভিতরে A এবং B এর বেশী হয় বূ্যহিত X এবং Y অভিন্ন হবে কিন্তু তারা না হয় X এবং Y হিসাবে একই জিনিস. প্রধান তার স্থানের হিসাবে যদিও এটা কাগজের সংখ্যা 1 এবং X ও Y জন্য 2, এবং এটা যে হাত তারপর যখন কাগজ এক টুকরা অদলবদল, সোয়াপ খুব দ্রুত পায় নিজস্ব কলম, নিচে লিখেছেন 1 ও কাগজের নিজস্ব পত্রকে 2, হাত প্রধান মূল XY ব্যাক এবং তারপর তার নিজের করে A এবং B সঙ্গে জিনিস. এবং এইটা এখন কারণ সুপার গুরুত্বপূর্ণ এই nontrivial বিষয় রয়েছে আসলে সঠিক কোড লেখার জন্য মনে হবে, কারণ আমরা অদলবদল করা যাবে না দুটি ভেরিয়েবল. আমি একটি সঠিক swap ফাংশন লেখা আছে. আমরা যেমন Lauren সঙ্গে এটি প্রয়োগ করেছি বাস্তবে একটি সঠিক ও swap 'র ফাংশন, কিন্তু যে দৃশ্যত কেউ গুরুত্বপূর্ণ হলে আপনি আসলে না পারেন স্থায়ীভাবে দুই মূল্যবোধের অদলবদল. সুতরাং আমরা অন্য ভাবে প্রয়োজন আসলে এই সময়ে পেতে, এবং আমরা পাবে প্রয়োজন আসলে এই সমস্যার সমাধান. আর এটা বলতে সক্রিয় এবং আমরা আসবো ফিরে এই বিশেষ ছবি দীর্ঘ আগে এই এক উপায় যে আপনি আপনার কম্পিউটার এর মেমরি আঁকতে পারে. এটি শুধু একটি আয়তাকার এর. আপনি যে কোনো এটা আঁকতে পারে উপায় কিন্তু এটা সংখ্যা একটি হিসাবে এটি আঁকা সুবিধাজনক নিম্নলিখিত কারণে আয়তক্ষেত্র. আমরা অতিক্রম আজ শুরু এবং চলুন তথাকথিত স্ট্যাকের সম্পর্কে কথা বলা. এবং স্ট্যাকের শুধু একটি খণ্ড এর মেমরি একটি খণ্ড উপস্থিত RAM- ফাংশন এক্সেস আছে তারা নামক করছি যখন করতে. আর তাই এটি যে সময়ে দেখা যাচ্ছে এই স্ট্যাকের খুব নীচে মেইনের স্থানীয় ভেরিয়েবল সব কোথায় সংস্থা সি এবং org ভী এবং যে সব উপাদান এবং ডিফল্টরূপে যেতে যাচ্ছি. এবং প্রধান তাহলে , swap 'র মত কিছু অন্যান্য ফাংশন কল ভাল, সোয়াপ অন্য পেতে যাচ্ছে এটা উপরে মেমরি স্তর. আর তাই শুধু আপনি একটি দ্রুত দ্রুত দিতে এই ছবি আমি পুনরালোচনা যদি এখানে এবং আমার উপর এই মিরর দিন উপরি হিসেবে সত্যিই আমি আছে কি well--, আমরা সম্পর্কে শুধুমাত্র যত্ন যদি এখন জন্য এই ছবি নীচে, যে আমি যখন একটি প্রোগ্রাম চালানো এবং প্রধান, বলা পরার প্রধান একটি খণ্ড দেওয়া হয় যে আমার কম্পিউটার উপস্থিত RAM- র এই তথাকথিত স্ট্যাকের নীচে. এবং আমি এটা আঁকতে চলেছি ইচ্ছাকৃতভাবে একটি বর্গ হিসাবে. সুতরাং এটা 32 বিট বা চার বাইট মত. এবং এই মূল ফাংশন আছে যদি একটি 1 এর একটি মান সঙ্গে পরিবর্তনশীল নামক এক্স এবং এটি একটি পরিবর্তনশীল নামক হয়েছে 2 এর মান সঙ্গে Y, যে মেমরি এই কাঠের ছিলকা নেওয়ার মত যে প্রধান অপারেটিং দ্বারা দেওয়া হয়েছে সিস্টেম এবং যাতে এটি আপ বিভাজক প্রথম স্থানীয় পরিবর্তনশীল, এখানে যায় দ্বিতীয় এখানে যায়, এবং যে এটি. প্রধান সোয়াপ, অদলবদল কল যখন মেমরি নিজস্ব ফালি পায় আমরা ভালো আঁকা করব যে অপারেটিং সিস্টেম থেকে, এবং এটি আছে যাচ্ছে তার নিজস্ব স্থানীয় ভেরিয়েবল ভিত্তি আমাদের বাস্তবায়ন উপর আগে স্থানীয় ভেরিয়েবল সঙ্গে একটি প্রথমে ও বি যে মান 1 এবং 2 পেতে. কিন্তু তারপর, যত তাড়াতাড়ি সোয়াপ কোড, executes এবং Lauren আসলে বিনিময়সমূহ OJ এবং দুধ, কি ঘটছে? ওয়েল, এই 2 একটি 1, এই হয়ে উঠছে না 1, উপায় দ্বারা, একটি 2 হয়ে উঠছে, এবং হয় হচ্ছে যে একটি টেম্প পরিবর্তনশীল নেই যে অবশেষে যে পুরো সময় ব্যবহৃত দূরে যায়. কিন্তু এটা কোন ব্যাপার না কত কাজ আপনি না এই লাইন এই মেমরি স্থান র মধ্যে, X এবং Y সম্পূর্ণ অক্ষত আছে. সুতরাং আমরা দান কিছু উপায় প্রয়োজন এটা মত অদল-বদল ও কার্যাবলী গোপন এক্সেস, যদি আপনি হবে, এর সাথে ফাংশন X এবং Y মত মেমরি করার মত. সুতরাং আসুন কটাক্ষপাত করা যাক সাহায্য করে একটি উদাহরণ আমাদের হয়েছে ঠিক কি দেখতে এই পুরো সময় যাচ্ছে. আমি এগিয়ে যেতে চলেছি এবং খুলুন জিরো তুলনা. আর আমি বন্ধ করা যাচ্ছে না আমাদের ডিবাগার, আমি যাচ্ছি এই ভীতিকর খুঁজছেন বার্তা বন্ধ করতে শুধু, একটি মিনিট অপেক্ষা করুন বলছেন, আপনি মাঝখানে ডিবাগ মধ্যে আছেন. আমি এখানে এই ট্যাব আড়াল করতে যাচ্ছি শুধু ফিরে সরলতা যেতে. , GDB নিহত হলে তাই চিন্তা করবেন না. যে শুধু প্রোগ্রাম আছে যে মানে ইচ্ছাকৃতভাবে এই ক্ষেত্রে, প্রস্থান করা, আমার দ্বারা. আর এখন জিরো এই আছে তুলনা. আমি CS50 ব্যবহার করছি স্ট্যান্ডার্ড ইনপুট / আউটপুট লাইব্রেরি. আমি যে প্রথম একটি প্রধান ফাংশন পেয়েছেন বলেছেন, কিছু বলতে, এবং একটি পংক্তি পায়. অতঃপর তুমি বার বার এটা বলছেন অন্য স্ট্রিং পায়. আর যে এই দুটি স্ট্রিং লক্ষ্য যথাক্রমে এর এবং T বলা হয়. আর এখন এই প্রোগ্রাম, তুলনা জিরো, জীবনের উদ্দেশ্য, এটা আমাকে বলুন অনুমিত এর, আমি একই জিনিস টাইপ হয়নি? আর তাই আমি সপ্তাহে এক ফিরে যাচ্ছি. আমি আমার সমান সমান অপারেটর ব্যবহার করছি যা মানের অপারেটর. না নিয়োগ অপারেটর, সমতা অপারেটর. আমি শুধু এর এবং T তুলনা করছি. সুতরাং আসুন আসলে এগিয়ে যান এবং এই কাজ করা যাক. এবং আমি এগিয়ে যেতে চলেছি এবং জিরো তুলনা করতে. আমি ./comparezero কাজ করতে যাচ্ছি. এবং আমি যেতে যাচ্ছি এগিয়ে এবং কিছু বলতে মত, এর ছোট হাতের মধ্যে মায়ের না যাক এবং কিভাবে বড় হাতের মধ্যে মায়ের ওপর. এবং অবশ্যই আমি বিভিন্ন জিনিস টাইপ. ঠিক আছে. বলে আশা করা হচ্ছে. এর আবার এটি চালানো যাক. উভয় বার, ছোট হাতের এবং ছোট হাতের না. এটা আমার কাছে সুপার দেখায় অভিন্ন. লিখুন. ঠিক আছে. হয়তো এটা কারণ শুধু অদ্ভুত এটা আমার ব্যাকরণ পচ্ছন্দ না. সুতরাং আসুন একটি মূলধন মায়ের কাজ করা উচিত, রাজধানী মায়ের, অভিন্ন. বিভিন্ন জিনিষ. তাই কেন যে হয়? ওয়েল, আসলে কি ঘটছে এখানে ফণা নীচে? সুতরাং আসুন ফিরে যেতে দিন এখানে শুধু একটি মুহূর্ত জন্য এবং তা বিবেচনা GetString, আসলে করছে. আপনি কল GetString যখন, একটি ফাংশন যে আমরা এর নিজেদেরকে লিখেছিলেন এবং এটা একরকম একটি পায় ব্যবহারকারী থেকে অক্ষরের ক্রমানুসারে. আর এর প্রথম যে অনুমান করা যাক সময় আমি GetString কল, যে আমাকে দেয় মেমরি একটি খণ্ড যে ভালো দেখায়. আর আমি সব ছোট হাতের মধ্যে টাইপ করা হলে এম-হে-m-- এবং কি এটা পরে যায়? শুধু একটি দ্রুত বৈধতা পরীক্ষা. ব্যাকস্ল্যাশ শূন্য. আমরা জানি যে. আর আমরা অভিনয় করে প্রত্যাহার প্রায় Zamila এর নামের সাথে এবং অন্যান্য নামের একটি গুচ্ছ যখন রব এখানে খুঁজছিলাম মেমরি ভিতরে কি ঘটছে এ. সুতরাং যে গল্প ঠিক একই. এই কি GetString, আমার ফিরে আসছে. এখন, আমার কোড একটি মুহূর্ত আগে সংরক্ষিত GetString ফেরত মান একটি পরিবর্তনশীল নামক গুলি. এবং তারপর দ্বিতীয় সময় আমি এটা বলা, এটি একটি পরিবর্তনশীল নামক T মধ্যে এটি সংরক্ষণ করা. আমি এখানে যান সুতরাং, আমি প্রয়োজন এই স্থানীয় ভেরিয়েবল আঁকা এবং আমি সাধারণত যাচ্ছি ঠিক করা আমরা করব একটি স্ট্রিং আঁকা এখানে একটি সামান্য বর্গ হিসাবে এটি s-- কল. মায়ের কীভাবে এবং এখন, somehow-- এই পরিবর্তনশীল এর ভিতরে যেতে? ওয়েল, আমরা ফিরে যেতে হবে এখানে প্রথম নীতির. GetString আসলে কি ফিরে আসছে? সুতরাং এটা যে এম-হে-এম সক্রিয় আউট ব্যাকস্ল্যাশ শূন্য, এবং কোনো সংখ্যা মত মেমরি অন্যান্য স্ট্রিং Zamila ও রব বা অ্যান্ডি বা অন্যেরা অবশ্যই হয় আমাদের কম্পিউটার এর র্যাম বা মেমরি. আর আপনার র্যাম আপনি করার মত আছে উপস্থিত RAM- র একটি কোঁচ, উপস্থিত RAM- র দুটি যোগাড়, বা বিলিয়ন বা দুই বিলিয়ন বাইট, হয়তো বা আরও বেশি এইসব দিন. সুতরাং আসুন আজকের উদ্দেশ্যে, অনুমান করা যাক, এটা আমরা সংখ্যা কিভাবে কোন ব্যাপার না যে তাদের, কিন্তু আমরা প্রতিটি সংখ্যা পারেন যারা বিলিয়ন বা দুই বিলিয়ন অথবা চার বিলিয়ন বাইট. আর এর ঠিক ইচ্ছামত যে বলা যাক এই প্রথম কামড়, দ্বিতীয় কামড় হয়, তৃতীয়, চতুর্থ. আমি ইচ্ছাকৃতভাবে জন্য শূন্য ব্যবহার করছি না আজ কিন্তু আমরা যে ফিরে আসবো. তাই অন্য কথায় এই, যদি খুব প্রথমবার আমি প্রোগ্রাম ব্যবহার করছি আমি শুধু ভাগ্যবান এবং প্রথম পেয়ে করছি কামড় তারপর পাঁচ এক সময়ে দুই তারপর তিন থেকে চার তুলনায়. আর আমি অঙ্কন রাখা, তাহলে হতে পারে বক্স নম্বর দুই বিলিয়ন পথ ধরে এখানে হবে. সুতরাং আপনি তারপর, আপনি কি মনে করেন, GetString আসলে ফেরৎ? এটা এম হে-এম ব্যাকস্ল্যাশ ফিরে না শূন্য কোনটাই স্পষ্ট যে কারণ আমি টানা করেছি যে বক্সে মাপসই করা হবে না. তাই আসলে কি কি GetString পারে ফিরে সব এই সপ্তাহ করা? উত্তরের হয় বোর্ড এখানে কোথাও. আপনি, এম-হে-এম ব্যাকস্ল্যাশ শূন্য মাপসই করা যাবে না তাই কি পরিবর্তে জানার জন্য হতে পারে? আপনি নির্বাণ, সুপার চতুর হতে ছিল তথাকথিত ইঞ্জিনিয়ারিং টুপি, আপনি কি আসতে পারে? কি তথ্য অন্তত পরিমাণ আপনি এখনও would যে আসতে পারে আপনি মেমরি এম হে-এম খুঁজে? হ্যা? শ্রোতা: এক. ডেভিড জে MALAN: এক. আর কেনই বা এক? শ্রোতা: এটা বলতে হবে কারণ আপনি যেখানে [শ্রবণাতীত] যেতে. ডেভিড জে MALAN: ঠিক. আমি শুধু অঙ্ক ফিরে যাচ্ছি আমি অর্জিত যে স্ট্রিং এর. এই অঙ্ক যদি পাঁচ অন্যতম. সত্যিই কি তাই s-- সঞ্চিত হচ্ছে এবং প্রতি স্ট্রিং ভেরিয়েবল এইভাবে far-- শুধু হয়েছে স্ট্রিং এর ঠিকানা. এদিকে, আমি কল যদি একটি দ্বিতীয় সময় এবং আমি GetString আক্ষরিক একই জিনিস টাইপ Lowercase-- এম হে-এম এম-হে-এম এবং অন্য backslash শূন্য, এবং এখন হয়তো আমার প্রোগ্রাম এর কিছু সময়ের জন্য, তাই হয়ত এই চলমান হয়েছে 10, এই, এই 12 হয়, পাঁচ 11 এই 13 হয়. অন্য কিছু ব্যবহার করে কম্পিউটার কারনের জন্য মেমরি. কি এখন আমার দ্বিতীয় যায় আমার প্রোগ্রাম টি পরিবর্তনশীল? 10. ঠিক. আর তাই আমরা তাকান এই প্রোগ্রামের সোর্স কোড যেখানে আমি কেবল চেষ্টা করছি দুটি মান তুলনা, টন সমান সমান গুলি, কি সুস্পষ্ট মানুষের উত্তর? 1 10 সমান যায় না, ঠিক কোন কারণ. আর তাই এখানে একটি মিথ্যা আমাদের জন্য সুযোগ সত্যিই শুধু প্রথম, আবার ফিরে যেতে নীতি ও ভাল, আমার মনে হয়, কি ফণা নীচে যাচ্ছে? আমরা যে বিষয়ে কথা হয়েছে করেছি বিট এবং বাইট এবং মেমরি, কিন্তু এটা বুঝতে আসলে দরকারী আপনি কল GetString কারণ যখন, আমরা মনে যদিও এটা এম-হে-এম বা স্ট্রিং মায়ের ফিরে বা অ্যান্ডি বা Zamila বা মত, টেকনিক্যালি এটা শুধু ফিরে ঠিকানা মেমরি যে তাল. কিন্তু এটা ঠিক আছে. আমি কিভাবে জানি না, কারণ স্ট্রিং যেখানে শেষ হয়? আমি মাত্র শুরু করছি দেওয়া যদি? ওয়েল, ব্যাকস্ল্যাশ শূন্য, ডান? শুধু আমি করতে রৈখিক সময় মুদ্রণ Def এম হে-এম সাথে প্রিন্ট আউট. এবং যত তাড়াতাড়ি আমি ব্যাকস্ল্যাশ দেখতে হিসাবে আমি শুরু যেখানে শূন্য, আমি না যত্ন আমি ইতিমধ্যে পরোক্ষভাবে জানেন যেখানে আমি শেষ করতে হবে. আর তাই আজ শুরুতে চিহ্নিত করা এবং আমার কারণে আমরা নাটকীয়ভাবে এই কাজ করা যাক কষ্টে অনেক মাধ্যমে গিয়েছিলাম এই এখানে wheels-- প্রশিক্ষণ পেতে তাই আজ প্রশিক্ষণ চাকার শুরু খসা এবং আমরা এ প্রকাশ করতে least-- [সাধুবাদ] যে ট্রিপ মূল্য ছিল হ্যাঁ, আজ সকালে লক্ষ্য? তাই এখন নেই, এটি সক্রিয় আউট, স্ট্রিং যেমন জিনিস. স্ট্রিং বিদ্যমান নয়. এটা আমরা করেছি যে একটি প্রতিশব্দ আছে ভেতরের CS50 লাইব্রেরি. অত: পর, আমরা কলিং শুরু করতে যাচ্ছেন এর এবং T না স্ট্রিং কিন্তু গৃহস্থালি বড়. গৃহস্থালি তারকা এবং আমরা করব আগে দীর্ঘ সরাইয়া জ্বালাতন. কিন্তু এই বলতে হয়, আমরা অবিরত, এমনকি যদি যে এখন জন্য GetString ব্যবহার, টেকনিক্যালি আমি উচিত গৃহস্থালি তারকা এবং গৃহস্থালি তারা বলছে হতে. আর এটা কি যে তারকা সক্রিয় আউট বোঝান যাচ্ছে কিছু হয় একটি পয়েন্টার বা একটি ঠিকানা বলা. এবং বাস্তবিকই, একটি টিজার জন্য কি এগিয়ে মিথ্যা থেকে এই 20 সেকেন্ড ক্লিপ আমাদের স্ট্যানফোর্ড এ বন্ধু নিক Parlante যারা বেশ কিছু সময় আগে, ব্যয় সময় একটি হাস্যকর পরিমাণ, সেরা হিসেবে আমি বলতে পারেন তার রান্নাঘর বা তার বুনিয়াদ, claymation উপার্জন বিশ্বের প্রবর্তন নামে একটি চরিত্র একটি পোলট্রি খামারে Binky যাদের সাথে আমরা আছি পয়েন্টার পরবর্তী সময় প্রবর্তন করা. তাই এখানে আসা কি হল একটি প্রাকদর্শন. [ভিডিও প্লেব্যাক] -আরে, Binky অনলাইন. জাগো. এটা মজা করার জন্য পয়েন্টার সময়. -ওটা কী? পয়েন্টার সম্পর্কে জানুন? ওহ, বুড়ি. [END টি প্লেব্যাক] ডেভিড জে MALAN: এবং যে নোট উপর, আমরা বুধবার আপনাকে দেখতে হবে. ঠিক আছে. নাচ কে? চলে আসো. নাচ কে? তুমি আমাকে এটা শুরু করতে চান? আমি এটা শুরু করতে হবে. Woooo! Lauren: মিষ্টি অভিনব মূসা.