JASON HIRSCHHORN: স্বাগতম সপ্তাহে তিন, সবাই. আমরা একটি ব্যস্ত কিন্তু উত্তেজনাপূর্ণ আছে এগিয়ে আমাদের বিভাগে. সুতরাং প্রথম, আমরা কিছু করেছেন, কারণ অবশ্যই সঙ্গে অগ্রগতি কিন্তু আমরা এখনও শেখার অনেক আমি আছি, কি বাকি আছে আপনি না কিছু সম্পদ দেখাতে যাচ্ছে যে অবিশ্বাস্যভাবে হতে প্রমাণ করা উচিত আপনি কাছে না শুধুমাত্র সহায়ক হিসাবে আপনার সমস্যা সেট করে, কিন্তু সব হজম আমরা আপনার মধ্যে না দিতে উপাদান বক্তৃতা এবং হাফপ্যান্ট এবং বিভাগে. তারপর আমরা প্রথম 20 কাটাতে চলুন অধ্যায় ধরে যাচ্ছে 25 মিনিট আপনি বা নাও থাকতে পারে পারে GDB, এই সময়ে ব্যবহৃত, কিন্তু এটি একটি হল অবিশ্বাস্যভাবে সহায়ক হাতিয়ার যে করবে না আপনি আপনার প্রোগ্রাম ডিবাগ সাহায্য. আপনি অনেক মধ্যে printf, ব্যবহৃত হতে পারে চিত্র আপনার প্রোগ্রাম মাঝখানে একটি পরিবর্তনশীল equaled কি. GDB এমনকি printf, বেশী ভালো এবং হয় আপনার কোড স্ক্রু আপ না আপনি কারণ একটি এক্সিকিউটেবল ফাইল থেকে তা চালানো. তাই আমরা 10 সবচেয়ে সহায়ক উপর যাবেন আপনি GDB জন্য প্রয়োজন কমান্ড, এবং আমরা করছি একসঙ্গে তাই একটি ব্যায়াম উপর যেতে যাচ্ছে সমস্যা আপনি, তিনটি এবং তার পরেও সেট ডিবাগ সাহায্য করার জন্য GDB ব্যবহার করতে পারেন আপনার প্রোগ্রাম. এবং পরিশেষে, আমরা কিছু পুনরালোচনা চলুন আলগোরিদিম বাছাই ও অনুসন্ধান আপনি বক্তৃতায় দেখেছি, এবং আমরা যে আসলে কোড, শুধু যাচ্ছে pseudocode, কিন্তু কোড বাইনারি অনুসন্ধান, বুদ্বুদ সাজানোর, এবং নির্বাচন সাজানোর. সুতরাং প্রথম, আমি যেতে চান সম্পদের উপর. এই বিশাল তালিকা, এবং এটি আছে আমি অনেক ছিল, কারণ ছোট ফন্টের এখানে পরে দেখা. কিন্তু এই, আপনাকে সাহায্য করবে না শুধুমাত্র আবার, সমস্যা সেট দিয়ে এবং আপনি শিখেছি পরিপাকের তথ্য, কিন্তু স্পষ্টভাবে, ব্যঙ্গ সময়, এই হবে আসা অবিশ্বাস্যভাবে সহায়ক হতে. সুতরাং প্রথম, বক্তৃতা নোট. আপনি cs50.net/lectures গিয়ে থাকলে নির্দিষ্ট সপ্তাহে এবং দিন স্ক্রল, আপনি প্রতিটি জন্য নোট আছে দেখতে পাবেন সহজভাবে না, যা বক্তৃতা একটি প্রতিলিপি, কিন্তু এর সম্পাদিত সংস্করণ কোড সহ বক্তৃতায় আবৃত ছিল কি টুকরো এবং অন্যান্য সহায়ক টুকরো অংশ. আমি অত্যন্ত যারা ধরে যাচ্ছে সুপারিশ. এবং তারপর হিসাবে ভাল, সোর্স কোড আছে প্রতিটি বক্তৃতা থেকে নেওয়া হয়েছে. এবং আবার, এই স্লাইড এছাড়াও হবে cs50.net/sections অনলাইনে পাওয়া এই সন্ধ্যায়. তাই দ্বিতীয় হাফপ্যান্ট প্রতি সপ্তাহে যে কভার বিষয়, সাধারণত 5 থেকে 15 দৈর্ঘ্য মিনিট. এবং যারা আশা করছি আপনি একটি দিতে হবে বিভিন্ন বিষয়ের উপর মহান কার্তুজ. তৃতীয় - এবং এই ব্র্যান্ড নতুন এই হল বছর - study.cs50.net হয়. আপনি এটা চেক আউট না, আমি অত্যন্ত আপনি সেটা যে সুপারিশ. আপনি একটি বিষয় বাছাই পেতে. আমরা সেখানে নেভিগেশন বিষয়ের অত্যাধিক আছে. সুতরাং উদাহরণস্বরূপ, যদি আপনি কার্যাবলী বাছাই. এটা আপনি কিছু স্লাইড দেয় এবং ফাংশন উপর নোট. যারা আসলে স্লাইড যে টিএফএস সময় ব্যবহার করার পরামর্শ দেওয়া হয় আমাদের বিভাগে উপস্থাপনা. ডিল জন্য টিপস এবং ট্রিকস এর রয়েছে ফাংশন, এবং আছে সঙ্গে যে সাহায্য অনুশীলন সমস্যা আপনি ফাংশন সঙ্গে কাজ. আমরা স্বল্প নেভিগেশন আপনি লিঙ্ক দাও ফাংশন এবং বার যে ফাংশন বক্তৃতায় আসা পর্যন্ত. এই সুতরাং study.cs50.net, ব্র্যান্ড নতুন বছরের, একটি চমত্কার সম্পদ. এর পরে, আমি ম্যানুয়াল যা মানুষ আছে আপনি এ চালাতে পারেন যে কমান্ড কমান্ড লাইন. তাই আপনি যদি একটি সম্পর্কে কোনো প্রশ্ন থাকে তাহলে কমান্ড, যেমন, রান্ড, যা আমরা অধ্যায় সময় গত সপ্তাহে সম্মুখীন এবং আপনি সম্ভবত সম্মুখীন হয়েছে দিয়ে যাচ্ছিলেন যখন আপনার সমস্যা সেট কোড উৎপন্ন, কিন্তু আপনি মানুষ টাইপ হলে Rand, আপনি পাতা পাবেন যে Rand সম্পর্কে আপনাকে সব বলে. এটা, এটা লাগে কি আপনি দেয় এটি প্রদর্শিত পরামিতি, যেমন রিটার্ন টাইপ এবং একটি সংক্ষিপ্ত বিবরণ যে ফাংশন. সুতরাং Rand চেক আউট. এটা একটা সামান্য শব্দময় এবং বিভ্রান্তিকর হতে পারে তাই মাঝে মাঝে আমি যে খুঁজে কেবল আমি জানতে চাই কি হয় Googling উত্তর খুঁজে সবচেয়ে ভাল উপায়. তাই গুগল দিয়ে অনুশীলন. গুগল এ ভাল পান. এটা আপনার সেরা বন্ধু হয়ে যাবে. পাশাপাশি গুগল, আপনি তা খুঁজে পাচ্ছি না হলে গুগল, cs50.net/discuss, এটা আলোচনা মঞ্চ. আপনি একটি প্রশ্ন আছে সম্ভাবনা, এক আপনার 700 + + প্রার্থনার এছাড়াও আছে প্রশ্ন এবং জিজ্ঞাসা করা হতে পারে এটি ইতিমধ্যে আলোচনা মধ্যে ফোরাম এবং এটি উত্তর দেওয়া আছে. তাই আপনি যদি একটি সাধারণ প্রশ্ন বা আছে আপনি কি মনে করেন যে একটি প্রশ্ন আছে হয়তো অন্য মানুষের মধ্যে চালানো হতে পারে, cs50.net/discuss চেক আউট. অবশেষে, গত দুই, আপনি চান একটি বাস্তব মানুষের, অফিসে কথা বলতে শুক্রবার মাধ্যমে ঘন্টা সোমবার. অনলাইন অফিস এর রয়েছে এক্সটেনশন ছাত্রদের জন্য. , এবং শেষ কিন্তু অবশ্যই কমপক্ষে না আমার, বিস্ময়বোধক বিন্দু. আপনি আমার সব যোগাযোগ সংক্রান্ত তথ্য আছে. আপনি যদি কিছু প্রয়োজন হয়, অনুগ্রহ করে না আমার সাথে যোগাযোগ বিব্রত বোধ করবেন. সর্বদা এটা করতে দ্বিধা বোধ করবেন না. আপনাদের মধ্যে খুব কম সংখ্যক Gchat নেভিগেশন আমার যোগ, তাই, যে হতাশ হয়েছে কিন্তু আশা যে মধ্যে পরিবর্তন করব এই এবং পরের অধ্যায়. এ পর্যন্ত সম্পদের উপর কোন প্রশ্ন? গ্রেট. অবশেষে, অন্য প্লাগ জন্য মতামত, sayat.me/cs50. আপনি আমাকে বেনামী মতামত দিতে পারেন আমি করছি কিভাবে. গত সপ্তাহে যে সত্যিই সহায়ক ছিল. আমি আপনাকে বলছি থেকে মতামত একটি দম্পতি আছে ডান বিভাগে, প্লাস থেকে পরে এটা দেখেছেন যারা অন্য ছাত্র সপ্তাহ সময়, এবং এটি অবিশ্বাস্যভাবে সহায়ক ছিল. আমি চেষ্টা এবং আমার ব্যবহারের সীমা যাচ্ছি শব্দ ", মিষ্টি" কিন্তু আমি দেখাতে হবে আমার প্রবল আগ্রহ ও উত্তেজনা অন্য উপায়ে. কিন্তু অন্যান্য অতিরিক্ত ছিল বাস্তব করুন, pluses এবং ডেল্টা উভয়. সুতরাং, আমি আপনাকে বলছি মতামত দিন আপনার সমস্যা সেট উপর. আমার মতামত দিতে নির্দ্বিধায় আমার শিক্ষণ উপর. আমি আপনাকে বলছি জন্য এখানে নিলাম. গ্রেট. এটা কি আমি জন্য আছে সব হয় প্রথম অধ্যায়. কেহ কোনো আছে প্রশ্ন এতদূর? এবং আমি এর জন্য একটি নোট আছে নিয়ন্ত্রণ কেন্দ্র. এক্সটেনশন ছাত্র সম্পর্কে messaged করেছেন তারা কোনো অডিও না পেয়ে থাকেন, এই বলে কিন্তু যে ঠিক করা আমার ক্ষমতার বাইরে. তাই আশা করছি, যে পায় খুব শীঘ্রই এই সমস্যাগুলি সমাধান করা. আপনি অনলাইন পর্যবেক্ষক করছি, হাই, কিন্তু আপনি আমাকে শুনতে না পারে. সুতরাং প্রথম, আমরা যাচ্ছি GDB মধ্য দিয়ে যেতে. GDB, আমি তার আগে এ hinted হিসাবে, একটি ডিবাগিং টুল printf তুলনায় অনেক ভালো. সুতরাং যদি GDB, আপনি না দিয়ে শুরু আপনি আপনার প্রয়োগ খুলুন চাই এবং আমি আপনার ইমেল যে ফাইল গ্রহণ তার আগে - এই ফাইল এছাড়াও হবে কিছুক্ষনের মধ্যে উপলব্ধ অনলাইন - এবং GDB চালানো. / ফাইলের নাম. প্রথমত, অবশ্যই, আপনি কম্পাইল করা আছে GDB শুধুমাত্র উপর কাজ করে, কারণ দায়ের এক্সিকিউটেবল ফাইল. কিন্তু আপনি কি কখনো শুরু করতে চান তাহলে GDB, আপনি কি প্রথম জিনিস, আপনি GDB. / সিজার চালানো. সুতরাং যে আমরা করছি প্রোগ্রামের নাম মুহূর্তে এটি দিয়ে যেতে হবে. তাই আমি সিজার, না লিখতে যাচ্ছি যার আমাকে একটি এক্সিকিউটেবল ফাইল দিতে হবে এখানে সবুজ হাইলাইট. এবং তারপর আমি GDB. / সেজার চালানো যাচ্ছে না. এবং সেখানে আপনি যান. আপনি আমরা কিছু লেখা সম্পর্কে বলার আছে দেখুন আমার দেবার GDB সংস্করণ, সম্পর্কে তারপর কিছু ওয়ারেন্টি সংক্রান্ত তথ্য, এবং আমরা কেমন দেখায়, যা জিডিপি প্রম্পট, আছে আমাদের কমান্ড লাইন প্রম্পট মত, কিন্তু আপনি তা খোলা দেখুন paren, GDB, বন্ধ paren. আমরা এই ফাইলটি চালিয়ে এবং ডিবাগ আগে আমি আপনি সব পাঠানো যে, এর তাকান কিছু দরকারী কমান্ড তাই আমরা একটা ধারনা আছে কি আমরা আবরণ করতে যাচ্ছি. এই কমান্ড এখানে তালিকাভুক্ত করা হয় আমি সাধারণত তাদের ব্যবহার ক্রম যা. তাই আমি চলমান দ্বারা আমার প্রোগ্রাম শুরু প্রোগ্রামের GBD. / নাম, এই ক্ষেত্রে, সিজার. এবং তারপর প্রথম জিনিস আমি 99.9% না সময় ধরণ বিরতির মানে না. যে প্রধান একটি বিভাজক পয়েন্ট সেট করে. মূলত, আপনি সেখানে কি করছেন প্রোগ্রাম থামবে যাচ্ছে হয় প্রধান তাই আপনি এটি লাইন পরীক্ষা শুরু করতে পারেন লাইন দ্বারা, বরং সব চলমান তুলনায় উপায় মাধ্যমে. আপনি বিভিন্ন বিন্দুতে ভাঙ্গতে পারে আপনার কোড, কিন্তু প্রধান সাধারণত হয় একটি শুরু ভাল জায়গা. আমি চালানো পরের কমান্ডটি রান করে. যে প্রোগ্রাম আরম্ভ চলমান, এবং আপনি কমান্ড লাইনে প্রবেশ করতে হবে যদি আর্গুমেন্ট, আপনি তা যে কমান্ড চালানো. আর্গুমেন্ট সঙ্গে চালান. আমরা একটি সংস্করণ ধরে যাচ্ছে সুতরাং সাল প্রোগ্রাম আপনাকে বলছি যা সি, এর pset দুই জন্য লিখেছিলেন - এই এক, অবশ্যই, কিছু বাগ আছে আশা আমরা খুঁজে পাবেন যে এটি মধ্যে - আমরা কিছু কমান্ডের সাহায্যে চালান চালান চলুন লাইন আর্গুমেন্ট কারণ সিজার, আপনাকে বলছি সমস্যার প্রতি জানি বৈশিষ্ট সেট, কিছু লাগে কমান্ড লাইন আর্গুমেন্ট. কমান্ড পরবর্তী কয়েক পরবর্তী এক আসলে পরবর্তী বলা হয়. যে এক লাইন দ্বারা আপনি লাইন লাগে আপনার প্রোগ্রামের মাধ্যমে. তাই লিখুন তারপর এন আঘাত প্রদর্শিত পরের লাইন, নির্বাহ আগের লাইন. ধাপ প্রদর্শিত হয় না শুধুমাত্র পরের লাইন, কিন্তু এটি আপনি ভিতরে ফাংশন লাগে. তাই আপনি যদি একটি ফাংশন লেখা আছে আপনার কোড বা আপনি এক্সপ্লোর করতে চান তাহলে একটি আমি করতে, উদাহরণস্বরূপ, আপনি গুলি আঘাত, এবং পারেন বরং এর পরের লাইন যাচ্ছে আর আপনি সঠিক মাধ্যমে যাচ্ছেন যে ফাইল এখন, আপনি আসলে মধ্যে পদক্ষেপ নেব এই ফাংশন এবং এর কোড দেখতে. তালিকা বন্ধুত্বপূর্ণ খুব ব্যবহারকারী, আপনি দেখায় বিন্যাস, প্রায় 10 বা তাই লাইন আপনি বর্তমানে আপনার কোডে যেখানে তাই আপনি আসলে ফাইল দেখতে পারেন বরং ফিরে বিনিময় করা হচ্ছে এবং বেশী ঘোষণা বিভিন্ন মতামত মধ্যে. প্রিন্ট করুন printf, ভালো হয় তার নাম থেকেই বোঝা হিসাবে. যে একটি পরিবর্তনশীল সমান কি আপনি দেখায়. তথ্য স্থানীয়দের সত্যিই সহায়ক. এই মুদ্রণ একটি বিশেষ সংস্করণ. তথ্য স্থানীয়দের আপনি স্থানীয় সব দেখায় ভেরিয়েবল, আপনার জন্য তাদের অল আউট ছাপে বর্তমানে উপলব্ধ. তাই বরং থাকার চেয়ে সাধারণত আমি, আমি যে চারটি ভেরিয়েবল প্রিন্ট আউট আমি একটি লুপ জন্য, জন্য আছি যদি সম্পর্কে জানতে আগ্রহী উদাহরণস্বরূপ, আমি তথ্য স্থানীয় লিখুন, এবং এটি সম্পর্কে কি আমার পাল্টা আমি দেখাব আমি যে অ্যারের, যেমন সমান সমান কাজ. অবশেষে, অবিরত. বিরতির টাইপ আপনি স্টপ বিরতির সময়ে. আপনি দ্বারা লাইন ভিতর দিয়ে হেটে যেতে পারেন পরবর্তী এবং ধাপে সঙ্গে সঙ্গতিপূর্ণ. আপনার পরবর্তী রান প্রোগ্রামটি চালিয়ে বিন্দু বিরতি বা সমাপ্তির যদি না হওয়া পর্যন্ত কোন বিভাজক পয়েন্ট আছে. নিষ্ক্রিয় বিরতি পয়েন্ট সরিয়ে আপনি যদি প্রধান এ বিরতি ছিল সিদ্ধান্ত নিয়েছে অনুপযুক্ত, আপনি চান অন্য কোথাও এটি সেট. এবং পরিশেষে প্রশ্ন, প্রস্থান, GDB পায় আউট. তাই এই প্রোগ্রাম,. / সিজার, আমরা যাচ্ছি এই মুহূর্তে মাধ্যমে চেহারা এবং আমরা করতে খুঁজে GDB ব্যবহার করতে যাচ্ছি এই প্রোগ্রামে বাগ. আমি সঙ্গে শুরুর দিকে এই প্রোগ্রাম দৌড়ে 50 পরীক্ষা করে দেখুন, এবং আমি এক ভ্রূকুটি পেয়েছিলাম. সবকিছু এটা কম্পাইল, অস্তিত্ব, এটা পরীক্ষা অনেক পাস, কিন্তু জন্য কোন এক কারণে, এটা পঞ্চম পাস না মধ্যে BARFOO, সমস্ত ক্যাপ, বাঁক পরীক্ষা, ই ডি ইউ-আমি-r-কিছু r, সমস্ত ক্যাপ, একটি কি হিসাবে তিন ব্যবহার করে. আমি বেশ ঘনিষ্ঠ পেয়েছিলাম. আমি এক অক্ষর দ্বারা বন্ধ. তাই এখানে কিছু ছোট ভুল আছে. আমি আমার কোড মাধ্যমে লাগছিল করেছি. আমি এটা চিন্তা করতে পারেনি. আশা করছি, আপনি না আমাকে সাহায্য করতে পারেন এই বাগ হয় জিনিসটা কি. সুতরাং যে আমরা করছি ত্রুটি আছে জন্য অনুসন্ধান. এর GDB সরাতে যাক. আবার, আমি, GDB. / সিজার রান করেছি তাই এখন আমরা GDB মধ্যে আছেন. এবং প্রথম কি আমি কি উচিত জিনিস? আমি শুধু GDB প্রবেশ করেছি. কারো সম্পর্কে একটি ভালো দিতে প্রবেশ করার কমান্ড. ছাত্র: প্রধান বিরতি. JASON HIRSCHHORN: প্রধান বিরতি. কল্পনাপ্রসূত. ইন যে টাইপ যাক আপনি না এখানে আপ ঘড়ি বা অনুসরণ করতে পারেন আপনার কম্পিউটারে বরাবর. প্রধান বিরতি, এবং আপনি একটি দেখতে পাবেন বিরতির সময়ে সেট ছিল - এটি সম্পর্কে কিছু অদ্ভুত মেমরি ঠিকানা দেয়, এবং এটি আমার লাইন নম্বর দেয়. আমি এই ফাইল ফিরে ছিল, যদি আমি যে মূল বুঝতে হবে লাইন 21 উপর ঘটেছে. আমি পরের কি চালানো উচিত? আমার প্রোগ্রাম চলমান হয়? না. তাই আমি পরবর্তী কি চালানো উচিত? ছাত্র: চালান. JASON HIRSCHHORN: চালান. আমি শুধু চালান চালান, বা উচিত হবে আমি কিছু অন্যান্য বিষয়ের মধ্যে যোগ? ছাত্র: যুক্তি দিয়ে চালান. JASON HIRSCHHORN: সঙ্গে চালান কমান্ড আর্গুমেন্ট. এবং আমি একটি খুব নির্দিষ্ট ডিবাগিং করছি, যেহেতু কেস, আমি যে লিখতে হবে কমান্ড লাইন আর্গুমেন্ট. তাই আমি আবার,,, যা তিন রান করে নেব আমি চেক 50 থেকে পেয়েছিলাম আউটপুট. প্রোগ্রাম শুরু. আমরা লাইন দুয়েক দিয়ে যেতে. আপনি এখন আমরা লাইন 21 উপর না দেখতে পাবেন. আমি কিভাবে আমরা লাইন 21 করছি যে জানেন? কারণ আপনি বাঁদিকে চেহারা যদি আমার টার্মিনাল উইন্ডোর, সেখানে এটি লাইন 21 বলেছেন. এবং যে, আসলে, আমাকে দেয় লাইন 21 এ যে অবস্থান. তাই আমি তার আগে misspoke. প্রধান লাইন 21 এ আসলে হয় না. মুখ্য 21 উপরোক্ত লাইনের একটি দম্পতি. কিন্তু লাইন 21 এ, যে যেখানে আমরা ভঙ্গ করছেন. কোড এই লাইন আছে এখনো মৃত্যুদন্ড কার্যকর না. যে গুরুত্বপূর্ণ. আপনি দেখতে লাইন না আছে এখনো মৃত্যুদন্ড কার্যকর করা হয়েছে. যে কোড পরের লাইন আপনি চালানো চলেছেন. আপনি না হয় তাই পরের লাইন, সঙ্গে সম্ভবত পরিচিত, এই হল শর্ত আমি যদি দেখতে পরীক্ষণ একটি কমান্ড লাইন আর্গুমেন্ট প্রবেশ. এবং আমি একটি, দ্বিতীয় কি যে করছেন অংশ? একটি আমি কি? ছাত্র: একটি পূর্ণসংখ্যা এটি পরিবর্তন. JASON HIRSCHHORN: দুঃখিত? ছাত্র: এটা পরিবর্তন হচ্ছে একটি পূর্ণসংখ্যা করার যুক্তি. JASON HIRSCHHORN: তাই একটি আমি পরিবর্তন করতে ARG একটি পূর্ণসংখ্যা একটি পংক্তি থেকে v1. এবং তারপর এটা কি চেক করছেন? ছাত্র: একটি দ্বিতীয় আছে কমান্ড লাইন আর্গুমেন্ট সরাইয়া প্রোগ্রাম থেকে. JASON HIRSCHHORN: এবং কি এই দ্বিতীয়ার্ধে বুলিয়ান অভিব্যক্তি পরীক্ষা? এখানে উপর এই ভাগে, একটি আমি করতে? ছাত্র: এটা নেতিবাচক যদি. JASON HIRSCHHORN: নিশ্চিত কি মেকিং? ছাত্র: নিশ্চিত এটি মেকিং আসলে, ইতিবাচক, হয়. JASON HIRSCHHORN: যথাযথভাবে. এই এটা যদি দেখতে পরীক্ষণ করা হয় এটা নেতিবাচক হয় নেতিবাচক, এবং যদি আমি একটি বোধ পরের লাইন যথাসাধ্য আছে আমার ইউজার এ yelling করা. তাই আসুন এই লাইন চালানো শেষ আঘাত করা. আমরা যে লাইন দেখে না যে আপনাকে বলছি হয়তো এ yelling দেখতে বলে আশা ব্যবহারকারী এবং তারপর ফিরে, কারণ এই লাইন চালানো হয়নি. আমি 3 প্রবেশ. তাই আমি, আসলে, দুটি কমান্ড প্রবেশ করেননি লাইন আর্গুমেন্ট, এবং 3 হয় শূন্য থেকে বড়. সুতরাং আমরা যে লাইন দেখেছি, আমরা মৃত্যুদন্ড কার্যকর করা, কিন্তু আমরা একধাপ করা হয়নি যদি অবস্থার ভিতর. সুতরাং এখন, এর পরে, আমি সেটিং করছি দেখুন int-কি একটা আমি v1 ARG করার সমান. সুতরাং যে আমার একটি ভেরিয়েবল কি তৈরি হয়. তাই আমি এই মুহূর্তে কী প্রিন্ট আউট যদি কারণ যে আপনি দেখতে পারবেন মান পরিবর্তনশীল ভিতরে, কী 47 সমান. যে, অবশ্যই অদ্ভুত, কিন্তু আমি না, কারণ যে এখনো যে লাইন মৃত্যুদন্ড কার্যকর. আমি এন আঘাত যদি তাই এখন,, যে লাইন চালানো এবং প্রিন্ট কী করবেন, কী, 3 সমান হবে আমরা তা সমান আশা যা কি. তাই আবার, GDB, লাইন আপনি ইন আপনি যদি এখনো মৃত্যুদন্ড কার্যকর হয়নি দেখুন. আপনি এন বা গুলি বা একটি নম্বর আঘাত আছে আসলে অন্যান্য কমান্ডের যে লাইন চালানো. প্রিন্ট কী. 3 এ কি এর. এ পর্যন্ত সব ঠিকই আছে. স্ট্রিং প্লেইন টেক্সট হয়. এর যে লাইন চালানো যাক. আমি ব্যবহারকারী থেকে একটি পংক্তি পেয়ে করছি. এর আমার চেক 50 মধ্যে দেখতে দিন, আমি BARFOO সব ক্যাপ লিখুন, তাই যে আমি প্রবেশ করব কি. আমি এখন প্লেইন টেক্সট প্রিন্ট করুন. আপনি এটি একটি স্ট্রিং সমান দেখতে পাবেন. এটা আমার অন্যান্য কিছু অদ্ভুত হেক্সাডেসিমেল দেয় সংখ্যা, কিন্তু এটি মধ্যে আছে আসলে আমার স্ট্রিং BARFOO বলতে. আমি কি এ equaled তা ​​দেখতে চেয়েছিলেন এই বিন্দু, আমি কিভাবে কি চেক করতে পারেন? ছাত্র: প্রিন্ট কী. JASON HIRSCHHORN: প্রিন্ট কী, ঠিক. এবং প্রকৃতপক্ষে, একটি শর্টকাট আছে. আপনি মুদ্রণ লিখে ক্লান্ত পেতে, আপনি শুধু P টাইপ করতে পারেন. তাই পি কি একই সঠিক জিনিস আছে. এবং আবার, আমি এটা 3 সমান দেখুন. আমি কি কি উভয় জানতে চেয়েছিলেন এবং BARFOO একই সময়ে equaled কিন্তু আমি একে লিখে ক্লান্ত ছিল এক আউট পৃথকভাবে, আমি তথ্য স্থানীয়দের টাইপ করতে পারে. যে আমার কি সমান 3 আপনি. সাধারণ পাঠ BARFOO সমান. এটি আমার এই দুই অদ্ভুত জিনিষ দেয় শীর্ষে, এই পরিবর্তনশীল আমি এবং এই পরিবর্তনশীল এন. যারা আসলে বিদ্যমান হয় আমার মূল প্রোগ্রামে. আমরা এখনো তাদের সম্মুখীন হয়নি কিন্তু একটি প্রাকদর্শন হিসেবে, যারা আমার মধ্যে লুপ জন্য বিদ্যমান. তাই ঠিক এখন, তারা কিছু অদ্ভুত সমান সংখ্যায় তারা হয়েছে না কারণ এখনও সক্রিয়া, কিন্তু তারা এখনও বিদ্যমান না মেমরির মধ্যে, যাতে তারা শুধু সেট করছি কিছু আবর্জনা মান. কিন্তু আমরা প্লেইন কী দেখেন অধিকার আছে টেক্সট. তাই আমি এই লাইন চালানো যাচ্ছে না, লাইন 34, জন্য লুপ. আমরা মধ্যে ঘুরে যাচ্ছেন এন আঘাত দ্বারা লুপ জন্য. এবং আমরা লুপ জন্য ভিতরে করছি. আমরা আমাদের প্রথম চেক করেন. এবং আবার, এই ধরণের হওয়া উচিত এই একটি কারণ আপনি পরিচিত সিজার লিখিত ছিল যে প্রোগ্রাম, কিন্তু আবার, বাগ কিছু বাছাই আছে. আমি আছি, কারণ এবং এখন আমি, তথ্য স্থানীয়দের যদি লুপ জন্য যে ভিতরে, আপনি দেখতে পাবেন আমরা আশা হিসাবে আমি শূন্য সমান যে. যে আমরা এটি সেট এবং সক্রিয়া কি এটি লুপ জন্য এ যাও. এন 6 সমান. আমরা সেট কারণে যে এছাড়াও জ্ঞান করে তোলে প্লেইন টেক্সট এর strlen এটি. তাই আমি তথ্য স্থানীয় বা প্রিন্ট করতে চান পরিবর্তনশীল প্রায়ই নিশ্চিত যে করা সবকিছু সবসময় কি আমি এটা সমান আশা. এই ক্ষেত্রে, সবকিছু আমি এটা সমান আশা কি. সুতরাং এর মাধ্যমে চলন্ত শুরু এই লুপ জন্য. আমি উপর আছি লাইনে লাইনে 36 হয়, যদি প্লেইন টেক্সট আমি একটি এবং প্লেইন চেয়ে অনেক বেশী লেখা আমি কম অথবা z সমান. আমি আমার সমস্যা আমার প্রথম সাথে না জানি চিঠি, এটা দ্বিতীয় চিঠি দিয়ে এর. আমরা চেক ফিরে যদি 50, বি ই জরিমানা যায়. আমি একটি গ্রহণ এবং হিসাবে এটি যাব করছি একটি এ, ডি সুতরাং এটি পরিবর্তন না কিছু ভুল দ্বিতীয় চিঠি. তাই আমি সরাতে যাচ্ছি সেখানে একটি দ্বিতীয়. কিন্তু আমি কি প্লেইন পরীক্ষা করতে থাকেন, তাহলে লেখা আমি এই বিশেষ equaled ক্ষেত্রে, আমি এটা কি হওয়া উচিত মনে করেন? প্লেইন টেক্সট আমি এই মধ্যে সমান উচিত লুপ জন্য মধ্য দিয়ে প্রথম রাউন্ড? ছাত্র: জিরো? JASON HIRSCHHORN: আমি এর সাধারণ পাঠ? সুতরাং, আমি অবশ্যই মূলধন বি হওয়া উচিত শূন্য সমান, কিন্তু প্লেইন টেক্সট বন্ধনী শূন্য বদ্ধ বন্ধনী বি সমান কারণ স্ট্রিং, আমরা গত সপ্তাহে দেখেছি, অ্যারে হয়, তাই আমরা পেয়ে থাকেন যে থেকে প্রথম অক্ষর. তাই আবার, আমি এর প্লেইন টেক্সট প্রিন্ট হলে আমি, আমি, আসলে, চরিত্র পেতে পারি বি এবং যে অধিকার, ঝরঝরে আছে? আমি আসলে প্লেইন টেক্সট আই হবে না যে আমি সেট ভেরিয়েবল এক নয় বা সক্রিয়া, কিন্তু আপনি প্রিন্ট করতে পারেন একটা পুরো হোস্ট আউট আপনি যদি চান. কিন্তু এর মাধ্যমে সরানো যাক. প্লেইন টেক্সট আমি একটি চেয়ে অনেক বেশী এবং যদি প্লেইন টেক্সট আমি কম বা সমান আমরা কারণ টু Z, যে পরিষ্কারভাবে সত্য আমি চালানো যাচ্ছে না একটি মূলধন বি এটা কিছু কমান্ড. আমরা গত সপ্তাহে যে গণিত দেখেছি, তাই আমরা করব এটি কাজ করে যে নিশ্চিতভাবে ধরে তা গ্রহণ ডান 50 চেক করুন অনুযায়ী. এই কোঁকড়া ধনুর্বন্ধনী, প্রথম এক আমি যদি থেকে প্রস্থান ছিল দেখিয়েছেন যে, শর্ত, দ্বিতীয় এক দেখিয়েছেন আমি লুপ জন্য থেকে প্রস্থান করছি. আমি পরবর্তী আঘাত এবং তাই এখন, আমরা দেখতে পাবেন আমরা আবার লুপ জন্য পিছে করছি. আমরা মধ্য দিয়ে যাচ্ছেন আবার লুপ জন্য. এর আসলে দ্বিতীয় মধ্যে পইঠা যাক লুপ এবং ধরণ জন্য এর পুনরাবৃত্তির তথ্য স্থানীয়দের. তাই আমরা দ্বিতীয় পুনরাবৃত্তির মধ্যে আছেন আমাদের জন্য লুপ. আমি মনে করি আমরা আশা যা, 1 সমান. উঃ আমরা আশা, যা 6 সমান. বিশেষ বিশেষ আমরা আশা যা, 3 সমান. এবং প্লেইন টেক্সট, আপনি দেখতে পাবেন, সমান EARFOO এখন, আর BARFOO না কারণ আমাদের পূর্ববর্তী পুনরাবৃত্তির মধ্যে, বি ছিল একটি মূলধন ই পরিবর্তিত তাই আমরা চলেছেন সমস্যা সম্মুখীন, এই এত আমরা চলুন যেখানে হয় ডিবাগ মধ্যে আকর্ষণীয়. কিন্তু কারো কোন প্রশ্ন আছে আমরা এ পর্যন্ত সম্পন্ন করেছি কি? কল্পনাপ্রসূত. তাই আমরা যদি এই চালানো চলেছেন শর্ত, আমি বদ্ধ প্লেইন টেক্সট বন্ধনী বন্ধনী একটি চেয়ে অনেক বেশী এবং প্লেইন টেক্সট আমি কম বা জেড সমান কিন্তু আগে এই হল, কারণ আমি যে ঢোকা যেখানে আমি নির্দেশ করতে চান, আমার ত্রুটি জানি আই এর প্লেইন টেক্সট আউট তাই এর প্রিন্ট আউট করা যাক. এটি চরিত্রের একটি সমান করে, যাতে এ পর্যন্ত, সব ভাল এবং ভাল মনে হয়. তাই আমি আমার যুক্তি প্রতি এই লাইন আশা এই লাইন সত্য হওয়া উচিত. এটা একটি বড় হাতের অক্ষর না. আমি এন আঘাত কিন্তু, যদি আমরা বুঝতে পারি যে এই লাইন, আসলে, চালানো হয়নি. আমি অন্য করতে হলে নিচে jumped. কেন যে ঘটেছে? ছাত্র: আপনি কারণ আপনার অবস্থা প্লেইন টেক্সট এর বেশী একটি, না সমান বা তার চেয়ে অনেক বেশী বেশী. JASON HIRSCHHORN: তাই আমি আমার প্লেইন টেক্সট ছিল আমি এ, বৃহত্তর না তার চেয়ে অনেক বেশী বেশী বা সমান. সুতরাং স্পষ্ট, মূলধন না অবস্থা যদি এই ট্রিগার, এবং আমরা করেছিলাম তা পইঠা, এবং আমরা কি না প্রয়োজনীয় স্থানান্তর করবেন না. সুতরাং যে আসলে এটি. আমি আমার বাগ মূর্ত আউট. আমি আমার সোর্স ফাইলে ফিরে যেতে পারে, এটি পরিবর্তন, এবং এটি আপডেট আবার 50 পরীক্ষা চালানো. কিন্তু আমরা শুধু শিক্ষাবিজ্ঞান এর জন্য, দেখতে পাবেন দোহাই, আমি বর্তা হবে. অন্যথায় যদি হয় চালানো, কিন্তু এই নয় কি পরিবর্তে সমান কমান্ড যে পরিবর্তিত না হয়. সুতরাং এ সব পরিবর্তন, এবং না যদি আমি এখানে প্লেইন টেক্সট প্রিন্ট, আমরা যাচ্ছি দেখতে পাবেন যে মাধ্যমে লুপ জন্য, আসলে, না এ সব যে দ্বিতীয় চরিত্র পরিবর্তন. এটা এখনও একটি মূলধন এ এর তাই আবার, আমরা আমাদের ত্রুটি debugged. আমরা সেখানে ছিল বুঝলাম যে অনুপস্থিত কিছু যুক্তি. এবং আমরা আগে এগিয়ে সময় এটি debugged আসলে যে লাইন নির্বাহ, কিন্তু আপনি লক্ষ্য করে ছিল আমরা শুধু পরবর্তী আঘাত এবং যে যদি অন্য ঝাঁপ, এর মানে হল যে যে যদি শর্তটি সত্য ছিল না. আমরা, আসলে, পান নি ফলে আমরা আশা. আমি তখন আমরা আন্তরিকভাবে পারে হয়েছে, ছিল আমরা তাকান, তাই চতুর হয়েছে না যে, শর্ত এবং বস্তুত, যদি পরীক্ষা হলে আমাদের অবস্থা নির্ণয় করা উচিত বর্তমান প্রেক্ষাপটে সত্য. যে এই প্রোগ্রাম ডিবাগ জন্য সব. কেহ কোন প্রশ্ন আছে? আমি GDB প্রস্থান করার জন্য কি কি কমান্ড আঘাত করতে পারে? প্র: এবং তারপর আমি অনুরোধ করব, যাইহোক প্রস্থান? কোন বা হ্যাঁ. আমি হ্যাঁ আঘাত করব, এবং আমি GDB অব্যাহতিপ্রাপ্ত আছে করব. সুতরাং যে GDB একটি দ্রুত কার্তুজ ছিল. বাস্তবিক, একটি বাস্তব দৃশ্যকল্প ইন, আমি অফিস এ এই কি. আমি এই সঠিক প্রোগ্রাম এ GDBed একটি ছাত্র সঙ্গে অফিসে ঘন্টা. এবং আমরা আমরা দেখেছি কমান্ড ফিরে যান আগে, আমরা প্রথমত, বিরতি প্রধান ব্যবহার জিনিস আমরা কি. আমরা কমান্ড লাইন আর্গুমেন্ট সঙ্গে চালানোর ব্যবহৃত, দ্বিতীয় ব্যাপার হল আমরা কি. আমরা অগ্রসর পরের অনেক ব্যবহার লাইনের মাধ্যমে আমাদের. এবং আবার, সংক্ষিপ্ত সংস্করণ পরবর্তী এন হয়. যে প্রথম বন্ধনী আছে স্লাইডে ধূসর. আমরা ধাপে ব্যবহার করা হয়নি, কিন্তু আমরা না অগত্যা এই ক্ষেত্রে জন্য প্রয়োজন. কিন্তু আমরা পরে কিছুক্ষনের মধ্যে এটি ব্যবহার করতে পারেন আজ আমরা ডিবাগ করা হয়, জন্য উদাহরণস্বরূপ, বাইনারি অনুসন্ধান যখন বাইনারি সার্চ একটি পৃথক মধ্যে বলা হয় ফাংশন কিন্তু আছে এটা দিয়ে কিছু ত্রুটি. আমরা মধ্যে পইঠা চান চলুন বাইনারি অনুসন্ধান থেকে কল এবং আসলে এটি ডিবাগ. আমরা ছিল, কারণ আমরা উভয় ব্যবহার করেননি তালিকা আমাদের কোড একটি ভাল ধারনা, কিন্তু যদি আমি কি কোড আমি একটা ধারনা পেতে চান নি চারপাশে ছিল, আমি শুধু তালিকা ব্যবহার করতে পারেন. আমরা, আমরা ব্যবহৃত তথ্য স্থানীয়দের ব্যবহৃত মুদ্রণ করুন. আমরা এই ব্যবহার করার প্রয়োজন ছিল না চালিয়ে কেস, তন্ন তন্ন আমরা ব্যবহার করতে হবে কি নিষ্ক্রিয়, কিন্তু আমরা কি ব্যবহার করে প্রস্থান করার. আবার, এই 10 কমান্ড, তাদের অভ্যাস. আপনি এই 10 কমান্ড বুঝতে হলে, যদি আপনার কোনো ডিবাগ জন্য নির্ধারণ করা উচিত GDB সঙ্গে ইস্যু. সুতরাং আমরা করতে, আবার, যেতে চলেছেন অধ্যায় মূল অংশ আজ, উপর যাচ্ছে এই বাছাই ও অনুসন্ধান আলগোরিদিম. আমরা এই কাজের আগে, আবার, কোন প্রশ্ন, GDB জন্য মতামত, উদ্বেগ? তাই সবাই ব্যবহার করতে যাচ্ছে GDB বদলে printf? চিরস্থায়ী দোহাই জন্য তাই সবাই,, সবাই তাদের মাথা ঠিক অল্প সময়ের হয় এখন, তাই আমি অফিস এ আপনি দেখতে পাবেন এবং সব টিএফএস আপনি এবং দেখতে হবে তারা কিভাবে ব্যবহার করার জন্য আমাকে দেখান, বলবো GDB, এবং আপনি পারবেন অধিকার, তাদের দেখানোর জন্য! কাইন্ড? হয়তো আশা. কুল. সুতরাং আমরা সরাতে চলুন বাছাই ও অনুসন্ধান. আপনি আমি ইতিমধ্যে অনুসারে সাজানো তালিকা আছে দেখতে পাবেন আমাদের, কিন্তু যে যাচ্ছে না জন্য সর্বদা কেস হবে. সুতরাং সমস্যা জন্য স্পেসিফিকেশন সেট সমস্যা তিন সেট, আপনি হাফপ্যান্ট আছে আপনি আসলে এটি পাহারা, এবং পারেন যে যারা হাফপ্যান্ট ঘড়ি অনুরোধ জানাবে. এছাড়াও বক্তৃতায় গত সপ্তাহে, আমরা উপর গিয়েছিলাম এই আলগোরিদিম অনেক, তাই আমি আছি যাচ্ছে বর্গ সময় ব্যয় করা যাচ্ছে না এই আবার আলগোরিদিম বা অঙ্কন উপর কিভাবে এই জন্য ছবি অ্যালগোরিদম কাজ. আবার, যদি আপনি পুনরায় দেখতে পারেন যে তথ্য বক্তৃতা, বা যে তথ্য হাফপ্যান্ট উপর লক্ষণীয়ভাবে বন্দী হয় এই অনুসন্ধান, সব জন্য cs50.net এ উপলব্ধ যা. সুতরাং পরিবর্তে, আমরা কি করতে যাচ্ছেন কি এই প্রোগ্রাম লিখতে হয়. আমরা কিভাবে একটি মানসিক মডেল, একটা ধারনা আছে তারা কাজ, এবং তাই কি আমরা চলুন কি বাস্তব জন্য তাদের কোড. আমরা যে মানসিক মডেল চালু করতে যাচ্ছেন, যে ছবি, যদি আপনি হবে, মধ্যে প্রকৃত অবস্থান. এবং যদি আপনি একটু বিভ্রান্ত বা ছিল মানসিক মডেল অস্পষ্ট, আমি সম্পূর্ণই বুঝতে. আমরা আসলে করছি যাচ্ছে না কোড বয়সী ঝাঁপ. এই স্লাইড এই প্রম্পট জিজ্ঞেস করে যখন তখন আপনি বাইনারি অনুসন্ধান কোড, এবং করতে আসলে, একটি পুনরাবৃত্ত সংস্করণের বাইনারি অনুসন্ধান, প্রথম জিনিস আমি সত্যিই আপনাকে যা করতে হয় চান কিছু pseudocode লিখুন. তাই আপনি যদি এই মানসিক মডেল আছে এর কিভাবে বাইনারি অনুসন্ধান কাজ. আপনি যদি কাগজ একটি চাদর খুঁজে নিন এক সহজেই পাওয়া, বা খুলুন একটি টেক্সট এডিটর, এবং আমি চাই লিখতে সবাই. লিখতে চার মিনিট নিন বাইনারি অনুসন্ধান জন্য pseudocode. আবার, যে মানসিক মডেল সম্পর্কে চিন্তা. যদি আপনার কোন প্রশ্ন থাকে তাহলে আমি প্রায় আসবো এবং আমরা ছবি আউট আহরণ করতে পারে. কিন্তু প্রথম, আমরা প্রোগ্রামিং শুরু করার আগে, আমি লিখতে চাই বাইনারি অনুসন্ধান জন্য pseudocode তাই যখন আমরা মধ্যে ডুব, আমরা কিছু দিক আছে আমরা আগাইয়া উচিত যেখানে আপনি. ছাত্র: আমরা অ্যারে অনুমান করতে পারি আমরা পেতে মান ইতিমধ্যে সাজানো হয়? JASON HIRSCHHORN: তাই বাইনারি অনুসন্ধান জন্য কাজ - চমৎকার প্রশ্ন - আপনি একটি সাজানো গ্রহণ করতে হবে মান অ্যারে. সুতরাং এটি কাজ করবে নিই. আমরা ফিরে এই স্লাইডে যাবেন. আপনি রক্তবর্ণ রূপে দেখতে পাবেন ঘোষণা bool binary_search int-হয় মান, int-মান, int-এন. আপনি করেছেন তা এই পরিচিত হওয়া উচিত ইতিমধ্যে তটস্থ বা অর্জিত আপনার সমস্যা সেট দিয়ে নোংরা হাত. কিন্তু যে আপনার ফাংশন ঘোষণা করে. আবার, সম্পর্কে চিন্তা করতে হবে না হবে এই মুহূর্তে যে অনেক. আমি কি সত্যিই আপনি কাজ করতে চান নিতে হয় pseudocode বাইনারি করতে চার মিনিট অনুসন্ধান, এবং তারপর আমরা যাবেন একটি গ্রুপ হিসাবে যে ধরে. এবং আমি প্রায় আসতে হবে. যদি আপনার কোন প্রশ্ন থাকে, তাহলে বোধ আপনার হাত বাড়াতে বিনামূল্যে. কেন আপনি আরো দুটি মিনিট সময় লাগতে না pseudocode আপ শেষ? আমি এই যে হাস্যকর মনে হতে পারে জানি আমরা এত সময় খরচ করছেন এমনকি আসলে না এমন কিছু বিষয় সি, কিন্তু বিশেষ করে এই জন্য আরো চ্যালেঞ্জিং আলগোরিদিম এবং সমস্যা আমরা চিন্তা করা আছে সেট, pseudocode উদ্বেজক না শুরু বাক্য গঠন সম্পর্কে, প্রায় উদ্বেজক যুক্তিবিজ্ঞান, অবিশ্বাস্যভাবে সহায়ক. এবং এই ভাবে, আপনি দুটি সমাধান করছি না একযোগে অবিশ্বাস্যভাবে কঠিন সমস্যা. আপনি শুধু যুক্তিবিজ্ঞান উপর মনোযোগ নিবদ্ধ করে, এবং করছি তাহলে আপনি বাক্য গঠন সরাতে. ঠিক আছে. এর মধ্যে দিয়ে যাচ্ছিলেন শুরু করা যাক pseudocode. আমি বাইনারি, এখানে আপ লিখিত আছে সার্চ pseudocode. আমরা এই লিখতে হবে একসাথে বোর্ড. অথবা আমি এটা লিখতে হবে এবং আপনাকে দেব আমার আমি প্রয়োজন অনুরোধ জানানো. তাই কেহ আমাকে প্রথমে দিতে পারেন pseudocode লাইন আপনি বাইনারি অনুসন্ধান জন্য লিখেছিলেন? হ্যাঁ, অ্যানি? ছাত্র: যদিও দৈর্ঘ্যের তালিকার শূন্য চেয়ে অনেক বেশী. JASON HIRSCHHORN: যদিও দৈর্ঘ্য শূন্য থেকে বড় তার তালিকা দেখাবে. এবং আবার, আমরা কিছু সি সুদর্শন দেখুন এখানে সিনট্যাক্স জিনিস. কিন্তু এই অধিকাংশ ইংরেজিতে হয়. কেহ তারা লাগাতে কোন লাইন আছে কি তাদের ছদ্ম - কোড এই আগে? ছাত্র: একটি অ্যারের পান সংখ্যা সাজানো. JASON HIRSCHHORN: আপনি লিখেছেন "একটি পেতে সাজানো সংখ্যার অ্যারে. "প্রতি ফাংশন ঘোষণা, আমরা ক্ষণস্থায়ী হবে সাজানো সংখ্যার একটি অ্যারে. ছাত্র: [শ্রবণাতীত]. JASON HIRSCHHORN: তাই আমরা যে করতে হবে. কিন্তু হ্যাঁ, আমরা, যে কি না যদি আমরা আমাদের অ্যারের বাছাই করতে হবে সংখ্যা, কারণ বাইনারি অনুসন্ধান শুধুমাত্র সাজানো অ্যারে কাজ করে. তালিকার দৈর্ঘ্য শূন্য সমান সুতরাং, যখন আমি আছি কিছু কোঁকড়া ধনুর্বন্ধনী রাখা যাচ্ছে এটি একটি সামান্য বিট আরও মত বানাতে সি কিন্তু, যখন একটি সম্মুখের ম্যাপ বলে মনে হয় লুপ যখন, তাই এই সময় ভিতরে লুপ কি আমরা প্রয়োজন বাইনারি অনুসন্ধান জন্য কি? আমাকে একটি দেওয়া না যিনি অন্য কেউ এখনো উত্তর কিন্তু যারা এই লিখেছে? ছাত্র: তালিকা মাঝখানে যান. JASON HIRSCHHORN: টম. তালিকা মাঝখানে যান. আর পরবর্তী প্রশ্ন, কি আমরা এ করছি একবার আমরা কি করবেন তালিকা মাঝখানে? ছাত্র: যে কিনা একটি চেক করবেন আপনি যা খুঁজছেন সংখ্যা. JASON HIRSCHHORN: অসাধারণ. তালিকা মাঝখানে যান এবং পরীক্ষা আমাদের মূল্য আছে যদি - কল্পনাপ্রসূত. কেহ অন্য কিছু আছে কি যে এই চেয়ে ভিন্ন ছিল? যে ঠিক ঠিক. আমরা বাইনারি অনুসন্ধান কি প্রথম জিনিস তালিকা মাঝখানে গিয়ে হয় আমাদের মান আছে কিনা দেখতে পরীক্ষা করুন. আমাদের মান যদি তাই আমি অনুমান , আমরা কি আছে করব? ছাত্র: আমরা [শ্রবণাতীত] শূন্য ফিরে. JASON HIRSCHHORN: হ্যাঁ, যদি আমাদের মূল্য আছে, আমরা তা খুঁজে পাওয়া যায়নি. তাই আমরা তবে, কিছু উপায় বলতে পারেন এই ফাংশন সংজ্ঞায়িত করা হয়, আমরা ব্যবহারকারী বলুন আমরা তা খুঁজে পাওয়া যায়নি. এটা আছে না, যদিও, যে এই চতুর পায় কোথায়. সুতরাং এটি আছে না, যদি কারো কাদের বাইনারি অনুসন্ধান বা কাজ ছিল এখন, আমরা কি একটি ধারণা করবেন হয়েছে? ছাত্র: প্রশ্ন. JASON HIRSCHHORN: হ্যাঁ? ছাত্র: অ্যারের ইতিমধ্যেই সাজানো হয়? JASON HIRSCHHORN: হ্যাঁ, আমরা অভিমানী করছি অ্যারের ইতিমধ্যেই সাজানো হয়. ছাত্র: আমি তখন আপনি চেক আছে যদি আপনি দেখতে যে মূল্য তার চেয়ে অনেক বেশী আপনি চান যে মান, আপনি স্থানান্তর করতে পারেন অন্যান্য অর্ধেক মাঝখানে থেকে. JASON HIRSCHHORN: তাই যদি মাঝখানে তালিকা আমরা কি তার চেয়ে অনেক বেশী কি জন্য তাহলে আমরা কি খুঁজছেন? আমরা যেখানে সরাতে? ছাত্র: আপনি যেতে চান সঙ্গে তালিকার অর্ধেকের যে কম নম্বর. JASON HIRSCHHORN: সুতরাং আমরা করব বাঁদিকের যে কল. মধ্যম বেশী সুতরাং, যদি আমরা অনুসন্ধান করতে পারেন তালিকার বাকি অর্ধেক. এবং তারপর অনুসন্ধান করে, কি আমি সার্চ করে বোঝাতে চেয়েছেন? ছাত্র: [শ্রবণাতীত]. JASON HIRSCHHORN: আমরা মধ্যম যান. আমরা আসলে এই জিনিস পুনরাবৃত্তি. আমরা আমাদের সময় লুপ দিয়ে ফিরে যান. আমি আপনার গত এক দেব - যদি অন্য, মাঝখানে কি কম আমরা, আমরা এখানে কি করবেন না? ছাত্র: ডানে যান. JASON HIRSCHHORN: ডান অনুসন্ধান করুন. এই দেখতেও ভালো, কিন্তু কেহ আছে আমরা নিখোঁজ বা হতে পারে যে কিছু আপনাকে করা যে অন্য কিছু আপনার ছদ্ম - কোড মধ্যে? তাই এই আমরা এ পর্যন্ত কি হয়. তালিকার দৈর্ঘ্য বেশী যদিও শূন্য তুলনায়, আমরা যেতে চলুন তালিকা মাঝখানে এবং করতে আমাদের মূল্য আছে কিনা. মধ্যম বেশী, আমরা চলুন মাঝখানে যদি অনুসন্ধান অন্য, বাকি কম, আমরা সঠিক অনুসন্ধান চলুন. তাই আমরা সব কিছু ঘনিষ্ঠতা ছিল করেছি আমরা কম্পিউটার বিজ্ঞান মধ্যে ব্যবহার শর্তাবলী এবং টুলস আমরা আছে. তবে আপনি যদি ইতিমধ্যে আমরা ছিল বিজ্ঞপ্তি পাবেন ইংরেজি বলতে, কিন্তু আমরা পাওয়া একটি উপর ম্যাপ করলো যে জিনিস অনেক আমরা আমাদের কোডিং টুল কিট মধ্যে আছে টুলস. তাই ডান ব্যাট বন্ধ, আমরা পারব না আসলে এখনও কোড যাচ্ছে. আমরা ইংরেজিতে এখানে কি দেখেন যে মানচিত্র বিষয়ের উপর আমরা সি লিখতে পারেন? ছাত্র: যদিও. JASON HIRSCHHORN: যদিও. তাই এই সময় এখানে ডান কি নেভিগেশন মানচিত্র? ছাত্র: যখন একটি লুপ. JASON HIRSCHHORN: যখন একটি লুপ? অথবা সম্ভবত, আরো সাধারণভাবে, একটি লুপ. আমরা বহুবার কিছু করতে চান. সুতরাং আমরা একটি লুপ কোড চলুন. আমরা সম্পন্ন করেছি এবং কারণ আমরা ইতিমধ্যে জানি এই একটি বার দম্পতি এবং আমরা , আউট আছে উদাহরণ প্রচুর আছে কিভাবে আসলে লিখতে একটি লুপ জন্য এই সূচী. সুতরাং যে প্রশংসনীয় সহজ হওয়া উচিত. আমরা যে পেতে সক্ষম হওয়া উচিত প্রশংসনীয় দ্রুত শুরু. আর কি আমরা এখানে দেখতে? আর কি কি কাঠামোর syntaxes, জিনিষ আমরা সি সাথে পরিচিত যে, আমরা কি ইতিমধ্যে ভিত্তিক একটা ধারনা আছে আমরা ব্যবহৃত শব্দের বন্ধ? হ্যাঁ, আন্না? [শ্রবণাতীত] শুধু নিশ্চয়ই মজা. আন্না, এগিয়ে যান. ছাত্র: যদি এবং অন্য. JASON HIRSCHHORN: যদি এবং অন্য - অধিকার এখানে. তাই যারা অনুরূপ হয়? ছাত্র: একটি অন্য বিবৃতি যদি. JASON HIRSCHHORN: হ্যাঁ, শর্ত, ডান? তাই আমরা সম্ভবত করতে হবে কিছু শর্ত লিখুন. এবং আবার, যদিও হয়তো এ বিভ্রান্তিকর প্রথমত, আমরা সাধারণত এখন একটা ধারনা আছে শর্ত এবং লিখতে কিভাবে অবস্থার জন্য সিনট্যাক্স. আমরা না করতে এবং যদি আমরা শুধু সন্ধান শর্ত, কাট এবং পেস্ট জন্য সিনট্যাক্স যে, আমরা আমরা জানি কারণ এখানে একটি শর্ত প্রয়োজন. আমরা সম্মুখের যে মানচিত্র দেখুন কোন অন্যান্য জিনিসের আমরা সি কি প্রয়োজন হতে পারে জিনিষ? হাঁ, Aleha? ছাত্র: এই, সুস্পষ্ট হতে পারে শুধু চেক করে যদি মূল্য কিছু সমান. JASON HIRSCHHORN: তাই কিভাবে আমরা চেক করবেন ও - তাই তালিকা মাঝখানে যান আমাদের মান আছে এবং যদি পরীক্ষা? আমরা যে সি কিভাবে করব? যে জন্য বাক্য গঠন কি? ছাত্র: সমান, সমান. JASON HIRSCHHORN: সমান, সমান. তাই এই চেক সম্ভবত যাচ্ছে একটি সমান করা, সমান. তাই আমরা আমরা যে কোথাও প্রয়োজন জানতে পারবেন. এবং প্রকৃতপক্ষে, এটা লিখিতভাবে, আমরা যারা অন্যান্য জিনিস দেখতে. আমরা কিছু যা করতে হবে চলুন তুলনা অপারেটরদের সেখানে - কল্পনাপ্রসূত. সুতরাং এটা আসলে ভালো করে এবং দেখায় বৃহৎ, আমরা লিখিত নি একটি এখনো সি কোড কালাম. কিন্তু আমরা নিচে মানসিক মডেল পেয়েছিলাম বক্তৃতা এবং যারা হাফপ্যান্ট মাধ্যমে. আমরা একটি গ্রুপ হিসাবে ছদ্ম - কোড লেখেন. এবং ইতিমধ্যে, আমরা 80% যদি না থাকে আমরা যা করতে হবে কি 90%. এখন, আমরা ঠিক কোড করতে হবে এটা আবার,, একটি যা হয় সমাধানের অ তুচ্ছ সমস্যা. কিন্তু অন্তত আমরা যুক্তি আটকে করছি. আমরা অফিসে ঘন্টা যান যখন এখন কমপক্ষে আমি আমি আমি প্রয়োজন কি জানেন, বলতে পারেন যা করতে, কিন্তু আপনি মনে করিয়ে দেয়া যাবে সিনট্যাক্স আমার? বা অফিসে ঘন্টা আপনি ভীড় হয়, এমনকি যদি বরং, সিনট্যাক্স জন্য Google পারেন লজিক আটকে হচ্ছে আর. এবং আবার, বরং সমাধানের চেষ্টা যুক্তিবিজ্ঞান এবং সিনট্যাক্স সমস্যা সব একযোগে, এটা প্রায়ই করতে অনেক ভালো মধ্যে ঐ দুটি কঠিন সমস্যা বিছিন্ন দুই সামলানো বেশী এবং কাজ সি ছদ্ম - কোড প্রথম এবং তারপর কোড সুতরাং এর জন্য কি আমি কি দেখতে দিন তাদের পুরস্কার কোড এগিয়ে সময়. তালিকার দৈর্ঘ্য বেশী যদিও শূন্য চেয়ে, মধ্যম তাকান তালিকার. নম্বর অন্য, সত্য ফিরে পাওয়া যদি সংখ্যা বেশি, অনুসন্ধান বাম হলে. অন্যথায় যদি সংখ্যা কম, অনুসন্ধান অধিকার, মিথ্যা ফিরে. সুতরাং যে প্রায় অভিন্ন দেখায় যদি না আমরা লিখেছেন তার সাথে প্রায় একই. বাস্তবিক, টম জন্য প্রথমে বলেন, তালিকার এবং যদি মাঝখানে ভঙ্গ দুটি বিবৃতি মধ্যে পাওয়া নম্বর আমি কি আসলে. আমি সেখানে তাদের মিলিত. আমি শোনার উচিত আপনি প্রথমবার. সুতরাং যে আমরা আছে ছদ্ম - কোড করা. আপনি এখন করতে চান, দুঃখিত, যান আমাদের প্রাথমিক সমস্যা ব্যাক. এর কোড binary.c যাক. সুতরাং একটি পুনরাবৃত্ত সংস্করণের বাস্তবায়ন নিম্নলিখিত ব্যবহার বাইনারি অনুসন্ধান ফাংশন ঘোষণা. এবং আপনি কপি করতে হবে না এটা দমন এখনও. আসলে আমি খুলতে যাচ্ছি আপ অধিকার এখানে binary.c. সুতরাং ফাংশন ঘোষণা আছে পর্দার মাঝখানে. এবং যদি আপনি আমি ছদ্ম - কোড নেন দেখতে পাবেন আমার পক্ষের কাছ থেকে, কিন্তু প্রায় অভিন্ন কি আমরা লিখেছে, এবং আপনার জন্য যে স্থাপন করা. সুতরাং এখন, এর পাঁচ মিনিট দেওয়া এই ফাংশন কোড দিতে. এবং আবার, যদি আপনার কোন প্রশ্ন থাকে তাহলে, আপনার হাত বাড়াতে, আমি করব, আমাকে জানাতে কাছাকাছি আসা. ছাত্র: [শ্রবণাতীত]. JASON HIRSCHHORN: তাই আমি বাইনারি গ্রহণ এ সার্চ সংজ্ঞা লাইন 12 তারিখে, শীর্ষে. যে আমি আমার স্লাইড জন্য পেয়েছেন কি. এবং তারপর সব এই ছদ্ম - কোড আমি কপি এবং স্লাইড থেকে আটকানো, ছদ্ম - কোড স্লাইড. এখনও আমি [শ্রবণাতীত] শ্রবণ করছি না. আপনি শেষ তাই যদি আপনার বাস্তবায়ন, আমি এটি পরীক্ষা করতে. আমি আপনাকে helpers.h ফাইল ইমেল আগে এই ক্লাসে. এবং এটা হিসাবে ভাল অনলাইন উপলব্ধ করা হবে পর্যবেক্ষক মানুষ ডাউনলোডের জন্য এই বিভাগের সময় বিলম্বিত. এবং আমি ঠিক জেনেরিক ডিস্ট্রিবিউশন ব্যবহার pset3 থেকে অবস্থান. তাই আমি find.C, আমার helpers.h ফাইলটি ব্যবহার করে নেন বরং helpers.h ফাইলের তুলনায় যে ডিস্ট্রিবিউশন কোড দেওয়া হচ্ছে. এবং আমি এক অন্য পরিবর্তন করা হয়েছে বরং শুধু শুধু কলিং তুলনায় find.C অনুসন্ধান, binary_search কল. সুতরাং আপনি আপনার কোড পরীক্ষা করতে চান, যে এটা কিভাবে জানি যে. আসলে, আমরা এই কোড চলমান করা হবে, যখন ঠিক এখন, আমি শুধু একটি কপি তৈরি আমার pset3 ডাইরেক্টরি আবার,, খুঁজে আনা তারপর সাহায্যকারী ফাইল এবং যে binary_search কল find.C মধ্যে পরিবর্তন বদলে কেবল অনুসন্ধান. JASON HIRSCHHORN: হ্যাঁ. আপনি একটি প্রশ্ন আছে? ছাত্র: কিছু মনে করবেন. JASON HIRSCHHORN: কোন উদ্বেগ. ভাল, এর শুরু করা যাক. আমরা একটি গ্রুপ হিসাবে এই কোড হবে. অন্য একটি নোট. আবার, এই, সহজে অদলবদল করা যাবে হয় সমস্যা সেট তিনটি জন্য. আমি আমার helpers.h ফাইল আছে যা, বরং helpers.h তুলনায় আমরা দেওয়া করছি, বাইনারি অনুসন্ধান, বুদ্বুদ ঘোষণা সাজানোর, এবং নির্বাচন সাজানোর. আর find.c আপনাকে লাইনে বিজ্ঞপ্তি পাবেন, কি লাইন 68, আমরা বাইনারি কল, যে হয় অনুসন্ধান বদলে অনুসন্ধান. তাই আবার, পাওয়া যায় যে কোড অনলাইন বা আপনি যে কোড এই মুহূর্তে তৈরি সহজেই অদলবদল করা যাবে জন্য এ পি এটি চেক 3 সেট. কিন্তু প্রথম, এর বাইনারি অনুসন্ধান কোড যাক. আমাদের ফাংশন ঘোষণা, আমরা একটি bool ফিরে. আমরা মান নামক একটি পূর্ণসংখ্যা নিতে. আমরা বলা পূর্ণসংখ্যার একটি অ্যারে গ্রহণ মান, এবং আমরা হতে এন নিতে অ্যারের আকার. অধিকার এখানে লাইন 10,, আমি আছে ধারালো stdbool.h অন্তর্ভুক্ত. যে আছে কেন কারো জানা আছে? সুতরাং কোড যে লাইন কি কাজ করে? ছাত্র: এটা আপনি করতে পারবেন একটি bool ফেরত টাইপ ব্যবহার. JASON HIRSCHHORN: যথাযথভাবে. ছাত্র: অথবা এটা পারবেন একটি লাইব্রেরি আছে একটি bool ফেরত টাইপ ব্যবহার করার জন্য. JASON HIRSCHHORN: তাই ধারালো অন্তর্ভুক্ত stdbool.h লাইন আমাকে কিছু দেয় জিনিসের জন্য সংজ্ঞা কেমিক্যালস এবং ঘোষণা আমি ব্যবহার করার অনুমতি দেওয়া করছি যে এই লাইব্রেরি. সুতরাং যাদের মধ্যে আছে যে বলছে না এই ধরনের bool বলা হয়, এবং এটা হতে পারে সত্য বা মিথ্যা. সুতরাং যে যে লাইন আছে কি. আমি যে লাইন আছে কি না এবং যদি আমি এই লেখার জন্য কষ্ট পেতে অধিকার এখানে, bool, অধিকার আছে শব্দ. ঠিক ঠিক. তাই আমি এই কোড যে প্রয়োজন. ঠিক আছে. তাই এই আবার,, একটি পুনরাবৃত্ত হয় সংস্করণ, না একটি recursive এক. তাই আমাদের শুরু করতে দিন. এর এই প্রথম দিয়ে শুরু করা যাক ছদ্ম কোড লাইন. আর আশা করছি, আমরা আছি - বা না আশা. আমরা রুম কাছাকাছি যেতে চলুন. আমরা পাতিপাতি যাবেন, এবং আমি সাহায্য করবে আপনি আমরা প্রয়োজন যে লাইনে চিন্তা প্রথম লিখতে. সুতরাং, যখন তালিকা দৈর্ঘ্যের শূন্য চেয়ে অনেক বেশী. এর সামনে শুরু করা যাক. কি লাইন আমি লিখতে হবে এখানে কোডের? ছাত্র: যদিও লঘুবন্ধনী এন হয় 0 থেকে. JASON HIRSCHHORN: যদিও এন 0 চেয়ে মহান. তাই এন, একটি তালিকা মাপ এবং আমরা যদি চেক করছি - [Interposing ভয়েসেস] JASON HIRSCHHORN: - দুঃখিত? ছাত্র: কিভাবে আমরা যে জানি এন তালিকার মাপ? JASON HIRSCHHORN: দুঃখিত. Pset স্পেসিফিকেশন প্রতি, অনুসন্ধান এবং সাজানোর, আপনি লিখতে প্রয়োজন ফাংশন এন তালিকার মাপ. আমি এখানে যে ব্যাখ্যা করতে ভুলে গেছি. কিন্তু হ্যাঁ. এন মাপ এই ক্ষেত্রে তালিকা,. সুতরাং যখন এন হয় 0 থেকে. ঠিক আছে. যে একটি বিট সমস্যাযুক্ত প্রমাণ হতে পারে যদিও জিনিষ যান. আমরা জানি চলতে থাকবে কারণ এই সারা তালিকার মাপ ফাংশন, কিন্তু আমরা চলতে শুরু বলে 5 পূর্ণসংখ্যার একটি অ্যারের সাথে. এবং আমরা মধ্য দিয়ে যেতে এবং আমরা করেছি এখন থেকে এটি ডাউন narrowed 2 পূর্ণসংখ্যার একটি অ্যারে. যে কোনটি 2 ইন্টিজার হয়? আকার আমরা চাই যে এখন 2 তাকান, কিন্তু যে যা 2 আছে? যে, যে প্রশ্ন জানার জন্য? ঠিক আছে. আমি আবার জিজ্ঞাসা করব. সুতরাং আমরা 5 এই অ্যারের সাথে চলতে শুরু ইন্টিজার, এবং এন অধিকার, 5 সমান? আমরা এখানে মাধ্যমে রান করব. আমরা সম্ভবত আকার পরিবর্তন করব, ডান, জিনিষ নেভিগেশন এড়িয়ে যেতে হবে. যা আমরা আমরা যেতে চাই বলে কি. আমরা অনুসন্ধান করতে চান না পুরো ব্যাপারটাই আবার. সুতরাং আমরা 2 থেকে এটি পরিবর্তন বলে. আমরা বিজোড় যে অর্ধেক তালিকা নিতে. তাই শুধু 2 বাছাই. তাই এখন এন 2 সমান. আমি দরিদ্র জন্য ক্ষমাপ্রার্থী শুষ্ক মুছে ফেলুন চিহ্নিতকারী. রাইট? এবং আমরা তালিকা মাধ্যমে অনুসন্ধান করছেন আবার আকার 2 একটি তালিকা. ওয়েল, আমাদের অ্যারের এখনও আকার 5 হাজার করে. আমরা আমরা কেবল চান বলে এটা 2 দাগ অনুসন্ধান. সুতরাং যারা যা 2 দাগ কি? যে জানার জন্য? তারা বাকি 2 দাগ কি? তারা অধিকার 2 দাগ কি? তারা মধ্যম 2 দাগ কি? আমরা সমস্যা ভাঙ্গা নিচে, কিন্তু আছে আমরা আসলে জানি না যা অংশ আমরা এখনও এ খুঁজছেন সমস্যা নেই, শুধু এই 2 ভেরিয়েবল না থাকার. সুতরাং আমরা, আরো তারপর অল্প প্রয়োজন এন হয় 0 থেকে যখন. আমরা জানতে হবে যে যেখানে এন আমাদের আসল অ্যারের মধ্যে হয়. তাই কেহ একটি আছে এই লাইন পরিবর্তন? এই লাইন অধিকাংশই হয় পুরোপুরি সঠিক. অন্য ছাড়াও আছে কি? আমরা করতে ঢ জন্য কিছু খুঁজে অদলবদল করতে পারেন একটু ভাল এই লাইন করতে? MM-এইচএম? ছাত্র: আপনি একটি পরিবর্তনশীল আরম্ভ করতে পারি তারপর ব্যবহার করা করব এন করার দৈর্ঘ্য মত পরে ফাংশন? JASON HIRSCHHORN: তাই আরম্ভ এন করার একটি পরিবর্তনশীল দৈর্ঘ্য, এবং আমরা যে পরে ব্যবহার? কিন্তু তারপর আমরা শুধু দৈর্ঘ্য এবং আমরা আপডেট এখনও এই সমস্যা পাতিত যেখানে আমরা আমাদের সমস্যা দৈর্ঘ্যের কমান, কিন্তু আমরা, আসলে, যেখানে কখনই জানতে যে দৈর্ঘ্য সম্মুখের মানচিত্র. ছাত্র: যে ঘটতে যাচ্ছে না আপনি বলছে পরে যখন বাকি, অনুসন্ধান ডান অনুসন্ধান? আপনি একটি ভিন্ন যেতে চলুন আপনার এলাকা - JASON HIRSCHHORN: আমরা যেতে চলুন একটি এলাকা থেকে, কিন্তু কিভাবে আমরা জানি যেতে যা কি? আমরা শুধুমাত্র অ্যারে এবং এই আছে এন, কিভাবে আমরা জানি যেখানে যাও অ্যারের মধ্যে যেতে. ফিরে ইন, হ্যাঁ? ছাত্র: আপনি আছে, যেমন, একটি নিম্ন আবদ্ধ এবং একটি ঊর্ধ্ব বাউন্ড ভেরিয়েবল বা যে ভালো কিছু? JASON HIRSCHHORN: ঠিক আছে. তাই এই আরেকটি ধারণা. বরং শুধু সম্পর্কে অবগত থাকার চেয়ে আকার, আমরা কম রাখা এবং উচ্চ পরিসর পরিবর্তনশীল. তাই কিভাবে আমরা থেকে আকার নিরূপণ করবেন একটি নিম্ন বাউন্ড এবং বাউন্ড উপরের? [Interposing ভয়েসেস] JASON HIRSCHHORN: বিয়োগ. এবং এছাড়াও কম সম্পর্কে অবগত থাকার আবদ্ধ এবং উপরের আমাদের জানাতে বাধ্য, আমরা এই দুটি অনুসন্ধান করা হয়? আমরা এখানে ধরে এই দুটি অনুসন্ধান? আমরা মাঝখানে দুটি অনুসন্ধান? সম্ভবত না মাঝখানে দুই, কারণ এই, আসলে, বাইনারি অনুসন্ধান করা হয়. কিন্তু এখন আমরা আকার পেতে পারবেন, কিন্তু অ্যারের সীমা. প্রকৃতরূপে, আমরা আমাদের দৈত্য আছে ফোন বই, আমরা অর্ধেক এটি চেরা. যে ছোট যেখানে আমরা এখন জানি ফোন বই. কিন্তু আমরা আসলে চমত্কার করছি না অর্ধেক ফোন বই. আমরা এখনও জানতে হবে কোথায় আমাদের সমস্যার নতুন সীমার হয়. কেহ কোন প্রশ্ন আছে যে সম্পর্কে কি? হ্যাঁ? ছাত্র: এটি একটি তৈরি করে কাজ করবে পরিবর্তনশীল, আমি, আপনি তখন শুধু নামান যে তার কাছে আমি আপেক্ষিক অবস্থান বর্তমান অবস্থান, এবং দৈর্ঘ্য, এন? JASON HIRSCHHORN: এবং আমি কি? ছাত্র: আমি সাজানোর মত হচ্ছে লেগেছে - ভালো লেগেছে আপনি আমি হতে আরম্ভ হবে অ্যারের মাঝখানে অবস্থান. এবং তারপর, যদি অবস্থান এ মান আমি এ পাওয়া এ অ্যারে মাঝখানে আপনার প্রয়োজনীয় মান কম হবে, এখন আমি অ্যারের দ্বারা হয়ে, প্লাস তোমার মান 2 দ্বারা বিভক্ত. ভালো লেগেছে, দেখুন, আপনি আমি নামান - JASON HIRSCHHORN: রাইট. ছাত্র: - পর্যন্ত - JASON HIRSCHHORN: তাই আমি প্রায় am কাজ করবে ইতিবাচক. কিন্তু বিন্দু হচ্ছে, আপনি দুই দরকার এখানে তথ্য টুকরা. আপনি আদ্যন্ত সঙ্গে এটি করতে পারেন বা এর পরে মাপ তা করে, এবং পারে কিছু মার্কার. তবে আপনি যদি দুই টুকরা প্রয়োজন এখানে তথ্য. আপনি শুধুমাত্র এক সঙ্গে করে পেতে পারে না. যে জ্ঞান করে তোলে না? সুতরাং আমরা মধ্য দিয়ে যেতে যাচ্ছে, এবং করছি আমরা কি করতে যাচ্ছেন [শ্রবণাতীত] এবং কিছু চিহ্নিতকারী তৈরি. তাই আপনি যদি আপনার কোডে কত ঋণ লিখতে? ছাত্র: আমি ঠিক বলেন int-বাউন্ড এক 0 সমান. JASON HIRSCHHORN: এর কল যাক যে কোন int, প্রারম্ভে. ছাত্র: ওকে. JASON HIRSCHHORN: এটা তোলে আমার জন্য আরো ধারনা. আর? ছাত্র: আমি শেষ int, আমি অনুমান করে. JASON HIRSCHHORN: শেষ int. ছাত্র: আমি অনুমান, এন বিয়োগ 1 অথবা যে ভালো কিছু. ভালো লেগেছে, শেষ উপাদান. JASON HIRSCHHORN: সুতরাং আপনি লিখেছেন, int- সমান 0, সেমিকোলন, এবং int-প্রারম্ভে শেষের এন বিয়োগ 1, সেমিকোলন সমান. তাই মূলত, আমরা কি করছেন এখানে, প্রথম অবস্থান 0. আমরা অ্যারে মধ্যে জানি, তারা যেতে না এন আপ, তারা 1 থেকে এন বিয়োগ পর্যন্ত যান. সুতরাং আমরা আমাদের অ্যারের কিছু ক্ষেত্র আছে. এবং এই প্রাথমিক সীমার হবে এরকম আমাদের সমস্যা প্রাথমিক কোট. ঠিক আছে. সুতরাং যে ভাল শোনাচ্ছে. তারপর আমরা ফিরে এই লাইন যেতে হলে সময় তালিকার দৈর্ঘ্য, হয় 0 থেকে কি পরিবর্তে n র, উচিত আমরা এখানে রাখা? ছাত্র: বিয়োগ শুরুতে শেষ লিখুন. JASON HIRSCHHORN: বিয়োগ বিভক্তি যদিও শুরু হয় 0 থেকে? ঠিক আছে. এবং আমরা আমরা চেয়েছিলেন, পারা যে একটি বিট nicer, কি অন্যথায় আমরা যেত না? আমরা পরিষ্কার করতে চেয়েছিলেন আপ একটি বিট এই কোড? কিভাবে আমরা 0 পরিত্রাণ পেতে পারি? এই মাত্র একটি শৈলী প্রশ্ন. এটা এই মুহূর্তে সঠিক. ছাত্র: শেষ হয় না আছে সমান শুরুতে? JASON HIRSCHHORN: আমরা কি কিছু করতে পারি? [Interposing ভয়েসেস] ছাত্র: Ending বেশী? JASON HIRSCHHORN: হ্যাঁ. শেষ যখন আমরা ঠিক কি করতে পারেন শুরুতে তার চেয়ে অনেক বেশী. রাইট. আমরা অন্য দিকে শুরু যোগ যে, এবং আমরা 0 পরিত্রাণ. সুতরাং শুধু এই একটি দেখতেও অল্প ক্লিনার. ঠিক আছে. তালিকার দৈর্ঘ্য 0 যখন সুতরাং, আমরা লিখেছিলেন যে, শেষ সময় বেশী শুরুতে তুলনায়. আমরা আমাদের প্রয়োজনীয় করিয়ে চলুন কোঁকড়া ধনুর্বন্ধনী, এবং তারপর প্রথম জিনিস আমরা যেতে চাই তাকান হয় একটু তালিকায় তাদের. আপনি? আপনি কি আমাকে দিতে পারেন - ছাত্র: যদি লঘুবন্ধনী মূল্য বর্গাকার বন্ধনী - JASON HIRSCHHORN: প্রথম বন্ধনী যদি মূল্য বর্গাকার বন্ধনী. ছাত্র: 2 দ্বারা বিভক্ত শেষ. JASON HIRSCHHORN: Ending? ছাত্র: আমি আপনার সাথে একটি সমস্যা দেখতে - JASON HIRSCHHORN: ঠিক আছে. ওয়েল, মাঝখানে তাকান. কিভাবে আমরা মধ্যম কি জানেন? হ্যাঁ. তাই আমাকে যে কোড মুছে যাক. কিভাবে আমরা মধ্যম কি জানেন? কিছু, আপনি শুরুতে যখন এবং শেষ, কিভাবে আপনি খুজে পাবেন মাঝখানে? ছাত্র: আপনি গড়. ছাত্র: আপনি জুড়তে একসঙ্গে এবং তারপর - JASON HIRSCHHORN: তাদের যোগ করুন একসঙ্গে এবং তারপর? ছাত্র: এবং যদি আপনি গড়. 2 দ্বারা এটি ভাগ. JASON HIRSCHHORN: তাদের যোগ করুন একসঙ্গে এবং 2 দ্বারা বিভক্ত. সুতরাং int-মিডিল সমান? টম, আপনি আমার এটা দিতে পারেন? ছাত্র: প্রারম্ভকালীন প্লাস বিভক্তি - JASON HIRSCHHORN: শুরু প্লাস বিভক্তি. ছাত্র: সমস্ত, বন্ধনী, 2 দ্বারা বিভক্ত. JASON HIRSCHHORN: সকল, প্রথম বন্ধনী, 2 দ্বারা বিভক্ত. সুতরাং যে আমার মধ্যম দেয় কিছু, সঠিক? ছাত্র: আপনি এটা ধরপাকড় করা প্রয়োজন. JASON HIRSCHHORN: আপনি কি মানে, আমি এটা ধরপাকড় করা প্রয়োজন? [Interposing ভয়েসেস] ছাত্র: কারণ এটি একটি বিজোড় যদি নম্বর তারপর, এটা মত - JASON HIRSCHHORN: আচ্ছা, ঠিক আছে. তাই আমি এটা ধরপাকড় পারে. এটি একটি বিজোড় সংখ্যা, একটি 5 এর কিন্তু, যদি আমি করতে পারেন দূরে মধ্যম থেকে 1 নিচ্ছে. অথবা এটা একটি এমনকি সংখ্যা যদি, বরং, যে একটি ভাল কেস. এটা 4 এর, আমরা শুধুমাত্র 4 আছে, আমি গ্রহণ করতে পারেন প্রথম "মধ্যম", কোট, উদ্ধতি বা দ্বিতীয় "মধ্যবিত্ত" এক. উভয় ক্ষেত্রেই একটি বাইনারি অনুসন্ধান জন্য কাজ করবে, তাই আমি আসলে এটা সুসম্পন্ন করতে হবে না. কিন্তু অন্য একটি জিনিস আমি নেই এই লাইন তাকান প্রয়োজন. আমরা এখনো তা বুঝতে পারে না কিন্তু আমরা তা ফিরে আসবো. এই লাইন আসলে এখনও কারণ অন্য একটি জিনিস প্রয়োজন. কিন্তু এ পর্যন্ত, আমরা লিখিত করেছি কোড চারটি লাইন. আমরা আমাদের শুরুতে পেয়েছেন এবং চিহ্নিতকারী শেষ. আমরা ম্যাপের যা আমাদের সময় লুপ, আছে সরাসরি আমাদের pseudocode করতে. আমরা ম্যাপের যে মাঝখানে এ খুঁজছেন সরাসরি আমাদের pseudocode মধ্যে. আমি এই মধ্যম যায় বলতে হবে তালিকার, কোড এই লাইন. এবং তারপর, একবার আমরা মাঝখানে যান তালিকা, আমরা যা করতে হবে পরবর্তী জিনিস আমাদের মান জন্য যদি চেক করা হয় pseudocode আমরা আগে লিখেছি. তাই কিভাবে আমরা চেক যদি আমাদের মান তালিকা মাঝখানে এ কি? আপনি. কেন আপনি এই কাজ না? ছাত্র: আমাদের মান এর যদি মাঝের সময়ে সমান আমরা সেট যাই হোক না কেন - আমি সমান সমান মানে - JASON HIRSCHHORN: এটা - ঠিক আছে. ছাত্র: আমি নিশ্চিত না কি পরিবর্তনশীল আমরা বেরাচ্ছেন জন্য যদিও, কারণ - [Interposing ভয়েসেস] ছাত্র: [শ্রবণাতীত]. JASON HIRSCHHORN: যথাযথভাবে. ফাংশন ঘোষণার প্রতি, আমরা একটি মান যা খুঁজছেন. সুতরাং আমরা একটি মান অনুসন্ধান করছেন মান একটি অ্যারের মধ্যে. সুতরাং আপনি ঠিক অধিকার. আপনি চেষ্টা করতে হবে, যদি খোলা paren মূল্য বন্ধনী মাঝখানে বন্ধনী সমান বন্ধ ভিতরে আছে মান সমান, এবং আমরা কি করতে হবে? যদি আমাদের মান এর আছে, কি আমরা কি প্রয়োজন? [Interposing ভয়েসেস] ছাত্র: শূন্য ফিরুন. JASON HIRSCHHORN: সত্য ফিরুন. ছাত্র: সত্য ফিরুন. JASON HIRSCHHORN: মাইকেল, এই লাইন কি কাজ করে? ছাত্র: [শ্রবণাতীত] প্রোগ্রাম চালানো হয়েছে তার অবশ্যই, এবং যে শেষ হয়, এবং আপনি আপনাকে কি করেছি? JASON HIRSCHHORN: প্রোগ্রাম বা কি? এই ক্ষেত্রে? ছাত্র: ফাংশন. JASON HIRSCHHORN: ফাংশন. এবং তাই, বলা যাহা ফিরে যাও এটা ও সত্য, এটা মূল্য দিতে. ঠিক ঠিক. মুখ্য. রিটার্ন টাইপ কি মূল হাজার, মাইকেল? ছাত্র: INT, পূর্ণসংখ্যা? JASON HIRSCHHORN: INT, ঠিক. একটি পূর্ণসংখ্যা. নিশ্চিত করুন যে শুধু একটি প্রশ্ন ছিল আপনাকে বলছি এটি উপরে হয়েছে. এটি সাধারণত যদি কি ফিরে না সবকিছুর ভাল কাজ করছে? ছাত্র: জিরো. JASON HIRSCHHORN: জিরো. ঠিক ঠিক. ছাত্র: এই মাত্র ফেরৎ সত্য হলে, দেওয়া হচ্ছে কোন তথ্য নেই আমার কি - ওহ, এই শুধু বলছে না যে যে মান অ্যারের ভিতরে. JASON HIRSCHHORN: যথাযথভাবে. এই প্রোগ্রামটি তথ্য প্রদান করা হয় না মান ঠিক যেখানে হাজার. এটা শুধুমাত্র হ্যাঁ, আমরা খুঁজে পাওয়া যায়, এর বলছে এটি, অথবা না, আমরা এটা খুঁজে পাইনি. সুতরাং সংখ্যা পাওয়া যদি সত্য ফিরে. ওয়েল, আসলে আমরা ঠিক করেছিলাম যে সত্যিই দ্রুত কোডের যে এক লাইন দিয়ে. তাই আমি pseudocode যে লাইন অগ্রসর হবেন. ছাত্র: আমরা প্রয়োজন না অ্যারের পরিবর্তন? এটা অধিকার, মূল্যবোধ, না মান হওয়া উচিত? JASON HIRSCHHORN: দুঃখিত. আপনাকে ধন্যবাদ. ছাত্র: হ্যাঁ. JASON HIRSCHHORN: এই লাইন মান হতে হবে. ঠিক ঠিক. ঠিক আছে. সুতরাং আমরা মধ্যম তালিকার দিকে তাকিয়ে করেছি. নম্বর পাওয়া ফেরত সত্য হলে. যদি আমাদের pseudocode সাথে নেভিগেশন অব্যাহত মধ্যম বেশী, অনুসন্ধান বাকি. সুতরাং যদি আমি এখানে ছিল সংখ্যা উচ্চতর, অনুসন্ধান বাকি. কনস্টান্টটাইন, আপনি দিতে পারেন আমার কোড এই লাইন? ছাত্র: মধ্যম মধ্যে যদি মান - JASON HIRSCHHORN: তাই মান যদি - খোলা paren বন্ধনী মান যদি মাঝখানে বন্ধ বন্ধনী - ছাত্র: মূল্য চেয়ে ছোট হয়? JASON HIRSCHHORN: কম. ছাত্র: মান কম. JASON HIRSCHHORN: ভ্যালু. ভাল, আসলে, আপনি চান নম্বর চেক - দুঃখিত. এই একটু বিভ্রান্ত হয়. কিন্তু অন্য হলে এ সংখ্যা তালিকা মাঝখানে বেশী. ছাত্র: ঠিক আছে, ওহ. JASON HIRSCHHORN: আমি যে পরিবর্তন করব. মধ্যম বেশী অন্যথায়, আমরা ঠিক আছে, বাম অনুসন্ধান করতে চান? এবং আমরা ভিতরে কি করবেন এই অবস্থা তাহলে কি হবে? ছাত্র: আমি একটি ছোট পরিবর্তন করা যাবে না যদি অবস্থা, অন্য এটি পরিবর্তন? JASON HIRSCHHORN: যদি অন্য? ঠিক আছে. তাই এই কোড এক্সিকিউট হবে একই বিষয়ে. কিন্তু অন্য, যদি ব্যবহার সম্পর্কে চমৎকার ব্যাপার , যদি বা যদি অন্য অন্য, যদি অন্য, যদি যাদের মধ্যে শুধুমাত্র একটি যাচ্ছে যে মানে চেক করা, না তাদের সব তিনটি, সম্ভাব্য. এবং যে এটি একটি সামান্য বিট করে তোলে যে কম্পিউটারে nicer আপনার প্রোগ্রাম. সুতরাং [? কনস্টান্টটাইন,?] আমরা মানের হলে অন্য, এই লাইন ভিতরে করছি বন্ধনী মাঝখানে বন্ধ বন্ধনী মূল্য তার চেয়ে অনেক বেশী. আমরা কি করতে চাই? আমরা বাম অনুসন্ধান করা প্রয়োজন. আমরা যে কিভাবে করব? আমি আপনাকে একটি শুরুর দিতে যাচ্ছি. আমরা নামক এই দুটি জিনিস আছে শুরু ও শেষ. তাই কি ঘটতে প্রয়োজন শুরুতে? আপনি বাঁদিকে অনুসন্ধান করতে চান তালিকা, আমরা আমাদের বর্তমান শুরুতে পেতে. আমরা কি তা করতে প্রয়োজন? ছাত্র: আমরা শুরুতে সেট মাঝখানে প্লাস 1 থেকে. JASON HIRSCHHORN: সুতরাং আমরা যদি বাম খুঁজছেন? ছাত্র: দুঃখিত, মধ্যম বিয়োগ - তাই শেষের মধ্যম হবে বিয়োগ 1 এবং শুরুতে - JASON HIRSCHHORN: এবং কি শুরুতে কি হবে? ছাত্র: এটা একই থাকে. JASON HIRSCHHORN: তাই অর্থ একই থাকে. আমরা বাম অনুসন্ধান করছেন, আমরা করছি একই শুরুতে ব্যবহার করে - ঠিক অধিকার. এবং শেষ? দুঃখিত, কি আছে আবার সমান বিভক্তি? ছাত্র: মধ্যম বিয়োগ 1. JASON HIRSCHHORN: মধ্যম বিয়োগ 1. এখন, কেন বিয়োগ 1, মধ্যম ঠিক না? ছাত্র: মধ্যম গেছে আমরা ছিল, কারণ ইতিমধ্যেই ছবি এটি যে চেক করা? JASON HIRSCHHORN: যে ঠিক অধিকার. মাঝখানে ছবি বাইরে. আমরা ইতিমধ্যে মধ্যম চেক করা. তাই আমরা ", মধ্যম" উদ্ধৃতি চাই না উদ্ধতি, হতে অবিরত আমরা খুঁজছেন যে অ্যারে. তাই এই কল্পনাপ্রসূত. অন্য মান বন্ধনী মধ্যম বৃহত্তর যদি মান সমান শেষ বেশী মধ্যম বিয়োগ 1. জেফ, কি এই শেষ লাইন সম্পর্কে কি? ছাত্র: অন্য. মূল্যবোধ মধ্যম মান কম হয়? JASON HIRSCHHORN: আমরা করব আপনি অন্য আমাকে প্রদান করছি. আপনি কি আমাকে দিতে না যদি তাই - ছাত্র: আমি তখন থেকেই শুরু মাঝখানে প্লাস 1 হবে. JASON HIRSCHHORN: প্রারম্ভকালীন সমান মাঝখানে প্লাস 1, আবার, জন্য একই কারণ যে কনস্টান্টটাইন তার আগে আমাদের দিয়েছেন. এবং শেষে, যিনি দেওয়া হয় নি এখনো আমার কোড একটি লাইন? মিথ্যা, Aleha, ফিরে কি আমরা এখানে লিখুন? ছাত্র: মিথ্যা ফিরে. JASON HIRSCHHORN: মিথ্যা ফিরে. এবং আমরা যে কি প্রয়োজন, কারণ যদি আমরা সেটা খুঁজে না, আমরা আমরা বলতে প্রয়োজন এটা খুঁজে পাইনি. এবং আমরা আমরা ফিরে যাচ্ছেন বলেন একটি bool, তাই আমরা স্পষ্টভাবে প্রত্যাবর্তন করতে হবে একটি bool কোথাও. তাই আসুন এই কোড রান করা. আসলে আমি যাচ্ছি - তাই আমরা টার্মিনাল মধ্যে আছেন. আমরা আমাদের জানালা পরিষ্কার করব. এর সব করা যাক. আমরা এক ত্রুটি আছে বলে চিহ্নিত করেছেন. আশা লাইন 15 একটি ত্রুটি আছে, শেষে সেমিকোলন ঘোষণা. তাই আমি কি ভুলে নি? ছাত্র: সেমিকোলন. JASON HIRSCHHORN: সেমিকোলন এখানে ডান আপ. আমি যে টম এর কোড ছিল. সুতরাং টম, [শ্রবণাতীত]. শুধু নিশ্চয়ই মজা. এর সব আবার করতে না দেওয়া. ছাত্র: কি ড্রপবক্স ডিরেক্টরি আমরা এই জন্য করা উচিত? JASON HIRSCHHORN: তাই আপনি যা করতে পারেন শুধু এই বিট জন্য ঘড়ি. কিন্তু আবার, আপনি এই সরাতে চেয়েছিলেন চেষ্টা করুন আপনার pset3 ডিরেক্টরিতে কোড এটি, যে আমি কি. আপনি এখানে বিজ্ঞপ্তি পাবেন যদি - দুঃখিত, ভাল প্রশ্ন. [? নির্মিত LS,?] আমি এখানে আছে find.c কোড এই সপ্তাহের ডিস্ট্রো কোড থেকে. আমি helpers.h আছে. আমি যে আমি আসলে একটি করুন ফাইল আছে এই নতুন অন্তর্ভুক্ত একটু সম্পাদনা আমরা লেখার ফাইল. যে কোড সব, পাওয়া না হবে ডিস্ট্রিবিউশন কোড, কিন্তু নতুন ফাইল করা, নতুন helpers.h ফাইল হবে ডাউনলোডের জন্য অনলাইন উপলব্ধ করা. আবার, তাই যারা হয় অতিরিক্ত কোড আমরা আছে. তাই সব করতে, এই লাইন প্রতি,, খুঁজে তোলে বাইনারি, বুদ্বুদ নির্বাচন - তোলে সব তাদের তিনটি এবং মধ্যে প্রনয়ন এই এক্সিকিউটেবল কোড খুঁজে. তাই সাধারণভাবে, আমরা চাই না সোজা check50 করতে করতে. আমরা আমাদের নিজেদের উপর কিছু পরীক্ষা চালাতে চান. কিন্তু ঠিক তাই আমরা, এই একটু সুবিধাযুক্ত পারেন check50 2013 pset3.find পাস হবে আমার খারাপ - helpers.c ইন. আমি এই মুহূর্তে যে নেই. সুতরাং আমরা আসলে চলুন বাস্তব জন্য কোড রান. Usage.find /, আপনি যে মানে কি জানেন? ছাত্র: আপনি একটি দ্বিতীয় প্রয়োজন এটি কমান্ড লাইন. JASON HIRSCHHORN: আমি প্রয়োজন একটি দ্বিতীয় কমান্ড লাইন. এবং স্পেসিফিকেশন প্রতি, আমি প্রয়োজন আমরা যা খুঁজছেন তা লিখুন. সুতরাং আসুন 42 জন্য চেহারা. আমরা সাজানো রাখবেন করব, কারণ আমরা এখনো কেমন ফাংশন লেখা হয় নি - 42, 43, 44. এবং নিয়ন্ত্রণ ডি খুঁজে পাইনি খড়ের গাদা সুই. এটা খারাপ. এটা স্পষ্টভাবে আছে. এর অন্য কিছু চেষ্টা করুন. আমি রাখা হয়তো এর কারণ শুরুতে এটি. এর 41, 42, 43 করুক না. এখন পর্যন্ত আমরা যেতে. এটা এটি পাওয়া গেছে. এর ঠিক, এখন শেষে এটা করা যাক তাই আমরা পুঙ্খানুপুঙ্খ হতে পারে - 40, 41, 42. সুই খুঁজে না. তাই আমি এই পূর্বে উল্লিখিত. দুর্ভাগ্যবশত, আমি এই জানত ঘটতে যাচ্ছে. কিন্তু প্রাতিষ্ঠানিক উদ্দেশ্যে, তা অন্বেষণ করা ভাল. এটা কাজ করে না. কোন এক কারণে, তা খুঁজে পাচ্ছি না. আমরা সেখানে কি জানি, কিন্তু আমরা তা খুঁজে বের করা হয় না. সুতরাং আমরা যেত না এক জিনিস দিয়ে যেতে হয় GDB, সেটা খুঁজে, কিন্তু কেহ না করতে GDB মাধ্যমে যাওয়া ছাড়া, আছে একটি আমরা মাতাল আপ যেখানে অর্থে? [? Madu? ?] ছাত্র: আমি এটা শেষ হতে পারে যখন মনে শুরুতে সমান, এবং এটি শুধু এক উপাদান তালিকা. তারপর এটা শুধু পরিবর্তে এটি উপেক্ষা এর আসলে এটি চেক. JASON HIRSCHHORN: যে ঠিক অধিকার. শেষের শুরুতে সমান হলে, আমরা কি এখনো আমাদের তালিকায় একটি উপাদান আছে? ছাত্র: হ্যাঁ. JASON HIRSCHHORN: হ্যাঁ, আসলে, আমরা এক এবং একমাত্র এক উপাদান আছে. এবং যে সম্ভবত যখন ঘটবে, আমরা পরীক্ষিত কোড প্রতি, আমরা হয় খড়ের গাদা বা অগ্রে খড়ের গাদা শেষে. যেখানে শুরুতে এবং যে শেষের সমান হবে বাইনারি অনুসন্ধান সঙ্গে এক,. তাই ঐ দুটি ক্ষেত্রেই এটা কাজ করে নি, বিভক্তি কারণ শুরুতে সমান ছিল. কিন্তু শেষ হলে, শুরুতে সমান এই সময় লুপ চালানো হয়? এটা না. এবং আমরা চেক করা হতে পারে যে আবার GDB মাধ্যমে. তাই কিভাবে আমরা এই কোড ঠিক করতে পারবো কারণ শেষ যখন সমান হলে শুরুতে, আমরা এই চাই লুপ চালানোর সময়. তাই আমরা 18 রেখায় কি ফিক্স করতে পারেন? ছাত্র: [শ্রবণাতীত] বেশী বেশী বা সমান. JASON HIRSCHHORN: ঠিক ঠিক. শেষের চেয়ে অনেক বেশী সময় অথবা শুরুতে সমান. তাই এখন আমরা যে পেতে নিশ্চিত করুন শেষে কোণার কেস. আর দেখুন. এর এই এক আরো সময় চালানো যাক. এর সব করা যাক. আবার, আপনি করতে হবে মাত্র এখানে বরাবর অনুসরণ. 41 এই সময় বের করুন. শুধু এটি সঙ্গতিপূর্ণ রাখতে. 42 খুঁজুন. এর শুরুতে এটা করা যাক - 42, 43, 44. আমরা এটি পাওয়া গেছে. সুতরাং যে সত্যিই পরিবর্তন হয়েছে আমরা করা প্রয়োজন. আমরা কোডিং অনেক ছিল শুধু, বাইনারি অনুসন্ধান করেনি. কেহ আগে কোন প্রশ্ন আছে আমি মনে করি আমরা লিখেছে ভাগে যান বাইনারি অনুসন্ধান বা কিভাবে আমরা মূর্ত আমরা চিন্তা কি কি? আমরা এগিয়ে যেতে আগে, আমি আরো নির্দেশ করতে চান যে করে এবং বড় আউট, আমরা ম্যাপ আমাদের ছদ্ম - কোড একটিতে আমাদের কোড সম্মুখের এক. আমরা যে চতুর জিনিস আছে কি সঙ্গে চিন্তা করা শুরু ও শেষ. তবে আপনি যদি আপনি, যে মূর্ত আউট না অনেক সুন্দর লেখা হবে অভিন্ন কোড, জন্য সংরক্ষণ যারা উপরের দুই লাইন. এবং তারপর আপনি বুঝতে হবে যখন আপনি চেক এবং ক্ষেত্রে এটি যে আপনি অন্য কিছু প্রয়োজন. আপনি অনুসরণ করে তাই এমনকি যদি আমাদের লাইন ছদ্ম - কোড লাইন, আপনি করেছি হবে দুই লাইন কিন্তু সব অর্জিত আপনি লিখতে প্রয়োজন কোড. এবং আমি বাজি ধরতে রাজী হবেন যে আপনাকে বলছি সব যে মূর্ত আউট হবে প্রশংসনীয় দ্রুত, আপনি রাখা প্রয়োজন যে মার্কার কিছু বাছাই সেখানে চিত্র আপনি ছিল যেখানে খুঁজে. এটা আবার, কাজ শক্তি তাদের পুরস্কার কোড এগিয়ে সময়. সুতরাং আমরা তারপর প্রথম যুক্তি কি, এবং পারেন আমরা বাক্য গঠন সম্পর্কে চিন্তা করতে পারেন. আমরা যুক্তি সম্পর্কে বিভ্রান্ত করা হয়েছে যখন সি এই কোড লিখতে চেষ্টা, আমরা সব তছনছ আপ অর্জিত হবে. এবং তারপর আমরা সম্পর্কে প্রশ্ন জিজ্ঞাসা করা চাই যুক্তিবিজ্ঞান এবং বাক্য গঠন এবং meshing একসঙ্গে তাদের সব. এবং আমরা হারিয়ে অর্জিত হবে দ্রুত একটি হতে পারে কি খুব কঠিন সমস্যা. তাই আসুন এখন যান যাক নির্বাচন সাজানোর জন্য. আমরা বাকি 20 মিনিট আছে. তাই আমি মনে করি আমরা করতে পারবে না একটা অনুভূতি আছে নির্বাচন সাজানোর সব মাধ্যমে পেতে এবং বুদ্বুদ সাজানোর. কিন্তু আমাদের অন্তত চেষ্টা করা যাক নির্বাচন সাজানোর শেষ. সুতরাং সাজানোর ব্যবহার করে নির্বাচন বাস্তবায়ন ফাংশন ঘোষণা নিম্নলিখিত. আবার, এই থেকে নেওয়া হয় সমস্যা স্পেসিফিকেশন সেট. আন্তর্জাতিক মান বন্ধনী, হয় হয় পূর্ণসংখ্যার একটি অ্যারে. আর int.n যে অ্যারের আকার. নির্বাচন সাজানোর যাচ্ছে এই অ্যারে বাছাই. নির্বাচন আমাদের মানসিক মডেল প্রতি তাই সাজানোর, আমরা টান - প্রথমত, আমরা তালিকা মাধ্যমে প্রথম যান সময়, সবচেয়ে ছোট সংখ্যাটি খুঁজে, শুরুতে এটা করা, দ্বিতীয় খুঁজে ক্ষুদ্রতম সংখ্যা, এটা করা আমরা চাই দ্বিতীয় স্থান আরোহী ক্রমানুসারে সাজানোর. আমি আপনাকে লিখতে বাধ্য করছি না তাদের পুরস্কার কোড মুহূর্তে. কিন্তু আমরা একটি বর্গ হিসাবে কোড কাজের আগে পাঁচ মিনিট, আমরা লিখতে যাচ্ছি ছদ্ম - কোড, তাই আমরা কিছু ধারনা আছে এর যেখানে আমরা চলুন. তাই ছদ্ম - কোড লিখুন করার প্রচেষ্টা আপনার নিজের উপর. এবং তারপর যে চালু করার প্রচেষ্টা কোড মধ্যে ছদ্ম - কোড. আমরা একটি দল হিসেবে তা করতে হবে পাঁচ মিনিটের মধ্যে. এবং অবশ্যই, আমাকে যদি যদি আপনার কোন প্রশ্ন থাকে. ছাত্র: এটা যে? JASON HIRSCHHORN: কতদূর আপনি দেখুন আরো দুটি মিনিটের মধ্যে পেতে পারেন. আমি আপনি না করবে বুঝতে শেষ করতে পারবেন. কিন্তু আমরা একটি দল হিসেবে এই উপর যেতে হবে. আপনি সমস্ত [শ্রবণাতীত] তাই কোডিং করছি, তাই আমি আছি আপনি কি করছেন বিরতি দুঃখিত. কিন্তু এর একটি গ্রুপ হিসাবে এই মাধ্যমে যান. এবং আবার, বাইনারি অনুসন্ধান, আপনি সমস্ত দেবে আমার এক কোডের আরো লাইনের না হলে. যে জন্য আপনাকে ধন্যবাদ. আমরা একই জিনিস করে যাচ্ছেন এখানে, একটি গ্রুপ হিসাবে একসঙ্গে কোড. তাই নির্বাচন সাজানোর - এর লিখুন কিছু দ্রুত ছদ্ম - কোড. মানসিক মডেল প্রতি, কেউ আমাকে দিতে পারেন ছদ্ম - কোড প্রথম লাইন, দয়া করে? আমি কি করতে চান? ছাত্র: যদিও তালিকা যাতে বাইরে. JASON HIRSCHHORN: ঠিক আছে, যখন তালিকার ক্রম গেছে. এবং যদি আপনি "অর্ডার আউট?" কি বোঝাতে চেয়েছেন ছাত্র: যদিও [শ্রবণাতীত] সাজানো হয় নি. JASON HIRSCHHORN: যদিও তালিকা যাতে বাইরে, আমরা কি করব? আমার দ্বিতীয় লাইন দিন, দয়া করে, মার্কাস. ছাত্র: তাই পরবর্তী খুঁজে সবচেয়ে ছোট সংখ্যা. এই সংভৃত করা হবে. JASON HIRSCHHORN: তাই খুঁজে পরবর্তী সবচেয়ে ছোট সংখ্যা. এবং তারপর অন্য কেউ? আমরা পরের ক্ষুদ্রতম খুঁজে একবার সংখ্যা, আমরা কি করব? আমি খুঁজে বলতে যাচ্ছি সবচেয়ে ছোট সংখ্যা. যে আমরা যেতে চাই কি. তাই সবচেয়ে ছোট সংখ্যাটি খুঁজে. তারপর আমরা কি করব? ছাত্র: [শ্রবণাতীত] শুরুতে. JASON HIRSCHHORN: দুঃখিত? ছাত্র: এটি রাখুন তালিকার শুরুতে. JASON HIRSCHHORN: তাই রাখুন তালিকার শুরুতে. এবং আমরা জিনিস কি করবেন যে শুরুতে ছিল তালিকার, ডান? আমরা কিছু overwriting করছি. তাই যেখানে আমরা যে করা হয়? হাঁ, আন্না? ছাত্র: কোথায় ক্ষুদ্রতম নম্বর ছিল? JASON Hirshhorn: তাই শুরুতে রাখা তালিকার যেখানে ক্ষুদ্রতম সংখ্যা ছিল. তালিকার ক্রম গেছে তাই, যখন খুঁজে ক্ষুদ্রতম সংখ্যা, রাখুন তালিকার শুরুতে, করা তালিকার শুরুতে যেখানে ক্ষুদ্রতম সংখ্যা ছিল. মার্কাস, আপনি এই লাইন ভিন্নরূপে পারেন তালিকার ক্রম গেছে, যখন? ছাত্র: যদিও সংখ্যা সাজানো হয়নি? JASON Hirshhorn: ঠিক আছে, তাই যাতে যাও সংখ্যার হয়েছে না জানি সাজানো, আমরা কি করতে হবে? আমরা কিভাবে অনেক প্রয়োজন এই তালিকা মধ্য দিয়ে যেতে? ছাত্র: আমি লুপ জন্য একটি অনুমান, অথবা যখন, সংখ্যা চেক করার সময় কম তালিকা দৈর্ঘ্যের তুলনায়? JASON Hirshhorn: ঠিক আছে, যে ভাল. আমি misphrased মনে আমার প্রশ্ন দুর্বল. আমি এ পেতে চেষ্টা ছিল আমরা যেতে আছে চলুন পুরো তালিকা মাধ্যমে. তালিকার ক্রম গেছে তাই যখন, আমার জন্য, প্রথম ম্যাপ করা কঠিন. কিন্তু মূলত, যে কিভাবে আমি এই চিন্তা. খোঁজা, সম্পূর্ণ তালিকা দিয়ে যান ক্ষুদ্রতম সংখ্যা, রাখুন শুরুতে - আসলে, আপনি অধিকার. এর তাদের উভয় রাখা যাক. তালিকার ক্রম গেছে তাই, যখন আমরা সম্পূর্ণ তালিকা মাধ্যমে যাওয়া প্রয়োজন একবার, সবচেয়ে ছোট সংখ্যা, জায়গা খুঁজে এটি তালিকা প্রারম্ভে, করান তালিকার শুরুতে যেখানে ক্ষুদ্রতম সংখ্যা, এবং তারপর যদি তালিকা আমরা করেছি, যাতে বাইরে এখনও এই মধ্য দিয়ে যেতে পেয়েছিলাম প্রক্রিয়া আবার, ডান? এটা কেন নির্বাচন সাজানোর, বিগ-হে রানটাইম এর নির্বাচন সাজানোর, কেউ? ছাত্র: n ছক. JASON Hirshhorn: n ছক. মার্কাস এবং আমি ঠিক বুঝতে পেরেছি মত কারণ এখানে, আমরা আছে চলুন তালিকা তালিকা মধ্য দিয়ে যেতে কতবার. তাই কোন কিছু দিয়ে যাচ্ছিলেন দৈর্ঘ্য এন এন কতবার বস্তুত n ছক হয়. তাই এই আমাদের pseudocode হয়. এই খুব ভাল দেখায়. কেহ কোন প্রশ্ন আছে pseudocode সম্পর্কে কি? আসলে নির্বাচন সাজানোর উচিত কারণ সম্ভবত থেকে একজনকে, কোড এক আসা pseudocode. সম্পর্কে তাই কোন প্রশ্ন pseudocode পক্ষে যুক্তি? এখন তা জিজ্ঞাসা করুন. নির্বাচন সাজানোর - তালিকার বাইরে থাকাকালীন শৃঙ্খলা, আমরা এটা মাধ্যমে যেতে চলুন এবং ক্ষুদ্রতম প্রতিটি সময় খুঁজে এবং সামনে এটা করা. তালিকা, যা করতে পারেন যাতে বাইরে তাই যখন কারো আমার কোড যে লাইন দিতে যারা আমার একটি লাইন দেওয়া হয়নি দয়া করে, এখনো কোডের? এটি একটি কি মত শোনাচ্ছে? ছাত্র: যে লুপ জন্য না. JASON Hirshhorn: এটা শোনাচ্ছে লুপ জন্য একটি পছন্দ. ঠিক আছে, আপনি কি আমাকে লুপ জন্য দিতে পারেন? জন্য - ছাত্র: আমি 0 সাইটে সমান. JASON Hirshhorn: আমি বা - আমরা কি নাই? কি অধিকার এখানে যায়? ছাত্র: আন্তর্জাতিক. JASON Hirshhorn: যথাযথভাবে. - '(আমি = 0 int ছাত্র: আমি এন <; তোমার +). JASON Hirshhorn: জেফ, এটি পেরেক দিয়ে. আমরা অধিকার, তালিকা মাধ্যমে যাচ্ছেন? আমরা আগে যে কোড দেখা করেছি. পারফেক্ট. তাই আমাদের এখানে এর কোঁকড়া ধনুর্বন্ধনী করা যাক. আমি কিছু করা যাচ্ছে না এখানে কোঁকড়া ধনুর্বন্ধনী. এটা 0 যখন সুতরাং, আমরা যেতে প্রয়োজন সম্পূর্ণ তালিকা মাধ্যমে. তাই প্রতিটি সময় আমরা তালিকা মধ্য দিয়ে যেতে আমরা কি ট্র্যাক রাখতে চান? ছাত্র: কোন বিনিময়সমূহ তৈরি করে থাকেন. JASON Hirshhorn: খুঁজুন সবচেয়ে ছোট সংখ্যা. তাই আমরা সম্ভবত ট্র্যাক রাখা উচিত ক্ষুদ্রতম সংখ্যা প্রতিটি সময়. তাই লাইন আমি ট্র্যাক রাখা কি করতে পারেন ক্ষুদ্রতম সংখ্যা? Aleha, কিভাবে আমি রাখতে পারেন কিছু সম্পর্কে অবগত? ছাত্র: একটি নতুন পরিবর্তনশীল শুরু করুন. JASON Hirshhorn: একটি নতুন পরিবর্তনশীল শুরু করুন. সুতরাং আসুন একটি পরিবর্তনশীল তৈরি করা যাক. কি টাইপ? ছাত্র: আন্তর্জাতিক. JASON Hirshhorn: আন্তর্জাতিক. এর সবচেয়ে ছোট কল দিন. এবং কি এটা সমান যখন আছে আমরা শুধু আউট শুরু করছেন? আমরা এখনো তালিকার মাধ্যমে সর্বস্বান্ত নি. আমরা প্রথম অংশ করেন মাধ্যমে আমাদের প্রথমবার তার তালিকা দেখাবে. এটা সমান না কি, ক্ষুদ্রতম সংখ্যা? ছাত্র: মূল্যবোধ আমি. JASON Hirshhorn: মূল্যবোধ আমি. একেবারে ঠিক, ঠিক ডান শোনাচ্ছে? শুরুতে ক্ষুদ্রতম সংখ্যা আমরা যেখানে হয়. তাই এখন আমরা আমাদের সবচেয়ে ছোট আছে, এবং আমরা প্রয়োজন সম্পূর্ণ তালিকার মাধ্যমে যান এবং করতে ক্ষুদ্রতম এই তুলনা অন্য সব কিছুর থেকে. তাই আমরা আবার তালিকার মাধ্যমে যান? মাইকেল? ছাত্র: আপনি করা প্রয়োজন লুপ জন্য আরেকটি. JASON Hirshhorn: লুপ জন্য আরেকটি. এর এটা করুক না. আমার কিছু কোড দিন. ছাত্র: লুপ জন্য - ক্ষুদ্রতম জন্য - শুধু ঞ int, আপনি বলতে পারে? = 0; যেমন যে - JASON Hirshhorn: ভাল, আমরা চাই সম্পূর্ণ তালিকা মধ্য দিয়ে যেতে - ছাত্র: ঞ <এন, ঞ + + + +). JASON Hirshhorn: কল্পনাপ্রসূত. আমরা মধ্য দিয়ে যেতে চলুন লুপ জন্য আবার. এবং কিভাবে আমরা খুঁজে পেতে ক্ষুদ্রতম সংখ্যা? টম? আমরা বর্তমান ক্ষুদ্রতম সংখ্যা আছে, তাই কিভাবে আমরা নতুন ক্ষুদ্রতম খুঁজে পেতে? ছাত্র: আমরা পরীক্ষা করতে পারবেন যদি ক্ষুদ্রতম আমরা আছে সংখ্যা তার চেয়ে অনেক বেশী বন্ধনী J মান. JASON Hirshhorn: তাই ক্ষুদ্রতম যদি মান বন্ধনী ঞ তার চেয়ে অনেক বেশী. তাই যদি আমাদের বর্তমান ক্ষুদ্রতম তার চেয়ে অনেক বেশী - আমি এই দুই লাইন সরানো যাচ্ছে না এক সেকেন্ডের জন্য সেখানে আউট কোড নাম. কারণ আমরা কোনো সোয়াপিং আগে, আমরা সম্পূর্ণ তালিকা মাধ্যমে যাওয়া প্রয়োজন. তাই এই pseudocode আসলে উচিত লুপ জন্য যে ভেতরের বাইরে করা. তাই পুরো তালিকা দিয়ে যেতে. সবচেয়ে ছোট থেকে বড় হয় তাহলে মান ঞ তারপর কি? ছাত্র: তারপর ক্ষুদ্রতম মান ঞ সমান. JASON Hirshhorn: কল্পনাপ্রসূত. এক দ্রুত প্রশ্ন - আমরা এই লুপ দিয়ে যেতে প্রথমবার, তোমার 0 সমান যাচ্ছে, ঞ যাচ্ছে আমরা এখানে পেতে একবার 0 সমান. সুতরাং আমরা তুলনা করা চলুন নিজেই একটি সংখ্যা. যে দক্ষ? না, এটা সত্যিই দক্ষ না. সুতরাং আমাদের ঞ যেতে প্রয়োজন নেই 0 থেকে প্রতিটি সময় n যাও? আমরা সবসময় চেক প্রয়োজন সম্পূর্ণ তালিকা মাধ্যমে? [শ্রবণাতীত]? ছাত্র: পরিবর্তে আমি দিয়ে শুরু করুন. JASON Hirshhorn: J পারেন কি দিয়ে শুরু? ছাত্র: আমি. JASON Hirshhorn: ঞ ঝ দিয়ে শুরু করতে পারেন. তাই এখন আমরা শুরু তুলনা আমরা করছি এক সঙ্গে. এমনকি তারপর, যে হিসাবে হয় সম্ভব দক্ষ? ছাত্র: আমি 1 +. JASON Hirshhorn: আমি + 1 টি হবে বলে মনে হয় সবচেয়ে বেশি কার্যকরী, কারণ আমরা ইতিমধ্যে আমি আছে. আমরা যত জানায় যে করছি লাইন 15 মধ্যে সবচেয়ে ছোট. আমরা শুরু করতে যাচ্ছেন পরের এক স্বয়ংক্রিয়ভাবে. সুতরাং আমরা লুপ জন্য মধ্য দিয়ে যেতে. আমরা প্রতিটি সময় মাধ্যমে যাবেন. আমরা বার নম্বর দিয়ে যাবেন. এখন আমরা এর মাধ্যমে অর্জিত করেছি লুপ জন্য এই ভেতরের. আমরা ক্ষুদ্রতম মান সংরক্ষণ করে থাকে. আমরা এ এটি স্থাপন প্রয়োজন তালিকার শুরুতে. সুতরাং কিভাবে আমি এ রাখুন না তালিকার শুরুতে? বোঝায় যে পরিবর্তনশীল কি তালিকার শুরুতে? আমরা লুপ জন্য এই বাইরে আছেন তাই কি বোঝায় তালিকার শুরুতে? ছাত্র: মূল্যবোধ আমি. JASON Hirshhorn: ঠিক ঠিক. মূল্যবোধ আমি শুরুতে হল - অথবা দুঃখিত, শুরুতে না. এটা বিভ্রান্তিকর ছিল. আমরা শুরুতে যেখানে এটা তালিকার পাঁচমিশালী অংশ. তাই আমি মান. এবং কি সমান যে করে? ছাত্র: ক্ষুদ্রতম. JASON Hirshhorn: মূল্যবোধ আমি কি সমান? ছাত্র: ক্ষুদ্রতম. JASON Hirshhorn: ক্ষুদ্রতম. ঠিক ঠিক. সুতরাং আমরা শুরুতে এটি স্থাপন করছি তালিকার, এবং এখন আমরা করা প্রয়োজন তালিকার শুরুতে যেখানে ক্ষুদ্রতম সংখ্যা ছিল. সুতরাং কিভাবে আমি লিখতে পারি যেখানে ক্ষুদ্রতম সংখ্যা ছিল? কি মূল্যবোধ? ছাত্র: 0. JASON Hirshhorn: ছোট নম্বর 0 এ কি? ছাত্র: হ্যাঁ. JASON Hirshhorn: কি যদি ক্ষুদ্রতম নম্বর শেষে ছিল এই পাঁচমিশালী তালিকা? ছাত্র: দুঃখিত, প্রশ্ন কি ছিল? JASON Hirshhorn: কোথায় ক্ষুদ্রতম সংখ্যা? আমরা ক্ষুদ্রতম নেন এবং এ লাগাতে হবে ঠিক এই লাইন দিয়ে শুরু. ছাত্র: এটা থাকা উচিত কিছু সংরক্ষণ করা হয়েছে - ছাত্র: মূল্যবোধ ঞ. JASON Hirshhorn: ওয়েল, এটা অগত্যা J মান. এটি এমনকি এই সময়ে বিদ্যমান নেই. ছাত্র: আপনি ডিক্লেয়ার করা আছে একটি পরিবর্তনশীল আগে এবং তারপর থেকে এটি দায়িত্ব অর্পণ করা - আপনি ক্ষুদ্রতম নম্বর খুঁজতে হলে, যে সংখ্যার সূচক দায়িত্ব অর্পণ কিছু চলক বা যে ভালো কিছু. JASON Hirshhorn: তাই যা করতে পারেন আপনি আবার বলতে? ছাত্র: সুতরাং আপনি কোন int ঘোষণা যেখানে সবচেয়ে ছোট, তবে আপনাকে int-ডিক্লেয়ার করা উচিত ক্ষুদ্রতম সূচক = আমি, অথবা যে ভালো কিছু. JASON Hirshhorn: তাই আমি int না যেখানে সবচেয়ে ছোট, আমি ট্র্যাক রাখা উচিত না শুধুমাত্র মান কিন্তু অবস্থান. int-smallest_location = এই মধ্যে কেস, আমরা শুধু আমি চেষ্টা করবো. আমরা যেখানে এটা জানা প্রয়োজন. আমরা কোড শেষে পেয়েছিলাম, এবং আমরা আমরা এটি ছিল যেখানে কোন ধারণা ছিল না. তাই আবার, আমরা ম্যাপিং হয় এই এক থেকে এক. আপনার নিজের ইচ্ছার উপর এই কোডিং আপনি না সম্ভবত একই সমস্যা পেতে. আমি কিভাবে নরক তা খুঁজে পেতে? এবং তারপর আপনি আমি, অপেক্ষা করুন, বুঝতে পারছি যে সম্পর্কে অবগত রাখা প্রয়োজন. সুতরাং ক্ষুদ্রতম বেশী হলে মান জে আর. আমরা ক্ষুদ্রতম মান ঞ করার সমান সেট. আমরা পরিবর্তন করতে আর কি প্রয়োজন? Constantin, কি কি করবেন আমরা পরিবর্তন প্রয়োজন? ছাত্র: অবস্থান. JASON Hirshhorn: যথাযথভাবে. তাই আমাকে কোডের যে লাইন দিতে. ছাত্র: smallest_location = ঞ. JASON Hirshhorn: যথাযথভাবে. এবং তারপর শেষে নিচে, আমরা চাই তালিকার শুরুতে রাখা কোথায় ক্ষুদ্রতম সংখ্যা, কিভাবে আমরা যেখানে পড়ুন করবেন ক্ষুদ্রতম সংখ্যা ছিল? মার্কাস? ছাত্র: ক্ষুদ্রতম সংখ্যা ছিল ক্ষুদ্রতম অবস্থানে অবস্থিত. JASON Hirshhorn: তাই মান এ smallest_location. এবং আমরা সেখানে কি করা? শুরুতে তালিকা, যে কি? ছাত্র: ভাল, আমরা সত্যিই জানি না আমরা overwrote আর কারণ. সুতরাং এটি একটি অদলবদল অবস্থানে আছে যারা দুই লাইনের? আপনার চারপাশে যারা দুই লাইন সুইচ যদি. JASON Hirshhorn: ঠিক আছে, তাই আমরা না আর, কারণ আমরা লাইন পুনরায় সেট করেছি মান আমি সবচেয়ে ছোট করার আগে. সুতরাং আমরা যে প্রারম্ভিক মান হারিয়ে গেছে. সুতরাং আপনি swap 'এই দুটি লাইন বললেন. তাই এখন তালিকার শুরুতে রাখা যেখানে সবচেয়ে ছোট সংখ্যা ছিল. সুতরাং smallest_location আমি মান সমান. যে এই শুরুতে সরানোর হচ্ছে যাও তালিকা পাঁচমিশালী অংশ ক্ষুদ্রতম অবস্থান. এবং তারপর মান মধ্যে আমি আমরা চলন্ত করছি যে সবচেয়ে ছোট সংখ্যা. কি যে জানার কেন আমরা যে swap 'করা ছিল? আমরা যে মান মুছে ফেলা হবে - আপনি সম্ভবত আছে আরেকটি বিষয় মূর্ত ও জিডিপি পাওয়া. তাই আমরা যত্ন গ্রহণ করেছেন সব pseudocode. অন্য কিছু আছে কি আমরা এখানে লিখুন প্রয়োজন? কেহ কিছু মনে করতে পারেন? ছাত্র: আপনি কিভাবে জানেন সমাপ্ত হয়ে যখন? JASON Hirshhorn: কিভাবে আমরা কি আমরা কাজ সম্পন্ন হয় যখন জানেন? গ্রেট প্রশ্ন. সুতরাং কিভাবে আমরা কাজ সম্পন্ন হয় যখন জানেন. ছাত্র: গণনা রাখা একটি পরিবর্তনশীল তৈরি করুন নেই তৈরি একটি swap এর বা এর যদি এবং একটি পাস দিয়ে যেতে. JASON Hirshhorn: ঠিক আছে. যে বুদ্বুদ সাজানোর কাজ করবে. কিন্তু নির্বাচন সাজানোর জন্য, আমরা না থাকলে একটি swap করা, যে ঠিক হতে পারে ক্ষুদ্রতম মান কারণ এটা তার ডান অবস্থান. আমরা একটি তালিকা 1, 2, 4, 3 থাকতে পারে. আমরা মাধ্যমে দ্বিতীয়বার কোনো অদলবদল করা হবে না. আমরা সংখ্যা 2 নেভিগেশন হবেন, কিন্তু আমরা করব এখনও চালু রাখা প্রয়োজন. সুতরাং আমরা যখন ট্র্যাক রাখা প্রয়োজন আমরা কাজ সম্পন্ন হয়, অথবা আমরা যেতে চাই না এই সমাপ্ত না হওয়া পর্যন্ত? ছাত্র: আমরা শুধু যেতে পারেন এটি সমাপ্ত এর যতক্ষন না. JASON Hirshhorn: আমরা যা করতে পারেন শুধু এই সমাপ্ত না হওয়া পর্যন্ত যেতে. বুদ্বুদ সাজানোর মধ্যে, আপনি ঠিক ঠিক আপনার সমাধান সঙ্গে জেফ ও Aleha, - এটা ট্র্যাক রাখতে মহান কতগুলি বিনিময়সমূহ আপনি, তৈরি কারণ বুদ্বুদ আপনি আসলে কি ধরণের,, কোন অদলবদল করা সমাপ্ত হয়ে এবং আপনি হয়তো আপনার কাটা যাবে সমস্যা নিচে একটি বিট. কিন্তু নির্বাচন সাজানোর জন্য, আপনি সত্যিই করেছি শেষে মধ্য দিয়ে যেতে পেয়েছিলাম প্রায় প্রতিটি সময় তার তালিকা দেখাবে. তাই এই যে. আমরা বাকি দুই মিনিট আছে. এর সব করা যাক. আমার শুধু খোলা এখানে খুঁজে পাও এবং করা যাক নিশ্চিত আমি বস্তুত আপ আহ্বান করছি - আমি বুদ্বুদ সাজানোর আহ্বান করছি না. এর নির্বাচন সাজানোর এই পরিবর্তন করা যাক. সব না. / এটি. এর 42 খুঁজতে দিন. আমরা একটি পাস চলুন এই সময় পাঁচমিশালী তালিকা, তা সাজাতে হবে, কারণ প্রথমত, এটি কোড প্রতি - বাছাই হবে প্রথম তারপর আমাদের সাজানোর ফাংশন ব্যবহার করে এবং কিছু জন্য, দেখুন. ফিঙ্গারস সবাই পার. ধার্মিকতা আমার ওহ. দাঁড়ান, আমার হৃদয় প্রহার করা হয়. যাতে এর সঠিক. আসলে, আমরা এই আরো দৌড়ে হলে যতটা আমি করতে পারেন হিসাবে ব্যাপকভাবে, কোড, বলুন, পুরোপুরি সঠিক. কিছু প্রস্তাবনা আছে আমি আপনার জন্য আছে. উদাহরণস্বরূপ, 15 এবং 16 বলে মনে হচ্ছে একটু অপ্রয়োজনীয়. আপনি অগত্যা না এটি দেখে মনে হচ্ছে উভয় যারা সংরক্ষণ করা প্রয়োজন. আপনি ক্ষুদ্রতম অবস্থান, আপনি আছে সহজে দ্বারা ক্ষুদ্রতম মান বের করতে পারেন শুধু আমি মান লিখে. , আমি আপনার কোড শূন্য হবে যদি তাই আমি আসলে, আমি কি হবে আপনি যদি সম্ভবত একটি বিন্দু বন্ধ করা , এই দুটি অন্তর্ভুক্ত আপনি কারণ এই দুটি দরকার নেই. আপনি অবস্থান আছে, আপনি যা করতে পারেন খুব সহজে মূল্য পেতে. এবং এটা একটু অদ্ভুত বলে মনে হয় দুইটাই সংরক্ষণ. হয়তো এমনকি একটি বিন্দু গ্রহণ করা, কিন্তু না অবশ্যই যে হয়তো যে মন্তব্য না একটি রচনাশৈলীসংক্রান্ত পছন্দ আপনি করা প্রয়োজন. অবশ্যই, কোড এখনও পুরোপুরি ভাল চালায়. তাই দুর্ভাগ্যবশত আমরা না বুদ্বুদ সাজানোর পেতে. আমি যে বিষয়ে দুঃখিত. আমরা ফিনিস নির্বাচন সাজানোর করেছিল. কেহ কোন চূড়ান্ত প্রশ্ন আছে নির্বাচন সাজানোর সম্পর্কে কি? আমরা খুঁজে আগাইয়া আগে ঠিক আছে,, আমি আপনাকে চাই আপনার ক্রোম ব্রাউজার খুলুন. দুঃখিত, যে মাত্র একটি ভয়ানক প্লাগ ছিল ইন্টারনেট ব্রাউজার এক ধরণ জন্য. আপনি ব্রাউজারে কোন প্রকার পর্যন্ত খুলতে পারে, কিন্তু এটা সম্ভবত ক্রোম হবেন. এবং এই নিম্নলিখিত ওয়েবসাইটে যান - sayat.me/cs50. আপনি আপনার কম্পিউটারে টাইপ করছি না ঠিক এখন, আপনি স্পষ্টভাবে করছি , টম এরকম না. আর ঠিক হয় এটা দয়া করে এখন বা পরের ঘন্টায় - আমার কিছু মতামত দিতে. এটি কেবলমাত্র বিভাগে দুটি করে. আমরা একসঙ্গে আরো অনেক আছে, তাই আমি উন্নত রুম অনেক আছে. আমি আশা এছাড়াও ভাল কিছু জিনিস না. সুতরাং আপনি আমার সব খারাপ মনে করতে পারেন, কিন্তু যদি তবে আপনাকে আমার একটা স্মাইলি দিতে চান মুখ, আমি হিসাবে ভাল যে কৃতজ্ঞ হবে. এখনো সদস্য না যে পূরণ করুন আর বাকি এক মিনিট সঙ্গে, যে সপ্তাহে তিনটি ছিল. আমি একটি বিট জন্য বাইরে দাঁড়ানো করব যদি আপনার কোন প্রশ্ন থাকে তাহলে. আমি আপনাকে বলছি দেখবেন আগামীকাল বক্তৃতা.