1 00:00:00,000 --> 00:00:00,487 2 00:00:00,487 --> 00:00:11,210 >> [সঙ্গীত বাজাচ্ছি] 3 00:00:11,210 --> 00:00:12,100 >> ছিনিয়ে Boden: ঠিক আছে. 4 00:00:12,100 --> 00:00:15,620 ভিডিও প্রথম সুতরাং, প্রথম জিনিস, একটি পরিচিত মুখ থেকে. 5 00:00:15,620 --> 00:00:22,080 6 00:00:22,080 --> 00:00:22,560 >> [ভিডিও প্লেব্যাক] 7 00:00:22,560 --> 00:00:23,370 >> -ঠিক আছে. 8 00:00:23,370 --> 00:00:27,150 এটি CS50, এবং এই হল সপ্তাহে তিন শুরু. 9 00:00:27,150 --> 00:00:29,980 আমি আপনার সাথে হতে পারে না দুঃখিত আজ, কিন্তু আমাকে পরিচয় করিয়ে মঞ্জুরি 10 00:00:29,980 --> 00:00:32,880 CS50 এর নিজস্ব রব Boden. 11 00:00:32,880 --> 00:00:33,872 >> [END টি ভিডিও প্লেব্যাক] 12 00:00:33,872 --> 00:00:39,340 >> [সাধুবাদ এবং চিয়ার্স] 13 00:00:39,340 --> 00:00:41,277 >> ছিনিয়ে Boden: এ চলচ্চিত্রের তালিকা যে ভিডিও কল্পনাপ্রসূত. 14 00:00:41,277 --> 00:00:47,280 15 00:00:47,280 --> 00:00:47,770 ঠিক আছে. 16 00:00:47,770 --> 00:00:50,960 সুতরাং প্রথম, অন্য লাঞ্চ আছে. 17 00:00:50,960 --> 00:00:52,330 এটা 1:15 এ আগামীকালের. 18 00:00:52,330 --> 00:00:54,480 এই শুক্রবার কোন লাঞ্চ আছে. 19 00:00:54,480 --> 00:00:55,810 এটা Quora সঙ্গে হল. 20 00:00:55,810 --> 00:01:00,190 আর টমি এক কিন্তু, এখনো এখানে না সাবেক প্রধান CF আছে মানুষ, 21 00:01:00,190 --> 00:01:01,530 টমি জানায়, এসব মামলায়. 22 00:01:01,530 --> 00:01:02,730 তাই তিনি একটি মজার লোক. 23 00:01:02,730 --> 00:01:04,819 আপনি আসা উচিত. 24 00:01:04,819 --> 00:01:05,900 >> ঠিক আছে. 25 00:01:05,900 --> 00:01:11,360 সুতরাং গত সপ্তাহে, আমরা সরাইয়া ভঙ্গ শুরু একটি স্ট্রিং সত্যিই কি বিষয়ে. 26 00:01:11,360 --> 00:01:14,830 আমরা শুরু থেকে পরিচিত করেছি এটি অক্ষরের একটি ক্রম এর. 27 00:01:14,830 --> 00:01:18,130 কিন্তু গত সপ্তাহে, আমরা আসলে মধ্যে delved কি সত্যিই একটা ক্রম যে 28 00:01:18,130 --> 00:01:22,110 অক্ষর, ভাল, আমরা এখন আছে অক্ষরের অ্যারে. 29 00:01:22,110 --> 00:01:26,450 এবং আমরা একটি পংক্তি, এটি একটি অ্যারের যে জানি অক্ষরের খুব শেষে, 30 00:01:26,450 --> 00:01:30,920 আমরা এই বিশেষ নাল বাইট আছে, এই ব্যাকস্ল্যাশ 0, যে শেষ নির্দেশ 31 00:01:30,920 --> 00:01:32,230 স্ট্রিং. 32 00:01:32,230 --> 00:01:36,970 >> তাই একটি স্ট্রিং একটি অ্যারের হয় অক্ষর, কিন্তু আমরা থাকতে পারে বেশী 33 00:01:36,970 --> 00:01:39,530 অক্ষরের শুধু একটি অ্যারের, আমরা কোনো একটি অ্যারের থাকতে পারে 34 00:01:39,530 --> 00:01:40,890 আমরা চাই জিনিস ধরণ. 35 00:01:40,890 --> 00:01:51,570 সুতরাং, আপনি শেষ সপ্তাহ থেকে প্রত্যাহার করা হলে, ডেভিড চালু যে বয়সের প্রোগ্রাম 36 00:01:51,570 --> 00:01:53,560 সত্যিই দ্রুত. 37 00:01:53,560 --> 00:01:57,010 আমরা কি করতে যাচ্ছেন সুতরাং প্রথম জিনিস , একটি পূর্ণসংখ্যা জন্য ব্যবহারকারী জিজ্ঞাসা 38 00:01:57,010 --> 00:01:58,800 রুমে মানুষের সংখ্যা. 39 00:01:58,800 --> 00:02:01,260 আমরা যে পূর্ণসংখ্যা আছে, আমরা একটি অ্যারের ঘোষণা করছি. 40 00:02:01,260 --> 00:02:02,890 এই বন্ধনী সিনট্যাক্স লক্ষ্য করুন. 41 00:02:02,890 --> 00:02:04,540 আপনি যে ব্যবহার করতে যাচ্ছেন. 42 00:02:04,540 --> 00:02:09,430 >> সুতরাং আমরা পূর্ণসংখ্যার একটি অ্যারের ঘোষণা করছি বয়সের বলা হয়, এবং এন আছে 43 00:02:09,430 --> 00:02:12,080 এই অ্যারের মধ্যে পূর্ণসংখ্যা. 44 00:02:12,080 --> 00:02:16,480 ঠিক তাই এই প্যাটার্ন, এই 4 int- আমি প্লাস, আমি কম এন হল, 0 সমান 45 00:02:16,480 --> 00:02:20,580 প্লাস, যে একটি প্যাটার্ন হতে যাচ্ছে আপনি খুব ব্যবহার করতে পারেন যে. 46 00:02:20,580 --> 00:02:24,000 যে বেশ অনেক আপনি কিভাবে কারণ সবসময় অ্যারে পুনরুক্তি করা যাচ্ছে. 47 00:02:24,000 --> 00:02:26,330 তাই এন হয় মনে রাখা আমাদের অ্যারের দ্বারা. 48 00:02:26,330 --> 00:02:32,120 তাই এখানে, আমরা বার বার জিজ্ঞাসা করা হয় রুমে ব্যক্তি আমি বয়সের জন্য. 49 00:02:32,120 --> 00:02:36,640 >> এই পর, আমরা নিচে যান, এবং যাহা জন্য নির্বিচারে কারণ, আমরা তখন 50 00:02:36,640 --> 00:02:40,220 তারা চলুন কত পুরানো প্রিন্ট আউট এখন থেকে এক বছর হতে. 51 00:02:40,220 --> 00:02:49,980 এবং যে প্রোগ্রাম, এর যাক , বয়সের করতে স্ল্যাশ বয়সের বিন্দু. 52 00:02:49,980 --> 00:02:53,010 তাই রুমে মানুষের সংখ্যা, এর তিনটি আছে বলা যাক. 53 00:02:53,010 --> 00:02:59,880 এবং, প্রথম ব্যক্তি 13 হয় বলে, আগামী 26, এবং গত 30 হয়. 54 00:02:59,880 --> 00:03:05,080 আমি তখন এটি ঐ তিন উপর বারবার করব মানুষ,, 14 আউট 27, এবং 31 মুদ্রণ. 55 00:03:05,080 --> 00:03:16,060 >> তাই মনে রাখা যে আমরা একটি ঘোষণা যখন আকার n এর অ্যারে, যে এ সূচক 56 00:03:16,060 --> 00:03:19,950 অ্যারে, অ্যারের মান রয়েছে এবং সূচক 0, 1, 2, সব পথ 57 00:03:19,950 --> 00:03:21,680 আপ n যাও বিয়োগ 1. 58 00:03:21,680 --> 00:03:26,255 সুতরাং আমরা যখন বলেন তিন জনের ছিল রুমে, এবং আমরা এখানে স্থাপন করা 59 00:03:26,255 --> 00:03:29,850 এই মাধ্যমে প্রথম পুনরাবৃত্তির লুপ, আমি 0 হতে যাচ্ছে. 60 00:03:29,850 --> 00:03:31,650 সুতরাং সূচক 0 সালে. 61 00:03:31,650 --> 00:03:34,540 আমরা প্রথম বরাদ্দ করা হয় ব্যবহারকারী প্রবেশ এজ. 62 00:03:34,540 --> 00:03:38,870 তারপর পরের এক, আমরা প্রবেশ করছি দ্বিতীয় এন ব্যবহারকারী প্রবেশ করে, এবং এ 63 00:03:38,870 --> 00:03:40,580 দুই, গত এন পাশে. 64 00:03:40,580 --> 00:03:44,200 >> তাই লক্ষ্য করা যে আকারের একটি অ্যারে তিন কিছু নেই 65 00:03:44,200 --> 00:03:46,040 সূচী তিনটি. 66 00:03:46,040 --> 00:03:49,036 এই বৈধ নয়. 67 00:03:49,036 --> 00:03:50,250 ঠিক আছে. 68 00:03:50,250 --> 00:03:55,136 সুতরাং, এখানে ফিরে যাচ্ছে. 69 00:03:55,136 --> 00:03:57,650 70 00:03:57,650 --> 00:04:01,590 তাই এখন আমরা অ্যারে মোকাবেলা করেছি যে, আমরা কিছু ঘনিষ্ঠতা আছে. 71 00:04:01,590 --> 00:04:03,780 এখন আমরা কমান্ড যান চলুন হতে যাচ্ছে যা লাইন আর্গুমেন্ট, 72 00:04:03,780 --> 00:04:05,890 এই সমস্যা সেটে বেশ প্রাসঙ্গিক. 73 00:04:05,890 --> 00:04:09,670 >> তাই এখন পর্যন্ত আপ, যখনই আপনি করেছি আপনার প্রধান ফাংশন ঘোষণা, আমরা করেছি 74 00:04:09,670 --> 00:04:11,230 int প্রধান অকার্যকর বলেন. 75 00:04:11,230 --> 00:04:14,070 তাই অকার্যকর শুধু মানে আমরা কোনো পাশ করার নেই 76 00:04:14,070 --> 00:04:16,440 এই ফাংশন আর্গুমেন্ট. 77 00:04:16,440 --> 00:04:19,190 এখন আমরা যে প্রধান দেখতে যাচ্ছেন কিছু আর্গুমেন্ট গ্রহণ করতে পারেন. 78 00:04:19,190 --> 00:04:22,470 এখানে আমরা argc int-তাদের কল এবং স্ট্রিং argv বন্ধনী. 79 00:04:22,470 --> 00:04:26,930 বন্ধনী, আবার, ইঙ্গিত আমরা অ্যারে সঙ্গে লেনদেন করছেন যে. 80 00:04:26,930 --> 00:04:31,850 তাই এখানে, স্ট্রিং argv বন্ধনী, আমরা করছি স্ট্রিং একটি অ্যারের সাথে আচরণ. 81 00:04:31,850 --> 00:04:35,360 সুতরাং argc, যা নির্দেশ করে যাচ্ছে আমরা করেছি কতগুলি আর্গুমেন্ট 82 00:04:35,360 --> 00:04:37,580 এই প্রোগ্রাম প্রেরণ. 83 00:04:37,580 --> 00:04:46,050 এবং, এর মানে হল যে তা দেখতে এর এই বন্ধ করা যাক. 84 00:04:46,050 --> 00:04:46,490 >> ঠিক আছে. 85 00:04:46,490 --> 00:04:50,790 তাই এখন পর্যন্ত আপ, আমরা প্রতি রান করেছি ডট স্ল্যাশ বয়সের মত প্রোগ্রাম. 86 00:04:50,790 --> 00:04:55,250 আমরা যা করতে পারেন এছাড়াও, কমান্ড লাইনে, অতীত আর্গুমেন্ট পাস, এইভাবে শব্দ, কমান্ড 87 00:04:55,250 --> 00:04:56,550 লাইন আর্গুমেন্ট. 88 00:04:56,550 --> 00:04:59,760 তাই প্রথম যুক্তি, হ্যালো দুনিয়া. 89 00:04:59,760 --> 00:05:03,350 তাই এখানে, argc তিনটি হবে. 90 00:05:03,350 --> 00:05:07,720 এটা আর্গুমেন্ট গণনা এর কমান্ড লাইনে. 91 00:05:07,720 --> 00:05:12,840 Argc, সবসময় অন্তত 1 থেকে বিন্দু , নিজেই বয়সের স্ল্যাশ, এক হিসাবে গণ্য 92 00:05:12,840 --> 00:05:14,490 কমান্ড লাইন আর্গুমেন্ট. 93 00:05:14,490 --> 00:05:17,010 >> তারপর হ্যালো প্রথম. 94 00:05:17,010 --> 00:05:20,460 ডট স্ল্যাশ বয়সের তারপর, zeroth যদি হ্যালো প্রথম, এবং দুনিয়া 95 00:05:20,460 --> 00:05:22,830 দ্বিতীয় কমান্ড লাইন আর্গুমেন্ট. 96 00:05:22,830 --> 00:05:29,490 তাই স্ট্রিং argv, আমরা দেখতে যাচ্ছেন, স্ট্রিং, বিন্দু স্ল্যাশ রয়েছে 97 00:05:29,490 --> 00:05:33,830 বয়সের, হ্যালো, এবং বিশ্বের. 98 00:05:33,830 --> 00:05:38,945 এবং, ডেভিড এর অনুরোধ করে, আমরা চলুন যে প্রবর্তনের একটি ভিডিও প্লে করতে. 99 00:05:38,945 --> 00:05:42,486 100 00:05:42,486 --> 00:05:43,890 >> [ভিডিও প্লেব্যাক] 101 00:05:43,890 --> 00:05:46,240 >> আপ আমরা করেছি প্রোগ্রাম যা এখন পর্যন্ত লিখিত, আমরা ঘোষণা করেছি 102 00:05:46,240 --> 00:05:48,500 প্রধান হিসাবে int প্রধান অকার্যকর. 103 00:05:48,500 --> 00:05:51,170 এবং এই সব সময়, যে শূন্যতা আছে কেবল উল্লেখ করা হয়েছে যে 104 00:05:51,170 --> 00:05:54,430 প্রোগ্রাম কোনো লাগবে না কমান্ড লাইন আর্গুমেন্ট. 105 00:05:54,430 --> 00:05:57,750 একটি ব্যবহারকারী একটি রান যখন অন্য কথায়, ইন প্রোগ্রাম, সে কমান্ড প্রদান করতে পারেন 106 00:05:57,750 --> 00:06:01,710 অতিরিক্ত লিখে লাইন আর্গুমেন্ট শব্দ বা বাক্যাংশ পরে প্রোগ্রাম এর 107 00:06:01,710 --> 00:06:03,000 প্রম্পটে নাম দিন. 108 00:06:03,000 --> 00:06:06,550 >> হ্যাঁ, আপনি আপনার প্রোগ্রাম চাই আপনি যদি কমান্ড লাইন আর্গুমেন্ট, একটি বা নিতে 109 00:06:06,550 --> 00:06:10,540 আরো যেমন শব্দ, আমরা প্রতিস্থাপন করতে হবে আর্গুমেন্ট কয়েক সঙ্গে বাতিলযোগ্য. 110 00:06:10,540 --> 00:06:12,200 সুতরাং আসুন যে কাজের জন্য. 111 00:06:12,200 --> 00:06:15,750 Cs50.h. অন্তর্ভুক্ত করুন 112 00:06:15,750 --> 00:06:19,360 প্রমিত io.h. অন্তর্ভুক্ত করুন 113 00:06:19,360 --> 00:06:20,760 প্রধান আন্তর্জাতিক. 114 00:06:20,760 --> 00:06:26,330 এবং এখন, পরিবর্তে অকার্যকর, আমি যাচ্ছি একটি argc নামক int-, এবং একটি নির্দিষ্ট 115 00:06:26,330 --> 00:06:28,780 argv নামক স্ট্রিং অ্যারে. 116 00:06:28,780 --> 00:06:31,820 এখন, argc এবং argv হয় কেবল নিয়মাবলী. 117 00:06:31,820 --> 00:06:34,000 >> আমরা এই আর্গুমেন্ট বলা থাকতে পারে আমরা চাই অধিকাংশ কিছু. 118 00:06:34,000 --> 00:06:37,630 কিন্তু কি গুরুত্বপূর্ণ argc হয় কোন int সংজ্ঞা দ্বারা, এটা হয়, কারণ 119 00:06:37,630 --> 00:06:41,360 যুক্তি গণনা ধারণ করে যাচ্ছে, মোট শব্দের সংখ্যা যে 120 00:06:41,360 --> 00:06:43,380 ব্যবহারকারী তার বা তার প্রম্পটে টাইপ করা হয়েছে. 121 00:06:43,380 --> 00:06:47,910 argv এদিকে, যুক্তি ভেক্টর, হয় আসলে জমা করার একটি অ্যারে হতে যাচ্ছে 122 00:06:47,910 --> 00:06:52,020 ব্যবহারকারী যে সব শব্দের তার বা তার প্রম্পটে টাইপ করা. 123 00:06:52,020 --> 00:06:54,500 >> এর এখন কিছু করতে এগিয়ে আসুন এর মধ্যে এক বা একাধিক সঙ্গে 124 00:06:54,500 --> 00:06:55,660 কমান্ড লাইন আর্গুমেন্ট. 125 00:06:55,660 --> 00:07:00,070 বিশেষ করে, এর এগিয়ে এবং মুদ্রণ চলুন যাই হোক না কেন শব্দ ব্যবহারকারী ধরনের 126 00:07:00,070 --> 00:07:03,960 প্রোগ্রাম এর নাম পরে প্রম্পটে. 127 00:07:03,960 --> 00:07:04,730 ওপেন বন্ধনী. 128 00:07:04,730 --> 00:07:06,240 বন্ধ বন্ধনী. 129 00:07:06,240 --> 00:07:10,510 Printf শতাংশ গুলি ব্যাকস্ল্যাশ ও কমা. 130 00:07:10,510 --> 00:07:14,550 এবং এখন আমি printf, কি মূল্য বলা প্রয়োজন যে স্থানধারক মধ্যে চলা. 131 00:07:14,550 --> 00:07:18,600 আমি ব্যবহারকারী যে প্রথম শব্দ চাই প্রোগ্রাম এর নাম পরে টাইপ করা, 132 00:07:18,600 --> 00:07:23,130 এবং তাই আমি উল্লেখ করা যাচ্ছে না argv বন্ধনী 1, বন্ধ 133 00:07:23,130 --> 00:07:24,830 লঘুবন্ধনী, সেমিকোলন. 134 00:07:24,830 --> 00:07:27,290 >> এখন, কেন বন্ধনী 1 এবং না বন্ধনী 0? 135 00:07:27,290 --> 00:07:30,990 ভাল, এটি স্বয়ংক্রিয়ভাবে সংরক্ষণ করা, দেখা যাচ্ছে argv মধ্যে 0 হতে যাচ্ছে 136 00:07:30,990 --> 00:07:32,620 প্রোগ্রাম এর প্রকৃত নাম. 137 00:07:32,620 --> 00:07:36,180 সুতরাং প্রথম শব্দ যে ব্যবহারকারী ধরনের প্রোগ্রাম এর নাম দ্বারা, পরে 138 00:07:36,180 --> 00:07:38,990 কনভেনশন, হতে যাচ্ছে argv 1 সংরক্ষিত. 139 00:07:38,990 --> 00:07:42,380 এর এখন কম্পাইল করা যাক এবং এই প্রোগ্রাম চালানো. 140 00:07:42,380 --> 00:07:47,780 >> Argv 0, বিন্দু স্ল্যাশ argv 0 করুন. 141 00:07:47,780 --> 00:07:50,520 এবং এখন একটি শব্দ হ্যালো মত. 142 00:07:50,520 --> 00:07:51,670 লিখুন. 143 00:07:51,670 --> 00:07:53,520 এবং সেখানে আমরা হ্যালো, এটা আছে. 144 00:07:53,520 --> 00:07:55,750 >> [END টি ভিডিও প্লেব্যাক] 145 00:07:55,750 --> 00:07:57,000 >> ছিনিয়ে Boden: ঠিক আছে. 146 00:07:57,000 --> 00:07:59,380 147 00:07:59,380 --> 00:08:01,230 যে বন্ধ করুন. 148 00:08:01,230 --> 00:08:16,730 সুতরাং যে প্রোগ্রাম কটাক্ষপাত গ্রহণ করে আমরা শুধু ভাল,, আমাদের কাছে শুধু চালু 149 00:08:16,730 --> 00:08:24,710 আমরা 0 argv প্রিন্ট এখন, যদি না,, প্রদর্শন এটা, argv 0, বিন্দু স্ল্যাশ argv 0 কি. 150 00:08:24,710 --> 00:08:30,440 প্রত্যাশা অনুযায়ী তাই,, এটা মুদ্রণ হচ্ছে argv 0 যেহেতু, প্রোগ্রামের নাম 151 00:08:30,440 --> 00:08:32,970 সবসময় হতে যাচ্ছে প্রোগ্রামের নাম. 152 00:08:32,970 --> 00:08:35,640 কিন্তু এর কিছু একটা করতে দেওয়া আরো আকর্ষণীয় বিট. 153 00:08:35,640 --> 00:08:42,080 >> সুতরাং সমস্যা সেট, আপনি হবেন এই ফাংশন, ATOI চালু. 154 00:08:42,080 --> 00:08:44,440 তাই আমরা জন্য ATOI ব্যবহার? 155 00:08:44,440 --> 00:08:48,550 যে রূপান্তর যাচ্ছে একটি একটি পূর্ণসংখ্যা যাও স্ট্রিং. 156 00:08:48,550 --> 00:08:53,280 তাই আমি স্ট্রিং পাস হলে, এক দুই তিন, ATOI করার জন্য, যে রূপান্তর করব 157 00:08:53,280 --> 00:08:56,910 পূর্ণসংখ্যা দিতে, এক দুই তিন. 158 00:08:56,910 --> 00:09:01,480 তাই আমরা প্রথম রূপান্তর চলুন একটি পূর্ণসংখ্যা করতে কমান্ড লাইন আর্গুমেন্ট, 159 00:09:01,480 --> 00:09:05,690 এবং তারপর ঠিক যে পূর্ণসংখ্যা মুদ্রণ. 160 00:09:05,690 --> 00:09:09,680 >> তাই মূলত, আমরা ধরনের করছি শুধু GetInt reimplementing 161 00:09:09,680 --> 00:09:12,350 পূর্ণসংখ্যা কমান্ড এ সন্নিবেশ করা লাইন পরিবর্তে প্রোগ্রামে 162 00:09:12,350 --> 00:09:14,560 ইন্টারেক্টিভ. 163 00:09:14,560 --> 00:09:23,170 আমি তখন, argv 0, যার ফলে এর না দেওয়া এখানে তা, এবং যে বন্ধ. 164 00:09:23,170 --> 00:09:27,670 সুতরাং argv 0 চলমান, এবং এর প্রবেশ করা যাক পূর্ণসংখ্যা, এক দুই তিন চার এক দুই. 165 00:09:27,670 --> 00:09:30,840 সুতরাং, এক পূর্ণসংখ্যা প্রিন্ট করব দুই তিন চার এক দুই. 166 00:09:30,840 --> 00:09:35,500 যে ATOI কিছু subtleties আছে এটা কিছু বিষয়ে চিন্তা করা বন্ধ করব 167 00:09:35,500 --> 00:09:39,040 একটি বৈধ সাংখ্যিক অক্ষর অতিক্রম, কিন্তু যে কোন ব্যাপার না. 168 00:09:39,040 --> 00:09:42,870 >> সুতরাং আপনি কি মনে করেন আমি এটা করতে পারি? 169 00:09:42,870 --> 00:09:45,520 170 00:09:45,520 --> 00:09:47,050 সেগমেন্টেশন ফল্ট. 171 00:09:47,050 --> 00:09:50,410 সুতরাং এটা কেন হয়? 172 00:09:50,410 --> 00:09:56,060 আপনি আমাদের প্রোগ্রামে ফিরে, আমরা করছি argv 1, প্রথম যুক্তি রূপান্তর 173 00:09:56,060 --> 00:09:59,610 প্রোগ্রামের নামের পরে, একটি পূর্ণসংখ্যা করতে. 174 00:09:59,610 --> 00:10:03,350 কিন্তু গৃহীত কোন যুক্তি আছে প্রোগ্রামের নামের পরে. 175 00:10:03,350 --> 00:10:08,060 তাই এখানে, আমরা এই একটি বগী যে দেখুন প্রোগ্রাম, যেহেতু, আমরা এটি চালানোর চেষ্টা করুন 176 00:10:08,060 --> 00:10:10,530 কোনো আর্গুমেন্ট ছাড়া, এটি শুধু বিপর্যস্ত হবে. 177 00:10:10,530 --> 00:10:16,950 >> আপনি দেখতে পাবেন তাই আরেকটি সাধারণ প্যাটার্ন কিছু মত, argc কম হলে 178 00:10:16,950 --> 00:10:21,100 ছিল না যা নির্দেশ দুটি, আর অন্তত প্রোগ্রাম নাম এবং একটি 179 00:10:21,100 --> 00:10:29,100 প্রথম যুক্তি, তাহলে আমরা কিছু করতে দেব ভালো printf,, যথেষ্ট নয় 180 00:10:29,100 --> 00:10:31,190 কমান্ড লাইন আর্গুমেন্ট. 181 00:10:31,190 --> 00:10:33,170 যে সম্ভবত প্রিন্ট করতে ভালো না, এটা পছন্দ সম্ভবত কিছু 182 00:10:33,170 --> 00:10:35,440 আপনি একটি পূর্ণসংখ্যা লিখুন উচিত কমান্ড লাইনে. 183 00:10:35,440 --> 00:10:37,450 আমি ঠিক আছে এটা শেষ করব. 184 00:10:37,450 --> 00:10:39,600 এবং তারপর 1 ফিরে. 185 00:10:39,600 --> 00:10:44,740 সুতরাং আমাদের শেষে মনে রাখা প্রোগ্রাম, আমরা 0 ফিরে, যে ধরণের 186 00:10:44,740 --> 00:10:47,060 সাফল্য নির্দেশ করে. 187 00:10:47,060 --> 00:10:50,940 আর প্রধান স্বয়ংক্রিয়রূপে আপনি না হলে 0 প্রদান করে. 188 00:10:50,940 --> 00:10:55,800 >> তাই এখানে, আমরা ইঙ্গিত 1 retuning করছি যে সাফল্য না যে. 189 00:10:55,800 --> 00:11:01,000 এবং আপনি যাহা চান ফিরে আসতে পারেন, শুধু, 0 সাফল্য নির্দেশ করে, এবং 190 00:11:01,000 --> 00:11:03,390 অন্য কিছু ব্যর্থতা নির্দেশ করে. 191 00:11:03,390 --> 00:11:04,855 সুতরাং আসুন জিনিস এই সংস্করণে চালানো যাক. 192 00:11:04,855 --> 00:11:12,880 193 00:11:12,880 --> 00:11:16,600 সুতরাং এখন, আমরা একটি কমান্ড লাইন লিখতে না থাকলে যুক্তি, এটা সঠিকভাবে বলতে পারবেন 194 00:11:16,600 --> 00:11:18,290 আমাদের যথেষ্ট কমান্ড লাইন না. 195 00:11:18,290 --> 00:11:20,610 বাক্য শেষ না. 196 00:11:20,610 --> 00:11:24,950 অন্যথায়, আমরা আসলে এটি এক পাস হলে, এটি প্রোগ্রাম সম্পন্ন করতে পারবেন. 197 00:11:24,950 --> 00:11:27,920 তাই এই আপনি argc ব্যবহার করেন কিভাবে সংখ্যার বৈধতা যাচাই করার জন্য 198 00:11:27,920 --> 00:11:30,630 কমান্ড লাইন আর্গুমেন্ট যে প্রকৃতপক্ষে গৃহীত হয়. 199 00:11:30,630 --> 00:11:39,360 >> সুতরাং আসুন কিছুটা এই প্রোগ্রাম করার সুযোগ জটিল, এবং দ্বিতীয় তাকান 200 00:11:39,360 --> 00:11:42,180 জিনিস পুনরাবৃত্তির. 201 00:11:42,180 --> 00:11:46,310 সুতরাং এখন, আমরা শুধু মুদ্রণ করছি না প্রথম কমান্ড লাইন আর্গুমেন্ট. 202 00:11:46,310 --> 00:11:51,210 এখানে, আমরা int আমি সমান থেকে iterating করছি 0, আমি, আমি argc কম প্লাস 203 00:11:51,210 --> 00:11:55,280 প্লাস, এবং মুদ্রণ argv, সূচক আমি. 204 00:11:55,280 --> 00:11:59,300 তাই এই প্যাটার্ন, আবার, এই একই পরিবর্তে ব্যতীত আগে হিসেবে প্যাটার্ন, 205 00:11:59,300 --> 00:12:02,600 পরিবর্তনশীল কলিং এন, আমরা argc ব্যবহার করছেন. 206 00:12:02,600 --> 00:12:09,520 >> তাই এই প্রতিটি সূচক উপর iterating হয় অ্যারের মধ্যে, এবং প্রতিটি মুদ্রণ 207 00:12:09,520 --> 00:12:11,910 যে অ্যারের মধ্যে উপাদান. 208 00:12:11,910 --> 00:12:20,300 এবং তাই, আমরা এই প্রোগ্রাম চালানো হলে, ভাল, আমি কোনো কমান্ড লাইন লিখতে হয়নি 209 00:12:20,300 --> 00:12:22,540 আর্গুমেন্ট, শুধু কপি করে প্রিন্ট এটা তাই প্রোগ্রামের নাম. 210 00:12:22,540 --> 00:12:26,053 আমি জিনিস এক গুচ্ছ লিখুন, এটা করব এক, তার নিজস্ব লাইন প্রতিটি মুদ্রণ. 211 00:12:26,053 --> 00:12:31,213 212 00:12:31,213 --> 00:12:32,210 >> ঠিক আছে. 213 00:12:32,210 --> 00:12:34,770 সুতরাং আসুন আরও এই এক পদক্ষেপ গ্রহণ করা. 214 00:12:34,770 --> 00:12:38,890 এবং এর পরিবর্তে প্রতিটি যুক্তি মুদ্রণ তার নিজস্ব লাইন, একে মুদ্রণ যাক 215 00:12:38,890 --> 00:12:42,590 প্রতিটি যুক্তি চরিত্র তার নিজস্ব লাইন. 216 00:12:42,590 --> 00:12:46,700 সুতরাং argv হয় মনে রাখা স্ট্রিং একটি অ্যারে. 217 00:12:46,700 --> 00:12:50,960 তাই কি একটি স্ট্রিং, কিন্তু অক্ষরের একটি অ্যারের? 218 00:12:50,960 --> 00:12:57,140 সুতরাং যে argv সত্যিই মানে হল যে একটি অক্ষরের একটি অ্যারের অ্যারে. 219 00:12:57,140 --> 00:13:04,920 যাতে এর সুযোগ নিয়ে, এর জন্য এখন এই উপেক্ষা করা. 220 00:13:04,920 --> 00:13:08,190 এর মাত্র স্ট্রিং argv 0 বিবেচনা করা যাক. 221 00:13:08,190 --> 00:13:14,170 >> আমরা প্রতিটি চরিত্রের আনতে চান তাই আপনি যদি argv 0 নিজস্ব লাইনে, তাহলে আমি চাই 222 00:13:14,170 --> 00:13:19,500 আমরা ব্যবহার করতেন প্যাটার্ন যা করতে, আমি হয় অ্যারের দ্বারা কম, 223 00:13:19,500 --> 00:13:23,990 এখানে, এর strlen, যা যে আমি কাজ করতে চান না কি, স্ট্রিং 224 00:13:23,990 --> 00:13:26,450 গুলি argv 0 সমান. 225 00:13:26,450 --> 00:13:30,390 তাই আমি আমাদের দৈর্ঘ্য কম এই ক্ষেত্রে একটি অ্যারে যা অ্যারে, 226 00:13:30,390 --> 00:13:34,410 অক্ষরের, আমি প্লাস প্লাস. 227 00:13:34,410 --> 00:13:41,040 আমরা গত সপ্তাহে দেখেছি এবং তাই,, এটা আদর্শ আমরা বাইরে strlen যে সরানো হলে 228 00:13:41,040 --> 00:13:45,210 অবস্থার, যেহেতু এন যোগ করা হবে s এর strlen আমরা যেতে প্রতিটি সময় 229 00:13:45,210 --> 00:13:47,720 লুপের মাধ্যমে, এবং এটি পরিবর্তন করা যাচ্ছে না. 230 00:13:47,720 --> 00:13:50,230 তাই আমরা এখানে উপর এন সমান সেট করব. 231 00:13:50,230 --> 00:13:54,260 232 00:13:54,260 --> 00:13:55,170 >> ঠিক আছে. 233 00:13:55,170 --> 00:14:01,320 সুতরাং এখন, আমরা উপর iterating করছি অ্যারের মধ্যে প্রতিটি সূচী. 234 00:14:01,320 --> 00:14:05,630 এবং তাই, আমরা প্রতিটি প্রিন্ট করতে চান তাহলে যে অ্যারের, শতাংশ সি চরিত্র 235 00:14:05,630 --> 00:14:06,880 আমরা ব্যবহার করতে চান পতাকা অক্ষরের জন্য. 236 00:14:06,880 --> 00:14:10,750 237 00:14:10,750 --> 00:14:19,770 এবং এখন একটি বন্ধনী আমি হতে যাচ্ছে স্ট্রিং, সূচক চরিত্র আমি, তাই যদি 238 00:14:19,770 --> 00:14:20,970 স্ট্রিং হ্যালো ছিল. 239 00:14:20,970 --> 00:14:27,530 তারপর বন্ধনী, 0 ঘঃ হতে যাচ্ছে S S 1 তাই ই হতে পারে, এবং হবে. 240 00:14:27,530 --> 00:14:30,800 >> তাই এখন আমরা একত্রিত করতে চান এই দুটি জিনিস. 241 00:14:30,800 --> 00:14:35,440 আমরা প্রতিটি অক্ষর প্রিন্ট করতে চান প্রতিটি কমান্ড লাইন আর্গুমেন্ট মধ্যে. 242 00:14:35,440 --> 00:14:38,950 সুতরাং আমরা আছে চলুন একটি লুপ জন্য নেস্টেড. 243 00:14:38,950 --> 00:14:47,480 এবং সাধারনত, প্রথম কাউন্টার আমি পরের ঞ হতে যাচ্ছে, এন হয় হয় 244 00:14:47,480 --> 00:14:54,450 argv আমি এর strlen হবে, আমি কম এন, আমি প্লাস প্লাস. 245 00:14:54,450 --> 00:14:59,150 246 00:14:59,150 --> 00:15:06,870 এবং এখন এর পরিবর্তে মুদ্রণ argv আমি, তাই আমি সূচী যাচ্ছে argv বন্ধনী - 247 00:15:06,870 --> 00:15:14,280 যে আমি তম কমান্ড লাইন হতে যাচ্ছে যুক্তি, argv আমি, ঞ যাচ্ছে 248 00:15:14,280 --> 00:15:16,925 জেটিএইচ চরিত্রের হতে I-তম যুক্তি. 249 00:15:16,925 --> 00:15:20,580 250 00:15:20,580 --> 00:15:24,810 আমি এখন এখানে এই পর্যন্ত পরিত্রাণ পাবেন আমরা যে লুপ মধ্যে রাখা থেকে. 251 00:15:24,810 --> 00:15:33,900 তাই স্ট্রিং গুলি সমান সমতূল্য argv আমি, এবং তারপর গুলি বন্ধনী ঞ. 252 00:15:33,900 --> 00:15:36,980 >> ভাল, আমরা ঘোষণা করতে হবে না এই পরিবর্তনশীল গুলি. 253 00:15:36,980 --> 00:15:44,530 পরিবর্তে, আমরা শুধু এই একত্রিত করব আমরা ছিল কি দুটি,, ঞ ঝ argv. 254 00:15:44,530 --> 00:15:45,780 >> বক্তা 1: [শ্রবণাতীত]. 255 00:15:45,780 --> 00:15:48,850 256 00:15:48,850 --> 00:15:49,680 >> ছিনিয়ে Boden: গুড কল. 257 00:15:49,680 --> 00:15:52,936 তাই এই নষ্ট হয়ে গেছে. 258 00:15:52,936 --> 00:15:55,510 আমি আসলে এটা দৌড়ে, আমরা would এই উপলব্ধি করেছেন. 259 00:15:55,510 --> 00:16:01,210 আমি যত্নশীল তাই কাউন্টার জন্য এই বিশেষ 260 00:16:01,210 --> 00:16:05,410 লুপ জে, iterator হয়. 261 00:16:05,410 --> 00:16:08,560 তাই আপনি যদি বিষয় পড়া হবে, সম্ভবত একটি অসীম লুপ, যদি আমরা 262 00:16:08,560 --> 00:16:09,540 যে নির্দিষ্ট ছিল না. 263 00:16:09,540 --> 00:16:12,220 আমরা কথা বলছি কেন আমার আজকের ডিবাগ. 264 00:16:12,220 --> 00:16:13,120 >> ঠিক আছে. 265 00:16:13,120 --> 00:16:15,240 তাই আসুন এই প্রোগ্রাম চালানো যাক. 266 00:16:15,240 --> 00:16:21,200 এবং এর আসলে একটি পৃথক printf যোগ করুন অধিকার এখানে শুধু প্রিন্ট করবে 267 00:16:21,200 --> 00:16:27,480 এই অর্থ থেকে অন্য লাইনে, যখন আমরা প্রোগ্রাম চালানো, একটি ফাঁকা আছে হবেন 268 00:16:27,480 --> 00:16:31,830 প্রতিটি চরিত্রের মধ্যে মধ্যে লাইন প্রতিটি কমান্ড লাইন আর্গুমেন্ট. 269 00:16:31,830 --> 00:16:33,448 ভাল, আমরা মানে যে কি দেখতে পাবেন. 270 00:16:33,448 --> 00:16:37,310 271 00:16:37,310 --> 00:16:37,790 OOP. 272 00:16:37,790 --> 00:16:39,870 কিছু বাগ আছে. 273 00:16:39,870 --> 00:16:42,860 ত্রুটি পরোক্ষভাবে ঘোষণা লাইব্রেরি ফাংশন strlen. 274 00:16:42,860 --> 00:16:51,630 >> সুতরাং আমাদের প্রোগ্রামে ফিরে যাওয়া, আমি string.h অন্তর্ভুক্ত হ্যাশ ভুলে গেছি. 275 00:16:51,630 --> 00:16:54,240 276 00:16:54,240 --> 00:16:57,730 সুতরাং string.h হতে যাচ্ছে ঘোষণা যে হেডার ফাইল 277 00:16:57,730 --> 00:16:58,980 ফাংশন strlen. 278 00:16:58,980 --> 00:17:04,650 279 00:17:04,650 --> 00:17:06,060 ঠিক আছে, এটি প্রনয়ন. 280 00:17:06,060 --> 00:17:09,109 এখন, এর এটি চালানো যাক. 281 00:17:09,109 --> 00:17:10,930 সুতরাং শুধু যে. 282 00:17:10,930 --> 00:17:17,790 এটা আউট মুদ্রণ যাচ্ছে আমাদের প্রোগ্রামের নাম, হ্যালো দুনিয়া. 283 00:17:17,790 --> 00:17:23,510 এটা প্রতিটি, প্রতিটি জিনিস মুদ্রণ যাচ্ছে তার নিজস্ব লাইনে চরিত্র. 284 00:17:23,510 --> 00:17:24,540 ঠিক আছে. 285 00:17:24,540 --> 00:17:30,625 >> সুতরাং আসুন আসলে এই দেওয়া আরও এক ধাপ. 286 00:17:30,625 --> 00:17:34,050 287 00:17:34,050 --> 00:17:39,700 এবং পরিবর্তে string.h ব্যবহার করে, এর যাক আমরা আমাদের নিজস্ব বাস্তবায়ন চাই কিভাবে আমার মনে 288 00:17:39,700 --> 00:17:41,420 strlen ফাংশন. 289 00:17:41,420 --> 00:17:45,600 তাই আমি সঙ্গে সঙ্গে দেব একটি ফাংশন স্বাক্ষর. 290 00:17:45,600 --> 00:17:52,900 সুতরাং আসুন my_strlen মধ্যে কল করা যাক, এবং এটি একটি আর্গুমেন্ট হিসাবে একটি স্ট্রিং নিতে যাচ্ছে, 291 00:17:52,900 --> 00:17:57,220 এবং আমরা ফিরে যাওয়ার আশা যে স্ট্রিং এর দৈর্ঘ্য. 292 00:17:57,220 --> 00:18:03,430 সুতরাং, যে যেখানে লোক? 293 00:18:03,430 --> 00:18:04,990 হ্যাঁ. 294 00:18:04,990 --> 00:18:06,740 ঠিক আছে. 295 00:18:06,740 --> 00:18:12,900 তাই আগে স্লাইড থেকে মনে রাখা যে গত সপ্তাহ থেকে এছাড়াও ছিল একটি 296 00:18:12,900 --> 00:18:18,890 অক্ষরের অ্যারে, ভাল, একটি পংক্তি, তাই আসুন এই আমাদের স্ট্রিং গুলি করে বলা যাক. 297 00:18:18,890 --> 00:18:29,870 তাই গুলি স্ট্রিং যদি, হ্যালো, তারপর, H-ই, L-, L-হে, মেমরি, যে যাচ্ছে 298 00:18:29,870 --> 00:18:35,610 তাহলে এই ব্যাকস্ল্যাশ হতে পারে, এবং 0 চরিত্র. 299 00:18:35,610 --> 00:18:39,170 >> তাই কিভাবে আমরা গুলি দৈর্ঘ্য পেতে পারি? 300 00:18:39,170 --> 00:18:43,190 ওয়েল, কৌতুক এই জন্য খুঁজছেন হয় 0 চরিত্র, এই নাল নেতিবাচক প্রতিক্রিয়া 301 00:18:43,190 --> 00:18:44,380 টারমিনেটর. 302 00:18:44,380 --> 00:18:50,270 তাই আলগোরিদিম যাচ্ছে কয়েক ভালো কিছু হতে 303 00:18:50,270 --> 00:18:51,510 যথেষ্ট অক্ষর যে - 304 00:18:51,510 --> 00:18:56,180 এর এই হাতে কিছু প্রতিনিধিত্বকারী আছে যাক কাউন্টার, এর এই int-দ্বারা কল করা যাক. 305 00:18:56,180 --> 00:19:00,060 সুতরাং, এখানে উপর থেকে শুরু, আমরা করছি আমাদের স্ট্রিং উপর বারবার যাচ্ছে. 306 00:19:00,060 --> 00:19:04,100 >> সুতরাং, এটা এইচ প্রথম অক্ষর আছে, এবং এটি ফিরে, তাই 0 স্ল্যাশ না 307 00:19:04,100 --> 00:19:05,170 দৈর্ঘ্য 1. 308 00:19:05,170 --> 00:19:08,050 পরবর্তী চরিত্রের বারবার, ই, এবং এটি 0 ব্যাকস্ল্যাশ না. 309 00:19:08,050 --> 00:19:09,630 দৈর্ঘ্য 2. 310 00:19:09,630 --> 00:19:10,960 এল, 3. 311 00:19:10,960 --> 00:19:11,850 এল, 4. 312 00:19:11,850 --> 00:19:13,050 হে, 5. 313 00:19:13,050 --> 00:19:16,690 এবং পরিশেষে, আমরা ব্যাকস্ল্যাশ পৌঁছানোর 0, এবং তাই তার মানে, ভাল, 314 00:19:16,690 --> 00:19:17,780 এই পংক্তি শেষ হয়. 315 00:19:17,780 --> 00:19:20,130 সুতরাং আসুন 5 ফিরে যাক. 316 00:19:20,130 --> 00:19:33,630 >> তাই আসলে, প্রথম, যে রূপায়ণকারী আমার এন দৈর্ঘ্য আমার ডান হাত, 0 সমান. 317 00:19:33,630 --> 00:19:36,088 এবং আমরা বারবার চলুন - 318 00:19:36,088 --> 00:19:38,000 >> বক্তা 1: [শ্রবণাতীত] 319 00:19:38,000 --> 00:19:38,640 >> ছিনিয়ে Boden: ওহ, অঙ্কুর. 320 00:19:38,640 --> 00:19:39,870 গুড কল. 321 00:19:39,870 --> 00:19:42,680 পরিস্ফুটন. 322 00:19:42,680 --> 00:19:44,140 তাই এন দৈর্ঘ্য 0 সমান. 323 00:19:44,140 --> 00:19:46,910 324 00:19:46,910 --> 00:19:58,310 সুতরাং এখন, যখন গুলি দৈর্ঘ্য না তারপর সমান এবং, ব্যাকস্ল্যাশ 0. 325 00:19:58,310 --> 00:20:04,660 সুতরাং, এই ব্যাকস্ল্যাশ 0 স্মরণ, এটি একটি হল প্রকৃত চরিত্র, এবং এটি নির্দেশ করে 326 00:20:04,660 --> 00:20:05,820 স্ট্রিং এর শেষে. 327 00:20:05,820 --> 00:20:09,850 শুধু ভালো, এছাড়াও, ব্যাকস্ল্যাশ N অন্তর্গত একটি প্রকৃত চরিত্র. 328 00:20:09,850 --> 00:20:14,040 ব্যাকস্ল্যাশ 0 ইঙ্গিত যাচ্ছে আমাদের স্ট্রিং এর শেষে. 329 00:20:14,040 --> 00:20:15,414 আমি সেখানে যে রাখতে চান না. 330 00:20:15,414 --> 00:20:19,190 331 00:20:19,190 --> 00:20:25,620 এবং দৈর্ঘ্য সূচীবদ্ধ গুলি নয়, যখন নাল টারমিনেটর সমান তারপর, 332 00:20:25,620 --> 00:20:27,130 আমরা শুধু দৈর্ঘ্য বাড়ায় চলুন. 333 00:20:27,130 --> 00:20:29,860 334 00:20:29,860 --> 00:20:34,880 আমি তখন, আমাদের প্রোগ্রাম শেষে, দৈর্ঘ্য ঘটনাক্রমে যাচ্ছে 335 00:20:34,880 --> 00:20:37,610 এই ক্ষেত্রে 5 হতে. 336 00:20:37,610 --> 00:20:39,210 এবং আমরা শুধু দৈর্ঘ্য ফিরে আসবেন. 337 00:20:39,210 --> 00:20:42,570 338 00:20:42,570 --> 00:20:43,530 >> ঠিক আছে. 339 00:20:43,530 --> 00:20:48,290 তাই এখন এখানে নিচে, আমি না my_strlen না. 340 00:20:48,290 --> 00:20:50,700 এর নিশ্চিত এটা কম্পাইল করা যাক সবকিছু সহজে চালানো হয়. 341 00:20:50,700 --> 00:20:55,820 342 00:20:55,820 --> 00:20:58,210 আমি 2 মধ্যে করছেন? 343 00:20:58,210 --> 00:21:00,565 বা 1 যে ছিল? 344 00:21:00,565 --> 00:21:01,940 এটা করা উচিৎ. 345 00:21:01,940 --> 00:21:02,690 ঠিক আছে. 346 00:21:02,690 --> 00:21:08,490 তাই এই argv 2. 347 00:21:08,490 --> 00:21:11,585 প্রত্যাশিত হিসাবে, কাজ করে, যদিও এক আমি এটা করেছিল যে ছিল? 348 00:21:11,585 --> 00:21:15,060 349 00:21:15,060 --> 00:21:15,550 হ্যাঁ. 350 00:21:15,550 --> 00:21:16,760 ঠিক আছে. 351 00:21:16,760 --> 00:21:21,820 জিনিস এই সংস্করণ আছে কি না printf, নতুন পর লাইন, কিন্তু এটি 352 00:21:21,820 --> 00:21:22,910 কোনো পার্থক্য করা হয় না. 353 00:21:22,910 --> 00:21:23,300 ঠিক আছে. 354 00:21:23,300 --> 00:21:25,780 প্রত্যাশা অনুযায়ী এ কাজ করেন. 355 00:21:25,780 --> 00:21:34,750 >> এখন আমরা এই এক ধাপ একত্রিত করতে পারেন উপরন্তু, এখানে যেখানে নোটিশ, ভাল, 356 00:21:34,750 --> 00:21:38,920 প্রথমত, আমরা argv এর strlen দখল করছি আমি, এবং তারপর আমরা উপর iterating করছি 357 00:21:38,920 --> 00:21:41,450 যে স্ট্রিং প্রতিটি অক্ষর. 358 00:21:41,450 --> 00:21:47,480 সুতরাং পরিবর্তে যে করছেন, তা যদি আমরা শুধু অপেক্ষা এই যুক্তি একত্রিত 359 00:21:47,480 --> 00:21:50,740 আমরা ব্যাকস্ল্যাশ 0 ডান আঘাত না হওয়া পর্যন্ত লুপ জন্য এই মধ্যে? 360 00:21:50,740 --> 00:21:53,740 361 00:21:53,740 --> 00:22:07,490 Argv আমি, ঞ আছে যখন সুতরাং পুনরুক্তি সমান নয় ব্যাকস্ল্যাশ 0. 362 00:22:07,490 --> 00:22:10,680 সুতরাং এর প্রথম এটি চালানো যাক. 363 00:22:10,680 --> 00:22:19,838 364 00:22:19,838 --> 00:22:21,180 >> ঠিক আছে. 365 00:22:21,180 --> 00:22:27,655 তাই এখানে, এই অবস্থা বলছে না - 366 00:22:27,655 --> 00:22:38,090 367 00:22:38,090 --> 00:22:40,060 এর যে পরিষ্কার করা যাক. 368 00:22:40,060 --> 00:22:49,140 তাই এখন, এই আমাদের argv হস্তক্ষেপ না করা. 369 00:22:49,140 --> 00:22:55,290 তাই আমি ঠিক আগে যে প্রোগ্রাম দৌড়ে যখন, argv স্ট্রিং একটি অ্যারে. 370 00:22:55,290 --> 00:23:03,100 এবং তাই, আমি বিন্দু স্ল্যাশ argv দিয়ে এটি চালানো হলে 2, ওহে দুনিয়া, তারপর argv 371 00:23:03,100 --> 00:23:07,650 নিজেই argv জন্য, দৈর্ঘ্য 3 শূন্য, হ্যালো, এবং বিশ্বের. 372 00:23:07,650 --> 00:23:11,700 373 00:23:11,700 --> 00:23:19,660 >> এবং এই সূচকের প্রতিটি ভেতরে, হয় নিজেই এই হবেন যেখানে একটি অ্যারের, 374 00:23:19,660 --> 00:23:23,780 বিন্দু, এই স্ল্যাশ হবে, আমি জানি না যে সঠিক পথে ছিল, আমি 375 00:23:23,780 --> 00:23:25,680 এটি ছিল না মনে হয়. 376 00:23:25,680 --> 00:23:30,110 একটি r-ভী ড্যাশ, আরো জায়গা দরকার. 377 00:23:30,110 --> 00:23:32,570 এর এই অ্যারে করে কাটা যাক. 378 00:23:32,570 --> 00:23:38,230 একটি r-ভী ড্যাশ 0, এবং তারপর ব্যাকস্ল্যাশ 0. 379 00:23:38,230 --> 00:23:43,160 এবং তারপর ছত্রভঙ্গ হ্যালো হতে হবে. 380 00:23:43,160 --> 00:23:45,910 এর, এইচ-ই ব্যাকস্ল্যাশ 0 বলে. 381 00:23:45,910 --> 00:23:51,130 এবং পরিশেষে, ওয়াট-হে ব্যাকস্ল্যাশ 0. 382 00:23:51,130 --> 00:23:59,730 >> তাই আমরা ঠিক লিখেছে যে অ্যালগরিদম, তারা কি loops জন্য নেস্টেড 383 00:23:59,730 --> 00:24:07,321 হয় করছেন, আমরা প্রথমে আছে আমি এবং তারপর ঞ মোকাবেলায়. 384 00:24:07,321 --> 00:24:15,206 এই প্রথম কোড সঙ্গে সহজ হবে পর্দা, এর পিছনে এই যান. 385 00:24:15,206 --> 00:24:17,476 ঠিক আছে. 386 00:24:17,476 --> 00:24:24,600 তাই আমি যে iterator যে বিজ্ঞপ্তি প্রতিটি কমান্ডের উপর iterating 387 00:24:24,600 --> 00:24:25,610 লাইন আর্গুমেন্ট. 388 00:24:25,610 --> 00:24:28,870 আর জে iterator iterating হয় যে প্রতিটি চরিত্রের উপর 389 00:24:28,870 --> 00:24:30,410 কমান্ড লাইন আর্গুমেন্ট. 390 00:24:30,410 --> 00:24:46,755 তাই এই অন্তরতম printf, কি করছে , আমরা argv 0 0 printf, printf আছে হয় 391 00:24:46,755 --> 00:24:58,680 argv 0 1 printf, argv 0 2 0 3 0 4 0 5, 0 6, কিন্তু এখন, argv 0 7 যাচ্ছে 392 00:24:58,680 --> 00:25:00,670 সমান ব্যাকস্ল্যাশ 0. 393 00:25:00,670 --> 00:25:05,730 >> তখন আমরা লুপ জন্য যে প্রস্থান, এবং এখন আমি 1 থেকে iterates. 394 00:25:05,730 --> 00:25:10,910 এবং এখন আমরা মুদ্রণ চলুন argv 1 0, argv 1 1 - 395 00:25:10,910 --> 00:25:17,040 ওয়েল, এখন, আমি ছোট হ্যালো কাটা থেকে, argv 1 2 আবার হতে যাচ্ছে 396 00:25:17,040 --> 00:25:18,170 ব্যাকস্ল্যাশ 0. 397 00:25:18,170 --> 00:25:25,050 এবং তাই, আমি বাড়ায় এবং অবিরত, এবং তাই, যতক্ষণ না আমরা সব প্রিন্ট আউট 398 00:25:25,050 --> 00:25:28,580 বিশ্ব, এবং যারা তিনটি কমান্ড লাইন হয় আর্গুমেন্ট, এবং আমরা বাইরে থেকে প্রস্থান করব 399 00:25:28,580 --> 00:25:31,670 দূরতম লুপ, এবং আমাদের প্রোগ্রাম শেষ. 400 00:25:31,670 --> 00:25:38,390 401 00:25:38,390 --> 00:25:39,640 ঠিক আছে. 402 00:25:39,640 --> 00:25:43,903 403 00:25:43,903 --> 00:25:46,795 >> সুতরাং আসুন এখানে ফিরে আসা যাক. 404 00:25:46,795 --> 00:25:49,670 405 00:25:49,670 --> 00:25:52,370 তাই আপনার সাথে কিছু ঘনিষ্ঠতা লাভ করব এই কমান্ড লাইন আর্গুমেন্ট 406 00:25:52,370 --> 00:25:54,460 বিশেষ সমস্যা সেট. 407 00:25:54,460 --> 00:25:56,630 >> এখন, ডিবাগিং. 408 00:25:56,630 --> 00:26:01,680 তাই সম্ভবত আপনি ইতিমধ্যে কি আছে আপনার আগের কিছু ডিবাগ 409 00:26:01,680 --> 00:26:03,120 সমস্যা সেট. 410 00:26:03,120 --> 00:26:08,420 এবং ডিবাগিং এক খুব সহজ উপায়, প্রথম, এর একটি বগী প্রোগ্রাম তাকান. 411 00:26:08,420 --> 00:26:20,710 412 00:26:20,710 --> 00:26:23,830 ওয়েল, এই প্রোগ্রামের মাধ্যমে হাঁটা আমরা একটি জন্য ব্যবহারকারীকে জিজ্ঞাসা করতে যাচ্ছেন 413 00:26:23,830 --> 00:26:29,350 পূর্ণসংখ্যা, যে পূর্ণসংখ্যা দখল, এবং তারপর, ইচ্ছামত, আমরা যখন একটি লুপ আছে 414 00:26:29,350 --> 00:26:32,280 শুধু হ্রাস করতে যাচ্ছে এটি 10 ​​সমান আছে আমি যতক্ষণ. 415 00:26:32,280 --> 00:26:35,820 যাক এর মাত্র আমি লিখে করছি অনুমান 10 এর চেয়ে বড় একটি পূর্ণসংখ্যা. 416 00:26:35,820 --> 00:26:38,700 এটি 10 ​​এর সমান না হওয়া পর্যন্ত তাই আমি হ্রাস. 417 00:26:38,700 --> 00:26:42,630 >> এবং তারপর আমরা অন্য লুপ আছে তোমার 0 সমান না, আমরা করছি, যে 418 00:26:42,630 --> 00:26:44,540 3 দ্বারা আমি হ্রাস করতে যাচ্ছে. 419 00:26:44,540 --> 00:26:49,790 তাই আপনি যদি বাগ অভিপ্রায় দেখতে হলে এখানে, এই আমি করতে হ্রাস করব না 420 00:26:49,790 --> 00:26:57,010 10, এবং তারপর এই লুপ ইচ্ছা করা 1 থেকে 4 7 10,,, থেকে হ্রাস আমি, 421 00:26:57,010 --> 00:27:02,880 নেতিবাচক 2, যাও, তাই 5 নেতিবাচক, এবং করতে নেতিবাচক অনন্ত, আমি আছি সাল 422 00:27:02,880 --> 00:27:05,920 আসলে 0 সমান না. 423 00:27:05,920 --> 00:27:08,610 এবং তারপর এই প্রোগ্রাম শেষে, আমরা যা foo বিন্যাস ফাংশন আছে 424 00:27:08,610 --> 00:27:12,130 মুদ্রণ হচ্ছে আউট আমি যে. 425 00:27:12,130 --> 00:27:16,520 >> তাই এই, একটি ছোট এবং তুচ্ছ প্রোগ্রাম এবং বাগ সুস্পষ্ট, 426 00:27:16,520 --> 00:27:18,790 বিশেষত পরে আমি বাগ ছিল কি বলেন. 427 00:27:18,790 --> 00:27:24,840 কিন্তু এখানে একনিষ্ঠ ভাল, এই পারে, হয় আসলে কিছু অনুরূপ আপনার 428 00:27:24,840 --> 00:27:30,040 শেষ থেকে অর্থগৃধ্নু থেকে সমাধান সমস্যা সেট, এবং হয়ত আপনি আছে 429 00:27:30,040 --> 00:27:32,800 আপনার প্রোগ্রামে কিছু অসীম লুপ, এবং আপনি কোন ধারণা আছে 430 00:27:32,800 --> 00:27:34,100 কি এটা যার ফলে এর. 431 00:27:34,100 --> 00:27:38,690 সুতরাং খুব দরকারী ডিবাগিং কৌশল শুধু printfs যোগ হয় 432 00:27:38,690 --> 00:27:40,180 সব আপনার কোড উপর. 433 00:27:40,180 --> 00:27:49,200 >> তাই এখানে আমি বাইরে একটি printf চান প্রথম যখন লুপ. 434 00:27:49,200 --> 00:27:53,155 এবং এখানে আমি একটি printf চান, এবং আমি ঠিক আমি মুদ্রণ করব. 435 00:27:53,155 --> 00:27:55,670 436 00:27:55,670 --> 00:27:58,330 লুপ যখন আমি এমনকি আমি প্রথম চেষ্টা করবো. 437 00:27:58,330 --> 00:28:05,130 438 00:28:05,130 --> 00:28:09,040 বাইরে, দ্বিতীয় লুপ যখন. 439 00:28:09,040 --> 00:28:12,170 আবার, ভিতরে প্রিন্ট এর এখানে, মূল্য আমি. 440 00:28:12,170 --> 00:28:16,270 441 00:28:16,270 --> 00:28:17,520 আর এর এই চালানো যাক. 442 00:28:17,520 --> 00:28:22,620 443 00:28:22,620 --> 00:28:24,800 >> সুতরাং ডট স্ল্যাশ ডিবাগ. 444 00:28:24,800 --> 00:28:25,610 একটি পূর্ণসংখ্যা লিখুন. 445 00:28:25,610 --> 00:28:28,150 এর 13 করুক না. 446 00:28:28,150 --> 00:28:28,760 আর গম্ভীর গর্জন. 447 00:28:28,760 --> 00:28:33,300 আমরা আমরা অসীম looping যে দেখুন দ্বিতীয় সময় লুপ এর ভিতর. 448 00:28:33,300 --> 00:28:36,305 তাই এখন আমরা বাগ কি জানেন. 449 00:28:36,305 --> 00:28:39,610 450 00:28:39,610 --> 00:28:45,610 কিন্তু printf, ডিবাগিং, পুরোপুরি মহান কিন্তু আপনার প্রোগ্রাম একবার 451 00:28:45,610 --> 00:28:50,560 আর এবং আরো জটিল আছে, আরো পরিশীলিত সমাধান 452 00:28:50,560 --> 00:28:51,705 জিনিস কাজ পেয়ে. 453 00:28:51,705 --> 00:28:52,955 তাই আসুন এই সব printfs সরিয়ে দেওয়া. 454 00:28:52,955 --> 00:29:06,242 455 00:29:06,242 --> 00:29:08,896 আর এর নিশ্চিত আমি না করার সুযোগ কিছু বিরতি. 456 00:29:08,896 --> 00:29:09,850 ঠিক আছে. 457 00:29:09,850 --> 00:29:14,180 >> সুতরাং আমরা চলুন প্রোগ্রাম পরিচয় করিয়ে দিতে বলা হয় 458 00:29:14,180 --> 00:29:16,715 গনুহ ডিবাগার জন্য GDB,. 459 00:29:16,715 --> 00:29:21,892 460 00:29:21,892 --> 00:29:27,510 ভাল, আসলে, এর জন্য ডিবাগ সরিয়ে দেওয়া একটি দ্বিতীয়, এবং আবার ডিবাগ করা. 461 00:29:27,510 --> 00:29:31,420 462 00:29:31,420 --> 00:29:34,440 ওয়েল, আসলে প্রথম, একটি ভাল পাঠ কমান্ড লাইন আর্গুমেন্ট মধ্যে. 463 00:29:34,440 --> 00:29:37,780 এই ঝনঝন কমান্ড যে যে লক্ষ্য করুন সবকিছু অতিক্রান্ত হচ্ছে কম্পাইল 464 00:29:37,780 --> 00:29:41,300 কমান্ড লাইনে, এই কমান্ড লাইন আর্গুমেন্ট. 465 00:29:41,300 --> 00:29:46,250 আপনি ব্যবহার করা যাচ্ছে তাই ঠিক কিভাবে কমান্ড লাইন আর্গুমেন্ট হিসাবে আমরা 466 00:29:46,250 --> 00:29:51,500 আগে কি, এবং আপনি pset মধ্যে আছি হিসাবে 2, যে ঝনঝন তাদের ব্যবহার করা হয় কিভাবে. 467 00:29:51,500 --> 00:30:00,070 >> তাই লক্ষ্য করা যে এই প্রথম পতাকা, ড্যাশ ggdb3, যে বলছে কি, ঝনঝন, 468 00:30:00,070 --> 00:30:03,790 আপনার সাথে এই ফাইলটি কম্পাইল হবে অভিপ্রায় যে আমরা শেষ পর্যন্ত করবে না 469 00:30:03,790 --> 00:30:05,380 এটি ডিবাগ করতে হবে. 470 00:30:05,380 --> 00:30:13,840 সুতরাং যতদিন না পর্যন্ত আপনি যে পতাকা আছে, তারপর আমরা GDB ডিবাগ করতে পারেন. 471 00:30:13,840 --> 00:30:17,380 এবং এটা গনুহ ডিবাগার খুলুন করব. 472 00:30:17,380 --> 00:30:22,920 >> সুতরাং কমান্ড অনেক আছে আপনি ব্যবহার করতে পারেন প্রয়োজন. 473 00:30:22,920 --> 00:30:27,100 প্রথম এক যে আপনি সম্ভবত করব অবিলম্বে প্রয়োজন চালান হয়. 474 00:30:27,100 --> 00:30:28,200 তাই কি করতে যাচ্ছে চালান করা হয়? 475 00:30:28,200 --> 00:30:30,910 এটা আমাদের প্রোগ্রাম শুরু করতে যাচ্ছে. 476 00:30:30,910 --> 00:30:36,180 সুতরাং, শুরু প্রোগ্রাম, প্রোগ্রাম চালানো একটি পূর্ণসংখ্যা, 13 জন্য আমাদের অনুরোধ করে. 477 00:30:36,180 --> 00:30:39,170 এবং তারপর এটা অসীম looping হিসেবে এর আমি সরানো ছাড়া প্রত্যাশিত 478 00:30:39,170 --> 00:30:40,500 printfs, তাই আমরা এমনকি যে কি না. 479 00:30:40,500 --> 00:30:43,320 480 00:30:43,320 --> 00:30:44,600 সাধারণত প্রস্থান. 481 00:30:44,600 --> 00:30:45,850 ওহ. 482 00:30:45,850 --> 00:30:48,570 483 00:30:48,570 --> 00:30:53,640 এটা আবৃত সম্ভব যে সব পথ কাছাকাছি, ফিরে যাও - যে উপেক্ষা. 484 00:30:53,640 --> 00:30:55,170 এটি সাধারণত প্রস্থান করা হয়নি অনুমান. 485 00:30:55,170 --> 00:30:59,500 486 00:30:59,500 --> 00:31:03,370 যে একটি জটিল উত্তর আছে. 487 00:31:03,370 --> 00:31:07,890 >> সুতরাং এখন, যে খুব দরকারী না. 488 00:31:07,890 --> 00:31:11,480 তাই শুধু ভেতরে আমাদের প্রোগ্রাম এই ডিবাগার কোনো আমাদের সাহায্য না 489 00:31:11,480 --> 00:31:15,610 আমরা শুধু কাজ করতে পারে, যেহেতু পথ, ডট GDB বাইরে থেকে ডিবাগ কাট. 490 00:31:15,610 --> 00:31:21,250 তাই মাত্র একটি কমান্ড যে আপনি সম্ভবত করব - 491 00:31:21,250 --> 00:31:22,970 এবং আমি এই ত্যাগ করব. 492 00:31:22,970 --> 00:31:25,850 কন্ট্রোল-D অথবা, কাজ উভয় প্রস্থান. 493 00:31:25,850 --> 00:31:29,550 সুতরাং আসুন আবার খুলুন. 494 00:31:29,550 --> 00:31:31,130 >> আরেকটি কমান্ড যে আপনি সম্ভবত করব অবিলম্বে চাই 495 00:31:31,130 --> 00:31:33,600 থেকে পাওয়ার ব্রেক হয়. 496 00:31:33,600 --> 00:31:37,120 সুতরাং আমরা এখন জন্য প্রধান নেভিগেশন বিরতি পাবেন এবং তারপর আমি যে ব্যাখ্যা করছি. 497 00:31:37,120 --> 00:31:41,010 498 00:31:41,010 --> 00:31:46,370 ভাল, এখানে আমরা আমরা একটি ব্রেকপয়েন্ট সেট দেখুন debug.c এই লাইনে. 499 00:31:46,370 --> 00:31:50,160 তাই বিরতির মানে হল যে যখন আমি রান টাইপ, প্রোগ্রাম যাচ্ছে 500 00:31:50,160 --> 00:31:53,560 যতক্ষণ চলমান অবিরত আমি একটা ব্রেকপয়েন্ট আঘাত. 501 00:31:53,560 --> 00:31:59,390 আমি রান আঘাত যখন সুতরাং, প্রোগ্রাম, শুরু হয় এবং তারপর এটি যত তাড়াতাড়ি এটা হিসাবে বিরতি 502 00:31:59,390 --> 00:32:01,940 প্রধান ফাংশন প্রবেশ করে. 503 00:32:01,940 --> 00:32:06,930 প্রধান আলাদা কিছু হতে যাচ্ছে আপনি বেশ সাধারণভাবে করবেন. 504 00:32:06,930 --> 00:32:11,340 >> এবং এখন, আপনাকে পরিচয় করিয়ে আরো কিছু কমান্ড. 505 00:32:11,340 --> 00:32:14,330 এটা আমরা বলার অপেক্ষা রাখে না যে, এখানে লক্ষ্য করুন যা লাইন 11, এ বিচ্ছেদ 506 00:32:14,330 --> 00:32:16,230 printf, একটি পূর্ণসংখ্যা লিখুন. 507 00:32:16,230 --> 00:32:21,260 সুতরাং কমান্ড পরবর্তী কিভাবে হতে যাচ্ছে আমরা কোড পরের লাইন এ যান. 508 00:32:21,260 --> 00:32:24,810 এই আমাদের পইঠা অনুমতি যাচ্ছে রেখা দ্বারা আমাদের প্রোগ্রাম লাইন মাধ্যমে. 509 00:32:24,810 --> 00:32:26,260 তাই পরবর্তী. 510 00:32:26,260 --> 00:32:29,820 >> এখন লাইন 12, আমরা চলুন পূর্ণসংখ্যা পেতে. 511 00:32:29,820 --> 00:32:30,450 পরবর্তী. 512 00:32:30,450 --> 00:32:34,290 আপনি শুধু Enter আবার, এটা করব আপনি কি শেষ জিনিস পুনরায়. 513 00:32:34,290 --> 00:32:36,480 তাই আমি টাইপ করতে হবে না পরবর্তী প্রতিটি সময়. 514 00:32:36,480 --> 00:32:40,100 সুতরাং একটি পূর্ণসংখ্যা, 13 লিখুন. 515 00:32:40,100 --> 00:32:46,940 তাই এখন, লাইন 14, আমি বেশী সময় 10 তুলনায়, এবং আমি পরবর্তী চেষ্টা করবো. 516 00:32:46,940 --> 00:32:48,685 এবং আমরা আমরা তোমার হ্রাস চলুন দেখুন. 517 00:32:48,685 --> 00:32:50,210 তাই আমরা আবার আমি হ্রাস চলুন. 518 00:32:50,210 --> 00:32:53,620 >> তাই এখন, অন্য দরকারী কমান্ড প্রিন্ট হয়. 519 00:32:53,620 --> 00:32:55,750 তাই প্রিন্ট করুন প্রিন্ট আউট করতে যাচ্ছে ভেরিয়েবলের মান. 520 00:32:55,750 --> 00:32:57,825 এর মান বের করে আনা যাক পরিবর্তনশীল আমি এর. 521 00:32:57,825 --> 00:32:58,705 এর আমি প্রিন্ট যাক. 522 00:32:58,705 --> 00:33:00,910 এটা আমি 11 বলে যাচ্ছে. 523 00:33:00,910 --> 00:33:03,330 এখন আমরা পরবর্তী আবার যখন আমি 10 তার চেয়ে অনেক বেশী. 524 00:33:03,330 --> 00:33:05,590 তাই আমি এখনও তার চেয়ে অনেক বেশী আছে এটি 11 থেকে 10,. 525 00:33:05,590 --> 00:33:06,920 আমি বিয়োগ বিয়োগ. 526 00:33:06,920 --> 00:33:08,250 এর আবার আমি প্রিন্ট যাক. 527 00:33:08,250 --> 00:33:10,950 হিসাবে প্রত্যাশিত, এটা 10 এর. 528 00:33:10,950 --> 00:33:12,510 >> সুতরাং এখন, পরের. 529 00:33:12,510 --> 00:33:16,250 এটা ফিরে অবস্থায় যাচ্ছে, আমি হয় 10 তার চেয়ে অনেক বেশী, কিন্তু আমি তাই, এখন 10 হল 530 00:33:16,250 --> 00:33:20,040 এটি 10 ​​থেকে বড় নয়, তাই আমরা আশা এটি যখন লুপ থেকে বেরিয়ে পড়ে. 531 00:33:20,040 --> 00:33:22,220 এবং এখন আমরা কোড যে লাইন নীচের করছি. 532 00:33:22,220 --> 00:33:28,750 এবং আরেকটি কমান্ড, তালিকা, শুধু যাচ্ছে পূর্ববর্তী এবং পরবর্তী প্রদর্শন 533 00:33:28,750 --> 00:33:31,240 কোড এর লাইন, এ দম্পতি ক্ষেত্রে আপনি নিজেকে হারিয়ে. 534 00:33:31,240 --> 00:33:35,420 তাই আমরা ঠিক এই সময় লুপ প্রস্থান এবং এখন আমরা এই প্রবেশ 535 00:33:35,420 --> 00:33:37,080 যখন লুপ, লাইন 18. 536 00:33:37,080 --> 00:33:39,860 তোমার 0 সমান না, যখন তখন. 537 00:33:39,860 --> 00:33:46,570 এবং, এর পরে, আমি মনে করি আমরা করব আমি বিয়োগ 3 সমান, এবং লক্ষ্য, এই মাত্র যাচ্ছি যাব. 538 00:33:46,570 --> 00:33:48,270 এবং আমরা আমি প্রিন্ট করতে পারেন. 539 00:33:48,270 --> 00:33:49,990 >> প্রত্যেকটি কমান্ড ধরণের শর্টকাট আছে. 540 00:33:49,990 --> 00:33:51,720 সুতরাং p মুদ্রন জন্য ছোট. 541 00:33:51,720 --> 00:33:53,400 সুতরাং আমরা P আমি যা করতে পারেন. 542 00:33:53,400 --> 00:33:57,550 শুধু এন অধিষ্ঠিত রাখা, বা পরবর্তী করছেন রাখা. 543 00:33:57,550 --> 00:33:58,340 আবার আমি মুদ্রণ করুন. 544 00:33:58,340 --> 00:34:00,380 আপনি এটা 167 নেতিবাচক এর এখন দেখুন. 545 00:34:00,380 --> 00:34:06,030 তাই এই চিরতরে নেভিগেশন যেতে, কিন্তু করবে না সত্যিই চিরতরে, আপনি শুধু দেখেছি, যেহেতু এটি 546 00:34:06,030 --> 00:34:09,330 আসলে কিছু সময়ে শেষ হবে. 547 00:34:09,330 --> 00:34:15,699 >> সুতরাং যে GDB শুরুতে. 548 00:34:15,699 --> 00:34:19,504 কিন্তু এর GDB-র মধ্যে আরও একটি জিনিস করতে দেওয়া. 549 00:34:19,504 --> 00:34:20,754 Uh, ডিবাগ. 550 00:34:20,754 --> 00:34:23,540 551 00:34:23,540 --> 00:34:28,534 সুতরাং, এই বিশেষ ক্ষেত্রে, অসীম লুপ ভিতর হতে ঘটেছে 552 00:34:28,534 --> 00:34:30,050 প্রধান ফাংশন. 553 00:34:30,050 --> 00:34:35,779 এবং এখন জন্য, শুধু আমি নই, যে যে গ্রহণ মধ্যে অসীম লুপ সরানো যাচ্ছে 554 00:34:35,779 --> 00:34:37,029 foo বিন্যাস ফাংশন. 555 00:34:37,029 --> 00:34:40,679 556 00:34:40,679 --> 00:34:43,730 শুধু এই শেষে, মনে রাখা প্রোগ্রাম, ভাল, এই পুরুষ গণনা ছিল 557 00:34:43,730 --> 00:34:46,210 শুধু যা ছিল foo বিন্যাস, কলিং আমি মুদ্রণ যাচ্ছে. 558 00:34:46,210 --> 00:34:51,880 কিন্তু এখন আমরা যা, foo বিন্যাস আহ্বান করছি এটা 0 পর্যন্ত আমি হ্রাস, এবং যাচ্ছে 559 00:34:51,880 --> 00:34:54,548 তারপর যে পরিবর্তনশীল মুদ্রণ. 560 00:34:54,548 --> 00:34:55,469 ঠিক আছে. 561 00:34:55,469 --> 00:34:57,970 যে সংরক্ষণ করুন. 562 00:34:57,970 --> 00:35:00,175 ডিবাগ করুন. 563 00:35:00,175 --> 00:35:03,310 এবং এখন, GDB ডিবাগ. 564 00:35:03,310 --> 00:35:04,090 ঠিক আছে. 565 00:35:04,090 --> 00:35:10,580 >> আমি শুধু একসাথে ব্যবহার আমি তখন আমি যাচ্ছি না আসলে মাধ্যমে পইঠা করতে পারবেন আমার 566 00:35:10,580 --> 00:35:11,730 প্রোগ্রাম লাইন বাই লাইন. 567 00:35:11,730 --> 00:35:19,820 সুতরাং এর প্রধান এ বিরতি দেওয়া, এবং তারপর রান টাইপ করুন. 568 00:35:19,820 --> 00:35:28,160 তাই এই মধ্য দিয়ে যেতে printf,, লিখুন একটি পূর্ণসংখ্যা, পূর্ণসংখ্যা, 13 পেতে. 569 00:35:28,160 --> 00:35:34,180 570 00:35:34,180 --> 00:35:37,490 সুতরাং আমরা decrementing রাখতে যাচ্ছেন আমি 10 তার চেয়ে অনেক বেশী হওয়া পর্যন্ত. 571 00:35:37,490 --> 00:35:42,840 তারপর আমরা হয়ে যাওয়া চলুন যখন লুপ, এবং লাইন পেতে - 572 00:35:42,840 --> 00:35:44,364 এর একটি পৃথক উইন্ডোর মধ্যে এটি খুলুন. 573 00:35:44,364 --> 00:35:48,720 574 00:35:48,720 --> 00:35:53,300 আমি আর ছিল না হওয়া পর্যন্ত তাই আমরা decremented তারপর 10 থেকে বড়, এবং আমরা 575 00:35:53,300 --> 00:35:55,700 foo বিন্যাস, ফাংশন বলা হয়. 576 00:35:55,700 --> 00:36:01,340 >> তাই যত তাড়াতাড়ি আমি আঘাত হিসাবে ঘটেছে ফাংশন foo বিন্যাস, ভাল, আমি foo বিন্যাস বলা হয়, এবং 577 00:36:01,340 --> 00:36:04,030 তারপর আমি আর GDB উপর নিয়ন্ত্রণ ছিল. 578 00:36:04,030 --> 00:36:10,230 তাই যত তাড়াতাড়ি আমি এই লাইনে এর পরে আঘাত হিসাবে, এই ঘটেছে যতক্ষণ জিনিস অব্যাহত, 579 00:36:10,230 --> 00:36:12,400 যখন যেখানে প্রোগ্রাম থেকে প্রস্থান - 580 00:36:12,400 --> 00:36:14,450 এটা ঘটনাক্রমে অস্তিত্ব ছিলো না নিই. 581 00:36:14,450 --> 00:36:16,390 আপনি এটি যদিও একটি বিট জন্য বিরতি দেখেছি. 582 00:36:16,390 --> 00:36:22,040 সুতরাং কেন আমি উপর নিয়ন্ত্রণ হারিয়ে ফেলেন নি যে সময়ে প্রোগ্রাম? 583 00:36:22,040 --> 00:36:27,540 আমি পরের টাইপ করুন যখন ভাল,, যে যায় কোড আক্ষরিক পরের লাইনে যে 584 00:36:27,540 --> 00:36:28,850 চালানো হবে. 585 00:36:28,850 --> 00:36:35,950 তাই পরে লাইনে 21, কোড এর পরের লাইন যে, লাইন 22 হয় চালানো হবে 586 00:36:35,950 --> 00:36:38,520 প্রধান থেকে প্রস্থান, যা. 587 00:36:38,520 --> 00:36:43,810 তাই আমি শুধু যেতে চাই না কোড এর পরের লাইন. 588 00:36:43,810 --> 00:36:48,170 আমি ফাংশন, foo বিন্যাস মধ্যে যেতে চান, এবং তারপর এছাড়াও মাধ্যমে পইঠা 589 00:36:48,170 --> 00:36:49,830 কোড যারা লাইন. 590 00:36:49,830 --> 00:36:53,726 >> সুতরাং যে জন্য, আমরা একটি বিকল্প আছে. 591 00:36:53,726 --> 00:36:56,770 এর আবার যে ত্যাগ করুন. 592 00:36:56,770 --> 00:36:58,020 প্রধান বিরতি. 593 00:36:58,020 --> 00:37:00,520 594 00:37:00,520 --> 00:37:06,370 Uh, 1, পরের, পরের, 13, এর পরে, এর পরে, এর পরে, সাবধানে, 595 00:37:06,370 --> 00:37:09,820 আমরা লাইনে foo বিন্যাস আঘাত করার আগে. 596 00:37:09,820 --> 00:37:10,520 ঠিক আছে. 597 00:37:10,520 --> 00:37:13,700 >> সুতরাং এখন, আমরা লাইন 21 করেন আমরা foo বিন্যাস কল যেখানে. 598 00:37:13,700 --> 00:37:17,100 আমরা পরের টাইপ করতে না চান যে, যেহেতু শুধু ফাংশন foo বিন্যাস কল, এবং হবে 599 00:37:17,100 --> 00:37:18,710 কোড এর পরের লাইনে যান. 600 00:37:18,710 --> 00:37:20,840 আমরা কি ব্যবহার করতে চান পদক্ষেপ. 601 00:37:20,840 --> 00:37:25,690 সুতরাং ধাপ মধ্যে একটি পার্থক্য আছে এবং ধাপ মধ্যে আলোচনা যেখানে পরে, 602 00:37:25,690 --> 00:37:28,190 কাজ, এবং এর পরে যায় ফাংশন উপর. 603 00:37:28,190 --> 00:37:32,830 এটা ঠিক সম্পূর্ণতা executes ফাংশন এবং রাখে যাচ্ছে. 604 00:37:32,830 --> 00:37:37,210 >> সুতরাং ধাপ আমাদের আনতে যাচ্ছে ফাংশন মধ্যে, foo বিন্যাস. 605 00:37:37,210 --> 00:37:41,160 এবং আমরা এখন, আমরা এ ফিরে এসেছি, এখানে দেখুন তত্ত্ব, যে এই সময় লুপ, 606 00:37:41,160 --> 00:37:44,190 চিরকালের চালিয়ে যাচ্ছে. 607 00:37:44,190 --> 00:37:50,420 এবং যদি আপনি এটি আরও না থাকলে ধাপ, আঘাত কল করার একটি ফাংশন, তারপর এটা 608 00:37:50,420 --> 00:37:51,720 পরবর্তী অভিন্ন. 609 00:37:51,720 --> 00:37:55,320 আপনি একটি লাইন এ যখন এটা শুধুমাত্র যে ধাপ যে একটি ফাংশন আহ্বান করা হয় 610 00:37:55,320 --> 00:37:56,970 এর পরে থেকে পৃথক করতে যাচ্ছে. 611 00:37:56,970 --> 00:37:57,930 সুতরাং ধাপ এখানে আমাদের আনতে হবে. 612 00:37:57,930 --> 00:38:02,100 ধাপ, ধাপ, ধাপ, ধাপ, ধাপ, পদক্ষেপ, এবং আমরা চিরকাল শুধু অসীম লুপ করব. 613 00:38:02,100 --> 00:38:06,810 >> সুতরাং আপনি যে ব্যবহার করতে পারে আপনার অসীম loops চিহ্নিতকরণের পথে, হয় 614 00:38:06,810 --> 00:38:08,960 শুধু এই Enter কি করতে অধিষ্ঠিত আপনি আটকে যান যেখানে দেখতে. 615 00:38:08,960 --> 00:38:11,610 616 00:38:11,610 --> 00:38:14,780 এখন পর্যন্ত যে কি ভাল উপায় কিন্তু এখন জন্য, যে পুরোপুরি যথেষ্ট. 617 00:38:14,780 --> 00:38:17,967 আর Stylistically, স্টাইল সাথে সামঞ্জস্য থেকে 50, আমি এই কাজ করা উচিত. 618 00:38:17,967 --> 00:38:21,550 619 00:38:21,550 --> 00:38:24,030 ঠিক আছে. 620 00:38:24,030 --> 00:38:28,400 >> তাই এক শেষ কমান্ড পরিচয় করিয়ে দিতে. 621 00:38:28,400 --> 00:38:30,810 ভাল, এর ইন ডিবাগ gdb যাক 622 00:38:30,810 --> 00:38:35,580 সুতরাং পরিবর্তে প্রধান এ ভঙ্গ, যদি আমি foo বিন্যাস ফাংশন জানতে হয় 623 00:38:35,580 --> 00:38:39,230 সমস্যা নেই, তাহলে আমি থাকতে পারে শুধু পরিবর্তে, foo বিন্যাস এ বিরতি বলেন. 624 00:38:39,230 --> 00:38:42,310 এর আমি এ বিরতি বলে প্রধান এবং foo বিন্যাস উভয়. 625 00:38:42,310 --> 00:38:45,390 তাই আপনি অনেক ব্রেকপয়েন্ট সেট করতে পারেন হিসাবে আপনি চান. 626 00:38:45,390 --> 00:38:49,230 আমি রান টাইপ করুন, এটা যাচ্ছে এ থামাতে - 627 00:38:49,230 --> 00:38:52,180 বিস্ময়, যেহেতু, এর পুনরায় কম্পাইল করা যাক আমি জিনিষ পরিবর্তন. 628 00:38:52,180 --> 00:38:55,950 আপনি এই লাইন, সতর্কবাণী, উত্স দেখতে পাবেন ফাইল এক্সিকিউটেবল বেশী সাম্প্রতিক হয়. 629 00:38:55,950 --> 00:38:59,680 সুতরাং যে আমি এখানে গিয়েছিলাম যে মানে এবং স্টাইল সাথে সামঞ্জস্য থেকে এইসব পরিবর্তন 630 00:38:59,680 --> 00:39:03,100 50 কিন্তু আমি পুনরায় কম্পাইল করা হয়নি প্রোগ্রাম. 631 00:39:03,100 --> 00:39:04,870 তাই GDB যে আমার সচেতন করে তোলে. 632 00:39:04,870 --> 00:39:10,130 আমি আবার ডিবাগ করা, প্রস্থান করব GDB ডিবাগ আঘাত. 633 00:39:10,130 --> 00:39:10,700 ঠিক আছে. 634 00:39:10,700 --> 00:39:12,800 >> তাই এখন, ফিরে আমি কি করছেন যাও. 635 00:39:12,800 --> 00:39:15,720 প্রধান, বিরতির foo বিন্যাস আলাদা. 636 00:39:15,720 --> 00:39:20,680 এখন আমি প্রোগ্রাম চালানো, তাই এটি যদি হিট না হওয়া পর্যন্ত চালিয়ে যাচ্ছে একটি 637 00:39:20,680 --> 00:39:21,320 ব্রেকপয়েন্ট. 638 00:39:21,320 --> 00:39:24,680 যে ব্রেকপয়েন্ট ঘটবে প্রধান প্রথম এক হতে. 639 00:39:24,680 --> 00:39:28,630 এখন, পরিবর্তে পরের করছেন, পরের, পরের, এর পরে, এর পরে, আমি foo বিন্যাস আঘাত না হওয়া পর্যন্ত, আমি 640 00:39:28,630 --> 00:39:35,230 চলতে থাকবে, যা অবিরত টাইপ করতে পারেন আপনি পরবর্তী ব্রেকপয়েন্ট আঘাত না হওয়া পর্যন্ত. 641 00:39:35,230 --> 00:39:37,200 আমি প্রথম পূর্ণসংখ্যা লিখুন আছে. 642 00:39:37,200 --> 00:39:40,570 আমি আঘাত না হওয়া পর্যন্ত চলতে থাকবে চালিয়ে যে যা পরবর্তী ব্রেকপয়েন্ট, 643 00:39:40,570 --> 00:39:43,320 foo বিন্যাস ফাংশন. 644 00:39:43,320 --> 00:39:50,130 >> আপনি যদি একটি আঘাত না হওয়া পর্যন্ত তাই রান চালানো হবে যখন ব্রেকপয়েন্ট, কিন্তু আপনি শুধুমাত্র রান টাইপ 645 00:39:50,130 --> 00:39:54,060 আপনি তারপর, প্রোগ্রাম আরম্ভ, এবং করছি তারপর থেকে, তা অব্যাহত আছে. 646 00:39:54,060 --> 00:40:01,950 আমি শুধু প্রধান ভঙ্গ করেছেন এবং যদি তারপর দৌড়ে, তা ভঙ্গ করব 647 00:40:01,950 --> 00:40:03,670 তারপর প্রধান, এবং অবিরত. 648 00:40:03,670 --> 00:40:10,050 আমি foo বিন্যাস এ একটি বিরতি বিন্দু আছে, না যেহেতু পূর্ণসংখ্যা লিখুন তারপর, এখন আমি আছি 649 00:40:10,050 --> 00:40:11,380 foo বিন্যাস এ বিরতি যাচ্ছে না. 650 00:40:11,380 --> 00:40:16,318 এটি শুধু অসীম যাও যাচ্ছে যে যতক্ষণ লুপ. 651 00:40:16,318 --> 00:40:17,568 ঠিক আছে. 652 00:40:17,568 --> 00:40:19,500 653 00:40:19,500 --> 00:40:24,420 >> সুতরাং যে GDB যাও ইন্ট্রো এর. 654 00:40:24,420 --> 00:40:27,790 আপনি এটা ব্যবহার শুরু করা উচিত আপনার সমস্যা কেতা. 655 00:40:27,790 --> 00:40:30,550 এটা খুব সহায়ক হতে পারে বাগ চিহ্নিত করতে. 656 00:40:30,550 --> 00:40:35,280 আসলে আপনি ঠিক, লাইন বাই লাইন, যান আপনার কোড মাধ্যমে, এবং কি তুলনা 657 00:40:35,280 --> 00:40:39,740 আসলে আপনি আশা কি ঘটছে ঘটতে তাহলে, এটি প্রশংসনীয় এর 658 00:40:39,740 --> 00:40:41,060 আপনার বাগ মিস করা কঠিন. 659 00:40:41,060 --> 00:40:45,280 660 00:40:45,280 --> 00:40:46,530 ঠিক আছে. 661 00:40:46,530 --> 00:40:48,310 662 00:40:48,310 --> 00:40:54,040 >> সুতরাং গত সপ্তাহে ডেভিড এই প্রতিপালিত জন্য গোপন কী ক্রিপ্টোগ্রাফি স্টাফ 663 00:40:54,040 --> 00:40:59,350 আমরা চাই না যেখানে প্রথম সময়, পাসওয়ার্ড ঠিক সংরক্ষণ করা আমাদের 664 00:40:59,350 --> 00:41:03,210 কিছু প্লেইন টেক্সট ফাইলে কম্পিউটার, যেখানে কেউ উপর এবং মাত্র আসতে পারে 665 00:41:03,210 --> 00:41:04,660 এটি খুলুন এবং তাদের পড়া. 666 00:41:04,660 --> 00:41:07,530 মূলত, তারা এনক্রিপ্ট করা হবে কিছু উপায়. 667 00:41:07,530 --> 00:41:13,340 এবং সমস্যা সেট 2, আপনি ডিল করা হবে এনক্রিপশন এক পদ্ধতি, 668 00:41:13,340 --> 00:41:16,520 অথবা, ভাল, দুটি পদ্ধতি, কিন্তু তারা এত বড় হয় না. 669 00:41:16,520 --> 00:41:20,050 আপনি হ্যাকার সংস্করণ না, আপনি আছেন এছাড়াও সঙ্গে আচরণ করা যাচ্ছে 670 00:41:20,050 --> 00:41:22,150 কিছু জিনিস ডিক্রিপ্ট. 671 00:41:22,150 --> 00:41:29,770 >> সুতরাং সমস্যা এখন ভাল, এমনকি যদি হয় আমরা শক্তিশালী এনক্রিপশন আছে 672 00:41:29,770 --> 00:41:34,830 বিশ্বের অ্যালগরিদম, যদি আপনি একটি পছন্দ করুন বিশেষ করে দরিদ্র পাসওয়ার্ড, তাহলে এটি 673 00:41:34,830 --> 00:41:37,720 , আপনাকে অনেক সাহায্য করবে না, যেহেতু মানুষ এখনও এটা চিন্তা করতে পারবেন. 674 00:41:37,720 --> 00:41:41,530 এনক্রিপ্ট করা স্ট্রিং এইজন্য এবং এমনকি আপনি যদি এটি আবর্জনা একটি জগাখিচুড়ি মত দেখাচ্ছে 675 00:41:41,530 --> 00:41:44,760 যদি যে, তাদের কিছুই মানে তারা এখনও মাত্র কয়েক পাসওয়ার্ড চেষ্টা করতে হবে 676 00:41:44,760 --> 00:41:50,560 এর পরে, এটা চিন্তা করা খুব নিরাপদ নয়. 677 00:41:50,560 --> 00:41:55,890 সুতরাং একটি ভিডিও দেখছে যে যে বিন্দু করে তোলে. 678 00:41:55,890 --> 00:41:59,587 679 00:41:59,587 --> 00:42:00,970 >> [ভিডিও প্লেব্যাক] 680 00:42:00,970 --> 00:42:02,100 >> -শিরস্ত্রাণ, আপনি পামর. 681 00:42:02,100 --> 00:42:03,370 কি করছেন? 682 00:42:03,370 --> 00:42:05,170 আপনি আমার মেয়ে কি করছেন? 683 00:42:05,170 --> 00:42:09,910 >> উজ্জ্বল পরিচয় করিয়ে আমাকে-অনুমতি তরুণ প্লাস্টিক সার্জন, ডঃ ফিলিপ 684 00:42:09,910 --> 00:42:13,730 Schlotkin ইচ্ছাশক্তি, সর্বশ্রেষ্ঠ নাক সমগ্র মধ্যে কাজের লোক 685 00:42:13,730 --> 00:42:16,080 মহাবিশ্ব ও Beverly পাহাড়. 686 00:42:16,080 --> 00:42:17,210 >> -সাউট মাননীয়. 687 00:42:17,210 --> 00:42:18,070 >> -রোস পেশা? 688 00:42:18,070 --> 00:42:18,670 আমি বুঝতে পারিনি. 689 00:42:18,670 --> 00:42:20,090 তিনি ইতোমধ্যেই একটি নাক পেশা ছিল. 690 00:42:20,090 --> 00:42:21,910 এটি একটি মিষ্টি ষোল ​​উপস্থিত ছিলেন. 691 00:42:21,910 --> 00:42:22,140 >> কোন. 692 00:42:22,140 --> 00:42:23,690 এটা কি আপনি মনে করেন না. 693 00:42:23,690 --> 00:42:25,420 এটা অনেক, অনেক খারাপ. 694 00:42:25,420 --> 00:42:30,300 আপনার কাছে আমার সমন্বয় না করা হলে বায়ু ঢাল, ডঃ Schlotkin ইচ্ছাশক্তি হবে 695 00:42:30,300 --> 00:42:34,226 তার পুরানো নাক আপনার মেয়ে ফেরত দিতে. 696 00:42:34,226 --> 00:42:35,476 >> কোন. 697 00:42:35,476 --> 00:42:38,712 698 00:42:38,712 --> 00:42:40,516 কোথায় আপনি যে পেতে পারি? 699 00:42:40,516 --> 00:42:41,440 >> -ঠিক আছে. 700 00:42:41,440 --> 00:42:42,180 আমি বলতে পারবেন. 701 00:42:42,180 --> 00:42:43,381 আমি বলতে পারবেন. 702 00:42:43,381 --> 00:42:44,263 না, বাবা. 703 00:42:44,263 --> 00:42:45,590 না, আপনি না আবশ্যক. 704 00:42:45,590 --> 00:42:46,860 >> যথেষ্ট অভিজ্ঞ অধিকার, আমার প্রিয়. 705 00:42:46,860 --> 00:42:48,450 আমি আপনার নতুন নাক মিস্ করব. 706 00:42:48,450 --> 00:42:52,090 কিন্তু আমি তাকে সমন্বয় বলতে হবে না, কোন ব্যাপার কি. 707 00:42:52,090 --> 00:42:53,680 >> -অত্যন্ত ভাল. 708 00:42:53,680 --> 00:42:55,685 ডঃ Schlotkin, আপনার খারাপ না. 709 00:42:55,685 --> 00:42:56,914 >> -আমার আনন্দ. 710 00:42:56,914 --> 00:43:00,690 >> [সরঞ্জাম শাণিত হচ্ছে] 711 00:43:00,690 --> 00:43:01,910 >> কোন. 712 00:43:01,910 --> 00:43:02,520 অপেক্ষা করুন. 713 00:43:02,520 --> 00:43:03,836 অপেক্ষা করুন. 714 00:43:03,836 --> 00:43:05,300 আমি বলতে পারবেন. 715 00:43:05,300 --> 00:43:06,880 আমি বলতে পারবেন. 716 00:43:06,880 --> 00:43:09,130 >> আমি এটা কাজ করবে না. 717 00:43:09,130 --> 00:43:09,900 ঠিক আছে. 718 00:43:09,900 --> 00:43:12,850 আমার এটা দিন. 719 00:43:12,850 --> 00:43:16,918 >> -সংমিশ্রণ এক. 720 00:43:16,918 --> 00:43:17,406 >> ওয়ান. 721 00:43:17,406 --> 00:43:18,382 >> ওয়ান. 722 00:43:18,382 --> 00:43:19,358 >> দুই. 723 00:43:19,358 --> 00:43:19,846 >> দুই. 724 00:43:19,846 --> 00:43:20,822 >> দুই. 725 00:43:20,822 --> 00:43:21,310 >> -তিনটি. 726 00:43:21,310 --> 00:43:21,798 >> -তিনটি. 727 00:43:21,798 --> 00:43:22,774 >> -তিনটি. 728 00:43:22,774 --> 00:43:23,262 >> চারটি. 729 00:43:23,262 --> 00:43:23,750 >> চারটি. 730 00:43:23,750 --> 00:43:26,150 >> চারটি. 731 00:43:26,150 --> 00:43:27,010 >> -ফাইভ. 732 00:43:27,010 --> 00:43:27,670 >> -ফাইভ. 733 00:43:27,670 --> 00:43:29,010 >> -ফাইভ. 734 00:43:29,010 --> 00:43:34,770 >> তাই সমন্বয়, এক দুই, তিন, চার, পাঁচ. 735 00:43:34,770 --> 00:43:37,460 এটা stupidest সংমিশ্রণ আমি কখনও আমার জীবনে শোনা. 736 00:43:37,460 --> 00:43:39,710 যে জিনিস ধরনের একজন গাধা এর তার লাগেজের উপর থাকবে. 737 00:43:39,710 --> 00:43:42,000 >> আপনার মাননীয়, আপনি-ধন্যবাদ. 738 00:43:42,000 --> 00:43:43,530 >> -কি আপনি করবেন? 739 00:43:43,530 --> 00:43:44,490 >> আমি দেয়ালে বন্ধ. 740 00:43:44,490 --> 00:43:45,420 >> কোন আপনি না. 741 00:43:45,420 --> 00:43:45,840 আপনি পুরো সিনেমা বন্ধ. 742 00:43:45,840 --> 00:43:46,930 >> আমি ভুল বোতাম চাপা থাকা আবশ্যক. 743 00:43:46,930 --> 00:43:48,265 >> -ওয়েল, আবার লাগাতে হবে. 744 00:43:48,265 --> 00:43:49,110 আবার সিনেমা রাখুন. 745 00:43:49,110 --> 00:43:49,510 >> -হ্যাঁ, স্যার. 746 00:43:49,510 --> 00:43:49,917 হ্যাঁ, স্যার. 747 00:43:49,917 --> 00:43:50,324 >> এর, আর্নল্ড যেতে দিন. 748 00:43:50,324 --> 00:43:51,140 , গ্রেতসেন আসা. 749 00:43:51,140 --> 00:43:53,060 অবশ্যই, আপনি এখনও আমি করব জানি এই জন্য আপনি বিল আছে. 750 00:43:53,060 --> 00:43:53,440 >> [END টি ভিডিও প্লেব্যাক] 751 00:43:53,440 --> 00:43:54,690 >> ছিনিয়ে Boden: ঠিক আছে. 752 00:43:54,690 --> 00:43:59,690 753 00:43:59,690 --> 00:44:08,430 ইতিমধ্যে আমরা যে বিষয়ে কথা বলছি তাই এখন যে কিছু উপায়ে নিরাপত্তা, সুন্দর 754 00:44:08,430 --> 00:44:16,050 একটু সিনেমা পোস্টার, তাই সাম্প্রতিক মধ্যে NSA দিয়ে দিন, এই বিষয় 755 00:44:16,050 --> 00:44:17,300 সবকিছু পর্যবেক্ষণে. 756 00:44:17,300 --> 00:44:21,840 757 00:44:21,840 --> 00:44:26,930 এটা আপনি মনে করতে কঠিন হতে পারে এ গোপনীয়তা কিছু বাছাই আছে 758 00:44:26,930 --> 00:44:34,540 অনলাইন বিশ্বের, আমি বলতে পারে না, যদিও আপনি প্রিজম বিস্তারিত অধিকাংশ. 759 00:44:34,540 --> 00:44:42,130 তাই প্রিজম পরেও চলন্ত, আমরা চলুন না এখন, যে বিষয়ে কথা হবে 760 00:44:42,130 --> 00:44:44,030 আপনার ল্যাপটপ আমার মনে হয়. 761 00:44:44,030 --> 00:44:48,360 তাই এখানে আপ, আমি সুইচ করতে চান আমার প্রকৃত অ্যাকাউন্টে, 762 00:44:48,360 --> 00:44:50,370 আমার সামান্য পেংগুইন সঙ্গে. 763 00:44:50,370 --> 00:44:57,310 তাই আমি একটি পাসওয়ার্ড সেট আছে, এবং যে পাসওয়ার্ড আমি এটা হতে চান যাই হোক না কেন হয়. 764 00:44:57,310 --> 00:45:02,430 >> কিন্তু মনে রাখবেন যে কি আমি লগিং করছি , তাই এই লগইন সঙ্গে এ 765 00:45:02,430 --> 00:45:04,850 প্রম্পট, কিছু প্রোগ্রাম. 766 00:45:04,850 --> 00:45:07,910 এটা ছিল যে কিছু প্রোগ্রাম কিছু ব্যক্তির দ্বারা লিখিত. 767 00:45:07,910 --> 00:45:13,250 এবং তাই, যে ব্যক্তির, যদি তারা বিশেষ করে দূষিত, তারা পারে 768 00:45:13,250 --> 00:45:17,780 বলেন, ঠিক আছে, তাই যদি পাসওয়ার্ড আমি লিখতে যে সমান আমার 769 00:45:17,780 --> 00:45:22,800 প্রকৃত পাসওয়ার্ড, অথবা এটি সমান কিছু বিশেষ পাসওয়ার্ডটি যাও - 770 00:45:22,800 --> 00:45:25,550 ডেভিড ভয়ঙ্কর বা কিছু - 771 00:45:25,550 --> 00:45:27,190 তারপর তাদের ইন যাক 772 00:45:27,190 --> 00:45:33,760 সুতরাং একটি অনিষ্টকারী প্রোগ্রামার হতে পারে আপনার Macs-এর, বা অ্যাক্সেস 773 00:45:33,760 --> 00:45:36,150 উইন্ডোজ, বা কিছু. 774 00:45:36,150 --> 00:45:41,980 >> সুতরাং যে, যেহেতু, একটি উদ্বেগ অনেক বেশি হয় না আমি বলতে চাচ্ছি, এই লগইন প্রোগ্রাম 775 00:45:41,980 --> 00:45:48,720 যে ওএস এক্স, শত শত সাথে উপলব্ধ হচ্ছে বা হাজার হাজার মানুষ আছে 776 00:45:48,720 --> 00:45:50,020 এই কোড পর্যালোচনা. 777 00:45:50,020 --> 00:45:55,330 এবং তাই, আপনি কোথাও আপনার কোড, যদি এই স্ট্রিং সমান সমান হলে বলে 778 00:45:55,330 --> 00:45:58,860 ডেভিড সন্ত্রস্ত, লগইন, তাহলে কেউ নেই হতে যাচ্ছে, মত, অপেক্ষা করুন. 779 00:45:58,860 --> 00:45:59,800 এই অধিকার নয়. 780 00:45:59,800 --> 00:46:01,790 এই এখানে করা উচিত হবে না. 781 00:46:01,790 --> 00:46:06,650 সুতরাং যে আমরা জিনিস পেতে এক উপায় ধরনের নিরাপদ করা. 782 00:46:06,650 --> 00:46:10,300 >> এমনকি প্রোগ্রাম সম্পর্কে চিন্তা আপনি লিখুন যে. 783 00:46:10,300 --> 00:46:13,000 এর আপনি লগইন প্রোগ্রাম লিখেছিলেন বলে. 784 00:46:13,000 --> 00:46:20,440 আপনি লিখেছেন যে তাই এই লগইন প্রোগ্রাম, তাই সম্ভবত, আপনি একটি ভাল 785 00:46:20,440 --> 00:46:21,210 প্রোগ্রামার. 786 00:46:21,210 --> 00:46:25,610 আপনি যে কোনো অনিষ্টকারী লাগাতে যাচ্ছেন না এক্স সমান সমান হলে ডেভিড সন্ত্রস্ত 787 00:46:25,610 --> 00:46:27,860 আপনার কোড মধ্যে. 788 00:46:27,860 --> 00:46:31,930 কিন্তু এই প্রোগ্রাম, আপনি কি এই প্রোগ্রাম কম্পাইল ব্যবহার? 789 00:46:31,930 --> 00:46:34,180 ঝনঝন মত কিছু একটা. 790 00:46:34,180 --> 00:46:38,460 তাই কি যদি ঘটেছে যে ব্যক্তি ঝনঝন মধ্যে cased ঝনঝন বিশেষ লিখুন 791 00:46:38,460 --> 00:46:44,310 কিছু, মত আমি কম্পাইল করছি, যদি প্রোগ্রাম লগইন, তাহলে এই কোড লিখুন 792 00:46:44,310 --> 00:46:49,720 যদি বলেন যে প্রবেশ করুন প্রোগ্রামে এক্স সমান ডেভিড সন্ত্রস্ত সমান? 793 00:46:49,720 --> 00:46:59,890 তাই পুরোপুরি এখনো, কিন্তু আমরা একই আছে এখানে ইস্যু, যেখানে ঝনঝন, ভাল, 794 00:46:59,890 --> 00:47:03,790 হাজার হাজার, যদি না দশ হাজার হাজার মানুষ, আছে, ঝনঝন দিকে তাকিয়ে আছে 795 00:47:03,790 --> 00:47:07,160 কোড এর তার লাইন দিকে তাকিয়ে বলেন, ঠিক আছে, এখানে খারাপ কিছুই নেই. 796 00:47:07,160 --> 00:47:10,680 একথাও ঠিক যে, কেউ করছে এই দূষিত কিছু. 797 00:47:10,680 --> 00:47:15,780 >> কিন্তু কি মত, নিজেই ঝনঝন কি আমি ঝনঝন কম্পাইল তাহলে কি হবে? 798 00:47:15,780 --> 00:47:20,900 আমি কি কিছু কম্পাইলার আছে যে ঝনঝন করে টিপে যে ঝনঝন প্রনয়ন 799 00:47:20,900 --> 00:47:25,610 বলছেন যে এই বিশেষ হ্যাক, ঠিক আছে, আমি ঝনঝন কম্পাইল যখন তখন, 800 00:47:25,610 --> 00:47:31,290 এক্সিকিউটেবল আমি বিশেষভাবে হওয়া উচিত পেতে লগইন প্রোগ্রাম ও সন্নিবেশ ভিতরে 801 00:47:31,290 --> 00:47:34,230 এই পাসওয়ার্ড, সমান সমান ডেভ সন্ত্রস্ত? 802 00:47:34,230 --> 00:47:37,990 তাই মনে রাখবেন যে আপনার কম্পাইলার নিজেই কিছু সময়ে কম্পাইল করতে হবে. 803 00:47:37,990 --> 00:47:42,810 সুতরাং আপনি ঝনঝন কম্পাইল করতে পছন্দ কি যদি , নিজেই এর পরে, দূষিত হয় সঙ্গে 804 00:47:42,810 --> 00:47:45,580 পুরো মাতাল করা যায়নি উপায় নিচে রেখা. 805 00:47:45,580 --> 00:47:49,630 >> তাই এখানে, আমরা কেন থম্পসন আছে এবং ডেনিস Ritchie. 806 00:47:49,630 --> 00:47:53,780 তাই এই একটি প্রতিমাসংক্রান্ত ছবির হল. 807 00:47:53,780 --> 00:47:55,470 ডেনিস Ritchie ডানদিকে হয়. 808 00:47:55,470 --> 00:47:58,740 তিনি একটি প্রধান হল - 809 00:47:58,740 --> 00:48:03,640 প্রায় কাছাকাছি সি লিখেছিলেন তাই আপনি যা করতে পারেন এই শ্রেণীর জন্য তাকে ধন্যবাদ. 810 00:48:03,640 --> 00:48:04,840 কেন থমসন বাম এর. 811 00:48:04,840 --> 00:48:07,780 তাদের দুটি মূলত ইউনিক্স্ লিখেছে. 812 00:48:07,780 --> 00:48:10,140 ওয়েল, তারা প্রধান অবদানকারী ছিলেন ইউনিক্স্ মধ্যে. 813 00:48:10,140 --> 00:48:11,310 কিছু অন্যদের ছিল. 814 00:48:11,310 --> 00:48:16,240 কিছু সময়ে তাই কেন থম্পসন,, তিনি টুরিং পুরস্কার জেতে. 815 00:48:16,240 --> 00:48:20,860 আর টুরিং পুরস্কার, আমি সবসময় শোনা করেছি এই ভাবে রেফারেন্সড, এটা 816 00:48:20,860 --> 00:48:23,100 কম্পিউটার বিজ্ঞানের নোবেল পুরস্কার. 817 00:48:23,100 --> 00:48:27,500 >> সুতরাং টুরিং পুরস্কার, তিনি হয়েছে তার গ্রহণযোগ্যতা বক্তৃতা দিতে. 818 00:48:27,500 --> 00:48:31,790 এবং তিনি এই খুব বিখ্যাত বক্তৃতা দেয় এখন, অফিসার আরো নেভিগেশন প্রতিচ্ছবি বলা 819 00:48:31,790 --> 00:48:35,620 আমরা লিঙ্ক আছে যা ট্রাস্ট, অবশ্যই ওয়েবসাইটে করুন. 820 00:48:35,620 --> 00:48:41,670 এবং এই বক্তৃতায় তিনি, ঠিক আছে, বলছেন তাই আমি ইউনিক্স্ লেখেন, এবং এখন সব 821 00:48:41,670 --> 00:48:43,320 আপনি মানুষ ইউনিক্স্ ব্যবহার করছেন. 822 00:48:43,320 --> 00:48:46,960 এখন, লিনাক্স যে আজ স্মরণ ইউনিক্স্ সরাসরি বংশধর. 823 00:48:46,960 --> 00:48:50,140 OS X এর সরাসরি ইউনিক্স্ ব্যবহার করে. 824 00:48:50,140 --> 00:48:53,810 উইন্ডোজ এত না, কিন্তু অনেক ধারণা ইউনিক্স্ থেকে তোলা হয়েছিল. 825 00:48:53,810 --> 00:48:59,220 >> তাই তিনি, পর্যায় পর্যন্ত যায় এবং বলেছেন ঠিক আছে, আমি ইউনিক্স্ লিখেছে. 826 00:48:59,220 --> 00:49:03,940 আর ঠিক তাই আপনাকে বলছি কি জানেন, আমি আছি প্রতি লগ ইন করতে পারবেন 827 00:49:03,940 --> 00:49:05,590 আপনার কম্পিউটারের একক এক. 828 00:49:05,590 --> 00:49:14,280 এক্স যদি আমি এই বিশেষ এক করা থেকে সমান, কেন থমসন সন্ত্রস্ত সমান 829 00:49:14,280 --> 00:49:16,350 তারপর আমি লগইন করার অনুমতি দেওয়া করছি. 830 00:49:16,350 --> 00:49:18,370 সুতরাং মানুষ, ভাল, মত প্রসব আপনি তা করতে? 831 00:49:18,370 --> 00:49:21,090 আমরা লগইন প্রোগ্রাম দিকে তাকিয়ে এবং কিছুই নেই. 832 00:49:21,090 --> 00:49:24,700 তিনি ভাল, আমি কম্পাইলার পরিবর্তন, মত লগইন প্রোগ্রাম লগ ইন 833 00:49:24,700 --> 00:49:30,490 প্রবেশ করুন প্রোগ্রাম এখন থাকবে যাতে যে এক্স কেন থম্পসন সমান সমান 834 00:49:30,490 --> 00:49:31,700 সন্ত্রস্ত. 835 00:49:31,700 --> 00:49:33,120 >> এবং তারা ভাল, যে সত্য না বলে. 836 00:49:33,120 --> 00:49:35,740 আমরা কম্পাইলার এ খুঁজছেন, এবং করছি কম্পাইলার কোন লাইন নেই 837 00:49:35,740 --> 00:49:36,400 যে ভালো কোড. 838 00:49:36,400 --> 00:49:40,540 তিনি ঠিক আছে, মত আছে, কিন্তু আপনি কি কম্পাইলার দিয়ে কম্পাইল? 839 00:49:40,540 --> 00:49:44,810 এবং, হ্যাঁ, ভালো লেগেছে, তারা মনে করেন, এবং তিনি এর আমি আপনার কম্পাইলার দিয়েছে এক নই 840 00:49:44,810 --> 00:49:50,580 আপনি কম্পাইলার কম্পাইল ব্যবহার করে, তাই করছি আপনি একটি কম্পাইলার কম্পাইল হয় 841 00:49:50,580 --> 00:49:56,390 নিজেই দূষিত, এবং করবে না লগইন প্রোগ্রাম বিরতি. 842 00:49:56,390 --> 00:49:59,360 তাই মূলত, এই মুহুর্তে, আছে আপনি উৎস তাকান পারে কোন উপায় 843 00:49:59,360 --> 00:50:02,450 লগইন প্রোগ্রামের কোড ভুল দেখতে. 844 00:50:02,450 --> 00:50:04,220 এমনকি আপনি অল্পক্ষণের করতে পারেনি কম্পাইলার এর সোর্স কোড 845 00:50:04,220 --> 00:50:06,790 ভুল দেখতে. 846 00:50:06,790 --> 00:50:11,940 >> আপনি মেশিনের তাকান প্রয়োজন হবে কোড, প্রকৃত বাইনারি 847 00:50:11,940 --> 00:50:16,760 এই, অপেক্ষা করুন, দেখতে কম্পাইল কম্পাইলার কোড লাইনের এখানে করা উচিত হবে না. 848 00:50:16,760 --> 00:50:22,130 কিন্তু কেন থম্পসন এটা এক ধাপ গ্রহণ আরও এবং ভাল আছে, বলেন 849 00:50:22,130 --> 00:50:25,980 এই বিশেষ প্রোগ্রাম যে আসলে আপনি প্রোগ্রামের বাইনারি পড়তে সাহায্য, 850 00:50:25,980 --> 00:50:29,340 এবং তাই কেউ যে প্রোগ্রামটি ব্যবহার করা হলে বাইনারি পড়া, তারা এইসব দেখতে হবে 851 00:50:29,340 --> 00:50:30,490 কোড এর লাইন. 852 00:50:30,490 --> 00:50:34,020 তিনি সব, বলতে ঐ প্রোগ্রাম পরিবর্তন ঠিক আছে, আপনি এ খুঁজছেন 853 00:50:34,020 --> 00:50:38,460 কম্পাইলার, এই বিশেষ দেখাবেন না বাইনারি সেট. 854 00:50:38,460 --> 00:50:42,830 >> আমি তখন আপনি গ্রহণ করা প্রয়োজন যে একটি ধাপ আরও এবং মূলত, যে হতে পারে 855 00:50:42,830 --> 00:50:46,210 অপ্রত্যক্ষ্যতার নেওয়া একাধিক স্তর, এবং কিছু সময়ে, কোন এক আসলে এর 856 00:50:46,210 --> 00:50:47,990 চেক করা যাচ্ছে. 857 00:50:47,990 --> 00:50:52,590 তাই গল্পের নৈতিক আপনি থাকেন, হয় লেখা করা যাচ্ছে না 858 00:50:52,590 --> 00:50:54,340 এই শ্রেণীর মধ্যে ঝনঝন শব্দ. 859 00:50:54,340 --> 00:50:57,020 আপনি আরোহণ ব্যবহার করা চলুন এই ক্লাসে অনেক ঝনঝন. 860 00:50:57,020 --> 00:51:00,490 আপনি কি জানেন সব জন্য, ঝনঝন একটি দূষিত হয় প্রতি sabotaging হয় যে প্রোগ্রাম 861 00:51:00,490 --> 00:51:03,520 একক প্রোগ্রাম আপনি কি কখনও কম্পাইল করেছি. 862 00:51:03,520 --> 00:51:08,206 এবং যে খুবই অশুভ আপনাকে ছেড়ে বুধবার আপনি দেখুন, মনে রাখবেন. 863 00:51:08,206 --> 00:51:10,030 >> [সাধুবাদ] 864 00:51:10,030 --> 00:51:12,935 >> স্পিকার 2: পরের CS50 এ. 865 00:51:12,935 --> 00:51:14,580 >> স্পিকার 3: আপনি বলতে সাহস করবেন না. 866 00:51:14,580 --> 00:51:15,930 আপনি এটা করতে পারেন. 867 00:51:15,930 --> 00:51:19,440 আপনি আগে এই কাজ করেছি, আপনি এটা করতে পারেন আজ, আপনি আগামীকাল এটা করতে পারেন. 868 00:51:19,440 --> 00:51:20,930 আপনি বছর ধরে এই কাজ করছি. 869 00:51:20,930 --> 00:51:22,790 শুধু পর্যন্ত সেখানে যান এবং এই কাজের জন্য. 870 00:51:22,790 --> 00:51:24,310 আপনি এটা করতে পারেন. 871 00:51:24,310 --> 00:51:26,102 >> [সঙ্গীত বাজাচ্ছি]