[Powered by Google Translate] [অনুচ্ছেদ 4] [কম আরামদায়ক] [Nate Hardison] [হার্ভার্ড বিশ্ববিদ্যালয়] [এটি CS50.] [CS50.TV] সমস্ত অধিকার, অধ্যায় ফিরে স্বাগত জানাই. এই সপ্তাহে এর অংশে আমরা জিনিষ কয়েক করতে যাচ্ছেন. আমরা প্রথম সংক্ষিপ্তবৃত্তি সমস্যা সেট 2 যাও চলুন, যা সিজার এবং Vigenère সমস্যা সেট. এবং তারপর আমরা ক্যুইজ 0 পর্যালোচনার মধ্যে আকর্ষণীয় যাও চলুন এবং একটি সময় সামান্য বিট recapping আমরা যে বিষয়ে কথা বলত ব্যয় করেছি মধ্যে বক্তৃতা প্রতিটি এতদূর, এবং আমরা কয়েক সমস্যা করব থেকে আগের বছর এর quizzes. এই ভাবে আপনাকে বলছি যে প্রস্তুতির জন্য একটি ভাল উপায় আছে. শুরু করার জন্য, আমি ভালো সমাধান কয়েক বুট আপ করেছি আগের সমস্যা সেট জন্য, সমস্যা সেট করুন এই মহাকাশ 2,. যদি আপনি সব না এই লিঙ্কটি আঘাত, এবং যদি আপনি আমার নাম এবং ক্লিক করুন আমার প্রথম সংস্করণ ক্লিক করুন আপনি caesar.c, যা ঠিক কি আমি খুঁজছি দেখতে পাবেন. যাক এই সম্পর্কে সত্যিই এর দ্রুত কথা বলা. এই মাত্র একটি নমুনা সমাধান. এই নিখুঁত সমাধান অগত্যা না. বিভিন্ন উপায়ে এই লিখুন আছে, কিন্তু কিছু বিষয় আছে যা আমি হাইলাইট করতে চেয়েছিলাম আছে আমি দেখেছি যে হিসাবে আমি শূন্য ছিল, সাধারণ ভুল মনে এই সমাধান হ্যান্ডলিং খুব ভাল কাজ আছে. প্রথম শীর্ষে হয় হেডার মন্তব্য নেই কিছু বাছাই করা হচ্ছে. লাইন 1 7 মাধ্যমে আপনি বিস্তারিত দেখুন, কি ঠিক এই প্রোগ্রাম করছে. একটি ভাল প্রমাণ অভ্যাস যখন আপনি সি কোড লেখার নির্বিশেষে যদি আপনার একটি প্রোগ্রাম, ফাইল বা একক মধ্যে অন্তর্ভুক্ত করা হয় তা একাধিক ফাইল বিভক্ত এর উপর থেকে কিছু বাছাই করা আছে উপরের মন্তব্যটি orienting. যারা ঐ সব আউট যান এবং বাস্তব জগতে কোড লিখুন জন্য হয়. এটি যেখানে তারা কপিরাইট তথ্য রেখে দেব. নীচে # অন্তর্ভুক্ত. লাইন 16 অন এই #, সংজ্ঞায়িত যা আমরা আসতে শুধুমাত্র একটি বিট ফিরে করতে পারেন. এবং একবার তারপর শুরু হয় ফাংশন প্রধান একবার শুরু,, কারণ এই সমস্ত প্রোগ্রাম করা হয়েছে একটি একক কার্যকারিতা অন্তর্গত প্রথম যে কাজটা ঘটবে এবং এই হল খুব বাগ্বৈশিষ্ট্যসম্মত এবং একটি সি প্রোগ্রাম সাধারণত কমান্ড লাইনে যে লাগে আর্গুমেন্ট হল যে অবিলম্বে এটি পরীক্ষা করা জন্য যুক্তি গণনা, argc. রাইট এখানে আমরা দেখতে যে এই প্রোগ্রাম 2 আর্গুমেন্ট আশা ঠিক হয়. মনে রাখবেন যে প্রথম যুক্তি যে বিশেষ এক আছে যে সর্বদাই যে প্রোগ্রাম চালানো হচ্ছে নাম, এক্সিকিউটেবল ফাইলের নাম. তাই এই কি আছে এটা প্রোগ্রাম ব্যবহারকারীর কাছ থেকে বাধা সঙ্গে আরো বা তার কম আর্গুমেন্ট. কারণ আমরা এই অধিকার জন্য দূরে যাও চেক করতে চান কারণ আমরা আসলে এই argv অ্যারের অ্যাক্সেস অধিকার এখানে নির্ভরযোগ্যভাবে পারেন যতক্ষণ না আমরা কিভাবে বড় এটা দেখতে চেক করেছি. সাধারণ ত্রুটি আমি দেখেছি একটা মানুষের মধ্যে অবিলম্বে যেতে চাই এবং অর্থগৃধ্নু ব্যক্তি argv [1]. তারা কি যুক্তি অ্যারের বাইরে এবং দখল করা একটি না আমি এটি পরীক্ষা চাই, এবং তারপর তারা argc জন্য পরীক্ষার হিসেবে পরবর্তী পরীক্ষা করতে চাই, হবে কি না তা প্রথম যুক্তি সত্যিই একই সময়ে একটি পূর্ণসংখ্যা, এবং যে ক্ষেত্রে কাজ করে না কারণ না যে কোন সরবরাহকৃত আর্গুমেন্ট আছে আপনি একটি যুক্তি আছে যে হইনি বা দখল করা হবে এক যে আছে না দখল প্রয়াস. অন্যান্য বড় বিষয় যে আপনি লক্ষ্য করা উচিত যে আপনি সবসময় সাহায্যকারী একটি ত্রুটির বার্তা, কিছু বাছাই করা প্রিন্ট আউট করতে চান যাও প্রাচী তাদের ব্যবহারকারী. আমি নিশ্চিত আপনি সমস্ত প্রোগ্রাম সঞ্চালন যেখানে হঠাৎ সব এটি বিপর্যস্ত করেছি, এবং আপনি এই হাস্যকর সামান্য যে পপ আপ ডায়লগ এবং বলছেন পেতে কিছু ভয়ঙ্করভাবে রহস্যপূর্ণ হয়তো দেয় এবং একটি ত্রুটির কোড বা ওই জাতীয় কিছু যে কোন অর্থে তোলে. এটি যেখানে আপনি কি সত্যিই কিছু সহায়ক প্রদান করতে চান ব্যবহারকারী যাও লক্ষ্যবস্তু এবং যাতে তারা যখন এটি চালানোর জন্য তারা "ওহ," মুখ করতল যান. "আমি জানি ঠিক কি. আমি জানি কেমন এই ফিক্স." যদি আপনাকে একটি বার্তা প্রিন্ট না করেন তাহলে, আপনি শেষ পর্যন্ত আসলে ব্যবহারকারী যাও রেখে যান আপনার সোর্স কোড পরীক্ষা যাও জিনিসটা কি ভুল হয়েছে. এছাড়াও রয়েছে কিছু সময় যে আপনি বিভিন্ন ত্রুটি কোড ব্যবহার করব. এখানে আমরা এক সময়ে একটি ত্রুটি ঘটেছে বলে ব্যবহৃত, একটি ত্রুটি ঘটেছে, একটি ত্রুটি ঘটেছে. বিগার প্রোগ্রাম, প্রায়ই প্রোগ্রাম যে অন্যান্য প্রোগ্রামের দ্বারা বলা হয়, বিভিন্ন পরিস্থিতিতে বিশেষ ত্রুটি কোড ফেরত কিছু বাছাই করা হবে যাও programmatically যোগাযোগ কি আপনি অন্যথায় would শুধু জন্য একটা চমৎকার ইংরেজি বার্তা ব্যবহার. কুল. আমরা হিসাবে কাজ করে, আপনি আমরা কী উঠিয়ে ফেলা দেখতে পারেন. আমরা যদি কী ফিট করে দেখতে পরীক্ষা. আমরা ব্যবহারকারী থেকে একটি বার্তা পেতে. কারণ আমরা এই মধ্যে তা করে না এবং যখন লুপ-এই এমন কিছু বিষয় যা আমরা আবরণ হবে এতে সামান্য বিট কিন্তু এটি সক্রিয় করে যদি আপনি নিয়ন্ত্রণ ডি টাইপ করুন যখন আপনি যে GetString টার্মিনাল প্রম্পট পেতে কি যে আসলে এটি একটি বিশেষ অক্ষর পাঠায় প্রোগ্রাম. এটা ELF বা ফাইলটি অক্ষর শেষে বলা হচ্ছে. এবং যে ক্ষেত্রে, আমাদের বার্তা স্ট্রিং নাল হবে, তাই এই জন্য আমরা কিছু চেক সমস্যা নিজেকে সেট ছিল না. কিন্তু হিসাবে আমরা এখন যান, যে আমরা পয়েন্টার সম্পর্কে কথা বলতে শুরু করেছেন এবং গতিশীল গাদা মেমরি বরাদ্দকরণের, পরীক্ষণের জন্য নাল যখনই আপনি একটি ফাংশন যে সামর্থ্য আছে নাল একটি মান হিসাবে এমন কিছু বিষয় যা আপনি করছেন অভ্যাসের মধ্যে পেতে চাইবেন ফিরে. প্রাথমিকভাবে এই চিত্রণ জন্য এখানে. কিন্তু আপনি যখন ভবিষ্যতে GetString দেখুন না, তাই সমস্যা 4 থেকে সেট করুন, আপনার মনের মধ্যে এই রাখতে চাইবেন. আবার, এই সমস্যা হয় 3 সেট থেকে এখনো আমরা আচ্ছাদিত এটি না করার জন্য কোনো সমস্যা নয়. পরিশেষে, আমরা এই অংশ যেখানে আমরা প্রধান এনক্রিপশন লুপ পেতে পেতে, এবং যাচ্ছে এখানে একটা দম্পতি আছে. প্রথমত, আমরা সমগ্র বার্তাটি স্ট্রিং নিজেই উপর বারবার. এখানে আমরা বাংলাদেশের strlen রাখা কল করেছি, যা আপনার একটি নম্বর সরু একটি দুর্দান্ত উপায় যেতে হয় না. এই ক্ষেত্রে সক্রিয় আউট এটা এছাড়াও মহান হইনি, একারণে আমরা বার্তাটি নিজেই বিষয়বস্তু পরিবর্তন করছি ভিতরে লুপ জন্য, তাই যদি আমরা একটি বার্তা যে 10 অক্ষর দীর্ঘ আছে, প্রথম সময় আমরা যে লুপ আরম্ভ strlen জন্য কি ফিরে আসবে? 10. কিন্তু যদি আমরা বার্তা, পরিবর্তন বলতে আমরা তার 5th চরিত্র সংশোধন করুন, এবং একটি \ 0 অক্ষরের মধ্যে আমরা 5 ম অবস্থানে নিক্ষেপ করা, পরবর্তী পুনরাবৃত্তিতে উপর strlen (বার্তা) কি তা ফেরত দিতে হবে না প্রথমবার আমরা খুব iterated, কিন্তু এটি পরিবর্তে 5 কারণ আমরা যে নাল টারমিনেটর মধ্যে ছুড়ে ফেলে দেবে, এবং স্ট্রিং এর দ্বারা সংজ্ঞায়িত করা হয় দ্বারা যে \ 0 অবস্থান. এই ক্ষেত্রে, এই একটি দুর্দান্ত উপায় কারণ আমরা স্থানে এটি পরিবর্তন করছি না. কিন্তু আপনি যে এই বিজ্ঞপ্তি আসলে আশ্চর্যজনক সহজ এনক্রিপ্ট যদি আপনি সঠিক গণিত পেতে পারেন. সমস্ত প্রয়োজনীয় এর কিনা বা চিঠি না যে আপনি খুঁজছেন তা চেক করা হল হয় য়ের বড়হাতের অক্ষর ছোটহাতের বা ছোট হাতের. কারণ আমরা কেবল যে পরীক্ষা আছে এবং আমরা জন্য চেক না একটি আলফা ক্ষেত্রে কারণ যদি একটি য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর বা যদি এটা ছোট হাতের অক্ষর ব্যবহার তারপর এটা স্পষ্টভাবে এর একটি বর্ণানুক্রমিক অক্ষর, কারণ আমরা য়ের বড়হাতের অক্ষর ছোটহাতের এবং ছোট আকারের সংখ্যা নেই. অন্যান্য জিনিস আমরা না এবং এই হল একটি সামান্য চতুর- হয় আমরা মান সিজার সাইফার সূত্র পরিবর্তন করেছি আমরা যে সমস্যা সেট নির্দেশের মধ্যে দিয়েছেন. এখানে কি ভিন্ন হয় যে আমরা subtracted য়ের বড়হাতের অক্ষর ছোটহাতের ক্ষেত্রে পুঁজি একটি, এবং তারপর আমরা মূলধন একটি যোগ শেষে মধ্যে ব্যাক. আমি জানি যে আপনি কয়েক আপনার কোড আছে এই কাজ. আপনি কি কোন আপনার জমা করি? আপনি এই করেছেন. আপনি কি এই ব্যাখ্যা আছে Sahb, করতে পারি? দ্বারা এটি subtracting আউট, কারণ আপনি এটি ডান পরে একটি mod কি, আপনি তা গ্রহণ করা, যাতে আপনি যেভাবে [কাশি] স্থান পেতে আছে. এটা যোগ করার পরে ফিরে দ্বারা এবং তারপরে আপনি যে আপনি যেমনটি উপর স্থানান্তরিত. হাঁ, ঠিক. বলেন কি Sahb ছিল যে, যখন আমরা যুক্ত করতে চান আমাদের বার্তা এবং আমাদের একসঙ্গে কী এবং তারপরে, যে mod mod যে দ্বারা NUM_LETTERS, যদি আমরা আমাদের বার্তা যথাযথ 0 যাও 25 পরিসীমা মধ্যে না পরা প্রথম হইনি, তারপর আমরা আপ একটি সত্যিই অদ্ভুত নম্বর পেয়ে শেষ হতে পারে কারণ মান যে আমরা যখন আমরা বার্তা [i] তাকান এ খুঁজছেন, যখন আমরা আমাদের প্লেইন টেক্সট বার্তার ith অক্ষর তাকান, এই 65 যাও 122 পরিসীমা কোথাও একটি মান য়ের বড়হাতের অক্ষর ছোটহাতের একটি ছোট হাতের অক্ষর ব্যবহার z-র মাধ্যমে জন্য ASCII মানের উপর ভিত্তি করে. এবং যখন আমরা 26 অথবা NUM_LETTERS এটি mod, যেহেতু যে ছিল আমাদের # উপরের ডানদিকে আপ এখানে সংজ্ঞায়িত, যে আমাদের একটি মান 0 থেকে 25 সীমার মধ্যে যে দিন যাচ্ছে, এবং আমরা যে তারপর ফিরে আনুপাতিক হারে বাড়ান একটি উপায় প্রয়োজন এবং এটি উপযুক্ত হওয়া ASCII পরিসীমা পেতে. সবচেয়ে সহজ উপায় হল যে শুধু সবকিছু স্কেল কমান হয় 0 25 পরিসীমা মধ্যে দিয়ে শুরু করতে, এবং তারপর শেষে সবকিছু ব্যাক আপ নামান. আরেকটি সাধারণ ত্রুটি যে আমি দেখেছি মানুষের মধ্যে চালানো হয় যে যদি আপনি আসলে এই আরোহী করবেন না সরাসরি এবং আপনি একসঙ্গে বার্তা এবং কী যুক্ত এবং আপনি জুড়তে, বলে, একটি গৃহস্থালি পরিবর্তনশীল, যে সঙ্গে সমস্যা হল থেকে বার্তা [i] একটি অপেক্ষাকৃত বড় নম্বর শুরু সঙ্গে- মনে রাখবেন এটা অন্তত 65 যদি এটা একটা য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর, যদি আপনি একটি বৃহৎ কী,, বলার মত কিছু আছে 100, এবং আপনাকে সেই 2 যোগ একসঙ্গে একটি সাইন গৃহস্থালির কাজ আপনাকে একটি ওভারফ্লো পেতে যাচ্ছেন মধ্যে. আপনি একটি মান 127 এর অধিক মাপের পেতে যাচ্ছেন, যা বৃহত্তম মান যে একটি গৃহস্থালি পরিবর্তনশীল ধরে রাখতে পারেন. আবার, যে কেন আপনি সেই সঙ্গে শুরু করে সাজানোর করতে চাই. যে ক্ষেত্রে চারপাশের কিছু কিছু লোকের কাজ যদি অন্য একটি এবং পরীক্ষার দ্বারা পেয়েছিলাম যদি এটি ওভারফ্লো করবে দেখতে আগে যে করছেন, কিন্তু এই ভাবে প্রায় পায়. এই সমাধান তারপর মুদ্রিত এবং আমরা খুব শেষে পুরো স্ট্রিং আউট. অন্য লোকেরা মুদ্রিত একটি সময়ে একটি চরিত্র আউট. দুটোই সন্ত্রস্ত. এই সময়ে, আপনি কোন প্রশ্ন আছে কি না এই সম্পর্কে কোন মন্তব্য,? জিনিস আপনি চান, যা আপনি পছন্দ করেন না? আমি একটি প্রশ্ন ছিল. হয়তো আমি আপনার ব্যাখ্যা সময় তা হয়নি, কিন্তু কিভাবে আছে এই প্রোগ্রাম টেক্সট দৈর্ঘ্যের কী সংযোগ জন্য শূণ্যস্থান থামিয়া? এটা সিজার সাইফার. >> ওহ, দুঃখিত, হাঁ. হাঁ, আমরা যা দেখতে পাবেন. সিজার সাইফার আমরা যে আশেপাশে পেয়েছিলাম কারণ আমরা শুধুমাত্র অক্ষর ফ্লিপ করা. আমরা কেবল তাদের ঘোরানো যদি তারা য়ের বড়হাতের অক্ষর ছোটহাতের বা ছোট হাতের. আপনি বোধ না এই বিষয়ে প্রশংসনীয় ভাল? এই বাড়িতে কপি নির্দ্বিধায়, সময় লাগবে, না কি আপনি লিখেছেন তা তুলনা. নিশ্চিতভাবে খুব এটি সম্পর্কে প্রশ্ন পাঠাতে নির্দ্বিধায়. এবং আবার, বুঝি যে আপনার সমস্যার সাথে এখানে লক্ষ্য সেট আপনাকে বলছি আপনার সমস্যা সেটের জন্য নিখুঁত কোড লিখতে পেতে না হয়. এটা একটা শেখার অভিজ্ঞতা. হাঁ. পিছনে না যখন লুপ, যদি এটা সমান নাল, তাই ঠিক নাল কিছুই মানে, শুধু তারা আঘাত লিখুন? নাল একটি বিশেষ পয়েন্টার মান, এবং আমরা নাল ব্যবহার যখন আমরা বলতে চাই আমরা একটি পয়েন্টার পরিবর্তনশীল যে কিছুই প্রতি নির্দেশ আছে. এবং তাই এটি সাধারণত এর অর্থ হল এই পরিবর্তনশীল, এই বার্তা পরিবর্তনশীল খালি, এবং এখানে, কারণ আমরা CS50 বিশেষ স্ট্রিং টাইপ ব্যবহার করছেন, CS50 স্ট্রিং টাইপ কি? আপনি কি কি দেখা যায় এটা যখন ডেভিড টানা বক্তৃতায় ফণা ফিরে? এটা একটা ভীতু-এর পয়েন্টার ডানে,? ঠিক আছে, হাঁ >>. এটি একটি গৃহস্থালি *. এবং সত্যিই তাই আমরা এই প্রতিস্থাপন করতে এখানে ডান সঙ্গে গৃহস্থালি * বার্তা, এবং তাই GetString ফাংশন, যদি এটি ব্যবহারকারী থেকে একটি পংক্তি সফলভাবে না পান, এটি একটি পংক্তি, বিশ্লেষণ করা এবং এক ক্ষেত্রে যা এটা একটি পংক্তি সঠিকরূপে মীমাংসা করা সম্ভব করতে পারেন যদি ব্যবহারকারী ফাইলটি অক্ষর, নিয়ন্ত্রণ ডি শেষ ধরনের, যা হয়, কিন্তু কিছু না সাধারণত আপনি যদি এমন ঘটে তাহলে তারপর ফাংশন বলছে একটি উপায় হিসাবে এই নাল মান প্রত্যাবর্তন করা "আরে, আমি. পান নি একটি পংক্তি নির্মিত হবে না" কি যদি আমরা = নাল করা বার্তাটি না করে, যা এমন কিছু বিষয় যা এখনো আমরা সেটিই হয়েছে না? কেন যে এখানে একটা সমস্যা হবে? কারণ আমি জানি যে আমরা মেমরি তথ্য ফাঁসের সম্পর্কে বক্তৃতা মধ্যে কিছুক্ষন কথা বললাম. হ্যাঁ, এর যে না দেওয়া, এবং এর যাক দেখুন সেখানে কি ঘটছে. বেসিল এর প্রশ্ন ছিল কি আসলে আমরা যদি না থাকে এই বার্তা = নাল পরীক্ষা? চলুন শুরু করা যাক উপরে স্ক্রল আপ. আপনাকে বলছি এই মন্তব্য করতে পারে. বাস্তবিক, আমি একটি সংস্করণ তা সংরক্ষণ করব. এই সংশোধনের 3 হবে. আপনি কি এই প্রোগ্রাম চালানো কি করবেন তা আপনি এই গীয়ার আইকন এখানে ক্লিক করতে হবে, এবং আপনি তা একটি যুক্তি যুক্ত করতে হবে. আপনি এটি কি যুক্তি দিতে যেহেতু আমরা একটি কমান্ড লাইন আর্গুমেন্ট পাস করতে চান করতে হবে. এখানে আমি 3 নম্বর দিতে যাচ্ছি. আমি 3 চান. এখন ফিরে zooming আউট, প্রোগ্রাম. এটা চলমান কম্পাইল করার প্রণালী, এর ভবন. আমরা শুরু করছি. এটি লেখার অনুরোধ করা হবে এর জন্য অপেক্ষা করছে. যদি কিছু আমি হ্যালো-যেখানে ভালো টাইপ করুন যে কোথায় গেছে? ওহ, আমার প্রোগ্রাম চালানোর জন্য অনেক দীর্ঘ. আমি অত্যন্ত দীর্ঘ জন্য jawing ছিল. এটা এখানে যায়. এখন আমি হ্যালো টাইপ. আমরা দেখতে যে এটা উপযুক্তভাবে এনক্রিপ্ট করে. এখন কি আমরা যদি ফিরে যাও নাল প্রম্পট GetString করবেন? মনে রাখবেন, আমি তাকে বললাম যে আমরা কি যে দ্বারা একই সময়ে নিয়ন্ত্রণ ডি টিপে. আমি এখানে স্ক্রল আপ করব. আমরা এটিকে আবার চালাতে হবে. বিল্ডিং. এটি এখন পর্যন্ত যায়. এখন যখন আমি নিয়ন্ত্রণ ডি আঘাত আমি এই লাইন যে opt/sandbox50/bin/run.sh, সেগমেন্টেশন ফল্ট না. আপনি কি না দেখা যায় যে আগে? [ছাত্র] কেন কোন->> দুঃখিত? [ছাত্র] কেন হয় এই ক্ষেত্রে কোর ডাম্প? কোর ডাম্প হয়-প্রশ্ন কেন হয় এখানে কোন কোর ডাম্প? প্রশ্ন হতে পারে যে আছে, কিন্তু কোর ডাম্প একটি ফাইল যে হার্ড ড্রাইভের মধ্যে সংরক্ষিত হয়. এই ক্ষেত্রে আমরা কোর ডাম্প অক্ষম করেছি রান সার্ভারে যাতে আমরা মানুষ seg না আছে faulting এবং বিল্ডিং কোর ডাম্প টন পর্যন্ত. তবে পেতে পারেন. কোর ডাম্প অত্যন্ত ধীরে সঞ্চালিত হয় আর সাজানোর যে আপনি প্রায়ই নিষ্ক্রিয় করতে পারেন, এবং কখনও কখনও কি. সেগমেন্টেশন ফল্ট, আপনার প্রশ্নের উত্তর, বেসিল, যে আমরা একটি পয়েন্টার অ্যাক্সেস করতে চেষ্টা বলছে না যে কিছু নির্দেশ ছিল সেট না. ভিডিওতে Binky মনে রাখবেন যখন Binky চেষ্টা একটি পয়েন্টার যে কিছু ইশারা না অ্যাক্সেস করতে যান? আমি এই ক্ষেত্রে অনুমান টেকনিক্যালি কিছু পয়েন্টার প্রতি নির্দেশ করা হয়. এটা নাল, যা টেকনিক্যালি 0 এর প্রতি নির্দেশ করে, কিন্তু যে একটি সেগমেন্ট যে পাওয়া যাবে না করা সংজ্ঞায়িত করা হয় আপনার প্রোগ্রামের দ্বারা, তাই আপনি একটি সেগমেন্টেশন ফল্ট দেখা পাওয়া কারণ আপনি অ্যাক্সেস মেমরি করছি না যে একটি বৈধ সেগমেন্ট আছে ভালো গাদা সেগমেন্ট বা স্ট্যাক সেগমেন্ট বা তথ্য সেগমেন্ট. কুল. কোন সিজার সম্পর্কে আরো প্রশ্ন? চলুন যান. যাক পরিবর্তনসমূহ 2 সত্যিই দ্রুত এর চেহারা. এটা Vigenère. এখানে Vigenère আমরা এই এক চমত্কার মাধ্যমে দ্রুত কারণ পদব্রজে ভ্রমণ আবার, করব, Vigenère এবং সিজার খুব অনুরূপ. শিরোলেখ মন্তব্য নেই আগে, # সংজ্ঞায়িত হয় আগে এই ম্যাজিক সংখ্যার ব্যবহার এড়াতে. চমৎকার জিনিস আমরা নিয়ে যেতে চেয়েছিলেন বলতে হয় একটি ভিন্ন মত বর্ণমালা বা কিছু. বরং নিজে যেতে সমস্ত কোড মধ্যে 26 এর পরিবর্তন হচ্ছে আমরা এই 27 বা পরিবর্তন ড্রপ ডাউন হতে পারে যদি আমরা বিভিন্ন alphabets, বিভিন্ন ভাষা ব্যবহার করা হয়. আবার, আমরা যুক্তি গণনা ঃ এই চেক পেয়েছেন, এবং সত্যিই আপনি প্রায় একটি টেম্পলেট হিসাবে এই নিতে পারেন. প্রায় কাছাকাছি প্রতি প্রোগ্রাম আপনাকে লিখুন-থাকা উচিত যদি এটি কমান্ড লাইন আর্গুমেন্ট লাগে-লাইন ক্রম ভালো যে খুব প্রারম্ভে সার্চ. এটা প্রথম বৈধতা পরীক্ষা করে আপনি এক কাজ করতে চান. এখানে কি আমরা কি ছিল আমরা নিশ্চিত করেন যে অভিব্যক্তি ছিল বৈধ, এবং যে ছিল দ্বিতীয় চেক যে আমরাও. আবার লক্ষ্য করুন যে আমরা argc এবং 2 থেকে এই বিভক্ত. উল্লেখ্য যে এক জিনিস যে আমরা কি ছিল এই ক্ষেত্রে ছিল পরিবর্তে আমরা সমগ্র স্ট্রিং সত্যতা প্রতিপন্ন করা আমি একটি ব্যবহার করতে চেয়েছিলাম, এবং যাতে আপনি আসলে অক্ষর দ্বারা অক্ষর যেতে আছে কি? উপর স্ট্রিং. কোন ভালো উপায় এটা কিছু কল আছে কারণ উদাহরণস্বরূপ, একটি যাও তোমার 0 ফিরে আসবে যদি এটি একটি পূর্ণসংখ্যা পার্স করা সম্ভব না, যাতে এমনকি এ কাজ করে না. আবার, চমৎকার ইউজার বার্তা বলছে ঠিক কি ঘটেছে. তারপর এখানে, আবার, আমরা কেস হ্যান্ডেল যেখানে ব্যবহারকারী একটি নিয়ন্ত্রণ ডি র্যান্ডম অক্ষর ধরনের. এবং তারপর কোরআন কিভাবে আমরা শূণ্যস্থান স্কিপিং করা এবং পরিচালনা সম্পর্কে একটা প্রশ্ন আগে আমাদের এখানে স্ট্রিং. এই ধরনের অনুরূপ কি আমরা মাইস্পেস প্রোগ্রামের সাথে কি যাও যে আমরা অধ্যায় করেছিল, এবং এই পদ্ধতি কাজ যে চিঠি যে আমরা দেখা চান তার নম্বর অনুসরণ করা হবে. বার্তা হিসাবে আমরা স্ট্রিং উপর পদচারণা, অক্ষর হিসেবে উপর আমরা অক্ষর দ্বারা পদচারণা, আমরা লুপ জন্য আমাদের অংশ হিসাবে নির্ঘন্ট অনুসরণ করা, এবং তারপর আমরা অনুসরণ অক্ষর সংখ্যা, তাই অ বিশেষ অক্ষর, অ সংখ্যা, অ সাদা স্থান যে আমরা পৃথক পরিবর্তনশীল দেখা চাই. এবং তারপর এই সমাধান কী পরিবর্তন একটি প্রকৃত কী পূর্ণসংখ্যা, এবং এ নিয়ে উড়ে যা আছে, ডান আগে তারপর আসল বার্তা অক্ষর এনক্রিপ্ট করা যায়. কিছু সমাধান যে ছিল খুব পুরোপুরি মহান আছে যে কী সংশোধন করতে আপ কী এর বৈধতার জন্য যখন পরীক্ষা করবে. ইন, এমনটা নিশ্চিত করা ছাড়াও যে চরিত্র এবং অভিব্যক্তি ছিল একটি বর্ণানুক্রমিক অক্ষর এটি যে একটি পূর্ণসংখ্যা পরিণত হয়েছে 0 25 পরিসীমা তারপর যাও যাও যে পরে লুপ জন্য এই হচ্ছে লাফালাফি করা. আবার, আপনি এখানে দেখতে এই সত্যিই সঠিক একই কোড সিজার যে আমরা এই সময়ে ব্যবহৃত. আপনি ঠিক সেই একই জিনিস করছি, যাতে বাস্তব কৌতুক আউট figuring হয় কিভাবে একটি পূর্ণসংখ্যা মধ্যে কীওয়ার্ড চালু. তবে একটি বিষয় যে আমরা এখানে যে কি হল একটু ঘন হয় আমরা এই শব্দগুচ্ছ পুনরাবৃত্তি, আমি অনুমান আপনি এটি বলতে পেরেছিলাম, 3 লাইন 58, 59, 61 এবং পৃথক বার. কারো ব্যাখ্যা করতে পারেন কি ঠিক এই ফ্রেজ আছে? এটি একটি অক্ষর এর অ্যাক্সেস, আপনি যেমন বলেছেন. হাঁ, এটা [শ্রবণাতীত] অভিব্যক্তি মধ্যে একটি অক্ষর, এবং তাই দেখা অক্ষর সংখ্যা কারণ শুধুমাত্র আপনি চলন্ত করছি বরাবর অভিব্যক্তি একবার আপনি চিঠি দেখা করেছি, যাতে কার্যকরভাবে স্পেস এবং যে ভালো স্টাফ লাফালাফি করা যাচ্ছে. হাঁ, ঠিক. এবং একবার তারপর আপনি অভিব্যক্তি ফাঁকা দেখা করেছি মাত্র mod যাতে আপনি পিছান কাছাকাছি. ঠিক. এটা কোন সঠিক ব্যাখ্যা. কি কেভিন বলেন, আমরা চাই কীওয়ার্ড মধ্যে সূচক. আমরা num_letters_seen চরিত্র পেতে চান, যদি আপনি হবে, কিন্তু যদি num_letters_seen অতিক্রম অভিব্যক্তি দৈর্ঘ্য, উপায় আমরা যথাযথ পরিসীমা ঢোকা ফিরে আমরা mod অপারেটর ব্যবহার প্রায় কার্যকরভাবে মোড়ানো. সংক্ষেপে মত উদাহরণস্বরূপ, আমাদের কিওয়ার্ড বেকন, এবং এটা 5 অক্ষর দীর্ঘ. কিন্তু আমরা এই সময়ে আমাদের মধ্যে প্লেইন টেক্সট 6 অক্ষর করেছি দেখা এনক্রিপ্ট করা এবং 6. আমরা আপ num_letters_seen অ্যাক্সেস শেষ হয়ে যাবে, যা 6, mod অভিব্যক্তি দৈর্ঘ্য, 5, এবং যাতে আমরা পেতে 1, তাই করব এবং আমরা কি করব তা করবেন তা আমরা করব এক পর্যায়ে আমাদের প্রথম অভিব্যক্তি অক্ষর ভিতরে অ্যাক্সেস. সমস্ত অধিকার, Vigenère কোনো প্রশ্ন আগে আমরা এগিয়ে যেতে? আপনি বোধ না এই বিষয়ে প্রশংসনীয় ভাল? কুল, মহান. আমি নিশ্চিত যে আপনি না যাও কোড দেখার সুযোগ পাচ্ছেন করতে চাই আমরা মনে করি যে, দেখতেও ভালো, এটা থেকে জানার সুযোগ আছে. এটি শেষ হতে আমরা আপাততঃ শূণ্যস্থান ব্যবহার করা হবে হবে, এবং আমরা এখন স্থানান্তর করতে যাচ্ছে, এবং সেটি আমি cs50.net/lectures যেতে চলেছি তাই আমরা একটি ব্যঙ্গ পর্যালোচনা সামান্য বিট করতে পারেন. সর্বোত্তম উপায় আমি ব্যঙ্গ পর্যালোচনা শুরু করছে মনে হয় এই লেকচার পাতা আসতে হয়, cs50.net/lectures, এবং সপ্তাহে শিরোনামে প্রতিটি তল, তাই যদি আমি সপ্তাহ 0 তাকান এখানে, আমি দেখতে যে আমরা বিষয়ের একটি তালিকা যে আমরা সপ্তাহ 0 মধ্যে আচ্ছাদিত আছে. যদি এই বিষয় কোন অপরিচিত মনে হচ্ছে আপনি যাও আপনি নিশ্চিতভাবে ফিরে যান এবং বক্তৃতা নোট এবং সম্ভবত পরিমার্জন করতে চাইবেন বক্তৃতা মাধ্যমে এমনকি সর পড়া, আবার তাদের ঘড়ি যদি আপনি চান কি সেই বিষয়ের সাথে এর ঘটনাসমূহ জন্য একটি অনুভূতি পেতে. আমি অতিরিক্তভাবে এই শীতল সম্পদ আমরা পেয়েছেন বছরের এক বলবেঃ এই হাফপ্যান্ট যে আমরা তৈরি করেছি, এবং যদি আপনি সপ্তাহ 0 তাকান, আমরা, না আছে বিষয় আচ্ছাদিত সব না কিন্তু আমরা তাদের বেশ কয়েক পেয়েছেন, trickier বেশী কিছু, তাই এইসব হাফপ্যান্ট দেখছে আবার একটি ভালো উপায় আপনাকে পেতে গতি বাড়াতে. বিশেষ করে, আমি একটা প্লাগ 3 জন্য প্রয়োগ করা নীচে, যেহেতু আমি তাদের কি চলেছি. কিন্তু যদি আপনি বাইনারি সঙ্গে সংগ্রাম করছি, বিট, হেক্স, স্টাফ তজ্জাতীয়, বাইনারি একটি দারুন জায়গা আরম্ভ. ASCII হয় অন্য এক যে খুব দেখতে ভাল. এমনকি আপনি 1.5x গতিতে সম্পর্কে যদি আমি আপনার জন্য খুব ধীরগতিতে যাচ্ছি দেখতে পারেন. এটি যেহেতু এর পর্যালোচনা, কি সেটা নির্দ্বিধায়. শুধু সত্যিই দ্রুত শুরু, আমরা এইসব ব্যঙ্গ সমস্যার একটি দম্পতি মাধ্যমে যেতে চলুন ঠিক এই মাধ্যমে দ্রুত মন্থন করা. উদাহরণস্বরূপ, যাক সমস্যা 16 এ এর ​​যে আমি বোর্ডে পেয়েছেন ডান আপ এখানে দেখুন. আমরা করেছি এই বাইনারি মধ্যে নিম্নলিখিত হিসাব পেয়েছিলাম, এবং আমরা কোনো কাজ দেখাতে চান. ঠিক আছে, আমি একটা শট দিতে এই চলেছি. আপনি না কাগজ সঙ্গে বরাবর অনুসরণ করা উচিত, এবং আমরা এই কি সত্যিই দ্রুত করব. আমরা বাইনারি নিম্নলিখিত হিসাব করতে ইচ্ছুক. আমি 00110010 পেয়েছেন. এবং আমি এটি 00110010 যোগ করতে যাচ্ছি. গণিতের জন্য বাড়ীতে প্রতিভাবন্ অনুসরণ বরাবর, এই 2 দ্বারা কার্যকরভাবে গুন. শুরু করা যাক. আমরা একই আলগোরিদিম ছাড়াও যে আমরা অনুসরণ করতে যাচ্ছেন যখন আমরা দশমিক সংখ্যা একসাথে যুক্ত. সত্যিই শুধুমাত্র এখানে পার্থক্য হল, আমরা ফিরে লুপ কাছাকাছি একবার আমরা আছে + 1 টি পরিবর্তে একবার আমরা 10 পেতে 1. যদি আমরা ডান থেকে শুরু, সত্যিই দ্রুত, কি এর প্রথম অঙ্ক? [ছাত্র] 0. >> [Nate এইচ] 0. গ্রেট, দ্বিতীয় অঙ্ক? 1 [ছাত্র]. [Nate এইচ] এটা কি একটি 1? 1 + 1 টি হল? [ছাত্র] 10. [Nate এইচ] যথাযথভাবে, তাই কি হয় অঙ্ক যে আমি 2 যোগ একসঙ্গে বেশী নীচে ডান লিখুন? [ছাত্র] 1, 0, 0 এবং তারপরে 1 বা বহন. [Nate এইচ] 0 এবং 1, ঠিক বহন. পরবর্তী এক আপ, বেসিল, আপনি আপ. তৃতীয় কি? >> [বেসিল] 1. [Nate এইচ] 1, নিখুঁত. কেভিন? [কেভিন] 0. >> [Nate এইচ] 0, Charlotte? [Charlotte] 0. >> [Nate এইচ] হ্যাঁ, এবং আমি কি করব? [ছাত্র] 1. [Nate এইচ] আর আমি কি করব? এবং তারপর আমি 1 বহন. পারফেক্ট, Sahb? >> [Sahb] এখন আপনাকে 1 টি আছে. [Nate এইচ] আর কিছু না আমি এখানে কি? [Sahb] তারপর পরের জন্য এক আপনি 1 আছে, কারণ আপনি 1 মাধ্যমে বাহিত হয়. [Nate এইচ] গ্রেট, তাই এখানে আমরা তা শেষ করতে পারে. কুল. [ছাত্র] 0 + 0 = 0 কি? 0 + 0 = 0. 1 + 1 টি, আপনি যেমন বলেছেন, 10, বা 1, 0, বরং. 10 একটি অসার্থক কারণ সম্পর্কে 10 নম্বর 10 এর অর্থ হল, এবং এটা আমরা কিভাবে এটি প্রতিনিধিত্বমূলক করছি যখন আমরা এটি লেখা করছেন ছল. আমরা 1, 0 দ্বারা সংখ্যা 2 প্রতিনিধিত্ব করেন, এবং 10 নম্বর সামান্য ভিন্ন. কি বাইনারি সম্পর্কে চমৎকার ধরনের এটি কি সত্যিই আছে যে অনেক আছে না ক্ষেত্রে আপনি শিখতে প্রয়োজন. 0 + 0 = 0, 0 টি + 1 = 1 আছে, 1 + 1 টি হল 0, এবং তারপর একটি 1 বহন, এবং তারপর আপনি ডান থেকে তৃতীয় কলামে, এখানে দেখতে পারেন আমরা এই 1 টি, 1 টি, এবং 1 টি ছিল. এবং 1 + 1 + 1 একটি 1, এবং আপনি অন্য বহন 1. যখন আপনি বাইনারি ছাড়াও করছেন, সুন্দর সহজ. আমি নিজেকে বৈধতা পরীক্ষা এই দম্পতি আরও অনেক কিছু চাই আগে আপনি যেহেতু যান সম্ভবত কিছু যে আমরা ব্যঙ্গ দেখতে পাবেন. এখন এর এই পরের এক হিসাবে ভাল না দেওয়া. এর সমস্যা 17 করুক না. আমরা দশমিক নিম্নলিখিত বাইনারি সংখ্যা রূপান্তর চলুন. আমি 10100111001 পেয়েছেন. বাইনারি ভিডিও মধ্যে যে আমি মনে রাখুন আমি উদাহরণ কয়েক মাধ্যমে গিয়েছিলাম, এবং আমি দেখিয়েছি কিভাবে সবকিছু কাজ করে যখন আপনি দশমিক এটা করছি. যখন আপনি উপস্থাপনা দশমিক মধ্যে কাজ করছি আমি মনে করি আমরা আমাদের জীবনে এই বিন্দু তাই এটি মধ্যে যে অনর্গল এটা বেশ সহজ আসলে কিভাবে এটি কাজ করে বলবিজ্ঞান টীকাটিপ্পনী উপর. কিন্তু একটি দ্রুত সংক্ষিপ্তবৃত্তি যাও, না হলে আমি 137 নম্বর আছে এই সত্যিই মানে-এবং আবার, এই দশমিক হয় উপস্থাপনা- দশমিক সংখ্যা 137 এর মানে হল যে আমি 100 + 1 X ২ 3 X 10 + 7 X ২ 1 আছে. এই পর্দায় সমস্ত অধিষ্ঠিত. এবং আপনি যদি এই সংখ্যার তাকান অধিকার এখানে, 100, 10 এবং 1, আপনি দেখুন যে তারা আসলে হন 10 সমস্ত ক্ষমতা. আমি শূন্য থেকে 10 কিলোমিটার, ¹ 10, 10 এবং আছে. আমরা বাইনারি মধ্যে একটি জিনিস অনুরূপ সাজান আছে, যে ছাড়া আমাদের বেস, হিসাবে আমরা একে ডাকতে, 10 এর মধ্যে 2 পরিবর্তে. 10s এই যে আমি লিখেছি নীচে এখানে নিচে, এই 10 কিলোমিটার, 10 ¹, 10 শূন্য, 10 আমাদের বেস, এবং প্রকাশক, 0, 1, বা 2, নম্বর যে আমরা লিখুন মধ্যে অঙ্ক অবস্থান দ্বারা উহ্য হয়. 1, আমরা যদি এটা তাকান, এই 1 2nd অবস্থানে হয়. 3 1 ম স্থান হয়, এবং 7 0th অবস্থানে হয়. এটা কিভাবে আমরা আমাদের বিভিন্ন ঘাঁটি জন্য নীচের বহিঃপ্রকাশ পেতে. এই we'll-আসলে সব পর, আপনি জানেন কি? আমরা কাজ যেখানে আমার বোতাম পূর্বাবস্থা করব কোথায় গেছে? এটি এখন পর্যন্ত যায়. আমি ভালোবাসি এই জিনিস পূর্বাবস্থা. এই অনুসরণ আমি মনে করি আমার জন্য কমপক্ষে সবচেয়ে সহজ উপায় হল একটি বাইনারি সংখ্যা রূপান্তর শুরু অথবা একটি হেক্সাডেসিমাল সংখ্যা যেখানে বেস 16 এবং বা 2 10 না এগিয়ে যান এবং আউট লিখতে হয় ঘাঁটি আমার উপরের বাইনারি সংখ্যা সংখ্যার জন্য এবং সমস্ত বহিঃপ্রকাশ. যদি আমরা বাম থেকে শুরু করে আবার ডান, যা counterintuitive ধরনের, আমি কালো ফিরে দেখতে পাবেন, আমরা 0th অবস্থানের 2 আছে, এবং তারপর আমরা 2 ¹ আছে, 2 ², এবং 3, 2 5 4, 2, 6 তারপর 2, 7, 8, 9, এবং 10. এই নম্বর আমি আউট করা করেছি সব বহিঃপ্রকাশ. আমি কেবল মাত্র লিখেছেন স্থান জন্য প্রথম 3 এখানে ঘাঁটি. এই মুহুর্তে আমি এগিয়ে যান যাচ্ছে এবং আমি আসলে করছি নিশ্চিহ্ন করা যাচ্ছে না স্টাফ যে আমরা দশমিক করেছিল, যদি ঠিক আছে. আপনি যে সব পেয়েছেন. আপনাদের মধ্যে পর্যবেক্ষক অনলাইন আমি নিশ্চিত যাও সম্পর্কে যদি চান গুটিয়ে সক্ষম হবে. কলম ফিরে যাও পালটে যাওয়া. এখন, আমরা কি কাজ করতে পারেন যদি আপনি না 2 আপনার ক্ষমতা উপর গতি বাড়াতে হয় সম্পূর্ণই আপ না, এটা সম্পূর্ণই শীতল. এটা ঘটবে. আমি বুঝি. আমি একবার একটি পেশা ইন্টারভিউ ছিল যেখানে আমি আমি 2 সমস্ত ক্ষমতা জানা উচিত ছিল বলা আপ মাধ্যমে 2 30. এটি একটি পেশা আমি পেয়েছিলাম ছিল না. যাইহোক, আপনি এগিয়ে যান না এবং গণিত এখানে করতে পারেন, কিন্তু বাইনারি সঙ্গে এটি সত্যিই অর্থে দেখা যায় না, এবং এটা দশমিক বা হেক্সাডেসিমেল সাথে হয় জানার জন্য, যেখানে আপনি zeros আছে আউট গণিত না. আপনি আমি 0 এখানে আছে, 0 এখানে, 0 এখানে, 0 এখানে, 0 এখানে, 0 এখানে দেখতে পারেন. কেন এটা হতে পারে প্রকৃত অর্থে গণিত না করা যে পদের জন্য 2 যথাযথ ক্ষমতা কষা? ঠিক, ভালো Charlotte বলেন, এটি 0 হতে হবে. ভাল হিসাবে সংরক্ষণ সময় নিজেকে যদি 2 ক্ষমতা হিসাবী আপনার দৃঢ় মামলা হয় না. এই ক্ষেত্রে আমরা কেবলমাত্র 2 জন্য এটি 0 যা গণনা করা প্রয়োজন তা হল-? 1 [ছাত্র]. [Nate এইচ] 1, 3, 2 যা-? [ছাত্র] 8. >> [Nate এইচ] 8. 2 4? [ছাত্র] 2. আমি দুঃখিত, 1. [Nate এইচ] 2 4 16 ঠিক,. 2 5, কেভিন? >> 32. [Nate এইচ] 32 ২ 8, 2? [ছাত্র] 32 x 8, 256. [Nate এইচ] পারফেক্ট. এবং 2 যাও 10? [ছাত্র] 1024. [Nate এইচ] হ্যাঁ, 1024. একবার আমরা এই সংখ্যা আমরা তাদের সমস্ত যোগফল আপ করতে পারেন পেয়েছেন. এবং এই হল যেখানে এটা আসলে খুব গুরুত্বপূর্ণ বিষয় একটি দম্পতি না. এক মন্থর হয় যান এবং আপনার কাজ চেক. আপনি এই নম্বর শেষে বলতে পারেন যে একটা 1 আছে, তাই আমি অবশ্যই আমার ফলাফল হিসাবে একটি বিজোড় সংখ্যা পাওয়া উচিত, কারণ অন্য সকল বেশী এমনকি হতে সংখ্যা যাচ্ছি প্রদত্ত যে এটা একটা বাইনারি সংখ্যা. অন্যান্য বিষয় কি হয় যদি এই বিন্দু থেকে আপনি পরীক্ষার পেতে এবং আপনি এটি লিখিত করেছি আউট এই পর্যন্ত এবং আপনি সময় চালাচ্ছেন আউট পয়েন্ট সংখ্যা তাকান যে এই সমস্যা প্রাণপণে. এই সমস্যা, হিসাবে আপনি আমি আমার ল্যাপটপ ফিরে যাও টুসকি সত্যিই যদি দেখতে পারেন দ্রুত- এই সমস্যা সাধ্যমতো 2 পয়েন্ট, তাই এই ছাড়াও বাছাই করা হয় না আপনি যাচ্ছে মাধ্যমে করা উচিত যদি আপনি সত্যিই সময়ের জন্য করছি চাপা. কিন্তু আমরা রহমান স্যুইচ ফিরে, আমরা করব এবং এটি সত্যিই মাধ্যমে দ্রুত যেতে পারবেন. আমি চাই ছোট সংখ্যার প্রথম কাজ কারণ আমি দেখি যে সহজ. আমি 32 এবং 8 কারন তারা সহগমন প্রশংসনীয় সহজে, এবং আমরা 50 পেতে. 16 এবং 1 17 পায়. এখন পর্যন্ত আমরা 57 পেতে, এবং তারপর আমরা, তাই এই বাকি আমরা করতে পারেন 57, 156 কি. চলো. ম্যান, ভাল, আমি কি দেখতে. আমরা 57, 256, এবং 1024 ছিল. এই পর্যায়ে, আমি বরং কেবল যেতে চাই. আমি খেই নেই. আমি স্পষ্টতই এই উপর পড়া প্রয়োজন. 7, 6, এবং 4, আপনি 17 পেতে. 1, 5, 5, 2, 13. তারপর আমরা 3, এবং তারপর আমরা পেতে পেতে 1. 1337. ইস্টার ডিম, কেহ? যে কেউ এই সংখ্যা চিনতে? ক্রিস নম্বর স্বীকৃতি দেয়. কি ক্রিস মানে,? [ক্রিস] Leet. Leet, তাই যদি আপনি এই তাকান, এটি leet মত দেখাচ্ছে. হ্যাকার উপাদান. সালের অন্তর্বর্তী বা ব্যঙ্গ, বরং উপর উপাদান ধরণের জন্য দেখুন. আপনি যদি স্টাফ তজ্জাতীয় দেখুন এবং আপনি হতাশ করছি "ওহো," আসলে কিছু অর্থ হতে পারে. আমি জানি না. ডেভিড এটি পছন্দ নির্বাণ ইন এটা একটা ভাল উপায় সদ্বিবেচনা এটি চেক. ঠিক আছে ভালো লেগেছে, আমি কি ঘটছে তা দেখতে পারেন. এটা 0/Week 1 স্টাফ সপ্তাহ. যদি আমরা আমাদের ল্যাপটপ স্যুইচ এখন ফিরে, জুম আউট, এবং অন্যান্য জিনিস এক দম্পতি. ASCII আছে, যা আমরা করছি সমস্যা সেট সঙ্গে অনেক কাজ. রাজধানী এ এই ধারণা কি সত্যিই? বুদ্ধিমান এটা দশমিক পূর্ণসংখ্যা. 65 কি এটা হওয়া ASCII টেবিলের এর ম্যাপ, এবং যে কারণে কিভাবে কম্পিউটার এটি লিখেছেন, এবং যে কিভাবে আমরা করছি আসলে লেখার সাথে পেয়ে দূরে অক্ষর মূলধন এবং একটি অক্ষর একটি ছোট হাতের অক্ষর এই সমস্যা সমাধান এবং সেট যে আপনি হয়েছি এরকম কিছু. অন্যান্য জিনিসের মধ্যে একটি দম্পতি. আমরা বিবৃতি, বুলিয়ান এক্সপ্রেশন, শর্ত, loops, ভেরিয়েবল এবং থ্রেড আছে. যারা সমস্ত অধিকাংশ অংশ জন্য জানার জন্য বলে মনে হচ্ছে? এই পরিভাষা কিছু একটা সময়ে একটু ভীতু. আমি একটি বিবৃতি অধিকাংশ ক্ষেত্রে কিছু একটা সেমিকোলন দিয়ে শেষ হিসাবে চিন্তা করতে চান. বিবৃতি হিসাবে যেমন x = 7, যা একটি ভেরিয়েবল সেট করে, সম্ভবতঃ নামক x = 7. সম্ভবত এক্স এছাড়াও একটি টাইপ যে নম্বর 7 সঞ্চয় করতে পারেন, তাই কোন int সম্ভবত অথবা একটি float অথবা একটি সংক্ষিপ্ত অথবা একটি গৃহস্থালি, যে ভালো কিছু. একটি বুলিয়ান অভিব্যক্তি এই ডবল ব্যবহার সমান এবং ঠুং ঠুং শব্দ বা সমান সমান না, কম, এর চেয়ে বড়, কম বা তার সমান, সব উপাদান ধরণের. তারপর শর্তাবলী হয় যদি অন্য কোন বিবৃতি. আমার মনে হয় আপনি যদি অনুরূপ একটি ছাড়া অন্য থাকতে পারে না মনে রাখা হবে. অনুরূপভাবে, আপনি যদি একটি অনুরূপ যদি ছাড়া অন্য থাকতে পারে না. Loops, loops 3 ধরণের আমরা আপনাকে মধ্যে করেছি hammering প্রত্যাহার করা হয়েছে জন্য বিভাগে এবং সমস্যা সেট শেষ দম্পতি. ব্যবহার করার সময় যখন আপনি ব্যবহারকারীর ইনপুট পেয়ে করছি না, ব্যবহার করে একটি নির্দিষ্ট সময় পর্যন্ত শর্ত loops সত্য হয়, এবং তারপর loops জন্য যারা ব্যবহার করে যদি আপনি প্রয়োজন লুপ যা পুনরাবৃত্তির আপনি বর্তমানে করছি জানতে হয় কিভাবে আমি এটা সম্পর্কে চিন্তা. অথবা আপনি যদি প্রতিটি অক্ষরের জন্য একটি পংক্তি আমি কিছু করতে চান তা একটি কাজ করছি, একটি অ্যারের জন্য আমি যে উপাদান কোনো কিছু করতে চান প্রতিটি উপাদান. টপিক এবং ঘটনাবলী. এই আমরা তাই স্পষ্টভাবে আচ্ছাদিত সি নি, কিন্তু শয়তান থেকে এই মনে রাখবেন. এটি বিভিন্ন স্ক্রিপ্ট থাকার ধারণা. এটি একটি ইভেন্টের সম্প্রচার এই ধারণা. কিছু মানুষ তাদের প্রকল্পের মধ্যে সম্প্রচার ব্যবহার প্রাথমিকভাবে না, যা হচ্ছে, তা সম্পূর্ণই শান্ত, কিন্তু এগুলি 2 এই বৃহত্তর বিষয় পরিচালনার বিভিন্ন উপায় বলা concurrency, যা হয় তা আপনি কীভাবে প্রোগ্রাম চালানো পেতে বা আপাতদৃষ্টিতে একই সময়ে চালানো? বিভিন্ন কর্ম চলমান সময় অন্যান্য কাজগুলো দৌড়াচ্ছে. এটি কিভাবে আপনার অপারেটিং সিস্টেমের কাজ মনে হয়. এই উদাহরণ কেন জন্য যদিও,, আমি আমার ব্রাউজার করেছি আছে চলমান, আমি Spotify এবং চালু একটি গান প্লে করতে পারেন. এটা একটি ধারণাগত জিনিস বুঝতে আরও. আমি থ্রেড সংক্ষিপ্ত কটাক্ষপাত করা হবে যদি আপনি যে বিষয়ে আরও জানতে চাই. এর চলুন দেখা যাক, আমি বিশ্বাস পারে হয়েছে সেখানে আছে এই একটি এই এক সমস্যা. আবার, আমি মনে করি থ্রেড এবং কিছু ঘটনা যে আমরা সি আবরণ করা হয় না যেহেতু এটি উল্লেখযোগ্যভাবে এর মধ্যে ভূত চেয়ে আরো কঠিন. আপনি এটা সম্পর্কে চিন্তা করা উচিত না, কিন্তু স্পষ্টভাবে ধারণাগুলি বুঝতে, বুঝতে করছেন. আগে আমরা এগিয়ে যেতে, সপ্তাহ কোনো প্রশ্নের 0 উপাদান? সকলে বোধ প্রশংসনীয় ভাল? বোঝার ভেরিয়েবল এবং একটি পরিবর্তনশীল কি হয়? মুভিং উপর. সপ্তাহ 1. একটি জিনিস এখানে দম্পতি, যা বিশেষ করে অন্তর্ভূক্ত করা হয় নি ব্যঙ্গ পর্যালোচনা প্রয়োজন এবং এছাড়াও আরো ধারণাগত জিনিস সম্পর্কে চিন্তা করা. প্রথম কি সোর্স কোড, কম্পাইলার এবং অবজেক্ট কোড হয় এই ধারণা. কেউ? পুদিনা. হয় অবজেক্ট কোড-এর অর্থ আমি সোর্স কোড কি ঝনঝন পুরা, এবং অবজেক্ট কোড কি ঝনঝন রাখে যাতে যে আপনার কম্পিউটার প্রোগ্রাম পড়তে পারেন. ঠিক. উত্স কোড এটি C কোড আসলে আপনি আপ টাইপ করুন. অবজেক্ট কোড কি ঝনঝন শব্দ পাওয়া আউট. এটা 0 সেঃ যে বাইনারি বিন্যাসে এবং 1s. তারপর কি হল যখন আপনি অবজেক্ট ফাইলের একটি গুচ্ছ আছে, বলতে আপনি একটি প্রকল্প বা একটি প্রোগ্রাম যা একাধিক ফাইল ব্যবহার করছি সোর্স কোড কম্পাইল করার প্রণালী, যা কনভেনশন দ্বারা. গ ফাইল এক্সটেনশন দেওয়া হয়. এটা কেন আমরা caesar.c, vigenère.c আছে. আপনি যদি জাভা প্রোগ্রাম লেখার দিতে তাদের এক্সটেনশান. জাভা. পাইথন প্রোগ্রাম এক্সটেনশন আছে. প্রায়ই py. একবার আপনি একাধিক. গ ফাইলগুলি আছে, আপনি তাদের সঙ্কলন. ঝনঝন spits সব এই বাইনারি আবর্জনা আউট. তারপর কারণ আপনি শুধুমাত্র 1 টি প্রোগ্রাম চাই আপনি linker লিঙ্ক এইসব বস্তুর সব একসাথে ফাইল আছে মধ্যে 1 এক্সিকিউটেবল ফাইল. এটা কি উদাহরণস্বরূপ, যখন আপনি CS50 লাইব্রেরি ব্যবহার করে,. CS50 লাইব্রেরী হল উভয় যে. জ হেডার ফাইল যা আপনি পড়তে, যে # includecs50.h. এবং তারপর এটি একটি বিশেষ গ্রন্থাগার বাইনারি ফাইল যে যা 0 সেঃ এবং 1s এর কম্পাইল করা হয়েছে, এবং,-l পতাকা তাই, যদি আমরা আমাদের শূন্যস্থানের ফিরে যান এবং আমরা সত্যিই দ্রুত সন্ধান এ কি এখানে যাচ্ছে যখন আমরা আমাদের ঝনঝন কমান্ড এর তাকান, আমরা কি পেয়েছেন এই হল আমাদের সোর্স কোড ফাইল ডান এখানে. এগুলি কম্পাইলার পতাকার একটি গুচ্ছ. এবং তারপর খুব শেষে,-l এই পতাকা লিঙ্কটি প্রকৃত এইসব 2 লাইব্রেরি জন্য বাইনারি ফাইল, CS50 লাইব্রেরি এবং তারপর গণিত লাইব্রেরি. ফাইল 'উদ্দেশ্য প্রতিটি টাইপ বুঝুন সংকলন প্রক্রিয়ায় রয়েছে কিছু আপনি করতে চাইবেন যাও সক্ষম হবে অন্তত একটি উচ্চ পর্যায়ের পরিদর্শন দিতে. উত্স কোড আসে অংশে অবজেক্ট কোড আসে আউট. অবজেক্ট কোড ফাইল একসাথে লিঙ্ক, এবং আপনি একটি সুন্দর, এক্সিকিউটেবল ফাইল পেতে. কুল. এটি হয় যেখানে আপনি একাধিক বিন্দুতে ত্রুটি পেতে পারেন এ সংকলন প্রক্রিয়া. এই যেখানে, উদাহরণস্বরূপ, যদি আপনি এই লিঙ্ক পতাকা নিতে আউট, হয় CS50 পতাকা, এবং আপনি শূন্যস্থানের মধ্যে এটি উপেক্ষা করা অথবা যখন আপনি আপনার কোড চালাচ্ছেন, এই হল যেখানে আপনি লিঙ্ক ফেজ একটি ত্রুটি পাবেন, এবং linker, "বলবে আরে, আপনি নামক একটি ফাংশন GetString যে CS50 লাইব্রেরি আছে. " "আপনি আমাকে এটি CS50 লাইব্রেরি ছিল, এবং আমি এটা জন্য কোড খুঁজে পাচ্ছি না." যে যেখানে আপনি এটিকে লিঙ্ক আছে, এবং যে পৃথক একটি কম্পাইলার ত্রুটি থেকে কারণ কম্পাইলার বাক্য গঠন এবং স্টাফ তজ্জাতীয় এ খুঁজছেন হয়. এটা কি ঘটছে যখন এর জানা ভাল. অন্যান্য বিষয় সম্পর্কে জানা. আমি আপনি নিশ্চিতভাবে টাইপকাস্টিং উপর সংক্ষিপ্ত জর্দান দ্বারা সম্পন্ন কটাক্ষপাত চান বলতে হবে কি ints ফণা অধীন হয় বুঝতে, ফণা অধীন কি অক্ষর রয়েছে. যখন আমরা ASCII সম্পর্কে কথা বলার এবং আমরা আসলে ASCII টেবিল তাকান, কি যে করছে ফণা বর্ণন অধীন দেবার আমাদের হয় এ কি আসলে কম্পিউটার মূলধন প্রতিনিধিত্ব করে একটি অঙ্ক এবং 7 এবং একটি কমা এবং একটি প্রশ্ন চিহ্ন. কম্পিউটার এছাড়াও উপস্থাপন বিশেষ উপায় আছে একটি পূর্ণসংখ্যা হিসাবে নম্বর 7. এটি একটি একটি ফ্লোটিং পয়েন্ট সংখ্যা হিসাবে নম্বর 7 প্রতিনিধিত্ব বিশেষ উপায় আছে, এবং যারা খুবই ভিন্ন. টাইপকাস্টিং হয় কিভাবে আপনি বলুন কম্পিউটার "আরে, আমি আপনি রূপান্তর করতে চান একটি উপস্থাপনা থেকে অন্য একটি উপস্থাপনা. " কেন যে কটাক্ষপাত কি আমরা নিতে না. আমি লাইব্রেরি উপর সংক্ষিপ্ত এবং কম্পাইলার উপর সংক্ষিপ্ত কটাক্ষপাত করা হবে. সংকলন প্রক্রিয়া সম্পর্কে যারা আলাপ, এটা কি একটি লাইব্রেরি, এবং কিছু প্রশ্ন এই যে আপনি জিজ্ঞাসা করতে পারে ঝালিয়ে নেওয়া. সপ্তাহ 1 উপাদান প্রশ্ন? সেখানে এখানে যে কোনো বিষয় বলে মনে daunting আপনি আবরণ করতে চান? আমি আগে এই বিষয়ের সবচেয়ে মাধ্যমে গাট্টা চেষ্টা যাতে আমরা পেতে পারি না পয়েন্টার এবং একটি করবেন recursion সামান্য বিট. চিন্তা? কিছু আবরণ? কিছু হয়তো চকলেট জন্য সময়? আপনি না মাধ্যমে এটি কাজ করছে. আমি আমার কফি উপর sipping রাখা যাচ্ছে না. 2 সপ্তাহ. গুড কল, কল ভাল. 2 সপ্তাহ ইন আমরা কর্ম সম্পর্কে বললাম একটু বিট আরো. প্রথম কয়েক সমস্যা সেট ইন আমরা সত্যিই কোনো ফাংশন এ সব কি লিখে না ছাড়া অন্য কোন ফাংশন? [ছাত্র] মুখ্য. >> মুখ্য ঠিক,. তাই আমরা বিভিন্ন পোশাক পরেন যে প্রধান দেখা করেছি. এক যা এটা কোন যুক্তি লাগে আছে, এবং আমরা মধ্যে বন্ধনীর মধ্যে অকার্যকর বলে, এবং তারপর অন্য এক যেখানে আমরা কমান্ড লাইন আর্গুমেন্ট নিতে চান না, এবং হিসাবে আমরা দেখেছি, যে যেখানে আপনি int-argc এবং স্ট্রিং argv অ্যারে আছে অথবা এখন যে আসলে আমরা স্ট্রিং করেছি গৃহস্থালি * এটা হতে উন্মুক্ত আমরা গৃহস্থালি * argv এবং তারপর বন্ধনী হিসাবে এটি লেখা শুরু চলুন. সমস্যা সেট 3 ইঞ্চি, আপনাকে বলছি কর্ম একটি গুচ্ছ দেখেছি, এবং আপনি কর্ম একটি গুচ্ছ বাস্তবায়িত,, আঁকা সন্ধান একত্র,. এগুলির নমুনা সব ছিল আপনার জন্য কি করা. এখানে আমার কর্ম সঙ্গে কথা বলতে কি আমি সত্যিই দ্রুত চেয়েছিলেন হয় যেগুলো তাদের সেখানে 3 অংশ যখনই আপনি একটি ফাংশন লিখুন. আপনি ফাংশন রিটার্ন টাইপ উল্লেখ আছে. আপনি ফাংশন জন্য একটি নাম উল্লেখ আছে, এবং তারপর আপনি নির্দিষ্ট আছে যুক্তি তালিকা অথবা পরামিতি তালিকা. উদাহরণস্বরূপ, যদি আমি একটা ফাংশন পূর্ণসংখ্যার একটি গুচ্ছ যোগফল লিখুন ছিল এবং তারপর আমার সমষ্টি কি আমার রিটার্ন টাইপ হবে প্রত্যাবর্তন আমি যদি ইন্টিজার এবং তারপর যোগফল সমষ্টি ফেরত চান? তারপর ফাংশনের নাম. আপনি যদি এগিয়ে যান এবং আমি সবুজ লিখুন, এই ভাগে রিটার্ন টাইপ. এই ভাগে নাম. এবং তারপর মধ্যে প্রথম বন্ধনী যেখানে আমি আর্গুমেন্ট দিতে, ARGS, কখনও কখনও অনুল্লিখিত পরামিতি লেখার জন্য প্যারাম নামক হিসাবে প্রায়ই সংক্ষেপিত. এবং যদি কেউ থাকেন, তাহলে যে কোনো একটি উল্লেখ. যদি আপনি একাধিক আপনাকে একটি কমা দ্বারা প্রতিটি পৃথক. এবং আপনি প্রতিটি যুক্তি দেওয়ার জন্য 2 জিনিস এটা যা-কেভিন? [কেভিন] আপনি টাইপ এবং তারপর নাম দিন আছে. এবং তারপরে নাম, এবং নামের নামটি ব্যবহার করতে যাচ্ছেন যে যুক্তি সমষ্টি ফাংশন মধ্যে পড়ুন, মধ্যে ফাংশান বর্তমানে যে আপনি লেখার. আপনি উদাহরণ হচ্ছে না, যদি না যাও আমি যোগ করা যাচ্ছে না, , বলতে পূর্ণসংখ্যার-we'll একটি শ্রেণীবিন্যাস int-এ অ্যারে না, এবং আমি কিছু কোঁকড়া ধনুর্বন্ধনী নিজেকে দেব সেখানে- তারপর যখন আমি সমষ্টি ফাংশন একটি অ্যারের পাস আমি যুক্তি তালিকার প্রথম অবস্থানে এটি পাস. কিন্তু আমি যে অ্যারের মধ্যে পাস নামের Arr আছে না নেই. আগমন কিভাবে যে যুক্তি আমি ফাংশন শরীরের মধ্যে পড়ুন হবে. অন্যান্য বিষয় যে আমরা বিবেচনা করা প্রয়োজন, এবং এই ফাংশন থেকে কিছুটা ভিন্ন, কিন্তু আমি মনে করি এটা একটা গুরুত্বপূর্ণ পয়েন্ট, যে সি সালে যখন আমি ভালো একটা ফাংশন লেখা চাই কিভাবে আমি জানি এই অ্যারের মধ্যে কতগুলি উপাদান হল? এই একটি কৌতুক প্রশ্ন কিছুটা হয়. এই সম্পর্কে আমরা গত সপ্তাহে এর বিভাগে কিছুক্ষন কথা বললাম. আমি কিভাবে সি একটি অ্যারের ভিতরে উপাদানের সংখ্যা জানা? সেখানে কি কোন উপায়? এটি সক্রিয় যে কোন উপায় জানা আছে. আপনি এটা আলাদাভাবে পাস আছে. একটি কৌতুক যে আপনি কি করতে পারেন পর্যন্ত যদি আপনি একই ফাংশন যা অ্যারে হয়েছে ঘোষিত হন, এবং আপনি একটি স্ট্যাক অ্যারের সঙ্গে কাজ করছি. কিন্তু কেবল যে কাজ করে যদি আপনি একই কাজ করছি. আপনি একবার আরেকটি ফাংশন একটি অ্যারের পাস অথবা আপনি যদি একটি অ্যারের ঘোষণা করেছি এবং আপনি গাদা যে অ্যারের করা, আপনি malloc ব্যবহার করেছি  এবং স্টাফ তজ্জাতীয় তারপর, সব কয়টা বেট বন্ধ হয়. তারপর আপনি আসলে প্রায় পাস আছে একটি বিশেষ যুক্তি বা অন্য প্যারামিটার আপনি বলার কিভাবে বড় অ্যারে হয়. এই ক্ষেত্রে, আমি একটি কমা-I'm দুঃখিত, এটা পর্দা যাওয়া বন্ধ এর ব্যবহার করতে চান তাহলে এখানে-চাই এবং আমি অন্য আর্গুমেন্ট পাস চাই  এবং এটি দ্বারা জন্য int-Len কল. একটা জিনিষ যে ব্যঙ্গ চলো পর্যন্ত হতে পারে হয় আপনি অথবা লিখুন একটি বিশেষ ফাংশন বলা কিছু বাস্তবায়ন জিজ্ঞাসা. যদি আমরা প্রোটোটাইপ আপনি কি না, যাতে এই পুরো বিষয় এখানে, এই পুরো জগাখিচুড়ি ফাংশন ঘোষণা বা ফাংশন প্রোটোটাইপ বলা হয়, এই প্রথম জিনিস এক যে আপনি আটকাইয়া রাখা যদি তা দেওয়া না চাইবেন আপনাকে সরাসরি উপর ব্যঙ্গ. অন্যান্য কৌতুক আমি শিখেছি করেছেন তা যে বলতে আমরা আপনাকে একটি ফাংশন জন্য একটি প্রোটোটাইপ দেবে না, এবং আমরা বলে, "আরে, আপনি তা লিখুন পেয়েছেন." ভিতরে কোঁকড়া ধনুর্বন্ধনী যে আপনি ব্যঙ্গ আছে যদি আপনি বিজ্ঞপ্তি যে একটি রিটার্ন টাইপ নেই এবং আপনি নোটিশ রিটার্ন টাইপ কিছু একটা শূন্যতা, যার মানে ফাংশন কিছু ফেরত না চেয়ে অন্যান্য, এরপর এক জিনিস আপনি নিশ্চিতভাবে করতে হয় লিখুন ফিরতি বিবৃতির কিছু ফাংশন খুব শেষে সাজান. এই ক্ষেত্রে ফিরে, এবং, আমরা একটি ফাঁকা ফাঁকা রাখা হয়েছে কারণ আমরা পূরণ করতে চাইবেন. কিন্তু এই পায় ঠিক উপায়ে আপনি কিভাবে আমি এই সমস্যার সঙ্গে যোগাযোগ করা যাচ্ছে সম্পর্কে চিন্তা? এবং এটি আপনাকে মনে করিয়ে দেয় আপনি একটি মান আছে ফিরে চলুন যাও ফাংশন আহ্বানকারী. হাঁ. >> [ছাত্র] কি শৈলী যখন আমরা ব্যঙ্গ করে কোড করছি লিখিত আবেদন? খাঁজ এবং স্টাফ তজ্জাতীয় হিসাবে যেমন? >> [ছাত্র] হ্যাঁ. না,. যতটা না আমি মনে করি, এই সম্পর্কে অনেক কিছু আমরা ব্যঙ্গ উপর দিনে শোধন করা হবে, কিন্তু সাধারণত # উদ্বেজক রয়েছে এবং স্টাফ তজ্জাতীয়, এর বাইরে যে ধরনের. [ছাত্র] আপনি কি আপনার হাতে লেখা কোড মন্তব্য প্রয়োজন? আপনি কি আপনার হাতে লেখা কোড মন্তব্য প্রয়োজন? মন্তব্য সবসময় ভাল হয় যদি আপনি আংশিক ক্রেডিট সম্পর্কে উদ্বিগ্ন হন অথবা আপনি grader আপনার একনিষ্ঠ যোগাযোগ করতে চান. কিন্তু আমি আবার,, ব্যঙ্গ নিজেই এবং ব্যঙ্গ দিন শোধন করা হবে, কিন্তু আমি যে আপনি প্রয়োজন মন্তব্য লিখুন কোন করা হবে বিশ্বাস না করেন. কিন্তু এটা সাধারণত, হইনি স্পষ্টভাবে ব্যাপার ধরণের যেখানে আপনি আপনার একনিষ্ঠ যোগাযোগ করেন, পছন্দ করেন "আরে, এটা যেখানে আমি এটা দিয়ে যাচ্ছি." করতে পারেন এবং কখনও কখনও যে আংশিক ক্রেডিট সাহায্য করতে পারে. কুল. পুদিনা. [বেসিল] কি প্রকাশক,, বলতে int-lang মধ্যে পার্থক্য মধ্যে মধ্যে একটি ফাংশন আর্গুমেন্ট পরিবর্তনশীল প্রকাশক বনাম অথবা পরামিতি? বাহ, কফি গিয়েছিলাম শ্বাসনালী ডাউন. [বেসিল] লেগেছে যা জিনিস আমরা যুক্তির মধ্যে রাখতে চান. হাঁ, যে একটি বড় প্রশ্ন. আপনি কিভাবে চয়ন কি জিনিষ আপনি আর্গুমেন্ট করিয়ে চান বনাম কি জিনিষ আপনি ফাংশনের ভিতর কি করা উচিৎ? এই ক্ষেত্রে আমরা আর্গুমেন্ট হিসাবে এই উভয় অন্তর্ভুক্ত কারণ তারা কিছু যে কেহ যাও সমষ্টি ফাংশান ব্যবহার করতে হবে যাও সেগুলো নির্ধারণের প্রয়োজন পড়ে না. সমষ্টি ফাংশন, ভালো সম্পর্কে আমরা কথা বললাম, বুদ্ধিমান কোন উপায় আছে কিভাবে বড় অ্যারে এটা তার আহ্বানকারী বা কেবা পায় সমষ্টি থেকে ফাংশন ব্যবহার করছে. এটি কিভাবে বড় বুদ্ধিমান যে অ্যারের হয় কোনও উপায় নেই. কারণ আমরা এই দ্বারা একটি আর্গুমেন্ট হিসাবে পাস অধিকার এখানে এর কারণ হল যে এর কিছু মূলত আমরা ফাংশন আহ্বানকারী করছি বলছে, কেহ যাও সমষ্টি ফাংশান ব্যবহার করতে হবে, "আরে, না শুধু আপনি আমাদের একটি অ্যারের দিতে থাকে না ints মধ্যে, তাহলে আপনি আমাদের কত বড় অ্যারে যে আপনি আমাদের হয় দিয়েছি জানাতে হবে. " [বেসিল] যারা উভয় কমান্ড লাইন আর্গুমেন্ট হতে হবে? না, এই হল আসল আর্গুমেন্ট যে আপনি ফাংশন পাশ করানো যাবে. আমাকে এখানে একটি নতুন পাতা না. [বেসিল] লেগেছে নামের-পাশ করানো যাবে [Nate এইচ] যদি আমি আছে int প্রধান (অকার্যকর), এবং আমি আমার রিটার্ন 0 নিচে রাখা এখানে নীচে যাচ্ছি, এবং বলে আমি সমষ্টি ফাংশন কল করতে চান. আমি বলতে চাই int x = সমষ্টি (); যাও সমষ্টি ফাংশান ব্যবহার আমি উভয় অ্যারের মধ্যে আমি যে পর্যন্ত যোগফল চান পাস আছে এবং অ্যারের দ্বারা, তাই এই হল যেখানে ধৃষ্ট আমি ints একটি শ্রেণীবিন্যাস ছিল, আমি বলবার ছিল int-numbaz [] = 1, 2, 3, ব্যবহারের কোন ধরনের গভীর ক্ষত বাক্যগঠন আপ অধিকার আছে, তারপর সমষ্টি কি আমি কি হল আমি পাস করতে চান, তাদের দেখান উভয় numbaz এবং 3 নম্বর যাও সমষ্টি ফাংশন বলুন ". ঠিক আছে, এখানে আপনি যোগফল অ্যারে আমি চাই" "এখানে তার আকার." কি যে জানার জন্য? কি যে আপনার প্রশ্নের উত্তর দিতে? এটি অনেক উপায় আছে কি ইন সমান্তরাল আমরা প্রধান সঙ্গে করছেন যখন আমরা কমান্ড লাইন আর্গুমেন্ট আছে. উদাহরণস্বরূপ সিজার সাইফার মত একটি প্রোগ্রাম, যা প্রয়োজন কমান্ড লাইন আর্গুমেন্ট কিছু করতে পারব না. কিভাবে এনক্রিপ্ট জানা যদি আপনি এটি ব্যবহার করতে কি কি বলুন না না অথবা যদি আপনি কি স্ট্রিং আপনি এনক্রিপ্ট করতে চেয়েছিলেন বলতে কি এটা না. ইনপুট জন্য অনুরোধ, এই যেখানে আমরা 2 পদ্ধতি পেয়েছেন জন্য গ্রহণ ব্যবহারকারী থেকে ইনপুট মধ্যে ব্যবহারকারীর কাছ থেকে তথ্য নেওয়ার জন্য,. সমস্যা জন্য 1 সেট করুন আমরা এই GetInt, GetString, GetFloat উপায় দেখেছি ইনপুট জন্য অনুরোধ জানানো, এবং যে স্ট্যান্ডার্ড ইনপুট স্ট্রিম ব্যবহার করে বলা আছে. এটা সামান্য ভিন্ন. এটা কিছু যে আপনি এক সময়ে হিসাবে বিরোধিতা করতে পারেন যখন আপনি প্রোগ্রাম, যখন আপনি শুরু প্রোগ্রাম ডাকা. কমান্ড লাইন আর্গুমেন্ট সমস্ত আপনি যখন চলমান প্রোগ্রাম আরম্ভ উল্লিখিত হয়. আমরা যারা দুটি করছি সংকর. যখন আমরা একটি ফাংশন আর্গুমেন্ট ব্যবহার, এটি অনেক প্রধান কমান্ড লাইন আর্গুমেন্ট মত. এটা যখন আপনি ফাংশন আপনি তাকে বলতে প্রয়োজন ডাকা এটা কি ঠিক প্রয়োজন তার কর্ম সম্পাদনের জন্য. আরেকটি ভাল জিনিস-এ এবং তার থেকে আমি এটি আপনাকে আপনার অতিরিক্ত সময় যাক করব, এবং এটি ঢাকা ছিল ব্যঙ্গ-ছিল সুযোগ রয়েছে এই ধারণা এবং গ্লোবাল ভেরিয়েবল বনাম স্থানীয় ভেরিয়েবল. যে মনোযোগ দিবেন কি. এখন এই যে আমরা অন্য স্টাফ পেয়ে করেছেন, আমরা 3 সপ্তাহ শুরু অনুসন্ধান এবং বাছাই বিষয়ে কথা বলছি. অনুসন্ধান এবং কমপক্ষে CS50 মধ্যে শ্রেণীবিভাজন,, বহুলাংশেই কম্পিউটার বিজ্ঞানের আরো কিছু তাত্ত্বিক অংশের একটি ভূমিকা. খোঁজের সমস্যা, বাছাই সমস্যা বড় হয়, ক্যানোনিকাল সমস্যা. আপনি কিভাবে একটি পূর্ণসংখ্যার বিলিয়ান একটি অ্যারের মধ্যে নির্দিষ্ট নম্বর খুঁজতে? আপনি কিভাবে একটি টেলিফোন বইয়ের ভেতরের একটি নির্দিষ্ট নাম খুঁজে যে আপনার ল্যাপটপে সঞ্চিত? এবং তাই আমরা asymptotic চালানোর সময় এই ধারণা প্রবর্তন করা সত্যিই কতক্ষণ, কিভাবে হার্ড এই সমস্যা হয় সংখ্যায়, কতদিন তারা সমাধান নিতে. , আমি বিশ্বাস করি, 2011 এর ব্যঙ্গ একটি সমস্যা আছে যা আমি মনে করি যোগ্যতা আছে আচ্ছাদন খুব দ্রুত, যা এই এক, সমস্যা 12. হে না, এটা ওমেগা. এখানে আমরা দ্রুততম সম্ভব রান টাইম বিষয়ে কথা বলছি জন্য একটি বিশেষ অ্যালগরিদম এবং তারপর ধীরতম সম্ভব রান টাইম. এই ওমেগা ও O সত্যিই শুধু শর্টকাট. তারা বলছে জন্য করছি notational শর্টকাট সেরা সম্ভব ক্ষেত্রে কিভাবে দ্রুত, আমাদের এলগরিদম চালানো হবে এবং কিভাবে পরাস্ত করা সম্ভব ক্ষেত্রে ধীর আমাদের এলগরিদম চালানো হবে? এর মধ্যে একটি দম্পতি করুক, এবং এই দিয়ে আচ্ছাদিত মধ্যে asymptotic স্বরলিপি, যা অত্যন্ত আমি সুপারিশ উপর সংক্ষিপ্ত. জ্যাকসন সত্যিই একটি ভাল কাজ করেছেন. বাইনারি অনুসন্ধান সঙ্গে, আমরা হচ্ছে একটি বাইনারি অনুসন্ধান অ্যালগোরিদম হিসাবে সম্পর্কে কথা বলতে, এবং আমরা সাধারণত এটি সম্পর্কে তার বড় ও নিরিখে কথা বলুন বড় হে কি? ধীরতম সম্ভব বাইনারি অনুসন্ধান চালানোর সময় কি? [ছাত্র] পা ²? এড়িয়ে যাও বন্ধ, আমি অনুমান অনুরূপ. এটা অনেক দ্রুত যে. [ছাত্র] বাইনারি? >> হ্যাঁ, বাইনারি অনুসন্ধান. [ছাত্র] এটা লগ n. N, তাই লগিন করা লগ ইন মানে কি আছে? এটা অর্ধেক প্রতিটি পুনরাবৃত্তির এটি. ঠিক, তাই ধীরতম ক্ষেত্রে সম্ভব, যদি আপনি একটি অ্যারের অনুসারে সাজানো আছে বলে একটি মিলিয়ন ইন্টিজার এবং সংখ্যা আপনি যা খুঁজছেন হয় অ্যারের অ্যারের বা শেষ উপাদান খুব প্রথম উপাদান. মনে রাখবেন, বাইনারি অনুসন্ধান অ্যালগোরিদম মধ্যম উপাদান দ্বারা এ কাজ করে, এইজন্য যদি যে ম্যাচ যে আপনি খুঁজছেন. যদি তা না হয় তাহলে, মহান, আপনি এটি পাওয়া গেছে. সেরা সম্ভব ক্ষেত্রে, কিভাবে দ্রুত বাইনারি অনুসন্ধান রান আছে? 1 [ছাত্রদের]. 1, এটা ধ্রুব সময়, বড় হে 1. হাঁ. [ছাত্র] আমি একটা প্রশ্ন আছে. আপনি যখন বলতে n র লগ ইন করুন, আপনি বেস 2 বিষয়ে মানে ডান,? হ্যাঁ, তাই যে অন্যান্য জিনিস. লগ আমরা বলতে হবে, এবং আমি অনুমান যখন আমি হাই স্কুলে ছিল আমি সবসময় অধিকৃত যে লগ বেস ছিল 10. হ্যাঁ, তাই হ্যাঁ, বেস 2 সাধারণত কি আমরা ব্যবহার করতে লগ ইন করুন. আবার, বাইনারি অনুসন্ধান যাব ফিরে, যদি আপনি একজন অনুসন্ধান করছেন খুব শেষে উপাদান বা খুব প্রারম্ভে উপাদান, কারণ আপনি মধ্যম শুরু এবং তারপর আপনি বাতিল যেটা অর্ধেক যে আপনি যা খুঁজছেন তা মানে না বিচার্য বিষয় নয়, এবং আপনি পরের অর্ধেক এবং পরবর্তী অর্ধেক এবং পরবর্তী অর্ধেক যান. যদি আমি মিলিয়ন পূর্ণসংখ্যা অ্যারের মধ্যে বৃহত্তম উপাদান জন্য অনুসন্ধান করছি আমি 1 মিলিয়ন সময়ের লগ তা আধা - আধি করিয়া ভাগ করা যাচ্ছে না আগে পরিশেষে আমি এবং পরীক্ষা যে উপাদান আমি খুঁজছি দেখুন বৃহত্তম অথবা অ্যারের সর্বোচ্চ সূচক হয়, এবং যে n র লগ নিতে, 1 মিলিয়ন বার লগ ইন হবে. বুদ্বুদ সাজান. আপনি কি বলছি বুদ্বুদ সাজানোর আলগোরিদিম মনে পড়ে? কেভিন, আপনাকে একটি বুদ্বুদ সাজানোর আলগোরিদিম মধ্যে কি ঘটেছে দ্রুত সংক্ষিপ্তবৃত্তি সম্পর্কে পারেন? [কেভিন] মূলত এটি তালিকার মাধ্যমে সবকিছু যায়. এটা প্রথম দুটি দেখায়. যদি প্রথম একটি দ্বিতীয় কেউ তাদের বিনিময়সমূহ চেয়ে বড়. তারপর এটি দ্বিতীয় এবং তৃতীয়, একই জিনিস, অদলবদল তুলনা, তৃতীয় এবং চতুর্থ, সব পথ ডাউন. বৃহত্তর সংখ্যার শেষ করবে. এবং যদিও বহু loops পরে আপনি সম্পন্ন করেছেন. ঠিক তাই, কি কেভিন বলেন যে আমরা বড় সংখ্যার ঘড়ি পাবেন অ্যারে শেষে বুদ্বুদ আপ. উদাহরণস্বরূপ, আপনি এই উদাহরণ মাধ্যমে আমাদের হাঁটা মনে করব যদি এই হয় আমাদের অ্যারের? [কেভিন] আপনি 2 এবং 3 নিতে হবে. 3 2 চেয়ে বড়, যাতে আপনি তাদের অদলবদল. [Nate এইচ] রাইট, তাই আমরা এই, swap এবং যাতে আমরা পেতে 2, 3, 6, 4, এবং 9. [কেভিন] তারপর আপনার 3 এবং 6 তুলনা. 3 হল 6 চেয়ে ছোট, যাতে আপনি তাদের ছেড়ে, এবং 6 এবং 4, আপনি তাদের অদলবদল কারণ 4 6 চেয়ে ছোট চাই. [Nate এইচ] রাইট, তাই আমি 2, 3, 4, 6, 9 পেতে. [কেভিন] এবং 9 6 চেয়ে বড়, তাই আপনি এটা ছেড়ে. এবং আপনি এটি দিয়ে যেতে আবার ফিরে চাই. [Nate এইচ] আমি আমি এই সময়ে কাজ? >> [কেভিন] নং এবং কেন আমি কাজ করছি এই সময়ে না? কারণ এটা দেখে মনে হচ্ছে আমার শ্রেণীবিন্যাস অনুসারে বাছাই করা হয়. আমি এটা এ খুঁজছি. [কেভিন] এটা দিয়ে আবার যান এবং নিশ্চিত করুন যে কোন অদলবদল করা হয় পূর্বে সম্পূর্ণরূপে আপনি বন্ধ করতে পারবেন. ঠিক আছে, তাই আপনার মাধ্যমে চালু রাখা এবং নিশ্চিত করুন যে কোন অদলবদল করা প্রয়োজন আছে আপনি যে এই সময়ে করতে পারেন. এটি সত্যিই ছিল মাত্র ভাগ্যবান, আপনি যেমন বলেছেন, যে আমরা শেষ পর্যন্ত শুধুমাত্র 1 মাধ্যমে পাস করা হচ্ছে এবং আমরা ব্যস্থা করছি. কিন্তু সাধারণ ক্ষেত্রে এই আমরা আসলে এবং উপর আবার এই কাজ করতে হবে. এবং সত্য, এই ছিল শ্রেষ্ঠ সম্ভাব্য ক্ষেত্রে একটি উদাহরণ, ভালো আমরা সমস্যা দেখেছি. আমরা দেখেছি যে শ্রেষ্ঠ সম্ভাব্য ক্ষেত্রে N ছিল. আমরা অ্যারে 1 সময় মাধ্যমে গিয়েছিলাম. এই অ্যালগরিদম জন্য সম্ভাব্য সবচেয়ে খারাপ কেস কি? [কেভিন] N কিলোমিটার. যে চেহারা এবং কি চান না? একটি অ্যারের বর্ণন কি যে ভালো করবে n ² সময় লাগবে? [কেভিন] [শ্রবণাতীত] সাজানো. ঠিক তাই, যদি আমি অ্যারে 9, 7, 6, 5, 2 ছিল, প্রথম 9 আপ সব উপায় বুদ্বুদ হবে. 1 পুনরাবৃত্তির পরে আমরা 7, 6, 5, 2, 9 আছে চাই. তারপর 7 বুদ্বুদ আপ, 6, 5, 2, 7, 9, এবং তাই এবং তাই ঘোষণা করা হবে. আমরা সম্পূর্ণ অ্যারে n বার মধ্য দিয়ে যেতে চাই, এবং প্রকৃতপক্ষে আপনি পেতে এই সামান্য বেশি সুনির্দিষ্ট করতে পারেন কারণ একবার আমরা শেষ পর্যন্ত সম্ভব অবস্থান করেছি মধ্যে 9 সমস্ত উপায় সরানো আমরা জানি যে আমরা যে উপাদান বিরুদ্ধে আবার তুলনা হবে না. একবার আমরা শুরু 7 সাড়া জাগানো আমরা জানি যে আমরা একবার 7 ডান 9 আগে বন্ধ করতে পারবেন কারণ ইতিমধ্যেই আমরা তা করেছি 9 তুলনায়. আপনি যদি একটি স্মার্ট ভাবে এই না এটা, আমি অনুমান, সত্যিই যে অনেক সময় না. আপনি সমস্ত সম্ভাব্য [শ্রবণাতীত] সমন্বয় তুলনা চলুন না প্রতি একক সময় আপনি প্রতিটি পুনরাবৃত্তির মধ্য দিয়ে যেতে হবে. কিন্তু, যখন আমরা এই ঊর্ধ্বসীমামান সম্পর্কে কথা বলতে বলতে আমরা যে আপনি এন এ ² খুঁজছেন তুলনা সব উপায় মাধ্যমে. এর ফিরে যাওয়া যাক, এবং যেহেতু আমরা সময়ের উপর একটু সংক্ষিপ্ত পেতে শুরু করছেন আমি আপনাকে স্পষ্টভাবে এই টেবিল বাকি মাধ্যমে যেতে হবে বলা যায়, এটি সব পূরণ. উদাহরণ চিন্তা করুন. কংক্রিট উদাহরণ চিন্তা করুন. এটা সত্যিই সুবিধাজনক এবং করতে সহায়ক. এটি আঁকুন. এই টেবিলের যে সাজানোর হিসাবে মাধ্যমে আপনি কম্পিউটার বিজ্ঞান যান আপনি কি সত্যিই এই হৃদয় জানা দ্বারা আরম্ভ করা উচিত. এই প্রশ্ন আপনি সাক্ষাত্কার পেতে ধরণের. এগুলি অসুস্থ জিনিস যা ভাল জানেন, ঐ প্রান্ত ক্ষেত্রে আমার, মনে হয় সত্যিই figuring আউট কিভাবে চিন্তা বুদ্ধিমান যে বুদ্বুদ জন্য সম্ভাব্য সবচেয়ে খারাপ অ্যারের বাছাই যে সঙ্গে বাছাইয়ের জন্য একটি বিপরীত ক্রম মধ্যে যে. পয়েন্টার দেয়া হল. যাক এর পয়েন্টার সম্পর্কে অল্প কথা বলুন. আমরা গত কয়েক মিনিটের মধ্যে এখানে আছে আমি জানি এই সঙ্গে, I / O হওয়ার ফলে নতুন যে ফাইলটি বরাবর কিছু. যখন পয়েন্টার সম্পর্কে আমরা কারণে আমরা পয়েন্টার সম্পর্কে কথা বলতে চান কথা বলা , কারণ এক, যখন আমরা সি কাজ করছি হয় আমরা একটি মোটামুটি নিম্ন পর্যায়ে সত্যিই হয় অধিকাংশ আধুনিক প্রোগ্রামিং ভাষার তুলনায়. আমরা আসলে আপনি যা মেমরির মধ্যে ভেরিয়েবল নিপূণভাবে সক্ষম, চিন্তা করা যেখানে তারা আসলে আমাদের RAM-র মধ্যে অবস্থিত করছি. একবার আপনি অপারেটিং সিস্টেম ক্লাস আপনি দেখতে পাবেন নিতে উপর চলে গেছে করেছি যে যে আবার,, একটি বিমূর্ততা ধরনের. এটা আসলে কেস না. আমরা ভার্চুয়াল মেমরি যা আমাদের থেকে ঐ এর বিবরণ গোপন পেয়েছেন. কিন্তু এখন জন্য আপনি যে অনুমান আপনি যখন একটি প্রোগ্রাম থাকতে পারে, উদাহরণস্বরূপ, যখন আপনি আপনার সিজার সাইফার-চলমান প্রোগ্রাম আমি আমার ইনবক্সে ফিরে যাও রহমান সত্যিই দ্রুত-করব যে খুব প্রারম্ভে আপনার প্রোগ্রাম এ, যদি আপনি আছে, বলে, উপস্থিত RAM-র 4 আপনার ল্যাপটপে গিগাবাইট, আপনি এই খণ্ড সেট সরাইয়া, যায় এবং আমরা এই RAM-র ডাকবো. এবং এটি একটি জায়গা আমরা 0 কল চলুন মধ্যে শুরু হয়, এবং এটি একটি স্থানে শেষ হয় যে আমরা 4 গিগাবাইট ডাকবো. আমি সত্যিই লিখতে পারেন না. ম্যান, যে গভীর ক্ষত হয়. যখন আপনার প্রোগ্রাম করুন অপারেটিং সিস্টেমে উপস্থিত RAM-র carves আপ, এবং এটি আপনার প্রোগ্রাম ইন বাস বিভিন্ন অংশের জন্য বিভিন্ন বিভাগে উল্লেখ করা হয় এই এলাকার এখানে নিচে একটি বেওয়ারিশ ধরনের. যখন আপনি একটু যান আপ অধিকতর এখানে আপনি আসলে জায়গা পেয়েছেন যেখানে আপনার প্রোগ্রাম জীবনের জন্য কোড. যে প্রকৃত বাইনারি কোড, আসলে যে এক্সিকিউটেবল ফাইল মেমরির মধ্যে লোড পরার আপনি যখন একটি প্রোগ্রাম চালানো, এবং এটা কোড সেগমেন্ট মধ্যে বসবাস করেন. এবং হিসাবে আপনার প্রসেসর প্রোগ্রাম করুন এই কোড সেগমেন্ট এ দেখায় যাও জিনিসটা কি পরবর্তী নির্দেশ? কোড পরের লাইন আমি চালানো প্রয়োজন কি? এর রয়েছে একটি তথ্য অংশ, এবং যারা এই হল যেখানে স্ট্রিং ধ্রুবক সঞ্চিত যে আপনি ব্যবহার করছি না. এবং তারপর অধিকতর আপ এই জায়গা বলা গাদা আছে. আমরা ব্যবহার malloc দ্বারা মেমরি অ্যাক্সেস আছে, এবং তারপর প্রতি খুব প্রোগ্রাম আপনার উপরে স্ট্যাকের আছে, এবং যে যেখানে আমরা শুরুতে অধিকাংশ জন্য বাজানো হয়েছে করেছি. এই স্কেল বা কিছু হয় না. এই অনেক খুবই নির্ভরশীল মেশিন, অপারেটিং সিস্টেমের উপর নির্ভরশীল নয়, কিন্তু এই তুলনামূলকভাবে কিভাবে যে আপ chunked পেতে. আপনি যখন একটি প্রোগ্রাম চালানো এবং আপনি একটি পরিবর্তনশীল নামক এক্স ঘোষণা আমি অন্য একটি বক্স নিচে নীচের আঁকা যাচ্ছে, এবং করছি এই উপস্থিত RAM-র হিসাবে ভাল হতে যাচ্ছে. এবং আমি তার থেকে যাচ্ছি. আমরা এই মাত্র একটি RAM-র একটি ক্ষুদ্র অংশ ইঙ্গিত খাঁজকাটা লাইন আঁকা করব এবং হিসাবে শীর্ষে এটি সমস্ত আমরা আঁকা. যদি আমি একটি পূর্ণসংখ্যা পরিবর্তনশীল নামক এক্স ঘোষণা, তাহলে কি আমি আসলে পেতে একটি ম্যাপিং যে আমার প্রোগ্রাম প্রতীক টেবিলের মধ্যে সংরক্ষিত হয় যে মেমরি এই অঞ্চলের নাম x এর সাথে সংযোগ করে যে আমি টানা করেছি এখানে ডান মধ্যে উল্লম্ব বার. যদি আমি আমার প্রোগ্রাম যে x = 7 কোড একটি লাইন আছে প্রসেসর জানেন, "ওহ, ঠিক আছে, আমি জানি যে, মেমরির মধ্যে এই স্থানে x এর জীবন." "আমি এগিয়ে যান এবং সেখানে একটি 7 লিখুন যাচ্ছে. করছি" এটা কি এই অবস্থান মেমরি হয়? ভাল, যে সমস্ত কম্পাইল সময় এর কাজ. কম্পাইলার বণ্টন যত্ন নেয় যেখানে ভেরিয়েবল প্রতিটি যেতে যাচ্ছি এবং একটি বিশেষ ম্যাপিং তৈরি অথবা বরং বিন্দু সংযোগ মধ্যে একটি চিহ্ন এবং যেখানে এটি হচ্ছে, একটি পরিবর্তনশীল এর নাম এবং যেখানে এটি মেমরি বাস যাচ্ছে. কিন্তু এটি সক্রিয় করে যে আমরা আসলে আমাদের প্রোগ্রামে এটি হিসাবে ভাল অ্যাক্সেস করতে পারেন. এই গুরুত্বপূর্ণ পায় যখন আমরা শুরু ডাটা স্ট্রাকচার কিছু বিষয়ে কথা বলছি, যা একটা ধারণা যে আমরা পরে পরিচয় করিয়ে চলুন. কিন্তু এখন জন্য, আপনি কি জানতে পারেন যে আমি একটি পয়েন্টার এই অবস্থান নির্মাণ, x এর পারেন. উদাহরণস্বরূপ, আমি একটি পয়েন্টার পরিবর্তনশীল তৈরি করতে পারেন. যখন আমরা একটি পয়েন্টার পরিবর্তনশীল তৈরি আমরা তারকা নোটেশন ব্যবহার. এই ক্ষেত্রে, এই বলে আমি কোন int একটি পয়েন্টার তৈরি করতে হবে. শুধু অন্য কোন মত একটি প্রকার. আমরা এটা y মত একটি পরিবর্তনশীল দিতে, এবং তারপর আমরা সেট এটি ঠিকানা সমান, একটি ঠিকানা যাও. এই ক্ষেত্রে, আমরা x নির্দেশ y সেট করতে পারেন দ্বারা এই ampersand সঙ্গে x এর ঠিকানা, যা আমরা গ্রহণ, এবং তারপর আমরা তা নির্দেশ করার জন্য y সেট. মূলত কি এই যদি আমরা আমাদের RAM-র তাকান হয় না এই একটি পৃথক পরিবর্তনশীল সৃষ্টি. এটা y কল করবে, এবং যখন এই লাইন কোড করুন এটি আসলে এর যাও একটু পয়েন্টার যা আমরা সাধারণত একটি তীর আঁকা হিসাবে তৈরি করতে চাই, এবং এটি সেট করে x এর নির্দেশ y. হ্যাঁ. [ছাত্র] যদি x ইতিমধ্যে একটি পয়েন্টার ঠিক, আপনি কি int-* y = x এর পরিবর্তে ampersand হয়? হ্যাঁ. যদি x ইতিমধ্যে একটি পয়েন্টার, তাহলে 2 পয়েন্টার সমান অপরের সেট করতে পারেন, সেক্ষেত্রেও y x এর দিকে নির্দেশ করে না, কিন্তু যাই হোক না কেন এক্স যাও প্রতি নির্দেশ করা হয় নির্দেশ করবে. দুর্ভাগ্যবশত, আমরা সময় ফুরিয়েছে. আমি কি এই সময়ে বলতে চাই, আমরা এই আমাদের সম্পর্কে কথা বলতে পারেন, কিন্তু আমি কাজ এই সমস্যা মাধ্যমে # 14, শুরু বলা যায়. আপনি এর আগেই একটা সামান্য বিট করার জন্য আপনাকে পূরণ এখানে দেখতে পারেন. আপনি যে দেখতে যখন আমরা 2 পয়েন্টার ডিক্লেয়ার করতে পারেন, int x * এবং * y, এবং মনে রাখবেন * পরবর্তী যাও পরিবর্তনশীল প্রতি নির্দেশ ছিল যা গত বছর দেওয়া হয়েছিল. এটা পরিনত হয় যে এই অনুরূপ কি আমরা এই বছরের করছেন যাও. এটা যেখানে আপনি * যখন আপনি পয়েন্টার ঘোষণা করছি লিখুন না ব্যাপার. কিন্তু আমরা * লিখিত আছে পরের যাও টাইপ কারণ যে এটি খুবই স্পষ্ট যে আপনি একটি পয়েন্টার পরিবর্তনশীল ঘোষণা করছি. আপনি যে 2 পয়েন্টার ঘোষণা দেয় 2 বাক্সে আমাদের দেখতে পারেন. এখানে যখন আমরা x সমান malloc সেট এই কি বলছে না গাদা মধ্যে মেমরি সরাইয়া সেটিং করা হয়. এই সামান্য বাক্স অধিকার এখানে, এই বৃত্ত, হিপ অবস্থিত. এক্স এটি প্রতি নির্দেশ করা হয়. উল্লেখ্য, y প্রতি নির্দেশ না কিছু না. যাও যাও পেতে মেমরি-x এর মধ্যে 42 নম্বর সঞ্চয় আমরা কি নোটেশন ব্যবহার করেন? [ছাত্র] * x = 42. ঠিক, x = 42 *. তার মানে তীর এবং অনুসরণ আছে 42 নিক্ষেপ করা. এখানে আমরা যেখানে y এবং এক্স সেট আমরা y x এর প্রতি নির্দেশ আছে. আবার, শুধু কি এই কেভিন বলেন, যেখানে আমরা সেট x যাও y সমান হয় না. Y-x যাও প্রতি নির্দেশ করা হয় না. বরঞ্চ, এটি কি x এর পাশাপাশি প্রতি নির্দেশ করা হয় এবং এর প্রতি নির্দেশ করে. এবং তারপর এই শেষ বক্স অবশেষে 2 সম্ভব যে আমরা করতে পারে সেখানে. একটি হল, আমরা x = 13 * বলতে পারে. অন্যান্য বিষয় আমরা,-Alex বলতে পারে আপনি কি জানেন যে এখানে আমরা কি করতে পারে? আপনি বলতে পারে * x = 13 বা, [ছাত্র] আপনি int-এ যাই হোক না কেন বলতে পারে. [Nate এইচ] যদি এই যাও কোন int পরিবর্তনশীল হিসাবে উল্লেখ করা হয়েছে যে আমরা যেত না. আমরা * y = 13 কারণ তারা একই জায়গায় উভয় প্রতি নির্দেশ করছেন, বলতে পারে তাই আমরা সেখানে পেতে হয় ভেরিয়েবল ব্যবহার করতে পারেন. হাঁ. >> [ছাত্র] এটা কি চেহারা যদি ঠিক মত আমরা বলতে int x হল 13 হবে? যে একটি নতুন পরিবর্তনশীল নামক এক্স, যা কাজ না করে ঘোষণা করা হবে. আমরা একটি সংঘর্ষের আছে কারণ আমরা x এর একটি পয়েন্টার হতে এখনে ঘোষণা চাই. [ছাত্র] কি যদি আমরা নিজে যে বিবৃতি ছিল এটা ভালো বৃত্তের পদ দেখাবে? আমরা যদি x = 13 ছিল তারপর আমরা একটি বক্স আছে, এবং বরং একটি তীর হচ্ছে চাই বক্স আসার আমরা শুধু একটি 13 হিসাবে এটি আঁকতে চাই. বক্স ইন [ছাত্র]. ঠিক আছে. দেখার জন্য আপনাকে ধন্যবাদ এবং ক্যুইজ 0 সৌভাগ্য. [CS50.TV]