[Powered by Google Translate] [অনুচ্ছেদ 3] [কম আরামদায়ক] [Nate Hardison] [হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50.] [CS50.TV] ঠিক আছে, এবার শুরু করি. স্বাগতম CS50 সপ্তাহের 4. আপনি যদি না একটি ওয়েব ব্রাউজার খুলুন এবং pset 3 খুলুন, CS50 সঙ্গে একত্র, আমরা যাব শুরু চলুন প্রশ্নের মাধ্যমে সেখানে বিভাগে. গত সপ্তাহেই মত, আমরা CS50 শূন্যস্থানের হবে কাজ, যদি আপনি যে ডাঁটা হিসাবে পাবেন, এবং আপনি যদি এগিয়ে যান এবং এই লিঙ্ক আছে যা আমি উপরে আছে এখানে আপ করেছি যান. এটা সময় শুরু. আমরা আমাদের সামান্য হাই এখানে প্রোগ্রাম পেয়েছেন. কিছুই ছবি. প্রথমে আমি আপনাকে বলছি সঙ্গে আজ কাজ করতে চান ওয়ান কয়েক সমাধান যেতে বেশী যাও সমস্যা সেট 1, যেমন সমাধান ধরনের, ঠিক তাই আপনি কোড কর্মীরা কি ধরণের লেখা হয় জন্য একটি অনুভূতি পেতে পারেন, লেখা কোড কি অন্যান্য ছাত্র ধরণের হয়, আছে এবং আপনি কি এটা বর্ণন কারণ আমি জানি এটা অদ্ভুত লাগতে আপনি যখন একটি সমস্যা সমাধান এবং একটি সেট জমা মন্তব্য পেতে আপনার নিজস্ব সংস্করণ, কখনও কখনও কিন্তু এটা কিভাবে অন্য জনের তা দেখতে সহায়ক, বিশেষ করে যা বেশী সুন্দর খুঁজছি. অধিকাংশ অংশ জন্য, আমি সত্যিই সমাধান যে আপনি না প্রযোজিত অঙ্কিত ছিল. আমি আপনার সমস্যা সেট 2s এ খুঁজছেন এখনো শুরু করেন নি, কিন্তু যদি তারা প্রথম ভালো কিছু, এটা আর কিছুই ভাল জিনিষ মানে. আপনি যদি আমার পুনর্বিবেচনা তাকান, যাক এর সমস্ত উপায় শুরু পরিবর্তনসমূহ 1 এ, এবং আমরা একটি মারিও সমাধান সময়ে দ্রুত কটাক্ষপাত চলুন. যদি আপনি এই থামা, এই প্রোগ্রামগুলি যে আমরা উপস্থাপন করতে যাচ্ছেন সঠিক. , ছিল না বরং এই সব সমস্যার শুদ্ধি বিষয় না, আমরা বিভিন্ন নকশা বিষয় সম্পর্কে সামান্য বিট কথা বলতে চান যে এখানে ছিল ব্যবহৃত হচ্ছে. সমাধান সম্পর্কে যে ছিল আকর্ষণীয় এক যা এই নতুন নির্মানের নামক আধা কেজি সংজ্ঞায়িত ব্যবহৃত, কখনও কখনও এছাড়াও হিসাবে সংজ্ঞায়িত একটি হ্যাশ উল্লেখ করা হয়. আমাকে এটা এখানে জুম. একটি # define আপনি আপনার প্রোগ্রামের মধ্যে এই সংখ্যা যাও যাও নাম দিতে পারবেন. এই ক্ষেত্রে, একটি পিরামিডের সর্বোচ্চ মারিও উচ্চতা ছিল 23 এবং বদলে আমার মধ্যে 23 নির্বাণ কোড- আমরা হার্ড কোডিং 23 হিসাবে যে পড়ুন হবে - পরিবর্তে এই যে নম্বর নামের MAX_HEIGHT দেয়, যাতে নিচে এখানে আমার কি সময় লুপ আপনি আসলে MAX_HEIGHT পাঠাতে পারেন এর পরিবর্তে সংখ্যা 23 নির্বাণ ইন [ছাত্র] কি যে এরকম সুবিধা? এটা একটি বড় প্রশ্ন. এর মধ্যে একটি হল পাঠযোগ্যতা. ব্যবহার করে এই # সংজ্ঞায়িত একটি সুবিধা হলো পাঠযোগ্যতা. যখন আমি এই কোড পড়া করছি, আমি কি ঘটছে তা দেখতে পারেন. আমি এখানে এই শর্তে যে, আমরা পরীক্ষা করে তা দেখতে পারেন জন্য উচ্চতা হচ্ছে <0, যা আমরা সংজ্ঞায়িত করতে একটি সর্বনিম্ন উচ্চতা অথবা একটি কমপক্ষে উচ্চতা হতে. অন্যান্য সুবিধা হল যে আমি তারপর লাইন বাকি দেখুন পড়তে পারেন যে আমরা নিশ্চিত যে উচ্চতা সর্বোচ্চ উচ্চতার তুলনায় বেশী নয়, তবে চেক করছি, কারণ আমরা যখন উচ্চতা হল সর্বোচ্চ উচ্চতার তুলনায় অধিকতর অগ্রসর চলুন. অন্যান্য সুবিধা হল, যদি আমি সামান্য বিট জুম আউট এখানে- যদি আমি এই প্রোগ্রাম চালানো এবং আমি 23 রান দিয়ে বলা যায়, এখন বলার অধিকার, এটি সব ঠিক সেই মতো 23 সারি প্রিন্ট আউট হবে. কিন্তু বলতে আমি সর্বোচ্চ উচ্চতা পরিবর্তন করতে চান, এবং এখন আমি পিরামিড সর্বোচ্চ উচ্চতা সীমাবদ্ধ করতে চান শুধুমাত্র-বলতে মানুষ, যে ছিল ভীত হবে. # অন্তর্ভুক্ত , # define MAX_HEIGHT, এবং এর যাক বলতে আমরা সমান 10 সেট চেয়েছিলেন. এখন এই সময়ে, আমি না হয় এই ছিল এক অবস্থান তা পরিবর্তন. আমি কোড recompile, এখন যদি আমি 12 এ চেষ্টা করতে পারেন এবং টাইপ করুন, এটা আবার সম্পর্কে লেখার অনুরোধ জানানো হবে. এই ক্ষেত্রে, আমরা কেবল MAX_HEIGHT একবার ব্যবহার করছেন. এটা যে বড় একটি ঝগড়া না এ যান এবং যখন লুপ আপনি যদি প্রয়োজন পরিবর্তন. কিন্তু প্রোগ্রাম যেখানে আপনি একই ম্যাজিক নম্বর উল্লেখ করছি বহুবার, # এই প্রক্রিয়া সংজ্ঞায়িত হয় সত্যিই সুবিধাজনক কারণ আপনি ফাইলটি-এর যেখানে আপনি এটা সাধারণত করা তাদের-শীর্ষে এক সময় এটি পরিবর্তন এবং পরিবর্তন ফাইল বাকি মাধ্যমে percolates. অন্যান্য বিষয় আমি এই নিয়োগ যে আমি মনে রাখবেন চেয়েছিলেন সত্যিই সুন্দর লাগছিল, এক ছিল ভেরিয়েবল এর নামকরণের. আপনি এখানে দেখতে যে আমরা পূর্ণসংখ্যা নামক সারি এবং তথাকথিত উচ্চতা ভেরিয়েবল পেয়েছেন. শূন্যস্থানের, hashes, এটি সাহায্য করে কোড সামান্য আরো পাঠযোগ্য না, এটা একটু বেশি বোধগম্য আসলে কি হচ্ছে না. এটি ব্যবহার করে এর বিপরীতে হয়, র্যান্ডম অক্ষর বলে, বা ঠিক পুরাপুরি gobbledygook. একটি জিনিস আমি চূড়ান্ত বাতলান করবেন তা loops জন্য যে, প্রায়ই এই iterator ভেরিয়েবল, এই কাউন্টারে যে আপনার মধ্যে আপনি loops জন্য ব্যবহার, এটা মান এবং হয় না এবং তারপর ঞ সঙ্গে তাদের প্রথাগত তারপর শুরু এবং ট এবং সেখান থেকে যাওয়া যদি আপনি আরো ভেরিয়েবল প্রয়োজন, এবং এটি শুধু একটি প্রচল. নিয়মাবলী প্রচুর আছে. এটা প্রোগ্রামিং ভাষা ব্যবহার করছেন উপর নির্ভর করে. কিন্তু সি, আমরা সাধারণত তোমার সাথে শুরু. এটা, বলতে না করা অর্থে ব্যবহার না একটি বা বো পরিস্থিতির উপর নির্ভর করে. এটা এই জন্য এটি একটি. এখন আপনি যদি পুনর্বিবেচনার 2 মুঠি ধরে টেনে তুলবো, আপনি অন্য মারিও দেখতে পাবেন, এবং এই এক অনুরূপ অন্য যে আমরা দেখেছি যাও, কিন্তু এটি শীতল কিছু ধরনের আছে. যদি আমরা এই অ w শটি তাকান অধিকার এখানে লুপ জন্য ভেতরের ভিতর, তারা কিছু ছবি খুঁজছি সিনট্যাক্স ব্যবহার করে এখানে ডান এই লাইনে থাকেন. এই একটি তিন অপারেটর বলা হয়. এটি একটি বিবৃতি যদি অন্য এক লাইন মধ্যে ঘনীভূত. শর্ত হল বন্ধনীর মধ্যে এই অংশ. এটা সমতুল্য বলছে যাও যদি ঞ <উচ্চতা - তোমার - 1. এবং তারপর কি যে বিষয়বস্তু যদি ব্লক করা যাবে স্থান এবং তারপর কি কি করতে হবে বিষয়বস্তুর # এই. এটা মূলত এই পরিবর্তনশীল এর একটি স্থান বরাদ্দ করুন. এটা ব্লক পরিবর্তনশীল বিষয়বস্তু মধ্যে একটি স্পেস এর নির্বাণ, যদি এই শর্ত পূরণ করা হয়, এবং যদি শর্ত পূরণ না হয়, তারপর পরিবর্তনশীল এই ব্লক # পায়. এবং তারপর, অবশ্যই, পরিবর্তে নির্মাণের একটি সম্পূর্ণ পংক্তি আপ এবং মুদ্রণ শেষে সবকিছু আউট এই সমাধান সেটা ছাপে একটি সময়ে এক চরিত্র. চমত্কার. জিনিষ তাকান আরেকটি দম্পতি. আমরা লোভী স্থানান্তরের উপর পাবেন. এখন যদি আমরা লোভী তাকান, এই প্রথম সমাধান এই ব্যবহার # বেশ একটু সংজ্ঞায়িত করে. আমরা একটি ধ্রুবক এই প্রোগ্রামের বিভিন্ন প্রতিটি সংখ্যার জন্য নির্ধারিত পেয়েছেন. আমরা এক ডলার প্রতি সেন্ট জন্য, ত্রৈমাসিক, dimes, nickels, এবং পেনিসমূহ জন্য এক পেয়েছেন, এবং এখন যদি আমরা স্ক্রোল ডাউন এবং কোড পড়া, আমরা একটি প্রমিত কাজ যখন লুপ মুদ্রণ সবকিছু দেখতে দেখতে পারেন. এই সমস্যার মূল অংশ কোন ধরনের বুঝতে ছিল যে আপনি float রূপান্তর একটি পূর্ণসংখ্যা যে আপনি থেকে ব্যবহারকারী পড়া প্রয়োজন যাও সঠিকভাবে গণিত, না এবং এই কারণ সঙ্গে ফ্লোটিং পয়েন্ট সংখ্যা, ভালো আমরা বক্তৃতায় সম্পর্কে সংক্ষেপে বললাম, এটি সঠিকভাবে প্রতি নম্বর লাইনে একক মূল্য অনুযায়ী সম্ভব নয় কারণ অসীম অনেক মধ্যে 3 এবং,, বলতে 3.1 এমনকি মান আছে. আপনি 3.01 এবং 3,001 এবং 3,0001 আছে, এবং আপনি বর্তা পারেন. এটি সক্রিয় আউট যখনই আপনি টাকা দিয়ে কাজ করছি, আপনি প্রায়ই তা রূপান্তর করতে চান পূর্ণসংখ্যা বিন্যাসে যাতে আপনি পেনিসমূহ এবং উপাদান ধরণের ক্ষতিকারক করছি না. এবং যে rounding Doing কী ছিল. এই সমাধান পুরোপুরি একটি সহজবোধ্য, মহান এলগরিদম ব্যবহার, যা decremented প্রথম ত্রৈমাসিক দ্বারা অবশিষ্ট সেন্ট নম্বর,, তারপর দ্বারা dimes, তারপর দ্বারা nickels, তারপর দ্বারা পেনিসমূহ, প্রতিটি কয়েন সময় সংখ্যা এবং যোগ. আরেকটি সমাধান যে আমরা, হিসাবে আমি জুম আউট এবং পুনর্বিবেচনার 4 যান দেখতে পাবেন, অনুরূপ একটি শুরুতে কিন্তু এর পরিবর্তে ব্যবহৃত div ও mod ছিল এখানে ডান উপর সেন্ট সংখ্যা গণনা. এই, ত্রৈমাসিক নম্বর সমান 25 দ্বারা বিভক্ত সেন্ট সংখ্যা, কারণ এবং এই কাজ করে কারণ আমরা পূর্ণসংখ্যা বিভাগ করছেন, তাই খারিজ কোনো অবশিষ্টাংশ. [ছাত্র] আমরা অনুসন্ধান মন্তব্য আছে কি? এটা সত্যিই নির্ভর করে. [ছাত্র] আপনি কোড বেশী মন্তব্য করছেন অধিকার এখানে. হ্যাঁ, তাই এবং এই দর্শন তারতম্য একটি গুচ্ছ আছে. আমার ব্যক্তিগত দর্শনের যে আপনার কোড সত্যিই সত্য, আপনার কোড মত কি কম্পিউটারে আসলে এর নির্বাহ, এবং তাই আপনি কোড সম্ভব হিসাবে হিসাবে অনেক মতামত হিসাবে অবশ্যম্ভাবী না পাঠযোগ্য হওয়া উচিত. যে বলেন, আপনি যখন প্রবঞ্চক এর জিনিষ যে ধরনের কাজ হয় গাণিতিকভাবে অথবা algorithmically, এটা যারা যাতে আপনি মন্তব্য করতে পারেন ভাল কেহ আপনার কোড পড়া হয় একটি অতিরিক্ত মাত্রা, একটি অতিরিক্ত স্তর যুক্ত. এই সমাধানগুলো ইন প্রায়ই, তারা আরো ব্যাপকভাবে ঠিক কারণ মন্তব্য করা হয় আমরা বিতরণ সক্ষম হতে চান এবং আছে মানুষ তাদের কুড়ান এবং তাদের চমত্কার সহজে পড়া. কিন্তু অবশ্যই, আমি যে এই ভারী সম্মত হবে. [ছাত্র] কিন্তু যখন সন্দেহ, ভারী যান? কোন সন্দেহ থাকলে, ভারী যান. কিছু মানুষ কখনো কখনো ফিরে যে ভালো 0 বা কিছু বলতে হবে. আমার মনে হয় এটা একটি হাস্যকর মন্তব্য নেই. স্পষ্টত যে কি ঘটছে. আমি ইংরেজি না যে সম্পর্কে বলা প্রয়োজন. কখনও কখনও জনের ভালো স্টাফ লিখুন "kthxbai!" হবে যে ছবি ধরনের কিন্তু না, যে মন্তব্য পয়েন্ট বা না করার মধ্যে পার্থক্য নেই. ঐ ধরণের মন্তব্য ঠিক আছে হে, হে. কুল. এই সময়ে, অপরিচিত কিছু সমস্যা প্রশ্নের অধ্যায় 3 সেট কাজ শুরু. আপনি যদি না এই আবার টানা, গত সপ্তাহে হিসাবে, আমরা এই বিভাগে হাফপ্যান্ট ঘড়ি যাচ্ছেন না. আমরা আপনাকে বলছি আপনার নিজের সময় যে দিন এবং প্রশ্ন সম্পর্কে আলাপ - আলোচনা করব. এই বিভাগে এখন কিন্তু আমরা একটু বেশী সময় কাটাতে যাচ্ছেন কোডিং বুনিয়াদি কম বিষয়ে কথা ভালো আমরা কি গত সপ্তাহে, এবং এর পরিবর্তে, আমরা উপর মনোনিবেশ করে যাচ্ছেন তত্ত্ব একটি সামান্য বিট আরো, তাই বাইনারি অনুসন্ধান সম্পর্কে কথা বলা এবং তারপর বাছাই. থেকে আপনাদের মধ্যে যারা বক্তৃতা সঙ্গে হয়েছে অনুসরণ বরাবর, কাউকে কি পার্থক্য হল একটি সংক্ষিপ্তবৃত্তি সম্পর্কে পারেন মধ্যে বাইনারি অনুসন্ধান এবং রৈখিক অনুসন্ধান? যাচ্ছে কি করছেন? নিশ্চিত. লিনিয়ার অনুসারে সাজানো তালিকা প্রতিটি উপাদান মাধ্যমে অনুসন্ধান অনুসন্ধান একের পর এক এক করে একের পর এক, এবং বাইনারি অনুসন্ধান 2 গ্রুপ মধ্যে তালিকা বিভাজিত হয়, চেক কি যে মান যদি আপনি অনুসন্ধান করছেন বড় মিডপয়েন্ট মান কম শুধু আপনি যে পাওয়া যায়, এবং যদি এটা কম, এটি নিম্ন তালিকা সঙ্গে যায় এবং তারপর আবার বিভক্ত যে, আছে একই ফাংশন সমস্ত উপায় নিচে পর্যন্ত এটি সমান মান স্থাপিত হতে মিডপয়েন্ট খুঁজে বের করে. রাইট. কেন আমরা যত্ন? কেন আমরা রৈখিক অনুসন্ধান বনাম বাইনারি অনুসন্ধান সম্পর্কে কথা বলে? হাঁ. বাইনারি অনেক দ্রুত, তাই যদি আপনি সমস্যা মাপ দুবার বরং এটি এক দুইবার হিসাবে অনেক বেশী পদক্ষেপ নেয়. ঠিক. এটা একটি বড় উত্তর. লিনিয়ার অনুসন্ধান খুব একটি সময়ে এক উপাদান পরীক্ষণ, এবং হিসাবে আমরা বক্তৃতা খুব প্রথম দিনে দেখেছি ডেভিড যখন তার ফোন বই উদাহরণ মাধ্যমে গিয়েছিলাম এবং ripped একটি সময়ে টেলিফোন বইয়ের একটি পৃষ্ঠা আউট এবং রাখা এবং বহুবার উপর যে আবার করছেন, তাকে একটি ফোন বই কেহ খুঁজে সত্যিই দীর্ঘ সময় নিতে হচ্ছে, যদি না, অবশ্যই, তিনি কারো জন্য বর্ণমালার খুব প্রারম্ভে খুঁজছিলাম. বাইনারি অনুসন্ধান সঙ্গে, আপনি অনেক দ্রুত যেতে পারেন, এবং এটি মাত্র দুইবার হিসাবে দ্রুত বা 3 বার হিসাবে দ্রুত বা 4 বার হিসাবে দ্রুত না. কিন্তু সমস্যা পায় এবং ছোট ছোট ছোট এবং অনেক তাড়াতাড়ি. এই ছবি আঁকা, আমরা কি ঘটছে সে সম্পর্কে কথা বলা শুরু করব যখন আমরা বাইনারি অনুসন্ধান লিখুন. হাতে সমস্যা হল যদি আমি সংখ্যার একটি অ্যারে আছে, 1, 2, 3, 5, 7, 23, 45, 78, 12323 বলে, এবং তারপর 0 সেঃ একটি টন সঙ্গে এটি পরে 9, আমরা চিন্তা করা সত্যিই দ্রুত কি সক্ষম হতে চান সংখ্যার এই অ্যারে. আমি জানি এই মূর্খ এবং মনে হচ্ছে একটু একটু কল্পিত, কারণ ডান এখন এটা. আমরা একটি অ্যারের যে এটা খুব অনেক উপাদান আছে না আছে, এবং যদি আমি আপনাকে এক জিজ্ঞাসা আউট জিনিসটা কিনা বা না 23 অ্যারের মধ্যে হল, আপনি যে চমত্কার দ্রুত করতে পারেন শুধু দ্বারা নেত্রপাত এই সময়ে এবং সম্পর্কে বলার yes অথবা no. এনালগ বিবেচনা যদি এই ছিল, কল্পনা, বলতে হয়, একটি সারি 10,000, 20,000 সারি সঙ্গে এক্সেল স্প্রেডশীট. অবশ্যই, আপনি কমান্ড ফল বা ফল নিয়ন্ত্রণ করবেন এবং কিছু খোঁজা যেতে পারে. এছাড়াও আপনি ফিল্টার এবং অনুসন্ধান উপাদান ব্যবহার করতে পারেন, কিন্তু যদি আপনি যে ফাইলটি লাইন মাধ্যমে পাতিপাতি দ্বারা যাও চেহারা ছিল, এটি একটি দীর্ঘ সময় আপনি সেটা খুঁজে নিতে হবে. এটা করার মত কোন ধরনের ফোন বই উদাহরণে খুব,, যেখানে একটি টেলিফোন বইয়ের এক পৃষ্ঠার মাধ্যমে একটি সময়ে কেউ দেখায়. সাধারণত, তারা মধ্যম যাও এটি খুলুন এব, অথবা ফোন বই ও অভিধান যেখানে অনেক ক্ষেত্রে আপনি আসলে এটা প্রথম চিঠি আছে অস্থির, যে প্রথম চিঠি আপনাকে এবং টুসকি খুলুন এবং সেখানে যাওয়ার মাধ্যমে শুরু. আপনার নামের আবার সম্পর্কে মনে করিয়ে দিন. >> স্যাম. Sam. ভালো লেগেছে স্যাম বলেন, যে রৈখিক অনুসন্ধান প্রক্রিয়া সত্যিই ধীর হবে, এবং পরিবর্তে বাইনারি অনুসন্ধান সঙ্গে, এই পদ্ধতি কাজ হল প্রতিটি সময় আমরা আমাদের অনুসন্ধান আলগোরিদিম একটি পুনরাবৃত্তির মধ্য দিয়ে যেতে হবে, আমরা অর্ধেক তালিকা, মূলত বিভক্ত করা যাচ্ছেন, দুটি ছোট তালিকা. লুপ এর পরবর্তী পুনরাবৃত্তিতে এবং তারপরে, আমরা এটি বাঁটা আবার করব অন্যান্য ছোট তালিকা. হিসাবে আপনি দেখতে পারেন, সমস্যা এবং ছোট ছোট পেয়ে রাখে কারণ আমরা তালিকা খারিজ অর্ধেক রাখা প্রতি একক সময়. কীভাবে এই বাতিল কাজ করে? শুধু হিসাবে একটি অনুস্মারক, আমরা কি করতে যাচ্ছি যদি আমরা একটি কম্পিউটার করছি এবং আমরা,, ছিল বলে এই তালিকার মধ্যে 5 নম্বর অনুসন্ধান আমরা মাঝখানে একটি নম্বর বাছাই করবে. এই তালিকার মধ্যম, কারণ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 নম্বর আছে, আমরা হয় 4 র্থ স্থান বা 5 নম্বর স্থান বাছাই চাই, এবং আমরা আমাদের যে তালিকা মধ্যম কল চাই. মাঝখানে নম্বর বাছাই করুন. তারপর, ঠিক স্যাম বলেন, আমরা যদি দেখতে যে নম্বর সমান পরীক্ষা হবে সংখ্যা যে আমরা পেতে চান অথবা আমাদের পছন্দসই নম্বর. এটি যদি সমান তারপর, আমরা এটা পেয়েছি. আমরা win. যদি সমান না, তারপরে ক্ষেত্রে একটি দম্পতি আছে. দুটি মামলা হয় সংখ্যা নম্বর আমরা এ খুঁজছেন তুলনায় আছে, অথবা এর চেয়ে কম. যদি এটি বৃহত্তর, আমরা অধিকার সরানো. এবং যদি কম, আমরা বাঁদিকে সরানো. এবং তখন আমরা আবার পুরো প্রক্রিয়ার পুনরাবৃত্তি উপর হয় ডান অর্ধেক বা তালিকার বাম অর্ধেক. আজ এর প্রথম বিভাগে সমস্যার চিন্তা করা হয় কিভাবে আমরা আসলে সি কোড এই প্রকাশ শুরু করতে পারেন. আমরা pseudocode করেছি এখানে পেয়েছিলাম. আমরা সেটিই হল শুরু করব আমি একটি নূতন স্থান থামা করব, এই সংস্করণ যাতে আমরা এই জন্য নোট সংরক্ষণ করে পরে আছে, আমরা এই সব মুছে দিন, এবং তারপর কপি সমস্যা সেট থেকে আটকান করব আমাদের স্থানে এই তথ্য, আশা এবং এই না বিরতি না. পারফেক্ট. যদি আপনি সব বলছি না যে, আপনার কপি করা এবং নতুন স্থান এই কোডটি পেস্ট করুন, মধ্যে একটি ফাঁকা এক. চলুন ড্যানিয়েল চেষ্টা করুন. আপনি যদি কম্পাইল এবং এই প্রোগ্রামটি চালানোর জন্য, এটি কাজ করছে না? এটা কি নং >> বলছে এর? এরা বলছে নিয়ন্ত্রণ অ অকার্যকর ফাংশন শেষে পৌঁছে. হ্যাঁ, তাই আমাকে এটি চালানোর চেষ্টা. আপনি কি এই না দেখা করার আগে? আপনি কি জানেন এর মানে কি? ঠিক আছে, আমি কি এই সামান্য বিট ব্যবচ্ছেদ. এটা file.c লাইনে 9 বলছে, আমরা 1 কলামের একটি ত্রুটি আছে এর, আপনি যেমন বলেছেন, এবং এটি বলছে যে এটি সতর্কতা এবং ত্রুটি রিটার্ন টাইপ সতর্কবার্তা থেকে এর গৌন. মনে রিটার্ন টাইপ, যা ইন্দ্রিয় তোলে সাথে কিছু ভালো হয়. আমরা একটি অ অকার্যকর ফাংশন আছে, যার মানে যে আমরা একটি ফাংশন পেয়েছেন যে অকার্যকর ফেরত দেয় না. একটি অকার্যকর ফাংশন হল এক ভালো যে দেখায়: অকার্যকর foo বিন্যাস (), এবং এটা অকার্যকর কারণ রিটার্ন টাইপ হয় অকার্যকর, যার মানে হল যে যদি আমরা এখানে কিছু ছিল ফিরতি 1 মত, আমরা এই জন্য কম্পাইলার ত্রুটি পেতে চাই. যাইহোক, আমরা একটি অ অকার্যকর ফাংশন আছে. আমাদের এই ক্ষেত্রে অ অকার্যকর ফাংশন আমাদের অনুসন্ধান ফাংশন কারণ এটি একটি bool ফেরত টাইপ আছে. যখন এটি যে একটি নিয়ন্ত্রণ অ অকার্যকর ফাংশন শেষে পৌঁছে এর বলছে, এর কারণ অনুসন্ধান একটি ফিরতি বিবৃতি আছে না. এই পার্টিশনটির ধরন bool কিছু ফেরত না. আমরা এটি ঠিক, এবং আপনি কি না কি মনে করতে পারেন ডিফল্ট অনুসন্ধান ফিরে উচিত? কি অনুসন্ধান ডিফল্ট ফিরতি মূল্য উচিত? কারণ কি আমরা শেষে লাগাতে পারেন. Charlotte, আপনার কাছে কোন-? সত্য বা মিথ্যা? >> সত্য বা মিথ্যা. কোনটি? মিথ্যা. আমি জানি না. মিথ্যা? চলুন এটি চেষ্টা করুন. আপনি কেন বলতে ফিরে মিথ্যা হবে? দারুণ অনুভূতি. [Charlotte] আমি জানি না. আমরা এই ক্ষেত্রে মিথ্যা ফিরে যাওয়ার কারণ আমাদের এই ডিফল্ট হবে করছি যদি কোনো কারণে তালিকা খালি বা সূচি যে আমরা না বিদ্যমান খুঁজছেন. তারপর খুব শেষে, যদি আমরা সত্য আগে প্রত্যাবর্তন করে এই কাজ না, সবসময় আমরা জানি যে এই ফাংশন নাঃ, এটা অ্যারের মধ্যে না বলতে হবে. আর খড়ের গাদা নাই. এখন যদি আমরা এবং কম্পাইল চালানোর জন্য এটি আমাকে এই যাতে আমরা এটি বৈঠাচালনা আপ সংরক্ষণ করতে পারেন. এখন যদি আমরা এবং কম্পাইল আমাদের প্রোগ্রাম চালানো, এটা তৈরী করে. আমরা আমাদের সামান্য প্রম্পট পেতে. যদি আমি আঘাত-4-uh উহু. এটা কিছু না মুদ্রণ. দেখে মনে হচ্ছে সবকিছু শেষ ঠিক আছে. আমরা এখনো সদস্য না হয়ে এই পূরণ পেয়েছেন আমরা এলগরিদম সম্পর্কে সায়ীদ pseudocode মধ্যে কিছুক্ষন আগে. সম্পর্কে চলুন দেখা যাক, এই সংরক্ষণ, এবং আমি যে অ্যালগরিদম পিছিয়ে আসা আবার করব. চলুন এই লোক আঘাত. না. এটা এখন পর্যন্ত. কিভাবে আমরা এই কাজ করে? কি শুরু এই কোড একটি বন্ধ জন্য ভাল কৌশল চান? আপনি মাঝখানে একটি নম্বর বাছাই আছে. কিভাবে আমরা একটি অ্যারের মাঝখানে একটি নম্বর বাছাই? কোন পরামর্শ? [ছাত্র] Strlen 2 দ্বারা বিভক্ত. Strlen 2 দ্বারা বিভক্ত. এটা একটি মহান এক. অ্যারে বিশেষ ধরণের সঙ্গে Strlen কাজ. কি ধরণের অ্যারে এর? স্ট্রিং অ্যারে, অক্ষর অ্যারে. এটা যে ধারণা একই সাজানোর যে আমরা প্রয়োগ করতে চান, কিন্তু আমরা strlen কারণ আমরা অক্ষরের একটি অ্যারের না ব্যবহার করা যাবে না. আমরা ints একটি অ্যারে আছে. Strlen কি তবে আমাদের জন্য পেতে পারি? আপনি কি জানেন যে এটা আমাদের জন্য পায়? [ছাত্র] Strlen পায় দ্বারা আমাদের. ঠিক, সেটা দ্বারা আমাদের. Strlen আমাদের জন্য অ্যারের দ্বারা পায়. কিভাবে আমরা আমাদের বাইনারি অনুসন্ধান প্রোগ্রামে যে পেতে পারি? কিভাবে একটি অ্যারের দ্বারা আপনি পেতে চান? [ছাত্র] Strlen? আপনি strlen সঙ্গে একটি সঠিকভাবে বিন্যস্ত C স্ট্রিং অ্যারের দ্বারা পেতে পারেন. সমস্যা যদিও, যে আমরা একটি স্ট্রিং অ্যারের না. যদি আমরা এই কোড ফিরে, আমরা এই পূর্ণসংখ্যা অ্যারে আছে. কিভাবে আমরা জানি না কতদিন এটা হয়? [ছাত্র] কি কোন শেষবিন্দু জন্য সমতুল্য int-l বা এরকম কিছু এক,? এটি সক্রিয় আউট আসলে না হয়, এবং তাই একটা উপায়, এই হল ঐ যে মাত্র সি সম্পর্কে জানতে ভাল এক, যে কোন উপায় একটি অ্যারের দ্বারা পেতে আছে সব যদি আমি আপনাকে দিতে হয় অ্যারে. কারণ এটি স্ট্রিং সাথে কাজ করে, কারণ strlen কাজ, এর কারণ যদি সঠিকভাবে একটি স্ট্রিং ফরম্যাট করা হয়, এটি খুব শেষে যে বিশেষ \ 0 চরিত্র থাকবে. আপনি কল্পনা আপনি যদি একটি অন্যায়ত ফরম্যাট স্ট্রিং থাকতে পারে এবং সেখানে এর কোন \ 0 অক্ষরের পরে, সমগ্র জিনিস কাজ করছে না. [ছাত্র] \ 0 আপনি যোগ করতে পারি? আমরা এই মামলা করতে পারে. আমরা \ 0 সাজানোর কিছু যোগ করতে পারে বা চরিত্র বোধক তারপর এবং কিছু সাজানোর যে ব্যবহার. কিন্তু যে কাজ পুরোপুরি যাচ্ছে না কারণ \ 0 একটি গৃহস্থালি টাইপ জন্য হয়, এবং এখানে আমরা ints পেয়েছেন. অন্যান্য বিষয় যদি আমরা একটি বিশেষ কোন মান ব্যবহার করতে হয় -1 মত একটি অ্যারের শেষে চিহ্নিত তারপর আমরা আমাদের মধ্যে একটি পূর্ণসংখ্যা অ্যারে -1 কখনই সঞ্চয় করতে পারে. আমরা চাই আটকে করা হবে. এটা পরিনত হয় যে একমাত্র উপায় দ্বারা পেতে সি একটি অ্যারের প্রকৃতপক্ষে এটি মনে রাখা হয় আপনি যখন এটি সেট আপ এবং তারপর এটি পাস অ্যারের সঙ্গে কাছাকাছি যাতে যখনই আমি একটি ফাংশন যা কিছু কাজ করে যাচ্ছে আছে উপর পূর্ণসংখ্যার বা floats একটি শ্রেণীবিন্যাস বা দ্বিগুণ বা কি আছে আপনি, আমি এটাও অ্যারে এর দ্বারা দিতে ফাংশন প্রয়োজন, এবং যে ঠিক কি আমরা অনুসন্ধান কাজ সম্পন্ন করেছি এখানে. যদি আপনি চেহারা, কি আমরা যখন আমরা আমাদের অ্যারের মধ্যে এখানে পাস করেছেন, আমরা দৈর্ঘ্য, আকার পাস. এটা ঠিক যে আমরা এই পরিবর্তনশীল এখানে বলা আছে, এই পরামিতিটি বা যুক্তি. এই একটি ফাংশন এর যুক্তি তালিকা অথবা পরামিতি তালিকা বলা হয়, এবং এই বলা হয় আর্গুমেন্ট অথবা পরামিতি. মানুষ বিভিন্ন সময়ে বিভিন্ন পদ ব্যবহার. আমি তাদের মাঝে মাঝে নিজেকে অদলবদল. এটা ঠিক যে এই একভাবে এখানে পরিবর্তনশীল নামে হয় যাও # এই পর্যন্ত সংজ্ঞায়িত এখানে. কিন্তু তারা একই জিনিস না. ক্যাপিটালাইজেশন ব্যাপার আছে. যদি আপনি কি এখানে চেহারা, আমরা ঘোষণা আমাদের int-এ অ্যারে, যা আমরা সংখ্যা বলা করেছি. আমরা এটিকে আমাদের আকার, যা আমাদের # শীর্ষে আপ সংজ্ঞায়িত অনুরূপ দিয়েছি. এটি 8 করা যাচ্ছে. এবং তারপর তারপর যখন আমরা আমাদের অনুসন্ধান ফাংশন কল নিচে নিচে, আমরা নম্বর পাস আমরা অনুসন্ধান করতে চান, যা আমরা অনুরোধ জানানো করেছি, ব্যবহারকারী থেকে অর্জিত. আমরা অ্যারের মধ্যে পাস এই সংখ্যা,, এবং তারপর আমরা অ্যারের আকার মধ্যে পাস করতে হবে, এবং তারপর আকার 8 মান সঞ্চিত সম্ভার এই পূর্ণসংখ্যা পরিবর্তনশীল নামক মাপ বা পাশ. আমরা অ্যারের আকার আছে. এখন যদি আমরা কি তার আগে আমরা যে বিষয়ে কথা বলছি ফেরত যান, আমি মনে করি দু আনা পয়েন্ট যে আমরা কি কি প্রয়োজন অ্যারের দ্বারা পেতে আপ এবং 2 দ্বারা এটি, বিভক্ত করা এবং যে মিডপয়েন্ট আমাদের দিতে হবে. চলুন দেখুন. দিবেন কারো এই লিখুন এবং তাদের স্থান তা সংরক্ষণ করব? Leila সম্পর্কে কিভাবে? আমি পারি আপনি এই লিখা? প্রথম লাইন যেখানে আপনি অ্যারের দৈর্ঘ্য এবং নিতে মিডপয়েন্ট পেতে লিখুন এবং একটি নতুন ভেরিয়েবলের মধ্যে এটি সঞ্চয়. আমি একটি দম্পতি যাও দেব. আপনি কি প্রস্তুত? [ছাত্র শ্রবণাতীত] নিশ্চিত, আপনি আমি নিরূপণ মিডপয়েন্ট থাকতে পারে অনুসন্ধান ফাংশন ভিতরে খড়ের গাদা অ্যারে খড়ের গাদা অ্যারের দ্বারা ব্যবহার করে, যা মাপ পরিবর্তনশীল? এখানে কিছু চতুর. [Leila] শুধু আকার / 2 এবং শুধুমাত্র এবং এটি সংরক্ষণ করুন এবং উপরে আঘাত সংরক্ষণ করা হবে বাটন আপ এখানে, এবং আমরা এটি বৈঠাচালনা নেব. পারফেক্ট. এখন পর্যন্ত আমরা যেতে. জট্টিল. যেমন, এই সঙ্কলন করা হবে? [Leila] না, এটা বেশী প্রয়োজন. [Nate] হ্যাঁ, তাই আমরা কি কি প্রয়োজন না? [Leila] লেগেছে int-মিডপয়েন্ট বা কিছু. জট্টিল. হ্যাঁ, এর কি যাক যে, int-মিডপয়েন্ট = আকার. এই সঙ্কলন করা হবে? চলুন এই মন্তব্যটি মুছে দিন এবং এটা সবচেয়ে ভাল উপায়. কম্পাইল কি এই সম্পর্কে হবে না? আমরা কিছু করছি পূর্ণসংখ্যা সঙ্গে হইনি, যাতে আমরা তা বা যে ভালো কিছু মুদ্রণ প্রয়োজন. হাঁ, ঠিক. আমরা একটি অব্যবহৃত ভেরিয়েবল পাবেন. কি এই বিষয়ে কাজ করতে হবে না? আমি মনে করি আপনি কিছু, স্যাম বলেন. Semicolons. হাঁ, আমি যারা semicolons অনুপস্থিত করছি. এটি একটি শব্দ অবশ্যই সারা ধ্রুব বিষয় হতে যাচ্ছে. চূড়ান্ত জিনিস আমি করব আমি উভয় পাশ কিছু সাদা স্পেস রেখে দেব এই এখানে অপারেটর, যেহেতু সাধারণত যে কিভাবে আমরা তা করতে অনুযায়ী আমাদের শৈলী গাইড. আমরা আমাদের অ্যারের মিডপয়েন্ট পেয়েছেন. এখন যদি আমরা আমাদের এলগরিদম ফিরে মনে রাখবেন, দ্বিতীয় ধাপে যে আমরা একবার আমরা মিডপয়েন্ট আছে কি ছিল কি ছিল? [ছাত্র] যদি এটি বৃহত্তর [শ্রবণাতীত]. হাঁ, আমরা তুলনা কিছু সাজানোর কি আছে, এবং আমরা কি হয় এখানে তুলনা? আপনি যদি বলেন এটি চেয়ে বড়. যে বাক্য উল্লেখ যাও মধ্যে এটা কি? নম্বর যে আসে আপ, যদি মিডপয়েন্ট অধিক তারপর, অ্যারের আপ যান? ঠিক তাই, সংখ্যা যে আসে যখন আমরা- সুই, তাই আমরা সুই যাও তুলনা করছি, আমরা কি এবং সুই বিরুদ্ধে তুলনা হয়? কারণ সুই কি আমরা খুঁজছি. আমরা এটাকে মিডপয়েন্ট পেতে তুলনা. কিন্তু এটা যাও যাও দেখুন জানার জন্য যদি সুই = মিডপয়েন্ট? কি যে জানার জন্য? কেহ কি অসম্মতি? এর এটি একটি চেষ্টা করা যাক, যদি (সুই == মিডপয়েন্ট). [ছাত্র] printf আপনি কি এটি পাওয়া গেছে. [Nate] Printf ("আমরা এটা পাওয়া যায় নি \ n"); অন্যথা-I'm কিছু এখানে কাজ শুরু করতে যাচ্ছে. আমি যদি বিবৃতি প্রায় সব সময় ধনুর্বন্ধনী নির্বাণ শুরু চলেছি কারণ শুধুমাত্র যদি আমরা আরো স্টাফ তারপর, যোগ আমরা কম্পাইলার পাবেন না. হাঁ, স্যাম. আপনি একটি পয়েন্ট পেয়েছেন. সমস্যা হল মিডপয়েন্ট অ্যারের মধ্যে একটি অবস্থানের প্রতিনিধিত্ব করে, কিন্তু আপনি কি এটা অ্যারের যে অবস্থানে মান উপস্থাপন করতে পারেন. এটা একটি বড় বিন্দু. সবাই কি শুনতে কি স্যাম বলেন? তিনি বলেন যে মিডপয়েন্ট হিসাবে হয় শুধু অ্যারের মধ্যে একটি অবস্থান উপস্থাপন করে, কিন্তু এটি অ্যারের মধ্যে প্রকৃত উপাদান না. আপনি যদি কোড হিসাবে মনে করা সম্পর্কে অধিকার এখন, যদি আমরা এই অ্যারে তাকান নিচে এখানে, যা তা 8 উপাদান আছে, মিডপয়েন্ট এই ফাংশন করা যাচ্ছে মূল্য কি? [ছাত্র] 4. [Nate] 4. যদি আমরা 4 নম্বর জন্য দেখুন - এবং আমরা শুধু এই কোড রান এবং এখানে একটু দুঃখী মুখ লাগাতে পারেন কারণ আমরা তা যদি আমরা এই কোড রান না খুঁজে পাইনি সঠিক হিসাবে এখন, এটি আপলোড, বিল্ডিং, আমাকে নিচে স্ক্রল, এবং যদি আমরা 4 নম্বর জন্য দেখুন, আমরা এটি পাওয়া যায় নি, কিন্তু আমরা এই কি printf হ্যাঁ না. এর একটি কারন হল যে আমরা সত্য না ফিরে, কিন্তু সত্যিই কি আমরা 4 নম্বর খুঁজতে? এবং কোন স্যাম বলছে না. কি আমরা খুঁজে পেতে? আমরা সত্যিই মিডপয়েন্ট, যা যদি আমরা অ্যারে তাকান নিচে এখানে পাওয়া গেছে, এটি সূচক 4 এর উপাদান যাও হবে যে আমরা এ খুঁজছেন, যা 23. কিভাবে আমরা আসলে কি মিডপয়েন্ট এ যে উপাদান পাওয়া এবং? মিডপয়েন্ট নিজেই ঠিক না [ছাত্র] আমরা গৃহস্থালির কাজ করা বা কিছু লিখতে পারেন? শুধু আউট কৌতুহল কি যে, কি? আপনি আরো একটু সম্প্রসারিত করতে পারি? আপনি নম্বর মধ্যে স্থান রুপান্তর আছে, তাই আপনার জন্য কিছু পেয়েছেন সংযোগ-আমি মনে করি গৃহস্থালির কাজ, কিন্তু এটা হতে পারে না. হাঁ, যে একটি ভালো পয়েন্ট. আমাদের অক্ষর, এই অক্ষরের মধ্যে করছি এই রূপান্তর অবস্থানের অনেক করছেন, প্রথম দুই সেট সমস্যা. এটা পরিনত হয় যে এখানে, এই হল প্রায় অনুরূপ একটি স্ট্রিং মধ্যে ith অক্ষর অ্যাক্সেস, যদি যে অর্থে তোলে. এখানে আমরা মিডপয়েন্ট উপাদান অ্যাক্সেস করতে চান. কিভাবে আমরা যে কি? কেভিন, আপনার কোন পরামর্শ কিভাবে আমরা তা করতে পারে না? আপনি খড়ের গাদা যেত না, খোলা বন্ধনী, মধ্য, বন্ধনী বন্ধ. আমাদের জন্য আপনি যে লিখতে পারি? এখানে এটি সংরক্ষণ করুন এবং আমরা যে থামা করব. আমরা এই লাইন এ 9 খুঁজছেন, এবং আমরা যে আমরা মিডপয়েন্ট যাও সুই তুলনা করতে না চান তাহলে বুঝতে করছি, কিন্তু পরিবর্তে, আমরা সুই তুলনা করতে চান আমাদের খড়ের গাদা অ্যারের মধ্যে স্থান মিডপয়েন্ট এ উপাদান. কুল. এখন পর্যন্ত আমরা যেতে. হাঁ, যে সুন্দর দেখায় ভালো, যদি (সুই == খড়ের গাদা [মিডপয়েন্ট]). আমরা এটি পাওয়া গেছে. এখন যদি আমরা একটু বিট আপ কোড-we'll পুনরালোচনা এটি প্রনয়ন, এটি সঞ্চালিত হয়, এবং এখন যদি আমরা 4 জন্য দেখুন, কারণ আমরা এখন আসলে আমরা 23 নম্বর পেয়ে করছি খুঁজে পাইনি তা না. আমরা 23 পেয়ে মান, করছি এবং তাই আমরা আমাদের সুই যাও তুলনা করছেন. কিন্তু ভালো. এটা সঠিক পথে একটি পদক্ষেপ. এটা কি আমরা করতে চেষ্টা করছেন. আমরা অ্যারের মধ্যে অবস্থানের বিরুদ্ধে সুই তুলনা করার চেষ্টা করছেন না অ্যারের মধ্যে প্রকৃত উপাদানের বিরুদ্ধে বরং. যদি আমরা ফিরে দেখুন আমাদের এলগরিদম পরবর্তী ধাপে আবার এখন, পরবর্তী পদক্ষেপ কি? Leila ইতিমধ্যে এটি সংক্ষেপে উল্লেখ করেছে. [ছাত্র] যদি এর চেয়ে বড় বা কম এবং তারপর যা উপায় সরানো সিদ্ধান্ত দেখুন. [Nate] হ্যাঁ, তাই কিভাবে যে আমরা কি চাই? আপনি কিছু-I'll এই সংস্করণ সংরক্ষণ করা যাবে না, এবং আপনি যদি কিছু লাইন যে করবেন রাখা. হাঁ, Charlotte. >> আমি একটা প্রশ্ন আছে. এটি মিডপয়েন্ট উচিত নয় - কারণ 1 প্রথম জিনিষ এটির বিষয়সূচি 0, তাই যদি আমরা 4 করা এর, যে আসলে আমরা চরিত্র খুঁজছেন না? হ্যাঁ, এবং অন্যান্য সমস্যার সঙ্গে যা- যে একটি মহান ধরা, কারণ কি এবং শেষ ঘটছে সম্ভবত যাচ্ছে যদি আমরা চলন্ত রাখা এবং প্রথমে আমরা সামঞ্জস্য না কখনও না? আমি তা মনে করছেন আমরা আপ শেষ হতে পারে অ্যাক্সেস করার চেষ্টা করা হয় অ্যারের 8 ম স্থান এ উপাদান, যা এই ক্ষেত্রে বিদ্যমান নেই. আমরা আসলে হিসাববিদ্যা কিছু সাজানোর করতে হবে যে আমরা কিছু শূন্য ইন্ডেক্স আছে. [Charlotte] দুঃখিত, আমি মিডপয়েন্ট অভিপ্রেত - বর্গাকার বন্ধনী মধ্যে 1. আমরা তা করতে পারে. আমরা এই সমস্যাটি আসা মাত্র কিছুক্ষনের মধ্যে ফিরে পাবেন. একবার আমরা প্রকৃত looping পেতে শুরু, যে যখন আমরা এই কাজ করে দেখতে আসবো. কিছু সময়ের জন্য, আমরা এই কাজের জন্য, কিন্তু আপনি সম্পূর্ণ অধিকার করতে পারেন. যে শূন্য ইন্ডেক্স প্রভাব যে আমরা অ্যাকাউন্ট জন্য প্রয়োজন হবে. চলুন দেখুন. কিভাবে চেয়ে বড় এবং কম-? [ছাত্র] আমি কিভাবে পেতে তার চেয়ে অনেক বেশী এবং কম অংশ না. আমি ঠিক নিশ্চিত কি যদি জানতে পারেন যে এটা কম মিডপয়েন্ট খড়ের গাদা থেকে কম বা বেশী বেশী প্রিন্ট ছিল না. এখানে আমি সঞ্চয় করতে পারেন কি I've- [Nate] হ্যাঁ, যদি আপনি কি আপনি পেয়েছেন সংরক্ষণ, এবং আমরা এটি বৈঠাচালনা নেব. এখন পর্যন্ত আমরা যেতে. [ছাত্র] আর আমি কি আমি জানি না কি জন্য প্রশ্ন চিহ্ন রাখা. [Nate] যে মহান দেখায়. এখানে আমরা প্রশ্ন চিহ্ন পেয়েছেন কারণ এখনও আমরা জানি না আমরা কি এখনো পুরোপুরি করতে যাচ্ছেন. চাই কি আমরা বিক্ষোভ ওহো, আমরা কিছু ধনুর্বন্ধনী আমাদের সমস্ত ভীতু পেয়েছেন হবে. আমরা এই ধনুর্বন্ধনী সংশোধন করব. এখন পর্যন্ত আমরা যেতে. এবং তাই আমরা চাই না আমাদের অ্যালগরিদম অনুযায়ী না,, আমরা যদি সুই খুঁজে না? কেস বলতে যে সুই কি আমরা এ খুঁজছেন তা তুলনায় কম. কেভিন. বাম অর্ধেক এ শুধু চেহারা. রাইট, তাই আমরা এখানে একটি মন্তব্য যে করা "বাম অর্ধেক তাকান." দেব এবং যদি সেলাই করা হয় মিডপয়েন্ট এ খড়ের গাদা অধিক কি, আমরা কি করতে চান? [ছাত্র] তারপর আপনি ডান অর্ধেক তাকান. ডান অর্ধেক তাকান, "ডান অর্ধেক এ. চেহারা" . খুব হীন নেই ঠিক এই সময়ে, তাই, সুন্দর জিনিস ভাল খুঁজছেন. কোড হিসাবে লিখিত সঙ্গে সমস্যা হয় কি? [ছাত্র] আপনি অর্ধেক জন্য শেষ নেই. রাইট, আমরা অর্ধেক জন্য শেষ হবে না. আমরা কেবল এই একবার মধ্য দিয়ে যেতে হয় যাব. আমরা কেবলমাত্র করছেন এক মিডপয়েন্ট তাকান যাচ্ছে. হয় উপাদান আছে, অথবা তা না. এই সম্পূর্ণ করার জন্য, আমরা পুনরাবৃত্তি কিছু সাজানোর কাজ করতে হবে. আমরা পুনরায় পর্যন্ত আমরা খুঁজে পেতে রাখা প্রয়োজন যে হয় উপাদান আছে কারণ হল, আমরা নিচে narrowed এবং পরিশেষে এটা পেয়েছি, অথবা এটা আছে, সেখানে আমরা করেছি এর কারণ সব জিনিস না মাধ্যমে লাগছিল অ্যারের যথাযথ এবং অর্ধেক পাওয়া গেছে যে সেখানে কিছুই. যখনই আমরা করেছি বেশী এই পুনরাবৃত্তি যাওয়া, কি আমরা ব্যবহার করতে যাচ্ছি? [ছাত্র] একটি লুপ. লুপ কিছু সাজান. হ্যাঁ. [ছাত্র] একটি Do-লুপ যখন আমরা এবং এটা যে করবেন এবং তারপর যখন দিবেন সুই যেখানে আমি নিশ্চিত যে সঙ্গে চালু ছিল সমান-I'm না আছে না. কিন্তু ধরনের মত না যে যতদিন এটি সমান মান যে ব্যবহারকারীর ইনপুট না. হ্যাঁ, তাই এর দেখতে দিন, কিভাবে নিজেকে এই লিখতে পারে? আপনি বলেন, এর একটি না সময় লুপ ব্যবহার করতে দিতে. কোথা থেকে শুরু করবেন না? রাইট আকার / 2 পরে [ছাত্র]. [Nate] ঠিক আছে, এবং কি আমরা চালু করতে হবে? আমরা পরে যখন পূরণ করব. আমরা কি করতে যাচ্ছি যাও না? [ছাত্র] আমরা সব উপাদান কাজ করতে চান আমরা যদি অংশে আছে কি না? [Nate] এই সমস্ত উপাদান কি, মহান. কপি এবং পেস্ট করুন. ওহ, আর মানুষ. চলুন শুরু করা যাক দেখুন যদি এই কাজ, যদি আমরা এই ট্যাবের উপর করতে পারেন. সুন্দর. ঠিক আছে, এবং আমরা তাই আপনার এই না আছে এটি সংরক্ষণ করুন. সমস্ত অধিকার, এবং আমরা এই কাজ করতে যাচ্ছি যখন- আপনি পরে যখন শর্ত ছিল কি ছিল? [ছাত্র] যদিও সুই সমান না, তাই ভালো বিস্ময়বোধক বিন্দু. কিন্তু আমি নিশ্চিত যে ঠিক কি এখনো হয় না. [Nate] হ্যাঁ, এই এক উপায় এটা. স্যাম, আপনি একটি মন্তব্য নেই? [স্যাম] আমি মনে ভিডিও দিকে তাকিয়ে, আমি মত এক একটি স্ক্রিনশট নেন যখন আমরা তার জন্য pseudocode কি, সবের্াচ্চ এবং কমপক্ষে মধ্যে কিছু সম্পর্ক ছিল. আমার মনে হয় এটা যদি সবের্াচ্চ হয় কমপক্ষে তুলনায় কম এর মত. বুঝেছি. [স্যাম] অথবা যদি সবের্াচ্চ যে ভালো কমপক্ষে বা কিছু কম হল না, কারণ যে আপনি সবকিছু সন্ধান করেছেন মানে হবে. হ্যাঁ, তাই এটি সর্বোচ্চ এবং কমপক্ষে উল্লেখ ছিল মতো নিস্বন? [স্যাম] মূল্যবোধ যে-পূর্ণসংখ্যার যে পরিবর্তন হতে চলেছে আপেক্ষিক যাও যেখানে আমরা মিডপয়েন্ট করা. ঠিক. এই মুহুর্তে [স্যাম], এটি [শ্রবণাতীত] সর্বোচ্চ এবং কমপক্ষে নিরূপণ. যাও যাচ্ছে মিডপয়েন্ট হয় এই সর্বোচ্চ এবং কমপক্ষে ধারণা. কি যে ভাবেন যাও জানার জন্য? যদি আমরা কিভাবে আমরা এই পুনরাবৃত্তি করতে যাচ্ছেন এ খুঁজছেন শুরু হয়, আপনি সম্পূর্ণ অধিকার যে আমরা কাজ যখন লুপ কিছু সাজানোর ব্যবহার করতে চান. কিন্তু আমি অনুমান যদি আমরা মনে রাখতে কি এই অ্যারের স্থানে এর ঘটনাসমূহ এবং আসলে কী ঘটছে-I'm এর মাধ্যমে লিখুন যাচ্ছে এখানে- বাইনারি অনুসন্ধান খুব প্রথম পুনরাবৃত্তির সময়, আমরা আছে- আমি বো এবং ই শুরুতে বোঝান ব্যবহার যাচ্ছি. এবং তারপর আমাদের অ্যারের শেষ. আমরা জানি যে 4 ডান আরম্ভে এখানে বেশী হয়, এবং আমরা জানি যে, শেষ হয় 108. বলুন, আমরা সংখ্যা 15 অনুসন্ধান করছেন. প্রথমবার আমরা এই কাজের জন্য, যেমন আমরা আগে দেখেছি, মিডপয়েন্ট হয় 16 বা 23 হবে কিভাবে আমরা সেটা নিরূপণ উপর নির্ভর করে. যেহেতু বরাবর মাঝখানে বিভাজক এই স্থান আমাদের দিতে হবে 16 এবং 23 এর মধ্যে, আমরা এটি সমানভাবে বিভক্ত করা যাবে না অথবা এটি বিভক্ত করা এবং একটি সত্য মিডপয়েন্ট পৌঁছান. আমরা 16 এ সন্ধান করব. আমরা "আরে, 16> 15 যে আমরা খুঁজছি." বুঝতে পারবেন তারপর অ্যারের বাম অর্ধেক তাকান আমরা কি আপ কাজ শেষ করবেন তা খারিজ এই সমগ্র উপরের অংশ এবং বলছে, "ঠিক আছে এখন, আমাদের এন্ডপয়েন্টের এখানে হবে." আমাদের লুপ এর পরবর্তী পুনরাবৃত্তিতে, আমরা এখন এই অ্যারে এ করছি, কার্যকরভাবে এই অংশ থাকার কারণে এখন বাতিল যদি আমরা মিডপয়েন্ট যাও আদ্যন্ত মধ্যে পার্থক্য করা গ্রহণ করছেন, আমরা আমাদের মিডপয়েন্ট 8 যাও খুঁজে পেতে হবে, যা আমরা পরে 8 নম্বর যেখানে এটি আমরা খুঁজছেন সম্পর্কিত দেখুন পরীক্ষা করতে পারবেন, 15, যে 15 এর থেকে বড়, তাই আমরা তালিকা ডান অংশ সরাতে আছে, যা আমরা জানি কারণ আমরা মানুষ, এবং আমরা তা দেখতে পারেন. আমরা জানি যে ডান অংশ হতে যাচ্ছে যেখানে আমরা সেটা খুঁজে পেতে হয়, কিন্তু কম্পিউটার যে, তাই আমরা কি করব তা করবেন তা আমরা আসলে পাবেন না জানি এই পর্যন্ত যান, এবং এখন আদ্যন্ত একই স্পট, তাই মিডপয়েন্ট হয়ে তালিকায় শুধুমাত্র এক পর্যায়ে নম্বর, যা 15, এবং আমরা তা খুঁজে পাওয়া যাচ্ছে. কি যে যেখানে এই পুরো সবের্াচ্চ এবং কমপক্ষে স্বরলিপি যাচ্ছে কিছু হালকা চালা, অ্যারের শেষ ট্র্যাক পালন করার চিন্তা কিভাবে জিনিষ নিচে সংকীর্ণ? কি এখন যদি এই ছিল সমান 15 যাও না কেন? যদি আমরা 15 এবং এর পরিবর্তে, করছিলেন, এই সংখ্যা 16 এ? আমরা, "বলতে চাই ওহ, এটি বৃহত্তর. আমরা বাম ফিরে যেতে চাই. " এবং আমরা আমাদের ই ডান দিকে সরাতে চাই, যা বিন্দু আমরা এন্ডপয়েন্টের যে বিবাদী হবে আছে. এটা কোনো উপাদানের জন্য আরো অনুসন্ধান করতে পারব না কারণ এখন আমরা আমাদের এন্ডপয়েন্ট এবং আমাদের প্রারম্ভ বিন্দু আছে, আমাদের সর্বোচ্চ এবং আমাদের কমপক্ষে এখন, ফ্লিপ করা হয়. আমরা সম্পূর্ণ অ্যারে মাধ্যমে অনুসন্ধান. আমরা কিছু খুঁজে পাচ্ছি না. যে বিন্দু যা আমরা বলে, "ঠিক আছে, আমরা এই অ্যালগরিদম থামাতে চলুন চাই চাই. আমরা কিছু খুঁজে পাওয়া যায় নি. আমরা জানি এটা এখানে নাই. " কিভাবে এই যাচ্ছে? [ছাত্র] কিভাবে ঠিক কম্পিউটার শেষ সুইচ আছে? কিভাবে শেষ না শুরুতে আগে শেষ? শেষ শুরুর আগে সমাপ্ত কারণ গণিতের যে আমরা প্রতিটি সময় আমরা এই কাজ করতে যাচ্ছেন. আমরা যেভাবে বিনিময় করা হয় যদি আপনি খুব প্রথমবার তাকান আমরা নতুন swap না যেখানে আমরা 4 আদ্যন্ত আছে এ সব 108 ডাউন উপায় এবং আমাদের মিডপয়েন্ট, 16 এ, বলে - আমি এই ফিরে রিসেট করতে যাচ্ছে 15-যদি আমরা 15 খুঁজছেন করছি, আমরা জানতাম যে আমরা কি কি যখন আমরা 16 চেক এবং দেখেছি যে এটি ছিল বৃহত্তর এবং সমগ্র তালিকা ডান অংশ বাতিল চেয়েছিলেন, আমরা দেখেছি যে আমরা কি করতে চেয়েছিলেন এই ই অধিকার এখানে সরানো হয়. কার্যকরীভাবে, ই মিডপয়েন্ট আগে এক সরানো হবে. একইভাবে, যখন আমরা আলগোরিদিম এই পুনরাবৃত্তির কি এবং মিডপয়েন্ট 8 টার সময় ছিল, আমরা দেখেছি যে 8 <15, তাই বো সরাতে চেয়েছিলেন মিডপয়েন্ট বাজে. এখন, আদ্যন্ত এই 15 বছর বয়সে একসঙ্গে উভয়. যদি আমরা চাই ঘটছে হয়েছে কিছু অন্যান্য মান 15, হইনি জন্য চেহারা, অথবা যদি এই পরিবর্তে 15 ছিল একটি 16, আমরা দেখেছি যে ই মিডপয়েন্ট আগে এক সরাতে আমরা চাই না. এখন ই ফ্লিপ বো কম হতে হবে. যাক কিভাবে আমরা আসলে শেষ পর্যন্ত এই অ্যালগরিদম কোডিং ভিতর দিয়ে হেটে যেতে. আমরা জানি যে আমরা এই মিডপয়েন্ট হিসাব চাই. আমরা আরও জানতে পারি যে আমরা শুরুতে এবং অ্যারের শেষ ট্র্যাক করতে চান আমাদের বর্তমান অ্যারের তাই আমরা চিন্তা করতে পারেন যেখানে এই তালিকার বাম অর্ধেক হয় এবং যেখানে তালিকা অধিকার অর্ধেক হয়. আমরা শুরু হয় এবং শেষ যে না, অথবা আমরা তাদের কমপক্ষে এবং সর্বোচ্চ কল করতে পারেন. আমি এবং শুরু এই সময় শেষ হয়ে ব্যবহার করব. যখন আমরা শুরু করব, যদি আমরা আমাদের উদাহরণ এখানে ফিরে তাকান ডাউন, আমাদের শুরুতে অ্যারের শুরুতে খুব স্বাভাবিক হিসাবে সেট, ছিল. এই সূচক ছিল কি? আরম্ভ করার জন্য আমাদের কি করা উচিত? ড্যানিয়েল. [ড্যানিয়েল] খড়ের গাদা [0]. [Nate] হ্যাঁ, তাই আমরা এটি সেট সমান খড়ের গাদা পারে [0]. সমস্যা যদিও, যে এই দেয় আমাদের প্রথম উপাদান অবস্থান না. এটি আপনাকে প্রথম যে প্রথম অবস্থান এ উপাদান বা প্রকৃত মান সূচী আমাদের. [ছাত্র] যে .20 রূপান্তর হবে? [Nate] এই কি করবেন, ভাল হয়, এটি কোনো রূপান্তরিত করে দেবে না. এটা কি করবেন এটা শুরু একটি 4 সংরক্ষণ করবে, এবং তারপর এটি যাও বিরুদ্ধে শুরু তুলনা করা কঠিন হবে কারণ শুরু অধিষ্ঠিত 4 মান করা হবে, যা আমাদের অ্যারের শুরুতে, কিন্তু আমরা অ্যারের মধ্যে সূচকগুলি ট্র্যাক করতে চান মান হিসাবে বিরোধিতা. আমরা আসলে একটি 0 ব্যবহার যে মত, করব. অ্যারে-Charlotte শেষে জন্য একটু আগে পর্যন্ত এই আনা. এই যেখানে আমরা অ্যাকাউন্টে শূন্য ইন্ডেক্স নেব. Charlotte, কি অ্যারের শেষ হবে? শেষ সূচী কি? [Charlotte] ফাইলের আকার - 1. হাঁ, এবং যার আকার আমরা ব্যবহার করব? মূলধন মাপ অথবা ছোট আকারের আমরা ব্যবহার করব? ক্যাপিটাল আকার. এই ক্ষেত্রে, আমরা মূলধন আকার ব্যবহার করতে পারেন. যদি আমরা এই ফাংশন পোর্টেবল হতে চেয়েছিল এবং অন্যান্য প্রোগ্রামের জন্য এই ফাংশান ব্যবহার, আমরা আসলে ছোট আকার ব্যবহার করতে পারেন. এটা খুবই সূক্ষ্ম. কিন্তু কোরআন হচ্ছে, তা সম্পূর্ণই অধিকার যে আমরা মাপ চাই - 1. এই সময়ে- [ছাত্র] কিভাবে এটি যে আপনি য়ের বড়হাতের অক্ষর ছোটহাতের আকার ব্যবহার করতে পারেন? কিভাবে এটি যে আমরা য়ের বড়হাতের অক্ষর ছোটহাতের আকার ব্যবহার করতে পারেন? এটা পরিনত হয় যে এইসব # সংজ্ঞায়িত সত্যিই হয়, ফণা অধীন, যেমন একটি পাঠ্য এবং অনুসন্ধান করে প্রতিস্থাপন, যদি যে অর্থে তোলে. আপনি যখন আপনার কোড কম্পাইল, preprocessing ফেজ ফাইলের মাধ্যমে কম্পাইলার যায়, এবং এটি অনুসন্ধান সর্বত্র যে আপনি মূলধন আকার লিখিত করেছি, এবং এটি একটি পরিবর্তে 8 সঙ্গে আক্ষরিক যে টেক্সট ঠিক সেই মতো,. যে অর্থে, এই একটি পরিবর্তনশীল থেকে খুব আলাদা. এটি মেমরি মধ্যে কোনো স্থান নেই আপ না নিতে. এটা একটা সহজ পাঠ প্রতিস্থাপন কৌতুক. এই ক্ষেত্রে, আমরা মাপ ব্যবহার চলুন. এখান থেকে আমরা কিছু বাছাই করা পুনরাবৃত্তি করতে চান না, এবং ঠিক দিকে আমরা আমাদের কি সময় লুপ দিয়ে থাকেন. আমরা কিছু করতে চান না হওয়া পর্যন্ত আর একটি শর্ত না রাখা, এবং হিসাবে আমরা আগে দেখেছি, আমরা দেখেছি যে যে শর্ত প্রকৃতপক্ষে ছিল যে আমরা শেষ করতে না চান যাও কম শুরু হবে. এটি আমাদের বাঁধন শর্ত. এই পরিস্থিতিতে, আমরা যাও, ভালো থামাতে এবং ডিক্লেয়ার করতে চান "আরে, আমরা কিছু খুঁজে পাওয়া যায় নি." এই প্রকাশ, আমরা লুপ কিছু সাজানোর ব্যবহার করতে চান না. এই ক্ষেত্রে, এটা করা না সময় লুপ, একটি লুপ জন্য, যখন একটি লুপ হবে? আমরা কি একটি সময় এখানে লুপ আছে. আপনি কি যে পদ্ধতির মত না? আপনার কি মনে হয় আমরা একটি ভিন্ন পদ্ধতির চেষ্টা করা উচিত? কেভিন, কোনো চিন্তা? আমরা যখন একটি লুপ আছে কারণ আমরা সর্বোচ্চ জানতে পারে শুরুর যে কোন সময়ে কমপক্ষে তার চেয়ে অনেক বেশী হবে. হ্যাঁ, তাই কোনও আরম্ভের যে ঘটতে প্রয়োজন আছে. যারা না সময় loops হয় মহান যখন আপনি কিছু আরম্ভ আছে আগে তারপর এখানে যেহেতু পরীক্ষা, আমরা জানি যে আমরা উভয় শুরু এবং শেষ reinitializing রাখা চলুন না লুপ প্রতি বৃত্তাকার. আমরা জানি যে আমরা তাদের আরম্ভ করতে চান, তাহলে আমাদের অবস্থা পরীক্ষা. এই ক্ষেত্রে, আসলে আমি একটি সহজ যখন লুপ দিয়ে যাবেন. এটা পরিনত হয় যে কাজ যখন loops মোটামুটি কদাচিৎ ব্যবহৃত হয়. জায়গা অনেক করবেন না এমনকি শেখান না যখন loops. ঐগুলি ব্যবহারকারীর ইনপুট ধরার জন্য ভাল, তাই আমরা তাদের অনেক দূর পর্যন্ত দেখা করেছি. কিন্তু স্বাভাবিক জন্য এবং যখন loops হয় অনেক বেশি প্রচলিত. এটি সক্রিয় যে হিসাবে এই শর্ত লিখিত সত্যিই অনেক ভাল না আমাদের, এবং কেন করা হল? আমি দুঃখিত, আমি আপনার নাম জানি না. আমি জেরি. >> দুঃখিত? এটা বি-O-r-U-আমি. ওহ, ঠিক আছে. আমি আমার তালিকা করবেন আপনি দেখতে পাচ্ছেন না. ওহ, এটা কারণ, উহু, যে অর্থে তোলে. আপনি কি কেন এই সময় লুপ হিসাবে উদ্দেশ্যে কাজ করতে পারে একটি ধারণা আছে, শর্ত হিসাবে হবে? [জেরি] আপনি ভালো মানে আপনি যে সমস্ত উপাদান পরে এটি করতে চান? হাঁ, যাতে এর এক. আমরা যখন লুপ, যা হচ্ছে, তা সম্পূর্ণই সত্য মধ্যে এই সমস্ত জিনিস করা থাকতে পারে. অন্য যে কাজটা কিছুটা আরো সমস্যাযুক্ত যদিও, যে এই অবস্থা কাজ করছে না. [ছাত্র] আপনি এটা টুসি প্রয়োজন. রাইট, তাই এই অবস্থা কখনো সত্য হতে পারে না প্রথমে উপায় আমরা এটা সম্পর্কে বলার হবে. আমরা কিছু করতে চাই শেষ পর্যন্ত <লাগা, কিন্তু আমরা যখন কিছু করতে চান ≤ শেষের শুরু. সেখানে আছে যুক্তি যে বিপরীতমুখী. আমি যার ফলে সব সময় যারা ভুল করে দোষী. [ছাত্র] কেন এটা কম বা সমান হবে? কারণ আপনি যে ক্ষেত্রে আমরা পেয়েছিলাম মনে রাখতে হবে যেখানে শুধুমাত্র একটি উপাদান ছিল, এবং আমরা নিচে, এবং আমরা শুধু আমাদের অ্যারের মধ্যে 15 এ করছিলেন? এবং আমাদের শুরু এবং শেষ ছিল আমাদের একই উপাদান. আমরা নিশ্চিত যে আমরা যে কেস হ্যান্ডেল করতে চাই. আমরা যদি সরাসরি কম হয়নি, আমরা শুধু একটি উপাদান 2-অ্যারের নিচে পেতে হবে. একবার আমরা যে শেষ উপাদান আছে নিচে, যদি যে ছিল আমাদের উপাদান, আমরা কখনও খুঁজে পেতে চাই. এখন এখানে, আমরা ঠিক মত বলছে আপনি কি ছিল তা করতে পারেন. আমরা আমাদের অধিকার যখন লুপ মাঝের মধ্যে স্টাফ plopping শুরু করতে পারেন. আমরা আমাদের মিডপয়েন্ট মধ্যে অকস্মাৎ করতে পারেন. আমরা এই সব যদি বিবৃতি নিতে পারেন, তাদের উঠিয়ে ফেলবেন না এই সময় লুপ, তাদের মধ্যে অকস্মাৎ, একটি সামান্য বিট আপ জিনিস পরিষ্কার, এবং এগিয়ে যান এবং আমি এই সংস্করণ সংরক্ষণ করব. এবং এই সময়ে, আমরা চমত্কার বন্ধ হচ্ছে করছি. Sam. আমি মনে করি তবে আপনাকে = আকার আছে int-মিডপয়েন্ট আছে - 1/2. বুঝেছেন, আকার - 1/2. কিছু আছে অন্যথায় আমরা যে লাইন সম্পর্কে পরিবর্তন প্রয়োজন? এটা ছিল একটি ভাল ধরা. মাপ করবেন কি? হয় আমরা কি মাপ পরিবর্তন? যাতে ভালো লাইন রেখে, আমরা মাপ পরিবর্তন করতে হবে. আমরা প্রত্যেক সময় আমরা লুপ জন্য যান আকার আছে. কিন্তু মনে রাখবেন, যখন আমরা আমাদের উদাহরণ মাধ্যমে অল্পমাত্র বিট আগে চালু ছিল, এবং আমরা 4 আরম্ভে ছিল এবং সব শেষে ২ 108 ওভার উপায়? আমরা কিভাবে কি মিডপয়েন্ট কষা? হয় আমরা আকার ব্যবহার করে? অথবা আমরা শুরু এবং শেষ পরিবর্তে ব্যবহার করা হয়? এটা শেষ এবং শুরুর মধ্যে পার্থক্য. ঠিক, এবং কিভাবে ঠিক যে আমি, লিখুন Charlotte উচিত? শুধু শেষ - লাগা. 1 - আপনি যা করতে হবে না কারণ - 1 শেষ মধ্যে অন্তর্ভুক্ত করেনি এবং ইতিমধ্যে শুরু হয়েছে. [Nate] গ্রেট, আপনি সম্পূর্ণ অধিকার. কারণ যে 1 - - 1 টি হয়েছে অন্তর্ভুক্ত আমরা না না যখন আমরা শেষ পরিবর্তনশীল আরম্ভ করার জন্য এবং দায়ী. সেখানে অন্য কিছু আমি চিহ্নগুলি সিন্টেক্সের ক্ষেত্রে করার জন্য এই লাইন জানার জন্য আছে? [ছাত্র] প্লাস >> শুরু. প্লাস শুরু করব? শেষে [ছাত্র]. কারণ এটি শুধুমাত্র অর্ধেক এর দ্বারা নির্ণিত. আপনি শুরু যুক্ত করতে হবে. [Nate] এই কি আমাদের জন্য গণনা করা হবে? যদি শেষ সম্পর্কে আমরা এই লুপ খুব প্রথম পুনরাবৃত্তির উপর মনে হয়, শেষ অবস্থান সূচক 7 করা যাচ্ছে. অবস্থান 0 সালে শুরু হয়. মনে রাখবেন, আমরা হয় খুঁজছেন অবস্থান 3 বা 4 অবস্থান. যদি আমরা এই গণিত তাকান মাত্র, এটি একটি সামান্য আরো স্পষ্ট না, কিছু সংখ্যা এখানে রাখুন, আমরা 7, 0 আছে, তাই 7 - 0, এবং তারপর / 2 পূর্ণসংখ্যা বিভাগের 3, যে হয়. তারপর আমরা ফিরে যাও যোগ আমাদের শুরু করতে হবে? আমরা এই ক্ষেত্রে না. প্রথম পুনরাবৃত্তির অন, এটি সূক্ষ্ম কারণ শুরু হয় 0 হতে হবে. কিন্তু আমরা অগ্রগতি হিসাবে, আমরা সত্যিই কি সব ঠিক প্রয়োজন শেষ - / শুরু 2. এখানে এখন পর্যন্ত অন্য একটি কৌতুক, এবং যে যেমন হয় পূর্ববর্তিতার এক. [ছাত্র] আমরা প্রথম বন্ধনী কি প্রয়োজন? [Nate] যথাযথভাবে, এবং যে কারণ আমরা যদি এই প্রথম বন্ধনী করা না, তারপর এই লাইন পরিবর্তে ব্যাখ্যা করা হবে হিসাবে (শেষ) - (/ শুরু 2), যা আমরা স্পষ্টভাবে চান না. যারা প্রাধান্য নিয়ম জন্য দেখুন. [ছাত্র] কেন 'শেষ হয় না লাগা? কেন, শেষ হয় না লাগা? [ছাত্র] কেন যে এটা না? কেন এটা করা হবে '? আমি মনে করি আপনি ঠিক. [ছাত্র] যেহেতু এটি গড়? [Nate] শেষ + +, আরম্ভ করার জন্য আপনি সম্পূর্ণ অধিকার. বাহ, আমি সম্পূর্ণই goofed. আপনি ঠিক. আমরা যদি সেটা না - সূচক হয়, আমরা ফিরে ইন শুরু করবে যোগ করতে চান এই ক্ষেত্রে, আপনি খুবই অধিকার যে আমরা দুটি গড় নিতে চান, তাই আমরা তাদের হিসাবে যোগ বিয়োগ তাদের বিরোধিতা করতে চায় না. [ছাত্র] এছাড়াও কাজ শেষ হলে কি হবে - / + 2 লাগা শুরু. এটা যদি আমরা না, তাই আমি বিশ্বাস করবে. উদাহরণস্বরূপ, যদি আমরা এ শুরু করছিলেন, এবং আমরা এখানে স্থানান্তরিত উপর 15. এখন শুরু অবস্থান 2 এ. অবস্থান 7 সময়ে শেষ হয়. যদি আমরা তাদের বিয়োগ, আমরা 5 পেতে. 2 দ্বারা ভাগ যে, আমরা 2 পেতে. এবং তারপর আমরা 2 যোগ ফিরে, এবং যে 4 র্থ স্থান আমাদের পায়, যা ডান এখানে, যা মিডপয়েন্ট. [ছাত্র] আমরা মোড়ানো যত্ন নেওয়া প্রয়োজন কি? কি অর্থে আমরা যাও মোড়কে যত্ন নেওয়া প্রয়োজন? যদি যোগফল বা মধ্যে পার্থক্য আমরা কিভাবে তা করবেন তার উপর নির্ভর করে একটি এমনকি সংখ্যা নয়. তারপর কম্পিউটার যখন এটা 2.5 কিনা বিভ্রান্ত পরার; আমি বাম বা ডান যা মিডপয়েন্ট নির্ধারণ সরানোর জন্য? বুঝেছি. এটা যে পূর্ণসংখ্যা বিভাগ সঙ্গে সক্রিয় আউট, আমরা এইসব ফ্লোটিং পয়েন্ট সংখ্যা কখনও পাবেন না. আমরা দশমিক পেতে না. এটি সম্পূর্ণই বাতিল করা. যদি আপনি একটি কম্পিউটার দুটি ভেরিয়েবল int-এ বিভক্ত করা, এবং এক 7, এবং অন্যান্য 2, আপনি একটি ফলাফল হিসাবে 3.5 পাবেন না. এটা 3 পেতে হবে. বাকি খারিজ করা হবে, তাই এটা কার্যকরভাবে rounding- বৃত্তাকার কিন্তু একটি নয়, বরং একটি তল, যদি আপনি না হয় গণিত যে সঙ্গে পরিচিত, যেখানে আপনি পুরোপুরি দশমিক বাতিল, এবং তাই মূলত আপনি ছিন্ন করছি এটি কাছের ডাউন সমগ্র নিকটতম পূর্ণ সংখ্যায় স্থান,. [ছাত্র] কিন্তু তারপর যে সমস্যাযুক্ত কারণ যদি আপনি 7 উপাদানের একটি অ্যারে আছে তারপর স্বয়ংক্রিয়ভাবে নেয় যে এর পরিবর্তে 4th মিডপয়েন্ট এর 3 য় উপাদান আউট. কিভাবে আমরা যে মোকাবেলা? এটা সমস্যাযুক্ত কারণ যদি আমরা 7 শ্রেণীবিন্যাস ছিল, এটি পরিবর্তে 4th এর 3 য় বাছাই করবে. আপনি আরো একটু ব্যাখ্যা করা যায়নি? [ছাত্র] কারণ যদি আপনি 7 উপাদান পরে আছে 4 র্থ উপাদান মিডপয়েন্ট, ডান হবে? শূন্য হচ্ছে ইন্ডেক্স সম্পর্কে আপনার মতামত, যদিও মনে রাখুন. [ছাত্র] হ্যাঁ, তাই অবস্থান 3. যে মিডপয়েন্ট হবে. হাঁ. ওহ, ঠিক আছে. আমি দেখতে কি আপনি কি বোঝাতে চেয়েছেন. এটা অদ্ভুত ধরনের, এই হিসাবে আমরা পুরো ধারণা ব্যবহার করতে পারেন পেয়ে decimals পরিত্রাণ. এটা একটি বড় বিন্দু. চলুন এই পর্যন্ত শেষ. আমরা আমাদের মিডপয়েন্ট হিসাব করেছি. আমরা যদি আমাদের সুই সমান মধ্যম মান দেখতে পরীক্ষা করছি. আমরা যে আমরা এটি পাওয়া মুদ্রণ, কিন্তু সত্যিই কি করছি, আমরা এই পরিস্থিতিতে কাজ করতে চান না? আমরা এটা করেছি পাওয়া গেছে, তাই আমরা অভ্যাগত জানেন যে আমরা এটা পাওয়া যাক চান. আমরা একটি ফাংশন এর একটি বুলিয়ান টাইপ ফাংশন পেয়েছেন. উপায় আমরা আমাদের ফাংশন কলার সংকেত যে আমরা যেতে প্রস্তুত হয় আমরা বলে, "আরে, এটা সত্য." কি যে আমরা, না কেভিন চান? আপনি আপনার মাথা করছি অল্প সময়ের. >> [কেভিন] রিটার্ন পাবে সত্য. [Nate] যথাযথভাবে, সত্য ফিরে. এখন, যদি এটা সমান না, কিভাবে আমরা বাম অর্ধেক তাকান চান? কোন ধারণা? স্টেলা, কোনো ধারনা? আপনি একটি শেষ জন্য নতুন স্থান সেট প্রয়োজন. হাঁ. শেষ - তাই আমরা মিডপয়েন্ট অবস্থান করতে হবে. গ্রেট. আমরা শেষ জন্য একটি নতুন অবস্থানে সেট প্রয়োজন বাম অর্ধেক তাকান. এই ছিল কি আমরা যেখানে আগে স্বপ্ন আমি রাখা এই উদাহরণে ফিরে যাচ্ছে. আমি এখানে শুরু করেছেন, এবং তারপর আমি এখানে আছে সব ওভার শেষ উপায়. আবার, যদি আমরা 15 খুঁজছেন, এবং আমাদের মিডপয়েন্ট 16 এ, এবং আমরা বুঝতে পারছি, "উফ, 16 থেকে বড়. আমরা বাম অর্ধেক বদল করতে চান. " আমরা তখন 15 শেষ সরাতে হবে, এবং আমরা গ্রহণ মিডপয়েন্ট এক থেকে দূরে চলে গেলে যা করবেন এবং আমাদের নতুন শেষ হিসাবে যে সেটিং. একই ভাবে, যদি আমরা ডান অর্ধেক তাকান চাই, কিভাবে যে আমরা কি চাই? আপনার কাছে কি কোন ধারণা আছে? [ছাত্র] আপনি ঠিক সেট যাও + 1 টি মিডপয়েন্ট শুরু. [Nate] গ্রেট. এবং এখন ক্ষেত্রে যে আমরা কিছু খুঁজে না, তা নিয়ে যাওয়া আমাদের জন্য যত্ন পেতে পারি? ড্যানিয়েল, যে জন্য আমাদের জন্য যত্ন নেওয়া হবে? [ড্যানিয়েল] নং [Nate] যদি আমরা সম্পূর্ণ অ্যারে মাধ্যমে এটি করা এবং আমরা কিছুই না পাওয়া যায়, যেখানে যে যত্ন হবে, অথবা তা আমরা যত্ন নিতে হবে? [ড্যানিয়েল] যখন অবস্থা. [Nate] হ্যাঁ, যখন অবস্থা, ঠিক. এটা সম্পূর্ণ অ্যারের মধ্যে দিয়ে যাচ্ছিলেন যত্ন যদি আমরা কিছু খুঁজে না নিতে হবে. এই সময় লুপ শেষ হয়ে যাবে. আমরা এই অবস্থার সম্মুখীন করবে না, এবং আমরা মিথ্যা ফিরে আসতে পারেন. আমরা এই ছুটি এখানে ভালো করতে পারেন যদি কারণ যদি এই স্টেটমেন্ট যদি সত্য হয়, এবং আমাদের ফাংশন ফিরে আসতে হবে, এবং তাই আমরা মূলত পরিত্যাগ এই সময়ে এই ফাংশন পাবেন যখন আমরা ফিরে সত্য. কিন্তু এই কাঠামোর সঙ্গে কি এখানে হয়? এই সম্পূর্ণভাবে কাজ, অথবা করা হয় না কিছু আছে লজিক্যাল ফাট? এটার সেট আপ এর সঙ্গে এখন পর্যন্ত কিছু আছে লজিক্যাল খুঁত,. এটা কি হতে পারে? [ছাত্র] আপনি কেন প্রয়োজন - এবং + 1s? যে আমাদের অ্যারের সেট আপ আমাদের নতুন বাম এবং ডান অর্ধেক অর্ধেক হতে হবে. [ছাত্র] কিন্তু কেন আপনি ছাড়া এটা করা যেত না - 1s এবং + 1s? [Nate] আমরা এটা সেট সমান মিডপয়েন্ট পারে? কি যে আমার সমস্যা হতে পারে? [ছাত্র] আমি অনুমান এটা অদক্ষ, কারণ আপনি একটি মান ইতোমধ্যেই চেক করা হয়েছে চেক করছি. [Nate] যথাযথভাবে তাই, স্যাম হচ্ছে, তা সম্পূর্ণই অধিকার. আপনি যদি সেট শেষ এবং শুরু সমান মিডপয়েন্ট যাও পরিবর্তে - 1 এবং + reflectively 1, ভবিষ্যতে কিছু সময়ে আমরা আবার চেক আপ মিডপয়েন্ট শেষ করব. [ছাত্র] আমি pset শুরু, তারপর এবং আমি যে মত কিছু ছিল যেখানে আমি + 1 ভুলে গেছি, এবং এটি একটি অসীম লুপ আটকে গিয়েছে. কিছু পয়েন্ট কারণ ডান, আপনি পেতে শুরু এবং শেষ চলুন না প্রকৃতপক্ষে ওভারল্যাপ করে. কুল. আরও একটি লজিক্যাল খুঁত আছে, এবং সেই স্পষ্টভাবে এই হওয়া উচিত একটি অন্যথায় যদি. কেন যে হতে পারে? কারণ যদি এটা যদি আপনি এটি-নি, কেভিন দেখতে একটি অন্যথায় না? [কেভিন] হ্যাঁ, কারণ আপনি শেষ বিন্দু পরিবর্তন করছি. [Nate] যথাযথভাবে. আমরা শেষবিন্দু পরিবর্তন করছি, এবং এটি যদি এই-we'll ভালো লেখা মধ্যবর্তী শূণ্যস্থান করা এটি এই কেস চেক করবে. এই ক্ষেত্রে, যদি এটা সফল, ফাংশন পরিত্যাগ আউট হবে. তারপর এটি এই পরবর্তী কেস চেক করবে, এবং যদি এই গেলে, এটি শেষবিন্দু সমন্বয় করা, এবং তারপর এটা এবং অবিরত এই কেস চেক করবে. কিন্তু এই সময়ে, আমরা তা চেক করে অবিরত করতে চান. সৌভাগ্যবসত, এখানে আমরা পুনরায় সেট আছে মিডপয়েন্ট না, এবং আমরা জানি যে এই ক্ষেত্রে সফল হবে না. কিন্তু আমরা নিশ্চিতভাবে অন্য লাগাতে চান যদি সেখানে যদিও যে, এই ক্ষেত্রে বল যেহেতু আমরা মিডপয়েন্ট সামঞ্জস্য না থাকেন, যে একটি পার্থক্য করতে হবে? না, কারণ এই ধরনের একচেটিয়া. আবার, আমার খারাপ. আমরা এই অন্যথায় না, আমি মনে করি, যদি প্রয়োজন হয় না. আমরা চেষ্টা করে দেখুন এবং এটি চালানো এবং দেখুন সেখানে কি ঘটছে তা দিতে পারে. বিল্ডিং, একটি ত্রুটি ঘটেছে. এটা সম্ভবত এর কারণ আমি এখানে এই বো এর এবং এর ই বাকি. কি আমি শীর্ষে যারা পর্যন্ত কোনো আরো আছে? এটা মনে হচ্ছে না. আমরা জুম আউট, নির্মাণ, যায় এটা আছে, তাই এখন যদি আমরা 15 অনুসন্ধান করার জন্য, হ্যাঁ. আমাকে জুম ইন 15, হ্যাঁ. আমরা এটিকে আবার চালাতে পারেন. সোর্স কোড আপলোড, ভবন, চলমান. আমরা কিছু জন্য 13 ভালো অনুসন্ধান করতে পারেন, এবং আমরা কিছু প্রিন্ট আউট, তাই এটি ফাইন্ডিং না না পেতে পারি যে আমাদের জন্য. দারুণ, কারণ এটি আমাদের তালিকায় না. আমরা সময় এখন আউট হয়. যে এই সপ্তাহের জন্য এর তা হতে যাচ্ছে. যোগদান করে, এবং আপনি পরে দেখতে পারে তার জন্য ধন্যবাদ. [CS50.TV]