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