1 00:00:00,000 --> 00:00:02,670 [Powered by Google Translate] অনুচ্ছেদ সমস্যা 2 সেট করুন: হ্যাকার সংস্করণ 2 00:00:02,670 --> 00:00:04,910 Rob Bowden, হার্ভার্ড ইউনিভার্সিটি 3 00:00:04,910 --> 00:00:07,410 এটি CS50. CS50.TV 4 00:00:07,410 --> 00:00:15,770 সুতরাং, আমি রব. আমি কার্কল্যান্ড মধ্যে একজন সিনিয়র. এটা আমার তৃতীয় বছরে CS50 TFing. 5 00:00:15,770 --> 00:00:22,220 এটা প্রথমবার না যে আমরা সনাতন ভর্ৎসনা-শৈলী অধ্যায় থেকে পরিবর্তন করা হয়, 6 00:00:22,220 --> 00:00:25,610 যেখানে আমরা শুধু পর্যালোচনা ধরনের কি বক্তৃতায় ঘটেছে এবং তারপর আপনি প্রশ্ন করবেন না, 7 00:00:25,610 --> 00:00:32,250 এখন যাও হচ্ছে আরো অনেক সমস্যা-ভিত্তিক, যেখানে আমরা শূন্যস্থানের ব্যবহার, এবং - 8 00:00:32,250 --> 00:00:37,410 ওহ, তাই ধারণা যে লিঙ্ক আমি আপনাকে পাঠানো যেতে হয় এবং তারপরে আপনি আমার স্পেস থাকব. 9 00:00:37,410 --> 00:00:42,410 কেউ কি একটি ল্যাপটপ আছে না? ঠিক আছে. 10 00:00:42,410 --> 00:00:47,050 তাই আমরা এই বিভাগে ব্যবহার করা যাচ্ছে, এবং করছি আমরা সমস্যার করছেন করা চলুন বসবাস 11 00:00:47,050 --> 00:00:50,740 এবং তাদের আলোচনা এবং figuring আউট কি ভুল 12 00:00:50,740 --> 00:00:56,390 এবং আমি আপনার কোড কিছু থামা, এবং আমি আপনার ধারনা আলোচনা পারে. 13 00:00:56,390 --> 00:01:02,140 তাই যে কেউ করেনি অসুবিধা ছিল? 14 00:01:02,140 --> 00:01:07,000 আমি যদি আমরা যে কারণ থাকতে পারে না; আপনি পাশ দিয়ে চ্যাট করতে পারেন. 15 00:01:07,000 --> 00:01:12,270 আগের মত এখন supersection,, যদি আপনি যে বর্গ ছিল, আপনি কি জানেন যে যে এর সম্পর্কে. 16 00:01:12,270 --> 00:01:19,200 পি সেট সব অন যাচ্ছে এইসব বিভাগে আছে এর. 17 00:01:19,200 --> 00:01:22,550 তাই পি সেট 2, নির্দিষ্টকরণের, আমি অনুমান আপনি পি সেট 1 থেকে তা ইতিমধ্যে দেখেছি. 18 00:01:22,550 --> 00:01:27,400 কিন্তু আমরা পি সেট 2 কি আমরা আজ উপর আপাতত চলুন জন্য সন্ধান করতে পারেন. 19 00:01:27,400 --> 00:01:29,460 এবং আপনি প্রশ্নগুলির একটি অধ্যায় দেখতে পাবেন. 20 00:01:29,460 --> 00:01:37,530 হতে প্রশ্নগুলির একটি অধ্যায় আছে করব; তাই এই পি সেট সব করা হবে. 21 00:01:37,530 --> 00:01:41,340 এ পর্যন্ত আমরা আগেই বলেছি, "এই একটি সুযোগ অনুশীলন বিবেচনা করুন." করেছি 22 00:01:41,340 --> 00:01:44,940 আপনাকে এই প্রোগ্রাম জমা দিতে হবে না. 23 00:01:44,940 --> 00:01:48,480 ধারণা করা হয় যে আপনি এই সমস্যা সেট দিয়ে শুরু করতে সাহায্য ধরনের অনুমিত হয়. 24 00:01:48,480 --> 00:01:53,220 আমি হ্যাকার সংস্করণ উপর অনুমান, তাদের অনেক শুধু নতুন, আকর্ষণীয় শিখতে হবে অনুমিত হয়. 25 00:01:53,220 --> 00:01:58,590 তারা সমস্যা সেট সরাসরি প্রযোজ্য নাও হতে পারে. 26 00:01:58,590 --> 00:02:01,810 এবং ডান এখন আমরা কি তাদের সাথে জমা দিতে, করছি না, কিন্তু তত্ত্ব, 27 00:02:01,810 --> 00:02:07,480 পরে সমস্যা সেটের জন্য, আপনি তাদের জমা, এবং এইভাবে হয় আপনি অধ্যায় আসা সম্ভব 28 00:02:07,480 --> 00:02:10,380 বা অধ্যায় উত্তর পেতে দেখুন, অথবা আপনি শুধু আপনার নিজস্ব তাদের পেতে পারেন 29 00:02:10,380 --> 00:02:16,350 যদি আপনি আমার উপস্থিতি উপভোগ করার মত মনে করবেন না. 30 00:02:16,350 --> 00:02:21,010 তাই - আমি মনে করি এই প্রথম এক. 31 00:02:21,010 --> 00:02:29,280 ওহ. প্রশ্নের এই বিভাগে অধীন এছাড়াও, আমরা আপনাকে হাফপ্যান্ট সম্পর্কে প্রশ্ন জিজ্ঞাসা আছে. 32 00:02:29,280 --> 00:02:33,440 তত্ত্ব তাই আমি অনুমান,, আপনি আসছে অধ্যায় আগে এই ঘড়ি অনুমিত করছি, 33 00:02:33,440 --> 00:02:38,550 কিন্তু এটা সূক্ষ্ম যদি আপনি না; আমরা যে কোনোভাবে তাদের উপর যাবেন. 34 00:02:38,550 --> 00:02:42,590 "কিভাবে লুপ যখন কোনো একটি কি সময় লুপ থেকে পৃথক: সুতরাং আমরা এই দিয়ে শুরু করতে পারেন? 35 00:02:42,590 --> 00:02:46,210 কখন আধুনিক বিশেষভাবে কার্যকরী? " 36 00:02:46,210 --> 00:02:49,390 সুতরাং যে কেউ যে কোনো আছে -? 37 00:02:49,390 --> 00:02:52,730 [ছাত্র] Do-সময় সর্বদা লুপ চালানো অন্তত একবার হবে. 38 00:02:52,730 --> 00:03:02,950 হ্যাঁ. সুতরাং যে পার্থক্য. যখন একটি লুপ - I'll শুধু এখানে না - যখন লুপ, আমরা শর্ত আছে 39 00:03:02,950 --> 00:03:19,760 এখানে ডান, যেহেতু একটি Do-যখন, আপনি যতক্ষণ না আমরা পেতে এখানে নিচে আছে একটি শর্ত না. 40 00:03:19,760 --> 00:03:24,130 এবং তাই, যখন আপনার প্রোগ্রাম, এবং এটি নির্বাহ করার সময় লুপ এর বল, 41 00:03:24,130 --> 00:03:26,380 এটি পরীক্ষা করে অবিলম্বে এই যদি অবস্থা হয় সত্য. 42 00:03:26,380 --> 00:03:30,710 যদি যে শর্ত সত্য নয়, এটা থামিয়া লুপ উপর সম্পূর্ণরূপে হবে. 43 00:03:30,710 --> 00:03:34,390 -Do যখন লুপ, হিসাবে প্রোগ্রাম নির্বাহ করা হয়, এটি "না." পায় 44 00:03:34,390 --> 00:03:37,920 এই সময়ে এরকম কিছুই নেই, শুধু চলতে নির্বাহ. 45 00:03:37,920 --> 00:03:42,690 তারপর যখন এটি "যখন," হিট শর্ত যদি সত্য হয়, এটা লুপ এবং এটি আবার ব্যাক করব না 46 00:03:42,690 --> 00:03:46,730 এবং আবার এবং আবার পর্যন্ত শর্ত সত্য হয় তাহলে এবং কেবল পড়ে না. 47 00:03:46,730 --> 00:03:50,600 সুতরাং, পার্থক্য হচ্ছে, যে এই অধিকার থেকে শুরু খুব লাফালাফি করা যাবে. 48 00:03:50,600 --> 00:03:56,770 এই অগত্যা একবার করুন এবং তারপর আরো কয়েকবার চালানো যদি অবস্থা এখনও সত্য হতে পারে. 49 00:03:56,770 --> 00:04:03,720 সুতরাং লুপ শুধুমাত্র এটি একবার না, বা হবে - যখন লুপ - আমরা এ সব কি দরকার নাও হতে পারে, 50 00:04:03,720 --> 00:04:07,900 যত শীঘ্র আমরা তা পেতে যেহেতু, অবস্থা যদি মিথ্যা হয়, আমরা এটা উপর রাইট থামিয়া করব. 51 00:04:07,900 --> 00:04:11,770 যেহেতু কাজ যখন লুপ, আমরা এটি একবার চালানো, অগত্যা হবে. 52 00:04:11,770 --> 00:04:14,560 এর পরে, যখন আমরা শর্ত পেতে, আমরা চেক যদি এটা সত্য বা মিথ্যা. 53 00:04:14,560 --> 00:04:19,790 যদি এটি সত্য, আমরা এটা আবার চেষ্টা করবো; যদি এটা মিথ্যা, আমরা অবিরত চালু করব. 54 00:04:19,790 --> 00:04:24,680 সুতরাং যখন একটি আধুনিক বিশেষ দরকারী? 55 00:04:24,680 --> 00:04:31,190 সুতরাং আমি পুরো 4 বছর, 3 বছর, যাই হোক না কেন যে বলতে পারে, 56 00:04:31,190 --> 00:04:38,780 যে আমি করেছি হয়েছে প্রোগ্রামিং, আমি এই ব্যবহৃত মত, কিন্তু 10 বার অধীন,. 57 00:04:38,780 --> 00:04:43,140 এবং সম্ভবত তাদের 5 CS50 হয় যখন আমরা সময় loops প্রবর্তন করছি. 58 00:04:43,140 --> 00:04:47,510 সুতরাং যখন আপনি কি ব্যবহার করবেন সময় loops? 59 00:04:47,510 --> 00:04:49,510 কখন - হাঁ? 60 00:04:49,510 --> 00:04:53,180 [ছাত্র] আপনি যখন ব্যবহারকারীর ইনপুট, বা কোন কিছু যা আপনি চেক করতে পেতে চেষ্টা করছেন - 61 00:04:53,180 --> 00:04:59,700 হাঁ. তাই কাজ করার সময় loops, ব্যবহারকারীর ইনপুট হয় বড় এক. 62 00:04:59,700 --> 00:05:03,160 এটা কেন প্রথম দম্পতি সমস্যা সেট, আপনি যখন ব্যবহারকারী, জিজ্ঞাসা করতে চান করতে চান, 63 00:05:03,160 --> 00:05:08,520 "সম্পর্কে একটি স্ট্রিং দিতে," আপনি যতক্ষণ পর্যন্ত না আপনি স্ট্রিং পেতে চালিয়ে যেতে পারবে না. 64 00:05:08,520 --> 00:05:12,980 এবং যাতে আপনি অগত্যা,, স্ট্রিং জন্য অন্তত একবার জিজ্ঞাসা করা প্রয়োজন. 65 00:05:12,980 --> 00:05:16,950 কিন্তু তারপর যদি তারা কিছু খারাপ উত্তর তারপর, আপনি লুপের ফিরে যাও প্রয়োজন এবং আবার জিজ্ঞাসা. 66 00:05:16,950 --> 00:05:20,810 কিন্তু অন্যান্য তুলনায় ব্যবহারকারীর ইনপুট, এটা খুব বিরল যে আমি একটি কেস সম্মুখীন 67 00:05:20,810 --> 00:05:27,170 যেখানে আমি লুপ চাই "অন্তত একবার" কিন্তু সম্ভবত আরো. 68 00:05:27,170 --> 00:05:33,370 কোন প্রশ্ন বা -? যে কেউ ব্যবহার করেনি একটি Do-যখন কোথাও লুপ অন্যথায়? 69 00:05:33,370 --> 00:05:36,780 ঠিক আছে. সুতরাং পরের এক হয়, "কি শনাক্তকারী অঘোষিত না 70 00:05:36,780 --> 00:05:43,310 সাধারণত নির্দেশ ঝনঝন শব্দ দ্বারা যদি outputted? " 71 00:05:43,310 --> 00:05:47,380 কি ধরনের কোড আমি পেতে লিখুন 'অঘোষিত শনাক্তকারী?' হতে পারে 72 00:05:47,380 --> 00:05:49,550 [ছাত্র] যে x 2 =? 73 00:05:49,550 --> 00:05:52,650 তাই আমরা ঠিক এখানে এটা চেষ্টা করতে পারেন, x = 2. 74 00:05:52,650 --> 00:06:04,830 আমরা এই রান পাবেন - ওহ, আমি এটি ক্লিক করা হয় নি. সব ঠিক - তাই আমরা এখানে পাবেন. 75 00:06:04,830 --> 00:06:07,100 "অঘোষিত শনাক্তকারী x এর মধ্যে ব্যবহার করুন." 76 00:06:07,100 --> 00:06:11,610 সুতরাং যে অঘোষিত আইডেন্টিফায়ার, একটি পরিবর্তনশীল. 77 00:06:11,610 --> 00:06:13,910 এটা প্রায়ই একটি পরিবর্তনশীল একটি আইডেন্টিফায়ার কল হবে. 78 00:06:13,910 --> 00:06:17,300 সুতরাং এটি প্রকৃত একটি পরিবর্তনশীল হয়ত জানেন না; এটি কি এটা জানেন না. 79 00:06:17,300 --> 00:06:19,380 এটা একটি আইডেন্টিফায়ার. 80 00:06:19,380 --> 00:06:26,060 সুতরাং এটি কেন হয় অঘোষিত? হাঁ. 81 00:06:26,060 --> 00:06:32,190 তাই পরিভাষা, একটি পরিবর্তনশীল ঘোষণা উপর স্পষ্ট করা 82 00:06:32,190 --> 00:06:37,360 যখন আপনি "int x," বা "স্ট্রিং y," যাই হোক না কেন বলে. 83 00:06:37,360 --> 00:06:41,910 পরিবর্তনশীল আরম্ভের, বা ভেরিয়েবলের নিয়োগ, 84 00:06:41,910 --> 00:06:44,510 যখনই আপনি বলতে হয় "x = 2." 85 00:06:44,510 --> 00:06:52,950 সুতরাং আমরা পৃথক পদক্ষেপে এইসব করতে পারেন, int-X, x = 2, এবং যতক্ষণ না - আমরা এখানে একটা জিনিস আছে গুচ্ছ করতে পারেন - 86 00:06:52,950 --> 00:07:00,350 কিন্তু যতক্ষণ পর্যন্ত না এই লাইন হবে, এখনও x uninitialized হয়, কিন্তু এটি ঘোষিত হয়েছে. 87 00:07:00,350 --> 00:07:06,760 এবং তাই আমরা সম্ভবত 1 লাইন এটা, কি করতে পারেন এবং এখন আমরা এবং প্রকাশক আরম্ভ করা হয়. 88 00:07:06,760 --> 00:07:10,730 প্রশ্ন? 89 00:07:10,730 --> 00:07:18,390 এবং পরিশেষে, "কেন সিজার সাইফার? খুব নিরাপদ নয়" 90 00:07:18,390 --> 00:07:23,830 সুতরাং প্রথম, কেউ কি সিজার সাইফার হয় বলতে চাই না? 91 00:07:23,830 --> 00:07:28,100 [ছাত্র] সিজার সাইফার শুধু ম্যাপ যে আপনি, আপনার প্রতি চিঠি নামান, 92 00:07:28,100 --> 00:07:34,420 একটি চিঠি নির্দিষ্ট সংখ্যক যান উপর, এবং উপর পিছান, এবং এটি খুব নিরাপদ না কারণ 93 00:07:34,420 --> 00:07:42,260 শুধুমাত্র 26 সম্ভব অপশন আছে এবং আপনি শুধু তাদের প্রতিটি 1 চেষ্টা থাকে যতক্ষন না আপনি পেতে. 94 00:07:42,260 --> 00:07:45,470 ওহ. সুতরাং, আমি পুনরাবৃত্তি করা উচিত? 95 00:07:45,470 --> 00:07:51,600 সিজার সাইফার, it's - আমি বলতে চাচ্ছি, আপনি এটি দিয়ে হবে যে আপনি সমস্যার কারবারী - 96 00:07:51,600 --> 00:07:56,110 অথবা আমি সমস্যা সেট যে হ্যাকার সংস্করণ উপর না মান সংস্করণ অনুমান. 97 00:07:56,110 --> 00:08:01,550 সুতরাং সমস্যা সেট মানক সংস্করণে উপর, আপনি ভালো একটি বার্তা পেতে "হ্যালো, দুনিয়া," 98 00:08:01,550 --> 00:08:08,410 এবং আপনি যদি চান তাহলে 6 ভালো একটি নম্বর আছে, এবং আপনি যে বার্তাটি গ্রহণ করা, এবং প্রতিটি অক্ষর, 99 00:08:08,410 --> 00:08:11,310 আপনি বর্ণমালার মধ্যে 6 অবস্থানের দ্বারা এটি আবর্তিত. 100 00:08:11,310 --> 00:08:16,560 হ্যালো তাই 'জ' জ-i-j-k-l-m-n হয়ে যায়. 101 00:08:16,560 --> 00:08:19,600 সুতরাং প্রথম চিঠি n হবে. ই সঙ্গে একই জিনিস করে. 102 00:08:19,600 --> 00:08:23,530 যদি আমরা একটি আছে,, z-চান বা কিছু পরে, আমরা চারপাশে মোড়ানো ফিরে যাও 'একটি.' 103 00:08:23,530 --> 00:08:29,280 কিন্তু প্রতিটি অক্ষর পায় বর্ণমালার মধ্যে cycled 6 অক্ষরের পরে, এবং এটি খুব নিরাপদ না 104 00:08:29,280 --> 00:08:35,440 থেকে কিভাবে অনেক উপায়ে আপনি একটি চিঠি মোড়ানো যায়নি জন্য শুধুমাত্র 26 সম্ভাবনার আছে. 105 00:08:35,440 --> 00:08:42,919 তাই আপনি শুধু তাদের সমস্ত 26 এবং চেষ্টা করতে পারেন, একটি দীর্ঘ যথেষ্ট বার্তা জন্য সম্ভবতঃ,, 106 00:08:42,919 --> 00:08:46,860 যারা সম্ভাব্য 26 জিনিষ মাত্র 1 যাও সহজপাঠ্য হবে, 107 00:08:46,860 --> 00:08:50,300 এবং সহজপাঠ্য এক মূল বার্তা হতে যাচ্ছে. 108 00:08:50,300 --> 00:08:56,240 সুতরাং এটি একটি এনক্রিপ্ট এ সব কিছু খুব ভাল উপায় না. 109 00:08:56,240 --> 00:08:59,070 অসম্পর্কিত যারা হাফপ্যান্ট যাও, "কি একটি ফাংশন?" 110 00:08:59,070 --> 00:09:03,370 তাই একটি ফাংশন? হ্যাঁ. 111 00:09:03,370 --> 00:09:11,640 [ছাত্র] এটি একটি কোড পৃথক টুকরা যে আপনি মাধ্যমে এবং তারপর যান যাই হোক না কেন ফিরতি মূল্য পেতে কল করতে পারেন এর মত. 112 00:09:11,640 --> 00:09:18,160 হাঁ. এছাড়াও ঠিক পরের এক উত্তর দিয়ে বা পুনরাবৃত্ত - সুতরাং আমি পরবর্তী পর্বের দ্বারা এটি উত্তর পাবেন. 113 00:09:18,160 --> 00:09:22,410 আপনি ফাংশন ব্যবহার করার পরিবর্তে শুধুমাত্র কপি করে কোড পেস্ট সম্ভব এবং আবার উপর. 114 00:09:22,410 --> 00:09:27,200 শুধু যে কোড, নিতে একটি fuction মধ্যে রাখা, এবং তারপর আপনি শুধু ফাংশন কল করতে পারেনি 115 00:09:27,200 --> 00:09:29,870 আপনি যেখানেই থাকুন এবং অনুলিপি দেওয়া হয়েছে পেস্ট. 116 00:09:29,870 --> 00:09:33,350 সুতরাং কর্ম উপযোগী. 117 00:09:33,350 --> 00:09:35,860 তাই এখন আমরা প্রকৃত সমস্যা করব. 118 00:09:35,860 --> 00:09:46,490 প্রথম এক. সুতরাং প্রথম এক ধারণা হয়, তাহলে এটি একটি পংক্তি প্রেরণ করার জন্য, এবং নির্বিশেষে - 119 00:09:46,490 --> 00:09:52,060 অথবা এটা সব ছোট বলে? এটা সব ছোট হাতের অক্ষর ব্যবহার না বলবো না. 120 00:09:52,060 --> 00:09:57,730 তাই কিছু বার্তা, এবং হতে পারে - উহু নেই. এটা আছে. 121 00:09:57,730 --> 00:10:01,610 "সরলতার জন্য, আপনি যে ব্যবহারকারী শুধুমাত্র ছোট হাতের অক্ষর এবং স্পেস ইনপুট করবে না. অনুমান হতে পারে" 122 00:10:01,610 --> 00:10:08,180 সুতরাং আমরা এটা শুধুমাত্র ছোট হাতের অক্ষর দিয়ে একটি বার্তা পাস এবং তারপর আমরা বিকল্প 123 00:10:08,180 --> 00:10:15,450 বড় ও ছোট হাতের মধ্যে - আমরা স্ট্রিং মূলধন এবং ছোট হাতের অক্ষর ব্যবহার করা, পর্যায়ক্রমে পরিবর্তন. 124 00:10:15,450 --> 00:10:22,920 তাই আগে আমরা আপনাকে এমনকি সমস্যার মধ্যে একটি আকর্ষণীয় দ্বিতীয় দিন, 125 00:10:22,920 --> 00:10:32,420 প্রথম যে কাজটা আমরা যা করতে হবে কি? 126 00:10:32,420 --> 00:10:36,900 ওহ, আমি কি শুধুমাত্র ক্লিক করুন কি? ওহ, আমি শুধু এখানে একটি ইমেল ক্লিক করেছেন. 127 00:10:36,900 --> 00:10:42,870 সুতরাং প্রথম জিনিস আমরা যা করতে হবে - আমি ভুল এক সময়ে am খুঁজছেন? 128 00:10:42,870 --> 00:10:49,320 এটা কি এই এক অংশ? 129 00:10:49,320 --> 00:10:51,320 না, যারা আছে এখনও, যদিও. 130 00:10:51,320 --> 00:10:55,160 ঠিক আছে, এখনও এখানে. 131 00:10:55,160 --> 00:11:03,160 - এখন আমরা অনুমান করতে পারে না? হ্যাঁ. এখানে আমরা যে শুধুমাত্র ছোট হাতের অক্ষর ব্যবহার এবং স্পেস অনুমান করতে পারে না. 132 00:11:03,160 --> 00:11:07,770 তাই এখন আমরা যে অক্ষর যাই হোক না কেন আমরা তাদের হতে চান হতে পারে মোকাবেলা করতে হবে. 133 00:11:07,770 --> 00:11:11,910 এবং সে জন্য প্রথম জিনিস আমরা যেতে চাই বার্তা পেতে হয়. 134 00:11:11,910 --> 00:11:19,790 আমরা শুধুমাত্র একটি স্ট্রিং পেতে হবে স্ট্রিং গুলি = GetString,, ঠিক আছে. 135 00:11:19,790 --> 00:11:24,890 এখন এই সমস্যা, এরকম ভাবে কয়েকজন আছে. 136 00:11:24,890 --> 00:11:29,840 কিন্তু আমরা এখানে bitwise অপারেটর ব্যবহার করতে চান যাচ্ছি. 137 00:11:29,840 --> 00:11:35,280 সেখানে যারা হয় supersection ছিল না, 138 00:11:35,280 --> 00:11:37,480 বা কিছু, এবং কি bitwise অপারেটরদের হয় না? 139 00:11:37,480 --> 00:11:41,710 বা কিভাবে হওয়া ASCII তারা কোন ভাবেই কহা? 140 00:11:41,710 --> 00:11:45,650 [ছাত্র] আমি supersection ছিল কিন্তু আমি জানি কি bitwise অপারেটরদের হয়, না. 141 00:11:45,650 --> 00:11:49,560 ঠিক আছে. আমি তখন তাদের মৌলিক উপর যেতে, না আছে কিন্তু আমি ব্যাখ্যা করব 142 00:11:49,560 --> 00:11:51,830 যাও যাও এখানে ব্যবহার করতে চান তাহলে কি আমরা চলুন. 143 00:11:51,830 --> 00:11:59,680 তাই 'এ': মূলধন একটি বাইনারি উপস্থাপনা, সংখ্যা হল 65. 144 00:11:59,680 --> 00:12:07,560 আমি শুধু তাকান যাচ্ছে - 41 যাও 01000001 হবে. 145 00:12:07,560 --> 00:12:14,170 যাতে 65 দশমিক মধ্যে হওয়া উচিত; তাই এই অক্ষর মূলধন এ বাইনারি এর উপস্থাপনা 146 00:12:14,170 --> 00:12:19,440 এখন, চরিত্রের বাইনারি উপস্থাপনা 'একটি' ছোট হাতের অক্ষর 147 00:12:19,440 --> 00:12:33,350 একই জিনিস হতে প্রায়, যাচ্ছে. যে - 6, হাঁ. এই অধিকার. 148 00:12:33,350 --> 00:12:37,670 সুতরাং একটি বাইনারি মূলধন, বাইনারি ছোট 'একটি.' 149 00:12:37,670 --> 00:12:43,940 তাই লক্ষ্য করা যে A এবং 'একটি' হল এই একক বিট. মধ্যে পার্থক্য 150 00:12:43,940 --> 00:12:49,440 এবং এই 32 বিট, 32 বিট সংখ্যা প্রতিনিধিত্বমূলক হতে হবে. 151 00:12:49,440 --> 00:12:53,910 এবং যে অর্থে তোলে থেকে একটি 65; 'একটি' হল 97. 152 00:12:53,910 --> 00:12:56,610 তাদের মধ্যে পার্থক্য হল 32. 153 00:12:56,610 --> 00:13:03,770 তাই এখন আমরা জানি যে আমরা একটি 'একটি' থেকে গ্রহণ করে রূপান্তর করতে পারেন 154 00:13:03,770 --> 00:13:09,710 এবং bitwise ORing এটি সঙ্গে, - একটি 1 এর মতো দেখতে. 155 00:13:09,710 --> 00:13:20,900 এটি একটি bitwise বা, 00100000 সঙ্গে, এবং যা আমাদের দেব 'একটি.' 156 00:13:20,900 --> 00:13:26,850 এবং আমরা 'একটি' থেকে একটি bitwise ANDing পেতে পারেন 157 00:13:26,850 --> 00:13:33,700 11 যে জায়গা, 11111, ২ 0. 158 00:13:33,700 --> 00:13:43,840 তাই এই তারপর আমাদের ঠিক কি 'একটি' ছিল দেবে; কিন্তু এই ব্যক্তিগত বিট বাতিল আউট, 159 00:13:43,840 --> 00:13:50,070 তাই আমরা 01000001 থাকবে; আমি যদি আমি ডান সংখ্যাত জানি না. 160 00:13:50,070 --> 00:13:56,750 কিন্তু bitwise ORing এই পন্থা মূলধন ছোট হাতের অক্ষর থেকে পেতে, 161 00:13:56,750 --> 00:14:02,080 এবং bitwise থেকে ছোট হাতের অক্ষর ব্যবহার মূলধন পেতে ANDing একচেটিয়া এ হয় না 162 00:14:02,080 --> 00:14:06,510 সমস্ত অক্ষর, K বনাম ট, Z বনাম z, 163 00:14:06,510 --> 00:14:10,080 তাদের সব ঠিক হয় এই একক বিট দ্বারা পৃথক যাচ্ছে. 164 00:14:10,080 --> 00:14:16,290 এবং যাতে আপনি কোনো ছোট হাতের অক্ষর থেকে কোনো বড় হাতের অক্ষর এবং তদ্বিপরীত এই পরিবর্তনের জন্য ব্যবহার করতে পারেন. 165 00:14:16,290 --> 00:14:26,670 ঠিক আছে. সুতরাং এই থেকে পাবার সহজ উপায় - তাই পরিবর্তে থাকার যাও 166 00:14:26,670 --> 00:14:32,170 আউট লিখুন যাই হোক না কেন 1011111 হয় - এই সংখ্যা প্রতিনিধিত্বমূলক সহজ উপায়, এবং এই নয় 167 00:14:32,170 --> 00:14:39,710 যে আমি supersection সালে উপর, কিন্তু টিল্ড (~) আরেকটি bitwise অপারেটর. 168 00:14:39,710 --> 00:14:42,520 কি আছে ~ এটা বিট উপস্থাপনা দেখে. 169 00:14:42,520 --> 00:14:45,630 যাক এর কোন নম্বর নিতে. 170 00:14:45,630 --> 00:14:53,130 এই মাত্র কিছু বাইনারি সংখ্যা, এবং কি ~ হয় না এটা বিট সব ফ্লিপ. 171 00:14:53,130 --> 00:15:00,630 তাই এই ছিল একটি 1, এখন একটি 0, এই হল 0 এখন, একটি 1, 010100. 172 00:15:00,630 --> 00:15:08,320 সুতরাং যে সব ~ আছে. যে পরিত্রাণ পেতে - তাই 32 নম্বর হবে - 173 00:15:08,320 --> 00:15:23,320 তাই 32 নম্বর 00100000 হবে, এবং এই তাই ~ হতে যাচ্ছে 174 00:15:23,320 --> 00:15:29,980 এই সংখ্যা এখানে আপ যে আমি সঙ্গে 'একটি' ANDed. 175 00:15:29,980 --> 00:15:35,600 সবাই কি দেখলে? এটি আপনি যখন চিন্তা করতে চান মত চমত্কার সাধারণ, 176 00:15:35,600 --> 00:15:40,740 পরবর্তীতে যে আমরা যা দেখছি, হতে পারে যখন আমরা যদি দেখতে দিতে চান না - 177 00:15:40,740 --> 00:15:44,710 অথবা আমরা জন্য 1 ছাড়া সবকিছু, প্রতি একক বিট সেট করতে চান 178 00:15:44,710 --> 00:15:47,910 আপনি ঝোঁক যাও বিট সেট না যে আমরা কাজ করতে চান ~ না. 179 00:15:47,910 --> 00:15:53,090 তাই আমরা 32 বিট সেট করতে চান না, তাই আমরা 32 এর ~ না. 180 00:15:53,090 --> 00:15:57,790 ঠিক আছে. তাই আমরা যারা সব এখানে ব্যবহার করতে পারেন. 181 00:15:57,790 --> 00:16:03,000 ঠিক আছে, তাই এটা সূক্ষ্ম যদি আপনি কাজ করছেন না, ধীরে ধীরে আমরা পদব্রজে ভ্রমণ উপর একসঙ্গে হইবে, 182 00:16:03,000 --> 00:16:11,870 এই বা তার বেশী, তাই পায়চারি করা - এই মাধ্যমে. এই ভিতর দিয়ে হেটে যেতে. 183 00:16:11,870 --> 00:16:20,790 সুতরাং আমরা আমাদের স্ট্রিং আছে, এবং আমরা চাই যে স্ট্রিং প্রতিটি অক্ষর উপর লুপ এবং এটি কোনো কিছু করতে. 184 00:16:20,790 --> 00:16:26,710 তাই কেমন একটি স্ট্রিং উপর আমরা লুপ? আমরা কি ব্যবহার করা উচিত? 185 00:16:26,710 --> 00:16:30,980 আমি এটা এখানে করতে যাচ্ছি না. হাঁ. 186 00:16:30,980 --> 00:16:42,940 তাই আমি আমার iterator আছে, এবং তিনি বলেন, কিন্তু কিভাবে আমি জানি স্ট্রিং কতগুলি অক্ষর? 187 00:16:42,940 --> 00:16:47,030 Strlen (গুলি), তারপর তোমার +. 188 00:16:47,030 --> 00:16:49,860 তাই আমি এখানে সম্পন্ন করেছি জিনিসগুলি করার সর্বোত্তম উপায় হল না. 189 00:16:49,860 --> 00:16:51,860 কেউ কি জানেন কেন? 190 00:16:51,860 --> 00:16:55,290 কারণ আপনি স্ট্রিং প্রতি একক সময় ভাষা চেক করছি. 191 00:16:55,290 --> 00:17:06,859 তাই আমরা যাও strlen সরাতে চান যাচ্ছি, আমি এখানে আপ বলতে পারে, int-দ্বারা = strlen (গুলি) 192 00:17:06,859 --> 00:17:11,900 এবং তারপর তোমার <দ্বারা কি ক্ষেত্রে, এবং আপনি আগে দেখা যায় না, 193 00:17:11,900 --> 00:17:20,410 আমি কি int i = 0, দৈর্ঘ্য = strlen (গুলি). পারে 194 00:17:20,410 --> 00:17:25,010 এবং তাই এটি কিছুটা বাঞ্ছনীয়, এখন থেকে আমি সুযোগ সীমিত করেছি 195 00:17:25,010 --> 00:17:29,150 পরিবর্তনশীল দৈর্ঘ্য মাত্র লুপ 'জন্য' এই পরিবর্তে, যাও আগে এটি প্রকাশক 196 00:17:29,150 --> 00:17:34,990 এবং যে সবসময় উপস্থিত থাকে, এবং যদি আপনি কেন যে খারাপ না করে বললেন, 197 00:17:34,990 --> 00:17:39,410 বা কেন আসল খারাপ ছিল, it's - লুপ জন্য শুরু করা হবে. 198 00:17:39,410 --> 00:17:43,380 আমি শর্ত চেক. হয় তোমার s এর দ্বারা 00:17:46,790 সুতরাং s এর দ্বারা, যাক এর সঙ্গে "হ্যালো" পুরো সময় কাজ. 200 00:17:46,790 --> 00:17:49,670 S এর দ্বারা সুতরাং, জ ই ঠ-l-O. দৈর্ঘ্য হল 5. 201 00:17:49,670 --> 00:17:57,580 আমি = 0, দৈর্ঘ্য হল 5, তাই তোমার <5 হয় না, তাই লুপ চলতে. 202 00:17:57,580 --> 00:18:02,750 তারপর আবার আমরা যান. আমরা অবস্থা পরীক্ষা. হয় তোমার হ্যালো দৈর্ঘ্য 00:18:08,390 সুতরাং আসুন হ্যালো দৈর্ঘ্যের চেক. H-ই-l-l-O. এটা 5; তোমার <5 নয়, তাই আমরা আবার অবিরত. 204 00:18:08,390 --> 00:18:13,330 তাই আমরা, হিসাবী লুপ প্রতিটি পুনরাবৃত্তির জন্য আমরা হ্যালো গণনা করা হয়,, 205 00:18:13,330 --> 00:18:17,380 এমনকি চিন্তা এটি পরিবর্তন হতেই থাকবে না; এটা সবসময় এর 5 হতে যাচ্ছে. 206 00:18:17,380 --> 00:18:22,530 তাই আমরা ঠিক সামনে 5, মনে রাখবেন এবং এখন সবকিছু আরও ভাল. 207 00:18:22,530 --> 00:18:24,990 সম্পূর্ণ পংক্তি উপর তাই iterating. 208 00:18:24,990 --> 00:18:31,470 কি আমরা স্ট্রিং প্রতিটি অক্ষর জন্য কাজ করতে চান? 209 00:18:31,470 --> 00:18:38,510 [ছাত্র ভাষাভাষী, অপাচ্য] 210 00:18:38,510 --> 00:18:47,000 হাঁ. সুতরাং, যদি অক্ষর অ বর্ণানুক্রমিক তারপর, আমরা এটি উপর লাফালাফি করা ঠিক করতে চান. 211 00:18:47,000 --> 00:18:52,300 কারণ আমরা শুধুমাত্র বর্ণানুক্রমিক অক্ষর যত্নশীল; আমরা একটি সংখ্যা না পুঁজিতে পারেন. 212 00:18:52,300 --> 00:19:10,850 সুতরাং কিভাবে এই আমরা কি করতে পারি? আমাদের অবস্থা যাতে, যদি আমরা কিছু করতে চান - যদি এটা বর্ণানুক্রমিক চেক. 213 00:19:10,850 --> 00:19:14,060 তাই কিভাবে আমরা এই না পরীক্ষা? 214 00:19:14,060 --> 00:19:18,720 [ছাত্র] আপনি ঠিক ফাংশান ব্যবহার করা যেতে পারে, আলফা. 215 00:19:18,720 --> 00:19:23,160 হয় এর মধ্যে, বা কোনো মধ্যে অন্তর্ভুক্ত মত, বা কিছু char.h অন্তর্ভুক্ত? 216 00:19:23,160 --> 00:19:32,710 তাই আমরা গুলি [i] আছে, - এর যাক হয় আলফা ফাংশন, এবং স্পষ্ট ব্যবহার না 217 00:19:32,710 --> 00:19:40,460 যে গুলি অষ্টম অক্ষর, মনে রাখবেন, যে একটি স্ট্রিংটি অক্ষরের একটি অ্যারের, 218 00:19:40,460 --> 00:19:43,180 তাই গুলি অষ্টম অক্ষর. 219 00:19:43,180 --> 00:19:49,280 এখন, যদি এটি একটি বড় হাতের অক্ষর, আমরা জানি এটা একটি নির্দিষ্ট সীমার মধ্যে হতে হবে. 220 00:19:49,280 --> 00:19:54,370 কি যে পরিসীমা? 221 00:19:54,370 --> 00:20:07,860 হাঁ. তাই আপনি যদি গুলি [i] ≥ 65 হয়, এবং গুলি [i] হল ≤ 90 কি, আমি পরিবর্তে কি করা উচিৎ? 222 00:20:07,860 --> 00:20:18,470 হাঁ. সুতরাং, আপনি এমন কি নিছক কখনও উচিত কিছু কখনও এর ASCII মান জানা প্রয়োজন. 223 00:20:18,470 --> 00:20:25,640 নম্বর 65, 90, 97 এবং 102, বা যাই হোক না কেন এটা মনে করবেন না. 224 00:20:25,640 --> 00:20:32,470 112 - - আপনি না প্রয়োজন? আপনি কি সব সময়ে যারা জানেন না করার প্রয়োজন নেই. খুব ভুল. 225 00:20:32,470 --> 00:20:41,940 শুধু একক উদ্ধৃতি অক্ষর, একক উদ্ধৃতি ধ্রুবক ব্যবহার. তাই 'এ' এবং 90 এর কম হয় 'জেড' 226 00:20:41,940 --> 00:20:47,930 এবং এই উল্লেখযোগ্যভাবে ভালো - আমি আমার মাথার উপরের যে Z হয় 90 বন্ধ জানি না. 227 00:20:47,930 --> 00:20:52,690 আমি আমার মাথার উপরের যে 'Z' হল মূলধন জেড জানি বন্ধ 228 00:20:52,690 --> 00:21:02,100 তাই যতদিন এই মূলধনের একটি মূলধন Z, বা আমরা সীমার মধ্যে হয় ছোট আকারের জন্য চেক করতে পারেন, 229 00:21:02,100 --> 00:21:17,010 অথবা যদি এর সীমার মধ্যে ≥ 'একটি' এবং z-≤. 230 00:21:17,010 --> 00:21:19,010 যাতে আমাদের শর্ত. 231 00:21:19,010 --> 00:21:22,520 যেখানে এই জিনিষ সবার জন্য শৈলী পরিবর্তিত হয়. 232 00:21:22,520 --> 00:21:29,520 আমি ভালো তা করব. 233 00:21:29,520 --> 00:21:31,520 এখন কি, আমরা কি করতে চান? 234 00:21:31,520 --> 00:21:39,530 আমরা জানি এই অক্ষর একটি অক্ষর, একটি অলাভজনক অক্ষর. 235 00:21:39,530 --> 00:21:46,270 সুতরাং আমরা কিনা এখন এই একটি বড় হাতের অক্ষর বা একটি ছোট হাতের অক্ষর উচিত মধ্যে বিকল্প প্রয়োজন. 236 00:21:46,270 --> 00:21:48,820 কিভাবে আমরা ট্র্যাক যা এক আমরা এটা হতে চান রাখা? 237 00:21:48,820 --> 00:21:55,520 [ছাত্র আওয়াজ, অপাচ্য] 238 00:21:55,520 --> 00:21:59,150 তাই হ্যাঁ, কিন্তু আমাকে চেক. 239 00:21:59,150 --> 00:22:04,910 মডিউল 0-2 বলা হয়েছিল, ছিল একটি প্রস্তাব অধ আউট, এবং আমি যে তার সাথে একমত. 240 00:22:04,910 --> 00:22:11,780 যে, ভালো বিজ্ঞপ্তি ছাড়া - এই ক্ষেত্রে? হাঁ. 241 00:22:11,780 --> 00:22:18,270 এটা প্রতি অন্য এক, কিন্তু আমরা তোমার মধ্যে মডিউল 2 করতে পারেন না, অথবা তোমার 2 mod, থেকে 242 00:22:18,270 --> 00:22:22,950 লক্ষ্য করা হয় যে ই মূলধন এবং 'একটি' ছোট হাতের অক্ষর ব্যবহার করা হয়? কিন্তু তাদের পৃথক স্থান আছে? 243 00:22:22,950 --> 00:22:27,150 সুতরাং তারা একই mod 2 হবে, কিন্তু করছেন তারা বিভিন্ন ক্ষেত্রে. 244 00:22:27,150 --> 00:22:29,150 [ছাত্র প্রশ্ন, অপাচ্য] 245 00:22:29,150 --> 00:22:34,690 হাঁ. সুতরাং আমরা একটি গণনা রাখা করছি যাচ্ছে. 246 00:22:34,690 --> 00:22:38,730 আমরা এখানে যে যদি আমরা চেয়েছিলেন যেত না; যে একটু জবরজং পেতে পারে 247 00:22:38,730 --> 00:22:41,300 লুপ ঘোষণা জন্য; আমি এটা করা এখানে নেব. 248 00:22:41,300 --> 00:22:48,840 সুতরাং int-গণনা ঃ 0 = আরম্ভ করা হয়. 249 00:22:48,840 --> 00:22:54,070 এবং এখন, তাই আমি কিভাবে অনেক বর্ণানুক্রমিক অক্ষর আমরা করিয়েছি গণনা যাচ্ছি. 250 00:22:54,070 --> 00:22:59,550 সুতরাং অবশ্যম্ভাবী আমরা + যেহেতু আমরা অন্য বর্ণের অক্ষর পাওয়া গণনা করছেন না. 251 00:22:59,550 --> 00:23:09,130 কিন্তু, এখন আপনি যদি গণনা mod 2 বলছে. 252 00:23:09,130 --> 00:23:12,590 তাই যদি গণনা ঃ 2 mod? ওহ. আমি এখন জন্য == 0 করব. 253 00:23:12,590 --> 00:23:21,740 আমরা যেতে উপর যে করব. তাই আপনি যদি গণনা mod 2 == 0, তারপরে কি? 254 00:23:21,740 --> 00:23:27,830 [ছাত্র উত্তর, অপাচ্য] 255 00:23:27,830 --> 00:23:32,750 সুতরাং আমরা এটা য়ের বড়হাতের অক্ষর ছোটহাতের শেষ আপ করতে চান. 256 00:23:32,750 --> 00:23:37,520 2 মামলা আছে; য়ের বড়হাতের অক্ষর ছোটহাতের এবং ছোট হাতের অক্ষর ব্যবহার করা হয় 2 ক্ষেত্রে. 257 00:23:37,520 --> 00:23:40,990 সুতরাং আমরা যদি ছোট হাতের মধ্যে আছেন আমরা বড়হাতের করা প্রয়োজন. 258 00:23:40,990 --> 00:23:43,710 এটি যদি য়ের বড়হাতের অক্ষর ছোটহাতের আমরা কিছু করার প্রয়োজন নেই. 259 00:23:43,710 --> 00:23:50,760 কিন্তু, একটি উপায় আছে - shouldn't ফ্লিপ করা আছে - 260 00:23:50,760 --> 00:23:54,800 যে আমরা কিনা এটা য়ের বড়হাতের অক্ষর ছোটহাতের বা ছোট হাতের অক্ষর ব্যবহার চেক করার প্রয়োজন না? 261 00:23:54,800 --> 00:24:02,240 সর্বদা নিশ্চিত যে সবসময় আমরা য়ের বড়হাতের অক্ষর ছোটহাতের সময়ে শেষ করতে কি আমরা করতে পারি? 262 00:24:02,240 --> 00:24:07,830 তাই আমরা ছোট 'একটি' জন্য কি লক্ষ্য করা; কি যদি আমরা একটি বড়হাতের এই একই জিনিস কি সঠিক? 263 00:24:07,830 --> 00:24:11,900 একটি পরিবর্তন বড়হাতের আছে, অথবা মান পরিবর্তন আছে? 264 00:24:11,900 --> 00:24:23,100 হাঁ. কাজেই কোনো বড় হাতের অক্ষর bitwise ~ 32 ANDed যে একই য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর হবে 265 00:24:23,100 --> 00:24:29,220 কারণ কোনো য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর জন্য 32nd বিট সেট করা হয় না. 266 00:24:29,220 --> 00:24:40,920 তাই আপনি যদি আমরা চরিত্র গুলি [আমি], আমরা এটা ছোট হাতের বা য়ের বড়হাতের অক্ষর ছোটহাতের হতে চান আনতে চান. 267 00:24:40,920 --> 00:24:46,890 তাই আপনি যদি তা ছিল ছোট আকারের, এটি এখন য়ের বড়হাতের অক্ষর ছোটহাতের হয়, যদি এটি ছিল য়ের বড়হাতের অক্ষর ছোটহাতের, এটি এখনও য়ের বড়হাতের অক্ষর ছোটহাতের, এবং যে এটি. 268 00:24:46,890 --> 00:24:54,290 আমি supersection এই বলেন: 32 আপনি যদি ব্যবহার করতে চান, কিন্তু পারেন আমি করছেন 'একটি' পছন্দ ঝোঁক - এ, 269 00:24:54,290 --> 00:25:01,150 পরিবর্তে শুধু সাধারণ 32 বলা, কারণ এটি অন্য কোন বিট হতে পারেন. 270 00:25:01,150 --> 00:25:03,610 32 বিট পরে, এটি এর মধ্যে যে কোনো হতে পারে, অথবা আমরা যথেষ্ট না আছে করবে 271 00:25:03,610 --> 00:25:05,840 নম্বর অক্ষরের সব চিত্রিত করা. 272 00:25:05,840 --> 00:25:09,110 তাই আপনি যদি 32 বিট পাওয়া, এটা 64 বিট হতে পারে, এটা 128 বিট হতে পারে. 273 00:25:09,110 --> 00:25:13,990 যারা বিট কোন বিট য়ের বড়হাতের অক্ষর ছোটহাতের এবং ছোট হাতের মধ্যে যে আলাদা হতে পারে. 274 00:25:13,990 --> 00:25:18,350 আমি এটা 32 বিট জানা প্রয়োজন হবে না. 275 00:25:18,350 --> 00:25:27,130 আমি এই 'একটি' ব্যবহার করতে পারেন - একটি বিট দুই মধ্যে যে পার্থক্য পেতে পারেন 276 00:25:27,130 --> 00:25:33,000 জাদু ছাড়া নম্বরটি 32 নির্ভর করা প্রয়োজন. 277 00:25:33,000 --> 00:25:38,770 তাই এখন অন্যথায়, ছিল অদ্ভুত গণনা, এবং তাই আমি কি করতে চান? 278 00:25:38,770 --> 00:25:43,920 [ছাত্র উত্তর, অপাচ্য] 279 00:25:43,920 --> 00:25:45,920 [ছাত্র] কি যে? 280 00:25:45,920 --> 00:25:49,850 আমি 1 সেকেন্ডের মধ্যে এটি করবেন. 281 00:25:49,850 --> 00:25:55,690 সুতরাং এখন যদি আমি চাই যাও - আমি নিশ্চিত অক্ষর এখন ছোট হাতের অক্ষর ব্যবহার করতে চাই, 282 00:25:55,690 --> 00:26:04,140 এবং যাতে আমি দ্বারা 32 বা, করতে পারেন এবং 32 মানে 'একটি' - এ 283 00:26:04,140 --> 00:26:06,510 কিন্তু আগের এক হিসাবে একই যুক্তি দ্বারা বিজ্ঞপ্তি,, যে যদি 284 00:26:06,510 --> 00:26:11,670 ইতিমধ্যে ছোট হাতের অক্ষর ছিল, তারপর ORing 32 দ্বারা শুধুমাত্র ছোট হাতের অক্ষর রাখে এটি. 285 00:26:11,670 --> 00:26:16,220 এটি মূল চরিত্র পরিবর্তন হয়নি. 286 00:26:16,220 --> 00:26:19,910 কিন্তু এখন আমি বলতে চাইছে, "যদি এটা ছোট হাতের অক্ষর ব্যবহার, এটা ভুলে যাওয়া এড়াতে না, 287 00:26:19,910 --> 00:26:23,650 যদি এটা য়ের বড়হাতের অক্ষর ছোটহাতের, তারপর. পরিবর্তন " 288 00:26:23,650 --> 00:26:26,900 এটা আরো অনেক কিছু এই কাজের জন্য সুবিধাজনক. 289 00:26:26,900 --> 00:26:33,190 [ছাত্র] ছোট হাতের কাজ থেকে য়ের বড়হাতের অক্ষর ছোটহাতের subtracting যদি এটি 32 ছিল না যে কি কৌশল? 290 00:26:33,190 --> 00:26:35,330 যদি এটি ছিল, 34 অথবা কিছু চান,? 291 00:26:35,330 --> 00:26:41,840 সুতরাং, আপনি যে 2 এর মধ্যে পার্থক্য জানতে হবে -? >> 1 বিট. 292 00:26:41,840 --> 00:26:49,840 এটা 1 বিট হতে হবে, যতদিন এই অবস্থা নীচের বিট সব একই হতে পারে. 293 00:26:49,840 --> 00:26:58,500 সুতরাং আমরা অন্তত 26 টি অক্ষর প্রয়োজন - বা, 26 টি অক্ষর আছে. 294 00:26:58,500 --> 00:27:04,590 তাই আমরা পার্থক্য প্রতিনিধিত্ব কমপক্ষে 26 নম্বর প্রয়োজন - 295 00:27:04,590 --> 00:27:07,650 A এবং 'একটি' কমপক্ষে 26 করা হয়েছে, এর মধ্যে পার্থক্য 296 00:27:07,650 --> 00:27:10,760 বা অন্যথায় আমরা সমস্ত মূলধন সংখ্যা প্রতিনিধিত্ব করে না. 297 00:27:10,760 --> 00:27:18,630 তার মানে যে A, যদি আমরা 1 শুরু করা হবে, এই সব বিট ব্যবহার করছেন, 298 00:27:18,630 --> 00:27:23,900 এই প্রথম 5 বিট, যাও জেড মাধ্যমে সবকিছু প্রতিনিধিত্বকারী সব 299 00:27:23,900 --> 00:27:32,170 এটা কেন পরের বিট, বা এই বিট, পরবর্তী বিট হল একটি এবং এর মধ্যে পার্থক্য নির্বাচিত 'একটি.' 300 00:27:32,170 --> 00:27:40,930 ASCII টেবিলের যে এছাড়াও কেন,, 5 হরফ থেকে বড় হাতের অক্ষর আলাদা চিহ্ন আছে. 301 00:27:40,930 --> 00:27:49,050 যেহেতু যারা হল চিহ্ন, অতিরিক্ত 5 যে বইয়ের 32 আপ হচ্ছে তাদের মধ্যে পার্থক্য. 302 00:27:49,050 --> 00:27:51,840 [ছাত্র] সুতরাং আমরা এটা, কারণ ASCII ডিজাইন করা যে এর উপায় হতে পারে. 303 00:27:51,840 --> 00:27:57,280 হ্যাঁ. কিন্তু ASCII - এ পার্থক্য করা এই বিট উভয় পারে. 304 00:27:57,280 --> 00:28:12,040 মত, যদি একটি ছিল 10000001, এবং 'একটি' ছিল 11100001 - আমি ভুলবেন না, যাই হোক না কেন. 305 00:28:12,040 --> 00:28:18,100 কিন্তু যদি এটি ছিল এই তারপর, আমরা এখনও ব্যবহার 'একটি' হতে পারে - এ 306 00:28:18,100 --> 00:28:22,650 শুধু এখন A এবং 'একটি' এখনও এইসব 2 বিট মধ্যে পার্থক্য. 307 00:28:22,650 --> 00:28:32,240 আমি মনে করি 48 এর লিখিত. এটা কি 32 + 64? আমার মনে হয় এটা? 308 00:28:32,240 --> 00:28:40,160 এটা এখনও হতে 2 বিট করবে; প্রতি একক চরিত্র,, পছন্দ এবং z-Z, K ও k, 309 00:28:40,160 --> 00:28:45,160 তারা এখনও একই সঠিক জন্য যারা 2 বিট ছাড়া বিট সেট করা হবে. 310 00:28:45,160 --> 00:28:48,870 সুতরাং হিসাবে দীর্ঘ হিসাবে যে সবসময় সত্যি, নির্বিশেষে যদি আমরা ASCII বা অন্য কিছু সিস্টেম ব্যবহার করছেন, 311 00:28:48,870 --> 00:28:53,050 যতদিন এর শুধুমাত্র একটি বিট আছে যা প্রতিটি অক্ষরের জন্য বিভিন্ন সেট নম্বর, 312 00:28:53,050 --> 00:28:55,050 তারপর যে কাজ করে জরিমানা. 313 00:28:55,050 --> 00:29:06,110 এটা ঠিক যে 32 সেট আপ না কারণ এটি প্রথম এক সম্ভবত আমরা ব্যবহার করতে পারেন ছিল. >> কুল. 314 00:29:06,110 --> 00:29:14,520 আমি পছন্দ করেন, যদি আপনি, যদি ব্লক শুধুমাত্র একটি একক লাইন দেখা না দেয়, 315 00:29:14,520 --> 00:29:24,280 আপনি কোঁকড়া ধনুর্বন্ধনী পরিত্রাণ পেতে পারেন; তাই আমি এই কাজ পছন্দ ঝোঁক. 316 00:29:24,280 --> 00:29:34,010 উপরন্তু, আপনি কি জানেন কিভাবে আমরা গুলি [i] + = 1 ভালো জিনিস করতে পারেন? 317 00:29:34,010 --> 00:29:41,090 আপনি কি গুলি [i] ও bitwise = 32. পারেন 318 00:29:41,090 --> 00:29:46,400 এবং bitwise বা = 32. 319 00:29:46,400 --> 00:29:51,490 এছাড়াও, mod 2 == 0 গণনা. 320 00:29:51,490 --> 00:30:00,900 আমি এটা না লিখতে হবে - - যাতে মনে রাখবেন যে কোনো অ শূন্য মান সত্য হয়, এবং 0 মিথ্যা. 321 00:30:00,900 --> 00:30:07,880 সুতরাং "যদি গণনা mod 2 == 0" হিসাবে একই হয় বলছে "যদি mod 2 গণনা করা হয় না." 322 00:30:07,880 --> 00:30:11,580 আমি সম্ভবত লাইন করে বিপরীত এবং বলেন, "যদি গণনা mod 2, 323 00:30:11,580 --> 00:30:15,350 বা 1, অন্যথায় না 1 ও না,. "যাতে আমি প্রয়োজন ছিল না" না " 324 00:30:15,350 --> 00:30:18,650 কিন্তু এই কাজ ভাল হবে. 325 00:30:18,650 --> 00:30:25,660 কি কি এবং আমি এখানে কি করতে পারি? 326 00:30:25,660 --> 00:30:29,060 আপনি তিন সাথে যদি আপনি চেয়েছিলেন, একত্রিত করতে পারে কিন্তু ঐ জিনিষ ঠিক করতে Messier চাই 327 00:30:29,060 --> 00:30:33,770 এবং সম্ভবত আরো পড়া কঠিন, তাই আমরা যে দেবে না. 328 00:30:33,770 --> 00:30:37,330 কেউ অন্য কোন পরামর্শ আছে? 329 00:30:37,330 --> 00:30:41,580 যে সমস্ত সমস্যার জন্য বলা? ওহ হ্যাঁ. 330 00:30:41,580 --> 00:30:51,070 সুতরাং এই খালি লাইন পরিত্রাণ পেতে এখন, আমরা চ,% s-মুদ্রণ করব স্ট্রিং জন্য এক হচ্ছে, 331 00:30:51,070 --> 00:30:56,620 আমরা চ মুদ্রণ, গুলি হবে. 332 00:30:56,620 --> 00:30:59,330 এখন আমি কি এটি চালানোর জন্য. আমি কি কিছু ভুল করবেন? 333 00:30:59,330 --> 00:31:03,200 এটা একটি \ "; আমি একটি n চান. 334 00:31:03,200 --> 00:31:07,840 ঠিক আছে. এখন আমরা এটিকে চালাতে পারবেন. এটি সম্ভবত এ সম্পর্কে চিত্কার করব. 335 00:31:07,840 --> 00:31:11,250 Strlen string.h হয়. 336 00:31:11,250 --> 00:31:14,290 তাই এই ঝনঝন সম্পর্কে চমৎকার জিনিস এটা বলে আপনি কি এটা আছে, 337 00:31:14,290 --> 00:31:19,140 পরিবর্তে যা জিসিসি শুধু বলে, "আরে, আপনি কিছু একটা ভুলে গেছি, আমি কি এটি ছিল. জানি না" 338 00:31:19,140 --> 00:31:29,220 কিন্তু এই সম্পর্কে বলতে হবে, "আপনি string.h অন্তর্ভুক্ত ছিল." 339 00:31:29,220 --> 00:31:32,130 তাই আমি কিছু জন্য, তাই না কি এটি লেখার অনুরোধ জানানো কিছু বলছে না. 340 00:31:32,130 --> 00:31:42,540 কিন্তু আমরা তাদের উদাহরণ দেব, "4 অ্যাড ধন্যবাদ". 341 00:31:42,540 --> 00:31:47,880 যে দেখে. কি আনন্দ. 342 00:31:47,880 --> 00:31:52,370 আপনার প্রধান তাই ফিরে যাও, আমি এটা প্রায় কখনই. 343 00:31:52,370 --> 00:31:57,110 এটা ঐচ্ছিক. এবং শুধুমাত্র প্রধান ফাংশন, যার জন্য এটা ঐচ্ছিক. 344 00:31:57,110 --> 00:32:07,140 আপনি যদি মূল থেকে ফিরে না, তাহলে অনুগ্রহ 0 ফিরে বোঝানো অধিকৃত এর. 345 00:32:07,140 --> 00:32:13,070 প্রশ্ন? 346 00:32:13,070 --> 00:32:20,980 ঠিক আছে. তাই এখন দ্বিতীয় সমস্যা. 347 00:32:20,980 --> 00:32:24,810 2 সপ্তাহ এর দ্বিতীয় বক্তৃতা যে 2 ভেরিয়েবল 'মান সোয়াপিং থেকে "পাশ দিয়ে রিকল 348 00:32:24,810 --> 00:32:30,780 যারা একটি ফাংশন (এমনকি যদি swap 'র নামে) 2 ভেরিয়েবল কমপক্ষে না ছাড়া ঠিক কাজ করে না,' পয়েন্টার দেয়া হল. '" 349 00:32:30,780 --> 00:32:37,020 এবং পয়েন্টার যতক্ষণ না আমরা তাদের পেতে উপেক্ষা. 350 00:32:37,020 --> 00:32:40,070 আমরা 2 ভেরিয়েবল অদলবদল করতে চান; আমরা তা ব্যবহার করে একটি ফাংশন করছি না. 351 00:32:40,070 --> 00:32:43,410 আমরা এখনও যাও প্রধান তা মত না বলে যাচ্ছে. 352 00:32:43,410 --> 00:32:48,360 কিন্তু যারা 2 ভেরিয়েবলগুলি ব্যবহার, আমরা একটি অস্থায়ী ভেরিয়েবল ব্যবহার করতে চান না. 353 00:32:48,360 --> 00:32:50,770 2 উপায়ে এই কাজ করতে হয়. 354 00:32:50,770 --> 00:32:56,310 আপনি এটা আপনার প্রথাগত বাইনারি অপারেটর ব্যবহার করতে পারেন. 355 00:32:56,310 --> 00:33:00,180 সুতরাং যে কেউ যে কোনো একটি কাজ দ্রুত এবং ময়লা উপায় জানেন? 356 00:33:00,180 --> 00:33:07,650 এটা আসলে চিন্তা করতে এক মিনিট সময় লাগতে পারে. যদি আমি আছে - 357 00:33:07,650 --> 00:33:12,130 আমি সমস্যা সেট আপ মত তারা জিজ্ঞাসা করব. সুতরাং যদি আমি 2 ভেরিয়েবল আছে, একটি, যা শুধুমাত্র একটি পূর্ণসংখ্যা 358 00:33:12,130 --> 00:33:17,800 যে সম্পর্কে তারা দেওয়ার জন্য, এবং সমষ্টি পরিবর্তনশীল বি, যা অন্য একটি পূর্ণসংখ্যা যে আমি দেওয়া হবে. 359 00:33:17,800 --> 00:33:22,700 সুতরাং যদি আমি এই 2 ভেরিয়েবল আছে এখন, আমি তাদের অদলবদল করতে চান. 360 00:33:22,700 --> 00:33:31,550 ঐতিহ্যগত, আপনার নিয়মিত বাইনারি অপারেটর ব্যবহার করে, আমি বলতে চাচ্ছি, মত, +, -, ÷. 361 00:33:31,550 --> 00:33:36,630 নেই bitwise অপারেটরদের বাইনারি যা কাজ. 362 00:33:36,630 --> 00:33:39,600 , + +, ÷, এবং যারা সব - তাই ব্যবহার করে. 363 00:33:39,600 --> 00:33:52,980 আমরা ভালো কিছু করে অদলবদল হতে পারে একটি = a + b, এবং খ = একটি - বো, একটি একটি = - বো. 364 00:33:52,980 --> 00:34:04,260 সুতরাং, বৈধতা, চেক এবং তারপর আমরা কেন যে কাজ দেখতে পাবেন. 365 00:34:04,260 --> 00:34:13,320 চলুন শুরু করা যাক বলে একটি = 7, খ = 3, তারপর একটা + খ 10 হবে. 366 00:34:13,320 --> 00:34:18,820 সুতরাং এখন আমরা একটি = 10 সেটিং করছি, এবং তারপর আমরা বো = একটি করছেন - বো. 367 00:34:18,820 --> 00:34:30,250 সুতরাং আমরা করছেন বো = একটি - বো, যা 7 হবে, এবং একটি বো = - বো আবার, 368 00:34:30,250 --> 00:34:38,650 অথবা একটি = একটি - বো. 7 যা 3 - যা 10 হবে. 369 00:34:38,650 --> 00:34:44,850 তাই এখন সঠিকভাবে বলতে গেলে, 'একটি' ছিল 7, বো ছিল 3, এবং এখন খ 7 এবং 'একটি' হল 3. 370 00:34:44,850 --> 00:34:48,679 সুতরাং যে ধরনের ইন্দ্রিয় তোলে; 'একটি' হল 2 সংখ্যার সমন্বয়. 371 00:34:48,679 --> 00:34:53,000 এই মুহুর্তে, 'একটি' হল সমন্বয়, এবং তারপর আমরা মূল বো subtracting করছি, 372 00:34:53,000 --> 00:34:56,860 এবং তারপর আমরা আউট subtracting কি ছিল মূল 'একটি.' করছি 373 00:34:56,860 --> 00:35:01,150 কিন্তু এই সব সংখ্যার জন্য কাজ করে না. 374 00:35:01,150 --> 00:35:08,880 এই দেখুন, এর একটি সিস্টেম বিবেচনা করা যাক; যাতে আমরা সাধারণত 32 বিট পূর্ণসংখ্যা হিসাবে মনে করি. 375 00:35:08,880 --> 00:35:13,050 যাক এর কিছু শুধুমাত্র 4 বিট ভালো যে এর কাজ. 376 00:35:13,050 --> 00:35:15,450 আশা করি আমি একটি ভাল উদাহরণ চিন্তা অধিকার এখন. 377 00:35:15,450 --> 00:35:18,680 সুতরাং, আমি জানি, এই সহজ হবে. 378 00:35:18,680 --> 00:35:26,720 চলুন শুরু করা যাক আমাদের বলতে 2 সংখ্যা 1111, এবং 1111; যাতে আমরা বাইনারি আপনি আছেন এখন ডান. 379 00:35:26,720 --> 00:35:34,630 প্রকৃত decimals, যদি আপনি এটি যে ভাবে চিন্তা করতে চান, একটি = 15 এবং খ = 15. 380 00:35:34,630 --> 00:35:37,630 তাই আমরা আশা, পরে আমরা তাদের swap - তারা একই সংখ্যা হতে হবে না, 381 00:35:37,630 --> 00:35:41,140 কিন্তু আমি এই উপায় এটি. 382 00:35:41,140 --> 00:35:47,100 চলুন শুরু করা যাক তাদের একই সংখ্যা না. এর 1111 এবং 0001 করুক না. 383 00:35:47,100 --> 00:35:51,860 সুতরাং একটি = 15 এবং খ = 1. 384 00:35:51,860 --> 00:35:57,670 পরে আমরা তাদের swap, আমরা 'একটি' যাও 1 হতে 15 এবং বো বলে আশা করা. 385 00:35:57,670 --> 00:36:01,780 তাই আমাদের প্রথম পদক্ষেপ একটি = a + b. 386 00:36:01,780 --> 00:36:08,770 আমাদের সংখ্যা মাত্র 4 টি বিট ব্যাপী, তাই 'একটি,' যা 1111 + খ, যা 0001, 387 00:36:08,770 --> 00:36:16,780 এবং শেষ হচ্ছে 10000 যাচ্ছে তবে আমরা শুধুমাত্র 4 বিট আছে. 388 00:36:16,780 --> 00:36:22,540 তাই এখন একটি = 0. 389 00:36:22,540 --> 00:36:34,080 খ - - প্রকৃতপক্ষে, এই এখনও কাজ পুরোপুরি এবং এখন আমরা বো = একটি সেট করতে চান. 390 00:36:34,080 --> 00:36:39,630 একটি একটি = - খ - লেট এর যদি এই কাজ পুরোপুরি আউট দেখতে. 391 00:36:39,630 --> 00:36:53,720 অতএব খ = 0 - 1 টি, যা এখনও 15 হবে, এবং তারপর একটি একটি = - বো, যা 1 হবে. 392 00:36:53,720 --> 00:36:56,210 হয়তো এই কাজ করে. 393 00:36:56,210 --> 00:36:59,020 আমার মনে একটি কারণ এটি ব্যবহার করে নিয়মিত কাজ হয় না আছে. 394 00:36:59,020 --> 00:37:06,400 ঠিক আছে, এটা নিয়মিত ভাবনাটি হলো এই যে বাইনারি অপারেশন সঙ্গে কাজ করে না তাই কাজ, 395 00:37:06,400 --> 00:37:15,040 আমি যদি সত্য হয় যে Google-কে দেখতে হবে - এবং আমি দেখব. 396 00:37:15,040 --> 00:37:23,490 তাই আমরা এটা bitwise অপারেটর ব্যবহার করতে চান, এবং এখানে সুরুক XOR হয়. 397 00:37:23,490 --> 00:37:28,780 সুতরাং, XOR (^) পরিচায়ক আপনি যদি এখনো দেখা যায় এটি নি. 398 00:37:28,780 --> 00:37:34,610 এটা আবার,, একটি bitwise অপারেটর তাই এটি বিট, এবং it's অল্পে কাজ করে - 399 00:37:34,610 --> 00:37:39,910 যদি আপনি বিট 0 এবং 1 থাকে, তখন এই 1 হতে হবে. 400 00:37:39,910 --> 00:37:45,230 আপনি যদি 1 এবং 0 বিট থাকে, তাহলে 1 হবেন, আপনি বিট 0 এবং এটি 0 0 হবেন আছে, 401 00:37:45,230 --> 00:37:47,640 এবং যদি আপনি বিট 1 টি এবং 1 টি আছে এটা 0 হবেন. 402 00:37:47,640 --> 00:37:56,180 সুতরাং মত বা. যদি বিট হয় সত্য, এটা 1, কিন্তু OR অসদৃশ, এটি উভয় বিট যে সত্য হতে পারে না. 403 00:37:56,180 --> 00:37:59,320 এই বা 1 হতে হবে, এই XOR 0 হতে হবে. 404 00:37:59,320 --> 00:38:02,250 তাই আমরা এখানে XOR ব্যবহার করতে চান তাহলে চলুন. 405 00:38:02,250 --> 00:38:09,960 এক মিনিটের জন্য সেটা ভাবুন; আমি Google-এ যাচ্ছি. 406 00:38:09,960 --> 00:38:16,230 হ্যাঁ, আপনি যে পড়তে পারে না; আমি XOR swap 'র আলগোরিদিম পাতা বর্তমানে আছি. 407 00:38:16,230 --> 00:38:21,340 আশা করি এই আমি কেন can't ব্যাখ্যা করবে - 408 00:38:21,340 --> 00:38:34,190 এই অ্যালগরিদম ঠিক হয় যে আমরাও. 409 00:38:34,190 --> 00:38:37,330 আমি এখনও কেন না - আমি কেবল একটি খারাপ উদাহরণ অবশ্যই চয়ন, 410 00:38:37,330 --> 00:38:44,940 কিন্তু এই ক্ষেত্রে যেখানে 'একটি' যাও পেয়ে 5 বিট পরে হত্তয়া 0,, তাই এখন 'একটি' হল 0 ঘটেছে, 411 00:38:44,940 --> 00:38:48,730 যে কি বলা হয় "পূর্ণসংখ্যা ওভারফ্লো." 412 00:38:48,730 --> 00:38:54,370 যাও উইকিপিডিয়া অনুযায়ী XOR swap-র থেকে পৃথক, এই ", এই প্রকরণ প্রয়োজন যে এটা কিছু পদ্ধতি ব্যবহার করে 413 00:38:54,370 --> 00:38:59,780 যে x + y একটি পূর্ণসংখ্যা ওভারফ্লো কারণ নিশ্চয়তা দেয় না. " 414 00:38:59,780 --> 00:39:08,350 তাই এই সমস্যা আছে; এই ছিল পূর্ণসংখ্যা ওভারফ্লো, কিন্তু আমি কিছু একটা ভুল করেছিলাম. 415 00:39:08,350 --> 00:39:10,520 আমি নিশ্চিত না. আমি অন্য একটি চিন্তা করার চেষ্টা করব. 416 00:39:10,520 --> 00:39:13,640 [ছাত্র] আচ্ছা, যখন আপনাকে সেখানে একটি সংখ্যা লাগাতে চেষ্টা করছেন পূর্ণসংখ্যা ওভারফ্লো না 417 00:39:13,640 --> 00:39:16,640 বিট পরিমাণ আপনি বরাদ্দ আছে চেয়ে বড়? 418 00:39:16,640 --> 00:39:23,730 হাঁ. আমরা 4 টি বিট আছে. That's - আমরা 4 বিট ছিল, তারপর আমরা তা 1 যোগ চেষ্টা, তাই আমরা 5 বিট সঙ্গে শেষ. 419 00:39:23,730 --> 00:39:26,690 কিন্তু মাত্র পঞ্চম বিট কেটে, হাঁ হয়. 420 00:39:26,690 --> 00:39:28,970 এটা আসলে বল - 421 00:39:28,970 --> 00:39:33,010 [ছাত্র] যে একটি ত্রুটি কি আপনি নিক্ষেপ করা, বা যে - কোনো ত্রুটি যে নিক্ষেপ করা হবে? 422 00:39:33,010 --> 00:39:40,720 নং তাই কোন ত্রুটি আছে. আপনি যখন সমাবেশ স্তর পেতে, একটি বিশেষ বিট 423 00:39:40,720 --> 00:39:47,020 কোথাও বলেন যে একটি ওভারফ্লো ছিল, কিন্তু C আপনাকে ঠিক কোন ধরনের সঙ্গে মোকাবিলা না সেট করা হয়. 424 00:39:47,020 --> 00:39:55,160 আপনি আসলে তা মোকাবেলা করতে পারবেন না, যদি না আপনি বিশেষ সি মধ্যে সমাবেশ নির্দেশিকাটি ব্যবহার করুন 425 00:39:55,160 --> 00:39:58,110 চলুন XOR swap 'র কথা চিন্তা করেছিলাম. 426 00:39:58,110 --> 00:40:02,220 এবং আমি মনে করি যে উইকিপিডিয়ার নিবন্ধ হতে হয়েছে এই বলে - 427 00:40:02,220 --> 00:40:07,310 তাই এটি আনা modular গাণিতিক আপ, তাই আমি অনুমান তত্ত্ব আমি ছিল,, modular পাটিগণিত করছেন 428 00:40:07,310 --> 00:40:11,160 যখন আমি তাকে বললাম যে 0 - 1 হয় আবার 15. 429 00:40:11,160 --> 00:40:15,410 সুতরাং যে আসলে বল - 1 = 15 - একটি নিয়মিত যে প্রসেসর 0 উপর আছে. 430 00:40:15,410 --> 00:40:20,430 যেহেতু আমরা 0 আপ শেষ, আমরা 1 বিয়োগ, অতএব এটা প্রায় 1111 যাও গোপন করে ফিরে. 431 00:40:20,430 --> 00:40:28,930 তাই আসলে এই অ্যালগরিদম কাজ, a + b, একটি হতে পারে - বো, বো - একটি; যে জরিমানা হতে পারে. 432 00:40:28,930 --> 00:40:34,030 কিন্তু কিছু প্রসেসরের ক্ষেত্রে, যা করব না তা আছে, এবং তাই ঐ নির্দিষ্ট বেশী সূক্ষ্ম হবে না. 433 00:40:34,030 --> 00:40:39,880 XOR swap-র কোনো প্রসেসরের কাজ হবে. ঠিক আছে. 434 00:40:39,880 --> 00:40:42,280 ধারণা করা হয় যে এটি একই যদিও, অনুমিত এর. 435 00:40:42,280 --> 00:40:50,120 যেখানে আমরা XOR যাও একরকম ভেরিয়েবল 1 মধ্যে উভয় তথ্য পেতে ব্যবহার করছেন, 436 00:40:50,120 --> 00:40:54,120 এবং তারপর পৃথক ভেরিয়েবলের তথ্য বৈঠাচালনা আবার আউট. 437 00:40:54,120 --> 00:41:04,330 তাই যে কেউ কিন্তু ধারনা / উত্তর আছে? 438 00:41:04,330 --> 00:41:14,540 [ছাত্র উত্তর, অপাচ্য] 439 00:41:14,540 --> 00:41:22,220 তাই এই, এবং এছাড়াও কাজ, XOR হয় বিনিময় করা উচিত. 440 00:41:22,220 --> 00:41:27,620 তথাপি যা আদেশ এইসব 2 নম্বর আপ এখানে করা ঘটবে, 441 00:41:27,620 --> 00:41:30,100 এই ফলাফল একই হবে. 442 00:41:30,100 --> 00:41:35,800 সুতরাং একটি ^ ^ b হল বো একটি. 443 00:41:35,800 --> 00:41:51,860 আপনি তাও দেখতে এই হিসাবে লিখিত হতে পারে একটি ^ = বো, বো ^ = একটি, একটি = ^ বো আবার. 444 00:41:51,860 --> 00:42:00,200 সুতরাং এই অধিকার, এবং কেন এই কাজ বিট, মনে দেখুন. 445 00:42:00,200 --> 00:42:10,400 একটি smallish নম্বর ব্যবহার করে, এর 11001, 01100 এবং বলা যাক. 446 00:42:10,400 --> 00:42:12,790 তাই এই 'একটি'; এই বো. 447 00:42:12,790 --> 00:42:15,540 সুতরাং একটি ^ = খ. 448 00:42:15,540 --> 00:42:22,380 আমরা করা সেটিং এইসব 2 জিনিস XOR যাও 'একটি' = যাও চলুন. 449 00:42:22,380 --> 00:42:32,920 ^ 0 1 সুতরাং 1; 1 ^ 1 0; 0 ^ 1 টি 1 টি, এবং ^ 0 0 0; ^ 1 0 1. 450 00:42:32,920 --> 00:42:37,380 সুতরাং 'একটি,' আপনি যদি দশমিক সংখ্যা তাকান, তা হতে যাচ্ছে - 451 00:42:37,380 --> 00:42:41,160 আপনাকে মূল 'একটি' এবং নতুন মধ্যে একটি সম্পর্ক অনেক দেখতে একটি, 'করছেন যাচ্ছে না 452 00:42:41,160 --> 00:42:45,600 কিন্তু বিট এ খুঁজছেন, 'একটি' তথ্য একটি জাল এখন ভালো হয় 453 00:42:45,600 --> 00:42:49,970 উভয় মূল 'একটি' এবং মূল বো. 454 00:42:49,970 --> 00:42:57,930 তাই আপনি যদি আমরা বো ^ একটি, আমরা দেখতে যে আমরা আসল সময়ে শেষ নেব 'একটি.' গ্রহণ করা 455 00:42:57,930 --> 00:43:08,910 এবং যদি আমরা নিতে আসল 'একটি' ^ নতুন 'একটি,' আমরা দেখতে আমরা আসল বো আপ শেষ. 456 00:43:08,910 --> 00:43:18,380 সুতরাং (একটি ^ খ) ^ বো = আসল 'একটি.' 457 00:43:18,380 --> 00:43:27,910 এবং (ক ^ b) ^ = একটি মূল বো. 458 00:43:27,910 --> 00:43:37,010 এখন পর্যন্ত - এইজন্য এই হল কিছু XOR নিজেই অন্য উপায় সর্বদা 0. 459 00:43:37,010 --> 00:43:45,020 1101 সুতরাং ^ 1101, সমস্ত বিট একই হতে যাচ্ছে. 460 00:43:45,020 --> 00:43:47,920 সুতরাং যাচ্ছে একটি কেস যেখানে 1 একটি 0 এবং অন্যান্য 1 আছে এর না. 461 00:43:47,920 --> 00:43:51,080 তাই এই হল 0000. 462 00:43:51,080 --> 00:43:57,240 এই একই সঙ্গে. (একটি ^ b) ^ b হয় ভালো একটি ^ (খ ^ খ). 463 00:43:57,240 --> 00:44:03,680 (খ ^ খ) ২ 0 হতে হবে; একটি মাত্র ^ 0 to be 'একটি,' হবে যেহেতু সব বিট 0. 464 00:44:03,680 --> 00:44:08,050 সুতরাং শুধুমাত্র লোক যে হতে যাচ্ছে যেখানে 'একটি' মূলত ছিল একটি 1 হয় - বেশী ছিল. 465 00:44:08,050 --> 00:44:12,070 এবং এখানে একই ধারণা; আমি নিশ্চিত এটি প্রশংসনীয় এছাড়াও বিনিময়. 466 00:44:12,070 --> 00:44:17,590 হাঁ. আমি আগে যে এটি ছিল বিনিময় বলে নি. 467 00:44:17,590 --> 00:44:24,680 ^ 'একটি,' এবং এটা মিশুক, তাই এখন (খ ^ একটি) ^ একটি. 468 00:44:24,680 --> 00:44:28,970 এবং আমরা বো ^ (একটি ^ একটি). কি করতে পারেন 469 00:44:28,970 --> 00:44:31,540 তাই আবার, আমরা মূল বো পেতে. 470 00:44:31,540 --> 00:44:37,120 সুতরাং 'একটি' এখন 'একটি' এবং বো একসাথে সমন্বয়. 471 00:44:37,120 --> 00:44:49,660 আমাদের নতুন কম্বো ব্যবহার করে 'একটি' আমরা বলতে বো = কম্বো 'একটি' ^ মূল বো, আমরা মূল পেতে 'একটি.' 472 00:44:49,660 --> 00:45:05,170 এবং এখন একটি কম্বো = 'একটি' ^ নতুন বো, যা ছিল মূল - অথবা যা এখন কি ছিল 'একটি' বা বো. 473 00:45:05,170 --> 00:45:13,620 যে এই কেস এখানে নিচে. এটি = খ, পুরানো বো. 474 00:45:13,620 --> 00:45:16,550 তাই এখন আনা ক্রম সবকিছু ফিরে. 475 00:45:16,550 --> 00:45:22,960 যদি আমরা আসলে বিট দিকে তাকিয়ে, খ = একটি ^ বো, এইসব 2 XOR যাচ্ছে, 476 00:45:22,960 --> 00:45:33,920 এবং উত্তরটি এই হবে, এবং তারপর একটি একটি = ^ বো এইসব 2 XORing হয় এবং এই উত্তরটি. 477 00:45:33,920 --> 00:45:41,090 প্রশ্ন? ঠিক আছে. তাই গত এক হয় কিছুটা উল্লেখযোগ্যভাবে আরো কঠিন. 478 00:45:41,090 --> 00:45:43,180 [ছাত্র] আমার মনে হয় সে সম্পর্কে একটি প্রশ্ন আছে. >> ওহ, দুঃখিত. 479 00:45:43,180 --> 00:45:49,380 [ছাত্র] কি আসলে দ্রুত? যদি আপনি এই XOR ব্যবহার, বা এটা যদি আপনি একটি নতুন ভেরিয়েবল ডিক্লেয়ার? 480 00:45:49,380 --> 00:45:55,190 তাহলে প্রকৃতপক্ষে দ্রুত, একটি নতুন পরিবর্তনশীল প্রকাশক বা XOR যাও অদলবদল ব্যবহার করে? 481 00:45:55,190 --> 00:45:59,600 উত্তর সমস্ত সম্ভাবনা হয়,, একটি অস্থায়ী পরিবর্তনশীল. 482 00:45:59,600 --> 00:46:05,780 এবং যে কারণ হল, একবার এটা কম্পাইল ডাউন এর - তাই সমাবেশ পর্যায়ে, 483 00:46:05,780 --> 00:46:12,320 কোন ভেরিয়েবল আছে স্থানীয় বা কোনো অস্থায়ী ভেরিয়েবল অথবা এই বিষয় নিয়ে কোনো যেমন জিনিস. 484 00:46:12,320 --> 00:46:16,060 তারা শুধুমাত্র আপনার পছন্দ - স্মৃতি আছে, এবং নিবন্ধনের আছে. 485 00:46:16,060 --> 00:46:20,920 নিবন্ধনের হয় যেখানে সক্রিয়ভাবে জিনিস ঘটছে. 486 00:46:20,920 --> 00:46:24,750 আপনি কি যোগ মেমরির মধ্যে 2 জিনিষ না; আপনি নিবন্ধনের মধ্যে 2 জিনিস যুক্ত. 487 00:46:24,750 --> 00:46:28,160 এবং আপনি নিবন্ধনের মধ্যে মেমরি থেকে জিনিষ পরে জুড়তে আনা, 488 00:46:28,160 --> 00:46:33,180 এবং তারপর আপনি তাদের মেমরিতে রাখা ফিরে, হয়ত সমস্ত কর্ম নিবন্ধনের হতে থাকে. 489 00:46:33,180 --> 00:46:38,750 সুতরাং যখন আপনি অস্থায়ী পরিবর্তনশীল পদ্ধতির ব্যবহার করছেন, সাধারণত কি হয় 490 00:46:38,750 --> 00:46:42,810 এই 2 নম্বর নিবন্ধনের ইতিমধ্যেই আছে. 491 00:46:42,810 --> 00:46:46,570 এবং তারপর থেকে যে পয়েন্ট, পরে আপনি তাদের আনা করেছি, 492 00:46:46,570 --> 00:46:51,540 এটা শুরু অন্যান্য নিবন্ধন ব্যবহার করব. 493 00:46:51,540 --> 00:46:56,510 আপনি কোথাও হয়েছে বো ব্যবহার করে, এটা যে ইতিমধ্যেই নিবন্ধন সংরক্ষণ 'একটি.' ব্যবহার করব 494 00:46:56,510 --> 00:47:02,180 সুতরাং প্রকৃতপক্ষে swap 'র কি কিছু করতে না প্রয়োজন. হাঁ? 495 00:47:02,180 --> 00:47:05,690 [ছাত্র] কিন্তু এটা আরো মেমরি লাগবে, ডান? 496 00:47:05,690 --> 00:47:10,280 এটা আরো মেমরি শুধুমাত্র যদি এটি যে অস্থায়ী পরিবর্তনশীল সঞ্চয় প্রয়োজন নিতে হবে. 497 00:47:10,280 --> 00:47:14,830 যদি পরে আপনি যে অস্থায়ী পরিবর্তনশীল আবার কোথাও ব্যবহার করতে চান, 498 00:47:14,830 --> 00:47:18,920 তারপর - অথবা আপনি যে অস্থায়ী পরিবর্তনশীল কিছু নির্ধারণ করুন. 499 00:47:18,920 --> 00:47:24,630 তাই আপনি যদি এ সময় 'একটি,' খ temp মধ্যে কোন বিন্দু স্বতন্ত্র মান বা কিছু আছে, 500 00:47:24,630 --> 00:47:30,680 তারপর এটা মেমরির মধ্যে স্বতন্ত্র অবস্থানে আছে যাচ্ছে, কিন্তু এটা সত্য যে এর 501 00:47:30,680 --> 00:47:34,800 অনেক স্থানীয় ভেরিয়েবল যা শুধুমাত্র নিবন্ধনের মধ্যে উপস্থিত করা হয়. 502 00:47:34,800 --> 00:47:44,370 যে ক্ষেত্রে, মেমরির মধ্যে এটি, এবং কিছু করা না, তাই আপনার মেমরি নাশক না করছি. 503 00:47:44,370 --> 00:47:58,620 ঠিক আছে. সর্বশেষ একটি প্রশ্ন আরো বিট. 504 00:47:58,620 --> 00:48:04,850 এই CS50 প্রয়োগ তাই এখানে,, একটি অভিধান আছে. 505 00:48:04,850 --> 00:48:12,390 এবং এই জন্য কারণ কারণ [?? B66] একটি বানান পরীক্ষক যেখানে আপনি লেখা হবে 506 00:48:12,390 --> 00:48:15,780 হ্যাশ টেবিল বা করতে চেষ্টা করে অথবা কিছু তথ্য গঠন ব্যবহার করে. 507 00:48:15,780 --> 00:48:22,660 আপনি এমন একটি বানান পরীক্ষক লেখা হবে, এবং সেটি আপনি এই অভিধান ব্যবহার করা হবে কি সেটা চলুন. 508 00:48:22,660 --> 00:48:28,280 কিন্তু এই সমস্যার জন্য, আমরা আপ যদি একটি একক শব্দ অভিধানে দেখুন চেহারা হয় না. 509 00:48:28,280 --> 00:48:31,250 সুতরাং পরিবর্তে কিছু তথ্য কাঠামো সম্পূর্ণ অভিধান সংরক্ষণ 510 00:48:31,250 --> 00:48:35,180 এবং তারপর একটি সম্পূর্ণ নথি উপর যদি কিছু misspelled দেখতে খুঁজছেন, 511 00:48:35,180 --> 00:48:38,490 আমরা শুধু 1 শব্দ খুঁজতে চান. সুতরাং আমরা স্ক্যান সম্পূর্ণ অভিধান উপর পারেন 512 00:48:38,490 --> 00:48:44,300 এবং যদি আমরা সমগ্র অভিধানে শব্দ খুঁজে না, তারপর সেখানে ছিল না. 513 00:48:44,300 --> 00:48:52,150 যদি সমগ্র অভিধান উপর আমরা এবং স্ক্যান শব্দ দেখতে না তারপর, আমরা ভাল, আমরা এটি পাওয়া গেছে. 514 00:48:52,150 --> 00:48:56,580 এখানে বলছেন যে আমরা সি এর ফাইল নিয়ন্ত্রণ ফাংশন এ খুঁজছেন শুরু করতে চান, 515 00:48:56,580 --> 00:48:59,930 যেহেতু আমরা অভিধান পড়তে চান, 516 00:48:59,930 --> 00:49:07,680 কিন্তু আমি বুঝতে পারি যে ফাংশন আপনি মনে উচিত হিসাবে ইংগিত এখানে দিতে হবে. 517 00:49:07,680 --> 00:49:11,510 আমি শূন্যস্থানের সেগুলি লিখতে হবে. 518 00:49:11,510 --> 00:49:20,490 তাই প্রধান বেশী হয় চ খোলা এবং তারপর অবশ্যম্ভাবী,, চ বন্ধ তাকান আপনি করতে চাইবেন, 519 00:49:20,490 --> 00:49:26,540 যা আপনার প্রোগ্রাম শেষে, এবং যান চ স্ক্যান চ হবে. 520 00:49:26,540 --> 00:49:31,060 এছাড়াও আপনি ব্যবহার চ পড়া, কিন্তু পারে আপনি সম্ভবত না চান 521 00:49:31,060 --> 00:49:34,200 কারণ যে - আপনি যে প্রয়োজন না শেষ. 522 00:49:34,200 --> 00:49:41,880 ফল স্ক্যান চ কি করা অভিধান স্ক্যান উপর ব্যবহার করে যাচ্ছেন. 523 00:49:41,880 --> 00:49:46,370 এবং তাই আপনার সমাধান কোড আপ না, প্রয়োজন শুধু আপনার চেষ্টা উপায় ছদ্ম - কোড চাই 524 00:49:46,370 --> 00:50:05,200 একটি সমাধান, এবং তারপর আমরা আলোচনা করব. 525 00:50:05,200 --> 00:50:14,110 এবং প্রকৃতপক্ষে, যেহেতু ইতিমধ্যে আমি আপনাকে এই দিয়েছেন, যদি আপনার কোন টার্মিনাল অথবা আপনার প্রয়োগ এর শেলে যান, 526 00:50:14,110 --> 00:50:18,250 আমি চাই - আমি সাধারণত - আপনি যদি এখনো দেখা যায় না, আমি যদি আপনি বর্গ করেছিল জানি না, 527 00:50:18,250 --> 00:50:23,490 কিন্তু মানুষ, তাই man পৃষ্ঠা, আছে কাছাকাছি কোন ফাংশন এ খুঁজছেন জন্য দরকারী প্রশংসনীয়. 528 00:50:23,490 --> 00:50:27,330 সুতরাং আমি, চাই না মানুষ চ,, স্ক্যান করতে পারেন চ. 529 00:50:27,330 --> 00:50:32,300 এটি এখন স্ক্যান কর্ম চ পরিবার সম্পর্কে তথ্য. 530 00:50:32,300 --> 00:50:37,070 আমি মানুষ চ, খোলা, না পারে এবং যে যে সম্পর্কে বিস্তারিত দেব. 531 00:50:37,070 --> 00:50:40,750 সুতরাং যদি আপনি কি জানেন যে আপনি ফাংশন, কোড ব্যবহার করে বা আপনি করছি পড়া হয় 532 00:50:40,750 --> 00:50:43,000 এবং আপনি কিছু ফাংশন দেখতে এবং আপনি ভালো, "এই কি করবেন না?" 533 00:50:43,000 --> 00:50:45,280 মানুষের যে ফাংশন নাম. 534 00:50:45,280 --> 00:50:47,340 অদ্ভুত উদাহরণ কয়েক যেখানে আপনি বলতে হতে পারে 535 00:50:47,340 --> 00:50:51,620 . পছন্দ যে ফাংশন নাম, বা মানুষের যে 3 ফাংশন নাম, মানুষ 2 536 00:50:51,620 --> 00:50:58,230 কিন্তু আপনি যদি শুধুমাত্র যে ব্যক্তি ফাংশন নামের প্রথম সময় কাজ না ঘটবে না. 537 00:50:58,230 --> 00:51:03,010 [ছাত্র] সুতরাং আমি খোলা জন্য man পৃষ্ঠা পড়া করছি, কিন্তু আমি এটা কিভাবে এবং প্রোগ্রাম ব্যবহার করছি এখনও বিভ্রান্ত. 538 00:51:03,010 --> 00:51:06,170 ঠিক আছে. Man পৃষ্ঠাগুলি অনেক সহায়ক হয় কম. 539 00:51:06,170 --> 00:51:08,470 এগুলি আরো সহায়ক যদি ইতিমধ্যে তারা কি জানেন না 540 00:51:08,470 --> 00:51:12,670 এবং তারপরে আপনি আর্গুমেন্ট বা কিছু ক্রম মনে রাখা প্রয়োজন মাত্র. 541 00:51:12,670 --> 00:51:17,640 অথবা তারা একটি সাধারণ ওভারভিউ দিতে, কিন্তু তাদের কিছু খুব অপ্রতিরোধ্য পারেন. 542 00:51:17,640 --> 00:51:22,220 ভালো লেগেছে চ স্ক্যান চ, এছাড়াও. এটি আপনাকে এই ফাংশন জন্য সমস্ত তথ্য আপনি, 543 00:51:22,220 --> 00:51:28,120 এবং নিচে 1 লাইন এখানে বলতে হবে, "ফল স্ক্যান চ স্ট্রিং বিন্দু বা প্রবাহ থেকে সার্চ." 544 00:51:28,120 --> 00:51:32,360 কিন্তু খুলুন এব চ. সুতরাং, আমরা কীভাবে ব্যবহার চ খোলা হবে? 545 00:51:32,360 --> 00:51:38,470 একটি প্রোগ্রাম যা ফাইল প্রয়োজন কি ধারণা, I / O হল 546 00:51:38,470 --> 00:51:45,070 আপনাকে প্রথমে আপনি যে ফাইলটি যাও জিনিষ সঙ্গে কাজ করতে চান খোলার প্রয়োজন, এবং অবশ্যম্ভাবী, 547 00:51:45,070 --> 00:51:51,220 যে ফাইল থেকে জিনিষ পড়া এবং তাদের সাথে স্টাফ না. 548 00:51:51,220 --> 00:51:55,350 ফল খোলা কি আমরা ফাইল খোলার জন্য ব্যবহার. 549 00:51:55,350 --> 00:52:04,190 জিনিস আমরা ফিরে পেতে, তাই কি ফাইল আমরা খুলতে চান না, এটি আপনাকে আমাদের - 550 00:52:04,190 --> 00:52:11,970 এটি এখানে বলছেন "/ ব্যবহারকারী / ভাগ / অভি / শব্দ." 551 00:52:11,970 --> 00:52:16,740 এই ফাইলটি যে আমরা খুলতে চাই, এবং আমরা খুলতে চাই - 552 00:52:16,740 --> 00:52:21,440 আমরা স্পষ্টভাবে কিনা আমরা তা বা পড়তে হয় যদি আমরা খুলতে চান তা লিখুন খুলতে চান উল্লেখ আছে. 553 00:52:21,440 --> 00:52:26,490 সমন্বয় এবং পণ্যদ্রব্য একটি দম্পতি আছে, কিন্তু আমরা পড়ার জন্য এই খুলতে চাই. 554 00:52:26,490 --> 00:52:29,380 আমরা ফাইল থেকে পড়তে চাই. 555 00:52:29,380 --> 00:52:34,290 কি আছে এই রিটার্ন? এটি একটি ফাইল তারকা (*) ফেরৎ, 556 00:52:34,290 --> 00:52:37,260 এবং আমি ঠিক পরিবর্তনশীল চ সবকিছুই, যাতে * দেখাব, 557 00:52:37,260 --> 00:52:40,840 আবার, যে এটা একটা পয়েন্টার, পয়েন্টার কিন্তু আমরা মোকাবেলা করতে চান. 558 00:52:40,840 --> 00:52:46,470 আপনি f এর হিসাবে, চ এখন পরিবর্তনশীল আপনি ফাইলটি প্রতিনিধিত্ব ব্যবহার চলুন মনে করতে পারেন. 559 00:52:46,470 --> 00:52:49,850 তাই আপনি যদি ফাইল থেকে পড়তে চান, তাহলে চ থেকে পড়া. 560 00:52:49,850 --> 00:52:54,820 আপনি যদি ফাইল বন্ধ করতে চান, আপনি চ বন্ধ. 561 00:52:54,820 --> 00:53:00,350 সুতরাং প্রোগ্রাম শেষে যখন আমরা অবশ্যম্ভাবীরূপে ফাইল বন্ধ করতে চান, আমরা কি করা উচিত? 562 00:53:00,350 --> 00:53:06,750 আমরা চ বন্ধ করতে চান. 563 00:53:06,750 --> 00:53:12,600 তাই এখন শেষ ফাইলটি যে আমরা ফাংশন ব্যবহার করতে চান সেটি চালু স্ক্যান চ, চ স্ক্যান চ. 564 00:53:12,600 --> 00:53:20,930 এবং কি যে আছে এটা ফাইলটি একটি প্যাটার্ন মেলা খুঁজছেন উপর স্ক্যান করা হবে. 565 00:53:20,930 --> 00:53:39,100 মানুষ এখানে পৃষ্ঠায় দেখার জন্যে, আমরা int চ স্ক্যান চ দেখতে, এখন বিনিময়ে মান উপেক্ষা করা. 566 00:53:39,100 --> 00:53:45,230 প্রথম যুক্তি হল ফাইলটি * স্ট্রিম, তাই প্রথম যুক্তি আমরা প্রেরণ করতে ইচ্ছুক যাচ্ছে সেটি চ. 567 00:53:45,230 --> 00:53:47,900 আমরা চ উপর স্ক্যানিং করছি. 568 00:53:47,900 --> 00:53:53,680 দ্বিতীয় যুক্তি হল বিন্যাসে একটি পংক্তি. 569 00:53:53,680 --> 00:53:58,310 আমি একটি ফরম্যাট স্ট্রিং অধিকার আপনাকে দিতে হবে এখন. 570 00:53:58,310 --> 00:54:05,180 আমি মনে করি আমরা যাও 127s \ n, যে এর অপ্রয়োজনীয় অনেক বলে, এরকম. 571 00:54:05,180 --> 00:54:12,490 কি যে বিন্যাসে স্ট্রিংটি ধারণা, আপনার স্ক্যান চ প্রিন্ট চ বিপরীত হিসাবে মনে করতে পারেন. 572 00:54:12,490 --> 00:54:17,160 সুতরাং মুদ্রণ চ, মুদ্রণ চ আমরা বিন্যাসে পরামিতি এই ধরনের ব্যবহার, 573 00:54:17,160 --> 00:54:25,000 কিন্তু আমরা কি করছেন মুদ্রণ চ হয় - এর একটি সমতুল্য যাক. 574 00:54:25,000 --> 00:54:32,550 তাই চ, মুদ্রণ এবং এর আসলে সেখানে এছাড়াও চ মুদ্রণ চ, যেখানে প্রথম আর্গুমেন্টের চ হবে. 575 00:54:32,550 --> 00:54:40,980 আপনি যখন চ মুদ্রণ, আমরা এরকম কিছু একটা বলবে "মুদ্রণ 127s \ n" পারে এবং তারপর যদি আমরা কিছু স্ট্রিং পাস করে, 576 00:54:40,980 --> 00:54:44,050 এটি এই স্ট্রিং এবং তারপর একটি নতুন লাইন প্রিন্ট হচ্ছে. 577 00:54:44,050 --> 00:54:49,690 127 মানে কি, আমি নিশ্চিত প্রশংসনীয়, কিন্তু আমি নিজেই করেছি সীমিত তা না, 578 00:54:49,690 --> 00:54:52,470 এমনকি আপনি মুদ্রণ চ মধ্যে '127 'বলার প্রয়োজন হবে না, 579 00:54:52,470 --> 00:54:57,090 কিন্তু এটি কি মানে প্রথম 127 অক্ষর প্রিন্ট হয়. 580 00:54:57,090 --> 00:54:59,350 তাই আমি সুন্দর করে নিশ্চিত করুন যে এর ক্ষেত্রে. আপনি যে জন্য Google-পারেন. 581 00:54:59,350 --> 00:55:03,000 কিন্তু আমি পরের এক আছি প্রায় ইতিবাচক এটা মানে হল. 582 00:55:03,000 --> 00:55:08,880 তাই এই প্রথম 127 টি অক্ষর, একটি নতুন লাইন অনুসরণ মুদ্রণ. 583 00:55:08,880 --> 00:55:14,680 ফল স্ক্যান চ এখন, পরিবর্তে খুঁজছি একটি পরিবর্তনশীল সময়ে এবং এটা মুদ্রণ, 584 00:55:14,680 --> 00:55:22,620 এটি কিছু স্ট্রিং এ, যাও চেহারা এবং পরিবর্তনশীল মধ্যে প্যাটার্ন সংরক্ষণ করে যাচ্ছে. 585 00:55:22,620 --> 00:55:26,360 চলুন আসলে একটি পৃথক উদাহরণে, স্ক্যান চ ব্যবহার. 586 00:55:26,360 --> 00:55:31,670 সুতরাং আসুন আমরা বলতে কিছু ছিল int, x = 4, 587 00:55:31,670 --> 00:55:41,110 এবং আমরা একটি স্ট্রিং তৈরি তৈরী করতে চান - যাও স্ট্রিং তৈরী করতে চান 588 00:55:41,110 --> 00:55:44,250 যে মত ছিল, এই পর্যন্ত অনেক পরে আসবে, 589 00:55:44,250 --> 00:55:49,020 কিছু ঠিক মত 4.jpg যে. 590 00:55:49,020 --> 00:55:51,870 সুতরাং এই একটি প্রোগ্রাম যেখানে আপনি সমষ্টি পাল্টা থাকবে হতে পারে, 591 00:55:51,870 --> 00:55:56,420 তোমার মোকাবেলায় যোগফল, এবং আপনি একটি ইমেজ গুচ্ছ সংরক্ষণ করতে চান. 592 00:55:56,420 --> 00:56:02,430 সুতরাং আপনি i.jpg, যেখানে আমি আপনার লুপ কিছু পুনরাবৃত্তির সংরক্ষণ করতে চান. 593 00:56:02,430 --> 00:56:05,500 তাই কিভাবে আমরা যে কোন JPEG জন্য এই স্ট্রিংটি করে? 594 00:56:05,500 --> 00:56:11,720 আপনি যদি 4.jpg মুদ্রণ চেয়েছিল, আমরা শুধু মুদ্রণ চ,% d.jpg বলতে পারে, 595 00:56:11,720 --> 00:56:14,410 এবং তারপর এটি যে কোন JPEG জন্য প্রিন্ট হবে. 596 00:56:14,410 --> 00:56:20,050 কিন্তু যদি আমরা স্ট্রিং 4.jpg সংরক্ষণ করতে চান, আমরা স্ক্যান চ ব্যবহার. 597 00:56:20,050 --> 00:56:30,860 তাই স্ট্রিং গুলি - আসলে আমরা can't - চরিত্র, গৃহস্থালির কাজ গুলি, যাক এর 100 যান. 598 00:56:30,860 --> 00:56:35,400 তাই আমি শুধু 100 অক্ষরের কিছু অ্যারের ঘোষণা, 599 00:56:35,400 --> 00:56:39,830 এবং যে কি অবশ্যম্ভাবী আমরা চলুন যে কোন JPEG ইন সংরক্ষণ করা হবে 600 00:56:39,830 --> 00:56:47,920 তাই আমরা স্ক্যান চ ব্যবহার করতে যাচ্ছে, এবং সেটি বিন্যাস, কিভাবে আমরা% d.jpg বলতে হবে 601 00:56:47,920 --> 00:56:54,980 যাতে 4.jpg প্রিন্ট, এই বিন্যাস যাও% d.jpg হবে. 602 00:56:54,980 --> 00:57:04,020 সুতরাং বিন্যাস হল% d.jpg, আমরা সঙ্গে% ঘ প্রতিস্থাপন করতে চান হল x, 603 00:57:04,020 --> 00:57:06,590 এবং এখন আমরা কোথাও যে পংক্তিটি সংরক্ষণ প্রয়োজন. 604 00:57:06,590 --> 00:57:12,500 এবং অ্যারের মধ্যে গুলি যেখানে আমরা এই পংক্তিটি সংরক্ষণ চলুন হয়. 605 00:57:12,500 --> 00:57:21,640 তাই পরে কোড, গুলি এই লাইন, যদি আমরা চ, পরিবর্তনশীল s এর% s মুদ্রণ, 606 00:57:21,640 --> 00:57:26,280 এটা 4.jpg মুদ্রণ যাচ্ছে. 607 00:57:26,280 --> 00:57:38,930 তাই চ স্ক্যান চ হয় এখন এটা এই ফাইলটি এর উপর খুঁজছেন ছাড়া স্ক্যান চ হিসাবে একই, 608 00:57:38,930 --> 00:57:43,600 কি জন্য গুলি সঞ্চয় যাও. 609 00:57:43,600 --> 00:57:46,160 যে এর কি শেষ আর্গুমেন্টের হবে. 610 00:57:46,160 --> 00:57:54,170 বিন্যাস অনুযায়ী উভয় হিসাবে নীচের চেষ্টা মধ্যে "স্ক্যান ফাংশন স্ক্যান চ পরিবার - আমরা ধারণ করতে চান. 611 00:57:54,170 --> 00:58:02,450 যদি কোনো অবস্থান পয়েন্ট মধ্যে সংরক্ষিত হয় প্রত্যাবর্তন করতে পারে - " 612 00:58:02,450 --> 00:58:12,910 না, আমরা ভাল হতে পারে. আমাকে একটি দ্বিতীয় জন্য মনে করি. 613 00:58:12,910 --> 00:58:26,350 তাই স্ক্যান চ আছে না - কি নরক হয় ফাংশন যা আছে? 614 00:58:26,350 --> 00:58:31,650 তাই স্ক্যান চ একটি পূর্ণসংখ্যা এবং নিতে বিন্দু jpg করতে হবে না. 615 00:58:31,650 --> 00:58:43,490 এটা [mumbles] যাও যাচ্ছে. 616 00:58:43,490 --> 00:58:49,360 স্ট্রিং int-সি মধ্যে int-পরিবর্তনশীল সংরক্ষণ করুন 617 00:58:49,360 --> 00:58:55,940 এই পরিবর্তনশীল কি, বা কি হয় এই ফাংশন হয়? 618 00:58:55,940 --> 00:59:04,950 হ্যাঁ. That's - হ্যাঁ. তাই আগে কি আমি আপনার সংজ্ঞা ছিল গুলি মুদ্রণ চ, 619 00:59:04,950 --> 00:59:09,820 যা - যে আরো অনেক অনুভূতি, কেন আমি আগেই বলেছি এটা ছিল মুদ্রণ চ মত আরো অনেক কিছু করে তোলে. 620 00:59:09,820 --> 00:59:14,700 স্ক্যান চ এখনও ভালো মুদ্রণ চ ধরনের, কিন্তু গুলি মুদ্রণ চ এটি উপর স্ক্যান হবে 621 00:59:14,700 --> 00:59:17,510 এবং ভেরিয়েবল এবং প্রতিস্থাপন এখন একটি স্ট্রিং তা সঞ্চয়. 622 00:59:17,510 --> 00:59:19,620 এর পরিবর্তে এটি মুদ্রণ করুন, এটি একটি স্ট্রিং এটা সঞ্চয় করে. 623 00:59:19,620 --> 00:59:25,070 যাতে সম্পূর্ণভাবে উপেক্ষা করুন. আপনি এখনও বিন্যাসে specifier মত মুদ্রণ চ যে হিসাবে মনে করতে পারেন. 624 00:59:25,070 --> 00:59:34,510 সুতরাং এখন, যদি আমরা 4.jpg জিনিস করতে চেয়েছিল, আমরা গুলি মুদ্রণ চ করবেন, এই এক্স হবে. 625 00:59:34,510 --> 00:59:38,520 তাই স্ক্যান চ করছে - কি ছিল আপনার প্রশ্ন হতে যাচ্ছে? 626 00:59:38,520 --> 00:59:40,820 [ছাত্র] আমি কি আমরা অধিকার এখানে করতে চেষ্টা করছেন মাত্র করছি বিভ্রান্ত 627 00:59:40,820 --> 00:59:43,450 যে কোন JPEG. যে 1 আরো সময় আপনি ব্যাখ্যা করতে পারেন? 628 00:59:43,450 --> 00:59:52,710 তাই এই ছিল - এটা চ স্ক্যান চ এখন কম relevent; আশা, এটা কি ধরনের কিছু গিঁট ফিরে হবে. 629 00:59:52,710 --> 01:00:02,240 তবে কি আমি প্রথমে দেখাতে ইচ্ছুক ছিল - এই আসলে এই [সরাসরি প্রাসঙ্গিক? F5] 630 01:00:02,240 --> 01:00:08,520 আপনি গুলি মুদ্রণ চ ব্যবহার করা হবে যেখানে যাচ্ছেন,, বলে আমরা 100 ইমেজ উপস্থিত আছে, 631 01:00:08,520 --> 01:00:13,630 এবং আপনি ইমেজ 1.jpg, 2.jpg, 3.jpg পড়তে চাই. 632 01:00:13,630 --> 01:00:21,520 তাই যাতে না, আপনি চ খোলা প্রয়োজন, এবং তারপর আপনি স্ট্রিংটি আপনাকে খুলতে চান মধ্যে পাস করতে হবে. 633 01:00:21,520 --> 01:00:30,020 তাই আমরা 1.jpg খুলতে চায়; যাতে স্ট্রিং যা 1.jpg তৈরি, 634 01:00:30,020 --> 01:00:37,660 আমরা গুলি% প্রিন্ট চ d.jpg-আমরা int i = 0 জন্য করবেন না. 635 01:00:37,660 --> 01:00:46,580 তোমার <40, তোমার +. 636 01:00:46,580 --> 01:00:51,130 সুতরাং গুলি মুদ্রণ চ% তোমার মধ্যে d.jpg. 637 01:00:51,130 --> 01:00:56,320 তাই এই লাইন পরে এখন, পরিবর্তনশীল বা অ্যারের গুলি 1.jpg যাচ্ছে. 638 01:00:56,320 --> 01:01:10,610 অথবা, 0.jpg, 1.jpg, 2.jpg. এবং তাই আমরা ঘুরে খুলুন, পড়ার জন্য প্রতিটি ইমেজ, করতে পারেন. 639 01:01:10,610 --> 01:01:19,550 সুতরাং যে কি গুলি মুদ্রণ চ আছে. আপনি কি দেখতে কি গুলি মুদ্রণ চ এখন করছে? 640 01:01:19,550 --> 01:01:25,720 [ছাত্র] ঠিক আছে, তাই এটি গ্রহণ এর - এটি একটি স্ট্রিং তৈরি, something.jpg, তারপর দোকানে. 641 01:01:25,720 --> 01:01:30,360 হ্যাঁ. এটা তৈরি - এই শুধুমাত্র স্ক্যান চ এবং মুদ্রণ চ মত আরেকটি বিন্যাসে স্ট্রিং, 642 01:01:30,360 --> 01:01:37,530 যেখানে এটি দ্বিতীয় যুক্তি ভেরিয়েবলের মধ্যে সমস্ত টিপে, গুলি হিসাবে তোমার বিরোধিতা হতে পারে. 643 01:01:37,530 --> 01:01:42,280 সম্ভবত - আমি বলতে চাচ্ছি, যে ক্ষেত্রে. কিন্তু যাহা আর্গুমেন্ট অর্ডার. 644 01:01:42,280 --> 01:01:45,440 এটি ফরম্যাট স্ট্রিং ভেরিয়েবলের মধ্যে সব সন্নিবেশ যাচ্ছে 645 01:01:45,440 --> 01:01:52,250 এবং তারপর আমাদের বাফারের মধ্যে সংরক্ষণ; আমরা যে একটি বাফার, এটা যেখানে আমরা পংক্তিটি সংরক্ষণ করছেন. 646 01:01:52,250 --> 01:02:00,750 তাই আমরা ভেতরে গুলি সংরক্ষণ সঠিকভাবে-ফরম্যাট স্ট্রিং% ঘ 4 সাথে থাকার পুনঃস্থাপিত হয়. 647 01:02:00,750 --> 01:02:08,080 [ছাত্র] সুতরাং যদি আমরা এই কি, পরিবর্তনশীল চ করছি করা reassigned যাও? 648 01:02:08,080 --> 01:02:18,110 হ্যাঁ. সুতরাং আমরা এই কাজ করার আগে মূল চ বন্ধ করা উচিত. 649 01:02:18,110 --> 01:02:22,810 কিন্তু - তারপর এবং এছাড়াও, যদি হয় একটি চ আপ এখানে খোলা না থাকে, তাহলে আমরা বলতে হবে - 650 01:02:22,810 --> 01:02:29,280 হাঁ. কিন্তু এটি একটি শত বিভিন্ন ফাইল খুলতে হবে. 651 01:02:29,280 --> 01:02:37,360 ঠিক আছে - [ছাত্র] কিন্তু আমরা বা অ্যাক্সেস করতে সক্ষম হবে না. 652 01:02:37,360 --> 01:02:44,230 ঠিক আছে. তাই স্ক্যান চ, চ স্ক্যান চ, একই ধরণের ধারণা, 653 01:02:44,230 --> 01:02:53,610 কিন্তু পরিবর্তে, এর পরিবর্তে একটি স্ট্রিং মধ্যে এটি সংরক্ষণ, এটি আরো আপনি এখন আছেন মত 654 01:02:53,610 --> 01:03:02,420 যাচ্ছে একটি দংশন এবং প্যাটার্ন স্ট্রিং বিরুদ্ধে মেলা উপর এবং ভেরিয়েবলের মধ্যে সংরক্ষণ ফলাফল. 655 01:03:02,420 --> 01:03:11,290 আপনি ভালো কিছু 4.jpg উপর, যাও পার্স এবং সমষ্টি int x এর মধ্যে পূর্ণসংখ্যা 4 সঞ্চয় স্ক্যান চ ব্যবহার করতে পারেন. 656 01:03:11,290 --> 01:03:13,430 আমরা স্ক্যান চ জন্য ব্যবহার করতে পারেন. 657 01:03:13,430 --> 01:03:16,300 ফল স্ক্যান চ কমান্ড লাইনে যে কি হবে. 658 01:03:16,300 --> 01:03:19,200 আমি আসলে নিশ্চিত নই চমত্কার এই কি CS50 লাইব্রেরি আছে. 659 01:03:19,200 --> 01:03:29,050 সুতরাং যখন আপনি বলে, "int-পেতে," এটি উপর এর স্ক্যান চ-ing - স্ক্যান চ এভাবে আপনি ব্যবহারকারীর ইনপুট পেতে. 660 01:03:29,050 --> 01:03:34,670 ফল স্ক্যান চ একই জিনিস করে যাচ্ছে কিন্তু একটি ফাইল পুনরায় স্ক্যান ব্যবহার করা হয়. 661 01:03:34,670 --> 01:03:41,090 এখানে তাই, আমরা এই ফাইলটি মাধ্যমে স্ক্যানিং করা হয়. 662 01:03:41,090 --> 01:03:45,460 প্যাটার্ন আমরা মেলে চেষ্টা করা হয় কিছু পংক্তি, যা 127 টি অক্ষর দীর্ঘ 663 01:03:45,460 --> 01:03:48,100 একটি নতুন লাইন অনুসরণ 664 01:03:48,100 --> 01:03:54,770 তাই আমি নিশ্চিত প্রশংসনীয় আমরা কেবল বলতে পারে মধ্যে অভিধান থেকে "গুলি মেলে," 665 01:03:54,770 --> 01:03:57,770 আমরা আছে এরকম, আমরা কোন শব্দ হয় যে দীর্ঘ নিশ্চিত করছি, 666 01:03:57,770 --> 01:04:03,310 এবং এছাড়াও চ স্ক্যান চ, আমি মনে করি, নতুন লাইনে কোন ব্যাপার কি থামাতে হবে. 667 01:04:03,310 --> 01:04:06,970 কিন্তু আমরা ম্যাচের জন্য নতুন লাইন অন্তর্ভুক্ত, এবং করব - 668 01:04:06,970 --> 01:04:13,960 [ছাত্র] যদি আমরা নতুন লাইন অন্তর্ভুক্ত ছিল না, এটি একটি শব্দ অংশ খুঁজে পেতে চাই? 669 01:04:13,960 --> 01:04:22,900 এটা - প্রতিটি - অভিধান এ খুঁজছেন - 670 01:04:22,900 --> 01:04:26,200 সুতরাং অভিধানে, এই হল আমাদের সব শব্দের. 671 01:04:26,200 --> 01:04:30,500 প্রতিটি এক একটি নতুন লাইন হয়. 672 01:04:30,500 --> 01:04:32,510 স্ক্যান চ এই শব্দ চয়ন করতে যাচ্ছে. 673 01:04:32,510 --> 01:04:38,750 যদি আমরা নতুন লাইন অন্তর্ভুক্ত না করেন তাহলে, এটি সম্ভব যে পরবর্তী স্ক্যান চ শুধুমাত্র নতুন লাইন পড়তে হবে. 674 01:04:38,750 --> 01:04:44,180 কিন্তু তারপর সহ নতুন লাইন নতুন লাইন মাত্র উপেক্ষা করা হবে. 675 01:04:44,180 --> 01:04:49,440 কিন্তু আমরা একটি শব্দ অংশ পেতে না থেকে আমরা সবসময়ই নতুন লাইন আপ করা হয় পড়া কোনো ব্যাপার নয়, করব. 676 01:04:49,440 --> 01:04:54,530 [ছাত্র] কিন্তু কি যদি আপনি শব্দ "cissa," cissa ভালো জন্য অনুসন্ধান. 677 01:04:54,530 --> 01:04:57,380 এটা পাবেন, এবং বলতে হবে যে এটা একটা মিল? 678 01:04:57,380 --> 01:05:05,110 তাই আমরা এখানে - এটা পড়তে হবে - এই প্রকৃতপক্ষে একটি ভাল পয়েন্ট. 679 01:05:05,110 --> 01:05:10,660 আমরা বর্তমান ব্যবহার করছেন না - শব্দ আমরা খুঁজছেন সেটি প্রথম কমান্ড লাইন আর্গুমেন্ট. 680 01:05:10,660 --> 01:05:16,460 তাই স্ট্রিং, শব্দ argv = 1. 681 01:05:16,460 --> 01:05:20,020 সুতরাং আমরা স্ট্রিং খুঁজছেন সেটি argv 1. 682 01:05:20,020 --> 01:05:23,290 আমরা আমাদের স্ক্যান চ সকল একটি শব্দ খুঁজছি হয় না. 683 01:05:23,290 --> 01:05:28,030 আমরা কি স্ক্যান চ সঙ্গে কাজ ছিল অভিধানে হয় প্রতিটি শব্দ পেয়ে, 684 01:05:28,030 --> 01:05:34,320 এবং একবার তারপর আমরা যে শব্দ আমরা strcmp তাদের তুলনা ব্যবহার চলুন আছে. 685 01:05:34,320 --> 01:05:39,210 আমরা আমাদের শব্দ তুলনা যাচ্ছে এবং কি আমরা এখনো সদস্য না হয়ে পড়া করছি 686 01:05:39,210 --> 01:05:45,110 সুতরাং অবশ্যম্ভাবী, আমরা শেষ পর্যন্ত স্ক্যান fs লেখা একটি গুচ্ছ করছেন চলুন 687 01:05:45,110 --> 01:05:52,130 পর্যন্ত শুধু তাই যে স্ক্যান চ ফিরে আসবে - 688 01:05:52,130 --> 01:05:54,800 এটি একটি ফিরে, যতদিন না পর্যন্ত এটি একটি নতুন শব্দ মিলেছে করেনি হবে, 689 01:05:54,800 --> 01:06:01,360 এবং এটা অন্য কিছু ফিরে যত তাড়াতাড়ি এটা শব্দ মেলে ব্যর্থ হয়েছে হবে. 690 01:06:01,360 --> 01:06:08,440 আমরা সমগ্র অভিধান উপর পড়া পাতিপাতি সংরক্ষণকারী পরিবর্তনশীল গুলি মধ্যে প্রতিটি শব্দ হয়. 691 01:06:08,440 --> 01:06:17,240 তারপর আমরা s-এর সাথে তুলনা করে শব্দ হয়, এবং যদি তুলনা == 0, 692 01:06:17,240 --> 01:06:21,650 strcmp যাও 0 যদি কোনো মিল হয়েছিল আনা হবে. 693 01:06:21,650 --> 01:06:31,510 তাই আপনি যদি এটি ছিল 0 তারপর, আমরা চ মুদ্রণ করতে পারেন, মিলেছে, 694 01:06:31,510 --> 01:06:35,370 বা অভিধানে শব্দটি হল, বা যাই হোক না কেন আপনি চ মুদ্রণ করতে চান. 695 01:06:35,370 --> 01:06:41,450 এবং তারপর - আমরা চ উপর বন্ধ করুন এবং পুনরায় জুড়ে দিতে চান না. 696 01:06:41,450 --> 01:06:50,410 এই ধরনের জিনিস আমরা যেতে চাই, এবং আমরা ঠিক হচ্ছে অভিধানে শব্দ জন্য না. 697 01:06:50,410 --> 01:06:56,660 সুতরাং আমরা যে, যদি আমরা তাদের প্যাটার্ন, cissa জন্য সন্ধান করতে চেয়েছিলাম, পারিনি ভালো আপনি বলেন আগে, 698 01:06:56,660 --> 01:07:00,260 যদি আমরা যে প্যাটার্ন জন্য চেহারা চেয়েছিলেন, তারপর ক্ষেত্রে কর্ম ব্যর্থ হবে 699 01:07:00,260 --> 01:07:08,010 কারণ এটা আসলে একটি শব্দ, না কিন্তু অভিধান শব্দের মধ্যে যে এক তা আছে এরকম. 700 01:07:08,010 --> 01:07:13,560 সুতরাং এই শব্দ মেলে, কিন্তু এই শব্দের সাবসেট একটি শব্দ নিজেই করবে না. 701 01:07:13,560 --> 01:07:17,250 কিন্তু যে কীভাবে আমরা এটি ব্যবহার করছেন না; আমরা প্রতিটি শব্দ পড়ি 702 01:07:17,250 --> 01:07:19,740 এবং তারপর শব্দ আমরা যে শব্দ সাথে তুলনা আছে. 703 01:07:19,740 --> 01:07:25,780 তাই আমরা সবসময়ই পূর্ণ শব্দ তুলনা করছেন. 704 01:07:25,780 --> 01:07:29,620 আমি চূড়ান্ত সমাধান আউট পরে পাঠাতে পারেন. 705 01:07:29,620 --> 01:07:32,050 এটি প্রায় সঠিক উত্তরটি মত, আমি মনে করি. 706 01:07:32,050 --> 01:07:34,720 [ছাত্র মন্তব্য নেই, অপাচ্য] 707 01:07:34,720 --> 01:07:40,870 ওহ, আমি যে পরিত্রাণ পাইনি আগে? চর গুলি, আমি অনুমান আমরা 127 বলেন - আমি ভুলে গেলে কি বৃহত্তম. 708 01:07:40,870 --> 01:07:44,100 আমরা মাত্র 128 করব; তাই এখন গুলি দীর্ঘ যথেষ্ট. 709 01:07:44,100 --> 01:07:46,570 আমরা কিছু প্রিন্ট করার প্রয়োজন হবে না. 710 01:07:46,570 --> 01:07:56,440 আমরা করছি যাও যাও যাও আমাদের ফাইল বন্ধ করা আছে সেটি হচ্ছে, এবং যে সঠিক উত্তরটি সম্পর্কে হওয়া উচিত. 711 01:07:56,440 --> 01:07:59,440 CS50.TV