1 00:00:00,000 --> 00:00:02,970 >> [সঙ্গীত বাজাচ্ছি] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> ডেভিড জে MALAN: ঠিক আছে. 4 00:00:15,700 --> 00:00:18,832 এটি CS50 এবং এই সপ্তাহ 2 এর সূচনা. 5 00:00:18,832 --> 00:00:21,040 আর আপনি যে ওভার প্রত্যাহার করব গত কয়েক সপ্তাহ, 6 00:00:21,040 --> 00:00:24,490 আমরা কম্পিউটার প্রবর্তনের করে থাকেন বিজ্ঞান এবং, ঘুরে, প্রোগ্রামিং. 7 00:00:24,490 --> 00:00:27,640 >> এবং আমরা এর উপায় দ্বারা গল্প শুরু ভূত, যে গ্রাফিক্যাল ভাষা 8 00:00:27,640 --> 00:00:28,990 এমআইটি মিডিয়া ল্যাব থেকে. 9 00:00:28,990 --> 00:00:30,780 এবং তারপর অতি সম্প্রতি, গত সপ্তাহে, আমরা করেনি 10 00:00:30,780 --> 00:00:34,450 একটি higher-- একটি পরিচয় করিয়ে নিম্ন স্তরের ভাষা পরিচিত 11 00:00:34,450 --> 00:00:36,770 সি, কিছু যে বিশুদ্ধরূপে পাঠগত হিসাবে. 12 00:00:36,770 --> 00:00:39,440 এবং প্রকৃতপক্ষে, আমরা শেষ সময় যে প্রসঙ্গের মধ্যে অন্বেষণ 13 00:00:39,440 --> 00:00:40,450 ধারণার একটি নম্বর. 14 00:00:40,450 --> 00:00:43,010 >> এই, রিকল, খুব ছিল প্রথম প্রোগ্রাম আমরা দিকে তাকিয়ে. 15 00:00:43,010 --> 00:00:45,710 এবং এই প্রোগ্রামটি, বেশ সহজভাবে, কপি করে প্রিন্ট আউট, "হ্যালো, দুনিয়া." 16 00:00:45,710 --> 00:00:47,730 কিন্তু সেখানে এত ভান জাদু চলছে. 17 00:00:47,730 --> 00:00:51,460 এই # অন্তর্ভুক্ত এই কোণ বন্ধনী দিয়ে. 18 00:00:51,460 --> 00:00:52,170 সেখানে int. 19 00:00:52,170 --> 00:00:53,020 আছে (অকার্যকর). 20 00:00:53,020 --> 00:00:56,330 প্রথম বন্ধনী, কোঁকড়া ধনুর্বন্ধনী আছে, সেমি-কোলন, এবং আরও অনেক কিছু. 21 00:00:56,330 --> 00:00:58,480 >> আর তাই, যে প্রত্যাহার আমরা ভূত চালু 22 00:00:58,480 --> 00:01:02,110 যাতে আমরা, আদর্শভাবে, অতীত দেখতে পারে যে বাক্য গঠন, কাপড় সত্যিই না যে 23 00:01:02,110 --> 00:01:04,590 সব যে বুদ্ধিমত্তা মজার কিন্তু প্রথম 24 00:01:04,590 --> 00:01:07,700 , একেবারে, একটি বিট কূট আপনার মন চারপাশে মোড়ানো. 25 00:01:07,700 --> 00:01:10,860 এবং প্রকৃতপক্ষে, সবচেয়ে সাধারণ এক কিছু প্রথম দিকে একটি প্রোগ্রামিং ক্লাসে, 26 00:01:10,860 --> 00:01:13,443 বিশেষ করে কম জন্য আরামদায়ক, হতাশ পেতে হয় 27 00:01:13,443 --> 00:01:17,460 এবং নির্দিষ্ট অন্বিত দ্বারা আপ হোঁচট খেয়েছি ত্রুটি, লজিক্যাল ত্রুটি উল্লেখ না. 28 00:01:17,460 --> 00:01:19,800 এবং আমাদের লক্ষ্য মধ্যে তাই আজ, আসলে, হবে 29 00:01:19,800 --> 00:01:23,280 কিছু সঙ্গে আপনি সজ্জিত করা জন্য কিভাবে সমস্যা সমাধানে কৌশল 30 00:01:23,280 --> 00:01:26,705 ভাল সমস্যার নিজেদের সমাধান করতে ডিবাগ আকারে. 31 00:01:26,705 --> 00:01:29,330 এবং আপনি প্রত্যাহার করব যে, পরিবেশ যে আমরা চালু 32 00:01:29,330 --> 00:01:31,780 শেষ সময় CS50 আইডিই বলা হয়. 33 00:01:31,780 --> 00:01:34,850 এই ওয়েব ভিত্তিক সফ্টওয়্যার যে আপনি মেঘ প্রোগ্রমিং করতে পারবেন, 34 00:01:34,850 --> 00:01:38,450 তাই কথা বলতে, যখন সব পালন আপনার একসাথে ফাইল, যেমন আমরা আজ আবার হবে. 35 00:01:38,450 --> 00:01:41,480 এবং যে আমরা প্রত্যাহার এখানে এই বিষয় revisited, 36 00:01:41,480 --> 00:01:44,480 তাদের মধ্যে ফাংশন, এবং loops, এবং ভেরিয়েবল, এবং বুলিয়ান এক্সপ্রেশন, 37 00:01:44,480 --> 00:01:45,110 এবং শর্ত. 38 00:01:45,110 --> 00:01:49,190 এবং প্রকৃতপক্ষে আরো কয়েকটি যে আমরা স্ক্র্যাচ থেকে বিশ্বের অনূদিত 39 00:01:49,190 --> 00:01:50,800 সি জগতে 40 00:01:50,800 --> 00:01:53,220 >> কিন্তু মৌলিক বিল্ডিং ব্লক, তাই কথা বলতে, 41 00:01:53,220 --> 00:01:55,150 সত্যিই এখনও একই গত সপ্তাহে ছিল. 42 00:01:55,150 --> 00:01:57,900 একটা সত্য, আমরা সত্যিই ঠিক ছিল বিভিন্ন পাজল টুকরা, যদি আপনি হবে. 43 00:01:57,900 --> 00:02:00,300 যে রক্তবর্ণ পরিবর্তে ব্লক সংরক্ষণ, আমরা পরিবর্তে 44 00:02:00,300 --> 00:02:02,940 printf ছিল, যা সি এই ফাংশন যে 45 00:02:02,940 --> 00:02:05,890 আপনি কিছু প্রিন্ট করতে পারবেন পর্দায় এটি ফরম্যাট. 46 00:02:05,890 --> 00:02:07,950 আমরা CS50 চালু লাইব্রেরী, আপনি যেখানে 47 00:02:07,950 --> 00:02:11,420 আপনার নিষ্পত্তি get_char এখন আছে, এবং get_int, এবং get_string, 48 00:02:11,420 --> 00:02:14,610 এবং হিসাবে কয়েক অন্যান্য কার্যাবলী ভাল, যার মাধ্যমে আপনি ইনপুট পেতে পারেন 49 00:02:14,610 --> 00:02:16,260 ব্যবহারকারীর নিজের কীবোর্ড থেকে. 50 00:02:16,260 --> 00:02:20,640 এবং আমরা কিছু কটাক্ষপাত গ্রহণ these- bool, এবং গৃহস্থালি মত, 51 00:02:20,640 --> 00:02:22,490 এবং ডবল, float, কোন int, long_long পংক্তি. 52 00:02:22,490 --> 00:02:25,170 আর সেখানে সি এমনকি অন্য ধরনের তথ্য 53 00:02:25,170 --> 00:02:28,560 >> অন্য কথায়, যখন আপনি ঘোষণা ইন একটি পরিবর্তনশীল কিছু মান ধারণ করার জন্য, 54 00:02:28,560 --> 00:02:32,600 অথবা যখন আপনি একটি ফাংশন বাস্তবায়ন যে কিছু মান, 55 00:02:32,600 --> 00:02:35,290 আপনি কি নির্দিষ্ট করে দিতে পারেন মান যে ধরণ. 56 00:02:35,290 --> 00:02:37,310 এটা একটি পংক্তি, একটি মত অক্ষর ক্রম? 57 00:02:37,310 --> 00:02:39,490 এটি একটি পূর্ণসংখ্যা মত একটি নম্বর আছে কি? 58 00:02:39,490 --> 00:02:41,390 এটা একটা ফ্লোটিং পয়েন্ট মান, বা মত? 59 00:02:41,390 --> 00:02:46,180 তাই সি, স্ক্র্যাচ অসদৃশ, আমরা আসলে তথ্য কি ধরনের উল্লেখ করতে লাগলেন 60 00:02:46,180 --> 00:02:48,330 আমরা ফিরে বা ব্যবহার করা হয়েছে. 61 00:02:48,330 --> 00:02:51,910 >> কিন্তু, অবশ্যই, আমরা গাড়ীতে কম্পিউটিং এর কিছু মৌলিক সীমা. 62 00:02:51,910 --> 00:02:54,100 এবং বিশেষ করে, এই ভাষা সি, রিকল 63 00:02:54,100 --> 00:02:57,070 আমরা কটাক্ষপাত গ্রহণ করে পূর্ণসংখ্যা ওভারফ্লো, বাস্তবতা 64 00:02:57,070 --> 00:03:00,460 যে আপনি যদি শুধুমাত্র একটি আছে মেমরি সসীম পরিমাণ 65 00:03:00,460 --> 00:03:04,600 বা নির্দিষ্টভাবে, একটি সসীম সংখ্যা বিট, আপনি শুধুমাত্র তাই উচ্চ গণনা করতে পারেন. 66 00:03:04,600 --> 00:03:08,460 তাই আমরা এখানে এই উদাহরণে দিকে তাকিয়ে যদ্দ্বারা একটি বিমান একটি কাউন্টার, 67 00:03:08,460 --> 00:03:13,510 আসলে, যদি দীর্ঘ যথেষ্ট হবে চলমান ওভারফ্লো এবং একটি সফ্টওয়্যার ফল 68 00:03:13,510 --> 00:03:15,560 একটি প্রকৃত শারীরিক সম্ভাব্য ত্রুটি. 69 00:03:15,560 --> 00:03:18,600 >> আমরা ভাসমান দিকে তাকিয়ে পয়েন্ট অনির্দিষ্টতা, বাস্তবতা 70 00:03:18,600 --> 00:03:22,280 যে শুধুমাত্র একটি সসীম সংখ্যা সঙ্গে বিট, তা 32 বা 64 হয়, 71 00:03:22,280 --> 00:03:27,330 আপনি শুধুমাত্র তাই অনেক সংখ্যা নির্দিষ্ট করতে পারেন একটি দশমিক বিন্দু, পরে যা পরে আপনি 72 00:03:27,330 --> 00:03:29,110 যথাযথ নয় এমন পেতে শুরু. 73 00:03:29,110 --> 00:03:32,360 উদাহরণস্বরূপ, এক-তৃতীয়াংশ তাই এখানে বিশ্বের, আমাদের মানব বিশ্বের, 74 00:03:32,360 --> 00:03:35,360 আমরা জানি শুধু একটি অসীম সংখ্যা হল দশমিক বিন্দু পরে 3s এর. 75 00:03:35,360 --> 00:03:38,820 কিন্তু একটি কম্পিউটার অগত্যা না করতে পারেন সংখ্যার একটি অসীম সংখ্যা প্রতিনিধিত্ব 76 00:03:38,820 --> 00:03:42,590 যদি আপনি শুধুমাত্র অনুমতি কিছু তথ্য সসীম পরিমাণ. 77 00:03:42,590 --> 00:03:45,900 >> তাই না শুধুমাত্র আমরা আপনাকে সজ্জিত হয়নি পদ বৃহত্তর ক্ষমতা সঙ্গে 78 00:03:45,900 --> 00:03:49,280 কীভাবে আপনি নিজেকে এ প্রকাশ পারে প্রোগ্রামিং এর পরিপ্রেক্ষিতে একটি কীবোর্ড, 79 00:03:49,280 --> 00:03:51,430 আমরা সীমাবদ্ধ কি আপনি আসলে কি করতে পারেন. 80 00:03:51,430 --> 00:03:55,790 এবং প্রকৃতপক্ষে, বাগ এবং ভুল করতে পারেন বিষয় ঐ ধরণের থেকে উঠা. 81 00:03:55,790 --> 00:03:59,900 এবং প্রকৃতপক্ষে, বিষয় মধ্যে আজ ডিবাগ মত বিষয় হতে যাচ্ছে 82 00:03:59,900 --> 00:04:03,699 এবং আসলে ফণা নীচে খুঁজছেন কিভাবে কিছু চালু করা হয়েছে গত সপ্তাহে এ 83 00:04:03,699 --> 00:04:05,490 আসলে বাস্তবায়িত হয় যাতে আপনি ভাল 84 00:04:05,490 --> 00:04:10,530 বুঝতে উভয়ের ক্ষমতা ও সি মত একটি ভাষা সীমাবদ্ধতার 85 00:04:10,530 --> 00:04:14,770 >> এবং সত্য, আমরা স্তর ফিরে ছুলা পাবেন ডাটা স্ট্রাকচার সহজ এর, 86 00:04:14,770 --> 00:04:17,756 কিছু একটি অ্যারের নামক স্ক্র্যাচ একটি কল ঘটবে "তালিকা." 87 00:04:17,756 --> 00:04:19,589 এটা একটা সামান্য বিট যে প্রেক্ষাপটে বিভিন্ন. 88 00:04:19,589 --> 00:04:23,340 এবং তারপর আমরা এক পরিচয় করিয়ে দেব আমাদের ডোমেইন নির্দিষ্ট সমস্যার প্রথম 89 00:04:23,340 --> 00:04:26,790 CS50 মধ্যে, বিশ্বের ক্রিপ্টোগ্রাফি, scrambling শিল্প 90 00:04:26,790 --> 00:04:29,650 বা এত তথ্য ciphering আপনি গোপন বার্তা পাঠাতে পারেন যে 91 00:04:29,650 --> 00:04:34,520 এবং গোপন বার্তা ডিকোড দুই ব্যক্তি, A এবং B মধ্যে 92 00:04:34,520 --> 00:04:37,490 >> তাই আমরা এই পরিবর্তনকে সামনে যে নতুন জগতের, 93 00:04:37,490 --> 00:04:42,059 এর কিছু সঙ্গে আপনি সজ্জিত করার চেষ্টা করা যাক কৌশল যা দিয়ে আপনি বাদ দিতে পারে 94 00:04:42,059 --> 00:04:43,850 বা অন্তত কিছু কমাতে বিরক্তির 95 00:04:43,850 --> 00:04:46,630 আপনি সম্ভবত সম্মুখীন যে গত সপ্তাহে একা বেশি. 96 00:04:46,630 --> 00:04:50,830 আসলে, আপনি এগিয়ে কিছু such-- হয় সি আর মতভেদ আপনার প্রথম সমস্যা, হয় 97 00:04:50,830 --> 00:04:54,010 যদি আপনি আমার মত হন, প্রথমবার আপনি একটি প্রোগ্রাম খুঁজে টাইপ করার চেষ্টা করুন, 98 00:04:54,010 --> 00:04:57,330 এমনকি যদি আপনি মনে করেন কথাটি প্রোগ্রাম বেশ সহজ, 99 00:04:57,330 --> 00:05:01,200 আপনি খুব ভাল একটি প্রাচীর আঘাত হতে পারে, এবং কম্পাইলার সহযোগিতা করা যাচ্ছে না. 100 00:05:01,200 --> 00:05:03,940 করুন বা ঝনঝন যাচ্ছে না আসলে আপনার নিলামীতে না. 101 00:05:03,940 --> 00:05:05,450 >> এবং কেন যে হতে পারে? 102 00:05:05,450 --> 00:05:07,950 ওয়েল, এর কটাক্ষপাত করা যাক সম্ভবত, একটি সহজ প্রোগ্রাম. 103 00:05:07,950 --> 00:05:11,190 আমি এগিয়ে যান এবং এই সংরক্ষণ করতে যাচ্ছি একটি ফাইল ইচ্ছাকৃতভাবে buggy0.c ডেকে 104 00:05:11,190 --> 00:05:13,590 কারণ আমি এটা জানি আগাম দ্বিধান্বিত হবেন. 105 00:05:13,590 --> 00:05:17,400 কিন্তু আমি বুঝতে পারি যে যদি এই না পারে প্রথম বা দ্বিতীয় বা তৃতীয় প্রোগ্রাম 106 00:05:17,400 --> 00:05:18,830 যে আমি আসলে নিজেকে তৈরি করছি. 107 00:05:18,830 --> 00:05:23,820 তাই আমি এগিয়ে যান যাচ্ছি এবং টাইপ আউট, int প্রধান (অকার্যকর). 108 00:05:23,820 --> 00:05:28,130 তারপর আমার কোঁকড়া ধনুর্বন্ধনী ভিতরে, একটি খুব পরিচিত ( "হ্যালো, world-- 109 00:05:28,130 --> 00:05:30,980 ব্যাকস্ল্যাশ, এন ") - এবং একটি সেমিকোলন. 110 00:05:30,980 --> 00:05:32,360 >> আমি ফাইল সংরক্ষণ করেছি. 111 00:05:32,360 --> 00:05:34,850 এখন আমি নিচে যেতে যাচ্ছি আমার টার্মিনাল উইন্ডোতে 112 00:05:34,850 --> 00:05:40,340 এবং লিখুন মেক buggy0, কারণ, আবার, আজ ফাইলের নাম buggy0.c হয়. 113 00:05:40,340 --> 00:05:43,660 তাই আমি buggy0 করতে লিখুন লিখুন. 114 00:05:43,660 --> 00:05:48,200 >> এবং, উহু, হায় ভগবান, শেষ সময় থেকে প্রত্যাহার যে কোন ত্রুটির বার্তা একটি ভাল জিনিস. 115 00:05:48,200 --> 00:05:49,740 তাই কোন আউটপুট একটি ভাল জিনিস. 116 00:05:49,740 --> 00:05:52,920 কিন্তু এখানে আমি স্পষ্ট আছে ভুল কিছু সংখ্যা. 117 00:05:52,920 --> 00:05:56,470 >> আউটপুট প্রথম লাইন তাই buggy0 টাইপ করতে হবে পরে, রিকল, 118 00:05:56,470 --> 00:05:59,540 ঝনঝন এর মোটামুটি বাগাড়ম্বরপূর্ণ আউটপুট. 119 00:05:59,540 --> 00:06:02,067 ফণা নীচে, এবং CS50 আইডিই কনফিগার করা 120 00:06:02,067 --> 00:06:04,150 আভা ব্যবহার করতে এই কম্পাইলার দিয়ে অপশন 121 00:06:04,150 --> 00:06:05,941 তাই আপনি না যে তাদের সম্বন্ধে ভাবতে. 122 00:06:05,941 --> 00:06:08,840 আর যে সব যে প্রথম লাইন হচ্ছে মানে যে ঝনঝন দিয়ে শুরু হয়. 123 00:06:08,840 --> 00:06:11,720 >> কিন্তু পরে, সমস্যা তাদের চেহারা করা শুরু. 124 00:06:11,720 --> 00:06:17,390 লাইন 3, চরিত্রের উপর Buggy0.c 5, সেখানে একটি বড় লাল পথভ্রষ্টতা. 125 00:06:17,390 --> 00:06:18,380 এটা কি? 126 00:06:18,380 --> 00:06:23,562 পরোক্ষভাবে প্রকাশক লাইব্রেরি ফাংশন ঘোষণা সঙ্গে টাইপ int (const গৃহস্থালি * printf, 127 00:06:23,562 --> 00:06:26,050 ...) [-Werror]. 128 00:06:26,050 --> 00:06:28,379 আমি খুব দ্রুত বলতে চাচ্ছি, এটা খুব রহস্যময় পায়. 129 00:06:28,379 --> 00:06:30,170 এবং অবশ্যই, প্রথম এক নজরে, আমরা পারব না 130 00:06:30,170 --> 00:06:32,380 আপনি বুঝতে আশা যে বার্তা সম্পূর্ণতা. 131 00:06:32,380 --> 00:06:34,213 তাই পাঠ এক আজ যাচ্ছে 132 00:06:34,213 --> 00:06:36,919 লক্ষ্য করার চেষ্টা করা যাবে নিদর্শন, বা অনুরূপ কিছু, 133 00:06:36,919 --> 00:06:38,960 ত্রুটি আপনি থাকতে পারে অতীতে সম্মুখীন. 134 00:06:38,960 --> 00:06:41,335 তাই আসুন পৃথক্ শুধুমাত্র আঁচড়ান কথাগুলোর যে পরিচিত চেহারা. 135 00:06:41,335 --> 00:06:44,290 বড় লাল ত্রুটি পরিষ্কারভাবে কিছু সিম্বলিক ভুল হচ্ছে. 136 00:06:44,290 --> 00:06:47,940 >> পরোক্ষভাবে প্রকাশক লাইব্রেরি ফাংশন printf,. 137 00:06:47,940 --> 00:06:51,680 তাই, এমনকি যদি আমি বেশ বুঝতে পারছি না কি পরোক্ষভাবে লাইব্রেরি ফাংশন ঘোষণা 138 00:06:51,680 --> 00:06:54,900 মানে, সমস্যা নিশ্চয় একরকম printf সম্পর্কযুক্ত. 139 00:06:54,900 --> 00:06:59,130 আর যে বিষয়টি উৎস এটা ঘোষণা করতে হয়েছে. 140 00:06:59,130 --> 00:07:02,440 >> ঘোষণা একটি ফাংশন প্রথমবার জন্য এটা উল্লেখ. 141 00:07:02,440 --> 00:07:06,210 এবং আমরা গত সপ্তাহে পরিভাষা ব্যবহৃত একটি ফাংশন এর প্রোটোটাইপ ঘোষণা, 142 00:07:06,210 --> 00:07:11,860 পারেন উপরের এক লাইন দিয়ে আপনার নিজস্ব ফাইল বা তথাকথিত হেডার ফাইলটি. 143 00:07:11,860 --> 00:07:15,300 এবং কি ফাইল আমরা বলছি না গত সপ্তাহে যে printf উদ্ধৃতি, 144 00:07:15,300 --> 00:07:17,080 উদ্ধতি ঘোষণা? 145 00:07:17,080 --> 00:07:20,950 কি ফাইলের মধ্যে তার প্রোটোটাইপ? 146 00:07:20,950 --> 00:07:24,640 >> তাই আপনি যদি প্রত্যাহার, প্রথম জিনিস আমি টাইপ, প্রায় প্রতিটি প্রোগ্রাম গত time-- 147 00:07:24,640 --> 00:07:30,790 এবং ঘটনাক্রমে একটি মুহূর্ত আগে শুরু myself-- টাইপ এই এক এখানে ছিল 148 00:07:30,790 --> 00:07:38,630 হ্যাশ #include 00:07:41,860 যদি আমি এখন এই ফাইলটি সংরক্ষণ, আমি যাচ্ছি এগিয়ে যান এবং আমার পর্দা পরিষ্কার, 150 00:07:41,860 --> 00:07:44,740 আপনি টাইপ করে নির্বাচন করতে পারবেন যা পরিষ্কার, অথবা আপনি কন্ট্রোল এল ধরে রাখতে পারেন, 151 00:07:44,740 --> 00:07:47,680 শুধু আপনার টার্মিনাল উইন্ডোতে পরিষ্কার শুধু কিছু গোলমাল নিষ্কাশন করা. 152 00:07:47,680 --> 00:07:51,370 >> আমি এগিয়ে যান যাচ্ছি এবং পুনরায় টাইপ মেক buggy0, লিখুন. 153 00:07:51,370 --> 00:07:53,790 এবং voila, আমি এখনও দেখতে ঝনঝন থেকে দীর্ঘ কমান্ড, 154 00:07:53,790 --> 00:07:55,470 কিন্তু সেখানে কোন ত্রুটি বার্তা এই সময়. 155 00:07:55,470 --> 00:07:58,800 এবং প্রকৃতপক্ষে, আমি ./buggy0 না, শুধু শেষবারের মত, 156 00:07:58,800 --> 00:08:01,860 যেখানে বিন্দু এই অর্থ ডিরেক্টরি, স্ল্যাশ মানে, 157 00:08:01,860 --> 00:08:05,040 এখানে প্রোগ্রামের নাম আসে এবং প্রোগ্রাম যে নাম buggy0 হয়, 158 00:08:05,040 --> 00:08:07,340 লিখুন, "হ্যালো, দুনিয়া." 159 00:08:07,340 --> 00:08:09,440 >> এখন, আপনি কিভাবে থাকতে পারে এই সমাধান উত্পন্ন 160 00:08:09,440 --> 00:08:12,017 ছাড়া অগত্যা যেমন অনেক শব্দ স্বীকৃতি 161 00:08:12,017 --> 00:08:14,350 যেমন আমি, অবশ্যই, জমিদারি অনেক বছর ধরে এই কাজ? 162 00:08:14,350 --> 00:08:18,720 আচ্ছা, প্রথম সমস্যা প্রতি উপলব্ধি সেট, আমরা আপনাকে একটি কমান্ডের সাথে পরিচয় করিয়ে 163 00:08:18,720 --> 00:08:21,175 যে CS50 এর নিজস্ব কর্মীদের help50 নামক লিখেছেন. 164 00:08:21,175 --> 00:08:24,300 এবং প্রকৃতপক্ষে, সি স্পেসিফিকেশন করে সমস্যা এই কিভাবে ব্যবহার করার জন্য সেট করা. 165 00:08:24,300 --> 00:08:27,210 >> কিন্তু help50 মূলত একটি প্রোগ্রাম যা CS50 এর কর্মীদের 166 00:08:27,210 --> 00:08:30,850 আপনি চালানোর যে লিখেছে পারবেন একটি কমান্ড বা একটি প্রোগ্রাম চালানো, 167 00:08:30,850 --> 00:08:36,169 এবং যদি আপনি বুঝতে না তার আউটপুট, help50 তার আউটপুট পাস 168 00:08:36,169 --> 00:08:38,890 যা সফটওয়্যার বাতলান যে কোর্স এর কর্মীরা লিখেছে 169 00:08:38,890 --> 00:08:42,429 আপনার প্রোগ্রামের আউটপুট তাকান হবে পাতিপাতি অক্ষর দ্বারা চরিত্র. 170 00:08:42,429 --> 00:08:46,000 আর যদি আমরা, কর্মী, চিনতে যে আপনি সম্মুখীন করছি ত্রুটির বার্তা, 171 00:08:46,000 --> 00:08:50,580 আমরা কিছু সঙ্গে আপনি ঘটান করতে চেষ্টা করবে অলঙ্কৃত প্রশ্ন, কিছু পরামর্শ দিয়ে, 172 00:08:50,580 --> 00:08:54,890 অনেক একটি TF অথবা একটি CA বা আমার মতো অফিস সময়ে ব্যক্তি না হবে. 173 00:08:54,890 --> 00:08:58,320 >> সুতরাং help50 চেহারা যদি আপনি এরূপ না অগত্যা একটি সমস্যা স্বীকার করে. 174 00:08:58,320 --> 00:09:00,790 কিন্তু এটা উপর নির্ভর করে না একটি খঁজের যষ্টি হিসাবে অত্যধিক. 175 00:09:00,790 --> 00:09:03,990 অবশ্যই বোঝার চেষ্টা তার আউটপুট এবং তারপর তা থেকে শিক্ষা 176 00:09:03,990 --> 00:09:07,571 যাতে শুধুমাত্র বারকতক আপনি না কখনো একটি নির্দিষ্ট ত্রুটির জন্য help50 চালানোর 177 00:09:07,571 --> 00:09:08,070 বার্তা. 178 00:09:08,070 --> 00:09:10,660 এর পরে, আপনি হতে হবে ভাল নিজেকে সজ্জিত 179 00:09:10,660 --> 00:09:13,180 জিনিসটা কি এটা আসলে. 180 00:09:13,180 --> 00:09:14,350 >> এখানে অন্য এক কাজ করা যাক. 181 00:09:14,350 --> 00:09:20,410 আমাকে এগিয়ে যান এবং অন্য মধ্যে দিন ফাইল আমরা এই buggy1.c ডাকবো. 182 00:09:20,410 --> 00:09:23,110 এবং এই ফাইলের মধ্যে আমি আছি deliberately-- যাচ্ছে 183 00:09:23,110 --> 00:09:26,330 কিন্তু দাবী করে যে, আমি না বুঝতে কি ভুল আমি করেছি. 184 00:09:26,330 --> 00:09:31,420 >> আমি এগিয়ে যান এবং আপাততঃ কাজ করতে যাচ্ছি #include, যেহেতু আমি করেছি 185 00:09:31,420 --> 00:09:33,660 একটি মুহূর্ত আগে থেকে আমার পাঠ শিখেছি. 186 00:09:33,660 --> 00:09:36,220 Int main (অকার্যকর), আগের মতোই. 187 00:09:36,220 --> 00:09:40,880 এবং তারপর এখানে আমি যাচ্ছি স্ট্রিং গুলি করতে হবে - get_string. 188 00:09:40,880 --> 00:09:43,770 এবং শেষ সময় থেকে প্রত্যাহার এই উপায়ে, হেই, কম্পিউটার, 189 00:09:43,770 --> 00:09:48,280 আমাকে একটি পরিবর্তনশীল দিতে, এটি গুলি কল, এবং যে পরিবর্তনশীল একটি স্ট্রিং টাইপ করা 190 00:09:48,280 --> 00:09:50,150 তাই আমি এটা এক বা একাধিক শব্দ সংরক্ষণ করতে পারেন. 191 00:09:50,150 --> 00:09:52,191 >> তারপর ডানদিকের উপর সমান চিহ্ন পাশ 192 00:09:52,191 --> 00:09:54,980 get_string হয়, যা একটি হল CS50 লাইব্রেরি ফাংশন 193 00:09:54,980 --> 00:09:55,980 যে ঠিক তাই করছে. 194 00:09:55,980 --> 00:09:59,740 এটি একটি ফাংশন এবং তারপর পায় ডান দিক থেকে হাত এটা বামে. 195 00:09:59,740 --> 00:10:02,670 তাই এই সমান চিহ্ন মানে এই নয় "সমান" আমরা গণিত মনে হতে পারে হিসাবে. 196 00:10:02,670 --> 00:10:04,750 এটা ডান থেকে বাম কার্যভার মানে. 197 00:10:04,750 --> 00:10:09,640 তাই এই অর্থ থেকে স্ট্রিং নিতে ব্যবহারকারী এবং এটি গুলি ভেতরে সংরক্ষণ করি. 198 00:10:09,640 --> 00:10:10,460 >> এখন এর ব্যবহার করা উচিত. 199 00:10:10,460 --> 00:10:13,820 আমাকে এখন এগিয়ে এবং যেতে একটি দ্বিতীয় যেমন যাক লাইন, আমাকে এগিয়ে যান এবং বলে "হ্যালো" দিন - 200 00:10:13,820 --> 00:10:19,330 না "দুনিয়া," কিন্তু "হ্যালো,% s-- যা আমাদের স্থানধারক, কমা গুলি, 201 00:10:19,330 --> 00:10:22,030 যা আমাদের পরিবর্তনশীল, এবং তারপর একটি সেমিকোলন. 202 00:10:22,030 --> 00:10:26,070 সুতরাং যদি আমি অত্যধিক স্ক্রু আপ করা হয়নি এখানে, এই সঠিক কোড মত দেখাচ্ছে. 203 00:10:26,070 --> 00:10:28,090 >> আর আমার সহজাত এখন এটা কম্পাইল হয়. 204 00:10:28,090 --> 00:10:30,400 ফাইল buggy1.c বলা হয়. 205 00:10:30,400 --> 00:10:33,770 তাই আমি buggy1 করা, লিখুন যা করতে যাচ্ছি. 206 00:10:33,770 --> 00:10:36,377 আর ধ্যাত্তেরি-এটা, যদি সেখানে নেই আগের চেয়ে আরও বেশি ত্রুটি. 207 00:10:36,377 --> 00:10:38,210 আমি বলতে চাচ্ছি, আরো আছে ত্রুটির বার্তা এটা would 208 00:10:38,210 --> 00:10:40,400 এই প্রোগ্রামের মধ্যে প্রকৃত লাইন চেয়ে মনে হচ্ছে. 209 00:10:40,400 --> 00:10:42,730 >> কিন্তু takeaway এখানে, এমনকি যদি আপনি উদ্বেল করছি 210 00:10:42,730 --> 00:10:45,040 দুই বা তিন বা সঙ্গে আরও চারটি ত্রুটির বার্তা, 211 00:10:45,040 --> 00:10:48,340 খুব সবসময় ফোকাস সেই বার্তা প্রথম. 212 00:10:48,340 --> 00:10:52,220 উপরের সবচেয়ে এক দিকে তাকিয়ে, ব্যাক আপ হিসাবে প্রয়োজন স্ক্রলিং হবে. 213 00:10:52,220 --> 00:10:53,930 তাই এখানে আমি মেক buggy1 টাইপ. 214 00:10:53,930 --> 00:10:55,700 এখানে যে ঝনঝন আউটপুট প্রত্যাশিত হিসাবে. 215 00:10:55,700 --> 00:10:57,290 >> এবং এখানে প্রথম লাল ত্রুটি. 216 00:10:57,290 --> 00:11:02,370 অঘোষিত শনাক্তকারী ব্যবহারের স্ট্রিং, আমি প্রমিত বুঝিয়েছিলেন? 217 00:11:02,370 --> 00:11:04,260 তাই মান হয় আসলে অন্য কিছু. 218 00:11:04,260 --> 00:11:06,240 এটা ব্যবহারকারীর বোঝায় কীবোর্ড, মূলত. 219 00:11:06,240 --> 00:11:08,080 >> কিন্তু যে আমি কি অভিপ্রেত নয়. 220 00:11:08,080 --> 00:11:11,770 আমি স্ট্রিং বোঝানো, এবং আমি get_string বোঝানো. 221 00:11:11,770 --> 00:11:16,200 তাই কি হল যে আমি এই সময় কাজ করতে ভুলে গেছি? 222 00:11:16,200 --> 00:11:20,230 কি এই সময় অনুপস্থিত? 223 00:11:20,230 --> 00:11:23,600 আমি আমার #include আছে, তাই আমি printf এক্সেস আছে. 224 00:11:23,600 --> 00:11:26,090 >> কিন্তু আমি কি না শুধু এখনো এক্সেস? 225 00:11:26,090 --> 00:11:29,420 ওয়েল, শুধু শেষবারের মত, আমি কম্পাইলার বলা প্রয়োজন 226 00:11:29,420 --> 00:11:31,691 ঝনঝন কি এই ফাংশন হয়. 227 00:11:31,691 --> 00:11:33,940 Get_string আসে না সি দিয়ে এবং বিশেষ করে, এটা 228 00:11:33,940 --> 00:11:38,160 আসে না , হেডার ফাইল. 229 00:11:38,160 --> 00:11:40,770 এটা পরিবর্তে আসে কিছু কর্মীরা লিখেছে, 230 00:11:40,770 --> 00:11:44,176 যা একটি ভিন্ন ফাইল নাম কিন্তু যথাযোগ্যভাবে নামে. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> তাই কেবল এক লাইন যোগ করে শেষ সময় থেকে code-- রিকল 233 00:11:50,861 --> 00:11:53,610 যখন ঝনঝন চালায় যে, এটা চলে যাচ্ছে নিচ থেকে আমার কোড উপরের দেখুন, 234 00:11:53,610 --> 00:11:54,193 বাম থেকে ডান. 235 00:11:54,193 --> 00:11:57,200 এটা লক্ষ্য করা যাচ্ছে উহু, যদি আপনি চান. 236 00:11:57,200 --> 00:11:59,900 আমাকে যেতে এবং যে খুঁজি, যেখানেই এটা সার্ভারে হয়, 237 00:11:59,900 --> 00:12:03,090 কপি এবং পেস্ট করুন, মূলত, আপনার নিজস্ব ফাইল উপরের প্রবেশ 238 00:12:03,090 --> 00:12:06,820 যাতে গল্প এই সময়ে, লাইন 1, প্রোগ্রাম বাকি 239 00:12:06,820 --> 00:12:11,651 প্রকৃতপক্ষে, ফাংশন কোন ব্যবহার করতে পারেন তথায় তাদের মধ্যে get_string. 240 00:12:11,651 --> 00:12:13,650 তাই আমি উপেক্ষা করা যাচ্ছে না ঐ এরর বাকি, 241 00:12:13,650 --> 00:12:17,190 কারণ আমি প্রকৃতপক্ষে, যে শুধুমাত্র সন্দেহ প্রথম এক আসলে গুরুত্বপূর্ণ. 242 00:12:17,190 --> 00:12:20,780 এবং আমি এগিয়ে এবং পুন: প্রকাশ যেতে যাচ্ছি আমার ফাইল সংরক্ষণ পরে buggy1 করতে. 243 00:12:20,780 --> 00:12:22,580 এবং voila, এটা কাজ করেনি. 244 00:12:22,580 --> 00:12:29,200 আর আমি যদি ./buggy1 এবং, টাইপ জন্য উদাহরণস্বরূপ,, Zamyla, আমি এখন হ্যালো পাবেন, 245 00:12:29,200 --> 00:12:32,000 , Zamyla, পরিবর্তে হ্যালো, দুনিয়া. 246 00:12:32,000 --> 00:12:32,550 >> ঠিক আছে. 247 00:12:32,550 --> 00:12:35,890 তাই এখানে টেকওযে় তারপর হয়, এক, যতটা আপনি পারেন হিসাবে উঁচ্ছবৃত্তি চেষ্টা 248 00:12:35,890 --> 00:12:39,140 একা ত্রুটির বার্তা থেকে, খুঁজছি চেনা শব্দের কিছু. 249 00:12:39,140 --> 00:12:43,070 যে ছাড়া, প্রতি help50 ব্যবহার সমস্যা সেট স্পেসিফিকেশন. 250 00:12:43,070 --> 00:12:46,500 কিন্তু বাদে যে, খুব, সবসময় দেখুন শীর্ষ ত্রুটি শুধুমাত্র অন্তত 251 00:12:46,500 --> 00:12:50,051 প্রাথমিকভাবে, দেখতে কি তথ্য এটা আসলে উত্পাদ পারে. 252 00:12:50,051 --> 00:12:52,300 কিন্তু এটা সেখানে আউট সক্রিয় এমনকি অধিক কার্যকারিতার নির্মিত 253 00:12:52,300 --> 00:12:55,030 CS50 লাইব্রেরি মধ্যে সাহায্য করার জন্য আপনি প্রথম সেমিস্টারে 254 00:12:55,030 --> 00:12:57,580 এবং প্রথম প্রোগ্রামিং জিনিসটা কি ভুল হতেই থাকবে. 255 00:12:57,580 --> 00:12:59,840 সুতরাং আসুন আর একটি উদাহরণ এখানে কাজ করতে দিন. 256 00:12:59,840 --> 00:13:04,350 আমি, যা এই buggy2 কল চলেছি, আবার, আউট ত্রুটিপূর্ণ হতে যাচ্ছে 257 00:13:04,350 --> 00:13:05,650 গেট, নকশা দ্বারা. 258 00:13:05,650 --> 00:13:09,980 >> এবং আমি এগিয়ে যেতে চলেছি এবং #include না. 259 00:13:09,980 --> 00:13:12,580 এবং তারপর আমি int প্রধান (অকার্যকর) করতে যাচ্ছি. 260 00:13:12,580 --> 00:13:14,840 এবং তারপর আমি লুপ জন্য একটি কাজ করতে যাচ্ছি. 261 00:13:14,840 --> 00:13:16,690 জন্য (আমি int: _ 0. 262 00:13:16,690 --> 00:13:18,750 আমি কম বা 10 সমান. 263 00:13:18,750 --> 00:13:24,260 i ++, এবং তারপর কোঁকড়া ধনুর্বন্ধনী মধ্যে, আমি যাচ্ছি প্রিন্ট আউট করতে এখানে শুধু একটি হ্যাশট্যাগ প্রতীক 264 00:13:24,260 --> 00:13:25,920 এবং একটি নতুন লাইন অক্ষর. 265 00:13:25,920 --> 00:13:29,220 >> এই সঙ্গে আমার অভিপ্রায় তাই প্রোগ্রাম বেশ সহজভাবে হয় 266 00:13:29,220 --> 00:13:33,150 10 বার পুনরুক্তি করতে এবং প্রতিটি পুনরাবৃত্তির 267 00:13:33,150 --> 00:13:35,260 যে লুপ প্রতিটি সময় চক্র মাধ্যমে, 268 00:13:35,260 --> 00:13:37,660 একটি হ্যাশট্যাগ প্রিন্ট আউট, একটি হ্যাশট্যাগ, একটি হ্যাশট্যাগ. 269 00:13:37,660 --> 00:13:40,480 আমি কারণ এক প্রতি লাইনে সেখানে নতুন লাইন আছে. 270 00:13:40,480 --> 00:13:42,787 এবং যে জন্য প্রত্যাহার লুপ, গত সপ্তাহে প্রতি 271 00:13:42,787 --> 00:13:44,620 এবং আপনি আরও পাবেন সিনট্যাক্স সঙ্গে পরিচিত 272 00:13:44,620 --> 00:13:47,170 অনুশীলন সঙ্গে এটি ব্যবহার করে দীর্ঘ আগে এই আমাকে দেয় 273 00:13:47,170 --> 00:13:49,740 একটি পরিবর্তনশীল নামক তোমার এবং এটি 0 সেট. 274 00:13:49,740 --> 00:13:52,650 >> এই আমি উপর বৃদ্ধি 1 দ্বারা প্রতি পুনরাবৃত্তির. 275 00:13:52,650 --> 00:13:54,940 তাই আমি 3 2 1 যায়. 276 00:13:54,940 --> 00:13:57,690 এবং তারপর এই অবস্থায় সেমি-কোলন মধ্যে মধ্যম 277 00:13:57,690 --> 00:14:03,010 করতে প্রতি পুনরাবৃত্তির চেক নিশ্চিত করুন যে আমরা সীমার মধ্যে এখনও. 278 00:14:03,010 --> 00:14:06,830 তাই আমি 10 বার পুনরুক্তি করতে চান, তাই আমি আছে সাজানোর খুব intuitively শুধু 279 00:14:06,830 --> 00:14:09,070 10 আমার ঊর্ধ্বসীমামান সেখানে যেমন করা. 280 00:14:09,070 --> 00:14:14,310 >> এবং এখনো, যখন আমি এই রান পর মেক সঙ্গে এটা কম্পাইল করার প্রণালী buggy2-- 281 00:14:14,310 --> 00:14:15,440 এবং এটা ঠিক আছে কম্পাইল করে. 282 00:14:15,440 --> 00:14:17,980 তাই আমি একটি না বাক্যগঠন ত্রুটি এই সময়. 283 00:14:17,980 --> 00:14:20,940 আমাকে এখন এগিয়ে যেতে দাও এবং buggy2 চালানো লিখুন. 284 00:14:20,940 --> 00:14:22,620 আর এখন পর্যন্ত স্ক্রোল করুন. 285 00:14:22,620 --> 00:14:24,890 আর আমাকে বাড়িয়ে দিন উইন্ডোর আকার. 286 00:14:24,890 --> 00:14:33,720 >> আমি আছে বলে মনে হচ্ছে 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. 287 00:14:33,720 --> 00:14:38,891 সুতরাং, 11 হ্যাশট্যাগ যদিও আমি পরিষ্কারভাবে এই লুপ এর ভিতরে 10 করা. 288 00:14:38,891 --> 00:14:42,140 এখন, আপনি কিছু অবিলম্বে দেখতে পারে কি ত্রুটি কারণ, প্রকৃতপক্ষে, এই হল 289 00:14:42,140 --> 00:14:43,720 একটি খুব কঠিন ত্রুটি না করতে হয়. 290 00:14:43,720 --> 00:14:46,070 কিন্তু এটা খুব সাধারণভাবে এর খুব ভোরে তৈরি. 291 00:14:46,070 --> 00:14:49,820 >> কি আমি বাতলান করতে চাই, যদিও, , কিভাবে আমি এই জিনিসটা পারে হয়? 292 00:14:49,820 --> 00:14:52,300 ওয়েল, দেখা যাচ্ছে যে CS50 লাইব্রেরি আসে 293 00:14:52,300 --> 00:14:55,380 না শুধুমাত্র get_string এবং get_int সঙ্গে এবং get_float এবং অন্যান্য কার্যাবলী. 294 00:14:55,380 --> 00:14:59,980 এটি একটি বিশেষ ফাংশন সঙ্গে আসে বলা eprintf, বা, ত্রুটি printf,. 295 00:14:59,980 --> 00:15:03,270 আর এটা একমাত্র বিদ্যমান করতে এটা আপনার জন্য একটি সামান্য বিট সহজ 296 00:15:03,270 --> 00:15:06,310 যখন শুধু আপনার কোড ডিবাগ পর্দায় একটি ত্রুটির বার্তা প্রিন্ট 297 00:15:06,310 --> 00:15:07,850 আর জেনে রেখো এটা কোথা থেকে এসেছে. 298 00:15:07,850 --> 00:15:11,000 >> সুতরাং উদাহরণস্বরূপ, এক জিনিস আমি প্রতাপ এখানে কি এই ফাংশন সঙ্গে আপাততঃ নেই 299 00:15:11,000 --> 00:15:20,230 eprintf, এবং তারপর আমি এগিয়ে যেতে চলেছি এবং বলে আমি এখন% হল আমি, ব্যাকস্ল্যাশ, এন. 300 00:15:20,230 --> 00:15:22,330 এবং আমি এর মূল্য চলা করতে যাচ্ছি. 301 00:15:22,330 --> 00:15:25,400 এবং টপ আপ, এই কারণ CS50 লাইব্রেরি রয়েছে, 302 00:15:25,400 --> 00:15:27,580 আমি এগিয়ে যেতে চলেছি এবং অন্তর্ভুক্ত 303 00:15:27,580 --> 00:15:29,169 তাই আমি এই ফাংশন এক্সেস আছে. 304 00:15:29,169 --> 00:15:31,460 কিন্তু এর বিবেচনা করা যাক কি লাইন 9 করছেন করা অনুমিত হয়. 305 00:15:31,460 --> 00:15:32,670 অবশেষে আমি এই মুছে যাচ্ছি. 306 00:15:32,670 --> 00:15:34,670 এই কোন সম্পর্ক নেই আমার প্রতিষ্ঠানের লক্ষ্য সঙ্গে. 307 00:15:34,670 --> 00:15:39,090 কিন্তু eprintf, ত্রুটি printf, শুধু বোঝানো হয় আমাকে কিছু ডায়গনিস্টিক তথ্য দিতে. 308 00:15:39,090 --> 00:15:42,460 যখন আমি আমার প্রোগ্রাম চালানো, আমি চাই সাময়িকভাবে পর্দায় এই দেখুন 309 00:15:42,460 --> 00:15:44,550 হিসাবে ভাল শুধু বুঝতে কি ঘটছে. 310 00:15:44,550 --> 00:15:47,330 >> এবং প্রকৃতপক্ষে, প্রতিটি লাইন 9 এখানে পুনরাবৃত্তির 311 00:15:47,330 --> 00:15:49,260 আমি দেখতে চাই, আমি এর মান কি? 312 00:15:49,260 --> 00:15:50,290 আমি এর মান কত? 313 00:15:50,290 --> 00:15:51,280 আমি এর মান কত? 314 00:15:51,280 --> 00:15:55,650 এবং, আশা, আমি শুধুমাত্র উচিত যে বার্তা, এছাড়াও 10 বার দেখতে. 315 00:15:55,650 --> 00:15:57,780 >> তাই আমাকে এগিয়ে যান এবং আমার প্রোগ্রাম কম্পাইল, 316 00:15:57,780 --> 00:15:59,905 আমি যে কোন সময় করতে হবে যেমন আমি একটা পরিবর্তন করতে. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 আর now-- ঠিক আছে. 319 00:16:03,640 --> 00:16:04,820 সেখানে অনেক বেশি ঘটছে. 320 00:16:04,820 --> 00:16:07,610 তাই আমাকে আপ স্ক্রল যাক একটি বড় উইন্ডোতে. 321 00:16:07,610 --> 00:16:10,190 >> এবং আপনি যে প্রতিটি দেখতে পাবেন হ্যাশট্যাগ এখনও মুদ্রণ করা হয়. 322 00:16:10,190 --> 00:16:15,270 কিন্তু মাঝে মধ্যে তাদের প্রতিটি এখন এই হল ডায়গনিস্টিক আউটপুট নিম্নরূপ ফরম্যাট. 323 00:16:15,270 --> 00:16:17,960 আমার প্রোগ্রাম এখানে নাম buggy2 হয়. 324 00:16:17,960 --> 00:16:20,432 ফাইলের নাম buggy2.c হয়. 325 00:16:20,432 --> 00:16:24,080 লাইন সংখ্যা যা থেকে এই ছাপা হয়েছিল লাইন 9. 326 00:16:24,080 --> 00:16:27,500 এবং তারপর যে ডানদিকে থাকা যে আমি আশা করছি সংশ্লিষ্ট ত্রুটি সংক্রান্ত বার্তা. 327 00:16:27,500 --> 00:16:30,701 >> আর কি সুন্দর সম্পর্কে এই যে হয় এখন আমি অগত্যা গণনা করতে হবে না 328 00:16:30,701 --> 00:16:32,200 আমার মাথার মধ্যে কি আমার প্রোগ্রাম করছে. 329 00:16:32,200 --> 00:16:34,240 আমি যে দেখতে পারেন প্রথম পুনরাবৃত্তির আমি 0, 330 00:16:34,240 --> 00:16:39,420 তারপর তারপর 1, 2, তারপর 3, তারপর 4, তারপর 5, তারপর 6, তারপর 7, তারপর 8, তারপর 9, তারপর 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 সুতরাং একটি মিনিট অপেক্ষা করুন. 333 00:16:42,050 --> 00:16:43,740 এখানে কি হচ্ছে? 334 00:16:43,740 --> 00:16:48,190 আমি এখনো গণনা করা হবে বলে মনে হচ্ছে যেমন 10 পর্যন্ত অভিপ্রেত. 335 00:16:48,190 --> 00:16:50,550 >> কিন্তু আমি কোথা থেকে শুরু হয়নি? 336 00:16:50,550 --> 00:16:53,240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 337 00:16:53,240 --> 00:16:58,040 তাই 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- 11 আঙুল 338 00:16:58,040 --> 00:16:59,990 সমস্যা ইঙ্গিতবহ. 339 00:16:59,990 --> 00:17:02,850 আমি গণনা করা হয়েছে বলে মনে হচ্ছে ভুল আমার লুপ. 340 00:17:02,850 --> 00:17:06,599 10 পুনরাবৃত্তিও যেতে বরং, আমি 0 থেকে শুরু করছি, 341 00:17:06,599 --> 00:17:09,550 আমি এ এবং 10 মাধ্যমে শেষ করছি. 342 00:17:09,550 --> 00:17:12,030 কিন্তু কারণ, একটি কম্পিউটার এর মত, আমি 0 থেকে গণনা শুরু করছি, 343 00:17:12,030 --> 00:17:15,250 আমি গণনা করা উচিত থেকে, কিন্তু 10 এর মাধ্যমে, না. 344 00:17:15,250 --> 00:17:18,510 >> আর তাই ঠিক, আমি অবশেষে এখানে উপলব্ধি, দুটি জিনিস এক হয়. 345 00:17:18,510 --> 00:17:22,430 আমি খুব সহজভাবে বলতে পারে কম 10 পর্যন্ত গণনা. 346 00:17:22,430 --> 00:17:27,260 তাই 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, যা প্রকৃতপক্ষে, সঠিক, 347 00:17:27,260 --> 00:17:28,900 এমনকি এটি একটি সামান্য ভুল শোনাচ্ছে যদিও. 348 00:17:28,900 --> 00:17:35,070 বা আমি করতে পারে এর চেয়ে বড় বা সমান কম 9, এতক্ষণ আমি 0 থেকে আরম্ভ হিসাবে. 349 00:17:35,070 --> 00:17:40,056 অথবা আপনি সত্যিই যে পছন্দ করি না যদি, আপনি 10 মাধ্যমে আপ গণনা কিন্তু আছে 1 শুরু করতে পারেন. 350 00:17:40,056 --> 00:17:41,680 কিন্তু আবার, এই মাত্র না করে প্রচলিত. 351 00:17:41,680 --> 00:17:43,977 programming-- যদ্যপি ইন গোড়া এত না 352 00:17:43,977 --> 00:17:45,810 কিন্তু প্রোগ্রামিং মধ্যে সি এবং অন্যান্য ভাষায়, 353 00:17:45,810 --> 00:17:47,670 জাভাস্ক্রিপ্ট এবং মত পাইথন এবং অন্যদের, এটা 354 00:17:47,670 --> 00:17:49,880 শুধু জন্য খুব সাধারণ বাইনারি আমাদের আলোচনার 355 00:17:49,880 --> 00:17:53,450 শুধু এ গণনা শুরু করার সর্বনিম্ন সংখ্যা আপনি যা করতে পারেন, যা হল 0. 356 00:17:53,450 --> 00:17:53,950 ঠিক আছে. 357 00:17:53,950 --> 00:17:55,160 সুতরাং যে eprintf এর. 358 00:17:55,160 --> 00:17:58,600 এবং আবার, এখন আমি মূর্ত আউট করেছি যে আমার সমস্যা, এবং আমি 0 ফিরে যেতে চলেছি 359 00:17:58,600 --> 00:18:01,470 কম 10 মাধ্যমে, আমি যাচ্ছি এ যান এবং eprintf মুছে দিতে. 360 00:18:01,470 --> 00:18:04,580 >> এটা সেখানে থাকার কথা নয় যখন আমি আমার কোড জাহাজ বা আমার কোড জমা 361 00:18:04,580 --> 00:18:05,800 অথবা এটা অন্য কাউকে দেন. 362 00:18:05,800 --> 00:18:07,980 এটা সত্যিই শুধু বোঝানো সাময়িকভাবে ব্যবহার করা. 363 00:18:07,980 --> 00:18:11,650 কিন্তু এখন আমি এই সংশোধন করা হয়েছে করেছি পাশাপাশি বিশেষ সমস্যা. 364 00:18:11,650 --> 00:18:16,780 >> আচ্ছা, এর আরও একটি উদাহরণ এখানে কাজ করতে দিন যে আমি পিটান নিম্নরূপ যাচ্ছি. 365 00:18:16,780 --> 00:18:22,850 আমি এগিয়ে যান যাচ্ছি এবং #include. $ 50 366 00:18:22,850 --> 00:18:25,580 এবং আমি এগিয়ে যেতে চলেছি এবং #include. 367 00:18:25,580 --> 00:18:29,030 >> আমি সংরক্ষণ করতে যাচ্ছি এই ফাইলটি buggy3.c হিসাবে. 368 00:18:29,030 --> 00:18:31,740 এবং আমি এগিয়ে যেতে চলেছি এবং ঘোষণা int প্রধান (অকার্যকর). 369 00:18:31,740 --> 00:18:34,186 এবং তারপর এর ভিতরে আমি আমি int করতে যাচ্ছি: _ - 370 00:18:34,186 --> 00:18:36,435 আমি একটি প্রোগ্রাম বাস্তবায়ন করতে চান একটি get_negative_int সঙ্গে. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 এটি একটি ফাংশন এখনো বিদ্যমান নয়. 373 00:18:40,770 --> 00:18:42,870 সুতরাং আমরা বাস্তবায়ন করতে যাচ্ছেন এটা মাত্র কয়েক মিনিটের মধ্যে. 374 00:18:42,870 --> 00:18:45,541 কিন্তু আমরা কেন দেখতে যাচ্ছেন এটা প্রথম পাস এ বগী. 375 00:18:45,541 --> 00:18:47,290 আর একবার আমি অর্জিত করেছি ব্যবহারকারী থেকে int, 376 00:18:47,290 --> 00:18:53,365 আমি শুধু% আমি প্রিন্ট চলেছি একটি নেগেটিভ পূর্ণসংখ্যা, ব্যাকস্ল্যাশ, এন, কমা, আমি. 377 00:18:53,365 --> 00:18:55,240 অন্য কথায়, সব আমি এই প্রোগ্রাম আপনি করতে পারেন 378 00:18:55,240 --> 00:18:58,000 থেকে একটি নেতিবাচক int- পেতে হয় ব্যবহারকারী এবং তারপর প্রিন্ট আউট 379 00:18:58,000 --> 00:18:59,980 যে অমুক অমুক একটি নেতিবাচক int হয়. 380 00:18:59,980 --> 00:19:02,080 >> এখন আমি এই ফাংশন বাস্তবায়ন করতে হবে. 381 00:19:02,080 --> 00:19:05,740 তাই আমার ফাইল পরবর্তী, আমি যেতে চলেছি এগিয়ে এবং একটি ফাংশন বলা ঘোষণা 382 00:19:05,740 --> 00:19:10,670 get_negative_int (অকার্যকর) - এবং আমরা করব ফিরে আসা কি যে লাইন আবার মানে 383 00:19:10,670 --> 00:19:18,790 একটি মুহূর্ত কোন int n মধ্যে; do-- করণীয় নিম্নলিখিত printf, n হল :. 384 00:19:18,790 --> 00:19:26,210 এবং তারপর আমি কি করতে যাচ্ছি - get_int, এবং এই যখন n 0 থেকে বেশি হয় না. 385 00:19:26,210 --> 00:19:28,310 এবং তারপর এন ফিরে ;. 386 00:19:28,310 --> 00:19:31,730 >> তাই অনেক ঘটছে আছে এই কিন্তু কোনওটিই আমরা না 387 00:19:31,730 --> 00:19:33,710 অন্তত গত সপ্তাহে সংক্ষেপে তাকান. 388 00:19:33,710 --> 00:19:36,980 সুতরাং এখানে লাইন 10 আমি ঘোষণা করেছি একটি ফাংশন get_negative_int ডেকে 389 00:19:36,980 --> 00:19:39,620 এবং আমি রেখেছি (অকার্যকর), মধ্যে প্রথম বন্ধনী, কারণ এই হচ্ছে 390 00:19:39,620 --> 00:19:40,950 একটি ইনপুট লাগবে না. 391 00:19:40,950 --> 00:19:42,910 আমি কিছু পাশ করছি না এই ফাংশন. 392 00:19:42,910 --> 00:19:44,690 আমি শুধু কিছু তা থেকে ফিরে পেয়ে করছি. 393 00:19:44,690 --> 00:19:47,270 >> এবং কি আমি আশা করছি ফিরে পেতে একটি পূর্ণসংখ্যা. 394 00:19:47,270 --> 00:19:50,040 সেখানে কোন ডাটা টাইপ সি negative_int বলা. 395 00:19:50,040 --> 00:19:52,880 এটা শুধু int, তাই এটা চলে যাচ্ছে নিশ্চিত করার জন্য আমাদের উপর করা 396 00:19:52,880 --> 00:19:55,340 যে মান আসলে যে ফিরে আসলে না শুধুমাত্র কোন int 397 00:19:55,340 --> 00:19:56,380 বরং নেতিবাচক. 398 00:19:56,380 --> 00:20:02,150 >> লাইন 12 উপর আমি একটি পরিবর্তনশীল ঘোষণা করছি এন এবং int- এ টাইপ এটিকে বলা. 399 00:20:02,150 --> 00:20:07,500 এবং তারপর লাইন 13 18 মাধ্যমে আমি কিছু কাজ করার সময় কিছু সত্য. 400 00:20:07,500 --> 00:20:11,040 আমি এগিয়ে এবং মুদ্রণ যাচ্ছি এন, কোলন, এবং তারপর একটি স্পেস, 401 00:20:11,040 --> 00:20:12,800 ব্যবহারকারীর জন্য একটি প্রম্পট মত. 402 00:20:12,800 --> 00:20:16,410 >> আমি তারপর get_int আহ্বান করছি এবং তার তথাকথিত ফেরত মান সংরক্ষণকারী 403 00:20:16,410 --> 00:20:18,130 যে পরিবর্তনশীল n মধ্যে. 404 00:20:18,130 --> 00:20:22,600 কিন্তু আমি এটা চালিয়ে যাচ্ছি এই যখন n 0 চেয়ে অনেক বেশী. 405 00:20:22,600 --> 00:20:27,960 অন্য কথায়, ব্যবহারকারী আমাকে একটি দেয় যদি int এবং যে সংখ্যা 0 চেয়ে অনেক বেশী, 406 00:20:27,960 --> 00:20:31,180 অতএব, ইতিবাচক, আমি যাচ্ছি শুধু ব্যবহারকারী reprompting রাখা, 407 00:20:31,180 --> 00:20:37,160 reprompting রাখা, তাদের জোর করে সহযোগিতা এবং আমাকে একটি নেতিবাচক int দিন. 408 00:20:37,160 --> 00:20:41,640 >> আর একবার এন আসলে negative-- হয় ব্যবহারকারী অনুমান অবশেষে ধরনের -50, 409 00:20:41,640 --> 00:20:46,710 তারপর এই সময় লুপ আর সত্য কারণ -50 0 চেয়ে বড় নয়. 410 00:20:46,710 --> 00:20:51,140 সুতরাং আমরা যে আউট বিরতি লুপ কথাটি এবং এন ফিরে. 411 00:20:51,140 --> 00:20:53,520 >> কিন্তু অন্য একটি ব্যাপার জিনিস আমি করতে হবে. 412 00:20:53,520 --> 00:20:56,190 এবং শুধু আমি এটা করতে পারেন কপি এবং পেস্ট দ্বারা 413 00:20:56,190 --> 00:20:58,540 ফাইল উপরের কোড এক লাইন. 414 00:20:58,540 --> 00:21:01,630 আমি, ঝনঝন শেখাতে হবে বা ঝনঝন করার অঙ্গীকার, 415 00:21:01,630 --> 00:21:04,630 স্পষ্টভাবে যে আমি আছি, প্রকৃতপক্ষে, যান এবং বাস্তবায়ন 416 00:21:04,630 --> 00:21:06,020 এই ফাংশন get_negative_int. 417 00:21:06,020 --> 00:21:07,674 এটা শুধু ফাইল কম হতে পারে. 418 00:21:07,674 --> 00:21:09,840 আবার, পুনরাহ্বান যে ঝনঝন শীর্ষ নিচ থেকে কিছু লেখা, 419 00:21:09,840 --> 00:21:12,330 ডানে বামে, যাতে তুমি না পারো যদি ঝনঝন একটি ফাংশন কল 420 00:21:12,330 --> 00:21:15,330 এটি বিদ্যমান যাচ্ছে জানেনা. 421 00:21:15,330 --> 00:21:18,430 >> এখন, দুর্ভাগ্যবশত, এই প্রোগ্রাম, যেমন আপনি কিছু লক্ষ্য হতে পারে, 422 00:21:18,430 --> 00:21:19,590 ইতিমধ্যে বগী. 423 00:21:19,590 --> 00:21:21,400 আমাকে এগিয়ে যান এবং তা buggy3 করা যাক. 424 00:21:21,400 --> 00:21:26,904 এটি প্রনয়ন, তাই আমার সমস্যা এখন নয় একটি বাক্যগঠন ত্রুটি, একটি পাঠগত ত্রুটি মত, 425 00:21:26,904 --> 00:21:29,570 এটা আসলে একটি যৌক্তিক হতে যাচ্ছে ত্রুটি যে আমি ইচ্ছাকৃতভাবে করেছি 426 00:21:29,570 --> 00:21:32,450 একটা সুযোগ হিসেবে তৈরি কি ঘটছে মাধ্যমে পইঠা. 427 00:21:32,450 --> 00:21:35,540 >> আমি এগিয়ে যেতে চলেছি এখন এবং buggy3 চালানো. 428 00:21:35,540 --> 00:21:37,490 আমি যেতে চলেছি এগিয়ে এবং সহযোগিতা. 429 00:21:37,490 --> 00:21:39,494 আমি এটা সংখ্যা 1 দিতে যাচ্ছি. 430 00:21:39,494 --> 00:21:41,410 এটা পছন্দ না, তাই এটা আমাকে আবার প্ররোচনা. 431 00:21:41,410 --> 00:21:42,147 >> কিভাবে সম্পর্কে 2? 432 00:21:42,147 --> 00:21:43,021 3? 433 00:21:43,021 --> 00:21:43,520 50? 434 00:21:43,520 --> 00:21:44,740 ঐ কোনটিই কাজ করছে. 435 00:21:44,740 --> 00:21:46,890 কিভাবে -50 সম্পর্কে? 436 00:21:46,890 --> 00:21:48,560 এবং প্রোগ্রাম কাজ বলে মনে হয়. 437 00:21:48,560 --> 00:21:49,970 >> আমাকে এটা আরো একবার চেষ্টা করা যাক. 438 00:21:49,970 --> 00:21:53,400 আমাকে -1 চেষ্টা করা যাক, কাজ বলে মনে হয়. 439 00:21:53,400 --> 00:21:56,380 আমাকে -2 চেষ্টা করা যাক, কাজ বলে মনে হয়. 440 00:21:56,380 --> 00:21:59,640 আমাকে 0 চেষ্টা করা যাক. 441 00:21:59,640 --> 00:22:01,684 হাহ, যে ভুল. 442 00:22:01,684 --> 00:22:03,350 এখন, আমরা এখানে একটু গোঁড়া হচ্ছে. 443 00:22:03,350 --> 00:22:07,090 কিন্তু এটা, প্রকৃতপক্ষে, যদি যে 0 তন্ন তন্ন ইতিবাচক কিংবা নেতিবাচক. 444 00:22:07,090 --> 00:22:11,150 তাই আসলে আমার প্রোগ্রাম যে বলার অপেক্ষা রাখে না, যে 0 একটি নেতিবাচক পূর্ণসংখ্যা 445 00:22:11,150 --> 00:22:12,820 যে টেকনিক্যালি সঠিক নয়. 446 00:22:12,820 --> 00:22:15,180 >> এখন, এটা এই কেন করছে? 447 00:22:15,180 --> 00:22:16,270 ওয়েল, এটা সুস্পষ্ট হতে পারে. 448 00:22:16,270 --> 00:22:18,110 এবং প্রকৃতপক্ষে, প্রোগ্রাম মোটামুটি সহজ হতে বোঝানো 449 00:22:18,110 --> 00:22:19,670 তাই আমরা অন্বেষণ করতে কিছু আছে. 450 00:22:19,670 --> 00:22:25,870 >> কিন্তু এর একটি তৃতীয় ডিবাগিং পরিচয় করিয়ে দেওয়া কৌশল এখানে debug50 বলা. 451 00:22:25,870 --> 00:22:27,750 সুতরাং এই একটি প্রোগ্রাম আমরা শুধু তৈরি করেছি যে 452 00:22:27,750 --> 00:22:30,770 এই বছর নামক debug50 যে আপনি অনুমতি দেবে 453 00:22:30,770 --> 00:22:34,130 ব্যবহার করার জন্য কি একটি বিল্ট ইন বলা এবং CS50 IDE তে গ্রাফিকাল ডিবাগার. 454 00:22:34,130 --> 00:22:38,400 আর একটি ডিবাগার শুধু একটি প্রোগ্রাম যে সাধারণত আপনি আপনার প্রোগ্রাম চালাতে দেয় 455 00:22:38,400 --> 00:22:44,050 কিন্তু পদক্ষেপ, লাইন দ্বারা ধাপে ধাপে পাতিপাতি দ্বারা, pausing, খোঁচা 456 00:22:44,050 --> 00:22:47,626 প্রায়, ভেরিয়েবল এ খুঁজছেন যাতে প্রোগ্রাম ঠিক আপনি অতীত পেশা নয় 457 00:22:47,626 --> 00:22:49,750 এবং দ্রুত কিছু প্রিন্ট না বা অন্যকিছু প্রিন্ট করা হবে. 458 00:22:49,750 --> 00:22:53,250 এটা আপনি একটি সুযোগ দেয়, এ মানুষের গতি, এটা সাথে যোগাযোগ করার জন্য. 459 00:22:53,250 --> 00:22:55,470 >> আর এই কাজ করতে, আপনি কেবল নিম্নলিখিত কাজগুলো. 460 00:22:55,470 --> 00:22:58,479 আপনার কোড কম্পাইল করার পর, যা আমি ইতিমধ্যে করেনি তা buggy3, 461 00:22:58,479 --> 00:23:00,020 আপনি এগিয়ে যান এবং debug50 ./buggy চালানোর. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 এত মত help50 আপনি চালাতে হয়েছে help50 এবং তারপর কমান্ড, 464 00:23:06,760 --> 00:23:10,120 debug50 আপনি debug50 চালানো হয়েছে এবং তারপর কমান্ডের নাম. 465 00:23:10,120 --> 00:23:14,440 >> এখন দেখার আমার পর্দায় কি ঘটবে, বিশেষ করে ডান দিকে. 466 00:23:14,440 --> 00:23:19,400 যখন আমি রান, সব আঘাত আকস্মিক এই ডানদিকের প্যানেলে 467 00:23:19,400 --> 00:23:20,419 পর্দায় আপ প্রর্দশিত হবে. 468 00:23:20,419 --> 00:23:22,210 এবং সেখানে অনেক যাচ্ছে প্রথম ঝলকে দেখে. 469 00:23:22,210 --> 00:23:25,110 কিন্তু সেখানে না সম্পর্কে এখনো চিন্তা করতে অনেক. 470 00:23:25,110 --> 00:23:28,570 >> এই সবকিছু আমাকে দেখানো হয় যে আমার প্রোগ্রামের ভিতরে হচ্ছেটা 471 00:23:28,570 --> 00:23:31,130 এখনই এবং এই মাধ্যমে বাটন উপরে তারপর হয় 472 00:23:31,130 --> 00:23:35,910 আমার কোড মাধ্যমে পইঠা করতে সক্ষম হবেন পরিণামে ধাপে ধাপে ধাপে. 473 00:23:35,910 --> 00:23:37,140 কিন্তু না এখনও. 474 00:23:37,140 --> 00:23:38,060 লক্ষ্য করুন কি ঘটবে. 475 00:23:38,060 --> 00:23:40,600 আমার টার্মিনাল উইন্ডোর এ আমি n জন্য অনুরোধ জানানো হচ্ছে না. 476 00:23:40,600 --> 00:23:44,560 এবং আমি এগিয়ে যান যাচ্ছি এবং এই সময় এবং -1 টাইপ সহযোগিতা. 477 00:23:44,560 --> 00:23:48,770 আর যদিও একটু cryptically, -1 একটি নেতিবাচক পূর্ণসংখ্যা, আশানুরূপ নয়. 478 00:23:48,770 --> 00:23:52,020 >> তারপর শিশু সমেত সমাপ্ত অবস্থা 0 GDBserver প্রস্থান. 479 00:23:52,020 --> 00:23:55,180 GDB, গনু ডিবাগার, নাম অন্তর্নিহিত সফ্টওয়্যার 480 00:23:55,180 --> 00:23:56,620 যে এই ডিবাগার প্রয়োগ করা হয়. 481 00:23:56,620 --> 00:24:00,500 কিন্তু এই সব সত্যিই মানে, ডিবাগার চলে গেল, কারণ আমার প্রোগ্রাম প্রস্থান 482 00:24:00,500 --> 00:24:01,710 এবং সব ভাল ছিল. 483 00:24:01,710 --> 00:24:06,020 আমি সত্যিই আমার প্রোগ্রাম ডিবাগ করতে চান তাহলে, আমি, preemptively debug50 জানাতে হবে 484 00:24:06,020 --> 00:24:08,920 যেখানে আমি শুরু করতে চাই না আমার কোড দিয়ে পদবিন্যাস? 485 00:24:08,920 --> 00:24:11,750 >> আর সম্ভবত সবচেয়ে সহজ উপায় যে নিম্নরূপ করতে. 486 00:24:11,750 --> 00:24:15,300 যদি আমি উপর কার্সার রেখে আমার দেশ সম্পাদক এর নিরাশ্রয় এখানে, 487 00:24:15,300 --> 00:24:19,090 সত্যিই তাই শুধু সাইডবারে এখানে, লাইন সংখ্যা বাঁদিকে, 488 00:24:19,090 --> 00:24:21,870 বিজ্ঞপ্তি যে যদি আমি শুধু ক্লিক একবার, আমি একটি সামান্য লাল বিন্দু করা. 489 00:24:21,870 --> 00:24:24,460 এবং যে সামান্য লাল বিন্দু, একটি স্টপ সাইন মত, মানে, হেই, 490 00:24:24,460 --> 00:24:29,430 debug50, আমার কোড বিরতি মৃত্যুদন্ড ওখানেই যখন আমি এই প্রোগ্রাম চালানো. 491 00:24:29,430 --> 00:24:30,260 >> তাই আসুন যে কাজের জন্য. 492 00:24:30,260 --> 00:24:37,340 আমাকে এগিয়ে যান এবং আমার প্রোগ্রাম চালানো যাক debug50 ./buggy3 সঙ্গে আবার লিখুন. 493 00:24:37,340 --> 00:24:40,110 আর এখন, নোটিশ, কিছু বিভিন্ন ঘটেছে. 494 00:24:40,110 --> 00:24:42,440 আমি অনুরোধ জানানো হচ্ছে না করছি এখনো আমার টার্মিনাল উইন্ডোতে 495 00:24:42,440 --> 00:24:45,430 কিছু জন্য, কারণ আমি না আছে আমার প্রোগ্রামে এখনো সেখানে অর্জিত. 496 00:24:45,430 --> 00:24:47,950 লক্ষ করুন যে, লাইন 8 যা এখন হাইলাইট করা হয়, 497 00:24:47,950 --> 00:24:51,720 এবং সেখানে একটি সামান্য তীর এর বাম উক্তি, আপনি এখানে বিরতি দেওয়া হয়. 498 00:24:51,720 --> 00:24:55,030 কোড, এই লাইনের লাইন 8, এখনো মৃত্যুদন্ড কার্যকর করেনি. 499 00:24:55,030 --> 00:24:58,940 >> আর যদি আমি চেহারা, জানার আগ্রহ রয়েছে ডান দিকে উপর এখানে, 500 00:24:58,940 --> 00:25:03,530 উল্লেখ্য, আমি একটি স্থানীয় হয় পরিবর্তনশীল, অর্থে স্থানীয় 501 00:25:03,530 --> 00:25:05,450 এটি বর্তমান ফাংশন ভিতরে. 502 00:25:05,450 --> 00:25:08,920 এবং তার মান, দৃশ্যত ডিফল্টরূপে, এবং সাজানোর সুবিধামত, 0. 503 00:25:08,920 --> 00:25:10,260 কিন্তু আমি 0 টাইপ না. 504 00:25:10,260 --> 00:25:13,410 যে শুধু হতে হবে তার মুহূর্তে ডিফল্ট মান. 505 00:25:13,410 --> 00:25:15,490 >> তাই আমাকে এগিয়ে যান এবং এখন এই কাজ করতে দিন. 506 00:25:15,490 --> 00:25:18,680 আমাকে এগিয়ে এবং যান উপরের ডান এখানে, আমি আছি 507 00:25:18,680 --> 00:25:20,970 এগিয়ে যান যাচ্ছে এবং এই প্রথম আইকনে ক্লিক করুন, যা 508 00:25:20,970 --> 00:25:25,360 যার উপর পদক্ষেপ মানে লাফালাফি না মানে এটা কিন্তু কোডের এই লাইনের উপরে পইঠা, 509 00:25:25,360 --> 00:25:27,770 পথ বরাবর এটা নির্বাহ. 510 00:25:27,770 --> 00:25:30,710 >> আর এখন, বিজ্ঞপ্তি, আমার প্রম্পট শুধু পরিবর্তন করা হয়েছে. 511 00:25:30,710 --> 00:25:31,380 কেন হল? 512 00:25:31,380 --> 00:25:33,639 আমি debug50 বলেছি, কোড এই লাইন চালানো. 513 00:25:33,639 --> 00:25:34,930 কোড এই লাইন কী কাজ করে? 514 00:25:34,930 --> 00:25:35,960 আমাকে কোন int জন্য অনুরোধ জানানো হবে. 515 00:25:35,960 --> 00:25:36,460 ঠিক আছে. 516 00:25:36,460 --> 00:25:37,400 আমাকে সহযোগিতা করা. 517 00:25:37,400 --> 00:25:41,340 আমাকে এখন এগিয়ে যান এবং টাইপ -1, লিখুন. 518 00:25:41,340 --> 00:25:42,920 এবং এখন লক্ষ্য কি পরিবর্তন হয়েছে. 519 00:25:42,920 --> 00:25:46,060 ডানদিকে, আমার স্থানীয় পরিবর্তনশীল আমি 520 00:25:46,060 --> 00:25:48,200 হচ্ছে -1 এখন যেমন নির্দেশিত হয়. 521 00:25:48,200 --> 00:25:49,810 আর এটা int- এ টাইপ এখনও. 522 00:25:49,810 --> 00:25:53,102 >> এবং খেয়াল করুন, খুব, আমার তথাকথিত স্ট্যাক কল, আমি যেখানে বিরাম হয়নি? 523 00:25:53,102 --> 00:25:54,810 আমরা সম্পর্কে আরো আলোচনা করব ভবিষ্যতে এই. 524 00:25:54,810 --> 00:25:58,620 কিন্তু কল স্ট্যাক শুধু বোঝায় কি ফাংশন গতি বর্তমানে চলছে. 525 00:25:58,620 --> 00:26:00,040 রাইট এখন এটা শুধু মূল ব্যাপার. 526 00:26:00,040 --> 00:26:03,590 আর এখন শুধুমাত্র স্থানীয় পরিবর্তনশীল 1 একটি মান সঙ্গে আমি নেই. 527 00:26:03,590 --> 00:26:09,840 >> আর যখন আমি পরিশেষে এই লাইনের উপরে পইঠা এখানে উপরের দিকের ডান প্রান্তের যে একই আইকন সঙ্গে, 528 00:26:09,840 --> 00:26:11,410 -1 একটি নেতিবাচক পূর্ণসংখ্যা. 529 00:26:11,410 --> 00:26:13,580 এখন এটা যে কোঁকড়া বক্রবন্ধনী ওভার pausing হচ্ছে. 530 00:26:13,580 --> 00:26:14,740 স্বীকার করে নেওয়াই ভালো তার জিনিস না করুক. 531 00:26:14,740 --> 00:26:17,300 আমি যে লাইন, এবং voila উপর পইঠা. 532 00:26:17,300 --> 00:26:20,240 >> তাই না সব যে ভয়ঙ্কর প্রমাণ ও উজ্জ্বল এখনো, 533 00:26:20,240 --> 00:26:23,550 কিন্তু এটা দিয়েছিলেন আমাকে বিরাম এবং যুক্তি দিয়ে চিন্তা 534 00:26:23,550 --> 00:26:24,870 এই প্রোগ্রাম কি করছে. 535 00:26:24,870 --> 00:26:26,890 কিন্তু যে ভ্রান্ত ক্ষেত্রে ছিল না. 536 00:26:26,890 --> 00:26:28,510 নিম্নরূপ এর এই আবার করি. 537 00:26:28,510 --> 00:26:31,340 >> আমি যে ছেদবিন্দু ছেড়ে যাচ্ছি লাল বিন্দু দিয়ে লাইন 8. 538 00:26:31,340 --> 00:26:32,830 আমি debug50 পুন: প্রকাশ করা যাচ্ছে না. 539 00:26:32,830 --> 00:26:34,400 এটি স্বয়ংক্রিয়ভাবে এখানে বিরতি দেওয়া হচ্ছে. 540 00:26:34,400 --> 00:26:37,660 কিন্তু এই সময়, পরিবর্তে এই লাইনের উপরে পদবিন্যাস, 541 00:26:37,660 --> 00:26:42,290 আমাকে আসলে ভিতরে যেতে দিন get_negative_int জিনিসটা, 542 00:26:42,290 --> 00:26:45,530 কেন এটা একটি বৈধ উত্তর হিসাবে 0 মেনে নেওয়ার মতো? 543 00:26:45,530 --> 00:26:47,990 >> তাই ধাপ ওভার ক্লিক পরিবর্তে. 544 00:26:47,990 --> 00:26:50,630 আমি এগিয়ে যেতে চলেছি এবং ঢুকলেই ক্লিক করুন. 545 00:26:50,630 --> 00:26:54,030 এবং যে যে লাইন 8 লক্ষ্য এখন হঠাৎ এখন হাইলাইট 546 00:26:54,030 --> 00:26:56,900 লাইন 17 হয়ে যায়. 547 00:26:56,900 --> 00:26:59,947 >> এখন, এটা যে ডিবাগার নয় লাইন 14 এবং 15 ও 16 এড়ানো হয়েছে. 548 00:26:59,947 --> 00:27:01,780 এটা শুধু কিছুই নেই এর আপনি সেখানে দেখানোর জন্য. 549 00:27:01,780 --> 00:27:04,050 যারা শুধু ভেরিয়েবল ঘোষণা করা হয়, এবং তারপর সেখানে শব্দ করি 550 00:27:04,050 --> 00:27:05,390 এবং তারপর একটি খোলা কোঁকড়া বক্রবন্ধনী. 551 00:27:05,390 --> 00:27:09,227 শুধুমাত্র কার্মিক লাইন যে সরস সত্যিই এই এক এখানে, 17. 552 00:27:09,227 --> 00:27:11,060 এবং যে যেখানে আমরা করেছি স্বয়ংক্রিয়ভাবে বিরতি দেওয়া হয়েছে. 553 00:27:11,060 --> 00:27:13,870 >> তাই printf ( "n.is:") ;, তাই যে এখনও ঘটেনি. 554 00:27:13,870 --> 00:27:18,250 সুতরাং আসুন এগিয়ে যান এবং ওভার স্টেপ ক্লিক করা যাক. 555 00:27:18,250 --> 00:27:20,326 এখন আমার প্রম্পট, প্রকৃতপক্ষে, থেকে পরিবর্তিত ( "এন"). 556 00:27:20,326 --> 00:27:22,450 এখন get_int, আমি যাচ্ছি না মধ্যে পদবিন্যাস বিরক্ত করার জন্য, 557 00:27:22,450 --> 00:27:24,750 কারণ যে ফাংশন ছিল লাইব্রেরী এবং CS50 দ্বারা তৈরি. 558 00:27:24,750 --> 00:27:25,750 এটা সম্ভবতঃ সঠিক. 559 00:27:25,750 --> 00:27:28,440 >> তাই আমি এগিয়ে যান যাচ্ছি এবং সাজানোর এটা দান দ্বারা সহযোগিতা 560 00:27:28,440 --> 00:27:30,590 কোন int, কিন্তু না একটি নেতিবাচক কোন int. 561 00:27:30,590 --> 00:27:32,870 তাই আমাকে এগিয়ে যান এবং 0 চাপুন. 562 00:27:32,870 --> 00:27:39,460 আর এখন কি এখানে 21 লাইন যখন আমি নিচে পেতে? 563 00:27:39,460 --> 00:27:40,890 আমি আবার iterated না থাকেন. 564 00:27:40,890 --> 00:27:43,320 আমি যে লুপে আটকে গেছে বলে মনে হচ্ছে না. 565 00:27:43,320 --> 00:27:45,990 অন্য কথায়, এই হলুদ বার কাছাকাছি যাচ্ছে না রাখা হয়নি, 566 00:27:45,990 --> 00:27:47,130 এবং প্রায়, এবং প্রায়. 567 00:27:47,130 --> 00:27:48,340 >> এখন, কেন এমন হল? 568 00:27:48,340 --> 00:27:49,920 ওয়েল, N, কি এখনই এন? 569 00:27:49,920 --> 00:27:53,280 আমি স্থানীয় তাকান পারেন ডিবাগার ভেরিয়েবল. 570 00:27:53,280 --> 00:27:53,816 n হল 0. 571 00:27:53,816 --> 00:27:55,190 ঠিক আছে, আমার অবস্থা কেমন ছিল? 572 00:27:55,190 --> 00:27:58,700 >> 20-- লাইন 20, ভাল, 0 0 চেয়ে অনেক বেশী. 573 00:27:58,700 --> 00:27:59,500 ওটা সত্যি না. 574 00:27:59,500 --> 00:28:01,020 0 0 চেয়ে বড় নয়. 575 00:28:01,020 --> 00:28:02,820 আর তাই আমি এই কপর্দকশূন্য আউট. 576 00:28:02,820 --> 00:28:06,370 >> তাই যে কেন লাইনে আছেন 21, আমি আসলে অবিরত যদি, 577 00:28:06,370 --> 00:28:10,370 আমি 0 ফিরে যাচ্ছি, এমনকি যদিও আমি 0 প্রত্যাখ্যান করা উচিত 578 00:28:10,370 --> 00:28:12,484 যেমন আসলে নেতিবাচক হচ্ছে না. 579 00:28:12,484 --> 00:28:14,650 সুতরাং এখন, আমি সত্যিই এমন কি ডিবাগার যত্নশীল. 580 00:28:14,650 --> 00:28:16,900 এটা, আমি প্রয়োজন না ফেরার জানেন কি আরও যাচ্ছে. 581 00:28:16,900 --> 00:28:19,233 >> তাই আমি এগিয়ে যান যাচ্ছি এবং শুধু প্লে বাটন ক্লিক করুন, 582 00:28:19,233 --> 00:28:20,240 এবং এই ফিনিস আপ দিন. 583 00:28:20,240 --> 00:28:23,440 এখন, আমি যে উপলব্ধি করেছি আমার বাগ লাইন 20 দৃশ্যত হয়. 584 00:28:23,440 --> 00:28:25,160 যে আমার লজিক্যাল ত্রুটি. 585 00:28:25,160 --> 00:28:28,100 >> তাই আমি চাই না এই পরিবর্তন করতে হবে? 586 00:28:28,100 --> 00:28:32,500 সমস্যা হয়, তাহলে যে আমি নই 0 সংক্রামক, এটি শুধু একটি লজিক্যাল ত্রুটি. 587 00:28:32,500 --> 00:28:35,910 এবং আমি বলতে পারি এন সময় এর চেয়ে বড় বা 0 সমান, 588 00:28:35,910 --> 00:28:38,330 ব্যবহারকারী আবার এবং আবার প্ররোচনা রাখা. 589 00:28:38,330 --> 00:28:41,050 >> সুতরাং, আবার, সহজ ভুল, সম্ভবত এমনকি সুস্পষ্ট যখন আপনি আমাকে দেখলেন 590 00:28:41,050 --> 00:28:42,410 এটা মাত্র কয়েক মিনিট আগে, অনুগ্রহ করে লিখুন. 591 00:28:42,410 --> 00:28:44,570 কিন্তু takeaway এখানে হয় ডিবাগ 50 যে, 592 00:28:44,570 --> 00:28:46,850 এবং ডিবাগিং সঙ্গে সফ্টওয়্যার আরো সাধারণভাবে, 593 00:28:46,850 --> 00:28:51,370 আপনি এই নতুন পাওয়া ক্ষমতা আছে আপনার নিজস্ব কোড দিয়ে হেঁটে যাই, চেহারা 594 00:28:51,370 --> 00:28:55,590 ডানহাতে ওটা প্যানেলের মাধ্যমে কি আপনার ভেরিয়েবল মান. 595 00:28:55,590 --> 00:28:57,700 সুতরাং আপনি অগত্যা না কিছু ব্যবহার করতে হবে 596 00:28:57,700 --> 00:29:00,630 মত আপনি ঐ মান প্রিন্ট করতে eprintf. 597 00:29:00,630 --> 00:29:04,430 আপনি আসলে তাদের দেখতে পারেন চাক্ষুষরূপে পর্দায়. 598 00:29:04,430 --> 00:29:08,920 >> এখন, এই বাইরে, এটি এর মূল্য সেখানে আরেকটি কৌশল যে যে 599 00:29:08,920 --> 00:29:09,890 আসলে সুপার সাধারণ. 600 00:29:09,890 --> 00:29:13,120 আর আপনি হয়তো ভাবতে পারেন যে কেন এই সামান্য এখানে লোক মঞ্চে বসা হয়েছে. 601 00:29:13,120 --> 00:29:16,490 তাই সেখানে এই টেকনিক, সাধারণভাবে রাবার হাঁস ডিবাগিং নামে পরিচিত, 602 00:29:16,490 --> 00:29:18,786 যা সত্যিই শুধু একটি নয় সত্য উইল 603 00:29:18,786 --> 00:29:20,660 যে প্রায়ই যখন প্রোগ্রামার কোড লেখা হয়, 604 00:29:20,660 --> 00:29:22,650 তারা অগত্যা নও অন্যদের সঙ্গে সহযোগী, 605 00:29:22,650 --> 00:29:24,030 অথবা একটি ভাগ পরিবেশে কাজ. 606 00:29:24,030 --> 00:29:25,050 >> তারা বাড়ীতে সাজানোর করছি. 607 00:29:25,050 --> 00:29:25,910 হয়তো এটা রাতে দেরি হয়ে গেছে. 608 00:29:25,910 --> 00:29:28,190 তারা চিন্তা করার চেষ্টা করছি তাদের কোডে কিছু বাগ আউট. 609 00:29:28,190 --> 00:29:29,330 আর তারা শুধু এটা এইজন্য করছি না. 610 00:29:29,330 --> 00:29:30,329 >> আর যত প্রকার রুমমেটের. 611 00:29:30,329 --> 00:29:31,250 কোন মেমরি হয়. 612 00:29:31,250 --> 00:29:32,680 আশেপাশে কাউকেই সিএ হয়. 613 00:29:32,680 --> 00:29:36,440 সকল তারা তাদের বালুচর আছে এই সামান্য রাবার আদরের সন্বোধনবিশেষ হয়. 614 00:29:36,440 --> 00:29:39,030 >> তাই রাবার হাঁস ডিবাগিং শুধু এই আমন্ত্রণ 615 00:29:39,030 --> 00:29:42,780 যেমন নিরীহ কিছু মনে করতে এই যেমন একটি বাস্তব জীব হিসাবে, 616 00:29:42,780 --> 00:29:46,940 এবং আসলে আপনার কোড দিয়ে হেটে শব্দগতভাবে এই জড় বস্তু. 617 00:29:46,940 --> 00:29:49,230 সুতরাং, উদাহরণস্বরূপ, যদি এই আমার দৃষ্টান্ত এখানে 618 00:29:49,230 --> 00:29:52,470 এবং যে এর আগে প্রত্যাহার সমস্যা এই ছিল, 619 00:29:52,470 --> 00:29:58,140 যদি আমি এই কোড প্রথম লাইন মুছে দিন, এবং আমি এগিয়ে যান এবং আবার বগী 0 করতে, 620 00:29:58,140 --> 00:30:01,220 পুনরাহ্বান যে আমি এই ছিল এখানে ত্রুটির বার্তা. 621 00:30:01,220 --> 00:30:05,997 তাই ধারণা এখানে, যদিও আমি হাস্যকর মুহূর্তে মনে সর্বজনীনভাবে করছেন, 622 00:30:05,997 --> 00:30:06,580 যে ত্রুটি. 623 00:30:06,580 --> 00:30:10,910 >> ঠিক আছে, তাই আমার সমস্যা হল আমি করেছি পরোক্ষভাবে একটি লাইব্রেরি ফাংশন ঘোষণা. 624 00:30:10,910 --> 00:30:12,610 আর যে লাইব্রেরি ফাংশন printf. 625 00:30:12,610 --> 00:30:15,290 Declare-- ঠিক আছে, ঘোষণা আমাকে এগুলির নমুনা এর কথা মনে করিয়ে দেয়. 626 00:30:15,290 --> 00:30:18,930 >> তার মানে আমি আসলে প্রয়োজন আগাম কম্পাইলার বলা কি 627 00:30:18,930 --> 00:30:19,980 ফাংশন মনে. 628 00:30:19,980 --> 00:30:20,930 একটি মিনিট অপেক্ষা করুন. 629 00:30:20,930 --> 00:30:23,580 আমি প্রমিত io.h. হয়নি 630 00:30:23,580 --> 00:30:24,530 আপনাকে অনেক ধন্যবাদ. 631 00:30:24,530 --> 00:30:27,330 >> তাই শুধু আপনি র এই প্রক্রিয়া আসলে একটি হাঁস আছে প্রয়োজন হবে না. 632 00:30:27,330 --> 00:30:29,819 কিন্তু হেঁটে এই ধারণা নিজেকে আপনার নিজস্ব কোড মাধ্যমে 633 00:30:29,819 --> 00:30:31,610 তাই আপনি এমনকি শুনতে যে নিজেকে, যাতে আপনি 634 00:30:31,610 --> 00:30:35,620 আপনার নিজের মধ্যে অর্থ উপলব্ধি মন্তব্য সাধারণভাবে ধারণা. 635 00:30:35,620 --> 00:30:38,910 >> এবং, সম্ভবত আরও যুক্তি, না তাই যে এক কিন্তু আরো জড়িত সঙ্গে অনেক 636 00:30:38,910 --> 00:30:44,220 উদাহরণস্বরূপ আমরা শুধু বগী 3.c করেছিল, আপনি এটি দিয়ে নিজের জীবনযাপন 637 00:30:44,220 --> 00:30:45,310 নিম্নরূপ. 638 00:30:45,310 --> 00:30:49,190 তাই সব ঠিক আছে, রাবার আদরের সন্বোধনবিশেষ, DDB, যদি আপনি হবে. 639 00:30:49,190 --> 00:30:52,350 এখানে আমরা আমার প্রধান ফাংশন আছে, আমি নেতিবাচক int- পেতে আহ্বান করছি. 640 00:30:52,350 --> 00:30:54,660 >> আমি ফেরত মান পাচ্ছি. 641 00:30:54,660 --> 00:31:00,410 আমি বাম দিকে এটা সংরক্ষণকারী করছি একটি পরিবর্তনশীল লাইন 8 আমি নামক. 642 00:31:00,410 --> 00:31:02,380 ঠিক আছে, কিন্তু অপেক্ষা করুন, কীভাবে যে মান পেতে? 643 00:31:02,380 --> 00:31:04,130 আমার লাইন 12 ফাংশন তাকান. 644 00:31:04,130 --> 00:31:05,760 >> লাইন 12 সালে, আমরা নেতিবাচক int- পেতে আছে. 645 00:31:05,760 --> 00:31:08,190 কোনো ইনপুট লাগবে না, কোন int ওকে ফেরত. 646 00:31:08,190 --> 00:31:10,929 আমি লাইন 14 একটি পরিবর্তনশীল n উপর ঘোষণা. 647 00:31:10,929 --> 00:31:12,220 এটি একটি পূর্ণসংখ্যা সংরক্ষণ করে যাচ্ছে. 648 00:31:12,220 --> 00:31:13,760 এটাই সেটা যা আমি চাই. 649 00:31:13,760 --> 00:31:18,480 >> সুতরাং নিম্নলিখিত যখন n হচ্ছে ÑÑ যাক আমাকে পূর্বাবস্থায় ফিরিয়ে আনতে কি ফিক্স আমি ইতিমধ্যে প্রণীত. 650 00:31:18,480 --> 00:31:22,710 সুতরাং যখন n তার চেয়ে অনেক বেশী 0, প্রিন্ট আউট এন, ঠিক আছে. 651 00:31:22,710 --> 00:31:25,170 তারপর কল কোন int n মধ্যে সংরক্ষণ করতে. 652 00:31:25,170 --> 00:31:30,160 তারপর পরীক্ষা, যদি n হল 0 এন not-- সেখানে এটা হয়. 653 00:31:30,160 --> 00:31:31,910 সুতরাং, আবার, আপনি না প্রকৃত হাঁসের প্রয়োজন. 654 00:31:31,910 --> 00:31:35,650 কিন্তু শুধু নিজেকে দিয়ে হাঁটা একজন বুদ্ধিজীবী ব্যায়াম হিসেবে আপনার কোড 655 00:31:35,650 --> 00:31:37,720 প্রায়ই আপনাকে সাহায্য করবে বুঝতে কি ঘটছে, 656 00:31:37,720 --> 00:31:41,170 যেমন শুধু কিছু করছেন উল্টোদিকে এই মত, পর্দায় চোখে পড়ার মত, 657 00:31:41,170 --> 00:31:43,720 এবং নিজেকে মাধ্যমে কথা না এটা, যা সত্যি নয় 658 00:31:43,720 --> 00:31:46,270 প্রায় একটি কার্যকর কৌশল হিসেবে. 659 00:31:46,270 --> 00:31:48,620 তাই সেখানে যদি আপনি এটি আছে, একটি বিভিন্ন কৌশল সংখ্যা 660 00:31:48,620 --> 00:31:52,102 আসলে আপনার কোড ডিবাগ করার জন্য এবং ত্রুটি লক্ষ্য, যা সব 661 00:31:52,102 --> 00:31:54,810 আপনার টুলকিট টুলস হওয়া উচিত যে আপনি নিশুতি নও তাই, 662 00:31:54,810 --> 00:31:57,660 বিশেষত, আপনি ডাইনিং আছেন হল, বা অফিসে ঘন্টা এ, 663 00:31:57,660 --> 00:32:00,368 বিরুদ্ধে আপনার মাথা banging প্রাচীর, কিছু সমস্যা সমাধানের চেষ্টা করা. 664 00:32:00,368 --> 00:32:02,020 বুঝতে সফটওয়্যার টুলস আছে. 665 00:32:02,020 --> 00:32:03,720 সেখানে রাবার হাঁস সরঞ্জাম আছে. 666 00:32:03,720 --> 00:32:09,630 এবং সেখানে একটি পুরো স্টাফদের একটি হাত ধার অপেক্ষা সমর্থন. 667 00:32:09,630 --> 00:32:13,120 >> সুতরাং এখন, সমস্যা উপর একটি শব্দ সেট, এবং আমরা আপনাকে কি আশা করছেন 668 00:32:13,120 --> 00:32:15,620 তাদের মধ্য থেকে বের পেতে, এবং কিভাবে আমরা মূল্যায়নের সম্পর্কে যেতে. 669 00:32:15,620 --> 00:32:17,680 প্রতি কোর্স এর পাঠ্যক্রম, CS50 এর সমস্যা সেট 670 00:32:17,680 --> 00:32:22,320 চারটি প্রধান অক্ষ উপর মূল্যায়ন করা হয়, তাই সুযোগ speak-- করতে, শুদ্ধতা, নকশা, 671 00:32:22,320 --> 00:32:23,060 এবং শৈলী. 672 00:32:23,060 --> 00:32:25,910 আর সুযোগ মাত্র কত বোঝায় টুকরা আপনি বন্ধ কামড় আছে? 673 00:32:25,910 --> 00:32:28,080 আপনি কিভাবে একটি সমস্যা অনেক চেষ্টা করেছি? 674 00:32:28,080 --> 00:32:30,110 প্রচেষ্টার কি স্তর আপনি প্রকাশ করেছি? 675 00:32:30,110 --> 00:32:35,750 >> শুদ্ধি, হিসাবে প্রোগ্রাম কাজ করে এটি CS50 স্পেসিফিকেশন অনুযায়ী অনুমিত এর 676 00:32:35,750 --> 00:32:38,640 যখন আপনি নির্দিষ্ট ইনপুট প্রদান অথবা নির্দিষ্ট আউটপুট ফিরে আসছে? 677 00:32:38,640 --> 00:32:41,130 ডিজাইন তাদের অধিকাংশই ইতিবাচক. 678 00:32:41,130 --> 00:32:43,360 আর এটা যে এক হবে দীর্ঘতম নিতে শিখতে 679 00:32:43,360 --> 00:32:47,220 এবং দীর্ঘতম শেখান, এ এতদূর এটি boils নিচে যেমন, 680 00:32:47,220 --> 00:32:49,530 কিভাবে ভাল লেখা আপনার কোড? 681 00:32:49,530 --> 00:32:52,920 >> এটা এক জিনিস শুধু সঠিক মুদ্রণ করার আউটপুট বা ডান মান প্রত্যাবর্তন. 682 00:32:52,920 --> 00:32:55,400 কিন্তু যদি আপনি শব্দটি করছেন দক্ষতার সঙ্গে যতটা সম্ভব? 683 00:32:55,400 --> 00:32:58,210 আপনি এটা ডিভাইড করছেন এবং জয়, বা বাইনারি 684 00:32:58,210 --> 00:33:01,500 অনুসন্ধান হিসাবে আমরা শীঘ্রই দেখতে পাবেন যে আমরা করেনি দুই সপ্তাহ আগে টেলিফোন বইয়ের সঙ্গে? 685 00:33:01,500 --> 00:33:04,670 সেখানে সবকিছু ভাল উপায় আছে সমস্যা আপনি বর্তমানে এখানে আছে চেয়ে? 686 00:33:04,670 --> 00:33:06,380 যে ভাল ডিজাইন জন্য একটি সুযোগ. 687 00:33:06,380 --> 00:33:08,530 >> তারপর কিভাবে শৈলী প্রশংসনীয় আপনার কোড? 688 00:33:08,530 --> 00:33:12,370 আপনি লক্ষ্য করবেন যে আমি বেশ আছি আমার কোড সংভৃত সম্পর্কে বিশেষ করে, 689 00:33:12,370 --> 00:33:15,300 এবং নিশ্চিত আমার ভেরিয়েবল উপার্জন যুক্তিসঙ্গতভাবে নামকরণ করা হয়. এন, 690 00:33:15,300 --> 00:33:19,660 অনতিকালমধ্যে, একটি জন্য একটি ভাল নাম সংখ্যা, একটি কাউন্টিং পূর্ণসংখ্যা জন্য আমি, 691 00:33:19,660 --> 00:33:20,727 একটি স্ট্রিং জন্য গুলি. 692 00:33:20,727 --> 00:33:22,560 আর আমরা আর থাকতে পারে ভেরিয়েবলের নাম শৈলী. 693 00:33:22,560 --> 00:33:25,500 স্টাইল ঠিক কিভাবে ভাল হয় আপনার কোড লাগছে? 694 00:33:25,500 --> 00:33:26,600 এবং এটা কিভাবে পাঠযোগ্য? 695 00:33:26,600 --> 00:33:29,650 >> এবং সময়ের সাথে, কি আপনার TAS এবং টিএফএস কোর্সে করতে হবে 696 00:33:29,650 --> 00:33:31,870 যে সঙ্গে আপনি প্রদান করা হয় গুণগত প্রতিক্রিয়া ধরনের 697 00:33:31,870 --> 00:33:34,330 যাতে আপনি ভাল পেতে যারা বিভিন্ন দিক. 698 00:33:34,330 --> 00:33:37,510 আর কীভাবে আমরা পদ এই অক্ষ প্রতিটি মূল্যায়ন, 699 00:33:37,510 --> 00:33:40,080 এটা খুব অল্প দিয়ে সাধারণত এর বালতি যাতে আপনি, সাধারণত, 700 00:33:40,080 --> 00:33:41,680 আপনি কিভাবে ভাল করছেন একটা ধারনা পেতে. 701 00:33:41,680 --> 00:33:45,680 এবং প্রকৃতপক্ষে, আপনি একটি স্কোর গ্রহণ করে ঐ axes-- শুদ্ধি, নকশা কোন 702 00:33:45,680 --> 00:33:49,659 এবং শৈলী especially-- যে সংখ্যা সাধারণত 1 এবং 5 এর মধ্যে হতে হবে. 703 00:33:49,659 --> 00:33:52,450 আর, আক্ষরিক, আপনি পেয়ে থাকেন তাহলে সেমিস্টারের শুরুতে 3 এর, 704 00:33:52,450 --> 00:33:53,977 এই একটি খুব ভাল জিনিস. 705 00:33:53,977 --> 00:33:55,810 এর অর্থ হচ্ছে এটা এখনও উন্নতির জন্য রুম, 706 00:33:55,810 --> 00:33:58,490 আপনি আশা করবে, যা প্রথমবার জন্য একটি বর্গ গ্রহণ. 707 00:33:58,490 --> 00:34:01,820 আছে আশা সিলিং কিছু বিট যা তোমার কাছে পৌঁছানোর উচ্চাকাঙ্ক্ষী করছি. 708 00:34:01,820 --> 00:34:03,970 তাই 3 এর উপর পাওয়ার নিকটতম টুকরা, 709 00:34:03,970 --> 00:34:06,550 যদি না কিছু 2 এবং 4 এর, প্রকৃতপক্ষে, একটি ভাল জিনিস. 710 00:34:06,550 --> 00:34:08,880 এটা ভাল পরিসীমা ভেতরে, ভাল প্রত্যাশার মধ্যে. 711 00:34:08,880 --> 00:34:11,421 >> আর যদি আপনার মন ধাবমান হয়, অপেক্ষা করুন এক মিনিট, তিন থেকে পাঁচ বাইরে. 712 00:34:11,421 --> 00:34:12,620 যে সত্যিই 10 একটি 6 বাহিরে. 713 00:34:12,620 --> 00:34:13,560 যে 60% এর. 714 00:34:13,560 --> 00:34:14,830 আমার ঈশ্বর, একটি এফ যে 715 00:34:14,830 --> 00:34:15,870 >> এটা নয়. 716 00:34:15,870 --> 00:34:17,600 এটা, না, আসলে যে. 717 00:34:17,600 --> 00:34:22,710 বরঞ্চ, এটি উন্নত করতে একটি সুযোগ সেমিস্টারে অবশ্যই বেশী. 718 00:34:22,710 --> 00:34:25,580 আর তুমি কিছু পেয়ে থাকেন তাহলে poors, এই একটি সুযোগ আছে 719 00:34:25,580 --> 00:34:29,199 অফিসে ঘন্টা সদ্ব্যবহার করা, অবশ্যই বিভাগে এবং অন্যান্য সম্পদ. 720 00:34:29,199 --> 00:34:32,840 >> শ্রেষ্ঠ একটি সুযোগ, সত্যিই, হয় আপনি ঠিক কতদূর করেছি গর্বিত হতে 721 00:34:32,840 --> 00:34:34,520 সেমেস্ত্র অবশ্যই উপর আসা. 722 00:34:34,520 --> 00:34:38,199 তাই বুঝতে পারি না, যদি কিছুই অন্য তিনটি ভাল. 723 00:34:38,199 --> 00:34:40,179 এবং এটা সময়ের বৃদ্ধির জন্য রুম অনুমতি দেয়. 724 00:34:40,179 --> 00:34:43,090 >> কিভাবে সেই অক্ষ আছেন ভরযুক্ত, বাস্তবানুগভাবে তুমি 725 00:34:43,090 --> 00:34:46,745 পেয়ে আপনার অধিকাংশ সময় ব্যয় করা যাচ্ছে কাজ করার জন্য কিছু সঠিকভাবে ঘাঁটান. 726 00:34:46,745 --> 00:34:49,120 তাই শুদ্ধতা থাকে সঙ্গে হিসাবে, সবচেয়ে পরিমেয় করা 727 00:34:49,120 --> 00:34:51,360 তিনজনের এই বর্ধক ফ্যাক্টর. 728 00:34:51,360 --> 00:34:54,659 ডিজাইন, গুরুত্বপূর্ণ কিন্তু কিছু যে আপনি অগত্যা না 729 00:34:54,659 --> 00:34:58,220 যারা ঘন্টার সব খরচ জিনিস ঠিক কাজ পেতে চেষ্টা. 730 00:34:58,220 --> 00:35:00,019 >> আর তাই এটি ভরযুক্ত হচ্ছে একটু বেশি স্বল্প. 731 00:35:00,019 --> 00:35:01,560 এবং তারপর শৈলী অন্তত পরিমেয় হয়. 732 00:35:01,560 --> 00:35:03,710 এমনকি এটা কোন কম, যদিও মৌলিকভাবে গুরুত্বপূর্ণ, 733 00:35:03,710 --> 00:35:05,990 এটা ঠিক, সম্ভবত, সবচেয়ে সহজ পদ্ধিতি হল জিনিস ঠিক করতে, 734 00:35:05,990 --> 00:35:08,440 উদাহরণ আমরা অনুকারী বক্তৃতা এবং অধ্যায় না, 735 00:35:08,440 --> 00:35:11,080 কিছু চমত্কারভাবে সঙ্গে সংভৃত, এবং মন্তব্য, 736 00:35:11,080 --> 00:35:14,320 এবং তাই ঘোষণা সহজতম মধ্যে হয় কিছু না এবং সঠিকভাবে নির্ণয় করা. 737 00:35:14,320 --> 00:35:16,960 তাই যেমন, উপলব্ধি যে ঐ পয়েন্ট 738 00:35:16,960 --> 00:35:19,000 যে উপলব্ধি করতে অপেক্ষাকৃত সহজ হয়. 739 00:35:19,000 --> 00:35:22,360 >> এবং এখন একটি শব্দ উপর একাডেমিক সততা আপাততঃ. 740 00:35:22,360 --> 00:35:25,150 তাই অবশ্যই এর প্রতি পাঠ্যক্রম, আপনি দেখতে হবে 741 00:35:25,150 --> 00:35:27,630 অবশ্যই আছে যে বেশ একটি এই প্রায় ভাষা বিট. 742 00:35:27,630 --> 00:35:31,380 এবং অবশ্যই সমস্যা লাগে বেশ গুরুত্বের সঙ্গে একাডেমিক সততা. 743 00:35:31,380 --> 00:35:33,450 >> আমরা পার্থক্য আছে, ভাল বা খারাপ, 744 00:35:33,450 --> 00:35:36,570 এর পাঠালেন প্রতি বছর অধিক সংখ্যক শাস্তিমূলক ব্যবস্থা জন্য ছাত্র 745 00:35:36,570 --> 00:35:39,670 অধিকাংশ অন্য কোন তুলনায় অবশ্যই, যে আমি সচেতন আছি. 746 00:35:39,670 --> 00:35:42,580 এই অগত্যা নয় আসলে পরিচায়ক 747 00:35:42,580 --> 00:35:46,340 সি এস ছাত্র, বা CS50 ছাত্র, আছে কোন কম আপনার সহপাঠীদের চেয়ে সৎ. 748 00:35:46,340 --> 00:35:49,090 কিন্তু বাস্তবতা যে এই বিশ্বের, বৈদ্যুতিন, আমরা শুধু 749 00:35:49,090 --> 00:35:50,990 প্রযুক্তি আছে এই detecting এর মানে. 750 00:35:50,990 --> 00:35:53,360 >> এটা আমাদের কাছে খুবই জরুরী শ্রেণী জুড়ে সততা 751 00:35:53,360 --> 00:35:58,550 এই ডিটেক্ট করে এবং বাড়াতে যে আমরা কি বিষয়টি যখন আমরা জিনিস দেখতে. 752 00:35:58,550 --> 00:36:01,980 আর মাত্র একটি ছবি অঙ্কন করা, এবং সত্যিই এই বেসিনে মত কিছু সাহায্য করার জন্য, 753 00:36:01,980 --> 00:36:04,600 এগুলোর সংখ্যা গত 10 বছর ধরে ছাত্র 754 00:36:04,600 --> 00:36:07,610 কিছু জড়িত করা হয়েছে যে একাডেমিক সততা যেমন সমস্যা, 755 00:36:07,610 --> 00:36:10,990 কিছু 32 ছাত্রদের সঙ্গে পতনের 2015, থেকে যা 756 00:36:10,990 --> 00:36:13,760 বলতে চাই যে আমরা নিতে না হয় ব্যাপার অত্যন্ত গুরুত্ব সহকারে. 757 00:36:13,760 --> 00:36:18,380 এবং, পরিণামে, এই সংখ্যার রচনা, সম্প্রতি, প্রায় 3%, 4% বা তাই 758 00:36:18,380 --> 00:36:19,120 ক্লাসের. 759 00:36:19,120 --> 00:36:25,220 >> শিক্ষার্থীদের সুপার সংখ্যাগরিষ্ঠ জন্য তাই এটা মনে হয় যে লাইন পরিষ্কার হয়. 760 00:36:25,220 --> 00:36:27,940 কিন্তু এই লক্ষ্য রাখুন মনে করবেন না, বিশেষ করে শেষের দিকে 761 00:36:27,940 --> 00:36:32,080 রাতে যখন সঙ্গে সংগ্রামরত একটি সমস্যা সেটে কিছু সমাধান, 762 00:36:32,080 --> 00:36:34,830 সেখানে মেকানিজম আছে নিজেকে পেয়ে ভাল 763 00:36:34,830 --> 00:36:37,870 তোমার চেয়ে সমর্থন প্রতাপ মনে হয়, এমনকি যে বেগে. 764 00:36:37,870 --> 00:36:40,514 বুঝতে পারি যখন আমরা গ্রহণ করে ছাত্র জমা, আমরা পার 765 00:36:40,514 --> 00:36:43,430 এই বছর যে জমা সুবিধাগুলি তুলনা করুন প্রত্যেক জমা গত বছর বিরুদ্ধে, 766 00:36:43,430 --> 00:36:47,590 2007 থেকে প্রত্যেক জমা বিরুদ্ধে, এবং যেহেতু, এ খুঁজছেন পাশাপাশি, 767 00:36:47,590 --> 00:36:49,931 কোর্ডের অনলাইন, আলোচনা ফোরাম, কাজের সাইট. 768 00:36:49,931 --> 00:36:51,806 এবং আমরা এই উল্লেখ, সত্যিই, অনুরোধে জন্য সব 769 00:36:51,806 --> 00:36:56,040 পূর্ণ প্রকাশ, যে যদি অন্য কেউ এটা অনলাইন খুঁজে পেতে পারেন, 770 00:36:56,040 --> 00:36:57,880 অবশ্যই, তাই আমরা অবশ্যই করতে পারেন. 771 00:36:57,880 --> 00:37:00,100 কিন্তু, সত্যিই, আত্মা অবশ্যই boils নিচে 772 00:37:00,100 --> 00:37:01,650 সিলেবাসে এই অনুচ্ছেদের. 773 00:37:01,650 --> 00:37:03,670 এটা সত্যিই ঠিক যুক্তিযুক্ত হতে হয়. 774 00:37:03,670 --> 00:37:06,680 >> আর যে ব্যাপারে বিস্তারিত আমরা ছিল যদি শুধুমাত্র একটি বিট আরো ভাষার সাথে, 775 00:37:06,680 --> 00:37:09,770 বুঝতে পারি যে সব সারাংশ কাজ যে আপনি এই কোর্সের জন্য জমা 776 00:37:09,770 --> 00:37:10,954 আপনার নিজের হতে হবে. 777 00:37:10,954 --> 00:37:13,870 কিন্তু যে মধ্যে, সেখানে অবশ্যই হয় সুযোগ, এবং অনুপ্রেরণা, 778 00:37:13,870 --> 00:37:17,300 এবং বাঁক মধ্যে প্রাতিষ্ঠানিক মান নিজেকে others--, টিএফএস, সি এ এস, 779 00:37:17,300 --> 00:37:20,760 TAS, এবং, ক্লাসে অন্যদের সমর্থনের জন্য, একা বন্ধুর দিন 780 00:37:20,760 --> 00:37:23,547 এবং রুমমেট কে চর্চিত হয়েছে সি এস এবং প্রোগ্রামিং সামনে. 781 00:37:23,547 --> 00:37:25,130 তাই সেখানে যে জন্য একটি ভাতা হয়. 782 00:37:25,130 --> 00:37:28,180 আর চলতি সাধারণ নিয়ম আপাততঃ যখন সাহায্যের জন্য জিজ্ঞাসা করা হয়, 783 00:37:28,180 --> 00:37:31,470 আপনি অন্যদের আপনার কোড দেখাতে পারে, কিন্তু তুমিও দেখতে পারে না. 784 00:37:31,470 --> 00:37:34,880 তাই আপনি যদি অফিস সময়ে করছি এমনকি যদি, অথবা ডি হল, বা অন্য কোথাও 785 00:37:34,880 --> 00:37:37,450 কিছু টুকরা সেটে কাজ, একটি বন্ধু, পাশাপাশি কাজ যা 786 00:37:37,450 --> 00:37:40,160 এ, সম্পূর্ণই জরিমানা দিন আপনার কাজ শেষ 787 00:37:40,160 --> 00:37:43,034 পরিণামে প্রতিটি অন্তর্গত উচিত আপনি যথাক্রমে, এবং না 788 00:37:43,034 --> 00:37:45,700 কিছু স্ক্রিন প্রচেষ্টা হতে, চূড়ান্ত প্রকল্প যেখানে ছাড়া 789 00:37:45,700 --> 00:37:47,410 এটি অনুমোদিত এবং উৎসাহিত হচ্ছে. 790 00:37:47,410 --> 00:37:49,830 >> বুঝতে পারছি আপনি যদি যে কিছু সঙ্গে সংগ্রামরত 791 00:37:49,830 --> 00:37:52,520 এবং আপনার বন্ধু ঠিক এরকম তারপর এই সময়ে ভালো হবে বলে আপনি, 792 00:37:52,520 --> 00:37:55,130 বা তোমার চেয়ে যে সমস্যা ভালো, অথবা একটি সামান্য অধিকতর তোমার চেয়ে এগিয়ে, 793 00:37:55,130 --> 00:37:57,330 এটি চালু করতে সম্পূর্ণভাবে যৌক্তিক আপনার বন্ধু এবং, বলেছিলাম, 794 00:37:57,330 --> 00:38:00,480 আপনি এখানে আমার কোড দিকে তাকিয়ে মন খারাপ করি, সাহায্য আমাকে খুজো কি আমার বিষয়? 795 00:38:00,480 --> 00:38:03,760 এবং, আশা, এ প্রাতিষ্ঠানিক মান স্বার্থে 796 00:38:03,760 --> 00:38:07,040 যে বন্ধু না শুধু আছে বলে, ওহ, এই না, বরং, 797 00:38:07,040 --> 00:38:09,917 কি আপনি লাইনে অনুপস্থিত হয় 6, বা যে ভালো কিছু? 798 00:38:09,917 --> 00:38:12,000 কিন্তু সমাধান নয় আপনি পাশে বন্ধুর জন্য 799 00:38:12,000 --> 00:38:15,617 বলতে, উহু, ভাল, এখানে, আমাকে টেনে তুলবো এই পর্যন্ত, আর তোমাদের জন্য আমার সমাধান দেন. 800 00:38:15,617 --> 00:38:16,450 সুতরাং যে লাইন. 801 00:38:16,450 --> 00:38:18,670 আপনি আপনার কোড প্রদর্শন অন্যদের, কিন্তু তুমি না 802 00:38:18,670 --> 00:38:22,350 তাহাদেরই দেখতে, অন্যান্য বিষয় অবশ্যই এর সিলেবাসে সীমাবদ্ধতা. 803 00:38:22,350 --> 00:38:24,760 >> তাই মন এই রেখো খেদ দফা তথাকথিত 804 00:38:24,760 --> 00:38:27,560 অবশ্যই এর পাঠ্যসূচির পাশাপাশি, যে আপনি কিছু আইন কমিট যদি যে 805 00:38:27,560 --> 00:38:30,476 যুক্তিসঙ্গত নয়, কিন্তু এটা আনতে অবশ্যই এর মাথা মনোযোগ 806 00:38:30,476 --> 00:38:34,240 72 ঘন্টার মধ্যে, অবশ্যই স্থানীয় নিষেধাজ্ঞা আরোপ করতে পারে যে 807 00:38:34,240 --> 00:38:37,380 একটি অসন্তোষজনক অন্তর্ভুক্ত হতে পারে বা কাজ জমা জন্য ব্যর্থ গ্রেড. 808 00:38:37,380 --> 00:38:41,410 তবে অবশ্যই পড়ুন করা হবে না আরও শাস্তিমূলক ব্যবস্থা জন্য কোন ব্যাপার, 809 00:38:41,410 --> 00:38:43,010 পুনরাবৃত্তি কাজ এর ক্ষেত্রে ছাড়া. 810 00:38:43,010 --> 00:38:46,632 অন্য কথায়, কিছু করতে আপনি কি যদি মূঢ়, বিশেষত নিশুতি, সিদ্ধান্ত 811 00:38:46,632 --> 00:38:49,340 যে পরদিন সকালে বা দুদিন পরে, আপনি জেগে ওঠা এবং বুঝতে, 812 00:38:49,340 --> 00:38:50,870 আমি কি ভাবছিলাম? 813 00:38:50,870 --> 00:38:53,890 আপনি CS50 না একটি নালী আছে যে সমস্যাটি সমাধানের জন্য 814 00:38:53,890 --> 00:38:57,170 এবং সেই অনুযায়ী owning, যাতে আমরা আপনি অর্ধেক পূরণ এবং মোকাবেলা করতে হবে 815 00:38:57,170 --> 00:39:01,500 এটা একটি ব্যাপার সঙ্গে যে উভয় শিক্ষাগত এবং আপনার জন্য মূল্যবান, 816 00:39:01,500 --> 00:39:04,200 কিন্তু এখনও কিছু উপায় শাস্তিমূলক. 817 00:39:04,200 --> 00:39:08,590 আর এখন, প্রান্ত বন্ধ নেওয়া, এই. 818 00:39:08,590 --> 00:39:10,570 >> [ভিডিও প্লেব্যাক] 819 00:39:10,570 --> 00:39:13,540 >> [সঙ্গীত বাজাচ্ছি] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [END টি প্লেব্যাক] 822 00:39:58,866 --> 00:40:00,490 ডেভিড জে MALAN: ঠিক আছে, আমরা ফিরে এসেছি. 823 00:40:00,490 --> 00:40:03,680 আর এখন আমরা এক সময়ে দেখুন আমাদের বাস্তব জগতে ডোমেইনের প্রথম 824 00:40:03,680 --> 00:40:08,720 CS50 মধ্যে, ক্রিপ্টোগ্রাফি শিল্প, প্রেরণ এবং গ্রহণ শিল্প 825 00:40:08,720 --> 00:40:11,840 গোপন বার্তা, এনক্রিপ্ট করা বার্তা যদি আপনি হবে, 826 00:40:11,840 --> 00:40:17,060 যে শুধুমাত্র আপনি পাঠোদ্ধার করা যেতে পারে কিছু মূল উপাদান প্রেরক আছে 827 00:40:17,060 --> 00:40:18,030 যেমন. 828 00:40:18,030 --> 00:40:22,120 তাই এই উদ্বুদ্ধকরণ আমরা নেব একটি এখানে এই জিনিস তাকান, 829 00:40:22,120 --> 00:40:26,750 যা একটি উদাহরণ গোপন সঙ্কেতমোচক রিং যে 830 00:40:26,750 --> 00:40:34,042 অর্ডার জিনিসটা ব্যবহার করা যেতে পারে কি একটি গোপন বার্তা আসলে. 831 00:40:34,042 --> 00:40:35,750 বস্তুত, ফিরে গ্রেড স্কুলে প্রতিদিন, 832 00:40:35,750 --> 00:40:38,787 আপনি যদি কখনও গোপন বার্তা পাঠানো কিছু বন্ধু বা ক্লাসে কিছু ক্রাশ, 833 00:40:38,787 --> 00:40:40,620 আপনি মনে হতে পারে আপনি চালাক হওয়ার 834 00:40:40,620 --> 00:40:46,530 কাগজ বদলানোর আপনার টুকরা উপর দ্বারা, মত, ক এবং খ গ, ও সি ডি, 835 00:40:46,530 --> 00:40:47,590 এবং তাই ঘোষণা. 836 00:40:47,590 --> 00:40:50,300 কিন্তু আপনি আসলে এনক্রিপ্ট হয়েছে আপনার তথ্য, এমনকি 837 00:40:50,300 --> 00:40:53,300 যদি এটি একটি সামান্য তুচ্ছ ছিল, ছিল না যে কঠিন শিক্ষক উপলব্ধি করার জন্য, 838 00:40:53,300 --> 00:40:55,675 ভাল, আপনি শুধু পরিবর্তন A ও C বি খ, 839 00:40:55,675 --> 00:40:57,550 আপনি আসলে জিনিসটা কি বার্তা ছিল, 840 00:40:57,550 --> 00:40:59,700 কিন্তু আপনি তথ্য ciphering ছিল. 841 00:40:59,700 --> 00:41:03,420 >> আপনি শুধু এটা করছিলে কেবল, অনেক Ralphie মত এখানে 842 00:41:03,420 --> 00:41:07,934 একটি বিখ্যাত সিনেমা যে পালন প্রায় কাছাকাছি বিজ্ঞাপন nauseum প্রতিটি শীতকালে. 843 00:41:07,934 --> 00:41:08,600 [ভিডিও প্লেব্যাক] 844 00:41:08,600 --> 00:41:11,180 -Be এটা যে সব পরিচিত রালফ পার্কার এতদ্দ্বারা হয় 845 00:41:11,180 --> 00:41:14,070 লিটল সদস্য নিযুক্ত অনাথ অ্যানি সিক্রেট বৃত্ত 846 00:41:14,070 --> 00:41:17,700 এবং সব সন্মান প্রাপ্ত করার উদ্দেশ্যে এনটাইটেল করা হয় এবং সুবিধা তত্প্রতি ঘটমান. 847 00:41:17,700 --> 00:41:24,340 >> -Signed, লিটল অনাথ অ্যানি, পাল্টা স্বাক্ষরিত পিয়েরে আন্দ্রে, কালিতে. 848 00:41:24,340 --> 00:41:27,160 অনার্স এবং বেনিফিট, ইতিমধ্যে নয় বছর বয়সে. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [চিৎকার] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 -চলে আসো. 853 00:41:34,250 --> 00:41:35,210 এর সাথে পেতে চলুন শুরু করা যাক. 854 00:41:35,210 --> 00:41:39,530 আমি সব যে জ্যাজ প্রয়োজন হবে না পাচারকারীদের এবং জলদস্যু সম্পর্কে. 855 00:41:39,530 --> 00:41:41,660 >> জন্য -listen আগামীকাল রাতে আখেরী দু: সাহসিক কাজ 856 00:41:41,660 --> 00:41:43,880 কালো জলদস্যু জাহাজের. 857 00:41:43,880 --> 00:41:46,650 এখন, এটা সময় এসেছে এ্যানি এর গোপন বার্তা 858 00:41:46,650 --> 00:41:49,840 আপনি সিক্রেট সার্কেলের সদস্যদের জন্য. 859 00:41:49,840 --> 00:41:53,570 মনে রাখবেন, বাচ্চাদের, শুধুমাত্র সদস্যদের এ্যানি এর সিক্রেট সার্কেলের 860 00:41:53,570 --> 00:41:56,140 এ্যানি এর গোপন বার্তা ডিকোড করতে. 861 00:41:56,140 --> 00:42:00,340 >> মনে রাখবেন, অ্যানি আপনি উপর নির্ভর করে না. 862 00:42:00,340 --> 00:42:02,880 B2 তে আপনার পিন সেট করুন. 863 00:42:02,880 --> 00:42:05,230 এখানে বার্তা. 864 00:42:05,230 --> 00:42:06,090 12, 11-- 865 00:42:06,090 --> 00:42:10,250 >> -আমি, আছি আমার প্রথম গোপন বৈঠক. 866 00:42:10,250 --> 00:42:13,890 >> -14, 11, 18, 16. 867 00:42:13,890 --> 00:42:15,780 >> -Pierre মহান ভয়েস আজ রাতে ছিল. 868 00:42:15,780 --> 00:42:19,000 আমি যে আজ রাতের বলতে পারে বার্তাটি সত্যিই গুরুত্বপূর্ণ ছিল. 869 00:42:19,000 --> 00:42:22,694 >> -3, 25, যে একটি বার্তা অ্যানি নিজেকে থেকে. 870 00:42:22,694 --> 00:42:23,860 মনে রেখো, কাউকে বল না. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 সেকেন্ড পরে, আমি শুধুমাত্র আছি বাড়িতে রুম যেখানে নয়টি একটি ছেলে 873 00:42:32,930 --> 00:42:37,040 গোপনীয়তা এবং ডিকোড বসতে পারে. 874 00:42:37,040 --> 00:42:39,730 অই, বি! 875 00:42:39,730 --> 00:42:42,360 আমি পরবর্তী ই গিয়েছিলাম 876 00:42:42,360 --> 00:42:44,520 >> প্রথম শব্দ হতে হয়. 877 00:42:44,520 --> 00:42:49,032 এস, এটি সহজ আসছিল এখন, ইউ, 25-- 878 00:42:49,032 --> 00:42:51,733 >> -ওহ, Ralphie আসো, আমাকে যেতে হবে! 879 00:42:51,733 --> 00:42:53,688 >> এক্ষুনি -I'll মা! 880 00:42:53,688 --> 00:42:54,188 ফার্গুসন বলবো! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T, হে, চাচ্ছি কি নিশ্চিত করা নিশ্চিত করা? 883 00:43:04,060 --> 00:43:05,970 কি লিটল অনাথ ছিল অ্যানি বলার চেষ্টা? 884 00:43:05,970 --> 00:43:07,264 কি নিশ্চিত হবে? 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie অ্যান্ডি পেয়েছিলাম হয়েছে তুমি দয়া করে বের হয়ে আসবে? 886 00:43:09,634 --> 00:43:10,480 >> বাইরের অধিকার, মা! 887 00:43:10,480 --> 00:43:12,880 আমি বাইরে থাকব! 888 00:43:12,880 --> 00:43:14,550 >> -আমি কাছাকাছি এখন পেয়ে ছিল. 889 00:43:14,550 --> 00:43:16,620 টান ছিল ভয়ংকর. 890 00:43:16,620 --> 00:43:17,720 এটা কি ছিল? 891 00:43:17,720 --> 00:43:20,170 গ্রহের ভাগ্য ভারসাম্য হ্যাং করতে পারে. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 অ্যান্ডির অতি যান! 894 00:43:23,170 --> 00:43:26,890 >> অট্ট চিত্কার জন্য ডান আউট হতে -I'll! 895 00:43:26,890 --> 00:43:32,680 >> সেখানে -Almost, আমার আঙ্গুলের flew, আমার মন একটি ইস্পাত ফাঁদ ছিল, যে লোমকূপ আন্দোলিত. 896 00:43:32,680 --> 00:43:37,198 এটা প্রায় পরিষ্কার ছিল, হ্যা, হ্যা, হ্যা. 897 00:43:37,198 --> 00:43:43,091 >> আপনার Ovaltine পান করতে ভুলবেন -Be. 898 00:43:43,091 --> 00:43:43,590 Ovaltine? 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 একটি নোংরা বাণিজ্যিক? 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 কুত্তার বাচ্চা. 903 00:43:54,227 --> 00:43:54,810 [END টি প্লেব্যাক] 904 00:43:54,810 --> 00:43:57,390 ডেভিড জে MALAN: ঠিক আছে, তাই যে একটি খুব দীর্ঘ পথ ছিল 905 00:43:57,390 --> 00:44:00,660 ক্রিপ্টোগ্রাফি প্রবর্তনের, এবং Ovaltine. 906 00:44:00,660 --> 00:44:04,470 বস্তুত, এই পুরাতন বিজ্ঞাপন থেকে এখানে কেন Ovaltine এত ভাল? 907 00:44:04,470 --> 00:44:09,470 এটা পাকা একটি ঘনীভূত আহরণ বার্লি সীরা, খাঁটি মাখনের মতো গরুর দুধ, 908 00:44:09,470 --> 00:44:14,360 এবং বিশেষভাবে কোকো প্রস্তুত, একসঙ্গে প্রাকৃতিক phosphatides এবং ভিটামিন সঙ্গে. 909 00:44:14,360 --> 00:44:18,240 এটি আরও শক্তিশালী হয় অতিরিক্ত ভিটামিন বি এবং ডি, yum দ্বারা. 910 00:44:18,240 --> 00:44:21,600 এবং আপনি এখনও এটা পেতে পারেন, দৃশ্যত হরতাল, আমরা এখানে করেনি. 911 00:44:21,600 --> 00:44:24,810 >> কিন্তু প্রেরণা এখানে ছিল ক্রিপ্টোগ্রাফি পরিচয় করিয়ে, বিশেষভাবে 912 00:44:24,810 --> 00:44:28,340 ক্রিপ্টোগ্রাফি একটি টাইপ পরিচিত গোপন কি ক্রিপ্টোগ্রাফি হিসাবে. 913 00:44:28,340 --> 00:44:34,284 আর নাম প্রস্তাব দেওয়া হয়, সামগ্রিকভাবে একটি গোপন চাবি ক্রিপ্টো সিস্টেমের নিরাপত্তা, 914 00:44:34,284 --> 00:44:36,200 যদি আপনি হবে, একটি পদ্ধতি শুধু হাহাকার জন্য 915 00:44:36,200 --> 00:44:40,960 দুই জনের মধ্যে তথ্য, যে শুধুমাত্র প্রেরক এবং শুধুমাত্র প্রাপক 916 00:44:40,960 --> 00:44:46,980 একটি গোপন key-- কিছু মান জানি, কিছু গোপন শব্দগুচ্ছ, কিছু গোপন নম্বর, যে 917 00:44:46,980 --> 00:44:50,660 তাদের উভয় এনক্রিপ্ট করতে পারবেন এবং তথ্য ডিক্রিপ্ট. 918 00:44:50,660 --> 00:44:53,470 আর ক্রিপ্টোগ্রাফি, সত্যিই, 0 সপ্তাহ থেকে শুধু এই হয়. 919 00:44:53,470 --> 00:44:56,715 >> এটি একটি সমস্যা যেখানে ইনপুট আছে এর, ইংরেজিতে প্রকৃত বার্তা মত 920 00:44:56,715 --> 00:44:59,340 বা যাই হোক না কেন ভাষা যে আপনি ক্লাসে কেউ পাঠাতে চান, 921 00:44:59,340 --> 00:45:00,580 বা ইন্টারনেট জুড়ে. 922 00:45:00,580 --> 00:45:03,840 কিছু আউটপুট, যা যাচ্ছে scrambled বার্তা হতে যে আপনি 923 00:45:03,840 --> 00:45:05,250 প্রাপক গ্রহণ করতে চান. 924 00:45:05,250 --> 00:45:07,405 আর যদি কাউকে মাঝখানে এটা খুব পায়, 925 00:45:07,405 --> 00:45:09,780 আপনি না তাদের চাই অগত্যা ডিক্রিপ্ট পাবে, 926 00:45:09,780 --> 00:45:12,840 কারণ এই ভেতরে ব্ল্যাক বক্স, অথবা আলগোরিদিম, 927 00:45:12,840 --> 00:45:17,650 কিছু প্রক্রিয়া ধাপে কিছু পদক্ষেপ নির্দেশাবলী, যে ইনপুট গ্রহণ 928 00:45:17,650 --> 00:45:20,710 এবং এটা রূপান্তরিত আউটপুট, আশা একটি নিরাপদ ভাবে. 929 00:45:20,710 --> 00:45:23,640 >> কিছু এবং, আসলে, নেই এই বিশ্বের শব্দভান্ডার নিম্নরূপ. 930 00:45:23,640 --> 00:45:26,100 প্লেইন টেক্সট শব্দ একটি হল কম্পিউটার বিজ্ঞানী would 931 00:45:26,100 --> 00:45:28,449 ইনপুট বর্ণনা করতে ব্যবহার বার্তা, ইংরেজি মত 932 00:45:28,449 --> 00:45:31,240 বা যাই হোক না কেন আপনি আসলে ভাষা কিছু মানুষের পাঠাতে চান. 933 00:45:31,240 --> 00:45:35,450 এবং তারপর সাইফার একত্র হয় enciphered করতে, বা এনক্রিপটেড, 934 00:45:35,450 --> 00:45:36,520 সংস্করণ উহার. 935 00:45:36,520 --> 00:45:38,750 >> কিন্তু অন্য একটি উপাদান এখানে. 936 00:45:38,750 --> 00:45:43,200 আছে এক অন্য ইনপুট গোপন কি ক্রিপ্টোগ্রাফি. 937 00:45:43,200 --> 00:45:45,200 আর যে কী নিজেই, যা সাধারণত হয়, 938 00:45:45,200 --> 00:45:48,930 হিসাবে আমরা দেখতে পাবেন, একটি নম্বর, বা চিঠি, বা শব্দ, যাই হোক না কেন 939 00:45:48,930 --> 00:45:51,980 অ্যালগরিদম এটা আসলে আশা. 940 00:45:51,980 --> 00:45:53,870 >> আর আপনি তথ্য কিভাবে ডিক্রিপ্ট না? 941 00:45:53,870 --> 00:45:55,110 আপনি এটা কিভাবে জট ছাড়ানো না? 942 00:45:55,110 --> 00:45:57,950 আচ্ছা, তুমি শুধু বিপরীত আউটপুট এবং ইনপুট. 943 00:45:57,950 --> 00:46:00,900 >> অন্য কথায়, একবার কেউ আপনার এনক্রিপ্ট বার্তা গ্রহণ করে, 944 00:46:00,900 --> 00:46:03,740 সে কেবল হয়েছে যে একই কী জানতে. 945 00:46:03,740 --> 00:46:05,700 তারা সাইফার পেয়েছি. 946 00:46:05,700 --> 00:46:09,530 আর ঐ দুটি প্লাগিং দ্বারা ক্রিপ্টো সিস্টেমের মধ্যে ইনপুট, 947 00:46:09,530 --> 00:46:14,260 অ্যালগরিদম, এই কালো বক্স, আউট মূল প্লেইন আসা উচিত. 948 00:46:14,260 --> 00:46:17,830 তাই যে খুব উচ্চ স্তর কি ক্রিপ্টোগ্রাফি আসলে দৃশ্যে 949 00:46:17,830 --> 00:46:18,590 সব বিষয়ে. 950 00:46:18,590 --> 00:46:20,030 >> সুতরাং আসুন সেখানে যাক. 951 00:46:20,030 --> 00:46:22,700 এর এখন নীচে তাকান চলুন শুরু করা যাক কিছু ফণা 952 00:46:22,700 --> 00:46:26,000 আমরা জন্য মঞ্জুর গ্রহণ করেছি গত সপ্তাহে, এবং জন্য এই অধিবেশন 953 00:46:26,000 --> 00:46:27,629 স্ট্রিং এখানে. 954 00:46:27,629 --> 00:46:30,295 দিনের শেষে একটি স্ট্রিং শুধু অক্ষরের একটি ক্রম. 955 00:46:30,295 --> 00:46:33,610 >> এটা হ্যালো দুনিয়া হতে পারে, বা হ্যালো, Zamyla, বা যাই হোক না কেন. 956 00:46:33,610 --> 00:46:37,050 কিন্তু যে কি মানে অক্ষরের একটি ক্রম হতে? 957 00:46:37,050 --> 00:46:41,520 বস্তুত, CS50 লাইব্রেরি দেয় আমাদের স্ট্রিং নামক একটি ডাটা টাইপ. 958 00:46:41,520 --> 00:46:45,140 >> কিন্তু সেখানে আসলে কোন সি অনুযায়ী পংক্তিরূপে যেমন জিনিস 959 00:46:45,140 --> 00:46:49,450 এটা সত্যিই শুধু একটা ক্রম অক্ষর, অক্ষর, অক্ষর, 960 00:46:49,450 --> 00:46:52,180 চরিত্র, পিছনে, ফিরে যাও, ফিরে, ব্যাক, ভিতরে ব্যাক 961 00:46:52,180 --> 00:46:54,650 আপনার কম্পিউটার এর মেমরি, অথবা RAM- র. 962 00:46:54,650 --> 00:46:58,940 এবং আমরা যে গভীরে সন্ধান করব ভবিষ্যতে যখন আমরা, মেমরি নিজেই তাকান 963 00:46:58,940 --> 00:47:02,030 এবং ব্যবহার, এবং হুমকি জড়িত হয়. 964 00:47:02,030 --> 00:47:04,100 >> কিন্তু এর স্ট্রিং, Zamyla বিবেচনা করা যাক. 965 00:47:04,100 --> 00:47:07,480 তাই শুধু নাম মানব এখানে, Zamyla, 966 00:47:07,480 --> 00:47:12,030 যে একটা ক্রম অক্ষর, জেড-এ-এম-ওয়াই-এল-এ. 967 00:47:12,030 --> 00:47:16,020 এবং এখন এর অনুমান করা যাক যে, Zamyla নাম একটি কম্পিউটার এর ভিতরে সঞ্চিত হচ্ছে 968 00:47:16,020 --> 00:47:16,880 প্রোগ্রাম. 969 00:47:16,880 --> 00:47:20,830 >> ওয়েল, এটা যৌক্তিক যে আমরা উচিত ঘোরা ঐ অক্ষর তাকান পাবে 970 00:47:20,830 --> 00:47:21,590 স্বতন্ত্রভাবে. 971 00:47:21,590 --> 00:47:24,710 তাই আমি শুধু একটু আঁকা যাচ্ছি এখানে, Zamyla নাম প্রায় বক্স. 972 00:47:24,710 --> 00:47:31,580 আর সি কেস হল যে যখন আপনি Zamyla-- এবং হয়ত মত, একটি স্ট্রিং আছে 973 00:47:31,580 --> 00:47:34,940 স্ট্রিং থেকে ফিরে এসেছে পেতে স্ট্রিং মত একটি ফাংশন, 974 00:47:34,940 --> 00:47:38,540 আপনি আসলে নিপূণভাবে পারেন অক্ষর দ্বারা এটি চরিত্র. 975 00:47:38,540 --> 00:47:42,070 >> এখন, এই জন্য সঙ্গত নয় কথোপকথন হাতে, কারণ 976 00:47:42,070 --> 00:47:46,420 ক্রিপ্টোগ্রাফি আপনি পরিবর্তন করতে চান তাহলে A ও B, এবং বি সি এবং ডি সি, 977 00:47:46,420 --> 00:47:49,650 এবং তাই ঘোষণা, আপনি সক্ষম হতে হবে পৃথক অক্ষর তাকান 978 00:47:49,650 --> 00:47:50,190 একটি স্ট্রিং. 979 00:47:50,190 --> 00:47:52,695 আপনি পরিবর্তন করতে সক্ষম হতে হবে অন্য কিছু, Z থেকে A 980 00:47:52,695 --> 00:47:55,280 অন্য কিছু, এম করতে আর, এবং তাই কিছু. 981 00:47:55,280 --> 00:47:58,000 এবং তাই আমরা একটি উপায় প্রয়োজন, প্রোগ্রামের মাধ্যমে, তাই 982 00:47:58,000 --> 00:48:03,020 কথা বলতে, সি পরিবর্তন পাবে এবং স্বতন্ত্র অক্ষর তাকান. 983 00:48:03,020 --> 00:48:05,690 এবং আমরা এই অনুসরণ হিসাবে কাজ করতে পারেন. 984 00:48:05,690 --> 00:48:08,340 >> আমাকে এবং CS50 IDE তে ফিরে আগাইয়া যাই. 985 00:48:08,340 --> 00:48:11,130 এবং আমাকে এগিয়ে যান এবং একটি নতুন ফাইল তৈরি 986 00:48:11,130 --> 00:48:16,134 যে আমি এই সময় string0 ডাকবো, আমাদের প্রথম ধরনের একটি উদাহরণ হিসাবে, বিন্দু গ. 987 00:48:16,134 --> 00:48:18,300 এবং আমি এগিয়ে যেতে চলেছি এবং এটা পিটান আপ নিম্নরূপ. 988 00:48:18,300 --> 00:48:22,870 >> সুতরাং, CS50.h অন্তর্ভুক্ত, এবং তারপর অন্তর্ভুক্ত প্রমিত io.h, 989 00:48:22,870 --> 00:48:25,990 যা আমি প্রায় সবসময় যাচ্ছি আমার প্রোগ্রাম ব্যবহার করে, অন্তত হতে 990 00:48:25,990 --> 00:48:26,780 প্রাথমিকভাবে. 991 00:48:26,780 --> 00:48:32,180 প্রধান অকার্যকর int, এবং তারপর এখানে আমি আছি স্ট্রিং করতে যাচ্ছেন স্ট্রিং পেতে পায়. 992 00:48:32,180 --> 00:48:35,260 এবং তারপর আমি যাচ্ছি এগিয়ে যান এবং এই কাজের জন্য. 993 00:48:35,260 --> 00:48:37,460 আমি এগিয়ে যেতে চাই এবং, একটি সদ্বিবেচনা চেক হিসাবে, 994 00:48:37,460 --> 00:48:43,607 শুধু বলে, হ্যালো, শতাংশ গুলি, সেমিকোলন, স্ট্রিং 0 নির্মিত হয়. 995 00:48:43,607 --> 00:48:44,690 ওহো, আমি এখানে কি হয়নি? 996 00:48:44,690 --> 00:48:45,930 ওহ, আমি এটা প্লাগ ইন করা হয়নি. 997 00:48:45,930 --> 00:48:48,120 সুতরাং পাঠ শিখেছি যে ইচ্ছাকৃত ছিল না. 998 00:48:48,120 --> 00:48:52,480 >> তাই ভুল, আরো শতাংশ তথ্য আর্গুমেন্ট চেয়ে ধর্মান্তর. 999 00:48:52,480 --> 00:48:54,940 এবিষয়ে কোথায়, লাইন 7-- ঠিক আছে, তাই আমি আছে, 1000 00:48:54,940 --> 00:48:56,690 মূল্যউদ্ধৃতি উদ্ধতি, যে আমার স্ট্রিং printf থেকে. 1001 00:48:56,690 --> 00:48:58,151 আমি একটি শতকরা চিহ্ন পেয়েছেন. 1002 00:48:58,151 --> 00:48:59,650 কিন্তু আমি দ্বিতীয় যুক্তি অনুপস্থিত করছি. 1003 00:48:59,650 --> 00:49:03,190 >> আমি অনুপস্থিত করছি কমা গুলি, যা আমি পূর্ববর্তী উদাহরণ আছে হয়নি. 1004 00:49:03,190 --> 00:49:06,650 সুতরাং এটি একটি ভাল সুযোগ ফিক্স আরও একটি ভুল, ঘটনাক্রমে. 1005 00:49:06,650 --> 00:49:09,950 আর এখন আমাকে চালানো যাক , Zamyla মধ্যে string0 টাইপ. 1006 00:49:09,950 --> 00:49:10,970 , Zamyla হ্যালো ঠিক আছে. 1007 00:49:10,970 --> 00:49:14,144 >> সুতরাং আমরা প্রোগ্রাম এই ধরনের চালানো করেছি এখন কয়েক বিভিন্ন বার. 1008 00:49:14,144 --> 00:49:16,310 কিন্তু এর কিছু কাজ করতে দিন একটু ভিন্ন এই সময়. 1009 00:49:16,310 --> 00:49:19,450 পরিবর্তে, Zamyla এর মুদ্রণ printf সঙ্গে আউট পুরো নাম, 1010 00:49:19,450 --> 00:49:21,350 চরিত্র দ্বারা এটা চরিত্র করতে দিন. 1011 00:49:21,350 --> 00:49:22,700 >> আমি লুপ জন্য একটি ব্যবহার করতে যাচ্ছি. 1012 00:49:22,700 --> 00:49:26,160 এবং আমি নিজেকে দিতে যাচ্ছি একটি কাউন্টিং পরিবর্তনশীল, আমি বলা হয়. 1013 00:49:26,160 --> 00:49:33,530 আমি iterating রাখতে যাচ্ছি, তাই যতদিন আমি গুলি দৈর্ঘ্য কম. 1014 00:49:33,530 --> 00:49:35,930 >> এটি সক্রিয় আউট, আমরা না এই শেষ সময় না, 1015 00:49:35,930 --> 00:49:39,100 যে সি দিয়ে আসে ফাংশন স্টারলিং বলা. 1016 00:49:39,100 --> 00:49:42,690 পিছনে দিন, এবং সাধারণভাবে এখনও যখন ফাংশন রূপায়ণকারী, 1017 00:49:42,690 --> 00:49:45,405 মানুষেরা প্রায়ই খুব পছন্দ করবেন সংক্ষিপ্ত নাম যে শব্দ ধরনের 1018 00:49:45,405 --> 00:49:48,280 আপনি কি চান, এটা যদিও মত কয়েক স্বরবর্ণ বা অক্ষর অনুপস্থিত. 1019 00:49:48,280 --> 00:49:50,660 সুতরাং স্টারলিং হয় একটি ফাংশন এর নাম যে 1020 00:49:50,660 --> 00:49:53,880 মধ্যে একটি আর্গুমেন্ট গ্রহণ প্রথম বন্ধনী যে একটি স্ট্রিং হতে হবে. 1021 00:49:53,880 --> 00:49:56,910 আর এটি শুধু একটি পূর্ণসংখ্যা ফেরৎ, স্ট্রিং এর দৈর্ঘ্য. 1022 00:49:56,910 --> 00:50:00,580 >> লাইন 7 লুপ জন্য এই তো যাচ্ছে গণনা আমি 0 সমান শুরু করার. 1023 00:50:00,580 --> 00:50:02,530 এটা বাড়ায় যাচ্ছে প্রতিটি পুনরাবৃত্তির আমি 1024 00:50:02,530 --> 00:50:04,350 1 দ্বারা, আমরা কয়েক বার করছি হিসাবে. 1025 00:50:04,350 --> 00:50:06,780 কিন্তু এটা শুধুমাত্র করতে যাচ্ছে বিন্দু পর্যন্ত এই পর্যন্ত 1026 00:50:06,780 --> 00:50:09,660 যখন আমি দৈর্ঘ্য হল স্ট্রিং নিজেই. 1027 00:50:09,660 --> 00:50:14,520 >> সুতরাং এই একটি উপায়, পরিণামে, অক্ষরের উপর iterating 1028 00:50:14,520 --> 00:50:17,430 স্ট্রিং হিসেবে নিম্নে প্রদত্ত. 1029 00:50:17,430 --> 00:50:20,670 আমি না প্রিন্ট আউট একটি যাচ্ছি পুরো স্ট্রিং, কিন্তু শতাংশ গ, 1030 00:50:20,670 --> 00:50:22,860 একটি একক চরিত্র একটি নতুন লাইন অনুসরণ. 1031 00:50:22,860 --> 00:50:24,880 এবং তারপর আমি যাচ্ছি এগিয়ে যান, এবং আমি প্রয়োজন 1032 00:50:24,880 --> 00:50:29,080 আমি প্রিন্ট করতে চান বলে s এর ith চরিত্র. 1033 00:50:29,080 --> 00:50:33,450 >> সুতরাং যদি আমি পরিবর্তনশীল যে ইঙ্গিত দেয় স্ট্রিং, যেখানে এর সূচক 1034 00:50:33,450 --> 00:50:37,230 আপনি এটা, আমি পাবে প্রয়োজন হয় বলে, আমাকে গুলি ith অক্ষর দিতে. 1035 00:50:37,230 --> 00:50:40,390 এবং গ এরকম একটি উপায় রয়েছে বর্গাকার বন্ধনী সঙ্গে এই. 1036 00:50:40,390 --> 00:50:43,679 আপনি কেবল নাম বলতে স্ট্রিং, যা এই ক্ষেত্রে গুলি. 1037 00:50:43,679 --> 00:50:46,970 তারপর আপনি বর্গাকার বন্ধনী, যা ব্যবহার সাধারণত শুধু আপনার রিটার্ন বা Enter উপরে 1038 00:50:46,970 --> 00:50:48,110 কীবোর্ড কী. 1039 00:50:48,110 --> 00:50:52,410 এবং তারপর আপনি ইনডেক্স করা চরিত্র যে আপনি প্রিন্ট করতে চান. 1040 00:50:52,410 --> 00:50:55,960 সুতরাং সূচক একটি হতে যাচ্ছে হল-- 0, বা 1, বা 2 অথবা 3, বা বিন্দু, 1041 00:50:55,960 --> 00:50:57,590 বিন্দু, বিন্দু, কিছু অন্যান্য সংখ্যা. 1042 00:50:57,590 --> 00:51:00,920 >> এবং আমরা নিশ্চিত যে এটা যাচ্ছে , সঠিক সংখ্যা হবে কারণ আমি 1043 00:51:00,920 --> 00:51:02,360 0 এ গণনা শুরু. 1044 00:51:02,360 --> 00:51:07,020 এবং ডিফল্ট দ্বারা, প্রথম অক্ষর একটি স্ট্রিং কনভেনশন 0 দ্বারা হয়. 1045 00:51:07,020 --> 00:51:09,230 আর দ্বিতীয় চরিত্র বন্ধনী 1. 1046 00:51:09,230 --> 00:51:11,120 আর তৃতীয় চরিত্র বন্ধনী 2. 1047 00:51:11,120 --> 00:51:13,630 এবং আপনি খুব যেতে চাই না পর্যন্ত, কিন্তু আমরা, কারণ আমরা করছি না হবে 1048 00:51:13,630 --> 00:51:17,780 শুধুমাত্র এটা না হওয়া পর্যন্ত আমি বাড়ায় যাচ্ছে স্ট্রিং এর দৈর্ঘ্য সমান. 1049 00:51:17,780 --> 00:51:20,210 আর যা বিন্দু, লুপ জন্য এই থামাতে হবে. 1050 00:51:20,210 --> 00:51:25,550 >> তাই আমাকে এগিয়ে যান এবং এই সংরক্ষণ করতে দিন প্রোগ্রাম, এবং রান স্ট্রিং 0 করতে. 1051 00:51:25,550 --> 00:51:28,400 কিন্তু আমি মাতাল আপ. 1052 00:51:28,400 --> 00:51:35,390 পরোক্ষভাবে প্রকাশক লাইব্রেরি ফাংশন ঘোষণা টাইপ ধরনের সঙ্গে Stirling এবং এখন such--, 1053 00:51:35,390 --> 00:51:36,430 এই পরিচিত শোনাচ্ছে. 1054 00:51:36,430 --> 00:51:37,440 কিন্তু এটা printf না. 1055 00:51:37,440 --> 00:51:38,540 আর এটা পংক্তি হয়ে যাবে. 1056 00:51:38,540 --> 00:51:40,480 >> আমি স্ক্রু আপ করা হয়নি একই ভাবে এই সময়. 1057 00:51:40,480 --> 00:51:45,100 কিন্তু এখানে নিচে নেমে একটু লক্ষ্য আরও হেডার string.h অন্তর্ভুক্ত, 1058 00:51:45,100 --> 00:51:47,210 স্পষ্টভাবে প্রদান স্টারলিং জন্য ঘোষণা. 1059 00:51:47,210 --> 00:51:48,820 তাই সেখানে আসলে সেখানে একটি খেই. 1060 00:51:48,820 --> 00:51:51,670 >> এবং প্রকৃতপক্ষে এটি সক্রিয় আউট সেখানে অন্য হেডার ফাইল 1061 00:51:51,670 --> 00:51:53,970 যে আমরা ব্যবহার না করে থাকেন ক্লাসে এখনো, কিন্তু এটা 1062 00:51:53,970 --> 00:51:56,480 যাঁদের পাওয়া মধ্যে আপনাকে, বলা string.h. 1063 00:51:56,480 --> 00:52:00,930 এবং যে ফাইল, string.h মধ্যে স্টারলিং ঘোষিত হয়. 1064 00:52:00,930 --> 00:52:05,220 তাই আমাকে এগিয়ে যান এবং এই সংরক্ষণ, স্ট্রিং করা 1065 00:52:05,220 --> 00:52:08,040 0-- সুন্দর, কোন ত্রুটি বার্তা এই সময়. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 Zamyla, এবং আমি, সম্পর্কে লিখুন আঘাত করছি 1067 00:52:12,290 --> 00:52:16,710 এই বিন্দুতে GetString যাচ্ছে স্ট্রিং ফিরে, গুলি রাখা. 1068 00:52:16,710 --> 00:52:21,890 লুপ জন্য পুনরুক্তি করতে যাচ্ছে তখন যে একটি সময়ে এস এর অক্ষর এক ওভার, 1069 00:52:21,890 --> 00:52:28,420 এবং তাদের প্রতি লাইনে একটি মুদ্রণ, কারণ আমি শেষে যে ব্যাকস্ল্যাশ এন ছিল. 1070 00:52:28,420 --> 00:52:34,530 তাই আমি যে ব্যাকস্ল্যাশ বর্জন করা যেতে পারে এন, এবং তারপর মাত্র, Zamyla সব প্রিন্ট 1071 00:52:34,530 --> 00:52:37,460 একই লাইনে, কার্যকরভাবে reimplementing 1072 00:52:37,460 --> 00:52:38,999 printf, যা সব যে দরকারী নয়. 1073 00:52:38,999 --> 00:52:40,540 কিন্তু এই ক্ষেত্রে, আমি যে না করেছেন. 1074 00:52:40,540 --> 00:52:43,610 আমি আসলে এক মুদ্রিত করেছি একটি সময়ে চরিত্র, প্রতি লাইনে একটি, 1075 00:52:43,610 --> 00:52:45,400 তাই আমরা আসলে প্রভাব দেখতে যে. 1076 00:52:45,400 --> 00:52:46,900 >> তবে আমি একটা কথা এখানে মনে রাখতে হবে. 1077 00:52:46,900 --> 00:52:48,930 এবং আমরা ফিরে আসবো ভবিষ্যতে সপ্তাহে এই. 1078 00:52:48,930 --> 00:52:52,650 এটা এই যে দেখা যাচ্ছে কোড সম্ভাব্য বগী. 1079 00:52:52,650 --> 00:52:56,560 >> এটা পরিনত হয় যে পেতে স্ট্রিং এবং জীবনের কিছু অন্যান্য কার্যাবলী 1080 00:52:56,560 --> 00:53:00,280 অগত্যা সবসময় না আপনি কি আশা করছেন আসতে. 1081 00:53:00,280 --> 00:53:03,010 আমরা ক্লাসের শেষ থেকে জানি এই যে পেতে সময় 1082 00:53:03,010 --> 00:53:04,960 স্ট্রিং একটি স্ট্রিং ফিরে অনুমিত হয়. 1083 00:53:04,960 --> 00:53:09,900 কিন্তু কি যদি ব্যবহারকারী ধরনের আউট যেমন একটি দীর্ঘ শব্দ অথবা অনুচ্ছেদ, অথবা প্রবন্ধ 1084 00:53:09,900 --> 00:53:13,010 সেখানে যথেষ্ট নয় যে কম্পিউটার মেমরি এটি মাপসই. 1085 00:53:13,010 --> 00:53:15,410 >> ভালো লেগেছে, কি কিছু যায় ফণা নীচে ভুল? 1086 00:53:15,410 --> 00:53:18,400 এটা প্রায়ই ঘটতে না পারে, কিন্তু এটা একবার ঘটতে পারে 1087 00:53:18,400 --> 00:53:21,520 কিছুদিনের মধ্যে, খুব কম ক্ষেত্রে. 1088 00:53:21,520 --> 00:53:25,460 আর তাই এটি সক্রিয় আউট যে পেতে স্ট্রিং এবং অগত্যা না এটা মত কার্যাবলী 1089 00:53:25,460 --> 00:53:26,380 সবসময় স্ট্রিং ফিরে. 1090 00:53:26,380 --> 00:53:30,680 তারা কিছু ত্রুটি মান ফিরে যেতে পারি, কিছু প্রহরী মান তাই কথা বলতে, 1091 00:53:30,680 --> 00:53:32,612 যে ইঙ্গিত কিছু ভুল হয়েছে. 1092 00:53:32,612 --> 00:53:35,320 এবং আপনি শুধুমাত্র থেকে এই জানতে চাই ক্লাসে এটা এখন শিখে, 1093 00:53:35,320 --> 00:53:37,700 বা আরো কিছু ডকুমেন্টেশন পড়া থাকার. 1094 00:53:37,700 --> 00:53:43,120 এটা পরিনত হয় যে পেতে স্ট্রিং নাল নামক একটি মান ফিরে আসতে পারেন. 1095 00:53:43,120 --> 00:53:46,220 নাল একটি বিশেষ মূল্য যে আমরা করব ভবিষ্যতে সপ্তাহে ফিরে আসা. 1096 00:53:46,220 --> 00:53:50,420 কিন্তু এখন জন্য, শুধু জানি যে যদি আমি চাই সত্যিই অগ্রগতিশীল যথাযথ হতে 1097 00:53:50,420 --> 00:53:52,650 স্ট্রিং পেতে ব্যবহার করে, আমি শুধু এটা বলা ঠিক নয়, 1098 00:53:52,650 --> 00:53:56,870 এবং অন্ধভাবে তার রিটার্ন মান ব্যবহার, বিশ্বাস যে এটি একটি স্ট্রিং এর. 1099 00:53:56,870 --> 00:53:59,420 >> আমি প্রথম, বলতে হবে হেই, এক মিনিট শুধুমাত্র অপেক্ষা করুন, 1100 00:53:59,420 --> 00:54:03,380 এগিয়ে যান, তাহলে এর সমান না নাল, যেখানে নাল, আবার, 1101 00:54:03,380 --> 00:54:04,660 শুধু কিছু বিশেষ মূল্য. 1102 00:54:04,660 --> 00:54:07,770 এবং এটা শুধুমাত্র বিশেষ মান আপনি পেতে স্ট্রিং জন্য চিন্তা করতে হবে. 1103 00:54:07,770 --> 00:54:10,900 স্ট্রিং পারেন যাচ্ছে পান একটি স্ট্রিং বা নাল ফিরে. 1104 00:54:10,900 --> 00:54:17,219 >> আর এই বিস্ময়বোধক বিন্দু সমান চিহ্ন আপনি হয়তো গণিত ক্লাস থেকে জানতে পারে 1105 00:54:17,219 --> 00:54:20,510 আপনার সাথে একটি সমান চিহ্ন আঁকা হতে পারে এটি দিয়ে একটি লাইন সমান না নির্দেশ করার জন্য. 1106 00:54:20,510 --> 00:54:23,135 যে সাধারণত একটি অক্ষর নয় আপনি আপনার কীবোর্ডের টাইপ করতে পারেন. 1107 00:54:23,135 --> 00:54:26,480 তাই বেশীর ভাগ প্রোগ্রামিং ভাষায়, আপনি সমান না বলতে চাই যখন, 1108 00:54:26,480 --> 00:54:29,160 আপনি একটি বিস্ময়বোধক বিন্দু ব্যবহার, অন্যথায় ঠুং নামে পরিচিত. 1109 00:54:29,160 --> 00:54:33,180 সুতরাং আপনি বলে ঠুং, সমান যা সমান নয়, কথাটি মানে. 1110 00:54:33,180 --> 00:54:38,060 এটা একটা বড় নয় শুধু মত চেয়ে, বা সমান, বা কম 1111 00:54:38,060 --> 00:54:41,270 অথবা সমান আপনার কীবোর্ড উপর কীতে এটি সব এক প্রতীক মধ্যে আছে. 1112 00:54:41,270 --> 00:54:44,020 সুতরাং যে কেন, গত উদাহরণগুলোতে, আপনি একটি খোলা বন্ধনী করেনি, এবং তারপর 1113 00:54:44,020 --> 00:54:48,670 একটি সমান চিহ্ন, যাতে করতে এর চেয়ে বড় বা, বলতে চেয়েও কম. 1114 00:54:48,670 --> 00:54:49,910 >> তাই কি takeaway এখানে আছে? 1115 00:54:49,910 --> 00:54:53,880 এই কেবল এখন একটি উপায় এই সিনট্যাক্স উপস্থাপক, এই বৈশিষ্ট্য, 1116 00:54:53,880 --> 00:54:57,390 পৃথক উপর iterating একটি স্ট্রিং চরিত্রদের. 1117 00:54:57,390 --> 00:55:00,260 আর ঠিক ঐ বর্গক্ষেত্র মত বন্ধনী, আপনি তাদের এ পেতে অনুমতি 1118 00:55:00,260 --> 00:55:03,790 যেমন যারা বর্গাকার বন্ধনী বিবেচনা এই ধরনের অন্তর্নিহিত আভাস 1119 00:55:03,790 --> 00:55:06,040 নকশা, যদ্দ্বারা যে একটি স্ট্রিং এর ভিতরে চরিত্র 1120 00:55:06,040 --> 00:55:10,180 ধরনের নীচে কোথাও boxed হয় আপনার কম্পিউটারের মেমরিতে হুড. 1121 00:55:10,180 --> 00:55:12,340 >> কিন্তু এই একটি বৈকল্পিক করা যাক. 1122 00:55:12,340 --> 00:55:14,880 এটা এই যে দেখা যাচ্ছে প্রোগ্রাম সঠিক. 1123 00:55:14,880 --> 00:55:18,810 সুতরাং CS50 এর অক্ষ প্রতি মূল্যায়নের জন্য কোড, এই এখন সঠিক. 1124 00:55:18,810 --> 00:55:22,959 বিশেষ করে এখন যে আমি চেক করছি নাল, এই প্রোগ্রাম কখনও বিপর্যস্ত উচিত. 1125 00:55:22,959 --> 00:55:24,500 আর আমি শুধু যে অভিজ্ঞতা থেকে জানি. 1126 00:55:24,500 --> 00:55:28,040 কিন্তু সেখানে অন্য কিছুই যে আমরা সত্যিই ভুল এখানে যেতে পারেন. 1127 00:55:28,040 --> 00:55:31,860 কিন্তু এটা খুব ভাল ডিজাইন নয়, কারণ আসুন বুনিয়াদি ফিরে যেতে. 1128 00:55:31,860 --> 00:55:34,450 >> প্রথমত, principles-- লুপ জন্য একটি কি করবেন না? 1129 00:55:34,450 --> 00:55:36,290 লুপ জন্য একটি তিন জিনিস. 1130 00:55:36,290 --> 00:55:39,340 এটা কিছু সূচনা মান, যদি আপনি এটি জিজ্ঞাসা. 1131 00:55:39,340 --> 00:55:41,770 এটি একটি শর্ত পরীক্ষা করা হবে. 1132 00:55:41,770 --> 00:55:45,380 এবং তারপর পরে প্রতিটি পুনরাবৃত্তির, প্রতিটি চক্র পরে, 1133 00:55:45,380 --> 00:55:49,330 এটা কিছু সংখ্যা বৃদ্ধি মান, বা মান, এখানে. 1134 00:55:49,330 --> 00:55:50,600 >> সুতরাং যে কি মানে? 1135 00:55:50,600 --> 00:55:52,940 আমরা তোমার 0 আরম্ভ. 1136 00:55:52,940 --> 00:55:58,610 আমরা পরীক্ষা এবং নিশ্চিত আমি কম হয় s এর দৈর্ঘ্য, যা জেড এ-এম-ওয়াই-এল-এ নয়, 1137 00:55:58,610 --> 00:55:59,900 তাই যা 6 এর চেয়েও কম. 1138 00:55:59,900 --> 00:56:02,590 এবং প্রকৃতপক্ষে, 0 কম 6. 1139 00:56:02,590 --> 00:56:05,580 >> আমরা, Zamyla নাম থেকে জেড প্রিন্ট আউট. 1140 00:56:05,580 --> 00:56:08,080 তারপর আমরা তোমার 0 থেকে 1 বাড়ায়. 1141 00:56:08,080 --> 00:56:11,290 আমরা তারপর পরীক্ষা, 1 কম গুলি দৈর্ঘ্যের তুলনায়? 1142 00:56:11,290 --> 00:56:13,270 s এর দৈর্ঘ্য 6. 1143 00:56:13,270 --> 00:56:13,950 হ্যাঁ, এটা. 1144 00:56:13,950 --> 00:56:16,880 >> সুতরাং আমরা, Zamyla নাম, জেড এ একটি প্রিন্ট করা হবে. 1145 00:56:16,880 --> 00:56:20,090 আমরা 0 থেকে আমি বাড়ায়, 1, 2. 1146 00:56:20,090 --> 00:56:23,720 আমরা তারপর চেক, 2 কম হয় , Zamyla নামের দৈর্ঘ্য. 1147 00:56:23,720 --> 00:56:25,380 6- তাই 2 6 এর চেয়েও কম. 1148 00:56:25,380 --> 00:56:30,460 হ্যাঁ, এর মধ্যে M এখন প্রিন্ট আউট করা যাক , Zamyla নাম, তৃতীয় চরিত্র. 1149 00:56:30,460 --> 00:56:34,110 >> কী এখানে প্রতিটি হয় গল্পের পুনরাবৃত্তির, আমি চেক করছি, 1150 00:56:34,110 --> 00:56:37,810 আমি, Zamyla দৈর্ঘ্যের চেয়ে কম হয়? 1151 00:56:37,810 --> 00:56:40,350 কিন্তু ধরা হয় স্টার্লিং একটি সম্পত্তি নয়. 1152 00:56:40,350 --> 00:56:43,100 তোমাদের মধ্যে যারা প্রোগ্রাম আছে জাভা বা অন্য ভাষায় আগে 1153 00:56:43,100 --> 00:56:46,310 দৈর্ঘ্য জানতে পারে এর একটি পংক্তি একটি সম্পত্তি, শুধু কিছু শুধুমাত্র মান পড়া. 1154 00:56:46,310 --> 00:56:50,220 >> এই ক্ষেত্রে সি, এই হলে একটি ফাংশন আক্ষরিক যে 1155 00:56:50,220 --> 00:56:53,520 সংখ্যা বেড়ে চলেছে যে সময়, Zamyla অক্ষর 1156 00:56:53,520 --> 00:56:54,740 আমরা যে ফাংশন কল. 1157 00:56:54,740 --> 00:56:58,500 প্রতিটি সময় আপনি ব্যবহার করতে কম্পিউটার জিজ্ঞাসা স্টারলিং, এটা, Zamyla কটাক্ষপাত গ্রহণ, 1158 00:56:58,500 --> 00:57:01,960 এবং বলছে জেড এ-এম-ওয়াই-এল-এ, 6. 1159 00:57:01,960 --> 00:57:02,962 আর 6 ফেরৎ. 1160 00:57:02,962 --> 00:57:04,920 পরের বার আপনি যখন কল এটা যে লুপ জন্য ভিতরে, 1161 00:57:04,920 --> 00:57:08,610 এটা, Zamyla তাকান যাচ্ছে আবার বলে, জেড-এ-এম-ওয়াই-এল-এ, 6. 1162 00:57:08,610 --> 00:57:10,320 আর 6 ফিরে যাচ্ছে. 1163 00:57:10,320 --> 00:57:12,980 তাই কি এই নকশা সম্পর্কে মূঢ়? 1164 00:57:12,980 --> 00:57:17,700 >> কেন আমার কোড না 5 আউট একটি 5 নকশা জন্য ডান এখন, তাই কথা বলতে? 1165 00:57:17,700 --> 00:57:20,600 ওয়েল, আমি জিজ্ঞাসা করছি একটি অকারণে প্রশ্ন. 1166 00:57:20,600 --> 00:57:23,030 আমি আরও কাজ করছি চেয়ে আমি প্রয়োজন. 1167 00:57:23,030 --> 00:57:25,370 >> সুতরাং যদিও উত্তর সঠিক হয়, আমি আছি 1168 00:57:25,370 --> 00:57:29,560 কম্পিউটার জিজ্ঞাসা, কি , Zamyla দৈর্ঘ্য আবার, 1169 00:57:29,560 --> 00:57:31,380 এবং আবার, এবং আবার, এবং আবার? 1170 00:57:31,380 --> 00:57:33,980 আর যে উত্তর হল কখনও পরিবর্তন করতে যাচ্ছেন. 1171 00:57:33,980 --> 00:57:35,900 এটা সবসময় 6 হতে যাচ্ছে. 1172 00:57:35,900 --> 00:57:39,730 >> তাই এই তুলনায় ভাল সমাধান এই পরবর্তী সংস্করণ হবে. 1173 00:57:39,730 --> 00:57:43,390 আমাকে এগিয়ে যান এবং একটি মধ্যে এটা করা string1.c নামক পৃথক ফাইল, 1174 00:57:43,390 --> 00:57:44,990 শুধু রাখা এটি আলাদা. 1175 00:57:44,990 --> 00:57:47,260 এবং এটি জন্য একটি সক্রিয় আউট লুপ, আপনি আসলে করতে পারেন 1176 00:57:47,260 --> 00:57:50,210 একবারে একাধিক ভেরিয়েবল ডিক্লেয়ার. 1177 00:57:50,210 --> 00:57:53,460 >> তাই আমি আমি রাখা এবং 0 থেকে এটি সেট করতে যাচ্ছি. 1178 00:57:53,460 --> 00:57:56,190 কিন্তু আমিও যাচ্ছি একটি কমা যোগ এবং বল পবিত্র তিনি, 1179 00:57:56,190 --> 00:58:01,050 আমাকে একটি পরিবর্তনশীল বলা হবে, যার দিতে মান s এর স্ট্রিং দৈর্ঘ্য সমান. 1180 00:58:01,050 --> 00:58:09,410 আর এখন, আমার অবস্থার করতে দয়া করে তাই যতদিন আমি এন চেয়ে কম হয়. 1181 00:58:09,410 --> 00:58:14,140 >> তাই এই ভাবে, যুক্তি নেই দিনের শেষে অভিন্ন. 1182 00:58:14,140 --> 00:58:18,280 কিন্তু আমি স্মরণ করছি মান 6, এই ক্ষেত্রে. 1183 00:58:18,280 --> 00:58:19,780 , Zamyla নামের দৈর্ঘ্য কত? 1184 00:58:19,780 --> 00:58:20,860 আর আমি এন এটি নির্বাণ করছি. 1185 00:58:20,860 --> 00:58:23,050 >> আর আমি এখনো চেক করছি শর্ত প্রত্যেক সময়. 1186 00:58:23,050 --> 00:58:24,300 0 6 চেয়ে কম হয়? 1187 00:58:24,300 --> 00:58:25,600 1 6 চেয়ে কম হয়? 1188 00:58:25,600 --> 00:58:28,600 2 6 কম, এবং তাই ঘোষণা? 1189 00:58:28,600 --> 00:58:31,914 >> কিন্তু আমি কম্পিউটার জিজ্ঞাসা করছি না আবার, এবং আবার, কি 1190 00:58:31,914 --> 00:58:33,080 , Zamyla নামের দৈর্ঘ্য? 1191 00:58:33,080 --> 00:58:34,320 , Zamyla নাম দৈর্ঘ্য কত? 1192 00:58:34,320 --> 00:58:35,986 এই, Zamyla নাম দৈর্ঘ্য কত? 1193 00:58:35,986 --> 00:58:40,440 আমি আক্ষরিক স্মরণ করছি যে প্রথম এবং শুধুমাত্র এই দ্বিতীয় পরিবর্তনশীল n উত্তর. 1194 00:58:40,440 --> 00:58:45,280 সুতরাং এখন এই না শুধুমাত্র হবে সঠিক, কিন্তু সুগঠিত. 1195 00:58:45,280 --> 00:58:46,670 >> এখন, শৈলী সম্পর্কে কি? 1196 00:58:46,670 --> 00:58:48,866 আমি আমার ভেরিয়েবল নামে করেছি বেশ ভাল, আমি বলতে বাধ্য হচ্ছি. 1197 00:58:48,866 --> 00:58:50,240 তারা অধিকার এখন সুপার সংক্ষিপ্ত করছি. 1198 00:58:50,240 --> 00:58:52,090 এবং যে সম্পূর্ণই সূক্ষ্ম. 1199 00:58:52,090 --> 00:58:55,120 >> আপনি শুধুমাত্র এক থাকে তাহলে একটি প্রোগ্রাম স্ট্রিং, 1200 00:58:55,120 --> 00:58:56,860 আপনি পাশাপাশি কল হতে পারে এটা স্ট্রিং জন্য গুলি. 1201 00:58:56,860 --> 00:58:59,370 আপনি শুধুমাত্র এক পরিবর্তনশীল থাকে একটি প্রোগ্রাম গণনা জন্য, 1202 00:58:59,370 --> 00:59:00,710 আপনি ভাল হিসাবে এটি আমি ডাকতে পারে. 1203 00:59:00,710 --> 00:59:03,500 আপনি একটি লম্বা থাকে, এন পাশাপাশি সুপার সাধারণ. 1204 00:59:03,500 --> 00:59:05,800 কিন্তু আমি আমার কোডের কোন মন্তব্য করেন নি. 1205 00:59:05,800 --> 00:59:09,200 >> আমি reader-- অবগত না থাকেন যে আমার মেমরি, বা টিএ কিনা, 1206 00:59:09,200 --> 00:59:12,460 বা শুধু সহকর্মী কি অনুমিত হয় এই প্রোগ্রামের মধ্যে চালু করা. 1207 00:59:12,460 --> 00:59:15,760 তাই ভাল শৈলী পেতে, আমি কি করতে চান কি 1208 00:59:15,760 --> 00:59:24,580 আপাততঃ কিছু হয় মত ইনপুট জন্য ব্যবহারকারীকে জিজ্ঞাসা. 1209 00:59:24,580 --> 00:59:26,670 আমি পুনর্লিখন পারে উপায়ে এই কোন সংখ্যা. 1210 00:59:26,670 --> 00:59:35,630 >> নিশ্চিত করুন পরিচিত করতে s-- নিশ্চিত স্ট্রিং একটি স্ট্রিং ফিরে. 1211 00:59:35,630 --> 00:59:40,280 এবং তারপর এখানে এবং এই সম্ভবত হয় সবচেয়ে গুরুত্বপূর্ণ comment-- পুনরুক্তি 1212 00:59:40,280 --> 00:59:44,450 একটি সময়ে গুলি এক অক্ষর উপর. 1213 00:59:44,450 --> 00:59:47,060 আর আমি কোন ব্যবহার করতে পারে ইংরেজি ভাষা পছন্দ 1214 00:59:47,060 --> 00:59:49,650 এখানে প্রতিটি বর্ণনা করতে এই কোড অংশ. 1215 00:59:49,650 --> 00:59:52,740 >> লক্ষ্য করুন যে, আমি একজন না করা আছে কোড প্রতিটি লাইন মন্তব্য 1216 00:59:52,740 --> 00:59:55,690 সত্যিই আকর্ষণীয় মাত্র বেশী বেশী করে 1217 00:59:55,690 --> 00:59:59,460 কিছু অর্থ আছে আমি প্রতাপ কেউ অতি পরিষ্কার করতে চাই 1218 00:59:59,460 --> 01:00:00,460 আমার কোড পড়া. 1219 01:00:00,460 --> 01:00:02,920 এবং কেন আপনি পেতে আহ্বান করা হয় স্ট্রিং ইনপুট জন্য ব্যবহারকারীকে জিজ্ঞাসা? 1220 01:00:02,920 --> 01:00:05,450 এমনকি যে এক অগত্যা নয় সব যে বর্ণনামূলক. 1221 01:00:05,450 --> 01:00:09,340 কিন্তু এটা একটা গল্প বলি সাহায্য করে, কারণ গল্পের দ্বিতীয় লাইন, নিশ্চিত করুন 1222 01:00:09,340 --> 01:00:10,740 স্ট্রিং পেতে একটি স্ট্রিং ফিরে. 1223 01:00:10,740 --> 01:00:14,260 >> আর গল্পের তৃতীয় লাইন, হয় গুলি এক অক্ষর পুনরুক্তি 1224 01:00:14,260 --> 01:00:15,380 একেবারে. 1225 01:00:15,380 --> 01:00:17,920 আর এখন শুধু ভাল পরিমাপ জন্য, আমি এগিয়ে যান এবং যোগ করতে যাচ্ছি 1226 01:00:17,920 --> 01:00:24,560 আরও একটি মন্তব্য করে শুধু গুলি মুদ্রণ I- তম অক্ষর বলেছেন. 1227 01:00:24,560 --> 01:00:26,520 এখন, আমি কি করেছি দিনের শেষে? 1228 01:00:26,520 --> 01:00:29,190 >> আমি কিছু ইংরেজি যোগ করেছেন মন্তব্য আকারে শব্দ. 1229 01:00:29,190 --> 01:00:32,700 স্ল্যাশ স্ল্যাশ চিহ্ন মানে, হেই, কম্পিউটার এই মানুষের জন্য নয়, 1230 01:00:32,700 --> 01:00:33,820 আপনার জন্য না, কম্পিউটার. 1231 01:00:33,820 --> 01:00:35,119 তাই তারা কথাটি উপেক্ষিত করছি. 1232 01:00:35,119 --> 01:00:35,910 তারা শুধু সেখানে আছেন. 1233 01:00:35,910 --> 01:00:39,830 >> এবং প্রকৃতপক্ষে, এবং CS50 আইডিই তাদের যেমন দেখায় ধূসর, যেমন দরকারী, কিন্তু কী হচ্ছে না 1234 01:00:39,830 --> 01:00:41,000 প্রোগ্রাম. 1235 01:00:41,000 --> 01:00:42,570 লক্ষ্য করুন আপনি এখন কি করতে পারি. 1236 01:00:42,570 --> 01:00:44,950 আপনি সি জানেন কিনা প্রোগ্রামিং বা না, আপনি 1237 01:00:44,950 --> 01:00:47,722 শুধু এই সময়ে ফিরে দাঁড়াতে পারে প্রোগ্রাম, এবং মন্তব্য সর পড়া. 1238 01:00:47,722 --> 01:00:50,180 ইনপুট জন্য ব্যবহারকারীকে জিজ্ঞাসা করুন, নিশ্চিত করা স্ট্রিং একটি স্ট্রিং ফিরে পেতে, 1239 01:00:50,180 --> 01:00:53,009 গুলি অক্ষর পুনরুক্তি একটি সময়ে এক, অক্ষর মুদ্রণ 1240 01:00:53,009 --> 01:00:55,550 ই-তম অক্ষর s-- আপনি না এমনকি কোড তাকান আছে 1241 01:00:55,550 --> 01:00:57,270 বুঝতে কি এই প্রোগ্রাম আছে. 1242 01:00:57,270 --> 01:01:00,280 এবং, এখনো ভালো, যদি আপনি নিজেকে দেখুন এক বা দুই সপ্তাহের মধ্যে এই প্রোগ্রাম এ, 1243 01:01:00,280 --> 01:01:02,280 অথবা এক মাস কিংবা এক বছর, আপনি খুব না 1244 01:01:02,280 --> 01:01:04,420 কোড দিকে তাকিয়ে থাকতে, মনে করার চেষ্টা, 1245 01:01:04,420 --> 01:01:06,630 কি আমি এই কোড দিয়ে কাজ করার চেষ্টা করা হয়েছিল? 1246 01:01:06,630 --> 01:01:07,770 >> আপনি নিজেকে বলেছি. 1247 01:01:07,770 --> 01:01:11,660 আপনি এটা নিজে বর্ণনা করেছি, অথবা কিছু সহকর্মী, বা টিএ, বা মেমরি. 1248 01:01:11,660 --> 01:01:14,860 আর তাই এই এখন হবে সঠিক, এবং ভাল ডিজাইন, 1249 01:01:14,860 --> 01:01:18,210 এবং শেষ পর্যন্ত ভাল শৈলী হিসাবে ভাল. 1250 01:01:18,210 --> 01:01:19,990 তাই মন যে রাখতে না. 1251 01:01:19,990 --> 01:01:22,200 >> তাই সেখানে এক অন্য ব্যাপার জিনিস আমি এখানে করতে যাচ্ছি 1252 01:01:22,200 --> 01:01:28,240 যে এখন প্রকাশ করতে ঠিক কি ফণা নীচে যাচ্ছে. 1253 01:01:28,240 --> 01:01:30,390 সুতরাং এই বৈশিষ্ট্য সি, ও অন্যান্য ভাষায়, 1254 01:01:30,390 --> 01:01:33,010 বলা টাইপকাস্টিং যে হয় পরোক্ষভাবে 1255 01:01:33,010 --> 01:01:37,250 অথবা স্পষ্টভাবে আপনি রূপান্তর করতে পারবেন অন্য একটি ডাটা টাইপ থেকে. 1256 01:01:37,250 --> 01:01:39,800 আমরা তাই হয়েছে আচরণ করেছি পর্যন্ত স্ট্রিং সঙ্গে আজ. 1257 01:01:39,800 --> 01:01:41,250 >> এবং স্ট্রিং অক্ষর. 1258 01:01:41,250 --> 01:01:44,910 কিন্তু সপ্তাহ থেকে প্রত্যাহার 0 চরিত্রগুলোকে কি হয়? 1259 01:01:44,910 --> 01:01:49,334 অক্ষর শুধু একটি বিমূর্ততা সংখ্যার দশমিক সংখ্যার উপরে, 1260 01:01:49,334 --> 01:01:52,500 এবং দশমিক সংখ্যা সত্যিই শুধু একটি হয় বাইনারি সংখ্যার উপরে বিমূর্ততা, 1261 01:01:52,500 --> 01:01:53,720 আমরা এটা হিসাবে সংজ্ঞায়িত. 1262 01:01:53,720 --> 01:01:55,540 >> সুতরাং অক্ষর সংখ্যা. 1263 01:01:55,540 --> 01:01:58,410 এবং সংখ্যার অক্ষর, শুধু প্রসঙ্গের উপর নির্ভর করে. 1264 01:01:58,410 --> 01:02:01,250 আর এটা যে ভিতরে সক্রিয় আউট একটি কম্পিউটার প্রোগ্রাম, 1265 01:02:01,250 --> 01:02:06,830 আপনি কিভাবে আপনি তাকান করতে চান নির্দিষ্ট করতে পারেন যে প্রোগ্রামের ভিতর বিট দিকে? 1266 01:02:06,830 --> 01:02:10,400 >> সপ্তাহে 0 যে আমরা ছিল থেকে প্রত্যাহার ASCII, যা শুধু এই কোড 1267 01:02:10,400 --> 01:02:11,620 নম্বরে ম্যাপিং অক্ষর. 1268 01:02:11,620 --> 01:02:13,660 আর আমরা পিতাকে বললাম, মূলধন একটি 65. 1269 01:02:13,660 --> 01:02:15,860 ক্যাপিটাল বি তাই ঘোষণা 66, এবং. 1270 01:02:15,860 --> 01:02:20,500 >> এবং খেয়াল করুন, আমরা মূলত চর আছে এখানে উপরের সারির, যেমন সি তাদের কল করবে, 1271 01:02:20,500 --> 01:02:23,400 অক্ষর, এবং তারপর দ্বিতীয় সারিতে আপনি ints. 1272 01:02:23,400 --> 01:02:28,180 এবং এটি সক্রিয় আউট আপনি রূপান্তর করতে পারেন অঙ্গীভূতভাবে দুই, সাধারণত মধ্যে. 1273 01:02:28,180 --> 01:02:30,042 আর আমরা কি করতে চান তাহলে এই ইচ্ছাকৃতভাবে আমরা 1274 01:02:30,042 --> 01:02:31,750 মোকাবেলা করার চাইতে পারেন এটার মতো কিছু. 1275 01:02:31,750 --> 01:02:33,590 >> আমরা রূপান্তর করতে পারেন বড় হাতের অক্ষরে অর্ধবৃত্ত 1276 01:02:33,590 --> 01:02:35,330 কেস, বা বড় হাতের অক্ষরে কম ক্ষেত্রে. 1277 01:02:35,330 --> 01:02:38,000 এবং এটি সেখানে এর সক্রিয় আউট আসলে একটি প্যাটার্ন এখানে 1278 01:02:38,000 --> 01:02:39,900 আমরা মাত্র কয়েক মিনিটের মধ্যে আলিঙ্গন করতে পারেন. 1279 01:02:39,900 --> 01:02:44,120 কিন্তু এর একটি প্রথম যাক স্পষ্টভাবে এই কাজ করার উদাহরণ. 1280 01:02:44,120 --> 01:02:46,340 >> আমি CS50 আইডিই ফিরে যেতে চলেছি. 1281 01:02:46,340 --> 01:02:50,640 আমি একটি তৈরি করতে যাচ্ছি ফাইল ASCII 0.c. বলা 1282 01:02:50,640 --> 01:02:55,960 আমি এগিয়ে যান এবং যোগ করতে যাচ্ছি আমার উপরের মান io.h, int প্রধান অকার্যকর 1283 01:02:55,960 --> 01:02:57,370 আমার ফাংশন উপরের. 1284 01:02:57,370 --> 01:03:02,700 এবং তারপর আমি কি করতে যাচ্ছি লুপ জন্য একটি নিম্নলিখিত আমি থেকে সমান, 1285 01:03:02,700 --> 01:03:04,610 স্বীকার করে বলে, 65 দিন. 1286 01:03:04,610 --> 01:03:10,460 >> এবং তারপর আমি কম হতে যাচ্ছে বর্ণমালার 65, প্লাস 26 অক্ষর. 1287 01:03:10,460 --> 01:03:12,640 তাই আমি কম্পিউটার জানাবো সেখানে আমার জন্য গণিত না. 1288 01:03:12,640 --> 01:03:15,100 এবং তারপর এই লুপ ভিতরে, কি আমি প্রিন্ট করতে যাচ্ছি? 1289 01:03:15,100 --> 01:03:19,230 >> % গ% আমি এন ব্যাকস্ল্যাশ হয়. 1290 01:03:19,230 --> 01:03:21,290 এবং এখন আমি দুটি মান চলা করতে চান. 1291 01:03:21,290 --> 01:03:24,530 আমি সাময়িকভাবে প্রশ্ন করেছি সেখানে চিহ্নিত প্রশ্ন আমন্ত্রণ জানাতে. 1292 01:03:24,530 --> 01:03:29,940 >> আমি অনওয়ার্ড 65 থেকে পুনরুক্তি করতে চান বর্ণমালার 26 অক্ষর জন্য, 1293 01:03:29,940 --> 01:03:35,190 প্রতিটি পুনরাবৃত্তির উপর প্রিন্ট আউট করে চরিত্রের অবিচ্ছেদ্য সমতুল্য. 1294 01:03:35,190 --> 01:03:38,299 অন্য কথায়, আমি চাই পুনরুক্তি উপর 26 নম্বর মুদ্রণ 1295 01:03:38,299 --> 01:03:41,590 কি ASCII অক্ষর, অক্ষর, এবং কি সংশ্লিষ্ট সংখ্যা হচ্ছে ÑÑ 1296 01:03:41,590 --> 01:03:44,650 সত্যিই শুধু recreating যে স্লাইড থেকে চার্ট. 1297 01:03:44,650 --> 01:03:47,010 তাই কি এই প্রশ্ন চিহ্ন হওয়া উচিত? 1298 01:03:47,010 --> 01:03:51,760 >> ওয়েল, এটা যে দ্বিতীয় সক্রিয় আউট এক মাত্র পরিবর্তনশীল আমি কি হব. 1299 01:03:51,760 --> 01:03:53,860 আমি দেখতে যে একটি সংখ্যা হিসাবে চান. 1300 01:03:53,860 --> 01:03:58,920 আর মাঝখানে যুক্তি এখানে, আমি কম্পিউটার বলতে পারেন 1301 01:03:58,920 --> 01:04:03,470 যে পূর্ণসংখ্যা আচরণ করা আমি একটি চরিত্র হিসাবে, তাই 1302 01:04:03,470 --> 01:04:05,880 এটা এখানে শতাংশ সি জন্য প্রতিকল্প 1303 01:04:05,880 --> 01:04:07,990 >> অন্য কথায়, যদি আমি, মানুষের প্রোগ্রামার, জানি 1304 01:04:07,990 --> 01:04:09,865 এই মাত্র সংখ্যা দিনের শেষে. 1305 01:04:09,865 --> 01:04:12,500 এবং আমি জানি যে 65 উচিত কিছু অক্ষর ম্যাপ. 1306 01:04:12,500 --> 01:04:15,310 এই সুস্পষ্ ঢালাই সঙ্গে, একটি প্রথম বন্ধনী দিয়ে, 1307 01:04:15,310 --> 01:04:18,840 আপনি করতে চান ডাটা টাইপ এর নাম রূপান্তর, এবং একটি বদ্ধ বন্ধনী, 1308 01:04:18,840 --> 01:04:21,200 আপনি বলতে পারেন কম্পিউটার, হেই, কম্পিউটার, 1309 01:04:21,200 --> 01:04:24,130 একটি গৃহস্থালি এই পূর্ণসংখ্যা রূপান্তর. 1310 01:04:24,130 --> 01:04:26,250 >> তাই যখন আমি এই রান প্রোগ্রাম কম্পাইল করার প্রণালী পর, 1311 01:04:26,250 --> 01:04:29,740 চলুন দেখি আমি কি get-- ASCII 0 করে দিন. 1312 01:04:29,740 --> 01:04:33,020 অভিশাপ এটা, কি আমি ভুল এখানে কি? 1313 01:04:33,020 --> 01:04:35,884 অঘোষিত শনাক্তকারী ব্যবহার করুন, সব ঠিক আছে, ইচ্ছাকৃত নয়, 1314 01:04:35,884 --> 01:04:37,800 কিন্তু দেখা যাক যদি আমরা না করতে পারেন মাধ্যমে এই কারণে. 1315 01:04:37,800 --> 01:04:41,220 >> তাই লাইন পাঁচটি তাই আমি পাইনি সুদূর আপ screwing সামনে. 1316 01:04:41,220 --> 01:04:42,140 ঠিক আছে. 1317 01:04:42,140 --> 01:04:46,560 তাই লাইন 5 আমি জন্য সমান 65-- দেখতে পাচ্ছি. ' 1318 01:04:46,560 --> 01:04:50,130 তাই সি মনে রাখবেন যে, কিছু অসদৃশ যদি আপনি পূর্বে প্রোগ্রামিং আছে প্রত্যেক 1319 01:04:50,130 --> 01:04:52,190 অভিজ্ঞতা, আপনি কম্পিউটার বলতে, 1320 01:04:52,190 --> 01:04:55,040 স্ক্র্যাচ অসদৃশ, কি পরিবর্তনশীল ধরনের তা হল. 1321 01:04:55,040 --> 01:04:56,860 >> এবং আমি একটি কি ফ্রেজ এখানে ভুলে গেছি. 1322 01:04:56,860 --> 01:04:59,200 লাইন পাঁচটি, আমি আমি ব্যবহার শুরু করেছি. 1323 01:04:59,200 --> 01:05:01,560 কিন্তু আমি সি বলা হয়নি কি ডাটা টাইপ হয়. 1324 01:05:01,560 --> 01:05:04,570 তাই আমি এখানে যেতে যাচ্ছি এবং বলে, অই, এটি একটি পূর্ণসংখ্যা করতে. 1325 01:05:04,570 --> 01:05:07,050 >> এখন আমি এগিয়ে যান এবং কম্পাইল যাচ্ছি. 1326 01:05:07,050 --> 01:05:08,080 যে সংশোধন করা হয়েছে. 1327 01:05:08,080 --> 01:05:12,660 ./ascii0 লিখুন, যে শীতল ধরনের. 1328 01:05:12,660 --> 01:05:15,360 নেই শুধু এটা সুপার দ্রুত হয় , কম্পিউটার এই প্রশ্ন জিজ্ঞাসা 1329 01:05:15,360 --> 01:05:18,885 বরং একটি স্লাইডে এটা তাকিয়ে চেয়ে, এটা প্রতি লাইনে একটি প্রিন্ট আউট, একটি 65, 1330 01:05:18,885 --> 01:05:24,860 বি থেকে আমি down-- 66, সব পথ অক্ষর z এর এই 26 বার করেনি, 1331 01:05:24,860 --> 01:05:25,630 যা 90. 1332 01:05:25,630 --> 01:05:27,790 এবং, আসলে, সামান্য আরো বুদ্ধিমান would 1333 01:05:27,790 --> 01:05:31,030 আমার জন্য হয়েছে না নির্ভর করতে কম্পিউটারে 26 যোগ করার জন্য. 1334 01:05:31,030 --> 01:05:34,060 আমি শুধু কাজ করতে পারে 90 পাশাপাশি, এতক্ষণ 1335 01:05:34,060 --> 01:05:37,390 যেমন আমি দুবার একই ভুল করতে না. 1336 01:05:37,390 --> 01:05:41,880 আমি মাধ্যমে যেতে চান z- র, না শুধু ওয়াই মাধ্যমে আপ. 1337 01:05:41,880 --> 01:05:44,000 >> সুতরাং যে একটি সুস্পষ্ নিক্ষিপ্ত হচ্ছে. 1338 01:05:44,000 --> 01:05:47,860 এটা এই যে দেখা যাচ্ছে এমনকি প্রয়োজন নেই. 1339 01:05:47,860 --> 01:05:52,480 আমাকে এগিয়ে যান এবং এই পুন: প্রকাশ করা যাক কম্পাইলার, এবং পুন: প্রকাশ ASCII 0. 1340 01:05:52,480 --> 01:05:54,940 এটা পরিনত হয় যে সি বেশ স্মার্ট. 1341 01:05:54,940 --> 01:05:57,150 >> এবং printf, বিশেষ করে, বেশ স্মার্ট. 1342 01:05:57,150 --> 01:06:01,260 আপনি শুধু একটি আমি দুইবার পাস উভয় স্থানধারক জন্য printf, 1343 01:06:01,260 --> 01:06:04,510 , বুঝতে হবে, ওহ, ভাল আমি আপনাকে চিনি আমাকে একটি কিছু সংখ্যা integer-- দিয়েছিলাম 1344 01:06:04,510 --> 01:06:06,380 65, বা 90, বা যাই হোক না কেন. 1345 01:06:06,380 --> 01:06:10,170 কিন্তু আমি দেখছি তোমরা চাও একটি অক্ষর মত যে সংখ্যা ফরম্যাট. 1346 01:06:10,170 --> 01:06:16,460 আর তাই printf পরোক্ষভাবে নিক্ষেপ করতে পারেন The পাশাপাশি আপনার জন্য একটি গৃহস্থালি int. 1347 01:06:16,460 --> 01:06:19,360 সুতরাং একটি সমস্যা যে এ সব না. 1348 01:06:19,360 --> 01:06:23,100 >> কিন্তু লক্ষ্য করা, এই সমানতা এর কারণ আমরা আসলে এই হিসাবে ভাল করতে পারেন. 1349 01:06:23,100 --> 01:06:26,520 আমাকে এগিয়ে যান এবং এক করা যাক আপাততঃ ASCII 1.c. অন্যান্য সংস্করণ 1350 01:06:26,520 --> 01:06:31,800 আর এর পরিবর্তে উপর iterating ইন্টিজার, সত্যিই আপনার মন গাট্টা করতে পারেন 1351 01:06:31,800 --> 01:06:33,610 অক্ষরের উপর iterating দ্বারা. 1352 01:06:33,610 --> 01:06:37,660 একটি গৃহস্থালি গ মূলধন পায় তাহলে আমি এগিয়ে যান এবং এই কাজ করতে চান, 1353 01:06:37,660 --> 01:06:41,740 এতক্ষণ সি কম বা সমান হিসাবে রাজধানী জেড এবং প্রতিটি পুনরাবৃত্তির 1354 01:06:41,740 --> 01:06:45,690 আমি সি বাড়ায় করতে চাই, আমি যা করতে পারেন এখন আমার printf লাইন এখানে 1355 01:06:45,690 --> 01:06:51,320 বলে, শতাংশ সি শতাংশ আমি আবার, কমা সি 1356 01:06:51,320 --> 01:06:57,200 >> এবং এখন, আমি অন্য দিক যেতে পারেন, চরিত্র স্পষ্টভাবে ঢালাই 1357 01:06:57,200 --> 01:06:58,500 একটি পূর্ণসংখ্যা. 1358 01:06:58,500 --> 01:07:00,560 সুতরাং, আবার, কেন আপনি এই কাজ করতে হবে? 1359 01:07:00,560 --> 01:07:03,830 এটা বাছাই একটু অদ্ভুত অক্ষর পরিপ্রেক্ষিতে গণনা. 1360 01:07:03,830 --> 01:07:07,430 >> কিন্তু যদি তোমরা বুঝতে পার কি ফণা নীচে যাচ্ছে, 1361 01:07:07,430 --> 01:07:08,430 আসলে কোন জাদু. 1362 01:07:08,430 --> 01:07:13,060 আপনি শুধু বলছে, আরে, কম্পিউটার দিতে আমাকে একটি পরিবর্তনশীল টাইপ গৃহস্থালির বলা হয় সি. 1363 01:07:13,060 --> 01:07:16,520 রাজধানী উ এটি আরম্ভ এবং একক উদ্ধৃতি ব্যাপার লক্ষ্য. 1364 01:07:16,520 --> 01:07:19,580 >> সি অক্ষরের জন্য, থেকে প্রত্যাহার গত সপ্তাহে, আপনি একক উদ্ধৃতি চিহ্ন ব্যবহার. 1365 01:07:19,580 --> 01:07:23,720 স্ট্রিং জন্য, শব্দ, বাক্যাংশ, আপনি ডবল কোট ব্যবহার. 1366 01:07:23,720 --> 01:07:27,210 ঠিক আছে, কম্পিউটার, ইহা করিও, তাই চরিত্র যতদিন চেয়ে কম হয় 1367 01:07:27,210 --> 01:07:28,050 অথবা z সমান. 1368 01:07:28,050 --> 01:07:32,640 আর আমি আমার ASCII টেবিল থেকে জানি যে সব এই ASCII কোড এর সংলগ্ন হয়. 1369 01:07:32,640 --> 01:07:33,400 >> কোন ফাঁক নেই. 1370 01:07:33,400 --> 01:07:36,737 তাই এটি শুধু একটি Z দিয়ে হয়, এক নম্বর প্রতিটি দ্বারা বিভক্ত. 1371 01:07:36,737 --> 01:07:38,820 এবং তারপর আমি বাড়ায় পারেন একটি গৃহস্থালি, যদি আমি সত্যিই চান. 1372 01:07:38,820 --> 01:07:40,390 দিনের শেষে, এটা শুধু একটা সংখ্যা. 1373 01:07:40,390 --> 01:07:41,030 আমি এটা জানি. 1374 01:07:41,030 --> 01:07:43,670 তাই আমি শুধু এটা 1 যোগ অনুমান করতে পারেন. 1375 01:07:43,670 --> 01:07:46,940 >> এবং তারপর এই সময়, আমি গ প্রিন্ট, এবং তারপর অবিচ্ছেদ্য সমতুল্য. 1376 01:07:46,940 --> 01:07:50,170 এবং আমি এমনকি সুস্পষ্ নিক্ষিপ্ত করার প্রয়োজন হবে না. 1377 01:07:50,170 --> 01:07:52,680 আমি printf এবং জানাতে পারেন কম্পিউটার চিত্রে কিছু, 1378 01:07:52,680 --> 01:07:57,300 যাতে এখন যদি আমি চালানোর Ascii1./ascii1 করা, 1379 01:07:57,300 --> 01:08:01,520 আমি পাশাপাশি সঠিক একই জিনিস পেতে. 1380 01:08:01,520 --> 01:08:04,530 >> বেহুদা প্রোগ্রাম, কেউ যদিও আসলে লেখার সফ্টওয়্যার যাচ্ছে 1381 01:08:04,530 --> 01:08:07,549 অর্ডার জিনিসটা, কি ছিল সংখ্যা যে একটি মানচিত্র, অথবা B অথবা জেড? 1382 01:08:07,549 --> 01:08:10,340 আপনি শুধু বা এটি Google চলুন, এটি খোঁজা অনলাইন, বা এটি খোঁজা 1383 01:08:10,340 --> 01:08:11,650 একটি স্লাইড, বা মত. 1384 01:08:11,650 --> 01:08:13,520 সুতরাং যেখানে এই আসলে দরকারী পায়্? 1385 01:08:13,520 --> 01:08:15,960 >> আচ্ছা, যে ভাষী স্লাইড, আছে নোটিশ 1386 01:08:15,960 --> 01:08:20,890 য়ের বড়হাতের অক্ষর ছোটহাতের মধ্যে একটি প্রকৃত প্যাটার্ন এখানে এবং ছোট হাতের অক্ষর ব্যবহার আপতিক ছিল না যে. 1387 01:08:20,890 --> 01:08:23,760 লক্ষ করুন যে, রাজধানী একটি 65. 1388 01:08:23,760 --> 01:08:25,830 ছোট হাতের একটি 97. 1389 01:08:25,830 --> 01:08:29,649 আর দূরে কতদূর লোয়ার কেসটি একটি হল? 1390 01:08:29,649 --> 01:08:32,649 >> তাই 65 97 থেকে কতগুলি পদক্ষেপ দূরে? 1391 01:08:32,649 --> 01:08:36,210 সুতরাং 97 বিয়োগ 65 32. 1392 01:08:36,210 --> 01:08:37,910 তাই মূলধন একটি 65. 1393 01:08:37,910 --> 01:08:39,939 আপনি যে 32 যোগ করুন, আপনি একটি ছোট হাতের অক্ষর পেতে. 1394 01:08:39,939 --> 01:08:43,729 আর, equivalently, যদি আপনি 32 বিয়োগ, আপনি মূলধন ফিরে পেতে ছাগু karigor.com বি একই 1395 01:08:43,729 --> 01:08:46,380 সামান্য খ, সামান্য গ বড় সি. 1396 01:08:46,380 --> 01:08:50,670 >> এই ফাঁক সমস্ত 32 সরাইয়া. 1397 01:08:50,670 --> 01:08:54,450 এখন, এই আমাদের অনুমতি মনে হবে মাইক্রোসফট ওয়ার্ড ভালো কিছু না, 1398 01:08:54,450 --> 01:08:57,729 বা Google ডক্স বৈশিষ্ট্য, যেখানে আপনি সবকিছু নির্বাচন করতে পারেন এবং তারপর বলে, 1399 01:08:57,729 --> 01:09:00,520 ছোট হাতের অক্ষর সব পরিবর্তন, বা উপরের ক্ষেত্রে সব পরিবর্তন, 1400 01:09:00,520 --> 01:09:03,840 অথবা শুধুমাত্র প্রথম শব্দ পরিবর্তন বড় হাতের অক্ষরে একটি বাক্য এর. 1401 01:09:03,840 --> 01:09:07,390 আমরা আসলে কিছু করতে পারেন নিজেদেরকে যে মত. 1402 01:09:07,390 --> 01:09:12,645 >> আমাকে এগিয়ে যান এবং একটি ফাইল সংরক্ষণ এখানে 0.c. পুঁজিতে বলা 1403 01:09:12,645 --> 01:09:15,770 আর এর এগিয়ে যান এবং একটি প্রোগ্রাম পিটান দিন যে ঠিক যে নিম্নরূপ করে. 1404 01:09:15,770 --> 01:09:18,460 সুতরাং CS50 লাইব্রেরি অন্তর্ভুক্ত. 1405 01:09:18,460 --> 01:09:21,430 আর মান ইনপুট / আউটপুট অন্তর্ভুক্ত. 1406 01:09:21,430 --> 01:09:22,787 >> আর আমি এই শীঘ্রই আসছে জানি. 1407 01:09:22,787 --> 01:09:24,870 তাই আমি এটা করা যাচ্ছে না সেখানে ইতিমধ্যে, string.h, 1408 01:09:24,870 --> 01:09:26,960 তাই আমি এক্সেস আছে স্টার্লিং ভালো জিনিস, 1409 01:09:26,960 --> 01:09:29,620 এবং তারপর প্রধান অকার্যকর int, যথারীতি. 1410 01:09:29,620 --> 01:09:33,420 এবং তারপর আমি এগিয়ে যেতে চলেছি এবং স্ট্রিং স্ট্রিং পেতে পায়, 1411 01:09:33,420 --> 01:09:35,032 শুধু ব্যবহারকারী থেকে একটি পংক্তি পেতে. 1412 01:09:35,032 --> 01:09:36,740 এবং তারপর আমি যাচ্ছি আমার সদ্বিবেচনা চেক না. 1413 01:09:36,740 --> 01:09:40,510 স্ট্রিং সমান নাল না হলে, তারপর এটা এগিয়ে যেতে নিরাপদ. 1414 01:09:40,510 --> 01:09:42,000 আর আমি কি করতে চাও? 1415 01:09:42,000 --> 01:09:48,700 আমি বারবার থেকে আমি 0 সমান যাচ্ছি, এবং n s এর স্ট্রিং দৈর্ঘ্য পর্যন্ত. 1416 01:09:48,700 --> 01:09:51,899 >> আমি তাই যতদিন এই কাজ করতে যাচ্ছি আমি এন চেয়ে কম হয়, এবং আমি প্লাস প্লাস. 1417 01:09:51,899 --> 01:09:55,060 এ পর্যন্ত, আমি সত্যিই ঠিক আছি আগে থেকে ধারণা ধার. 1418 01:09:55,060 --> 01:09:57,010 এবং এখন আমি একটি শাখা চালু করতে যাচ্ছি. 1419 01:09:57,010 --> 01:09:59,635 >> তাই শয়তান, যেখানে ফিরে মনে আমরা রাস্তা সেই কাঁটা ছিল, 1420 01:09:59,635 --> 01:10:05,110 এবং গত সপ্তাহে সি আমি যাচ্ছি এই বলে, যদি গুলি আই-তম অক্ষর 1421 01:10:05,110 --> 01:10:09,250 হয় তার চেয়ে অনেক বেশী বা যদি একটি অর্ধবৃত্ত সমান, 1422 01:10:09,250 --> 01:10:13,340 and-- ভূত আপনি আক্ষরিক would বলে, কিন্তু সি আপনি বলতে এম্পারসেন্ড, 1423 01:10:13,340 --> 01:10:19,830 ampersand-- এবং এর মধ্যে আই-তম অক্ষর কম বা কেস z- র নত সমান, 1424 01:10:19,830 --> 01:10:21,780 এর আকর্ষণীয় কিছু দিন. 1425 01:10:21,780 --> 01:10:27,020 চলুন শুরু করা যাক আসলে একটি প্রিন্ট আউট কোন সম্পর্কে newline সঙ্গে চরিত্র 1426 01:10:27,020 --> 01:10:31,760 স্ট্রিং মধ্যে চরিত্র, স্ট্রিং মধ্যে আই-তম অক্ষর. 1427 01:10:31,760 --> 01:10:37,420 >> কিন্তু আসুন এগিয়ে যান এবং এটা থেকে 32 বিয়োগ. 1428 01:10:37,420 --> 01:10:42,120 অন্যথায় যদি অক্ষর স্ট্রিং যে আমরা নজর রাখছি 1429 01:10:42,120 --> 01:10:45,950 সামান্য একটি মধ্যবর্তী নয় এবং সামান্য z- র, এগিয়ে যান 1430 01:10:45,950 --> 01:10:48,610 এবং শুধু তা অপরিবর্তিত মুদ্রিত. 1431 01:10:48,610 --> 01:10:50,840 তাই আমরা চালু করেছি এই বন্ধনী স্বরলিপি 1432 01:10:50,840 --> 01:10:53,560 আমাদের স্ট্রিং এ পেতে জন্য I- তম স্ট্রিং মধ্যে চরিত্র. 1433 01:10:53,560 --> 01:10:57,520 >> আমি ভালো কিছু শর্তসাপেক্ষ যুক্তিবিজ্ঞান জুড়েছি, গত সপ্তাহে সপ্তাহে এক, যেখানে মধ্যে ভূত 1434 01:10:57,520 --> 01:10:59,880 আমি শুধু আমার মৌলিক ব্যবহার করছি কি বোঝা 1435 01:10:59,880 --> 01:11:01,130 ফণা নীচে যাচ্ছে. 1436 01:11:01,130 --> 01:11:04,190 s এর I- তম চরিত্র অপেক্ষাকৃত বড় অথবা একটি সমান? 1437 01:11:04,190 --> 01:11:08,290 ভালো লেগেছে, এটা, 97, বা 98 হয় বা 99, এবং তাই ঘোষণা? 1438 01:11:08,290 --> 01:11:11,940 >> কিন্তু এটা আরো কম বা সমান ছোট হাতের z এর মান? 1439 01:11:11,940 --> 01:11:16,210 এবং তাই যদি, এই লাইন কি মানে? 1440 01:11:16,210 --> 01:11:20,250 14, এই সাজানোর পুরো ধারণা জীবাণু, 1441 01:11:20,250 --> 01:11:23,840 দ্বারা চিঠি পুঁজিতে কেবল এটা থেকে 32 বিয়োগ, 1442 01:11:23,840 --> 01:11:29,370 এই ক্ষেত্রে, কারণ আমি জানি, যে প্রতি চার্ট, কিভাবে আমার নম্বর প্রতিনিধিত্ব করা হয়. 1443 01:11:29,370 --> 01:11:33,925 সুতরাং আসুন এগিয়ে যান এবং এই চালানো যাক, 0.c পুঁজিতে পরে কম্পাইল করার প্রণালী, 1444 01:11:33,925 --> 01:11:36,210 এবং রান 0 পুঁজিতে. 1445 01:11:36,210 --> 01:11:40,300 >> এর মত কিছু টাইপ যাক সব ছোট হাতের মধ্যে, Zamyla লিখুন. 1446 01:11:40,300 --> 01:11:42,780 আর এখন আমরা সব বড় হাতের মধ্যে, Zamyla আছে. 1447 01:11:42,780 --> 01:11:45,050 এর সব ছোট হাতের মধ্যে রব এ লিখে দাও. 1448 01:11:45,050 --> 01:11:46,674 এর সব ছোট হাতের মধ্যে জেসন চেষ্টা করা যাক. 1449 01:11:46,674 --> 01:11:48,590 এবং আমরা পেয়ে রাখা বাধ্য মূলধন. 1450 01:11:48,590 --> 01:11:50,960 একটা ছোটখাট বাগ যে আমি ধরনের কহা নি. 1451 01:11:50,960 --> 01:11:54,050 লক্ষ্য করুন আমার নতুন প্রম্পট আপ শেষ হয় তাদের নাম হিসাবে একই লাইনে, 1452 01:11:54,050 --> 01:11:55,520 যা একটু নোংরা মতানুযায়ী. 1453 01:11:55,520 --> 01:11:59,170 >> তাই আমি এখানে যেতে চলেছি, এবং আসলে এই প্রোগ্রাম শেষে 1454 01:11:59,170 --> 01:12:02,110 একটি newline অক্ষর প্রিন্ট আউট. 1455 01:12:02,110 --> 01:12:03,160 এখানেই শেষ. 1456 01:12:03,160 --> 01:12:06,120 printf সঙ্গে, আপনি প্রয়োজন বোধ করেন না ভেরিয়েবল বা বিন্যাস কোডে পাস. 1457 01:12:06,120 --> 01:12:08,460 আপনি আক্ষরিক শুধু মুদ্রণ করতে পারেন একটি newline মত কিছু. 1458 01:12:08,460 --> 01:12:13,529 >> সুতরাং আসুন এগিয়ে যান এবং করা যাক 0 আবার পুঁজিতে, এটা পুন: প্রকাশ করা,, Zamyla. 1459 01:12:13,529 --> 01:12:14,820 আর এখন এটা একটু prettier এর. 1460 01:12:14,820 --> 01:12:17,274 এখন, আমার প্রম্পট নিজস্ব নতুন লাইন হয়. 1461 01:12:17,274 --> 01:12:18,440 সুতরাং যে সব জরিমানা এবং ভাল. 1462 01:12:18,440 --> 01:12:19,910 সুতরাং যে একটা ভাল উদাহরণ. 1463 01:12:19,910 --> 01:12:22,700 এমনকি আমি অগত্যা না হার্ড কোড 32 প্রয়োজন. 1464 01:12:22,700 --> 01:12:23,350 তুমি কি জান? 1465 01:12:23,350 --> 01:12:26,350 আমি কথাই বলতে পারি আমি কি না কি স্মরণ রেখো যা পার্থক্য. 1466 01:12:26,350 --> 01:12:29,330 >> কিন্তু আমি জানি, আমি যদি একটি ছোট হাতের অক্ষর আছে, 1467 01:12:29,330 --> 01:12:34,430 আমি মূলত বন্ধ বিয়োগ করতে চান যাই হোক না কেন দূরত্ব সামান্য মধ্যবর্তী সবকিছুর 1468 01:12:34,430 --> 01:12:39,160 একটি এবং বড় একটি কারণ যদি আমি অনুমান অন্যান্য অক্ষর সব একই, 1469 01:12:39,160 --> 01:12:41,045 যে কাজ করাতে হবে. 1470 01:12:41,045 --> 01:12:42,670 কিন্তু কি যে বদলে, আপনি কি জানেন? 1471 01:12:42,670 --> 01:12:44,240 এখনও অন্য উপায়. 1472 01:12:44,240 --> 01:12:48,090 >> তাহলে যে আমি যদি 1.c-- পুঁজিতে হচ্ছে একটি পৃথক ফাইলে সংরক্ষণ করা হবে. 1473 01:12:48,090 --> 01:12:51,030 এর পুঁজিতে 2.c না নিম্নরূপ দিন. 1474 01:12:51,030 --> 01:12:53,060 আমি সত্যিই এখানে এই পরিষ্কার করতে যাচ্ছি. 1475 01:12:53,060 --> 01:12:57,420 এবং পরিবর্তে এমনকি থাকার জানি বা নিম্ন স্তরের যত্নশীল 1476 01:12:57,420 --> 01:13:01,090 বাস্তবায়ন বিবরণ, আমি বদলে গেছি মাত্র একটি অক্ষর মুদ্রণ যাচ্ছে, 1477 01:13:01,090 --> 01:13:04,610 মূল্যউদ্ধৃতি উদ্ধতি, শতাংশ সি, এবং তারপর অন্য ফাংশন কল করে 1478 01:13:04,610 --> 01:13:09,950 বিদ্যমান যে একটি আর্গুমেন্ট যা চরিত্র, এই মত হল. 1479 01:13:09,950 --> 01:13:12,630 >> এটা সি সক্রিয় আউট, আছে অন্য ফাংশন কল 1480 01:13:12,630 --> 01:13:15,550 উপরের যা তার নামের প্রস্তাব একটি অক্ষর লাগে 1481 01:13:15,550 --> 01:13:19,350 এবং এটা তার উপরের কেস করে তোলে সমতুল্য, এবং তারপর এটি ফেরৎ 1482 01:13:19,350 --> 01:13:21,410 তাই যে printf আছে তা চলা করতে পারেন. 1483 01:13:21,410 --> 01:13:25,484 আর তাই এই কাজ করতে, যদিও, আমি এক অন্য ফাইল প্রবর্তন করা প্রয়োজন. 1484 01:13:25,484 --> 01:13:28,400 এটা দেখা যাচ্ছে আরেকটি ফাইল আছে আউট আপনি শুধুমাত্র বর্গ থেকে জানতে চাই, 1485 01:13:28,400 --> 01:13:33,020 অথবা একটি পাঠ্যবই, বা একটি অনলাইন রেফারেন্স, সি type.h. বলা 1486 01:13:33,020 --> 01:13:38,570 >> সুতরাং যদি আমি যে পর্যন্ত যোগ আমার হেডার মধ্যে ফাইল, এবং এখন পুনরায় কম্পাইল এই প্রোগ্রাম, 1487 01:13:38,570 --> 01:13:43,040 capitalize2 করা, লিখুন ./capitalize2. 1488 01:13:43,040 --> 01:13:46,690 এর সব, Zamyla টাইপ ছোট হাতের অক্ষর ব্যবহার, এখনও একই ভাবে কাজ করে. 1489 01:13:46,690 --> 01:13:48,040 কিন্তু আপনি কি জানেন? 1490 01:13:48,040 --> 01:13:55,590 এটা উপরের থেকে দেখা যাচ্ছে যে অন্য কিছু কার্যকারিতা রয়েছে. 1491 01:13:55,590 --> 01:13:58,410 >> আর আমাকে এই পরিচয় করিয়ে দিন এখানে আদেশ সাজানোর awkwardly 1492 01:13:58,410 --> 01:14:00,250 নামে, কিন্তু ম্যানুয়াল জন্য মানুষ. 1493 01:14:00,250 --> 01:14:03,960 এটা পরিনত হয় যে অধিকাংশ লিনাক্স কম্পিউটার, লিনাক্স অপারেটিং এখানে ব্যবহার করা হয় যেমন 1494 01:14:03,960 --> 01:14:06,270 সিস্টেম একটি কমান্ড আছে বলা মানুষের, যা বলে, 1495 01:14:06,270 --> 01:14:08,530 হেই, কম্পিউটার, আমাকে দিতে কম্পিউটার এর ম্যানুয়াল. 1496 01:14:08,530 --> 01:14:10,680 আপনি চান কি যে পুস্তিকায় সন্ধান? 1497 01:14:10,680 --> 01:14:13,840 >> আমি ফাংশন আপ দেখতে চাই উপরের ডেকে লিখুন. 1498 01:14:13,840 --> 01:14:16,070 এবং এটি একটি সামান্য রহস্যপূর্ণ মাঝে মাঝে পড়তে. 1499 01:14:16,070 --> 01:14:18,780 কিন্তু লক্ষ্য করা আমরা আছেন লিনাক্স প্রোগ্রামার এর ম্যানুয়াল. 1500 01:14:18,780 --> 01:14:19,530 এবং এটা সব লেখা. 1501 01:14:19,530 --> 01:14:21,905 এবং লক্ষ্য করা যে আছে এখানে আপ ফাংশনের নাম. 1502 01:14:21,905 --> 01:14:25,030 এটি সক্রিয় আউট এটি একটি পিসতুত ভাই বলা অর্ধবৃত্ত, যা তার বিপরীত কাজ করে. 1503 01:14:25,030 --> 01:14:29,710 আর সংক্ষিপ্তসার অধীন নোটিশ, এই ব্যবহার করতে man পৃষ্ঠা কাজ, তাই কথা বলতে, 1504 01:14:29,710 --> 01:14:32,220 আমাকে যে আমি কহন হয় গ type.h. অন্তর্ভুক্ত করা প্রয়োজন 1505 01:14:32,220 --> 01:14:33,630 আমি অনুশীলন থেকে জানতেন যে. 1506 01:14:33,630 --> 01:14:36,210 >> এখানে, এটা আমাকে দেখাচ্ছে দুই ফাংশনের জন্য এগুলির নমুনা, 1507 01:14:36,210 --> 01:14:39,070 যাতে আমি কখনও এই ব্যবহার করতে চান তাহলে আমি জানি যা তারা ইনপুট হিসাবে গ্রহণ করে, 1508 01:14:39,070 --> 01:14:40,652 এবং কি তারা আউটপুট হিসাবে ফিরে. 1509 01:14:40,652 --> 01:14:42,360 এবং তারপর যদি আমি পড়তে বর্ণনা, আমি দেখতে 1510 01:14:42,360 --> 01:14:44,820 আরো বিস্তারিতভাবে কি ফাংশন আছে. 1511 01:14:44,820 --> 01:14:48,100 কিন্তু আরো গুরুত্বপূর্ণ, যদি আমি, ফেরত মান অধীনে দেখুন 1512 01:14:48,100 --> 01:14:51,710 এটা বলছেন ফিরে মান রূপান্তরিত অক্ষর যে, 1513 01:14:51,710 --> 01:14:57,880 বা সি, মূল ইনপুট, যদি রূপান্তর সম্ভব ছিল না. 1514 01:14:57,880 --> 01:15:01,992 >> অন্য কথায়, উপরের চেষ্টা করবে বড় হাতের অক্ষরে একটি চিঠি রূপান্তর করতে. 1515 01:15:01,992 --> 01:15:03,450 আর যদি তাই হয়, তা ফিরে যাচ্ছে. 1516 01:15:03,450 --> 01:15:07,010 কিন্তু যদি কিছু reason-- জন্য না এটা করতে পারেন হয়ত এটা ইতিমধ্যে উপরের কেস, 1517 01:15:07,010 --> 01:15:09,550 হয়ত এটা একটি বিস্ময়বোধক বিন্দু বা অন্য কিছু punctuation-- 1518 01:15:09,550 --> 01:15:12,200 এটা ঠিক যাচ্ছে মূল সি ফিরে, 1519 01:15:12,200 --> 01:15:17,340 যার মানে আমি আমার কোড করতে পারেন ভাল নিম্নরূপ পরিকল্পিত. 1520 01:15:17,340 --> 01:15:20,580 >> আমি সব প্রয়োজন হবে না এই কোড অভিশাপ লাইন. 1521 01:15:20,580 --> 01:15:22,610 লাইন আমি করেছি সব শুধু হাইলাইট করতে পারেন 1522 01:15:22,610 --> 01:15:28,700 মাত্র এক সহজ মধ্যে ধসে পড়ে যাবে লাইন, যা আপাততঃ printf, শতাংশ 1523 01:15:28,700 --> 01:15:33,510 উপরের এস বন্ধনী আমি আনু. 1524 01:15:33,510 --> 01:15:36,090 আর এই একটি হবে ভাল ডিজাইন এর উদাহরণ. 1525 01:15:36,090 --> 01:15:40,040 >> কেন 7 বা 8 লাইন বাস্তবায়ন কোডের, যাই হোক না কেন এটা আমি ঠিক ছিল 1526 01:15:40,040 --> 01:15:44,960 মুছে ফেলা যখন আপনি পরিবর্তে ঢলে পড়তে পারে যুক্তি ও সিদ্ধান্ত গ্রহণের সব 1527 01:15:44,960 --> 01:15:49,620 এক একক লাইন, 13 এখন, সেই একটি লাইব্রেরি উপর নির্ভর করে একটি ফাংশান 1528 01:15:49,620 --> 01:15:53,430 একটি ফাংশন যে সি সাথে আসে, কিন্তু যে কি আপনি এটি করতে চান ঠিক আছে. 1529 01:15:53,430 --> 01:15:55,295 এবং অকপটে, এমনকি যদি এটা সি সাথে আসা হয়নি, 1530 01:15:55,295 --> 01:15:58,880 আপনি এটা নিজেকে বাস্তবায়ন হতে পারে, যেমন আমরা দেখা করেছি, নেতিবাচক int- পেতে সঙ্গে 1531 01:15:58,880 --> 01:16:01,700 এবং ইতিবাচক কোন int গত সপ্তাহে পাশাপাশি পেতে. 1532 01:16:01,700 --> 01:16:03,470 >> এই কোড এখন অনেক বেশি পাঠযোগ্য. 1533 01:16:03,470 --> 01:16:06,670 এবং প্রকৃতপক্ষে, আমরা স্ক্রল আপ যদি, কত আরো কম্প্যাক্ট দেখুন 1534 01:16:06,670 --> 01:16:08,360 আমার প্রোগ্রামের এই সংস্করণ. 1535 01:16:08,360 --> 01:16:11,230 এটা একটা সামান্য উপরের ভারী এখন, এই সব রয়েছে. 1536 01:16:11,230 --> 01:16:14,380 কিন্তু যে ঠিক আছে, কারণ এখন আমি দাঁড়িয়ে আছি প্রোগ্রামারদের কাঁধে 1537 01:16:14,380 --> 01:16:15,300 আমার আগে. 1538 01:16:15,300 --> 01:16:18,440 আর কেহ ছিল যারা সত্যিই উপরের বাস্তবায়িত 1539 01:16:18,440 --> 01:16:21,470 আমাকে একটা উপকার করেনি অনেক মত কেহ বাস্তবায়িত স্টারলিং সত্যিই 1540 01:16:21,470 --> 01:16:24,790 আমার একটা উপকার কিছু সময় আগে করেনি. 1541 01:16:24,790 --> 01:16:26,970 আর তাই এখন আমরা একটি আছে ভাল ডিজাইন প্রোগ্রাম 1542 01:16:26,970 --> 01:16:31,680 যে সঠিক একই যুক্তি প্রয়োগ করা হয়. 1543 01:16:31,680 --> 01:16:35,580 >> স্টারলিং কথা বলছেন, দিন আমাকে এগিয়ে যান এবং এই কাজের জন্য. 1544 01:16:35,580 --> 01:16:38,320 আমাকে এগিয়ে যান এবং সংরক্ষণ করুন এই ফাইলটি stirling.c হিসাবে. 1545 01:16:38,320 --> 01:16:43,255 এবং এটি সক্রিয় আউট, আমরা ফিরে ছুলা পারেন এক অন্য স্তর চমত্কার সহজভাবে এখন. 1546 01:16:43,255 --> 01:16:45,630 আমি এগিয়ে এবং চাবুক যেতে যাচ্ছি প্রধান অন্য প্রোগ্রাম 1547 01:16:45,630 --> 01:16:49,759 এখানে যে কেবল পুনরায় কার্যে স্ট্রিং দৈর্ঘ্য নিম্নরূপ. 1548 01:16:49,759 --> 01:16:52,300 তাই এখানে কোড একটি লাইন যে আমাকে ব্যবহারকারী থেকে একটি পংক্তি পায়. 1549 01:16:52,300 --> 01:16:53,910 আমরা আবার এবং আবার এই ব্যবহার করতে থাকুন. 1550 01:16:53,910 --> 01:16:58,900 আমার নিজেকে একটি পরিবর্তনশীল নামক দিই টাইপ int যে একটি সংখ্যা সঞ্চয় এন. 1551 01:16:58,900 --> 01:17:02,490 >> এবং আমাকে এগিয়ে যান এবং নিম্নলিখিত যুক্তিবিজ্ঞান না. 1552 01:17:02,490 --> 01:17:15,610 গুলি মধ্যে n- তম চরিত্র যদিও সমান নয় ব্যাকস্ল্যাশ 0, এগিয়ে যান 1553 01:17:15,610 --> 01:17:17,930 এবং n বাড়ায়. 1554 01:17:17,930 --> 01:17:23,506 এবং তারপর printf শতাংশ আমি এন প্রিন্ট আউট. 1555 01:17:23,506 --> 01:17:29,200 আমি যে এই প্রোগ্রাম এখানে দাবি, স্ট্রিং দৈর্ঘ্য কলিং ছাড়া, 1556 01:17:29,200 --> 01:17:31,150 একটি স্ট্রিং এর দৈর্ঘ্য পরিসংখ্যান আউট. 1557 01:17:31,150 --> 01:17:34,600 >> আর যাদু গোটাটাই লাইন 8 encapsulated 1558 01:17:34,600 --> 01:17:39,830 এখানে কি নতুন সিনট্যাক্স মত দেখায় সঙ্গে, এই ব্যাকস্ল্যাশ 0 একক উদ্ধৃতি. 1559 01:17:39,830 --> 01:17:41,360 কিন্তু কেন এমন হল? 1560 01:17:41,360 --> 01:17:44,100 আচ্ছা, কি বিবেচনা করা হয়েছে এই সব সময় চলছে. 1561 01:17:44,100 --> 01:17:47,990 >> এবং একটি সরাইয়া আগে আমি ভুলে যাই, বুঝতে হিসাবে খুব, যে ব্যক্তি পৃষ্ঠাগুলি ছাড়াও 1562 01:17:47,990 --> 01:17:50,920 যে একটি টিপিক্যাল সঙ্গে আসা এবং CS50 আইডিই মত লিনাক্স সিস্টেম, 1563 01:17:50,920 --> 01:17:53,770 বুঝতে পারি যে আমরা, অবশ্যই এর কর্মী, এছাড়াও আছে 1564 01:17:53,770 --> 01:17:56,030 একটি ওয়েবসাইট সংস্করণ তৈরি এই একই ধারণা নামক 1565 01:17:56,030 --> 01:17:59,940 reference.cs50.net, যা ঐ একই ব্যক্তি পেজের সব, 1566 01:17:59,940 --> 01:18:02,020 যে একই সব ডকুমেন্টেশন, সেইসাথে 1567 01:18:02,020 --> 01:18:05,730 উপরের যে দেয় একটি সামান্য বাক্স আপনি মোটামুটি সব রূপান্তর করতে 1568 01:18:05,730 --> 01:18:09,025 কম আরামদায়ক মধ্যে রহস্যময় ভাষা মোড, যেখানে আমরা, শিক্ষণ কর্মী, 1569 01:18:09,025 --> 01:18:12,150 মাধ্যমে সর্বস্বান্ত এবং প্রক্রিয়া সহজ করার চেষ্টা করেছি কিছু রাখার ভাষা কিছু 1570 01:18:12,150 --> 01:18:14,830 ধারণা না নিবদ্ধ, এবং পরিভাষা কিছু. 1571 01:18:14,830 --> 01:18:20,070 তাই মনে রাখা, reference.cs50.net অন্য সম্পদ পাশাপাশি. 1572 01:18:20,070 --> 01:18:23,800 >> কিন্তু কেন স্ট্রিং দৈর্ঘ্য কাজ করে উপায় আমি আগে একটি মুহূর্ত প্রস্তাবিত? 1573 01:18:23,800 --> 01:18:25,160 এখানে, Zamyla নাম আবার. 1574 01:18:25,160 --> 01:18:27,690 আর এখানে, Zamyla এর নাম , এ boxed হিসাবে আমি করছেন রাখা, 1575 01:18:27,690 --> 01:18:31,360 এটা হচ্ছে একটা ছবি অঙ্কন করা, সত্যিই, মাত্র অক্ষরের একটি ক্রম. 1576 01:18:31,360 --> 01:18:34,260 কিন্তু, Zamyla অস্তিত্ব নেই একটি প্রোগ্রাম একলা. 1577 01:18:34,260 --> 01:18:37,420 >> যখন আপনি লিখুন এবং একটি প্রোগ্রাম চালানো, আপনি আপনার ম্যাক বা আপনার পিসি ব্যবহার করছেন 1578 01:18:37,420 --> 01:18:40,010 মেমরি, অথবা RAM- র হিসাবে, তাই কথা বলতে. 1579 01:18:40,010 --> 01:18:42,620 এবং আপনি মনে করতে পারেন থাকার হিসাবে আপনার কম্পিউটার 1580 01:18:42,620 --> 01:18:44,730 মেমরি গিগাবাইট আজকাল প্রচুর. 1581 01:18:44,730 --> 01:18:47,700 এবং একটি কোঁচ বিলিয়ান মানে, তাই বাইট বিলিয়ান. 1582 01:18:47,700 --> 01:18:48,910 >> কিন্তু এর সময় গুটিয়ে দেওয়া. 1583 01:18:48,910 --> 01:18:51,530 এবং যে আমরা ব্যবহার করছি অনুমান করা সত্যিই একটি পুরাতন কম্পিউটার যে 1584 01:18:51,530 --> 01:18:55,150 ওনলি মেমোরি 32 বাইট আছে. 1585 01:18:55,150 --> 01:18:59,310 আমি পারতাম, আমার কম্পিউটারের পর্দায়, কেবল এই আউট আঁকা নিম্নরূপ. 1586 01:18:59,310 --> 01:19:05,240 >> আমি শুধু বলতে পারে যে আমার কম্পিউটার এই মেমরি সব আছে. 1587 01:19:05,240 --> 01:19:08,830 আর এই একটি মেমরি স্টিক মত, যদি আপনি শেষ সময় থেকে আমাদের ছবি প্রত্যাহার. 1588 01:19:08,830 --> 01:19:11,670 আর আমি যদি শুধু বিভক্ত পর্যাপ্ত সময়ের মধ্যে এই, 1589 01:19:11,670 --> 01:19:15,040 আমি দাবী আমি 32 বাইট আছে পর্দায় মেমরি. 1590 01:19:15,040 --> 01:19:18,239 >> শুধুমাত্র এখন বাস্তবে, আমি করতে পারেন এখানে এই পর্দায় এতদূর আঁকা. 1591 01:19:18,239 --> 01:19:20,280 তাই আমি এগিয়ে যেতে চলেছি এবং শুধু কনভেনশন দ্বারা, 1592 01:19:20,280 --> 01:19:24,050 একটি যেমন আমার কম্পিউটার এর মেমরি আঁকা গ্রিড, না, ঠিক যেমন এক সরল রেখা. 1593 01:19:24,050 --> 01:19:28,190 বিশেষ করে, আমি এখন যে দাবি এই গ্রিড, এই 8 4 গ্রিড, 1594 01:19:28,190 --> 01:19:31,800 শুধু সব 32 বাইট প্রতিনিধিত্ব করে আমার ম্যাক পাওয়া মেমরি, 1595 01:19:31,800 --> 01:19:33,030 অথবা আমার পিসি পাওয়া যায়. 1596 01:19:33,030 --> 01:19:34,780 তাঁরা মোড়কে করছি উপর থেকে দুই লাইন, শুধু 1597 01:19:34,780 --> 01:19:38,030 কারণ এটা পর্দায় দেখাচ্ছে. 1598 01:19:38,030 --> 01:19:40,800 কিন্তু এই প্রথম বাইট. 1599 01:19:40,800 --> 01:19:41,990 এই দ্বিতীয় বাইট. 1600 01:19:41,990 --> 01:19:43,300 এই তৃতীয় বাইট. 1601 01:19:43,300 --> 01:19:45,310 >> আর এই 32nd বাইট. 1602 01:19:45,310 --> 01:19:52,910 অথবা, আমরা একটি কম্পিউটার এর মত মনে হয় বিজ্ঞানী, এই বাইট 0, 1, 2, 3, 31. 1603 01:19:52,910 --> 01:19:55,950 তাই আপনি যদি 31 0 আছে, যদি আপনি 0 থেকে গণনা শুরু. 1604 01:19:55,950 --> 01:19:59,830 >> তাই আপনি যদি আমরা একটি প্রোগ্রাম ব্যবহার যে কল স্ট্রিং পেতে, 1605 01:19:59,830 --> 01:20:05,280 এবং আমরা মানুষের কাছ থেকে একটি পংক্তি পেতে মত আমি, Zamyla বলা হয়নি, জেড-এ-এম-ওয়াই-এল-এ, 1606 01:20:05,280 --> 01:20:09,430 কিভাবে এ দুনিয়া আছে কম্পিউটার সম্পর্কে অবগত থাকুন যা বাইট, 1607 01:20:09,430 --> 01:20:12,230 যা মেমরি খণ্ড, যা স্ট্রিং জন্যে? 1608 01:20:12,230 --> 01:20:16,270 অন্য কথায়, যদি আমরা এগিয়ে যেতে কম্পিউটারের মধ্যে অন্য একটি নাম টাইপ করুন, 1609 01:20:16,270 --> 01:20:19,890 এই Andi, মত, কলিং স্ট্রিং একটি দ্বিতীয় সময় পেতে, 1610 01:20:19,890 --> 01:20:23,030 একটি-এন-ডি-ই শেষ পর্যন্ত হয়েছে কম্পিউটার এর মেমরি হিসাবে ভাল. 1611 01:20:23,030 --> 01:20:23,850 কিন্তু কিভাবে? 1612 01:20:23,850 --> 01:20:29,700 >> ওয়েল, দেখা যাচ্ছে যে নীচে ফণা, কি সি যখন পংক্তি সংরক্ষণ করে 1613 01:20:29,700 --> 01:20:35,080 যে মানুষের ধরনের, বা যে কিছু অন্যান্য উৎস থেকে আসা, এটা 1614 01:20:35,080 --> 01:20:39,190 সঙ্গে তাদের শেষ delineates একটি বিশেষ চরিত্র ব্যাকস্ল্যাশ 1615 01:20:39,190 --> 01:20:44,750 0, যা শুধু একটি বিশেষ উপায় একটি সারিতে 80 বিট বলছে. 1616 01:20:44,750 --> 01:20:47,950 >> সুতরাং ছাগু karigor.com এই সংখ্যা 97 রিকল হয়. 1617 01:20:47,950 --> 01:20:51,770 তাই 8 বিট কিছু প্যাটার্ন দশমিক সংখ্যা 97 প্রতিনিধিত্ব করে. 1618 01:20:51,770 --> 01:20:58,070 এই ব্যাকস্ল্যাশ 0 আক্ষরিক সংখ্যা হল 0, ওরফে nul, এন-ইউ-এল, আগে অসদৃশ, 1619 01:20:58,070 --> 01:20:59,630 এন ইউ-এল-এল, যা আমরা স্বপ্ন. 1620 01:20:59,630 --> 01:21:05,700 কিন্তু এখন জন্য, শুধু এই যে জানি ব্যাকস্ল্যাশ 0 পরপর মাত্র 80 বিট. 1621 01:21:05,700 --> 01:21:09,810 >> এবং এটা ঠিক যে এই লাইন বালি যে বাম খারাপ কিছু বলে 1622 01:21:09,810 --> 01:21:12,610 এক পংক্তি, অথবা একটি ডেটা প্রকার জন্যে. 1623 01:21:12,610 --> 01:21:15,480 আর ডানদিকে কিছু অন্য কিছু করার জন্যে. 1624 01:21:15,480 --> 01:21:17,440 Andi, নাম, এদিকে, যা শুধু চাক্ষুষরূপে 1625 01:21:17,440 --> 01:21:21,310 অন্যান্য লাইন মোড়ানো ঘটবে, কিন্তু যে শুধু একটি নান্দনিক বিস্তারিত আছে, 1626 01:21:21,310 --> 01:21:23,990 একইভাবে nul পর্যবসিত হয়. 1627 01:21:23,990 --> 01:21:29,290 >> এটা একটি-এন-ডি-আমি অক্ষরের একটি পংক্তি, প্লাস একটি পঞ্চম গোপন চরিত্র, 1628 01:21:29,290 --> 01:21:33,560 সব 0 বিট, যে শুধু demarcates Andi, এর নামের শেষে পাশাপাশি. 1629 01:21:33,560 --> 01:21:37,120 আর স্ট্রিং তৃতীয়বার পেতে যদি আমরা কল কম্পিউটারে মত একটি পংক্তি পেতে 1630 01:21:37,120 --> 01:21:44,210 মারিয়া, এম-এ-আর-আই-এ, একভাবে মারিয়ার হয় নাম nul ব্যাকস্ল্যাশ 0 দিয়ে শেষ করা. 1631 01:21:44,210 --> 01:21:47,170 >> এই মৌলিকভাবে ভিন্ন থেকে কিভাবে একটি কম্পিউটার সাধারণত would 1632 01:21:47,170 --> 01:21:51,850 একটি পূর্ণসংখ্যা, অথবা একটি float, অথবা অন্য সংরক্ষণ করে এখনও ধরনের তথ্য, কারণ রিকল, 1633 01:21:51,850 --> 01:21:57,420 একটি পূর্ণসংখ্যা সাধারণত 32 বিট, বা 4 বাইট, হয়তো বা এমনকি 64 বিট, 1634 01:21:57,420 --> 01:21:59,100 বা আট বাইট. 1635 01:21:59,100 --> 01:22:02,620 কিন্তু একটি কম্পিউটার অনেক আদিম একটি প্রোগ্রামিং ভাষা 1636 01:22:02,620 --> 01:22:05,550 একটি নির্দিষ্ট নম্বর আছে hood-- নীচে বাইট 1637 01:22:05,550 --> 01:22:08,100 হয়তো 1, হয়তো 2, হয়তো 4, হয়তো 8. 1638 01:22:08,100 --> 01:22:13,250 >> কিন্তু স্ট্রিং, নকশা দ্বারা, একটি আছে অক্ষর গতিশীল সংখ্যা. 1639 01:22:13,250 --> 01:22:16,980 আপনি আগাম জানি না, যতক্ষণ না জেড-এ-এম-ওয়াই-এল-এ মানব ধরনের, 1640 01:22:16,980 --> 01:22:21,400 বা M-ক-আর-আই-এ, অথবা A-এন-ডি-আমি. তুমি জানো না কতবার ব্যবহারকারী আঘাত যাচ্ছে 1641 01:22:21,400 --> 01:22:22,070 কীবোর্ড. 1642 01:22:22,070 --> 01:22:26,490 অতএব, আপনি কিভাবে জানি না আগাম অনেক অক্ষর 1643 01:22:26,490 --> 01:22:27,540 আপনি প্রয়োজন চলুন. 1644 01:22:27,540 --> 01:22:31,840 >> আর তাই সি শুধু ধরনের একটি মত ছেড়ে ফণা নীচে গোপন ব্রেডক্রম্বে 1645 01:22:31,840 --> 01:22:32,960 পংক্তির শেষে. 1646 01:22:32,960 --> 01:22:39,280 মেমরির মধ্যে Z-একটি-এম-ওয়াই-এল-এ সংরক্ষণকারী পর এটা শুধু সমতুল্য রাখে 1647 01:22:39,280 --> 01:22:40,210 একটি যুগের. 1648 01:22:40,210 --> 01:22:45,060 একটি বাক্য শেষে, এটা 80 বিট রাখে, তাই 1649 01:22:45,060 --> 01:22:49,120 মনে রাখা যেখানে , Zamyla শুরু হয় এবং শেষ হয়. 1650 01:22:49,120 --> 01:22:51,490 >> তাই সংযোগ কি, তারপর, এই প্রোগ্রামের? 1651 01:22:51,490 --> 01:22:55,190 এখানে এই প্রোগ্রামটি, স্টারলিং, কেবল একটি প্রক্রিয়া 1652 01:22:55,190 --> 01:22:57,970 একটি স্ট্রিং পেয়ে জন্য ব্যবহারকারী থেকে, লাইন 6. 1653 01:22:57,970 --> 01:23:01,160 লাইন 7, আমি একটি ভেরিয়েবল ডিক্লেয়ার এন ডেকে এটা 0 সমান সেট. 1654 01:23:01,160 --> 01:23:08,680 >> এবং তারপর লাইন 8, কেবল আমি জিজ্ঞাসা প্রশ্ন, যখন n তম চরিত্র আছে 1655 01:23:08,680 --> 01:23:12,120 সমান নয় সব 0 bits-- অন্য কথায়, না 1656 01:23:12,120 --> 01:23:14,500 সমান এই বিশেষ চরিত্র, ব্যাকস্ল্যাশ 0, যা 1657 01:23:14,500 --> 01:23:18,470 শুধু যে বিশেষ nul চরিত্র ছিল এগিয়ে যান এবং শুধু এন বাড়ায়. 1658 01:23:18,470 --> 01:23:21,460 >> আর এটা করছেন রাখা, এবং রাখা এরকম, এবং তা করছেন রাখা. 1659 01:23:21,460 --> 01:23:23,430 এমনকি যদিও গত আমরা আমি ব্যবহার করেছি, 1660 01:23:23,430 --> 01:23:25,181 এটা পুরোপুরি সূক্ষ্ম শব্দার্থগতভাবে n ব্যবহার করতে, 1661 01:23:25,181 --> 01:23:27,430 আপনি শুধু চেষ্টা করছি ইচ্ছাকৃতভাবে এই সময় গণনা, 1662 01:23:27,430 --> 01:23:28,720 এবং শুধু এটি এন কল করতে চান. 1663 01:23:28,720 --> 01:23:34,720 সুতরাং এই মাত্র প্রশ্ন জিজ্ঞাসা রাখে, গুলি সব 0 সেঃ n- তম চরিত্র? 1664 01:23:34,720 --> 01:23:38,470 যদি তা না হয়, পরবর্তী বর্ণন চেহারা, পাশের চেহারা পরবর্তী চেহারা, 1665 01:23:38,470 --> 01:23:39,460 পরবর্তী চেহারা. 1666 01:23:39,460 --> 01:23:45,540 >> কিন্তু যত তাড়াতাড়ি আপনি ব্যাকস্ল্যাশ 0 দেখতে যেমন, 11-- মাধ্যমে এই লুপ লাইন 9 স্টপ. 1667 01:23:45,540 --> 01:23:49,640 আপনি যখন লুপ আউট বিরতি, যে পরিবর্তনশীল n এর ভিতরে যাব 1668 01:23:49,640 --> 01:23:54,530 সমস্ত একটি মোট গণনা আপনি স্ট্রিং দেখেছি অক্ষর, 1669 01:23:54,530 --> 01:23:55,660 যার ফলে এটি প্রিন্ট আউট. 1670 01:23:55,660 --> 01:23:56,760 তাই আসুন এই চেষ্টা. 1671 01:23:56,760 --> 01:23:59,500 >> আমাকে এগিয়ে যান এবং ছাড়া, স্টারলিং ফাংশন ব্যবহার করে, 1672 01:23:59,500 --> 01:24:04,240 কিন্তু শুধু আমার নিজের গড়ে ওঠা সংস্করণ ব্যবহার এখানে স্টারলিং ডেকে আমাকে এগিয়ে যান 1673 01:24:04,240 --> 01:24:07,700 এবং রান স্টারলিং, কিছু টাইপ , Zamyla, যা আমি অগ্রিম জানা মত 1674 01:24:07,700 --> 01:24:08,670 ছয় অক্ষর. 1675 01:24:08,670 --> 01:24:10,080 চলুন শুরু করা যাক এটি কাজ করে দেখুন. 1676 01:24:10,080 --> 01:24:10,920 প্রকৃতপক্ষে, এটা ছয় নেই. 1677 01:24:10,920 --> 01:24:15,257 এর রব সঙ্গে চেষ্টা করা যাক, তিন অক্ষর, তিনটি অক্ষর পাশাপাশি, এবং তাই ঘোষণা. 1678 01:24:15,257 --> 01:24:17,340 তাই যে সমস্ত যে যাচ্ছে ফণা নীচে. 1679 01:24:17,340 --> 01:24:19,548 আর সংযোগ লক্ষ্য, তারপর, প্রথম সপ্তাহে 1680 01:24:19,548 --> 01:24:22,370 ক্লাসের, যেখানে আমরা স্বপ্ন বিমূর্ততা মত কিছু, 1681 01:24:22,370 --> 01:24:26,960 যা শুধু ধারণা এই প্রলেপের হয়, অথবা জটিলতা, মৌলিক নীতির উপরে. 1682 01:24:26,960 --> 01:24:30,710 এখানে, আমরা সাজানোর বেরাচ্ছেন স্টারলিং এর ফণা নীচে, 1683 01:24:30,710 --> 01:24:33,510 তাই কথা বলতে, জিনিসটা, এটা কিভাবে বাস্তবায়িত হবে? 1684 01:24:33,510 --> 01:24:35,232 >> আর আমরা নিজেদের পুনরায় বাস্তবায়ন করতে পারে. 1685 01:24:35,232 --> 01:24:37,440 কিন্তু আমরা কখনও আবার চলুন পুনরায় বাস্তবায়ন স্টারলিং. 1686 01:24:37,440 --> 01:24:39,780 আমরা শুধু চলুন অনুক্রমে স্টারলিং ব্যবহার 1687 01:24:39,780 --> 01:24:42,100 আসলে কিছু স্ট্রিং দৈর্ঘ্য পেতে. 1688 01:24:42,100 --> 01:24:44,200 >> কিন্তু সেখানে কোন জাদু ফণা নীচে. 1689 01:24:44,200 --> 01:24:46,716 যে নীচে যদি তোমরা জানতে ফণা, একটি স্ট্রিং 1690 01:24:46,716 --> 01:24:48,090 শুধু অক্ষরের একটি ক্রম. 1691 01:24:48,090 --> 01:24:51,090 এবং অক্ষরের ক্রমের সব সংখ্যার সুরাহা করা যেতে পারে 1692 01:24:51,090 --> 01:24:53,330 বন্ধনী 0, বন্ধনী সঙ্গে 1, বন্ধনী 2, এবং আপনি 1693 01:24:53,330 --> 01:24:57,420 জানি যে একটি পংক্তির শেষে একটি হল বিশেষ অক্ষর, আপনি চিন্তা করতে পারেন 1694 01:24:57,420 --> 01:25:01,710 কিভাবে একটি সবচেয়ে কিছু করতে প্রোগ্রাম, সব কারণ এটি boils নিচে 1695 01:25:01,710 --> 01:25:03,400 পড়া এবং মেমরি লেখা হয়. 1696 01:25:03,400 --> 01:25:06,130 অর্থাৎ পরিবর্তন এবং খুঁজছি মেমরি, বা কিছু চলন্ত 1697 01:25:06,130 --> 01:25:10,940 স্মৃতিতে প্রায়, মুদ্রণ কিছু পর্দা, এবং তাই ঘোষণা উপর. 1698 01:25:10,940 --> 01:25:14,800 >> তাই আসুন এখন এই নতুন ব্যবহার আসলে স্ট্রিং বোঝা 1699 01:25:14,800 --> 01:25:17,910 ফণা নীচে হয়, এবং ফিরে ছুলা এক অন্য স্তর 1700 01:25:17,910 --> 01:25:20,080 যে এখন পর্যন্ত আমরা করেছি পুরাপুরি উপেক্ষা করা হয়েছে. 1701 01:25:20,080 --> 01:25:22,650 বিশেষ করে, যে কোন সময় যে আমরা একটি প্রোগ্রাম প্রয়োগ করেছি, 1702 01:25:22,650 --> 01:25:25,930 আমরা কোড এই লাইন ছিল করেছি উপরের অংশে প্রধান প্রকাশক. 1703 01:25:25,930 --> 01:25:27,810 এবং আমরা int প্রধান অকার্যকর উল্লেখ করেছি. 1704 01:25:27,810 --> 01:25:31,240 >> এবং প্রথম বন্ধনী ভিতরে যে শূন্যতা এই সব সময় বলছে হয়েছে যে প্রধান 1705 01:25:31,240 --> 01:25:33,440 নিজেই কোনো আর্গুমেন্ট গ্রহণ করা হয় না. 1706 01:25:33,440 --> 01:25:36,210 কোন ইনপুট প্রধান যে ব্যবহারকারী থেকে পেতে যাচ্ছেন 1707 01:25:36,210 --> 01:25:39,020 অন্য কিছু থেকে আসা হয়েছে প্রক্রিয়া, মত কোন int পেতে, 1708 01:25:39,020 --> 01:25:42,040 অথবা ভাসা পেতে, বা স্ট্রিং পেতে, বা অন্য কিছু ফাংশন. 1709 01:25:42,040 --> 01:25:44,710 কিন্তু দেখা যাচ্ছে যে যখন আপনি একটি প্রোগ্রাম লিখতে, 1710 01:25:44,710 --> 01:25:47,690 আপনি আসলে নির্দিষ্ট করতে পারেন যে এই প্রোগ্রাম পাবে 1711 01:25:47,690 --> 01:25:51,730 মানুষের কাছ থেকে ইনপুট নিতে কমান্ড লাইন নিজেই এ. 1712 01:25:51,730 --> 01:25:56,310 >> অন্য কথায়, যদিও আমরা এ পর্যন্ত শুধু হ্যালো চলমান হয়েছে হ্যালো আছে 1713 01:25:56,310 --> 01:26:00,312 বা অনুরূপ প্রোগ্রাম, সব অন্যান্য প্রোগ্রাম যে আমরা ব্যবহার করছি, 1714 01:26:00,312 --> 01:26:02,770 যে আমরা নিজেদেরকে লেখেননি, আছে গ্রহণ করা হয়েছে, মনে হয়, 1715 01:26:02,770 --> 01:26:05,210 কমান্ড লাইন arguments-- মেক ভালো জিনিস. 1716 01:26:05,210 --> 01:26:07,450 আপনি মেক ভালো কিছু বলতে, এবং তারপর একটি দ্বিতীয় শব্দ. 1717 01:26:07,450 --> 01:26:10,950 বা ঝনঝন, আপনি ঝনঝন বলে, এবং তারপর একটি দ্বিতীয় শব্দ, একটি ফাইলের নাম. 1718 01:26:10,950 --> 01:26:14,410 >> অথবা এমনকি আরএম বা সিপি, যেমন আপনি প্রতাপ দেখা বা ইতিমধ্যে ব্যবহার করেছেন 1719 01:26:14,410 --> 01:26:15,880 অপসারণ বা ফাইল কপি করতে. 1720 01:26:15,880 --> 01:26:18,920 ঐ সব তথাকথিত নিতে কমান্ড লাইন arguments-- 1721 01:26:18,920 --> 01:26:21,130 টার্মিনাল প্রম্পটে অতিরিক্ত শব্দ. 1722 01:26:21,130 --> 01:26:23,260 কিন্তু এখন পর্যন্ত, আমরা নিজেদেরকে না ছিল 1723 01:26:23,260 --> 01:26:27,080 থেকে ইনপুট গ্রহণ এই বিলাসিতা ব্যবহারকারী যখন সে আসলে চালায় 1724 01:26:27,080 --> 01:26:29,120 প্রোগ্রাম নিজেই কমান্ড লাইনে. 1725 01:26:29,120 --> 01:26:33,710 >> কিন্তু আমরা যে পুনরায় ঘোষণা করতে পারি না প্রধান এগিয়ে চলন্ত, জমিদারি হিসেবে 1726 01:26:33,710 --> 01:26:36,750 বন্ধনীর মধ্যে বাতিলযোগ্য, কিন্তু এই দুটি আর্গুমেন্ট 1727 01:26:36,750 --> 01:26:40,600 প্রথম একটি পূর্ণসংখ্যা পরিবর্তে, এবং দ্বিতীয় কিছু 1728 01:26:40,600 --> 01:26:44,170 নতুন, এমন কিছু বিষয় যা আমরা কল চলুন একটি অ্যারের, আত্মা অনুরূপ কিছু 1729 01:26:44,170 --> 01:26:49,220 কি আমরা একটি তালিকা হিসাবে ভূত দেখেছি, কিন্তু স্ট্রিং একটি অ্যারে, আমরা শীঘ্রই দেখতে পাবেন যেমন. 1730 01:26:49,220 --> 01:26:51,790 কিন্তু আসুন এই দেখুন উদাহরণের পথ, আমরা আগে 1731 01:26:51,790 --> 01:26:53,690 পার্থক্য যে ঠিক কি মানে. 1732 01:26:53,690 --> 01:26:56,520 >> সুতরাং যদি আমি CS50 আইডিই ঢোকা এখানে, আমি এগিয়ে গেছেন 1733 01:26:56,520 --> 01:27:01,840 এবং নামক একটি ফাইলে ঘোষণা নিম্নলিখিত টেমপ্লেট argv0.c. 1734 01:27:01,840 --> 01:27:04,120 এবং শুধুমাত্র জিনিস লক্ষ্য এখন পর্যন্ত আলাদা 1735 01:27:04,120 --> 01:27:08,570 সত্য যে, আমি int অকার্যকর পরিবর্তন করেছি argc আছে স্ট্রিং খোলা বন্ধনী argv, বন্ধ 1736 01:27:08,570 --> 01:27:09,070 বন্ধনী. 1737 01:27:09,070 --> 01:27:11,730 এবং এখন জন্য লক্ষ্য, সেখানে ঐ বন্ধনীর ভিতরে কিছুই. 1738 01:27:11,730 --> 01:27:12,620 >> সেখানে কোন নম্বর. 1739 01:27:12,620 --> 01:27:15,070 আর যত প্রকার আমি, অথবা এন, বা অন্য কোন চিঠি. 1740 01:27:15,070 --> 01:27:17,010 আমি শুধু ব্যবহার করছি এখন জন্য বর্গাকার বন্ধনী, 1741 01:27:17,010 --> 01:27:19,510 কারণে আমরা আসবো ফিরে মাত্র কয়েক মিনিটের মধ্যে থেকে. 1742 01:27:19,510 --> 01:27:21,330 >> আর এখন আমি কি করতে যাচ্ছি এই হল. 1743 01:27:21,330 --> 01:27:26,680 argc সমান যদি সমান 2 শনাক্ত এবং পুনরাহ্বান যে সমান সমান 1744 01:27:26,680 --> 01:27:30,040 সমতা অপারেটর তুলনা হয় বাম ও সমতার জন্য সঠিক. 1745 01:27:30,040 --> 01:27:31,790 এটা নিয়োগ না অপারেটর, যা 1746 01:27:31,790 --> 01:27:36,510 একক সমান চিহ্ন, যা কপি মানে ডান দিক থেকে কিছু মান বামে. 1747 01:27:36,510 --> 01:27:42,840 >> argc হয় সমান সমান 2 তাহলে, আমি চাই বলে, printf হ্যালো, শতকরায়, নতুন লাইন, 1748 01:27:42,840 --> 01:27:47,340 এবং তারপর in-- চলা এবং এখানে নতুন কোন খবর আছে trick-- argv হয় বন্ধনী 1, কারণে 1749 01:27:47,340 --> 01:27:48,840 যে আমরা একটি মুহূর্ত ফিরে আসবো. 1750 01:27:48,840 --> 01:27:52,110 অন্যথায় যদি argc হয় না সমান 2, আপনি জানেন কি? 1751 01:27:52,110 --> 01:27:57,400 এর মাত্র এগিয়ে যান এবং স্বাভাবিক, প্রিন্ট, আউট হ্যালো কোন প্রতিকল্পন সঙ্গে বিশ্বের. 1752 01:27:57,400 --> 01:28:02,710 >> সুতরাং এটা মনে হবে যে যদি argc, যা যুক্তি গণনা ঘোরা, 2 সমান, 1753 01:28:02,710 --> 01:28:04,740 আমি প্রিন্ট আউট করা যাচ্ছে না হ্যালো কিছু বা অন্যান্য. 1754 01:28:04,740 --> 01:28:07,560 অন্যথা, ডিফল্টরূপে, আমি আছি হ্যালো প্রিন্ট করতে বিশ্বের যাচ্ছে. 1755 01:28:07,560 --> 01:28:08,770 তাহলে এর অর্থ কি? 1756 01:28:08,770 --> 01:28:15,550 >> আচ্ছা, আমাকে এগিয়ে যান এবং সংরক্ষণ করতে দিন এই ফাইল, এবং তারপর argv0 করি, 1757 01:28:15,550 --> 01:28:18,940 এবং তারপর ./argv0, লিখুন. 1758 01:28:18,940 --> 01:28:20,300 আর এটা হ্যালো দুনিয়া বলেছেন. 1759 01:28:20,300 --> 01:28:21,260 এখন, কেন এমন হল? 1760 01:28:21,260 --> 01:28:24,730 >> ওয়েল, এটা যে কোন সময় সক্রিয় আউট আপনি কমান্ড লাইন থেকে একটি প্রোগ্রাম চালানো, 1761 01:28:24,730 --> 01:28:29,570 আপনি পূরণ হয় আমরা কি করব সাধারণভাবে একটি আর্গুমেন্ট ভেক্টর কল. 1762 01:28:29,570 --> 01:28:33,100 অন্য কথায়, স্বয়ংক্রিয়ভাবে কম্পিউটার, অপারেটিং সিস্টেম, 1763 01:28:33,100 --> 01:28:38,340 আপনার প্রোগ্রামে সম্ভবত কিছু হাতে যাচ্ছে নিজেই সব শব্দের একটি তালিকা 1764 01:28:38,340 --> 01:28:40,850 মানুষের এ টাইপ করে প্রম্পট, যদি আপনি 1765 01:28:40,850 --> 01:28:43,790 প্রোগ্রামার কি করতে চান যে তথ্য দিয়ে কিছু. 1766 01:28:43,790 --> 01:28:48,540 এবং এই ক্ষেত্রে, শুধুমাত্র শব্দ আমি প্রম্পটে টাইপ করেছি ./argv0 হয়. 1767 01:28:48,540 --> 01:28:55,420 >> তাই আর্গুমেন্টের সংখ্যা যে আমার প্রোগ্রাম গৃহীত হচ্ছে মাত্র এক. 1768 01:28:55,420 --> 01:28:58,880 অন্য কথায়, যুক্তি গণনা, অন্যথায়-argc নামে পরিচিত 1769 01:28:58,880 --> 01:29:00,970 এখানে একটি পূর্ণসংখ্যা হিসাবে, মাত্র এক. 1770 01:29:00,970 --> 01:29:03,000 এক, অবশ্যই, সমান দুই না. 1771 01:29:03,000 --> 01:29:05,980 তাই এই কি ছাপে, হ্যালো দুনিয়া. 1772 01:29:05,980 --> 01:29:08,170 >> কিন্তু আমাকে এই কোথাও অবলম্বন করুক. 1773 01:29:08,170 --> 01:29:09,930 আমাকে বলতে দাও, argv0. 1774 01:29:09,930 --> 01:29:12,740 তারপর কিভাবে মারিয়া সম্পর্কে? 1775 01:29:12,740 --> 01:29:14,990 এবং তারপর এন্টার চাপুন. 1776 01:29:14,990 --> 01:29:18,020 >> আর তা লক্ষ্য জাদুর এখানে ঘটবে. 1777 01:29:18,020 --> 01:29:22,640 এখন, পরিবর্তে হ্যালো জগতের, আমি আছে এই প্রোগ্রামের আচরণ পরিবর্তন 1778 01:29:22,640 --> 01:29:26,310 ইনপুট পেতে থেকে গ্রহণ না করে স্ট্রিং বা অন্য কিছু ফাংশন, 1779 01:29:26,310 --> 01:29:30,570 কিন্তু থেকে, দৃশ্যতঃ আমার কমান্ড নিজেই, কি আমি মূলত টাইপ. 1780 01:29:30,570 --> 01:29:35,720 এবং আমি আবার এই গেমটি খেলতে পারেন এটা Stelios পরিবর্তন, উদাহরণস্বরূপ. 1781 01:29:35,720 --> 01:29:38,400 >> এবং এখন আমি অন্য একটি নাম এখনও দেখতে. 1782 01:29:38,400 --> 01:29:40,540 আর এখানে আমি Andi, বলতে পারে. 1783 01:29:40,540 --> 01:29:42,137 আর আমি, Zamyla বলতে পারে. 1784 01:29:42,137 --> 01:29:45,220 আর আমরা এই খেলা সারাদিন খেলতে পারেন, শুধু বিভিন্ন মান প্লাগিং, 1785 01:29:45,220 --> 01:29:49,550 এতক্ষণ আমি ঠিক প্রদান যেমন প্রম্পটের মধ্যে দুটি শব্দ, 1786 01:29:49,550 --> 01:29:52,260 যেমন যে argc, আমার যুক্তি গণনা, 2. 1787 01:29:52,260 --> 01:29:57,240 >> আমি কি দেখ না যে নাম প্লাগ printf,, এই অবস্থায় এখানে প্রতি? 1788 01:29:57,240 --> 01:30:00,550 সুতরাং আমরা এখন আছে বলে মনে হচ্ছে ভাবপূর্ণ ক্ষমতা 1789 01:30:00,550 --> 01:30:04,410 আরেকটি প্রক্রিয়া থেকে ইনপুট গ্রহণ, তথাকথিত কমান্ড লাইন থেকে, 1790 01:30:04,410 --> 01:30:07,000 বরং অপেক্ষা করতে থাকার চেয়ে যতক্ষন পর্যন্ত ব্যবহারকারী প্রোগ্রাম চালায়, 1791 01:30:07,000 --> 01:30:10,220 এবং তারপর তাকে অনুরোধ জানানো পেতে স্ট্রিং মত কিছু ব্যবহার. 1792 01:30:10,220 --> 01:30:11,230 >> তাই এই কি? 1793 01:30:11,230 --> 01:30:15,010 Argc, আবার, শুধু একটি পূর্ণসংখ্যা, words-- arguments-- সংখ্যা 1794 01:30:15,010 --> 01:30:18,540 যে সময়ে ব্যবহারকারী প্রম্পট, টার্মিনাল উইন্ডোর এ, 1795 01:30:18,540 --> 01:30:20,110 প্রোগ্রাম এর নাম সহ. 1796 01:30:20,110 --> 01:30:23,340 সুতরাং আমাদের ./argv0, কার্যকরভাবে, প্রোগ্রাম এর নাম, 1797 01:30:23,340 --> 01:30:24,520 বা কিভাবে আমি প্রোগ্রাম চালানো. 1798 01:30:24,520 --> 01:30:25,810 >> যে একটি শব্দ হিসাবে গন্য হয়. 1799 01:30:25,810 --> 01:30:27,080 সুতরাং argc 1 হবে. 1800 01:30:27,080 --> 01:30:29,750 কিন্তু যখন আমি Stelios লিখুন, অথবা Andi, অথবা, Zamyla, বা মারিয়া, 1801 01:30:29,750 --> 01:30:31,660 এর মানে হল যে যুক্তি গণনা দুটি. 1802 01:30:31,660 --> 01:30:33,910 আর তাই এখন সেখানে পাস দুটি শব্দ. 1803 01:30:33,910 --> 01:30:36,070 >> এবং খেয়াল করুন, আমরা এই যুক্তিবিজ্ঞান চালিয়ে যেতে পারেন. 1804 01:30:36,070 --> 01:30:39,050 তাহলে আমি আসলে বলতে Zamyla চ্যান মত কিছু, 1805 01:30:39,050 --> 01:30:42,200 একটি পূর্ণ নাম, যার ফলে ক্ষণস্থায়ী মোট তিনটি আর্গুমেন্ট, 1806 01:30:42,200 --> 01:30:47,410 এখন এটি ডিফল্ট আবার বলেছেন, কারণ, অবশ্যই, 3 সমান 2 আছে. 1807 01:30:47,410 --> 01:30:54,080 >> আর তাই এই ভাবে, আমি কি argv হয় এই নতুন যুক্তি মাধ্যমে এক্সেস 1808 01:30:54,080 --> 01:30:56,080 যে আমরা টেকনিক্যালি পারা আমরা চাই কিছু কল. 1809 01:30:56,080 --> 01:30:58,940 কিন্তু কনভেনশন দ্বারা, এটা argv হয় এবং argc, যথাক্রমে. 1810 01:30:58,940 --> 01:31:04,470 Argv, যুক্তি ভেক্টর, দয়ালু একটি প্রোগ্রামিং জন্য একটি প্রতিশব্দ এর 1811 01:31:04,470 --> 01:31:07,140 সি বৈশিষ্ট্য একটি অ্যারে বলা. 1812 01:31:07,140 --> 01:31:14,410 >> একটি অ্যারের অনুরূপ মান একটি তালিকা দেয়া হল ফিরে, ফিরে, ফিরে ফিরে যাও. 1813 01:31:14,410 --> 01:31:17,810 অন্য কথায়, যদি এক অধিকার এখানে রয়েছে উপস্থিত RAM- র, আগামী এক ডান পাশে হয়, 1814 01:31:17,810 --> 01:31:18,800 এবং ডান পাশে. 1815 01:31:18,800 --> 01:31:20,101 তারা সব জায়গায় বেশি নও. 1816 01:31:20,101 --> 01:31:23,100 আর যে পরেরটির দৃশ্যকল্প, যেখানে কিছু সব স্মৃতিতে রয়েছে জায়গা, 1817 01:31:23,100 --> 01:31:25,082 আসলে একটি শক্তিশালী বৈশিষ্ট্য হতে পারে. 1818 01:31:25,082 --> 01:31:28,040 কিন্তু আমরা যখন আমরা যে ফিরে আসবো কল্পনাকারী ডাটা স্ট্রাকচার সম্পর্কে কথা বলা. 1819 01:31:28,040 --> 01:31:32,260 এখন জন্য, একটি অ্যারের শুধু একটি নয় সংলগ্ন মেমরি খণ্ড, 1820 01:31:32,260 --> 01:31:36,520 প্রতিটি যার উপাদান ফিরে, ব্যাক, ব্যাক, ব্যাক, 1821 01:31:36,520 --> 01:31:38,050 এবং সাধারণত একই ধরনের. 1822 01:31:38,050 --> 01:31:42,630 >> তাই আপনি সম্পর্কে চিন্তা যদি একটি থেকে, মুহূর্ত আগে, একটি স্ট্রিং কি? 1823 01:31:42,630 --> 01:31:50,460 ওয়েল, একটি পংক্তি,, Zamyla মত, জেড-এ-এম-ওয়াই-এল-এ, টেকনিক্যালি, হয়, 1824 01:31:50,460 --> 01:31:51,400 শুধু একটি অ্যারে. 1825 01:31:51,400 --> 01:31:53,700 এটা অক্ষরের একটি অ্যারে. 1826 01:31:53,700 --> 01:31:59,250 >> আর তাই যদি আমরা সত্যিই এই, আঁকা হিসাবে আমি , মেমরি একটি খণ্ড যেমন, নি আগে 1827 01:31:59,250 --> 01:32:04,510 এটা যে এই প্রতিটি সক্রিয় আউট অক্ষর একটি বাইট পর্যন্ত সময় লাগে. 1828 01:32:04,510 --> 01:32:07,630 এবং তারপর যে বিশেষ প্রহরী চরিত্র, ব্যাকস্ল্যাশ 0, 1829 01:32:07,630 --> 01:32:12,360 বা সব আট 0 বিট, যে যে স্ট্রিং এর শেষে demarcates. 1830 01:32:12,360 --> 01:32:15,090 সুতরাং একটি পংক্তি, এটি সক্রিয় আউট, উদ্ধতি স্ট্রিং উদ্ধৃত করছি, 1831 01:32:15,090 --> 01:32:20,580 শুধু chara-- একটি অ্যারে গৃহস্থালির কাজ একটি প্রকৃত ডাটা টাইপ হচ্ছে. 1832 01:32:20,580 --> 01:32:24,560 >> এবং এখন argv হয়, meanwhile-- এর পিছনে প্রোগ্রাম যাই. 1833 01:32:24,560 --> 01:32:29,582 Argv, যদিও আমরা শব্দ দেখতে স্ট্রিং এখানে, একটি স্ট্রিং নিজেই নয়. 1834 01:32:29,582 --> 01:32:33,640 Argv, যুক্তি ভেক্টর, স্ট্রিং একটি অ্যারে. 1835 01:32:33,640 --> 01:32:37,620 >> আপনি একটি অ্যারের থাকতে পারে তাই ঠিক যেমন অক্ষর, আপনি উচ্চ স্তরের হতে পারে, 1836 01:32:37,620 --> 01:32:46,279 strings-- একটি অ্যারের তাই, উদাহরণস্বরূপ, যখন আমি আগে একটি মুহূর্ত টাইপ ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0, স্থান জেড এ-এম-ওয়াই-এল-এ, আমি দাবি করে argv হয়, এটিকে ./argv0 মধ্যে দুটি পংক্তি ছিল 1838 01:33:00,150 --> 01:33:03,185 এবং Z-একটি-এম-ওয়াই-এল-এ. মধ্যে অন্য কথায়,-argc 2 ছিল. 1839 01:33:03,185 --> 01:33:03,980 কেন হল? 1840 01:33:03,980 --> 01:33:08,370 >> আচ্ছা, কার্যকরীভাবে, কী হচ্ছে হয় এই স্ট্রিং প্রতিটি যে 1841 01:33:08,370 --> 01:33:13,990 অবশ্য, অক্ষরের একটি অ্যারে আগের মতোই, যার প্রতিটি অক্ষর 1842 01:33:13,990 --> 01:33:15,670 এক বাইট পর্যন্ত সময় লাগে. 1843 01:33:15,670 --> 01:33:19,720 আর প্রকৃত 0 গুলান না 0 সঙ্গে প্রোগ্রাম এর নামে, 1844 01:33:19,720 --> 01:33:22,040 যা সব 80 বিটের মানে. 1845 01:33:22,040 --> 01:33:27,140 আর, Zamyla এদিকে, এখনও এছাড়াও অক্ষরের একটি অ্যারের. 1846 01:33:27,140 --> 01:33:31,450 >> দিনের শেষে সুতরাং, এটা সত্যিই ফণা নীচে ভালো দেখায়. 1847 01:33:31,450 --> 01:33:38,800 কিন্তু কিভাবে প্রধান argv, প্রকৃতি দ্বারা কাজ, আমাকে এই সব মোড়ানো করতে পারবেন 1848 01:33:38,800 --> 01:33:44,810 , যদি আপনি হবে, একটি বড় অ্যারে উঠে যে, আমরা যদি সামান্য বেশি সহজতর করা 1849 01:33:44,810 --> 01:33:48,180 ছবি মত করে না দেখায় কি বেশ সেখানে আকার পরিবর্তন করার জন্য এটা আঁকা, 1850 01:33:48,180 --> 01:33:56,720 এই অ্যারের, প্রথম শুধুমাত্র আকার 2 হয় উপাদান যা একটি স্ট্রিং রয়েছে, 1851 01:33:56,720 --> 01:33:59,230 দ্বিতীয় উপাদান যা একটি স্ট্রিং রয়েছে. 1852 01:33:59,230 --> 01:34:01,687 আর এর ফলে, আপনি যদি ধরনের প্রতিটি জুম 1853 01:34:01,687 --> 01:34:03,770 যারা স্ট্রিং, এর কি আপনি ফণা নীচে দেখুন 1854 01:34:03,770 --> 01:34:07,190 প্রতিটি স্ট্রিং শুধু নয় অক্ষরের একটি অ্যারের. 1855 01:34:07,190 --> 01:34:11,680 >> এখন, শুধু স্ট্রিং সঙ্গে যেমন, আমরা প্রবেশাধিকার পেতে সক্ষম হয়েছি 1856 01:34:11,680 --> 01:34:15,260 একটি স্ট্রিং I- তম অক্ষরে যে বর্গাকার বন্ধনী নোটেশন ব্যবহার করে. 1857 01:34:15,260 --> 01:34:17,320 একইভাবে, অ্যারে সাধারণভাবে, আমরা করতে পারেন 1858 01:34:17,320 --> 01:34:22,700 বর্গাকার বন্ধনী স্বরলিপি ব্যবহার পেতে একটি অ্যারের মধ্যে স্ট্রিং কোন নম্বরে? 1859 01:34:22,700 --> 01:34:25,100 উদাহরণস্বরূপ, আমাকে এগিয়ে যান এবং এই কাজের জন্য. 1860 01:34:25,100 --> 01:34:32,420 >> আমাকে এগিয়ে যান এবং argv1.c তৈরি করা যাক, যা একটু ভিন্ন এই সময়. 1861 01:34:32,420 --> 01:34:35,635 পরিবর্তে argc2 জন্য চেকিং, আমি পরিবর্তে এই কাজ করতে যাচ্ছি. 1862 01:34:35,635 --> 01:34:41,270 int- এ আমি 0 পেতে জন্য, আমি কম argc আছে চেয়ে, আমি প্লাস প্লাস, 1863 01:34:41,270 --> 01:34:47,920 এবং তারপর এই ভেতরে প্রিন্ট আউট, শতাংশ গুলি, নতুন লাইন, এবং তারপর 1864 01:34:47,920 --> 01:34:50,740 argv হয় বন্ধনী আমি. 1865 01:34:50,740 --> 01:34:55,220 >> অন্য কথায়, তাই আমি সঙ্গে আচরণ করছি না মুহূর্তে স্বতন্ত্র অক্ষর. 1866 01:34:55,220 --> 01:35:00,190 Argv, যেমন এই খালি বর্গ দ্বারা উহ্য নাম argv হয় ডানদিকে ধনুর্বন্ধনী, 1867 01:35:00,190 --> 01:35:03,320 argv হয় স্ট্রিং একটি অ্যারে মানে. 1868 01:35:03,320 --> 01:35:04,870 এবং argc ঠিক কোন int হয়. 1869 01:35:04,870 --> 01:35:08,800 >> এখানে এই লাইন, 6, হয় সেট বলছে আমি 0 সমান. 1870 01:35:08,800 --> 01:35:11,980 আপ সব পথ গণনা, কিন্তু-argc সহ না. 1871 01:35:11,980 --> 01:35:14,010 এবং তারপর প্রতিটি পুনরাবৃত্তির উপর, একটি স্ট্রিং প্রিন্ট আউট. 1872 01:35:14,010 --> 01:35:14,800 কি স্ট্রিং? 1873 01:35:14,800 --> 01:35:17,270 >> argv মধ্যে I- তম পংক্তি. 1874 01:35:17,270 --> 01:35:19,530 সুতরাং যেহেতু সামনে ছিলাম বর্গাকার বন্ধনী ব্যবহার 1875 01:35:19,530 --> 01:35:22,180 স্বরলিপি ith এ পেতে একটি স্ট্রিং অক্ষর, এখন 1876 01:35:22,180 --> 01:35:27,240 আমি বর্গাকার বন্ধনী স্বরলিপি ব্যবহার করছি একটি অ্যারের মধ্যে ith স্ট্রিং এ পেতে. 1877 01:35:27,240 --> 01:35:30,310 সুতরাং এটি একটি স্তর ধরনের উপরে, ধারণার. 1878 01:35:30,310 --> 01:35:35,390 >> তাই কি এই সম্পর্কে ঝরঝরে এখন প্রোগ্রাম, যদি আমি argv1 কম্পাইল, 1879 01:35:35,390 --> 01:35:42,067 এবং তারপর ./argv1 না, এবং তারপর টাইপ করুন foo বিন্যাস বার Baz ভালো কিছু, 1880 01:35:42,067 --> 01:35:45,400 যা তিন ডিফল্ট শব্দের যে একটি হয় কম্পিউটার বিজ্ঞানী কোনো সময় জন্য ছুঁয়েছে 1881 01:35:45,400 --> 01:35:51,010 সে কিছু স্থানধারক শব্দ দরকার, এবং Enter আঘাত, এই কথাগুলোর প্রতি, 1882 01:35:51,010 --> 01:35:54,980 প্রোগ্রাম এর নাম সহ যা প্রথম অবস্থানে argv মধ্যে হয়, 1883 01:35:54,980 --> 01:35:58,320 শেষ পর্যন্ত একটি সময়ে এক ছাপা হচ্ছে. 1884 01:35:58,320 --> 01:36:05,290 আর যদি আমি এই পরিবর্তন, এবং আমি বলতে argv1 Zamyla চ্যান মত কিছু, 1885 01:36:05,290 --> 01:36:08,800 আমরা ঐ সব তিনটি পেতে শব্দ, যা argv0 হয়, 1886 01:36:08,800 --> 01:36:14,400 argv1, argv2, এই কারণ কেস-argc, গণনা, 3. 1887 01:36:14,400 --> 01:36:20,020 >> কিন্তু কি ঝরঝরে যদি তোমরা বুঝতে পার হয় যে argv, শুধু স্ট্রিং একটি অ্যারে 1888 01:36:20,020 --> 01:36:24,910 এবং আপনি যে একটি স্ট্রিং বুঝতে অক্ষরের একটি অ্যারে, 1889 01:36:24,910 --> 01:36:29,470 আমরা আসলে এই ধরনের ব্যবহার করতে পারেন বর্গাকার বন্ধনী স্বরলিপি একাধিক বার 1890 01:36:29,470 --> 01:36:33,320 একটি স্ট্রিং চয়ন, এবং তারপর নির্বাচন স্ট্রিং মধ্যে একটি অক্ষর, 1891 01:36:33,320 --> 01:36:35,730 অনুসরণ গভীর হিসাবে ডাইভিং. 1892 01:36:35,730 --> 01:36:40,100 এই উদাহরণে, আমাকে যেতে দাও এগিয়ে এবং এই argv2.c কল. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 আর এই উদাহরণে, আমাকে এগিয়ে যান এবং int আমি 0 পেতে জন্য নিম্নলিখিত কাজ, 1895 01:36:50,180 --> 01:36:53,286 আমি-argc চেয়ে কম হয়, আমি প্লাস প্লাস, ঠিক আগের মত. 1896 01:36:53,286 --> 01:36:55,910 তাই অন্য words-- এবং এখন এই যথেষ্ট জটিল হচ্ছে. 1897 01:36:55,910 --> 01:36:59,940 তারপর আমি বলতে যাচ্ছি argv মধ্যে স্ট্রিং পুনরুক্তি, 1898 01:36:59,940 --> 01:37:01,294 নিজে একটা মন্তব্য হিসাবে. 1899 01:37:01,294 --> 01:37:03,960 এবং তারপর আমি একটি আছে যাচ্ছি লুপ জন্য নেস্টেড, আপনি সম্ভবত যা 1900 01:37:03,960 --> 01:37:06,290 কাজ করেছেন, বা বিবেচিত যেখানে, করছেন ভূত, 1901 01:37:06,290 --> 01:37:08,600 আমি বলতে int-- আমি যাচ্ছি আমি আবার ব্যবহার করা যাচ্ছে না, 1902 01:37:08,600 --> 01:37:12,590 কারণ আমি ছায়া চাই না, বা সাজানোর বিদ্যমান আমি ওভাররাইট করবে. 1903 01:37:12,590 --> 01:37:15,780 >> আমি পরিবর্তে, ঞ বলতে যাচ্ছি, কারণ যে আমি পরে পরিবর্তনশীল আমার যেতে, 1904 01:37:15,780 --> 01:37:18,590 যখন আমি শুধু চেষ্টা করছি সহজ সংখ্যা গণনা. 1905 01:37:18,590 --> 01:37:28,850 ঞ পায় 0-- এবং, এন, যাচ্ছে , Argv হয় বন্ধনী আমি কঠোর দৈর্ঘ্য পেতে 1906 01:37:28,850 --> 01:37:36,030 তাই যতদিন ঞ মিটার চেয়ে কম হয়, ঞ প্লাস প্লাস, নিম্নলিখিত কাজগুলো. 1907 01:37:36,030 --> 01:37:37,500 এবং এখানে আকর্ষণীয় অংশ. 1908 01:37:37,500 --> 01:37:46,330 >> একটি চরিত্র এবং একটি নতুন লাইন প্রিন্ট আউট, argv হয় বন্ধনী আমি, বন্ধনী ঞ প্লাগিং. 1909 01:37:46,330 --> 01:37:47,940 ঠিক আছে, তাই আমাকে এখানে কিছু মন্তব্য যোগ করা যাক. 1910 01:37:47,940 --> 01:37:54,820 অক্ষর পুনরুক্তি বর্তমান স্ট্রিং মধ্যে, 1911 01:37:54,820 --> 01:38:02,290 I- তম স্ট্রিং মুদ্রণ ঞ-তম অক্ষর. 1912 01:38:02,290 --> 01:38:04,630 তাই এখন, আমি বিবেচনা করি এই মন্তব্য কি বলতে চাচ্ছি. 1913 01:38:04,630 --> 01:38:06,750 >> স্ট্রিং পুনরুক্তি argv-- মধ্যে কতগুলি 1914 01:38:06,750 --> 01:38:09,300 স্ট্রিং argv মধ্যে হয়, যা একটি অ্যারে? 1915 01:38:09,300 --> 01:38:13,420 Argc অনেক, তাই আমি iterating করছি আমি থেকে সমান 0-argc পর্যন্ত. 1916 01:38:13,420 --> 01:38:20,020 এদিকে, কিভাবে অনেক অক্ষর argv মধ্যে I- তম স্ট্রিং আছে? 1917 01:38:20,020 --> 01:38:22,880 >> আচ্ছা, যে উত্তর পেতে, আমি স্ট্রিং দৈর্ঘ্য কল 1918 01:38:22,880 --> 01:38:26,810 বর্তমান স্ট্রিং আমি যত্ন উপর সম্পর্কে, যা argv হয় বন্ধনী আমি হয়. 1919 01:38:26,810 --> 01:38:30,090 আমি সাময়িকভাবে সংরক্ষণ করা যাচ্ছে না মান n মধ্যে, শুধু ক্যাশে উদ্দেশ্য পূরণকল্পে, 1920 01:38:30,090 --> 01:38:31,590 দক্ষতা জন্য এটা মনে রাখা. 1921 01:38:31,590 --> 01:38:36,330 এবং তারপর আমি 0 থেকে ঞ আরম্ভ যাচ্ছি, এতক্ষণ যাচ্ছে ঞ হিসাবে এন কম রাখা, 1922 01:38:36,330 --> 01:38:38,430 এবং প্রতিটি পুনরাবৃত্তির বর্ধন ঞ উপর. 1923 01:38:38,430 --> 01:38:41,030 >> এবং তারপর এখানে, প্রতি লাইন 12 আমার মন্তব্য, 1924 01:38:41,030 --> 01:38:43,390 একটি অক্ষর প্রিন্ট আউট, একটি নতুন লাইন অনুসরণ, 1925 01:38:43,390 --> 01:38:48,140 বিশেষভাবে argv হয় বন্ধনী আমি আমার আমি-তম স্ট্রিং দেয় 1926 01:38:48,140 --> 01:38:51,690 argv-- তাই প্রথম শব্দ, দ্বিতীয় শব্দ, তৃতীয় শব্দ, যাই হোক না কেন. 1927 01:38:51,690 --> 01:38:57,370 তারপর গভীর মধ্যে ঞ ধনী আর পায় আমাকে যে শব্দের ঞ-তম অক্ষর. 1928 01:38:57,370 --> 01:39:02,200 আর তাই, কার্যত, আপনি বিবেচনা করতে পারেন argv একটি বহুমাত্রিক যেমন, 1929 01:39:02,200 --> 01:39:06,050 একটি দ্বি-মাত্রিক, অ্যারে হিসাবে, যদ্দ্বারা সৌন্দর্য প্রতিটি শব্দ ধরনের 1930 01:39:06,050 --> 01:39:08,580 আপনার মনের মধ্যে এই মত চোখ ও প্রতিটি ভাষার প্রতিটি অক্ষরের 1931 01:39:08,580 --> 01:39:10,930 ধরনের রচিত হয় একটি কলাম, যদি সাহায্য করে. 1932 01:39:10,930 --> 01:39:13,260 >> বাস্তবে, আমরা যখন আঁচড়ান ভবিষ্যতে সপ্তাহের মধ্যে এই পৃথক্, 1933 01:39:13,260 --> 01:39:15,580 এটি একটি সামান্য হতে যাচ্ছে যে বেশী বাস্তবধর্মী. 1934 01:39:15,580 --> 01:39:17,800 কিন্তু আপনি কি সত্যিই করতে পারেন যে মনে, এখন জন্য, 1935 01:39:17,800 --> 01:39:22,110 শুধু এই দুই-মাত্রিক যেমন অ্যারে, যদ্দ্বারা এক মাত্রা 1936 01:39:22,110 --> 01:39:23,260 স্ট্রিং সব হয়. 1937 01:39:23,260 --> 01:39:26,760 এবং তারপর আপনি গভীর, আপনি ঝাঁপিয়ে যদি স্বতন্ত্র অক্ষর পেতে পারেন 1938 01:39:26,760 --> 01:39:29,600 এখানে এই নোটেশন ব্যবহার দ্বারা গণনা কর. 1939 01:39:29,600 --> 01:39:31,620 >> তাই নেট প্রভাব কি? 1940 01:39:31,620 --> 01:39:34,970 আমাকে এগিয়ে যান এবং argv2-- অভিশাপ এটি তৈরি করতে. 1941 01:39:34,970 --> 01:39:36,210 আমি ভুল করেছি. 1942 01:39:36,210 --> 01:39:40,160 পরোক্ষভাবে প্রকাশক লাইব্রেরি ফাংশন স্টারলিং. 1943 01:39:40,160 --> 01:39:42,190 তাই এই সব সময়, এটা সম্ভবত উপযুক্ত 1944 01:39:42,190 --> 01:39:45,130 আমরা সাজানোর শেষ করছি যে ঠিক যেখানে আমরা শুরু. 1945 01:39:45,130 --> 01:39:48,160 >> আমি মাতাল আপ, পরোক্ষভাবে প্রকাশক লাইব্রেরি ফাংশন স্টারলিং. 1946 01:39:48,160 --> 01:39:48,987 ঠিক আছে, এক মিনিট অপেক্ষা করুন. 1947 01:39:48,987 --> 01:39:51,070 আমার মনে, বিশেষ করে যেহেতু এটা ঠিক এখানে. 1948 01:39:51,070 --> 01:39:54,490 আমি string.h অন্তর্ভুক্ত প্রয়োজন কর্মসূচির এই সংস্করণে. 1949 01:39:54,490 --> 01:40:00,050 >> আমাকে এগিয়ে যান এবং অন্তর্ভুক্ত করা যাক string.h, সংরক্ষণ, এগিয়ে যান 1950 01:40:00,050 --> 01:40:04,460 এবং argv2 কম্পাইল. 1951 01:40:04,460 --> 01:40:08,390 এবং এখন, আমরা এখানে যান argv2 করতে লিখুন. 1952 01:40:08,390 --> 01:40:10,590 এবং যদিও এটি একটি সামান্য ব্যাপার প্রথম নজরে রহস্যপূর্ণ, 1953 01:40:10,590 --> 01:40:15,690 নোটিশ, প্রকৃতপক্ষে, কি ছাপা হয় ডট argv2 হয়. 1954 01:40:15,690 --> 01:40:19,970 >> কিন্তু আমি যদি পরে কিছু শব্দ টাইপ প্রম্পট, argv2 Zamyla চ্যান মত, 1955 01:40:19,970 --> 01:40:22,560 লিখুন, একটি সামান্য প্রথম নজরে রহস্যপূর্ণ. 1956 01:40:22,560 --> 01:40:30,540 কিন্তু আমরা যদি আপ ফিরে স্ক্রল, ./argv2 জেড এ-এম-ওয়াই-এল-সি-এইচ-একটি-এন. 1957 01:40:30,540 --> 01:40:32,190 তাই আমরা প্রতিটি শব্দের উপর iterated থাকেন. 1958 01:40:32,190 --> 01:40:37,770 আর এর ফলে, আমরা ধরে iterated করেছি একটি শব্দ মধ্যে প্রতিটি ভাষার প্রতিটি অক্ষরের. 1959 01:40:37,770 --> 01:40:40,040 >> এখন, এই সব পরে, বুঝতে পারি যে আছে 1960 01:40:40,040 --> 01:40:43,120 এক অন্য বিস্তারিত আমরা ধরনের চলেছি এই পুরো সময় উপেক্ষা. 1961 01:40:43,120 --> 01:40:46,180 আমরা শুধু পৃথক্ teased কি প্রধান এর ইনপুট হতে পারে? 1962 01:40:46,180 --> 01:40:47,780 কি প্রধান এর আউটপুট সম্পর্কে? 1963 01:40:47,780 --> 01:40:50,540 >> এই সময় সবাই আমরা চলেছি শুধু কপি এবং পেস্ট 1964 01:40:50,540 --> 01:40:53,870 প্রধান সামনে শব্দ কোন int, আপনি অনলাইন দেখতে পারেন, যদিও, 1965 01:40:53,870 --> 01:40:58,340 কখনও কখনও পুরোনো সংস্করণগুলি ত্রুটিপূর্ণভাবে সি এবং কম্পাইলার, তারা অকার্যকর বলে যে, 1966 01:40:58,340 --> 01:40:59,410 বা এ সব কিছুই. 1967 01:40:59,410 --> 01:41:01,580 কিন্তু, প্রকৃতপক্ষে, সংস্করণের জন্য সি এর আমরা ব্যবহার করছি যে, 1968 01:41:01,580 --> 01:41:06,180 সি 11, বা 2011, উপলব্ধি এটি কোন int হতে হবে. 1969 01:41:06,180 --> 01:41:09,300 আর এটা হয় করা উচিত অকার্যকর বা argc এবং এখানে argv. 1970 01:41:09,300 --> 01:41:10,790 >> কিন্তু কেন int প্রধান? 1971 01:41:10,790 --> 01:41:12,480 এটা আসলে কি ফিরে আসছে? 1972 01:41:12,480 --> 01:41:16,280 আচ্ছা, এটা এই সময়ের সব দেখা যাচ্ছে, যে কোনো সময় আপনি একটি প্রোগ্রাম প্রধান লিখিত করেছি 1973 01:41:16,280 --> 01:41:18,440 সবসময় কিছু ফিরে আসছে. 1974 01:41:18,440 --> 01:41:19,960 কিন্তু এটা এত গোপনে করছেন হয়েছে. 1975 01:41:19,960 --> 01:41:23,350 >> একটি যে কিছু হয় কোন int, লাইন 5 প্রস্তাব দেওয়া হয়. 1976 01:41:23,350 --> 01:41:24,225 কিন্তু কি int-? 1977 01:41:24,225 --> 01:41:26,100 আচ্ছা, এই ব্যাপার প্রোগ্রামিং কনভেনশন, 1978 01:41:26,100 --> 01:41:29,790 যদ্দ্বারা যদি কিছুই হয়েছে ভুল সর্বস্বান্ত এবং সব ঠিক থাকে, 1979 01:41:29,790 --> 01:41:34,250 প্রোগ্রাম এবং ফাংশন সাধারণত প্রত্যাবর্তন কিছুটা counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 সাধারণত সব ভাল হয় উল্লেখ করা হয়. 1982 01:41:38,070 --> 01:41:40,610 সুতরাং যদিও আপনি মনে এটা অনেক প্রেক্ষিতে যেমন মিথ্যা, 1983 01:41:40,610 --> 01:41:42,930 এটা আসলে সাধারণত একটি ভাল জিনিস মানে 1984 01:41:42,930 --> 01:41:49,560 >> এদিকে, একটি প্রোগ্রাম ফেরৎ 1, বা নেতিবাচক 1, বা 5, বা নেতিবাচক 42, 1985 01:41:49,560 --> 01:41:52,941 বা কোনো অ 0 মান, যে সাধারণত উল্লেখ 1986 01:41:52,941 --> 01:41:54,190 যে কিছু ভুল হয়েছে. 1987 01:41:54,190 --> 01:41:56,700 আসলে, আপনার নিজের পিসিতে Mac বা, আপনি আসলে দেখা হতে পারে 1988 01:41:56,700 --> 01:42:01,050 একটি ত্রুটির বার্তা, যদ্দ্বারা এটা বলে কিছু বা অন্যান্য, ত্রুটির 1989 01:42:01,050 --> 01:42:04,940 কোড নেতিবাচক 42, বা ত্রুটি কোড 23, বা যে মত কিছু. 1990 01:42:04,940 --> 01:42:08,980 যে সংখ্যা সাধারণত শুধু ইঙ্গিত প্রোগ্রামার, বা কোম্পানীকে 1991 01:42:08,980 --> 01:42:11,174 যে সফটওয়্যার তৈরি, কি, ভুল এবং কেন গেলেন 1992 01:42:11,174 --> 01:42:13,590 যাতে তারা মাধ্যমে সন্ধান করতে পারেন তাদের ডকুমেন্টেশন কোড, 1993 01:42:13,590 --> 01:42:15,465 জিনিসটা কি ত্রুটি আসলে মানে. 1994 01:42:15,465 --> 01:42:18,400 এটা সাধারণত নয় এ আমাদের উপকারে আসতে ব্যবহারকারীদের শেষ. 1995 01:42:18,400 --> 01:42:20,550 >> কিন্তু প্রধান আয় 0, সব ঠিক থাকে যখন. 1996 01:42:20,550 --> 01:42:23,770 যদি আপনি এখানে কিছু উল্লেখ না মূল প্রত্যাবর্তন করা উচিত কি, 1997 01:42:23,770 --> 01:42:26,950 এটা ঠিক স্বয়ংক্রিয়ভাবে হবে আপনার জন্য 0 ফিরে. 1998 01:42:26,950 --> 01:42:30,870 কিন্তু কিছু রিটার্নিং আর আসলে দরকারী. 1999 01:42:30,870 --> 01:42:34,660 >> এই চূড়ান্ত প্রোগ্রাম ইন, আমার দিন এগিয়ে যান এবং এই exit.c কল, 2000 01:42:34,660 --> 01:42:38,630 এবং আজকের সর্বশেষ পরিচয় করিয়ে বিষয়, একটি ত্রুটি কোড হিসাবে পরিচিত. 2001 01:42:38,630 --> 01:42:42,930 আমাকে এগিয়ে যান এবং অন্তর্ভুক্ত করা যাক আমাদের পরিচিত ফাইল উপরে, int প্রধান না. 2002 01:42:42,930 --> 01:42:49,500 আর এই সময়, এর int-argc করতে দিন স্ট্রিং argv, এবং আমার বন্ধনী দিয়ে 2003 01:42:49,500 --> 01:42:50,836 পরোক্ষভাবে এটি অ্যারের মধ্যে. 2004 01:42:50,836 --> 01:42:52,460 এবং তারপর আমার শুধু একটি বৈধতা চেক করতে দিন. 2005 01:42:52,460 --> 01:42:56,640 এই সময়, যদি-argc না সমান 2, তারপর আপনি জানেন কি? 2006 01:42:56,640 --> 01:42:57,520 ভুলে যাও. 2007 01:42:57,520 --> 01:43:03,170 আমি যে বলতে যাচ্ছি, হেই, ব্যবহারকারী, আপনি কমান্ড লাইন আর্গুমেন্ট নিখোঁজ হয় 2008 01:43:03,170 --> 01:43:04,210 ব্যাকস্ল্যাশ এন. 2009 01:43:04,210 --> 01:43:05,230 >> এবং তারপর যে এটি. 2010 01:43:05,230 --> 01:43:06,130 আমি প্রস্থান করতে চান. 2011 01:43:06,130 --> 01:43:11,030 আমি preemptively যাচ্ছি, এবং অকালে সত্যিই, রিটার্ন 2012 01:43:11,030 --> 01:43:12,810 কিছু সংখ্যা 1 ছাড়া অন্য. 2013 01:43:12,810 --> 01:43:15,360 প্রথম জন্য মান যান ত্রুটি ঘটতে পারে 1. 2014 01:43:15,360 --> 01:43:17,860 আপনি অন্য কিছু ভ্রান্ত থাকে পরিস্থিতি যে ঘটতে পারে, 2015 01:43:17,860 --> 01:43:21,390 আপনি রিটার্ন 2 বলে বা 3 ফিরে যেতে পারি, অথবা এমনকি নেতিবাচক 1 বা নেতিবাচক 2. 2016 01:43:21,390 --> 01:43:23,750 >> এই মাত্র প্রস্থান কোড আছে যে হয়, সাধারণত, 2017 01:43:23,750 --> 01:43:27,770 শুধুমাত্র প্রোগ্রামার থেকে দরকারী, বা কোম্পানী যে সফ্টওয়্যার শিপিং এর. 2018 01:43:27,770 --> 01:43:30,500 কিন্তু আসলে এটা যে 0 কি গুরুত্বপূর্ণ হয়. 2019 01:43:30,500 --> 01:43:34,310 তাই এই প্রোগ্রাম যদি, আমি চাই গ্যারান্টি দিই যে এই প্রোগ্রামটি শুধুমাত্র 2020 01:43:34,310 --> 01:43:38,190 কাজ করে ব্যবহারকারী আমাকে উপলব্ধ দুই একটি যুক্তি গণনা সঙ্গে, 2021 01:43:38,190 --> 01:43:42,880 প্রোগ্রামের নাম, এবং কিছু অন্যান্য শব্দ, আমি অনুসরণ যতটা জোরদার করতে, 2022 01:43:42,880 --> 01:43:46,110 printf, বলছে ব্যবহারকারী এ চিত্কার, অনুপস্থিত কমান্ড লাইন আর্গুমেন্ট, 2023 01:43:46,110 --> 01:43:46,970 1 ফিরে. 2024 01:43:46,970 --> 01:43:49,940 যে শুধু অবিলম্বে হবে প্রোগ্রাম প্রস্থান. 2025 01:43:49,940 --> 01:43:55,840 >> শুধু যদি-argc সমান 2 আমরা নিচে পাবেন এখানে, যা সময়ে আমি বলতে যাচ্ছি, 2026 01:43:55,840 --> 01:44:00,410 হ্যালো শতাংশ গুলি, ব্যাকস্ল্যাশ এন, argv1. 2027 01:44:00,410 --> 01:44:03,827 অন্য কথায়, আমি আছি argv হয় 0 পরে যাচ্ছে না, 2028 01:44:03,827 --> 01:44:05,410 যা শুধু প্রোগ্রামের নাম. 2029 01:44:05,410 --> 01:44:09,450 আমি প্রিন্ট আউট হ্যালো, কমা চান, দ্বিতীয় শব্দ যে মানুষের টাইপ. 2030 01:44:09,450 --> 01:44:12,580 আর এই ক্ষেত্রে লাইন 13, সব ঠিক থাকে. 2031 01:44:12,580 --> 01:44:15,920 >> আমি জানি যে argc 2 কথাটি এই প্রোগ্রাম থেকে. 2032 01:44:15,920 --> 01:44:17,770 আমি এগিয়ে যান এবং ফিরে 0 যাচ্ছি. 2033 01:44:17,770 --> 01:44:21,230 একটি সরাইয়া হিসাবে, মনে রাখা যে পাশাপাশি এই ভূত সত্য. 2034 01:44:21,230 --> 01:44:24,760 >> কথাটি আমি পারবোই এবং এই লাইন encapsulate 2035 01:44:24,760 --> 01:44:27,020 এই আর এখানে দফা কোডের. 2036 01:44:27,020 --> 01:44:29,420 কিন্তু যে ধরণের আছে অকারণে আমার কোড সংভৃত. 2037 01:44:29,420 --> 01:44:31,800 আমি সুপার করতে চাই স্পষ্ট যে কোন ব্যাপার কি, 2038 01:44:31,800 --> 01:44:34,670 ডিফল্টরূপে, হ্যালো কিছু মুদ্রিত হবে, 2039 01:44:34,670 --> 01:44:36,050 এতক্ষণ ব্যবহারকারী সহযোগীতা হিসাবে. 2040 01:44:36,050 --> 01:44:39,360 >> তাই এটা ব্যবহার করা খুবই সাধারণ একটি শর্ত, শুধু একটি হলে, 2041 01:44:39,360 --> 01:44:41,870 কিছু ভ্রান্ত আঁকড়ি পরিস্থিতি, এবং তারপর প্রস্থান. 2042 01:44:41,870 --> 01:44:45,690 এবং তারপর, এতক্ষণ সব ভাল, একটি অন্য আছে না, 2043 01:44:45,690 --> 01:44:48,060 কিন্তু শুধু কোড আছে যে বাইরে যদি, কারণ এটা 2044 01:44:48,060 --> 01:44:51,060 এই সমতুল্য বিশেষ ক্ষেত্রে, কথাটি. 2045 01:44:51,060 --> 01:44:54,480 তাই আমি 0 ফেরত দিচ্ছি মাত্র স্পষ্টভাবে বোঝান সব ঠিক থাকে. 2046 01:44:54,480 --> 01:44:58,480 >> তাহলে আমি রিটার্ন 0 বাদ, এটা would স্বয়ংক্রিয়ভাবে আমার জন্য অনুমান করা. 2047 01:44:58,480 --> 01:45:00,890 কিন্তু এখন যে আমি ফিরে আছি অন্তত এই ক্ষেত্রে এক, 2048 01:45:00,890 --> 01:45:04,940 আমি যাচ্ছি, ভাল পরিমাপ জন্য এবং স্বচ্ছতা, এই ক্ষেত্রে 0 ফিরে. 2049 01:45:04,940 --> 01:45:09,690 সুতরাং এখন আমাকে এগিয়ে যান এবং প্রস্থান করা যাক, যা একটি নিখুঁত segue মাত্র ছেড়ে চলে যেতে হয়. 2050 01:45:09,690 --> 01:45:14,401 >> কিন্তু প্রস্থান করা, আর আমাকে যেতে দাও এগিয়ে এবং ./exit না, লিখুন. 2051 01:45:14,401 --> 01:45:16,900 এবং প্রোগ্রাম আমার দিকে চিৎকার করে বলল, অনুপস্থিত কমান্ড লাইন আর্গুমেন্ট. 2052 01:45:16,900 --> 01:45:18,120 ঠিক আছে, আমাকে সহযোগিতা দেবেন. 2053 01:45:18,120 --> 01:45:23,810 >> আমাকে পরিবর্তে ./exit না, ডেভিড, লিখুন. 2054 01:45:23,810 --> 01:45:25,190 আর এখন এটা বলছেন, হ্যালো ডেভিড. 2055 01:45:25,190 --> 01:45:27,300 এবং আপনি সাধারণতঃ এই দেখুন না. 2056 01:45:27,300 --> 01:45:30,650 >> কিন্তু এটি সক্রিয় আউট সেখানে একটি যে লিনাক্স-এ বিশেষ ভাবে আসলে দেখতে 2057 01:45:30,650 --> 01:45:34,470 কি প্রস্থান কোড দিয়ে একটি প্রোগ্রাম থেকে প্রস্থান. 2058 01:45:34,470 --> 01:45:37,184 একটি গ্রাফিকাল মধ্যে কখনও কখনও ম্যাক অপারেটিং সিস্টেম বা উইন্ডোজের মত বিশ্ব, 2059 01:45:37,184 --> 01:45:40,100 আপনি শুধুমাত্র এই সংখ্যার যখন একটি দেখুন ত্রুটি বার্তা পর্দায় pops আপ 2060 01:45:40,100 --> 01:45:41,940 এবং প্রোগ্রামার আপনি যে সংখ্যা দেখায়. 2061 01:45:41,940 --> 01:45:44,773 কিন্তু আমরা কি ভুল দেখতে চান তাহলে বার্তা, হয় আমরা এটা এখানে কি করতে পারেন 2062 01:45:44,773 --> 01:45:48,100 তাই ./exit, লিখুন, মুদ্রণ অনুপস্থিত কমান্ড লাইন আর্গুমেন্ট. 2063 01:45:48,100 --> 01:45:54,590 >> আমি এখন চাইলে echo $ ?, না, তাহলে হয় হাস্যকর রহস্যপূর্ণ খুঁজছেন. 2064 01:45:54,590 --> 01:45:56,590 কিন্তু $? 2065 01:45:56,590 --> 01:45:59,220 ঐন্দ্রজালিক জাদুমন্ত্র নয় যে বলে, হেই, কম্পিউটার, 2066 01:45:59,220 --> 01:46:01,900 আমাকে বল কি পূর্ববর্তী প্রোগ্রাম এর প্রস্থান কোড ছিল. 2067 01:46:01,900 --> 01:46:03,410 আমি আঘাত লিখুন. 2068 01:46:03,410 --> 01:46:07,520 আমি 1 দেখুন, যে কারণ কি আমি ফিরে আসার জন্য আমার প্রধান ফাংশন বলা. 2069 01:46:07,520 --> 01:46:12,310 >> এদিকে, যদি আমি ./exit ডেভিড না, এবং আঘাত লিখুন, আমি দেখতে, হ্যালো ডেভিড. 2070 01:46:12,310 --> 01:46:16,800 আর আমি যদি এখন চাইলে echo $ না ?, আমি হ্যালো 0 দেখুন. 2071 01:46:16,800 --> 01:46:19,080 তাই এই আসলে হবে মূল্যবান তথ্য হতে 2072 01:46:19,080 --> 01:46:23,420 ডিবাগার প্রেক্ষাপটে, তাই না অনেক যে আপনি মানুষ, যত্ন নেবেন. 2073 01:46:23,420 --> 01:46:26,060 কিন্তু ডিবাগার এবং অন্যান্য প্রোগ্রাম আমরা এই সেমিস্টারে ব্যবহার করব 2074 01:46:26,060 --> 01:46:29,420 প্রায়ই যে সংখ্যা দিকে তাকাবে যদিও এটি সাজানোর দূরে লুকানো 2075 01:46:29,420 --> 01:46:32,780 যদি না আপনি এটি জন্য, চেহারা কিনা বা না একটি প্রোগ্রাম এর 2076 01:46:32,780 --> 01:46:37,050 মৃত্যুদন্ড সঠিক বা ভুল ছিল. 2077 01:46:37,050 --> 01:46:40,450 >> এবং যাতে আমাদের এনেছে এই, দিনের শেষে. 2078 01:46:40,450 --> 01:46:43,917 আমরা এ খুঁজছেন দ্বারা আজ শুরু ডিবাগিং, এবং অবশ্যই এ পালাক্রমে 2079 01:46:43,917 --> 01:46:46,750 নিজেই, এবং তারপর আরো মজার, টেকনিক্যালি ফণা নীচে 2080 01:46:46,750 --> 01:46:49,490 কি এ স্ট্রিং, যা স্থায়ী সপ্তাহে আমরা শুধু মেনে নিল, 2081 01:46:49,490 --> 01:46:51,900 এবং অবশ্যই তাদের গ্রহণ জন্য ভূত মঞ্জুর. 2082 01:46:51,900 --> 01:46:56,040 >> আমরা তারপর আমরা কিভাবে অ্যাক্সেস করতে পারেন দিকে তাকিয়ে একটি স্ট্রিং পৃথক অক্ষর, 2083 01:46:56,040 --> 01:47:00,310 এবং তারপর আবার একটি উচ্চ স্তরের গ্রহণ , জিনিস তাকান well-- কিভাবে এ খুঁজছেন 2084 01:47:00,310 --> 01:47:04,226 আমরা পৃথক এ পেতে চান তাহলে গঠন মত একটি তালিকায় উপাদান, 2085 01:47:04,226 --> 01:47:05,850 আমরা একাধিক স্ট্রিং সঙ্গে ব্যবহার করতে পারবেন না? 2086 01:47:05,850 --> 01:47:08,050 এবং আমরা কমান্ড লাইন আর্গুমেন্ট সাথে করতে পারেন. 2087 01:47:08,050 --> 01:47:12,800 কিন্তু এই ছবি শুধু বাক্সে এখানে এই সাধারণ ধারণার নির্দেশাত্মক 2088 01:47:12,800 --> 01:47:14,451 একটি অ্যারের, বা একটি তালিকা, বা একটি ভেক্টরের. 2089 01:47:14,451 --> 01:47:16,450 এবং তার উপর নির্ভর করে প্রসঙ্গ, এই সব শব্দের 2090 01:47:16,450 --> 01:47:17,880 কিছুটা ভিন্ন জিনিষ মানে. 2091 01:47:17,880 --> 01:47:20,060 তাই সি, আমরা শুধুমাত্র যাচ্ছেন অ্যারে সম্পর্কে কথা বলার জন্য. 2092 01:47:20,060 --> 01:47:23,840 আর একটি অ্যারের একটি খণ্ড মেমরি, যাদের প্রত্যেকের আছে 2093 01:47:23,840 --> 01:47:27,720 উপাদান, সংলগ্ন হয় ফিরে, ব্যাক, ফিরে ফিরে যাও. 2094 01:47:27,720 --> 01:47:31,970 >> আর যারা উপাদান, হয় সাধারণত, একই ধরনের তথ্য, চরিত্র, 2095 01:47:31,970 --> 01:47:35,966 অক্ষর, অক্ষর, অক্ষর, বা স্ট্রিং, স্ট্রিং, স্ট্রিং, স্ট্রিং, বা কোন int, 2096 01:47:35,966 --> 01:47:38,600 কোন int, কোন int, যাই হোক না কেন আমরা দোকান করার চেষ্টা করছেন. 2097 01:47:38,600 --> 01:47:42,540 কিন্তু দিনের শেষে, এই হল কি এটা ধারণার মত দেখায়. 2098 01:47:42,540 --> 01:47:44,530 আপনি গ্রহণ করছেন আপনার কম্পিউটারের মেমরি বা র্যাম. 2099 01:47:44,530 --> 01:47:48,590 আর আপনি এটা আউট খোদাই করছি অভিন্নরুপে আকারের বক্স, যা সব 2100 01:47:48,590 --> 01:47:50,920 ফিরে এসেছে, ফিরে যাও, ফিরে, এই ভাবে ব্যাক. 2101 01:47:50,920 --> 01:47:53,200 >> এবং কি সম্পর্কে চমৎকার এই ধারণা, এবং সত্য 2102 01:47:53,200 --> 01:47:58,580 আমরা এই ভাবে মান প্রকাশ করতে পারে আমাদের ডাটা স্ট্রাকচার প্রথম 2103 01:47:58,580 --> 01:48:02,520 ক্লাসে, আমরা শুরু করতে পারেন মানে কোড দিয়ে সমস্যার সমাধান করতে 2104 01:48:02,520 --> 01:48:04,079 যে সপ্তাহে 0 সুতরাং intuitively এসেছিলেন. 2105 01:48:04,079 --> 01:48:05,870 আপনি ফোন প্রত্যাহার করব বই উদাহরণ, যেখানে 2106 01:48:05,870 --> 01:48:09,110 আমরা একটি ডিভাইড ব্যবহৃত এবং জয়, অথবা একটি বাইনারি অনুসন্ধান অ্যালগোরিদম, 2107 01:48:09,110 --> 01:48:13,220 একটি পুরো মাধ্যমে টালা নাম এবং সংখ্যার গুচ্ছ. 2108 01:48:13,220 --> 01:48:18,220 কিন্তু আমরা ধারণ, রিকল, যে যে ফোন বই ইতিমধ্যে সাজানো হয় 2109 01:48:18,220 --> 01:48:21,630 অন্য কেউ ইতিমধ্যে ছিল যে out-- নামের একটি তালিকা দেয়া মূর্ত 2110 01:48:21,630 --> 01:48:24,430 এবং সংখ্যার তাদের বর্ণানুক্রমে কিভাবে. 2111 01:48:24,430 --> 01:48:26,950 আর এখন যে সি আমরা, খুব, ক্ষমতা আছে 2112 01:48:26,950 --> 01:48:30,290 জিনিষ খুঁজে রাখা, না শারীরিকভাবে একটি ফোন বই 2113 01:48:30,290 --> 01:48:34,220 কিন্তু কার্যত একটি কম্পিউটারের মধ্যে স্মৃতি, আমরা সক্ষম আগামী সপ্তাহে হবে 2114 01:48:34,220 --> 01:48:38,470 প্রথম আপাততঃ আবার পরিচয় করিয়ে একটি অ্যারে আমাদের ডাটা স্ট্রাকচার 2115 01:48:38,470 --> 01:48:43,530 কিন্তু আরো গুরুত্বপূর্ণ, প্রকৃত কম্পিউটার বিজ্ঞান আলগোরিদিম বাস্তবায়ন 2116 01:48:43,530 --> 01:48:47,720 কোডে, যা দিয়ে আমরা সংরক্ষণ করতে পারেন এই মত কাঠামোর মধ্যে তথ্য, 2117 01:48:47,720 --> 01:48:50,730 এবং তারপর এটি নিপূণভাবে শুরু, এবং আসলে এটা দিয়ে সমস্যার সমাধান করতে, 2118 01:48:50,730 --> 01:48:53,570 এবং যে উপরে নির্মাণ করা, পরিণামে, সি প্রোগ্রাম, 2119 01:48:53,570 --> 01:48:56,730 পাইথন, জাভাস্ক্রিপ্ট, এসকিউএল সঙ্গে ডাটাবেস অনুসন্ধান? 2120 01:48:56,730 --> 01:48:59,980 >> এবং আমরা এই সব দেখতে পাবেন বিভিন্ন ধারনা আলিঙ্গনাবদ্ধ. 2121 01:48:59,980 --> 01:49:04,100 কিন্তু এখন জন্য, যে স্মরণ ডোমেইন যে আমরা আজ চালু 2122 01:49:04,100 --> 01:49:06,920 এই জিনিস এখানে ছিল, এবং ক্রিপ্টোগ্রাফি বিশ্বের. 2123 01:49:06,920 --> 01:49:11,200 আর তুমি নিজের পরবর্তী সমস্যার মধ্যে সমাধান হবে ক্রিপ্টোগ্রাফী শিল্প, 2124 01:49:11,200 --> 01:49:13,630 scrambling এবং ডি-হাহাকার তথ্য, এবং ciphering 2125 01:49:13,630 --> 01:49:15,930 এবং টেক্সট পাঠোদ্ধারে, এবং পরিণামে অভিমানী 2126 01:49:15,930 --> 01:49:18,970 আপনি এখন জানেন যে কি ফণা নীচে হয় 2127 01:49:18,970 --> 01:49:21,860 যাতে যখন আপনি দেখতে বা গ্রহণ এই মত একটি বার্তা, আপনি 2128 01:49:21,860 --> 01:49:24,060 নিজেকে এটি পাঠোদ্ধার করতে. 2129 01:49:24,060 --> 01:49:26,740 সকল এই, এবং আরো অনেক কিছু পরবর্তী সময়. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [ভিডিও প্লেব্যাক] 2132 01:49:30,790 --> 01:49:32,970 >> -Mover এইমাত্র. 2133 01:49:32,970 --> 01:49:35,146 আমি দর্শন যেতে যাচ্ছি তার কলেজের প্রফেসর. 2134 01:49:35,146 --> 01:49:37,611 হাঁ. 2135 01:49:37,611 --> 01:49:40,080 হাই. 2136 01:49:40,080 --> 01:49:40,660 এটা তুমি. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 অপেক্ষা করুন! 2139 01:49:45,110 --> 01:49:45,610 ডেভিড. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 আমি শুধু চিন্তা করার চেষ্টা করছি তোমার কি হয়েছে জানতে. 2142 01:49:56,060 --> 01:49:58,130 অনুগ্রহ করে, কিছু সাহায্য করতে পারে. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 আপনি তার কলেজ ছিল একই ঘরে বাসিন্দা, তাই না? 2145 01:50:08,354 --> 01:50:10,770 তুমি তাকে সঙ্গে ছিল তিনি এবং CS50 প্রকল্প শেষ? 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [সঙ্গীত বাজাচ্ছি] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> -যে CS50 ছিল. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> আমি এই জায়গা ভালবাসা. 2152 01:50:44,770 --> 01:50:45,854 >> -সাবাড় করা. 2153 01:50:45,854 --> 01:50:47,020 আমরা ব্যবসার বাইরে যাচ্ছেন. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [END টি প্লেব্যাক]