1 00:00:00,000 --> 00:00:03,395 >> [সঙ্গীত বাজাচ্ছি] 2 00:00:03,395 --> 00:00:11,031 3 00:00:11,031 --> 00:00:13,280 ডেভিড জে MALAN: এই ভালো হয় একজন নবীন সেমিনার আজ. 4 00:00:13,280 --> 00:00:14,060 ঠিক আছে. 5 00:00:14,060 --> 00:00:15,024 আউট তাই খুব বৃষ্টির. 6 00:00:15,024 --> 00:00:17,690 এই বুধবারে ঘটতে থাকে, কিন্তু সব আরো সুযোগ 7 00:00:17,690 --> 00:00:18,700 প্রশ্নের জন্য আজ. 8 00:00:18,700 --> 00:00:22,210 তাই আসলে শুরু করা যাক মাত্র কয়েক মিনিটের মধ্যে ফিল্ম সঙ্গে. 9 00:00:22,210 --> 00:00:24,560 কিন্তু আমরা সবসময় হিসাবে grandly শুরু করব. 10 00:00:24,560 --> 00:00:28,000 >> এটি CS50, এবং এই সপ্তাহে 4 শেষে হয়. 11 00:00:28,000 --> 00:00:30,820 আপনি কি দেখেছেন করেছি, তাই যদি টিভি বা সিনেমা যাহাতে 12 00:00:30,820 --> 00:00:34,690 কিছু কম্পিউটার বিশেষজ্ঞদের আছে এবং পুলিশ, বা FBI, বা কিছু সংস্থা 13 00:00:34,690 --> 00:00:36,930 কিছু ধরতে চেষ্টা করছে বিপক্ষ ভাল, আপনি করেছি 14 00:00:36,930 --> 00:00:40,850 সম্ভবত ", উন্নত" মত প্রকাশের শোনা যদ্দ্বারা যে প্রকর্মী একরকম 15 00:00:40,850 --> 00:00:44,750 magically অসীম মধ্যে zooms অপরাধীদের দেখতে পর্যন্ত 16 00:00:44,750 --> 00:00:48,640 পরিচয় বা লাইসেন্স প্লেট নম্বর একটি আয়না এমনকি চকমক মধ্যে 17 00:00:48,640 --> 00:00:50,390 বা কেউ এর চোখের জ্বলজ্বল. 18 00:00:50,390 --> 00:00:55,196 তাই প্রকৃতপক্ষে, এর কটাক্ষপাত করা যাক হলিউড থেকে কয়েক ধরনের দৃশ্য. 19 00:00:55,196 --> 00:00:55,862 [ভিডিও প্লেব্যাক] 20 00:00:55,862 --> 00:00:59,243 -OK, এখন আপনি একটি ভাল চেহারা পেতে দিন. 21 00:00:59,243 --> 00:01:06,488 22 00:01:06,488 --> 00:01:07,415 >> -এটা ধরো. 23 00:01:07,415 --> 00:01:08,267 যে ফিরে চালান. 24 00:01:08,267 --> 00:01:09,121 >> -একটি মিনিট অপেক্ষা করুন. 25 00:01:09,121 --> 00:01:11,300 ডানে যাও. 26 00:01:11,300 --> 00:01:12,209 >> -আছে, যে নিথর. 27 00:01:12,209 --> 00:01:12,750 -পূর্ণ পর্দা. 28 00:01:12,750 --> 00:01:13,558 -OK, যে নিথর. 29 00:01:13,558 --> 00:01:14,820 আপনি, যে হবে আপ আঁট? 30 00:01:14,820 --> 00:01:16,530 যে এ -ভেক্টর ফিরে চাকা দ্বারা লোক. 31 00:01:16,530 --> 00:01:19,400 ঠিক এই স্পট ইন জুম. 32 00:01:19,400 --> 00:01:22,846 ডান সরঞ্জাম সাথে-, ইমেজ বৃদ্ধ এবং শাণিত হতে পারে. 33 00:01:22,846 --> 00:01:24,065 -ওটা কী? 34 00:01:24,065 --> 00:01:25,600 -এটা একটি বর্ধিতকরণ প্রোগ্রাম. 35 00:01:25,600 --> 00:01:26,860 যে পর্যন্ত কোন সুস্পষ্ট আপনি -পারি? 36 00:01:26,860 --> 00:01:27,890 -আমি জানি না. 37 00:01:27,890 --> 00:01:29,050 এটা উন্নত করা যাক. 38 00:01:29,050 --> 00:01:31,575 >> বর্ধিত অধ্যায় থেকে A6. 39 00:01:31,575 --> 00:01:33,642 >> -আমি বিস্তারিত উন্নত, and-- আমি মনে করি 40 00:01:33,642 --> 00:01:35,433 উন্নত যথেষ্ট, আমার পর্দায় এটি মুক্তি দেয়া হোক. 41 00:01:35,433 --> 00:01:37,080 -আমি তার চোখে প্রতিফলন উন্নত. 42 00:01:37,080 --> 00:01:38,830 >> -যাক মাধ্যমে এই চালানো ভিডিও বর্ধিতকরণ. 43 00:01:38,830 --> 00:01:40,100 -Edgar, আপনি এই বাড়াতে পারে? 44 00:01:40,100 --> 00:01:41,875 >> -লেগে থাকা. 45 00:01:41,875 --> 00:01:44,010 >> এই প্রতিফলন কাজ হয়েছে -I've. 46 00:01:44,010 --> 00:01:44,995 >> -কেউ এর প্রতিফলন. 47 00:01:44,995 --> 00:01:45,495 -Reflection. 48 00:01:45,495 --> 00:01:47,399 মানুষের মুখের একটি প্রতিফলন. 49 00:01:47,399 --> 00:01:48,065 -প্রতিফলন. 50 00:01:48,065 --> 00:01:48,981 একটি প্রতিফলন. 51 00:01:48,981 --> 00:01:50,600 আয়না ইন জুম. 52 00:01:50,600 --> 00:01:52,712 -আপনি একটি প্রতিফলন দেখতে পারেন. 53 00:01:52,712 --> 00:01:54,350 আপনি এখান থেকে ইমেজ উন্নত? 54 00:01:54,350 --> 00:01:55,370 আপনার অধিকার এখানে তাকে উন্নত? 55 00:01:55,370 --> 00:01:56,210 আপনি এটি উন্নত? 56 00:01:56,210 --> 00:01:56,900 আপনি এটা উন্নত করতে পারি? 57 00:01:56,900 --> 00:01:57,870 >> আমরা এই উন্নত? 58 00:01:57,870 --> 00:01:58,717 >> আপনি এটি উন্নত? 59 00:01:58,717 --> 00:02:00,050 এক সেকেন্ড হোল্ড, আমি উন্নত করব. 60 00:02:00,050 --> 00:02:00,924 দরজা ইন জুম. 61 00:02:00,924 --> 00:02:01,700 10 -টাইমস. 62 00:02:01,700 --> 00:02:02,586 জুম. 63 00:02:02,586 --> 00:02:03,490 -চলে আসা. 64 00:02:03,490 --> 00:02:03,990 -আরো. 65 00:02:03,990 --> 00:02:04,690 -Wait, থামাতে. 66 00:02:04,690 --> 00:02:05,190 বন্ধ করুন. 67 00:02:05,190 --> 00:02:05,970 এটা-বিরাম. 68 00:02:05,970 --> 00:02:09,460 আমাদের 75 ডিগ্রী ঘোরান উল্লম্ব চারপাশে, দয়া করে. 69 00:02:09,460 --> 00:02:10,962 বন্ধ করুন. 70 00:02:10,962 --> 00:02:14,040 অংশ ফিরে যান আবার দরজা, সম্পর্কে. 71 00:02:14,040 --> 00:02:15,860 >> বিটম্যাপ করতে পারেন যে একটি চিত্র enhancer- পেয়েছেন? 72 00:02:15,860 --> 00:02:18,776 >> -আরে, হয়তো আমরা প্রদীপ ব্যবহার করতে পারেন সেন পদ্ধতি উইন্ডোজ মধ্যে দেখতে. 73 00:02:18,776 --> 00:02:20,372 -এই সফটওয়্যার শিল্পের রাষ্ট্র. 74 00:02:20,372 --> 00:02:21,845 >> -বাছাইযোগ্য Eigenvalue বন্ধ হয়. 75 00:02:21,845 --> 00:02:24,300 >> ডান -সঙ্গে এলগরিদম সমন্বয় 76 00:02:24,300 --> 00:02:26,755 >> -তিনি এর গ্রহণ বর্জন পরবর্তী স্তরে আলগোরিদিম, 77 00:02:26,755 --> 00:02:28,730 এবং আমি তাদের ব্যবহার করতে পারেন এই ফটো উন্নত. 78 00:02:28,730 --> 00:02:31,286 >> উপর লক এবং z- অক্ষ বিস্তৃত. 79 00:02:31,286 --> 00:02:32,560 >> বর্ধিত. 80 00:02:32,560 --> 00:02:33,100 >> বর্ধিত. 81 00:02:33,100 --> 00:02:33,600 >> বর্ধিত. 82 00:02:33,600 --> 00:02:34,960 -ফ্রিজ এবং উন্নত. 83 00:02:34,960 --> 00:02:37,180 >> [END টি প্লেব্যাক] 84 00:02:37,180 --> 00:02:41,160 >> ডেভিড জে MALAN: ঠিক আছে, তাই ঐ সব আসলে শব্দ হয়. 85 00:02:41,160 --> 00:02:44,450 তারা শুধু একটি একসঙ্গে গ্রথিত করছি আসলে যুক্তিসম্মত নয় যে ভাবে. 86 00:02:44,450 --> 00:02:48,400 এটা ভালো, আসলে, CS50 এবং কোর্স টিভি ও সিনেমা অনেক নিকুচি থাকে 87 00:02:48,400 --> 00:02:48,900 তোমার জন্য. 88 00:02:48,900 --> 00:02:52,330 যখন যারা কম্পিউটার বিশেষজ্ঞদের কারণ শর্তাবলী বন্ধ প্রাণবন্ত এবং বলার অপেক্ষা রাখে না হয় 89 00:02:52,330 --> 00:02:56,860 মত শৌখিন জিনিস eigenvectors, এবং z- অক্ষ, 90 00:02:56,860 --> 00:02:59,572 এবং অন্যান্য কোন সংখ্যা আসলে আরো পরিভাষা, 91 00:02:59,572 --> 00:03:02,030 তারা সত্যিই শুধু গাঁথন করছি শব্দ একসাথে সব খুব প্রায়ই. 92 00:03:02,030 --> 00:03:05,020 আমাদের আশা এক যে হয়, নেবার মাঠ পার্শ্ব প্রতিক্রিয়া হিসাবে 93 00:03:05,020 --> 00:03:08,245 এই মত, আরো মানুষ বিশ্বের আসলে তৌল পাবে 94 00:03:08,245 --> 00:03:12,040 এবং শুধু কি তাই সামান্য প্রভাবিত গুণমান এবং যারা ছায়াছবি সঠিকতা? 95 00:03:12,040 --> 00:03:14,350 >> বস্তুত, এর বাস্তবতা কটাক্ষপাত করা যাক. 96 00:03:14,350 --> 00:03:18,070 সুতরাং এখান থেকে কর্মীদের ছবি হয় মেরি, আমাদের শিক্ষার ফেলোগণ এক. 97 00:03:18,070 --> 00:03:20,050 এবং তিনি অনুমান কিছু সন্দেহ. 98 00:03:20,050 --> 00:03:23,730 এবং এখনো, একটি আভাস আছে তার চোখে প্রমাণের কিছু টুকরা, 99 00:03:23,730 --> 00:03:25,480 বা তার চশমা প্রতিফলন. 100 00:03:25,480 --> 00:03:30,760 ওয়েল, আমরা ফিল্মসের ঠিক করতে হলে আমরা জুম এবং "উন্নত" যাহাতে, প্রস্তাব, 101 00:03:30,760 --> 00:03:34,080 এই কত তথ্য Mary এর মুখে হয় 102 00:03:34,080 --> 00:03:36,795 আপনি কি চান একজন প্রতিচ্ছবি যখন যে মূল রেজোলিউশনে. 103 00:03:36,795 --> 00:03:39,120 >> এবং, আসলে, আপনি এই বিন্দু দেখতে পারেন. 104 00:03:39,120 --> 00:03:41,900 আর এগুলো কি হয় বলা পিক্সেল, পি-আমি-এক্স-ই-এল-এস, 105 00:03:41,900 --> 00:03:45,740 যা সাধারণত মাত্র একটি বর্গক্ষেত্র যে একটি চিত্র রচনা করে একটি বিন্দু. 106 00:03:45,740 --> 00:03:49,200 আর ফিরে দিন, এবং আসলে এমনকি আজকের নেতৃত্বাধীন টিভি কিছু আজ 107 00:03:49,200 --> 00:03:51,950 অথবা এলসিডি টিভি, আপনি পেয়েছেন আপনার রুমে অথবা বাড়িতে এক, 108 00:03:51,950 --> 00:03:55,100 আপনি এটা করতে সুপার বন্ধ আপ যান, এবং যদি এটি একটি কিছুটা পুরোনো টিভি, বিশেষত যদি, 109 00:03:55,100 --> 00:03:58,760 আপনি সম্ভবত এমনকি এই বিন্দু দেখতে পারেন এবং যে একটি ইমেজ কম্পোজ কি. 110 00:03:58,760 --> 00:04:00,980 >> আর কোন নেই এই তুলনায় তথ্য. 111 00:04:00,980 --> 00:04:05,400 আমরা অর্থে, "উন্নত" পারে ওভার এবং সাজানোর জিনিষ মসৃণকরণ 112 00:04:05,400 --> 00:04:09,040 ধরনের, সাজানোর কি inferring রঙ মেরি এর চোখের পাশে হওয়া উচিত 113 00:04:09,040 --> 00:04:10,910 যাতে এটা আসলে তাই pixelated না. 114 00:04:10,910 --> 00:04:14,510 কিন্তু আমি এ zooming রাখতে হলে, সেখানে তার চোখে খারাপ লোক হয়. 115 00:04:14,510 --> 00:04:16,600 যে সব ভালো হয় তথ্য আমরা আছে. 116 00:04:16,600 --> 00:04:18,920 আপনি তৈরি করতে পারবেন না কিছুই আউট তথ্য. 117 00:04:18,920 --> 00:04:20,790 শুধুমাত্র একটি নির্দিষ্ট নেই সেখানে বিট সংখ্যা. 118 00:04:20,790 --> 00:04:22,873 >> সমস্যা সেট 4, যেখানে তাই আপনি একটি সুযোগ আছে 119 00:04:22,873 --> 00:04:24,580 বিশ্বের এই ধরনের সাথে খেলতে. 120 00:04:24,580 --> 00:04:27,610 সমস্যা সেট 4, আপনি অন্বেষণ করব গ্রাফিক্স, এবং ফরেনসিক বিশ্বের, 121 00:04:27,610 --> 00:04:30,870 এবং আসলে কোড লিখুন যে হারিয়ে ইমেজ recovers. 122 00:04:30,870 --> 00:04:33,510 আপনি কোড লিখতে হবে যে বিদ্যমান ইমেজ নিপূণভাবে ব্যবহার 123 00:04:33,510 --> 00:04:36,120 এবং শেষ পর্যন্ত কি বুঝতে ফণা নীচে যাচ্ছে. 124 00:04:36,120 --> 00:04:38,540 >> আর, এটা আসলে, দেখা যাচ্ছে সব যে জটিল নয়. 125 00:04:38,540 --> 00:04:41,320 উদাহরণস্বরূপ, যদি আমরা করতে চেয়েছিলেন একটি হাস্যজ্জল মুখ যেখানে প্রতিনিধিত্ব 126 00:04:41,320 --> 00:04:44,160 এই কালো পিক্সেল সাথে, বা এই কালো বিন্দু, 127 00:04:44,160 --> 00:04:47,230 ভাল, আমরা কেবল প্রতিনিধিত্ব করতে পারে তাদের হিসাবে সত্যিই একটি বিটম্যাপ. 128 00:04:47,230 --> 00:04:50,040 আর যদি আপনি কখনও শুনেছেন প্রকাশের বিটম্যাপ, সম্ভবত 129 00:04:50,040 --> 00:04:52,330 এটি এখন একটি করতে শুরু একটু বেশি অর্থে আজ. 130 00:04:52,330 --> 00:04:53,580 >> আমরা ইতিমধ্যে একটি বিট কি জানেন. 131 00:04:53,580 --> 00:04:54,160 এটা 0 বা 1 এর. 132 00:04:54,160 --> 00:04:56,201 আর একটি মানচিত্রের ঠিক কিছু এক টুকরা কাগজ মত 133 00:04:56,201 --> 00:04:59,180 যে আপনি নির্দেশ দেয় এবং আছে হয়তো এক্স এবং ওয়াই-স্থানাঙ্ক একটি গ্রিড. 134 00:04:59,180 --> 00:05:00,540 তাই এখানে একটি বিটম্যাপ. 135 00:05:00,540 --> 00:05:03,680 এটা বিট একটি মানচিত্রের যদ্দ্বারা একটি 1 দৃশ্যত হয় 136 00:05:03,680 --> 00:05:07,857 একটি সাদা পিক্সেল প্রতিনিধিত্ব করতে যাচ্ছে, এবং একটি 0 একটি কালো পিক্সেল প্রতিনিধিত্ব যাচ্ছে. 137 00:05:07,857 --> 00:05:09,440 কিন্তু আমরা অবশ্যই এটি প্রায় টুসকি পারে. 138 00:05:09,440 --> 00:05:11,648 এটা সত্যিই কোন ব্যাপার না, তাই না আমরা সামঞ্জস্যপূর্ণ আছেন যতদিন. 139 00:05:11,648 --> 00:05:15,570 এবং এখানে ভিতরে binary-- মধ্যে, কিভাবে হয় একটি কম্পিউটার এর মেমরি, অথবা এমনকি ভিতরে 140 00:05:15,570 --> 00:05:18,160 আপনার হার্ড একটি ফাইলের drive-- আপনি সংরক্ষণ করতে পারে 141 00:05:18,160 --> 00:05:20,240 হাস্যজ্জল মুখ ইমেজ সহজ. 142 00:05:20,240 --> 00:05:23,990 কিন্তু আমরা কি হয়, অবশ্যই, এই ছবিটি উদাসীন? 143 00:05:23,990 --> 00:05:24,610 রঙ, ডান? 144 00:05:24,610 --> 00:05:28,220 এটি একটি সুস্পষ্ট পরবর্তী পদক্ষেপ বা বর্ধিতকরণ রঙের সাথে এই উন্নতি. 145 00:05:28,220 --> 00:05:32,230 তাই দুর্ভাগ্যবশত মাত্র এক ক্লিকেই সঙ্গে বিট, 0 বা 1, আমরা রঙ প্রতিনিধিত্ব করতে পারে. 146 00:05:32,230 --> 00:05:36,100 যে লাল, নীল বা হতে পারে, অথবা কালো, বা সাদা, সবুজ অথবা, অথবা গোলাপী, 147 00:05:36,100 --> 00:05:37,420 বা রং এর কোন জোড়া. 148 00:05:37,420 --> 00:05:40,860 কিন্তু সরলতা দোহাই, আমরা করব শুধু কালো এবং সাদা অনুমান. 149 00:05:40,860 --> 00:05:45,930 >> সুতরাং যুক্তি আমরা যদি প্রয়োজন কি আমরা একটি ছবিতে রং বাস্তবায়ন করতে চান? 150 00:05:45,930 --> 00:05:49,080 আমরা কি করতে আছে? 151 00:05:49,080 --> 00:05:51,900 এখানে সীমিত ফ্যাক্টর যদি ভালো লেগেছে যে এক বিট সঙ্গে আপনি শুধুমাত্র পারেন হয় 152 00:05:51,900 --> 00:05:55,977 দুই রাজ্যের 0 বা 1, সাদা প্রতিনিধিত্ব অথবা কালো, আপনি কি করতে চান না? 153 00:05:55,977 --> 00:05:56,810 শ্রোতা: আরো তথ্য. 154 00:05:56,810 --> 00:05:58,813 ডেভিড জে MALAN: আরো বিট, হ্যা আরো তথ্য, আরো বিট. 155 00:05:58,813 --> 00:06:01,440 এবং, প্রকৃতপক্ষে, যে ঠিক কিভাবে রঙ ইমেজ প্রতিনিধিত্ব করা হয়. 156 00:06:01,440 --> 00:06:05,120 একটি একক বিট ব্যবহার, বরং 0 বা প্রতিটি পিক্সেলের জন্য 1, প্রতিটি বিন্দু, 157 00:06:05,120 --> 00:06:06,170 আপনি শুধু একাধিক ব্যবহার. 158 00:06:06,170 --> 00:06:09,660 হয়তো, আরো সাধারণভাবে, 8 ব্যবহার সমস্যা সেট, প্রকৃতপক্ষে 24 ব্যবহার, এবং 159 00:06:09,660 --> 00:06:13,300 4, আপনি একটি ফাইল সঙ্গে খেলতে হবে সাধারণত 24 বিট ব্যবহার করে ফরম্যাট. 160 00:06:13,300 --> 00:06:15,430 >> কিন্তু তোমাদের অধিকাংশই হয় JPEGs সঙ্গে পরিচিত. 161 00:06:15,430 --> 00:06:17,460 আপনি কি কখনও গ্রহণ করে থাকেন তাহলে আপনার ফোনে একটি ছবি, 162 00:06:17,460 --> 00:06:20,360 বা আপলোড বা কিছু দেখা ফেসবুক, ফ্লিকার, কোনো সংখ্যা 163 00:06:20,360 --> 00:06:24,882 ছবি-ভিত্তিক ওয়েবসাইটের, আপনি করেছি সম্ভবত আগে একটি JPEG চিত্র দেখা. 164 00:06:24,882 --> 00:06:27,840 আর এটা এই ফাইলটি সক্রিয় আউট, বিন্যাস আমরা pset 4 মধ্যে ব্যবহার করতে যাচ্ছেন 165 00:06:27,840 --> 00:06:30,340 যদ্দ্বারা আপনি যাচ্ছেন ইমেজ পুনরুদ্ধার করতে হবে 166 00:06:30,340 --> 00:06:35,160 আমি ঘটনাক্রমে একটি থেকে মুছে ফেলেন যে ক্যামেরা দুর্নীতিগ্রস্ত মেমরি কার্ড, 167 00:06:35,160 --> 00:06:35,800 যদি আপনি হবে. 168 00:06:35,800 --> 00:06:38,490 >> এবং এটি সক্রিয় আউট যে যদিও কোন JPEG প্রশংসনীয় sophisticated-- হয় 169 00:06:38,490 --> 00:06:40,906 এটা অনেক বেশি বাস্তববুদ্ধিসম্পন্ন কালো এবং সাদা বিন্দুর চেয়ে 170 00:06:40,906 --> 00:06:44,480 নেই, কারণ আমরা একটি মুহূর্ত আগে দেখেছি আসলে অভিনব আলগোরিদিম যে 171 00:06:44,480 --> 00:06:47,410 তাই, কোন JPEG কম্প্রেস করার জন্য ব্যবহৃত হয় আপনি সত্যিই একটি চমৎকার থাকতে পারে, 172 00:06:47,410 --> 00:06:49,832 মানের ছবি কিন্তু ব্যবহার তুলনামূলকভাবে কম বিট. 173 00:06:49,832 --> 00:06:51,790 আর আমরা ফিরে আসবো দীর্ঘ আগে কম্প্রেশন. 174 00:06:51,790 --> 00:06:56,280 এটা প্রথম দেখা যাচ্ছে যে কোন JPEG ছবিটি তিনটি বাইট 175 00:06:56,280 --> 00:07:02,750 কোন ব্যাপার আপনি একটি ফটোগ্রাফ গ্রহণ করেছেন কি র মান 255, 216, 255 হয়. 176 00:07:02,750 --> 00:07:05,990 >> অন্য কথায়, আপনি যদি শুধু বিট যে প্যাটার্ন দেখতে, 177 00:07:05,990 --> 00:07:09,180 তিনটি হিসেবে এখানে প্রতিনিধিত্ব বাইট, বা 24 বিট, মোট 178 00:07:09,180 --> 00:07:13,810 উচ্চ সম্ভাবনা সঙ্গে আপনি আবিষ্কার করতে পারেন আপনি এই প্রথম তিনটি এটি এ খুঁজছেন 179 00:07:13,810 --> 00:07:15,230 কোন JPEG বাইট. 180 00:07:15,230 --> 00:07:18,040 আর এই কি পরিচিত হয় কোন JPEG স্বাক্ষর হিসেবে. 181 00:07:18,040 --> 00:07:20,540 ফাইল ফরম্যাটের একটি অনেক শুরু করার জন্য আছে ঝোঁক আউট 182 00:07:20,540 --> 00:07:23,735 0 সেঃ এবং 1s নির্দিষ্ট নকশার সঙ্গে, যে জানালা, এবং ম্যাক অপারেটিং সিস্টেম, এবং iOS তাই, 183 00:07:23,735 --> 00:07:28,272 এবং অ্যান্ড্রয়েড জানেন ফাইল কি ধরনের তারা তথাকথিত ফাইল ছাড়াও, হয় 184 00:07:28,272 --> 00:07:29,730 এক্সটেনশন ফাইল অনেক আছে. 185 00:07:29,730 --> 00:07:32,590 আপনি আপনি JPG জানতে চান, যে কম্পিউটারে অন্য খেই. 186 00:07:32,590 --> 00:07:35,310 >> তাই এখন এই সময়ে পর্যবেক্ষণ করা যাক আরো টেকনিক্যালি একটু. 187 00:07:35,310 --> 00:07:37,390 আমরা দশমিক জানেন সিস্টেম 9 মাধ্যমে 0 হয়. 188 00:07:37,390 --> 00:07:38,740 আমরা বাইনারি 0 এবং 1 জানে. 189 00:07:38,740 --> 00:07:41,842 আর যদি আপনি কীভাবে PSet ফিরে মনে করেন 0, আমরা আপনার সাথে কুস্তি ছিল 190 00:07:41,842 --> 00:07:43,800 একটি সামান্য বিট, কিছু হেক্সাডেসিমেল বলা, 191 00:07:43,800 --> 00:07:47,320 আপনি 16 ডিজিটের আছে যেখানে, পরিবর্তে 10 বা পরিবর্তে 2. 192 00:07:47,320 --> 00:07:50,405 আর যারা সংখ্যা, কনভেনশন দ্বারা তারপর একটি 9 এবং মাধ্যমে 0 হয় 193 00:07:50,405 --> 00:07:55,040 F কি প্রতিনিধিত্ব করে যেখানে F, মাধ্যমে শুধু একটি দ্রুত বৈধতা হিসাবে দশমিক সংখ্যা, 194 00:07:55,040 --> 00:07:56,640 পরীক্ষা? 195 00:07:56,640 --> 00:07:57,610 সুতরাং, 15. 196 00:07:57,610 --> 00:08:01,390 এবং একটি মাত্র দ্বারা 10 প্রতিনিধিত্ব নয় আমি দিয়েছি যে ক্রম প্রকৃতি. 197 00:08:01,390 --> 00:08:04,350 এটা শুধুমাত্র একটি অবাধ রীতিনীতি কিন্তু এটা বেশ আদর্শ. 198 00:08:04,350 --> 00:08:06,870 >> আমরা এই প্যাটার্ন তাকান সুতরাং তিনটি আসুন বাইট 199 00:08:06,870 --> 00:08:09,620 শুধু তা তাকান শুরু কিভাবে সঙ্গে সামঞ্জস্যপূর্ণ এমনভাবে 200 00:08:09,620 --> 00:08:12,450 সাধারণত কম্পিউটার বিজ্ঞানীরা তাকান এবং ফাইল সম্পর্কে চিন্তা. 201 00:08:12,450 --> 00:08:15,580 আপনি অবশ্যই মনে করতে পারেন 0 সেঃ মধ্যে ফাইল, এবং 1s, এবং দশমিক, 202 00:08:15,580 --> 00:08:19,340 কিন্তু বাস্তবে আমরা বাইনারি ব্যবহারের প্রবণতা বা আরো সাধারণত hexadecimal-- 203 00:08:19,340 --> 00:08:20,760 ফিরে pset 0 থেকে. 204 00:08:20,760 --> 00:08:25,857 তাই আমাকে উত্থাপন করা যাক যে 255, 216, এবং 255 0 সেঃ এবং 1s শুধু এইসব নিদর্শন হয়. 205 00:08:25,857 --> 00:08:28,440 এবং যদি আপনি এই যদি পরীক্ষা করতে পারবেন আপনি 0 সপ্তাহ থেকে গণিত কাজ করতে চান. 206 00:08:28,440 --> 00:08:30,810 কিন্তু, এখন জন্য, শুধু অনুমান যে এই প্রকৃতপক্ষে সঠিক. 207 00:08:30,810 --> 00:08:33,850 আমি শুধু তিন দশমিক পুনর্লিখিত করেছি তিনটি বাইনারি মান হিসাবে নম্বর. 208 00:08:33,850 --> 00:08:36,100 এখন আমি কি করতে যাচ্ছি হয় শুধু কিছু সাদা স্পেস যোগ, 209 00:08:36,100 --> 00:08:37,266 শুধু পাঠযোগ্যতা দোহাই. 210 00:08:37,266 --> 00:08:39,940 এবং খেয়াল করুন, আমি শুধু যাচ্ছি জিনিষ বাদে সরাতে. 211 00:08:39,940 --> 00:08:43,090 তাই আগে পরে, আগে, পরে. 212 00:08:43,090 --> 00:08:46,180 আমি অন্যান্য আকর্ষণীয় কিছুই করছি শুধু তাই কিছু ছড়িয়ে চেয়ে 213 00:08:46,180 --> 00:08:50,380 যে নোটিশ আট প্রতিটি সেট বিট এখন চার বিট দুই সেট হয়. 214 00:08:50,380 --> 00:08:54,920 এই হেক্সাডেসিমেল কারণ দরকারী বিশেষ কেতাদুরস্ত 215 00:08:54,920 --> 00:09:00,930 কারণ প্রতিটি হেক্সাডেসিমেল ডাক 0 মাধ্যমে এফ, বা আরো নির্দিষ্টভাবে 0 মাধ্যমে 15, 216 00:09:00,930 --> 00:09:03,430 প্রতিনিধিত্ব করা যাবে ঠিক চার বিট সঙ্গে. 217 00:09:03,430 --> 00:09:07,960 অন্য কথায়, হেক্সাডেসিমেল আপনি যদি এটা শুধু 0000 এর, একটি 0 প্রতিনিধিত্ব করতে চান, 218 00:09:07,960 --> 00:09:08,780 চার শূন্য. 219 00:09:08,780 --> 00:09:13,997 এবং আপনি 15 প্রতিনিধিত্ব করতে চান, এটা চার বিট, যা 1111 এর. 220 00:09:13,997 --> 00:09:16,080 আর আপনি গণিত করতে হলে, এই বেশী জায়গা হয়, 221 00:09:16,080 --> 00:09:18,210 এই, 16s জায়গা যে তোমাদেরকে দিতে যাচ্ছে 222 00:09:18,210 --> 00:09:19,960 বরং যে যাচ্ছে দুঃখিত চাচ্ছি, বাইনারি, 223 00:09:19,960 --> 00:09:23,660 যে 15 আপনি দিতে যাচ্ছে, বেশী জায়গা, দুই দুই জায়গায়, চার ও এইট জায়গায়. 224 00:09:23,660 --> 00:09:26,821 তাই আমাকে যে উত্থাপন করা যাক Glosbe উপর চার বিট সেট 225 00:09:26,821 --> 00:09:28,070 আমরা চ কল চলুন কি. 226 00:09:28,070 --> 00:09:30,110 এটা সবচেয়ে বড় সংখ্যা আপনি চার বিট সঙ্গে উপস্থাপন করতে পারেন. 227 00:09:30,110 --> 00:09:33,300 আর ইতিমধ্যে আমরা হেক্সাডেসিমাল থেকে জানি, F হেক্সাডেসিমেল বৃহত্তম ডাক হয়. 228 00:09:33,300 --> 00:09:36,020 আমরা, সেখানে অন্য F পেয়েছেন দুই ওইখানে আরো. 229 00:09:36,020 --> 00:09:38,980 এবং এখন জন্য, শুধু বিশ্বাসের উপর নিতে আমি গণিত সঠিক কাজ করেছেন যে 230 00:09:38,980 --> 00:09:41,890 এবং যে বাম অর্ধেক যারা বিট, 1101 এর, 231 00:09:41,890 --> 00:09:43,980 হেক্সাডেসিমেল D হিসাবে একই জিনিস. 232 00:09:43,980 --> 00:09:46,490 এবং ডান হাত, 1000, মাত্র 8 হয়. 233 00:09:46,490 --> 00:09:48,140 >> এবং সহজ যে কেউ এর সঠিক, দেখতে? 234 00:09:48,140 --> 00:09:51,670 8 প্রতিনিধিত্ব অধিকার যে এইট জায়গায় নীচে. 235 00:09:51,670 --> 00:09:56,040 সুতরাং আমরা এইট কলামে এক আছে এবং হামাগুড়ি দিয়া, দুই দুই বা বেশী কিছুই. 236 00:09:56,040 --> 00:09:59,830 তাই এখন আরো সাধারনত, মানুষের ঝোঁক এই মত হেক্সাডেসিমেল সংখ্যা লিখতে, 237 00:09:59,830 --> 00:10:03,000 আপনি শুধু তাদের একসঙ্গে ঝুপ্ এবং তারপর আপনি 0x সঙ্গে তাদের উপসর্গ. 238 00:10:03,000 --> 00:10:05,920 এটা ছাড়া অন্য কিছুই মানে একটি human-- একটি চাক্ষুষ খেই 239 00:10:05,920 --> 00:10:10,350 এখানে একটি হেক্সাডেসিমাল value-- কারণ আসে এটা অন্যথায় সুস্পষ্ট নাও হতে পারে. 240 00:10:10,350 --> 00:10:13,629 >> যা আছে, তা শেষ পর্যন্ত, বলতে হয় zeros এবং বেশী প্যাটার্ন, 241 00:10:13,629 --> 00:10:16,170 বা হেক্সাডেসিমেল প্যাটার্ন সংখ্যা equivalently আপনি আছেন যে 242 00:10:16,170 --> 00:10:18,990 খুঁজছেন শুরু করতে যাচ্ছে সমস্যা সেট 4 আপাততঃ হয় 243 00:10:18,990 --> 00:10:22,120 এবং সমস্যা সেট 4 বৈশিষ্ট পায়চারি করা হবে আরো detail-- এই মাধ্যমে আপনি 244 00:10:22,120 --> 00:10:25,344 কিন্তু গোপনীয় সাজানোর হিসাবে বুঝতে পারছি এই প্রথম নজরে তাকান পারে 245 00:10:25,344 --> 00:10:27,010 আপনি এই অনেক দেখা শুরু করতে যাচ্ছেন. 246 00:10:27,010 --> 00:10:30,320 এবং সত্য, এমনকি GDB মধ্যে, ডিবাগার আমরা সোমবার চালু 247 00:10:30,320 --> 00:10:35,440 এবং ড্যান pset 3 এ, যাচ্ছে প্রবর্তন প্রায়ই আপনি হেক্সাডেসিমেল মান প্রদর্শন 248 00:10:35,440 --> 00:10:39,910 শুধু তারা আরো হতে থাকে, কারণ দশমিক বাইনারি বা বেশী প্রচলিত 249 00:10:39,910 --> 00:10:41,157 কম্পিউটার জগতে. 250 00:10:41,157 --> 00:10:42,490 এখন এই প্রেক্ষাপটে করা যাক. 251 00:10:42,490 --> 00:10:48,040 অনেক আপনি এই মনে হতে পারে এর কি থেকে যা এসেছিল, এখানে ছবি? 252 00:10:48,040 --> 00:10:51,240 ভিস্তা, তাই এমনকি আগে এর চেয়ে বড় যে, উইন্ডোজ এক্সপি এই আত্মপ্রকাশ করেনি. 253 00:10:51,240 --> 00:10:52,620 সুতরাং এই একটি সুন্দর আড়াআড়ি হয়. 254 00:10:52,620 --> 00:10:55,940 এবং বাস্তবিকই, আপনার online-- প্রায় অকর্মা যদি আমি এটি একটি উইকিপিডিয়া নিবন্ধ মনে করি, 255 00:10:55,940 --> 00:11:00,110 যাহাতে কেউ খুব বিস্ময়করভাবে বাইরে গিয়ে পাওয়া বিশ্বের এই পাঁচ সেট আপ 256 00:11:00,110 --> 00:11:02,240 তার ক্যামেরায় অবিকল সঠিক place-- 257 00:11:02,240 --> 00:11:06,510 এবং এই আজ করার মত মনে হচ্ছে কিন্তু এটা ঠিক একই সেটিং. 258 00:11:06,510 --> 00:11:10,060 এই ছবিটি, যদিও, একটি ফাইল হয় বিন্যাস বলা বিটম্যাপ, বি-এম-পি. 259 00:11:10,060 --> 00:11:12,910 আর আমরা একটি সুপার নিতে যাচ্ছেন এর মানে হল যে কি এ ঝলকে. 260 00:11:12,910 --> 00:11:17,770 >> কিন্তু বিটম্যাপ ঠিক একটি ভিন্ন উপায় প্রতিনিধিত্বমূলক ইমেজগুলি পিক্সেল ব্যবহার 261 00:11:17,770 --> 00:11:19,580 0 সেঃ এবং 1s মধ্যে, শেষ পর্যন্ত. 262 00:11:19,580 --> 00:11:23,282 কিন্তু দ্রুত এক নজরে, এটা আছে আরো একটি আকর্ষণীয় স্বাক্ষর 263 00:11:23,282 --> 00:11:24,490 ফাইলের শুরুতে. 264 00:11:24,490 --> 00:11:26,670 এটা মাত্র তিনটি নয় বাইট, বরং আছে 265 00:11:26,670 --> 00:11:30,770 বাইটের নিদর্শন আভা যে অর্থ পূর্বাহ্নে আছে. 266 00:11:30,770 --> 00:11:34,490 উদাহরণস্বরূপ, কোথাও একটি বিটম্যাপ ইমেজ প্রথম কয়েক বাইট 267 00:11:34,490 --> 00:11:37,440 মাপ হতে যাচ্ছে ইমেজ, ইমেজ প্রস্থ, 268 00:11:37,440 --> 00:11:40,390 ছবিটি উচ্চতা, তাই দরকারী মেটাডাটা, যদি আপনি হবে. 269 00:11:40,390 --> 00:11:43,940 প্রয়োজনীয় তথ্য যে ফটোশপ অথবা কোন গ্রাফিক্স আপনি ব্যবহার করছেন প্রোগ্রাম 270 00:11:43,940 --> 00:11:45,180 আসলে যত্নশীল হতে পারে. 271 00:11:45,180 --> 00:11:47,170 >> এই প্রথম তাই বেশি সমস্যা 4 সেট, কিন্তু এই 272 00:11:47,170 --> 00:11:49,220 বলতে শুধুমাত্র হয় দিন শেষে 273 00:11:49,220 --> 00:11:52,390 আপনি ব্যবহার করে থাকেন সব ফাইল ফরম্যাটের years-- মাইক্রোসফট ওয়ার্ড ফাইল, 274 00:11:52,390 --> 00:11:55,820 নাম্বার ফাইল, এক্সেল ফাইল, ফাইল ফরম্যাটের কোনো সংখ্যা 275 00:11:55,820 --> 00:11:57,770 যে কিছু থাকতে পারে পরিচিত ফাইল এক্সটেনশন 276 00:11:57,770 --> 00:12:00,130 ফণা নীচে শুধু 0 সেঃ এবং 1s হয়. 277 00:12:00,130 --> 00:12:02,970 আর মানুষের সিদ্ধান্ত নিয়েছি নিয়মাবলী কি, 278 00:12:02,970 --> 00:12:08,340 কি 0 সেঃ এবং 1s নিদর্শন প্রতিনিধিত্ব একটি শব্দ, একটি এক্সেল ফাইল বনাম দায়ের 279 00:12:08,340 --> 00:12:10,322 অন্যান্য ফাইল ফরম্যাটের কোনো নম্বর বনাম. 280 00:12:10,322 --> 00:12:12,780 Pset 4 মধ্যে সুতরাং, আপনি একটি থাকবে সুযোগ যে সাথে খেলতে. 281 00:12:12,780 --> 00:12:14,405 >> কিন্তু এটা কি একটি struct আছে মানে. 282 00:12:14,405 --> 00:12:18,012 এই এখন আসলে একটা চমৎকার segue হয় শুধুমাত্র একটি দম্পতি আছে, যার মধ্যে সি, 283 00:12:18,012 --> 00:12:20,220 অতিরিক্ত বৈশিষ্ট্য যে আমরা এখনো লাগছিল না. 284 00:12:20,220 --> 00:12:24,230 এটি একটি খুবই ছোট ভাষা ও এক সি সম্পর্কে চমৎকার বৈশিষ্ট্য একটি struct হয়. 285 00:12:24,230 --> 00:12:27,300 উদাহরণস্বরূপ, আপনি যদি আসুন represent-- চেয়েছিলেন 286 00:12:27,300 --> 00:12:33,690 আপনি একটি পরিবর্তনশীল করতে চেয়েছিলেন বলে যে কিছু প্রোগ্রাম একটি ছাত্র প্রতিনিধিত্ব করে. 287 00:12:33,690 --> 00:12:37,330 হতে পারে আপনি একটি কোর্স ছিল লেখা রেজিস্ট্রেশন প্রোগ্রাম, বা কোর কেনাকাটা 288 00:12:37,330 --> 00:12:38,870 টুল, বা যে ভালো কিছু. 289 00:12:38,870 --> 00:12:42,922 সম্পর্কিত তথ্য টুকরা কি কি মনে আসে যে একজন ছাত্র কিভাবে? 290 00:12:42,922 --> 00:12:44,880 একজন ছাত্র ভালো লেগেছে মান সঙ্গে প্রতিনিধিত্ব? 291 00:12:44,880 --> 00:12:45,732 হ্যা? 292 00:12:45,732 --> 00:12:46,940 আপনি একজন ছাত্র হিসেবে একটি নাম আছে. 293 00:12:46,940 --> 00:12:48,900 একটি টিপিক্যাল ছাত্র আর কি আছে? 294 00:12:48,900 --> 00:12:49,320 >> শ্রোতা: [শ্রবণাতীত] 295 00:12:49,320 --> 00:12:50,200 >> ডেভিড জে MALAN: সুতরাং, দুঃখিত. 296 00:12:50,200 --> 00:12:50,660 >> শ্রোতা: বয়স. 297 00:12:50,660 --> 00:12:52,980 >> ডেভিড জে MALAN: একটি বয়স বা জন্মদিন equivalently, হাঁ. 298 00:12:52,980 --> 00:12:53,557 আর কি? 299 00:12:53,557 --> 00:12:54,390 শ্রোতা: আইডি নম্বর? 300 00:12:54,390 --> 00:12:57,460 ডেভিড জে MALAN: হয়তো তাই একটি আইডি নম্বর, একটি ফোন নম্বর, হয়তো একটি আস্তানায়, অথবা ঘর, 301 00:12:57,460 --> 00:12:58,670 কলেজ, বা যে ভালো কিছু বা. 302 00:12:58,670 --> 00:13:01,820 তথ্য টুকরা যে কোন সংখ্যার যে আপনি আপনার পরিচিতি তালিকায় থাকতে পারে 303 00:13:01,820 --> 00:13:03,890 একটি ছাত্র সংজ্ঞায়িত করতে পারি কি না. 304 00:13:03,890 --> 00:13:08,490 আমরা কোড এ, এই কাজ করতে চেয়েছিলেন, তাই যদি, আমরা এই মত সহজ কিছু করতে পারে. 305 00:13:08,490 --> 00:13:15,670 আমরা যাতে একটি প্রোগ্রাম থাকতে পারে আছে, এর কথা বলা int প্রধান (অকার্যকর) দিন. 306 00:13:15,670 --> 00:13:18,920 আর আমি প্রতিনিধিত্ব করতে চান আমি উদাহরণস্বরূপ, থাকতে পারে ছাত্র, 307 00:13:18,920 --> 00:13:24,330 যে ছাত্র জন্য নাম নামক একটি স্ট্রিং, যে ছাত্র জন্য আস্তানায় নামক একটি স্ট্রিং, 308 00:13:24,330 --> 00:13:26,900 হয়তো কোন int যে শিক্ষার্থীর জন্য আইডি বলা. 309 00:13:26,900 --> 00:13:30,840 আর আমি স্ট্রিং ব্যবহার করছি কারণ, আমি cs50.h. ফিরে যান এবং আপ করা প্রয়োজন 310 00:13:30,840 --> 00:13:33,300 হয়তো আমি stdio.h প্রয়োজন যাচ্ছি. 311 00:13:33,300 --> 00:13:38,190 তাই আমাকে যাও preemptively যারা কাজ করতে দিন এবং আমি এখন জন্য এই student.c কল যাচ্ছে 312 00:13:38,190 --> 00:13:40,080 এবং এই সংরক্ষণ. 313 00:13:40,080 --> 00:13:44,206 >> এবং এখন আমি কিছু করতে পারেন এই ভেরিয়েবল সঙ্গে. 314 00:13:44,206 --> 00:13:46,830 আর আমরা শুধু লিখতে যাচ্ছেন যে ছদ্ম কোড একটি মন্তব্য হিসাবে, 315 00:13:46,830 --> 00:13:48,829 এটা আকর্ষণীয় না, কারণ আমরা এখন কি. 316 00:13:48,829 --> 00:13:51,242 ঠিক আছে, তাই এই একটি প্রোগ্রাম যে একরকম একটি ছাত্র সঞ্চয়. 317 00:13:51,242 --> 00:13:53,450 আমি হলে যা করতে চাও আমি দুই ছাত্র এ সঞ্চয় করতে চান? 318 00:13:53,450 --> 00:13:55,991 তাই আমার প্রথম প্রবৃত্তি যাচ্ছে একটি মিনিট অপেক্ষা করুন, সব ঠিক হয়ে যাবে, 319 00:13:55,991 --> 00:14:01,920 আমি অন্য ছাত্র আছে, কেন আমি না শুধু স্ট্রিং নাম 2, স্ট্রিং আস্তানায় 2 না, 320 00:14:01,920 --> 00:14:04,190 কোন int id2. 321 00:14:04,190 --> 00:14:06,540 আর আমরা যখন চলে করেছেন এই রাস্তা সামনে উপুড় 322 00:14:06,540 --> 00:14:10,890 এবং মনে হয় কি আমাদের সমাধান কি ছিল একটি hackish কপি পেস্ট ধরনের হতে 323 00:14:10,890 --> 00:14:11,555 এখানে কাজ? 324 00:14:11,555 --> 00:14:12,346 শ্রোতা: একটি অ্যারে. 325 00:14:12,346 --> 00:14:13,830 ডেভিড জে MALAN: হ্যাঁ, আমরা একটি অ্যারের ব্যবহার করতে পারে. 326 00:14:13,830 --> 00:14:15,620 ঠিক এই খুব দ্রুত জবরজং. 327 00:14:15,620 --> 00:14:18,453 আপনি ইচ্ছামত এর বাছাই আছে এই ভেরিয়েবল সব নামকরণ শুরু. 328 00:14:18,453 --> 00:14:22,190 আর আপনি মানুষের, রাখা আছে যে ওকে NAME2 অনুরূপ ট্র্যাক 329 00:14:22,190 --> 00:14:25,060 dorm2 সঙ্গে id2 সঙ্গে অনুরূপ. 330 00:14:25,060 --> 00:14:26,200 এটা শুধু একটা জগাখিচুড়ি হয়ে. 331 00:14:26,200 --> 00:14:29,350 সুতরাং এটি একটি অনেক সহজ কয়েক সপ্তাহ আগে থেকে প্রত্যাহার, 332 00:14:29,350 --> 00:14:34,300 শুধু বলা স্ট্রিং নাম থাকার এবং হয়তো আমাদের যারা তিন দিতে. 333 00:14:34,300 --> 00:14:36,940 এবং তারপর হয়তো আমরা আছে স্ট্রিং ছাত্রাবাসে ও আছে 334 00:14:36,940 --> 00:14:41,900 যারা তিন, বা একটি ধ্রুবক সাথে, আইডির int এবং ঐ তিনটি আছে. 335 00:14:41,900 --> 00:14:45,250 কিন্তু এমনকি এখন এই মতানুযায়ী একজন সামান্য পঙ্কিল, ঠিক আছে. 336 00:14:45,250 --> 00:14:49,440 আমরা এখনো ছাত্র এবং যে বিষয়ে কথা বলছি আমি সত্যিই নিম্ন স্তরে বাস করছি 337 00:14:49,440 --> 00:14:50,470 বাস্তবায়ন বিবরণ. 338 00:14:50,470 --> 00:14:52,790 ছাত্র একটি নাম ও একটি আস্তানায় এবং আইডি. 339 00:14:52,790 --> 00:14:59,814 >> কেন শুধু একটি ভেরিয়েবল ডিক্লেয়ার করা যাবে না ছাত্র বলা হয় এবং এটি গুলি কল. 340 00:14:59,814 --> 00:15:02,230 আর আমি অন্য ছাত্র চান তাহলে, কেন আমি শুধু টি কল না. 341 00:15:02,230 --> 00:15:05,260 অথবা আমি আভা চান শিক্ষার্থীদের, কেন আমি ঠিক না 342 00:15:05,260 --> 00:15:09,740 আমি একটি পুরো ক্লাসের আছে বলে ছাত্র, এবং এটা তাদের তিনটি আছে. 343 00:15:09,740 --> 00:15:12,470 অন্য কথায়, কেন আমি আসতে পারব না বলা আমার নিজের ডাটা টাইপ, সঙ্গে আপ 344 00:15:12,470 --> 00:15:15,641 শিক্ষার্থীরা, ভিতরে যা হয় একটি নাম, একটি আইডি একটি dorm হয়, 345 00:15:15,641 --> 00:15:16,890 অন্যান্য ক্ষেত্র কোনো সংখ্যা. 346 00:15:16,890 --> 00:15:19,030 এবং এটা আপনাকে দেখা যাচ্ছে ঠিক তা করতে পারে. 347 00:15:19,030 --> 00:15:21,850 >> তাই সি struct নামক এই বৈশিষ্ট্য আছে. 348 00:15:21,850 --> 00:15:24,700 একটি ভাষা যে বৈশিষ্ট্য যে আমাদের ঠিক এই কাজ করতে পারবেন. 349 00:15:24,700 --> 00:15:28,370 আমি এগিয়ে যেতে চলেছি এবং structs.h খুলুন 350 00:15:28,370 --> 00:15:32,299 আমরা দেখতে যাচ্ছেন যেখানে একজন ছাত্র সংজ্ঞা অনুসরণ. 351 00:15:32,299 --> 00:15:35,215 এটি সক্রিয় আউট - এবং এই এক এমনকি এর একটি আইডি জড়িত এক এর চেয়ে সহজ 352 00:15:35,215 --> 00:15:36,080 এক মুহূর্ত আগে. 353 00:15:36,080 --> 00:15:39,120 আপনার সাথে আসা করতে চান তাহলে আপনার গৃহ্য ডাটা টাইপ, 354 00:15:39,120 --> 00:15:42,750 এবং int ছাড়াও, এবং গৃহস্থালি ও , যে অস্তিত্ব এবং এই সব অন্যদের ভাসা 355 00:15:42,750 --> 00:15:45,810 আপনি আক্ষরিক দ্বারা তা করতে পারেন typedef struct লেখা, 356 00:15:45,810 --> 00:15:47,880 তারপর কিছু কোঁকড়া ধনুর্বন্ধনী, যার ভিতরে আপনি 357 00:15:47,880 --> 00:15:51,460 আপনি করতে চান ভেরিয়েবল তালিকায় এই নতুন কাস্টম তথ্য সঙ্গে সংযুক্ত 358 00:15:51,460 --> 00:15:55,670 একটি নাম এবং একটি dorm মত টাইপ, এবং তারপর কোঁকড়া ধনুর্বন্ধনী পরে 359 00:15:55,670 --> 00:15:57,860 আপনি নতুন ডাটা টাইপ করার জন্য একটি নাম দিতে. 360 00:15:57,860 --> 00:15:59,220 সুতরাং, উদাহরণস্বরূপ, ছাত্র. 361 00:15:59,220 --> 00:16:03,247 >> আর কি এখন এই সম্পর্কে চমৎকার হয় আমরা সংশ্লিষ্ট কোড তাকান, 362 00:16:03,247 --> 00:16:05,080 প্রথম কনভেনশন সব, এই করা হয় 363 00:16:05,080 --> 00:16:08,230 একটি ফাইল নামক কিছু ডট জ মধ্যে, আমরা না আছে, যা একটি হেডার ফাইল, 364 00:16:08,230 --> 00:16:09,780 খুব বেশী নিজেদেরকে ব্যবহার শুরু. 365 00:16:09,780 --> 00:16:12,120 কিন্তু আমরা শুরু করতে যাচ্ছেন এখন বেশ বিট ব্যবহার. 366 00:16:12,120 --> 00:16:18,650 আর আমরা এই কাজটা করা যায় কি, পরিণামে, এই কোড কয়েক লাইনে 367 00:16:18,650 --> 00:16:22,130 ঠিক যে ঘোষণা করা হয় ডাটা টাইপ, একজন ছাত্র. 368 00:16:22,130 --> 00:16:23,230 আর এখন এর ব্যবহার করা উচিত. 369 00:16:23,230 --> 00:16:27,274 >> আমি এখন ঢোকা যাচ্ছে না একটি ফাইল structs1.c বলা. 370 00:16:27,274 --> 00:16:29,440 আর এর একটি কটাক্ষপাত করা যাক এখানে কয়েকটি বৈশিষ্ট্য. 371 00:16:29,440 --> 00:16:32,250 তাই এখানে কোন উপাদান বেশিরভাগ পরিচিত, এবং আমরা করব 372 00:16:32,250 --> 00:16:35,040 কি নয় ফিরে আসা মাত্র কয়েক মিনিটের মধ্যে পরিচিত. 373 00:16:35,040 --> 00:16:39,880 অবশ্যই এটা আমার নিজের সহ হয় পাশাপাশি নতুন যা হেডার ফাইল, 374 00:16:39,880 --> 00:16:42,580 pset 3 যেখানে ছাড়া, রিকল, আমরা helpers.h আছে. 375 00:16:42,580 --> 00:16:45,150 সুতরাং আপনি #include helpers.h প্রত্যাহার করা হতে পারে. 376 00:16:45,150 --> 00:16:49,381 >> কেন যদিও আমি কোট ব্যবহার করছি পরিবর্তে কৌণিক বন্ধনী? 377 00:16:49,381 --> 00:16:50,630 যখন আমি তাদের মধ্যে নির্বাচন করতে হয়? 378 00:16:50,630 --> 00:16:52,310 প্রায় সবসময় আমি মনে কৌণিক বন্ধনী ব্যবহার করতে. 379 00:16:52,310 --> 00:16:55,040 এবং তারপর, একটি সব হঠাৎ করে লাইন ছয় আমি ডবল কোট ব্যবহার করছি. 380 00:16:55,040 --> 00:16:55,860 কেন যে হতে পারে? 381 00:16:55,860 --> 00:16:56,700 হ্যা? 382 00:16:56,700 --> 00:16:57,725 >> শ্রোতা: [শ্রবণাতীত] 383 00:16:57,725 --> 00:16:59,350 ডেভিড জে MALAN: কি যে, একটি প্রকৃত কী? 384 00:16:59,350 --> 00:17:00,559 শ্রোতা: যে আপনার আইডিই এর. 385 00:17:00,559 --> 00:17:02,475 ডেভিড জে MALAN: হ্যাঁ, যে আমার প্রকৃত আইডিই এর. 386 00:17:02,475 --> 00:17:05,690 আর, কারণ এর আইডিই উপর বাস করা যাক যে শুধু আমি ব্যবহার করছি যে একটি হাতিয়ার. 387 00:17:05,690 --> 00:17:08,119 যে আমার বর্তমান আছে ডিরেক্টরি, বিশেষভাবে. 388 00:17:08,119 --> 00:17:11,647 সুতরাং structs.h আমার নিজের ফাইল IDE তে ইনস্টল করা, 389 00:17:11,647 --> 00:17:14,480 অপারেটিং সিস্টেম নিজেই, বরং এটা আমার বর্তমান ডিরেক্টরির মধ্যে. 390 00:17:14,480 --> 00:17:16,910 তাই প্রচলিত রীতি অনুযায়ী আপনি চান তাহলে হয় আপনার নিজস্ব হেডার ফাইল অন্তর্ভুক্ত করতে, 391 00:17:16,910 --> 00:17:18,200 আপনি শুধু ডাবল কোট ব্যবহার. 392 00:17:18,200 --> 00:17:23,290 >> আমরা এই জিনিস দোকানদারের কি দোষ লাইন 8, সাধারণভাবে বলতে? 393 00:17:23,290 --> 00:17:25,200 এই কি? 394 00:17:25,200 --> 00:17:28,220 # define কিছু. 395 00:17:28,220 --> 00:17:31,040 এই অধিকার, ধ্রুবক প্রতিনিধিত্ব? 396 00:17:31,040 --> 00:17:33,140 আপনি একটি আছে চান আপনার প্রোগ্রামে মূল্য 397 00:17:33,140 --> 00:17:35,110 আপনি একটি পুরো ব্যবহার করে সময়ের গুচ্ছ, এটা 398 00:17:35,110 --> 00:17:39,330 , এটি বিবেচনার কনভেনশন ভাল হ্যাশ চিহ্ন ব্যবহার করে, এটা ঘোষণা 399 00:17:39,330 --> 00:17:43,340 সব কনভেনশন দ্বারা, তারপর, সংজ্ঞায়িত এটা না যদিও word-- বড়হাতের 400 00:17:43,340 --> 00:17:45,320 কঠোরভাবে প্রয়োজনীয়, কিন্তু এটা মানুষের রীতিনীতি 401 00:17:45,320 --> 00:17:47,210 ধ্রুবক পুঁজিতে তারা আউট তিড়িং লাফ যাতে 402 00:17:47,210 --> 00:17:50,380 আপনি স্থান visually-- এ ও তারপর আপনি চান মান হতে 403 00:17:50,380 --> 00:17:52,250 যে ধ্রুব এর নাম সমতূল্য. 404 00:17:52,250 --> 00:17:56,110 কোন সেমিকোলন, কিন্তু কেবল আপনি সেখানে যে প্যাটার্ন অনুসরণ. 405 00:17:56,110 --> 00:17:57,770 >> তাই কি আমি এই প্রকৃত কোড করছি. 406 00:17:57,770 --> 00:18:00,660 সুতরাং আসুন কটাক্ষপাত করা যাক এখানে মূল প্রোগ্রাম. 407 00:18:00,660 --> 00:18:04,080 লাইন 12 আমি কারণ structs.h অন্তর্ভুক্ত আছে, 408 00:18:04,080 --> 00:18:06,492 আমি এখন এ magically আছে আমার নিষ্পত্তি একটি নতুন ডাটা টাইপ. 409 00:18:06,492 --> 00:18:09,200 আমি শুধু, int- এ অ্যাক্সেস না থাকে এবং গৃহস্থালি, এবং ভাসা, এবং স্ট্রিং, 410 00:18:09,200 --> 00:18:10,060 এবং নীল এবং অন্যদের. 411 00:18:10,060 --> 00:18:12,470 আমি এখন এক্সেস আছে একজন ছাত্র ডাটা টাইপ. 412 00:18:12,470 --> 00:18:17,740 লাইন 12, আমি দুই মিশ্রন করছি তাই , এক একটি নিজস্ব ডাটা টাইপ এবং দুটি ideas-- 413 00:18:17,740 --> 00:18:18,940 একটি অ্যারে ব্যবহার করে. 414 00:18:18,940 --> 00:18:21,700 আর তাই এই প্রোগ্রাম যদি এ আমি আসলে সমর্থন করতে চান 415 00:18:21,700 --> 00:18:24,320 তিনটি ভিন্ন ছাত্র আমার প্রোগ্রাম, আমি 416 00:18:24,320 --> 00:18:30,480 আমার একটি পরিবর্তনশীল দিতে বলতে কেবল পারেন যা প্রতিটি বলা ছাত্র, 417 00:18:30,480 --> 00:18:32,970 টাইপ শিক্ষার্থীর যা আমার নিজস্ব ডাটা টাইপ হল. 418 00:18:32,970 --> 00:18:35,890 আর, বিশেষভাবে, আমাকে দিতে আমার অ্যারের মধ্যে যারা তিনটি. 419 00:18:35,890 --> 00:18:37,750 >> তাই এখন আমরা এই প্রোগ্রাম কি করবেন? 420 00:18:37,750 --> 00:18:40,670 এখানে শুধু একটি লুপ iterating জন্য যে কারণ, 3 থেকে 0 421 00:18:40,670 --> 00:18:42,110 শিক্ষার্থীদের মান কি. 422 00:18:42,110 --> 00:18:44,420 আমি শুধু ব্যবহারকারীকে করছি আমার ছাত্রের নাম দিতে. 423 00:18:44,420 --> 00:18:48,090 এবং তারপর লাইন 17 সালে আমরা একটি বেশিরভাগই পরিচিত লাইন আছে. 424 00:18:48,090 --> 00:18:50,370 আমরা আমাদের পুরনো বন্ধু আছে ডানদিকে GetString. 425 00:18:50,370 --> 00:18:52,345 সিনট্যাক্স এবং তা টুকরা দৃশ্যত নতুন 426 00:18:52,345 --> 00:18:55,130 আপনি আগে সি প্রোগ্রাম করেছি যদি, এবং structs ব্যবহার করেন নি? 427 00:18:55,130 --> 00:18:55,510 হ্যা? 428 00:18:55,510 --> 00:18:56,417 >> শ্রোতা: .নাম. 429 00:18:56,417 --> 00:18:57,500 ডেভিড জে MALAN: .নাম. 430 00:18:57,500 --> 00:19:01,220 কিন্তু এই একটি লীপ অত্যধিক নয় এখন ছাত্র আমি বন্ধনী কারণ 431 00:19:01,220 --> 00:19:02,590 আপনি আমি-তম ছাত্র দেয়. 432 00:19:02,590 --> 00:19:04,730 আর আপনি আকর্ষণীয় করতে চান যে কাঠামো ভেতরে, 433 00:19:04,730 --> 00:19:09,490 আপনি শুধুমাত্র একটি একক সময়ের ব্যবহার এবং তারপর ভিতরে পরিবর্তনশীল এর নাম, 434 00:19:09,490 --> 00:19:11,900 অথবা যে ভিতরে সম্পত্তি আপনি অ্যাক্সেস পেতে চান. 435 00:19:11,900 --> 00:19:14,816 একইভাবে, তারপর আমি তারপর প্রম্পট যদি ব্যবহারকারী, আমার ছাত্র এর আস্তানায় দিতে, 436 00:19:14,816 --> 00:19:18,390 আপনি একইভাবে যে সংরক্ষণ করতে পারেন ভিতরে আস্তানায় পরিবর্তনশীল স্ট্রিং 437 00:19:18,390 --> 00:19:19,940 যে ছাত্র কাঠামো. 438 00:19:19,940 --> 00:19:21,410 >> এবং এখন কিছু একটু অভিনব পেতে. 439 00:19:21,410 --> 00:19:24,420 আর এই দেখুন যাচ্ছে সম্ভবত অনেক সময়ে বেশ তাড়াতাড়ি. 440 00:19:24,420 --> 00:19:27,970 কিন্তু আপনি pset মধ্যে এই পর্যন্ত আরো দেখতে পাবেন 4, তাই এটি এখন এ মাত্র এক নজরে যাক. 441 00:19:27,970 --> 00:19:33,364 এটা লাইন 23 সালে মাধ্যমে দেখা যাচ্ছে যে 38, আপনি আমি সম্ভবত করছি কি মনে করেন? 442 00:19:33,364 --> 00:19:35,530 আমি মন্তব্য মুছে থাকেন আজ কিন্তু সংস্করণ জন্য 443 00:19:35,530 --> 00:19:38,660 অনলাইন কোডের রেফারেন্স সব মন্তব্যগুলি. 444 00:19:38,660 --> 00:19:40,171 আমি কাজ হবে বলে কি মনে কর? 445 00:19:40,171 --> 00:19:42,530 >> শ্রোতা: সব দিয়ে ফাইল সংরক্ষণ ব্যবহারকারী প্রবেশ করে তথ্য. 446 00:19:42,530 --> 00:19:44,530 >> ডেভিড জে MALAN: হ্যাঁ, ঠিক, এই একটি নতুন উপায় 447 00:19:44,530 --> 00:19:46,370 আমরা দুই দেখছি যে, সি এর আরেকটি বৈশিষ্ট্য, 448 00:19:46,370 --> 00:19:48,700 যদ্দ্বারা আমি আমার নিজস্ব ফাইল তৈরি করতে পারেন. 449 00:19:48,700 --> 00:19:51,580 সেটা অনেক দূরে, প্রায় প্রতিটি প্রোগ্রাম লিখিত করেছি আপনি দেশহীন. 450 00:19:51,580 --> 00:19:53,334 যত তাড়াতাড়ি এটা চলমান কাজ হিসাবে, যে এটি. 451 00:19:53,334 --> 00:19:55,000 কোন মেমরি বা এটা নিয়ে টনক আছে. 452 00:19:55,000 --> 00:19:56,110 সংরক্ষিত কোন ফাইল নেই. 453 00:19:56,110 --> 00:19:58,120 কিন্তু আপনি কি করতে চান তাহলে যে ইনপুট সংরক্ষণ 454 00:19:58,120 --> 00:20:02,100 একটি খেলা বা প্রোগ্রাম মত, ঘটেছে এই মত, এটা আমরা তা করতে পারি দেখা যাচ্ছে. 455 00:20:02,100 --> 00:20:04,360 এবং যদি আপনি এই আরো দেখতে পাবেন pset 4 এবং অনুচ্ছেদ. 456 00:20:04,360 --> 00:20:08,661 কিন্তু এই লাইন 23 মূলত students.csv নামক একটি ফাইল তৈরি করে. 457 00:20:08,661 --> 00:20:10,160 আপনি আগে এই দেখা হয়ে থাকতে পারে. 458 00:20:10,160 --> 00:20:14,250 আপনি আগে সি এস চর্চিত ছিল না, এমনকি যদি, CSV- তে কমা দ্বারা পৃথক ভেরিয়েবল হয়. 459 00:20:14,250 --> 00:20:19,000 এটা একটা খুব দরিদ্র মানুষ এর মত একটি এক্সেল ফাইল এর সংস্করণ, 460 00:20:19,000 --> 00:20:22,270 যা এটি খোলা হতে পারে এর মানে হল যে Excel এ এবং অ্যাপল নাম্বার, 461 00:20:22,270 --> 00:20:23,830 এবং এটা সারি এবং কলাম আছে. 462 00:20:23,830 --> 00:20:26,485 কিন্তু এটা একটি মালিকানাধীন নয় মাইক্রোসফট বা আপেল এর মত ফরম্যাটে. 463 00:20:26,485 --> 00:20:29,840 এটি পৃথক শুধু কমা এর আমরা একটি মুহূর্ত দেখতে পাবেন যে মান. 464 00:20:29,840 --> 00:20:31,010 >> আর মাত্র একটি অনুমান নিতে. 465 00:20:31,010 --> 00:20:33,480 খুব লাইনে 23, ইন শেষ, আমার দ্বিতীয় যুক্তি 466 00:20:33,480 --> 00:20:37,700 নামক এই নতুন ফাংশন F ফাইল খোলা জন্য খোলা W হয়. 467 00:20:37,700 --> 00:20:39,430 W কি বোঝান পারে? 468 00:20:39,430 --> 00:20:40,022 হ্যা? 469 00:20:40,022 --> 00:20:41,260 >> শ্রোতা: এটা আপনার ফাইলটি লেখার দেয়? 470 00:20:41,260 --> 00:20:42,630 >> ডেভিড জে MALAN: এটা দেয় আপনার ফাইলটি লেখার. 471 00:20:42,630 --> 00:20:44,810 তাই ভিন্নতা একটি দম্পতি আছে যে আমরা এখানে চলা যাবে. 472 00:20:44,810 --> 00:20:47,184 কিন্তু আপনি শুধু পড়তে চান তাহলে ফাইল, যে এটি তাকান হয় 473 00:20:47,184 --> 00:20:50,010 এবং, মেমরিতে আপনি এটা পড়তে শুধু উদ্ধৃতি উদ্ধতি "R" ব্যবহার. 474 00:20:50,010 --> 00:20:53,110 আপনি লিখতে চান ফাইল, আপনি "W" উদ্ধৃতি উদ্ধতি ব্যবহার. 475 00:20:53,110 --> 00:20:55,190 সেখানে লিখবেন এবং অন্যান্য জিনিষ একটি দম্পতি 476 00:20:55,190 --> 00:20:57,356 আপনি বিদ্যমান ফাইল পরিবর্তন করতে চান তাহলে. 477 00:20:57,356 --> 00:21:00,480 এখন আমরা এই এইজন্য রাখতে যাচ্ছেন 24 রেখায় জিনিস, তারপর আমরা ফিরে আসবো. 478 00:21:00,480 --> 00:21:02,640 শূন্য, এটি সক্রিয় আউট, হয় একটি বিশেষ মূল্য যে 479 00:21:02,640 --> 00:21:06,070 নির্দিষ্ট ফাংশন দ্বারা ফিরে যাবে কিছু wrong-- গেছে তাহলে 480 00:21:06,070 --> 00:21:08,490 ফাইল উপস্থিত না থাকলে, আপনি মেমরি রান আউট করেছি, তাহলে 481 00:21:08,490 --> 00:21:09,620 অন্যান্য ত্রুটি বা একটি গুচ্ছ. 482 00:21:09,620 --> 00:21:13,470 কিন্তু এখন জন্য, শুধু এই যে অনুমান করা যাক শুধু প্রচলিত ত্রুটি পরীক্ষা হয়. 483 00:21:13,470 --> 00:21:17,090 এখানে লাইন 26 সালে, আমি iterating করছি 0 থেকে আমার সব ছাত্র ওভার 3. 484 00:21:17,090 --> 00:21:20,470 আর এই ধরণের ধরনের একটি নতুন ফাংশন, fprintf, 485 00:21:20,470 --> 00:21:21,460 কিন্তু শুধু একটা আন্দাজ নিতে. 486 00:21:21,460 --> 00:21:24,370 Printf, শুধু প্রিন্ট হয় তাহলে একটি ফরম্যাট স্ট্রিং, 487 00:21:24,370 --> 00:21:26,507 fprintf সম্ভবত এর অর্থ কী? 488 00:21:26,507 --> 00:21:27,590 শ্রোতা: একটি ফাইল মুদ্রণ করুন. 489 00:21:27,590 --> 00:21:29,290 ডেভিড জে MALAN: মুদ্রন একটি একটি ফাইল ফরম্যাট স্ট্রিং. 490 00:21:29,290 --> 00:21:31,180 যে অতিরিক্ত কি চ মানে ফাইল. 491 00:21:31,180 --> 00:21:36,420 আর নতুন প্রথম যুক্তি হতে হয়েছে আপনার ফাইল প্রতিনিধিত্ব করে পরিবর্তনশীল. 492 00:21:36,420 --> 00:21:38,866 তারপর আমরা শুধু একটি বিন্যাসে আছে শুধু ভালো printf স্ট্রিং. 493 00:21:38,866 --> 00:21:40,740 এবং এমনকি এই যদিও সিনট্যাক্স এই মাত্র, নতুন 494 00:21:40,740 --> 00:21:44,610 ছাত্র এর নামে চলা মানে, ছাত্র আস্তানায় প্লাগ ইন, এবং তারপর 495 00:21:44,610 --> 00:21:47,160 fclose সাথে, ফাইল বন্ধ. 496 00:21:47,160 --> 00:21:49,730 এবং তারপর এই নতুন lastly-- এবং আমরা এই ফিরে আসবো 497 00:21:49,730 --> 00:21:53,240 আমি freeing করছি দীর্ঘ আগে কারণে ছাত্র 498 00:21:53,240 --> 00:21:54,860 যে আছে উপরে আপ ঘটেছে. 499 00:21:54,860 --> 00:21:56,820 কিন্তু আমরা ফিরে আসবো যে দীর্ঘ আগে 500 00:21:56,820 --> 00:21:59,820 যে কারণে হয় GetString কিভাবে এর আসলে ফণা নীচে কাজ. 501 00:21:59,820 --> 00:22:01,280 >> সুতরাং আসুন এখানে একটি দ্রুত কটাক্ষপাত করা যাক. 502 00:22:01,280 --> 00:22:04,380 আমি আমার ডিরেক্টরির মধ্যে ls ব্যবহার করে, আমি না যে, নোটিশ 503 00:22:04,380 --> 00:22:09,360 , students.csv নামক একটি ফাইল আছে ঠিক আছে না, তার কোন অস্তিত্ব নেই. 504 00:22:09,360 --> 00:22:14,965 আমি এখন এই প্রোগ্রাম কম্পাইল যদি তাই, , structs -1 করতে. / Structs -1, 505 00:22:14,965 --> 00:22:20,570 এবং আমি এগিয়ে যান এবং টাইপ করতে যাচ্ছি ইয়েল এ বার্কলে যারা বসবাস Andi,. 506 00:22:20,570 --> 00:22:26,350 আমরা রব আছে চলুন যারা এই দিন Thayer বসবাস. 507 00:22:26,350 --> 00:22:33,760 আর কোথায় নিয়ে আসা যাক হয়, আমি মনে করি, মারিয়া, মাথের মধ্যে 508 00:22:33,760 --> 00:22:35,100 যদি আমি সঠিকভাবে স্মরণ. 509 00:22:35,100 --> 00:22:36,460 >> তাই কিছুই ঘটবে বলে মনে হয়. 510 00:22:36,460 --> 00:22:40,680 কিন্তু আমি এখন ls ব্যবহার করে, students.csv নেই. 511 00:22:40,680 --> 00:22:43,080 আসুন এগিয়ে এবং খোলা students.csv যাই. 512 00:22:43,080 --> 00:22:46,050 এই আবার একটি খুব হয় লাইটওয়েট ফাইল ফরম্যাট. 513 00:22:46,050 --> 00:22:49,570 কিন্তু আমি কেবল একটি কনভেনশন গৃহীত করেছি যে আমি এখানে দুটি সারি এবং কলাম আছে. 514 00:22:49,570 --> 00:22:52,020 প্রথম কলাম মানুষ প্রথম নাম. 515 00:22:52,020 --> 00:22:55,740 দ্বিতীয় কলামে ছাত্রের হয় আস্তানায়, কলেজ অথবা, অথবা ঘর, বা যে কোন বস্তু. 516 00:22:55,740 --> 00:22:57,900 এবং এখন আমি এই সংরক্ষণ করেছি স্থায়ীভাবে একটি ফাইলে. 517 00:22:57,900 --> 00:22:59,280 >> সুতরাং এটা যে সব আকর্ষণীয় নয়. 518 00:22:59,280 --> 00:23:02,980 কিন্তু শুধু এই একটি পদবিন্যাস পাথর এখন তথ্য জিদ করতে সক্ষম হচ্ছে 519 00:23:02,980 --> 00:23:04,040 স্থায়ীভাবে. 520 00:23:04,040 --> 00:23:08,340 তাই এখন কি আমরা যত বেশি পারেন এর দেখতে দিন এই এবং অন্যান্য বৈশিষ্ট্য না. 521 00:23:08,340 --> 00:23:10,729 কিন্তু প্রথম, কোন প্রশ্ন? 522 00:23:10,729 --> 00:23:12,145 যে ছিল অনেক, এবং যে দ্রুত ছিল. 523 00:23:12,145 --> 00:23:16,131 কিন্তু আপনি অনেক কিছু দেখতে পাবেন pset 4 মধ্যে আরো, পাশাপাশি. 524 00:23:16,131 --> 00:23:16,630 হ্যা? 525 00:23:16,630 --> 00:23:19,360 >> শ্রোতা: একটি উপায় আছে যে ফাইল নাম যোগ করার সময় অবিরত? 526 00:23:19,360 --> 00:23:19,880 >> ডেভিড জে MALAN: গুড প্রশ্ন. 527 00:23:19,880 --> 00:23:21,800 অবিরত করার জন্য একটি উপায় আছে কি যে ফাইল নাম যোগ করার সময়? 528 00:23:21,800 --> 00:23:22,340 হ্যাঁ. 529 00:23:22,340 --> 00:23:24,630 এবং, আসলে, আপনি শেষ হলে আপ, ফাইল পুনরায় খোলার 530 00:23:24,630 --> 00:23:26,780 আপনি উক্তি ব্যবহার করবে উদ্ধতি "একটি" পরিশেষে জন্য, 531 00:23:26,780 --> 00:23:31,090 যা শুধু একটি নতুন লাইন যোগ হবে, একটি নতুন লাইন আবার এবং আবার, ঠিক. 532 00:23:31,090 --> 00:23:32,010 ভালো প্রশ্ন. 533 00:23:32,010 --> 00:23:32,950 অন্য প্রশ্ন? 534 00:23:32,950 --> 00:23:33,450 হ্যা? 535 00:23:33,450 --> 00:23:35,580 শ্রোতা: আপনি দৌড়ে তাহলে প্রোগ্রাম আবার ডান এখন, 536 00:23:35,580 --> 00:23:38,000 এটা করার নাম দিয়ে যাবেন ফাইল বা যদি একটি নতুন ফাইল খুলুন হবে? 537 00:23:38,000 --> 00:23:38,740 >> ডেভিড জে MALAN: আহ, ভাল প্রশ্ন. 538 00:23:38,740 --> 00:23:41,448 আপনি আবার ডান প্রোগ্রাম দৌড়ে তাহলে এখন, হয়তো নতুন নাম টাইপ, 539 00:23:41,448 --> 00:23:44,820 এটা ফাইল যোগ করা হবে বা ফাইলটি প্রতিস্থাপন? 540 00:23:44,820 --> 00:23:47,420 আধুনিক, আমি নই, কারণ পরিশেষে যোগ মোড ব্যবহার করা. 541 00:23:47,420 --> 00:23:49,930 আর আমি শুধু অন্ধভাবে নই, কারণ লেখার জন্য ফাইল খোলার, 542 00:23:49,930 --> 00:23:51,310 এটা শুধু ফাইলটি প্রতিস্থাপন করতে যাচ্ছে. 543 00:23:51,310 --> 00:23:54,570 তাই আমি তোমাদের লিখবেন যা করতে হবে, আমি আসলে একটি দীর্ঘ মেয়াদী করতে চান তাহলে 544 00:23:54,570 --> 00:23:55,350 ডাটাবেস. 545 00:23:55,350 --> 00:23:58,220 >> এখন CSV এমনকি, অকপটে, দরকারী জন্য চাই আপনি হন writing-- 546 00:23:58,220 --> 00:24:00,100 এবং আমরা শেষ পর্যন্ত এই দেখতে পাবেন পরে যখন সেমিস্টারে 547 00:24:00,100 --> 00:24:01,455 আমরা অন্য কাজে CSVs ব্যবহার. 548 00:24:01,455 --> 00:24:04,920 আপনি মানুষ সব সঞ্চয় করতে চান তাহলে যারা কিছু ইভেন্টের জন্য নিবন্ধিত হয়েছে 549 00:24:04,920 --> 00:24:07,420 অথবা আপনার ছাত্র জন্য সাইন আপ গ্রুপ, বা যে ভালো কিছু, 550 00:24:07,420 --> 00:24:10,330 এই ধরনের তথ্য সংরক্ষণকারী বিন্যাসের সুপার সুবিধাজনক. 551 00:24:10,330 --> 00:24:12,580 আক্ষরিক কারণ, আমি যদি এই ফাইলটি ডাউনলোড করতে হয়. 552 00:24:12,580 --> 00:24:14,540 আমি double-- পারে এবং এর আসলে এই চেষ্টা করা যাক 553 00:24:14,540 --> 00:24:16,720 আমি এখানে এক্সেল বা নাম্বার আছে. 554 00:24:16,720 --> 00:24:19,130 >> আমি ডান-ক্লিক করুন যাচ্ছি অথবা আমার ফাইল নিয়ন্ত্রণ-এ ক্লিক করুন. 555 00:24:19,130 --> 00:24:20,020 ওহো. 556 00:24:20,020 --> 00:24:21,830 ডান ক্লিক করুন অথবা আমার ফাইল নিয়ন্ত্রণ-এ ক্লিক করুন. 557 00:24:21,830 --> 00:24:24,960 চলো, আমার মাউস সহযোগী নয়. 558 00:24:24,960 --> 00:24:32,694 আমি যাচ্ছি Download-- তাই এখানে সব ফাইল ডাউনলোড 559 00:24:32,694 --> 00:24:33,860 ঠিক তাই আমি এই এক দখল করতে. 560 00:24:33,860 --> 00:24:37,850 আর এই কাজ করে তাহলে দেখা যাক students.csv-- প্রথমবার 561 00:24:37,850 --> 00:24:39,310 আমি সক্রিয় থাকেন. 562 00:24:39,310 --> 00:24:41,360 এখন তারা আমার পরিচিতি দেখতে চান. 563 00:24:41,360 --> 00:24:44,310 এখন, আমি রেজিস্টার করতে হবে. 564 00:24:44,310 --> 00:24:47,620 এটা CSVs ব্যবহার করা কত সহজ দেখুন? 565 00:24:47,620 --> 00:24:50,840 হ্যাঁ, এটিকে আপ টু ডেট রাখা. 566 00:24:50,840 --> 00:24:52,375 ঠিক আছে, এখন আমরা বর্গ জন্য প্রস্তুত হন. 567 00:24:52,375 --> 00:24:58,750 568 00:24:58,750 --> 00:25:00,370 ওহ, ঠিক আছে, নতুন কি? 569 00:25:00,370 --> 00:25:02,920 ঠিক আছে, বন্ধ. 570 00:25:02,920 --> 00:25:04,750 যে ঐন্দ্রজালিক ছিল. 571 00:25:04,750 --> 00:25:07,280 ঠিক আছে, এখন আমরা আপডেট করতে হবে. 572 00:25:07,280 --> 00:25:10,890 এবং এখন, এটা ভুলে গেছি কি আমি মূলত খোলা ফাইল, 573 00:25:10,890 --> 00:25:13,090 কিন্তু সেখানে ছাগু karigor.com কি আমরা যেতে. 574 00:25:13,090 --> 00:25:16,341 ঠিক আছে, তাই এখন আমরা একটি এক্সেল ফাইল আছে. 575 00:25:16,341 --> 00:25:18,290 তোমাকে ধন্যবাদ. 576 00:25:18,290 --> 00:25:20,764 >> ঠিক আছে, তাই আমি কি সহজ ছিল. 577 00:25:20,764 --> 00:25:23,930 অবশ্যই আমি প্রাক ইনস্টল করতে পারে এক্সেল, বা নাম্বার, বা যাই হোক না কেন প্রোগ্রাম. 578 00:25:23,930 --> 00:25:25,846 কিন্তু এই কারণ, সুন্দর এখন আমি কি করতে পারেন নিপূণভাবে 579 00:25:25,846 --> 00:25:28,090 একটি মান বিন্যাসে তথ্য. 580 00:25:28,090 --> 00:25:30,294 >> তাই এখন যাক প্রেক্ষাপটে আমরা যেখানে আপনি বাম বন্ধ স্যুইচ 581 00:25:30,294 --> 00:25:32,710 শুরু করার জন্য, যা ছিল শেষ সময়, প্রশিক্ষণ চাকার অপসৃত করা. 582 00:25:32,710 --> 00:25:34,543 কিন্তু প্রথম, আপনি না এই আগে লাঞ্চ দেখতে 583 00:25:34,543 --> 00:25:38,150 আবার আগুন এখানে ঘটছে এবং নিউ হ্যাভেন কেমব্রিজ, সেতার মধ্যে আইস. 584 00:25:38,150 --> 00:25:43,150 যত শীঘ্র সম্ভব CS50s ওয়েবসাইটে সাইন আপ করুন CS50 ছাত্র এবং কর্মীদের যোগদানের জন্য. 585 00:25:43,150 --> 00:25:46,090 >> সুতরাং আমরা প্রশিক্ষণ চাকার গ্রহণ সোমবার বন্ধ অনুসরণ হিসাবে 586 00:25:46,090 --> 00:25:49,120 স্ট্রিং মধ্যে ঘোষণা করা হয়েছে কিছু সময়ের জন্য CS50s লাইব্রেরি. 587 00:25:49,120 --> 00:25:52,650 কারণ এটি করতে পারবেন এবং এটি চমৎকার আমাদের হচ্ছে ভেরিয়েবল সম্পর্কে কথা বলার জন্য 588 00:25:52,650 --> 00:25:54,660 সম্পূর্ণ শব্দ এবং বাক্য এবং আরও অনেক কিছু. 589 00:25:54,660 --> 00:25:56,710 কিন্তু এটা কোন অস্তিত্ব নেই স্ট্রিং দেখা যাচ্ছে. 590 00:25:56,710 --> 00:26:00,200 যে শুধু একটি প্রতিশব্দ, বা উপনাম হল, আমরা কিছু তৈরি করেছেন যে 591 00:26:00,200 --> 00:26:03,780 আসলে একটু বেশি হয় প্রযুক্তিগত * একটি গৃহস্থালি বলা. 592 00:26:03,780 --> 00:26:07,900 >> এবং প্রকৃতপক্ষে, আমরা একটি উদাহরণ দেখেছি সোমবার একটি প্রোগ্রাম 593 00:26:07,900 --> 00:26:11,200 যে আমরা আশা বেশ মতো আচরণ করা হয়নি. 594 00:26:11,200 --> 00:26:13,630 এই তুলনা -0, ফাইল ছিল. 595 00:26:13,630 --> 00:26:17,910 আর যদি, যে তুলনা-0 প্রত্যাহার আমি সোমবারের প্রোগ্রাম কম্পাইল 596 00:26:17,910 --> 00:26:22,670 এবং চালানোর-0 তুলনা এবং মায়ের টাইপ আবার ছোট হাতের মধ্যে ছোট হাতের অক্ষর, এবং মায়ের. 597 00:26:22,670 --> 00:26:25,320 প্রোগ্রাম আমি জোর বিভিন্ন জিনিষ টাইপ, 598 00:26:25,320 --> 00:26:29,210 এমনকি মায়ের সব যদিও ছোট হাতের অক্ষর, দৃশ্যত অভিন্ন. 599 00:26:29,210 --> 00:26:31,990 তাই সংক্ষিপ্ত উত্তর কি ছিল কম্পিউটার মনে করে কেন জন্য 600 00:26:31,990 --> 00:26:34,500 ঐ দুটি স্ট্রিং ভিন্ন? 601 00:26:34,500 --> 00:26:35,250 হ্যা? 602 00:26:35,250 --> 00:26:36,534 >> শ্রোতা: [শ্রবণাতীত] 603 00:26:36,534 --> 00:26:37,450 ডেভিড জে MALAN: রাইট. 604 00:26:37,450 --> 00:26:39,600 তাই, মায়ের, প্রথমবার আমি হচ্ছে, তা টাইপ 605 00:26:39,600 --> 00:26:42,710 আমার কম্পিউটার এর কোথাও সংরক্ষিত মেমরি কিন্তু ভিন্ন অবস্থানে 606 00:26:42,710 --> 00:26:44,690 দ্বিতীয় সময় চেয়ে আমি মায়ের টাইপ. 607 00:26:44,690 --> 00:26:46,580 এখন এটা অবশ্যই অপ্টিমাইজ করা যায়নি. 608 00:26:46,580 --> 00:26:49,205 কম্পিউটার স্মার্ট হতে পারে এবং , আরে, এই দুটি স্ট্রিং বুঝতে পারছি 609 00:26:49,205 --> 00:26:49,954 তারা অভিন্ন করছি. 610 00:26:49,954 --> 00:26:51,520 আমার redundantly এটি সংরক্ষণ না করা যাক. 611 00:26:51,520 --> 00:26:54,229 কিন্তু কম্পিউটারের যে কি না অপ্টিমাইজেশান আপনি তাদের বলুন, যদি না. 612 00:26:54,229 --> 00:26:56,061 সুতরাং, ডিফল্টরূপে, তারা আছেন শুধু আপ শেষ হয়ে যাচ্ছে 613 00:26:56,061 --> 00:26:57,670 মেমরি দুটি ভিন্ন জায়গায়. 614 00:26:57,670 --> 00:27:01,570 আর তাই, যখন আরো স্পষ্ট করা আমরা, দুটি পংক্তি তুলনায় 615 00:27:01,570 --> 00:27:03,950 প্রথমে বলা হয়েছিল এর, দ্বিতীয় বলা হয় 616 00:27:03,950 --> 00:27:08,530 T, বিশেষভাবে আমি কি ছিল লাইন 13 এখানে তুলনা? 617 00:27:08,530 --> 00:27:09,494 হ্যা. 618 00:27:09,494 --> 00:27:12,390 >> শ্রোতা: এটা মেমরি জায়গা পরিবর্তনশীল নির্দেশ করবে যে. 619 00:27:12,390 --> 00:27:14,900 >> ডেভিড জে MALAN: ঠিক, আমি ছিল মেমরি জায়গায় তুলনা 620 00:27:14,900 --> 00:27:16,300 ঐ যে ভেরিয়েবল জোরাল. 621 00:27:16,300 --> 00:27:20,560 তাই বিশেষভাবে, তাহলে মায়ের ছিল বাইট সংখ্যা 1, এবং 2, এবং 3, 622 00:27:20,560 --> 00:27:24,020 এবং 4-- কারণ ব্যাকস্ল্যাশ স্মরণ 0 শেষে সব পথ করা প্রয়োজন. 623 00:27:24,020 --> 00:27:29,420 আর মায়ের, এম-হে-এম অন্য উদাহরণস্বরূপ, অঙ্ক 10, 11, 12, ও 13 এ ছিল. 624 00:27:29,420 --> 00:27:33,100 আমি 1 তুলনা ছিল, যে ঠিকানা, স্মৃতিতে যে অবস্থান, 625 00:27:33,100 --> 00:27:35,160 10 বিরুদ্ধে, যা হয় অবশ্যই না একই. 626 00:27:35,160 --> 00:27:36,260 1 10 নয়. 627 00:27:36,260 --> 00:27:39,620 >> সুতরাং এই যে সুন্দর হয় এটি বেশ সহজবোধ্য. 628 00:27:39,620 --> 00:27:42,870 কিন্তু এটা হিসাবে যতটা সমস্যাযুক্ত আমরা স্ট্রিং তুলনা মনে করতে পারে না. 629 00:27:42,870 --> 00:27:44,930 সুতরাং fundamentally-- এবং এই নিম্ন পর্যায়ে, 630 00:27:44,930 --> 00:27:47,300 আপনি বাস্তবায়ন করতে চেয়েছিলেন একটি প্রোগ্রাম তুলনা 631 00:27:47,300 --> 00:27:50,270 দুটি পৃথক শব্দ যে ব্যবহারকারী মানের জন্য টাইপ করা হয়েছে 632 00:27:50,270 --> 00:27:53,944 তারা চর আপ লাইন শুধু সাধারণ শর্তাবলী গৃহস্থালি, 633 00:27:53,944 --> 00:27:55,360 কি আমরা দৃশ্যত, কী করতে হবে? 634 00:27:55,360 --> 00:27:57,940 এটা শুধু যথেষ্ট নয় ঐ দুটি ঠিকানায় তাকান. 635 00:27:57,940 --> 00:27:58,860 আমাদেরকে কি করতে হবে? 636 00:27:58,860 --> 00:27:59,360 হ্যা? 637 00:27:59,360 --> 00:28:01,120 >> শ্রোতা: মাধ্যমে পুনরুক্তি স্ট্রিং [শ্রবণাতীত]. 638 00:28:01,120 --> 00:28:02,600 >> ডেভিড জে MALAN: হ্যাঁ, এর দিন স্ট্রিং মাধ্যমে বারবার. 639 00:28:02,600 --> 00:28:05,808 এর লুপ, যখন একটি লুপ জন্য একটি ব্যবহার করা যাক, বা আপনার সাথে সবচেয়ে আরামদায়ক যাই হোক না কেন. 640 00:28:05,808 --> 00:28:08,840 আর আমরা কোথাও দুই স্ট্রিং পেয়েছেন স্মৃতিতে, একে এর তাকান 641 00:28:08,840 --> 00:28:11,770 প্রথম অক্ষর, তারপর প্রতিটি দ্বিতীয় চরিত্র, তারপর তৃতীয়, ও চতুর্থ, 642 00:28:11,770 --> 00:28:15,206 এবং পঞ্চম আমরা আঘাত না হওয়া পর্যন্ত কি বিশেষ সেন্টিনেলে মান? 643 00:28:15,206 --> 00:28:16,080 শ্রোতা: [শ্রবণাতীত] 644 00:28:16,080 --> 00:28:18,800 ডেভিড জে MALAN: হ্যাঁ, ব্যাকস্ল্যাশ শূন্য, হয় স্ট্রিং মধ্যে যা বিন্দু 645 00:28:18,800 --> 00:28:20,100 আমরা যে এটি সিদ্ধান্ত নিতে পারেন. 646 00:28:20,100 --> 00:28:21,970 আমরা প্রতিটি অক্ষর মিলেছে? 647 00:28:21,970 --> 00:28:22,990 যদি না হয়, তাই ফিরে এলাম. 648 00:28:22,990 --> 00:28:24,770 যদি তাই হয়, সত্য ফিরে. 649 00:28:24,770 --> 00:28:28,800 আর তাই যে কি এই সংস্করণে ঠিক প্রোগ্রাম তুলনা-1.c আছে. 650 00:28:28,800 --> 00:28:31,677 এটা অভিন্ন কি আমরা যে আমি করেছি ছাড়া সোমবার দিকে তাকিয়ে 651 00:28:31,677 --> 00:28:34,760 যদিও শব্দ পংক্তি পরিত্রাণ অর্জিত যে সব কোন কার্যকরী impact-- হয়েছে 652 00:28:34,760 --> 00:28:37,450 আমি এখন করছি অপসারণ করা হয় কিছু চাক্ষুষ প্রশিক্ষণ কায়দা করে, 653 00:28:37,450 --> 00:28:40,880 কিন্তু পরিষ্কারভাবে দেখতে যাও এর এবং T ঠিকানাগুলো. 654 00:28:40,880 --> 00:28:43,020 আর যে, কি তারকা তারকা, প্রতিনিধিত্ব 655 00:28:43,020 --> 00:28:46,690 একটি ঠিকানা অন্যথায় পরিচিত, হল আরো টেকনিক্যালি একটি পয়েন্টার হিসেবে. 656 00:28:46,690 --> 00:28:49,880 >> তাই আমি গুলি ঘোষণা যখন লাইন 9 এবং গৃহস্থালি * গুলি বলে, 657 00:28:49,880 --> 00:28:52,160 যে সম্পর্কে একটি স্ট্রিং দিতে না মানে. 658 00:28:52,160 --> 00:28:56,360 যে আমাকে যার একটি পরিবর্তনশীল দিতে মানে জীবনের উদ্দেশ্য একটি ঠিকানা সংরক্ষণ করা হয়. 659 00:28:56,360 --> 00:29:00,400 আমি লাগাতে সম্পর্কে নই সেটিকে একটি স্ট্রিং এর ঠিকানা. 660 00:29:00,400 --> 00:29:03,500 এবং প্রকৃতপক্ষে, GetString,, হতে পরিষ্কার, একটি স্ট্রিং ফেরত দেয় না. 661 00:29:03,500 --> 00:29:06,110 এটা মায়ের আসতে না ব্যাকস্ল্যাশ শূন্য, কোনটাই. 662 00:29:06,110 --> 00:29:10,005 বিশেষভাবে কি GetString না এবং সঠিকভাবে আসতে? 663 00:29:10,005 --> 00:29:10,880 শ্রোতা: [শ্রবণাতীত] 664 00:29:10,880 --> 00:29:14,080 ডেভিড জে MALAN: একটি ঠিকানা, প্রথম অক্ষরটি ঠিকানা 665 00:29:14,080 --> 00:29:16,070 কিছু স্ট্রিং তা অর্জিত হয়েছে. 666 00:29:16,070 --> 00:29:19,250 আর তাই এখন আমরা দেখছি আবার একটি বিশেষ শব্দ. 667 00:29:19,250 --> 00:29:20,640 আর, আমি এই আগে উল্লিখিত. 668 00:29:20,640 --> 00:29:23,620 এই ভাল কনভেনশন হতে যাচ্ছে আমরা এখন আবার এবং আবার দেখতে পাবেন যে. 669 00:29:23,620 --> 00:29:27,540 আমি নিশ্চিত করুন যে আপনি চেক করছি এর নাল নয় এবং T নাল নয়. 670 00:29:27,540 --> 00:29:30,100 সত্যিই আমার উপর ভিত্তি করে কারণ দ্রুত উল্লেখ আগে 671 00:29:30,100 --> 00:29:35,510 GetString, না ফেরৎ যদি মানে কি হতে পারে একটি ঠিকানা কিন্তু আবার, যা এন-ইউ-এল-এল, 672 00:29:35,510 --> 00:29:36,990 কিছু বিশেষ মূল্য? 673 00:29:36,990 --> 00:29:37,890 >> শ্রোতা: ত্রুটি. 674 00:29:37,890 --> 00:29:38,600 >> ডেভিড জে MALAN: এটা একটা ত্রুটি. 675 00:29:38,600 --> 00:29:39,550 কিছু ভুল হয়েছে. 676 00:29:39,550 --> 00:29:41,341 আর তা সাধারণত বিশেষ করে, ঘটতে পারে 677 00:29:41,341 --> 00:29:45,162 strings-- যা দিয়ে হতে পারে advance-- অজানা দৈর্ঘ্যের 678 00:29:45,162 --> 00:29:46,870 হয়তো কম্পিউটার ' মেমরি আউট, হয়তো 679 00:29:46,870 --> 00:29:49,280 আপনি এই ধরনের একটি টাইপ করা দীর্ঘ শব্দ বা বাক্য 680 00:29:49,280 --> 00:29:51,880 বা এই ধরনের একটি বিশাল রচনা আটকানো শুধু পর্যাপ্ত মেমরি আছে. 681 00:29:51,880 --> 00:29:55,340 আর তাই GetString, আসতে পারবেন না গোটা ব্যাপারটাই ঠিকানা, 682 00:29:55,340 --> 00:29:56,620 তাই এটা শুধু কিছুই ফেরৎ. 683 00:29:56,620 --> 00:30:00,580 এবং এটি একটি ত্রুটির ঘটেছে বলেছেন বিশেষ NULL মান ফিরে. 684 00:30:00,580 --> 00:30:02,890 এটা তাই কথা বলতে, শূন্য ঠিকানা. 685 00:30:02,890 --> 00:30:06,157 >> এখন এটি সক্রিয় আউট সি দিয়ে আসে যে পুনরাবৃত্তির যে ফাংশন. 686 00:30:06,157 --> 00:30:09,240 আমরা সাথে এই বাস্তবায়ন করতে হবে না লুপ বা যখন একটি লুপ নিজেদের জন্য একটি. 687 00:30:09,240 --> 00:30:11,150 আমরা একটি ফাংশন ব্যবহার করতে পারেন, বলতে গেলে বলা হয়, 688 00:30:11,150 --> 00:30:15,400 যার, সঙ্গত আলোড়ন, বা স্ট্রিং তুলনা জীবনের উদ্দেশ্য ঠিক যে কাজ করতে হয়. 689 00:30:15,400 --> 00:30:19,990 আপনি এটিকে দুটি পয়েন্টার, দুটি ঠিকানার দিতে, এবং ঐ ঠিকানায় যেতে হবে 690 00:30:19,990 --> 00:30:23,130 এবং তারপর জন্য চিঠি তুলনা মানের জন্য চিঠি, 691 00:30:23,130 --> 00:30:26,610 সত্য কি শুধুমাত্র যখন বাঁধন? 692 00:30:26,610 --> 00:30:31,540 Intuitively, সঙ্গত আলোড়ন উচিত যখন শুধু পরিষ্কার iterating করা হবে থামাতে? 693 00:30:31,540 --> 00:30:35,400 এটা একটি ব্যাকস্ল্যাশ 0 হিট হয় স্ট্রিং, যা সময়ে এটা নির্ধারণ করতে পারবেন 694 00:30:35,400 --> 00:30:38,910 সবকিছু মিলেছে বা একটি অমিল আছে হয়েছে? 695 00:30:38,910 --> 00:30:42,740 >> আমরা এখন এই রান এবং যদি তাই হয়, চেষ্টা আমাদের সামান্য মূলধন খেলা, 696 00:30:42,740 --> 00:30:49,260 তাই তুলনা -1, ./compare-1 করতে, এবং ছোট হাতের উভয় বার মায়ের টাইপ. 697 00:30:49,260 --> 00:30:50,560 এখন এটা একই জিনিস. 698 00:30:50,560 --> 00:30:54,080 এবং আমি যাদের সাথে আবার এটা করতে হলে ছোট হাতের এবং তারপর হয়তো ধাঁচের. 699 00:30:54,080 --> 00:30:56,720 এখন এটি প্রকৃতপক্ষে আলাদা ঊর্ধ্ব এবং ছোট হাতের মধ্যে. 700 00:30:56,720 --> 00:31:00,440 তাই না সব যে কঠিন বা ঐন্দ্রজালিক, কিন্তু এটা এখন ব্যাখ্যা না 701 00:31:00,440 --> 00:31:03,140 কি ফণা নীচে যাওয়া. 702 00:31:03,140 --> 00:31:07,640 >> তাই আমরা যত বেশি নিষ্কাশন করতে পারেন কি পাঠ এই ধরনের থেকে? 703 00:31:07,640 --> 00:31:08,980 তাই আসুন এই কটাক্ষপাত করা যাক. 704 00:31:08,980 --> 00:31:15,380 আমি এগিয়ে যান এবং একটি লিখতে যাচ্ছি দ্রুত প্রোগ্রাম এখানে কপি-0 বলা. 705 00:31:15,380 --> 00:31:21,594 আর এখন আমি এগিয়ে এবং আসলে যেতে দিন , এর কপি-0 সাথে আপাততঃ না যাক 706 00:31:21,594 --> 00:31:23,010 আমি এখানে পেয়েছেন কি কটাক্ষপাত. 707 00:31:23,010 --> 00:31:24,712 আমি প্রথম ব্যবহারকারী বলছি, কিছু বলতে. 708 00:31:24,712 --> 00:31:26,420 তারপর আমি একটি স্ট্রিং পেতে এবং আমি এর মধ্যে এটি সংরক্ষণ করা. 709 00:31:26,420 --> 00:31:29,810 এর সমান হলে তারপর আমি পরীক্ষা শূন্য সমান, শুধু 1 আসতে. 710 00:31:29,810 --> 00:31:31,590 সুতরাং এই মাত্র স্ট্যান্ডার্ড ত্রুটি পরীক্ষা হয়. 711 00:31:31,590 --> 00:31:33,112 আকর্ষণীয় কিছুই ঘটেনি. 712 00:31:33,112 --> 00:31:36,320 এবং সত্য, আমরা ত্রুটি পরিত্রাণ পেতে হলে চেক, এই সপ্তাহে 1 কোড মত দেখায় 713 00:31:36,320 --> 00:31:36,985 এখন. 714 00:31:36,985 --> 00:31:39,110 কিন্তু আমি একটি পেতে শুরু করেছি যে সম্পর্কে কিছুটা ভালো. 715 00:31:39,110 --> 00:31:43,340 >> এখন লাইন 16 সালে, এক সপ্তাহ আগে, হয়তো এমনকি কয়েক দিন বা কয়েক মিনিট আগে, 716 00:31:43,340 --> 00:31:46,720 আপনি লাইন 16 হয় বলতে পারে একটি পরিবর্তনশীল নামক টি তৈরি 717 00:31:46,720 --> 00:31:48,219 এবং অনুলিপি সেটিকে গুলি. 718 00:31:48,219 --> 00:31:50,010 এবং যে একটি পুরোপুরি এর যুক্তিসঙ্গত Takeaway. 719 00:31:50,010 --> 00:31:51,560 কিন্তু এখন আরও ভালো হবে. 720 00:31:51,560 --> 00:31:54,190 লাইন 16 সালে কি ঘটছে? 721 00:31:54,190 --> 00:31:56,170 কি কপি হচ্ছে ডান থেকে বাম? 722 00:31:56,170 --> 00:31:56,669 হ্যা? 723 00:31:56,669 --> 00:31:58,490 শ্রোতা: T এর একটি ঠিকানা পাচ্ছেন? 724 00:31:58,490 --> 00:32:01,220 >> ডেভিড জে MALAN: ঠিক, T এর ঠিকানা হচ্ছে. 725 00:32:01,220 --> 00:32:05,170 আমি যদি যাই তাহলে তাই, এখন স্পষ্ট করা ফিরে যে আগে যেমন করতে 726 00:32:05,170 --> 00:32:08,520 এবং আমি টাইপ করেছি জিনিস আঁকা আউট. 727 00:32:08,520 --> 00:32:11,640 আর আমি টাইপ করেছি তা in-- এখানে গুলি, এবং এখানে 728 00:32:11,640 --> 00:32:15,830 আমি কোথাও টাইপ করেছি তা মেমরি, মায়ের এবং তারপর একটি ব্যাকস্ল্যাশ 729 00:32:15,830 --> 00:32:17,840 আমার জন্য যোগ যে 0. 730 00:32:17,840 --> 00:32:23,060 আমি কি এখানে সংরক্ষিত, প্রত্যাহার এই অবস্থান 1, 2, 3, 4 এ হল 731 00:32:23,060 --> 00:32:24,655 এই গুলি বর্তমানে কি হয়. 732 00:32:24,655 --> 00:32:29,220 লাইন 16 সুতরাং, যদি আমি আমাকে দিতে বলে অন্য পরিবর্তনশীল নামক T এবং দোকান 733 00:32:29,220 --> 00:32:33,590 এর মান এ, কি এখানে সংরক্ষিত পরার মায়ের না 734 00:32:33,590 --> 00:32:35,480 বরং শুধু সংখ্যা 1. 735 00:32:35,480 --> 00:32:38,520 >> আমরা এই প্রোগ্রাম যদি এগিয়ে চেহারা তাই এখন, কি ঘটতে যাচ্ছে? 736 00:32:38,520 --> 00:32:40,690 তাই আছে বিজ্ঞপ্তি এই ফাংশন আপনি পারে 737 00:32:40,690 --> 00:32:44,410 সিজার জন্য কিছু সময় আগে এই তথ্য ব্যবহার করে, অথবা Vigenere, হয়তো বা না এ সব. 738 00:32:44,410 --> 00:32:48,170 আমি আছি, আমার printf সঙ্গে দাবি কপি টি পুঁজিতে যাচ্ছে. 739 00:32:48,170 --> 00:32:51,616 প্রথম লাইন 19, দ্রুত বৈধতা মধ্যে , T এর strlen চেক দৈর্ঘ্য পরীক্ষা. 740 00:32:51,616 --> 00:32:53,740 কারণ আমি চাই না কিছু পুঁজিতে করার চেষ্টা 741 00:32:53,740 --> 00:32:55,104 যদি সেখানে কোন স্ট্রিং আছে. 742 00:32:55,104 --> 00:32:57,520 ব্যবহারকারী শুধু এন্টার তাহলে, পুঁজিতে করার কিছুই নেই. 743 00:32:57,520 --> 00:33:01,100 তাই আমি লাইন 21 করতে চাই না. 744 00:33:01,100 --> 00:33:05,758 তাই লাইন 21 ভিত্তি হয় যা দৃশ্যত চিঠি, T মধ্যে? 745 00:33:05,758 --> 00:33:06,514 >> শ্রোতা: M? 746 00:33:06,514 --> 00:33:08,722 ডেভিড জে MALAN: এটা দেখায় মত অনুলিপি করা যা এক? 747 00:33:08,722 --> 00:33:09,486 শ্রোতা: এম. 748 00:33:09,486 --> 00:33:10,450 ডেভিড জে MALAN: আহ, এম. 749 00:33:10,450 --> 00:33:12,685 ঠিক আছে, প্রথম M তাই, আমি যে বিজ্ঞপ্তি, কারণ 750 00:33:12,685 --> 00:33:14,935 , toupper করতে পার যা আপনি কখনও দেখা করেছি যদি এটা 751 00:33:14,935 --> 00:33:16,980 শুধু একটি ফাংশন তার ইনপুট হিসাবে পুঁজিতে. 752 00:33:16,980 --> 00:33:20,240 T বন্ধনী শূন্য দিতে মানে আমার টি শূন্য চরিত্র. 753 00:33:20,240 --> 00:33:22,550 তাই কিভাবে এই আছে ছবি পরিবর্তন, পরিষ্কার করা? 754 00:33:22,550 --> 00:33:25,490 755 00:33:25,490 --> 00:33:29,160 কি পুনর্লিখিত বা পরিবর্তন করার জন্য প্রয়োজন এর সম্মান ও T এবং মায়ের সাথে 756 00:33:29,160 --> 00:33:30,097 ব্যাকস্ল্যাশ শূন্য. 757 00:33:30,097 --> 00:33:31,470 >> শ্রোতা: [শ্রবণাতীত] 758 00:33:31,470 --> 00:33:34,030 >> ডেভিড জে MALAN: হ্যাঁ, তাই এই এক এখানে কেবল 759 00:33:34,030 --> 00:33:40,860 আপাততঃ ঠিক চাচ্ছি পরিবর্তন করার জন্য প্রয়োজন একটি মূলধন এম পরিবর্তিত করার জন্য প্রয়োজন. 760 00:33:40,860 --> 00:33:44,330 কিন্তু এখন, পরে দেখুন প্রোগ্রাম, আমি প্রিন্ট আউট হলে 761 00:33:44,330 --> 00:33:49,800 আমি এখানে পরিষ্কার হিসাবে এর এবং T, কি ঘড়ি এর এবং T মুদ্রণ ঘটতে যাচ্ছে. 762 00:33:49,800 --> 00:33:54,310 তাই কপি-0, ./copy-0 করতে. 763 00:33:54,310 --> 00:33:57,140 আমাকে এগিয়ে যান এবং টাইপ করুন সব ছোট হাতের মধ্যে মায়ের মধ্যে. 764 00:33:57,140 --> 00:34:00,140 লক্ষ্য করুন উভয় আসল এবং কপি মূলধনী হয়েছে. 765 00:34:00,140 --> 00:34:00,850 কেন? 766 00:34:00,850 --> 00:34:04,431 ওয়েল, এর এবং T উভয় প্রতি নির্দেশ করা হয়, যদি আপনি হবে, মেমরি একই খণ্ড. 767 00:34:04,431 --> 00:34:06,930 এবং সত্যি, এই হচ্ছে সত্যিই আসলে uninteresting-- 768 00:34:06,930 --> 00:34:09,150 আমরা এখানে অঙ্ক শূন্য ব্যবহার করছেন. 769 00:34:09,150 --> 00:34:11,719 আমি বলতে চাচ্ছি, আমি সত্যিই কি যত্ন না যেখানে কাপড় মেমরি হয়. 770 00:34:11,719 --> 00:34:13,550 দুঃখিত আমি একটু অত্যধিক erasing করছি. 771 00:34:13,550 --> 00:34:15,674 কিন্তু আমি সত্যিই গ্রাহ্য না কিছু স্মৃতি আছে যেখানে. 772 00:34:15,674 --> 00:34:18,510 তাই প্রকৃতপক্ষে কি প্রোগ্রামারদের সম্পর্কে চিন্তা করার ঝোঁক 773 00:34:18,510 --> 00:34:21,080 আপনার সম্পর্কে কথা বলতে হলে যে হয় একটি ঠিকানা, অথবা একটি পয়েন্টার, 774 00:34:21,080 --> 00:34:22,679 এটি মেমরি যেখানে যারা বজায় রাখে. 775 00:34:22,679 --> 00:34:24,989 এটা এ যদি আমি না যত্ন বাইট অথবা এক বিলিয়ন. 776 00:34:24,989 --> 00:34:27,920 আমি শুধু এই যে যত্ন পরিবর্তনশীল কার্যকরভাবে হয় 777 00:34:27,920 --> 00:34:29,620 মেমরি যে তাল নির্দেশ করে. 778 00:34:29,620 --> 00:34:33,350 আর তাই, অত: পর, বরং টাল নির্বিচারে মেমরি অ্যাড্রেস ধরে, আসুন 779 00:34:33,350 --> 00:34:36,710 শুধু পয়েন্টার আঁকা শুরু তীরচিহ্ন হিসেবে পয়েন্টার, হিসাবে. 780 00:34:36,710 --> 00:34:39,340 সুতরাং এবং T সত্যিই কি এর এই প্রোগ্রাম অনুযায়ী, 781 00:34:39,340 --> 00:34:42,130 আমি T নির্মিত কিভাবে কারণ এটা শুধু দুটি পৃথক ভেরিয়েবল এর 782 00:34:42,130 --> 00:34:43,840 মেমরি একই খণ্ড নির্দেশ করে. 783 00:34:43,840 --> 00:34:45,215 যেখানে তারা এবং আমরা পরোয়া করি না. 784 00:34:45,215 --> 00:34:47,130 সুতরাং আমরা বিমূর্ত দূরে যে বিস্তারিত পারেন. 785 00:34:47,130 --> 00:34:48,780 >> সুতরাং কিভাবে আমি এই ঠিক করব? 786 00:34:48,780 --> 00:34:54,120 আমি কপি একটি সংস্করণ লিখতে চান প্রোগ্রাম যে আসলে কপি স্ট্রিং 787 00:34:54,120 --> 00:34:56,840 এবং শুধুমাত্র capitalizes কপি, শুধুমাত্র intuitively 788 00:34:56,840 --> 00:34:59,766 কি পেয়েছিলাম একটি হতে আমাদের সমাধান করার উপাদান? 789 00:34:59,766 --> 00:35:00,640 শ্রোতা: [শ্রবণাতীত] 790 00:35:00,640 --> 00:35:01,420 ডেভিড জে MALAN: আমরা একটি কি প্রয়োজন? 791 00:35:01,420 --> 00:35:01,820 শ্রোতা: মেমরি খণ্ড. 792 00:35:01,820 --> 00:35:03,280 ডেভিড জে MALAN: আমরা প্রয়োজন মেমরি আরেকটি খণ্ড, ডান? 793 00:35:03,280 --> 00:35:05,360 আমরা জানি না কিভাবে অগত্যা, এখনো এটা না. 794 00:35:05,360 --> 00:35:11,330 কিন্তু আমি ধরনের তাই ঘটতে এই প্রয়োজন যে কম ক্ষেত্রে মূল মায়ের 795 00:35:11,330 --> 00:35:14,170 মেমরি যে অতিরিক্ত খণ্ড শেষ পর্যন্ত. 796 00:35:14,170 --> 00:35:19,770 এবং তারপর আমি কপি পরিবর্তন হলে, আমি এখানে এই কপি পরিবর্তন করতে চান না. 797 00:35:19,770 --> 00:35:26,020 আমি পরিবর্তে শুধুমাত্র এই পরিবর্তন করতে চান কপি যাতে মূল অপরিবর্তিত. 798 00:35:26,020 --> 00:35:27,980 >> সুতরাং, আসুন আমরা এই কাজ করতে পারে কিভাবে দেখতে দিন. 799 00:35:27,980 --> 00:35:31,800 কপি-1, ইতিমধ্যে যা মন্তব্য ছিনতাই হয়েছে, 800 00:35:31,800 --> 00:35:33,250 কিন্তু অনলাইন মন্তব্য করা হয়. 801 00:35:33,250 --> 00:35:36,710 আমরা পরিবর্তে নিম্নলিখিত এইসব কি লাইন অভিন্ন, সম্পর্কে একটি স্ট্রিং পেতে 802 00:35:36,710 --> 00:35:38,340 এবং এটি গুলি কল. 803 00:35:38,340 --> 00:35:43,500 কিন্তু এখন আমাদের সবচেয়ে এক তাকান জটিল কিন্তু জটিলতা শেষ 804 00:35:43,500 --> 00:35:47,340 অল্প সময়ের জন্য, লাইন 16 ঠিক এই আছে. 805 00:35:47,340 --> 00:35:49,400 সাথে আপনার আরামদায়ক, তাই যদি ছবি আমরা শুধু drew-- 806 00:35:49,400 --> 00:35:51,790 আমার মেমরি একটি নতুন খণ্ড দিতে সেটিকে সবকিছু কপি, 807 00:35:51,790 --> 00:35:53,730 আসুন আমরা কোড যে অনুবাদ দেখতে দিন. 808 00:35:53,730 --> 00:35:59,400 >> তাই লাইন 16, বাম দিকে, গৃহস্থালি * T এখানে ওভার আমার এই বক্স দেয়. 809 00:35:59,400 --> 00:36:00,230 যে এটা সব. 810 00:36:00,230 --> 00:36:03,240 ডানদিকে, এম alloc, বা malloc, 811 00:36:03,240 --> 00:36:06,480 সুপার অভিনব মেমরি বরাদ্দ, হয় শুধু বলছে একটি রহস্যপূর্ণ উপায় 812 00:36:06,480 --> 00:36:07,640 আমার মেমরি একটি খণ্ড দিতে. 813 00:36:07,640 --> 00:36:09,290 আমরা কত স্মৃতি প্রয়োজন? 814 00:36:09,290 --> 00:36:10,910 ওয়েল, একটি অভিব্যক্তি বড় ধরনের. 815 00:36:10,910 --> 00:36:12,570 কিন্তু এর তা এখানে বলে কি দেখতে দিন. 816 00:36:12,570 --> 00:36:15,940 তাই এই, অবশ্যই, দিতে হয় আমার s এর স্ট্রিং দৈর্ঘ্য. 817 00:36:15,940 --> 00:36:19,094 তাই, মায়ের এটা কি হওয়া উচিত? 818 00:36:19,094 --> 00:36:21,010 তাই মাত্র তিনটি, ডান? মায়ের তিনটি অক্ষর. 819 00:36:21,010 --> 00:36:22,830 আপনি গণনা করা হয় না ব্যাকস্ল্যাশ শূন্য যখন আপনি 820 00:36:22,830 --> 00:36:25,960 এটি একটি স্ট্রিং এর দৈর্ঘ্য সম্পর্কে কথা আসলে মানুষের দৃশ্যমান বর্ণ. 821 00:36:25,960 --> 00:36:28,020 তাই মায়ের, তাই এই 3 আমার দেয়. 822 00:36:28,020 --> 00:36:31,170 কিন্তু আমি এখন 1 যোগ করছি, একটি মিনিট অপেক্ষা করুন. 823 00:36:31,170 --> 00:36:34,861 কেন আমি আসলে চাই না 4 বাইট এবং শুধুমাত্র 3 বরাদ্দ? 824 00:36:34,861 --> 00:36:35,360 হ্যা? 825 00:36:35,360 --> 00:36:36,910 >> শ্রোতা: সেন্সিনেল মূল্য জন্য? 826 00:36:36,910 --> 00:36:38,951 >> ডেভিড জে MALAN: ঠিক, যে সেন্টিনেলে মূল্য জন্য. 827 00:36:38,951 --> 00:36:40,840 ব্যাকস্ল্যাশ শূন্য, আমি 4 বাইট মোট প্রয়োজন. 828 00:36:40,840 --> 00:36:42,870 তাই আমি দৈর্ঘ্য প্রয়োজন স্ট্রিং প্লাস 1 এর. 829 00:36:42,870 --> 00:36:45,400 এবং তারপর শুধু ভাল measure-- জন্য এমনকি এই সিস্টেমে যদিও, 830 00:36:45,400 --> 00:36:49,390 এটা সবসময় আমি বলার অপেক্ষা রাখে না 1 টি হতে যাচ্ছে একটি গৃহস্থালি এর আয়তন দ্বারা এই সংখ্যাবৃদ্ধি. 831 00:36:49,390 --> 00:36:51,552 Sizeof দেখা যাচ্ছে সি একটি অপারেটর যে 832 00:36:51,552 --> 00:36:53,260 শুধু আপনি বলে যে বাইটের সংখ্যা 833 00:36:53,260 --> 00:36:54,700 একটি নির্দিষ্ট ডাটা টাইপ জন্য প্রয়োজন. 834 00:36:54,700 --> 00:36:57,740 এটা অ্যারে জন্য কাজ করে না, সাধারণত, মাঝে মাঝে তা করে. 835 00:36:57,740 --> 00:36:59,210 কিন্তু সাধারণ ক্ষেত্রে, কোন. 836 00:36:59,210 --> 00:37:02,330 অনেক একটি বাইট কিন্তু কিভাবে এটি আমার বলতে হবে দেখা যাচ্ছে, যা গৃহস্থালি, সর্বদা 1 হবে. 837 00:37:02,330 --> 00:37:04,080 সুতরাং এই 1 দ্বারা গুন ভালো হয়. 838 00:37:04,080 --> 00:37:05,900 >> কোডের তাই সুপার রহস্যপূর্ণ খুঁজছেন লাইন. 839 00:37:05,900 --> 00:37:09,320 কিন্তু সব কিছু দেয় হল আমার মেমরি একটি খণ্ড. 840 00:37:09,320 --> 00:37:13,590 কিন্তু এটা কপি করা বলে মনে হচ্ছে না যে মেমরিতে কিছু? 841 00:37:13,590 --> 00:37:14,560 এখনো না. 842 00:37:14,560 --> 00:37:22,040 তাই লাইন 22 আমি কি, এবং 23, 24, 25, ওয়েল, আমি কেবল এই কাজ. 843 00:37:22,040 --> 00:37:23,760 আর এই ধরণের হয় এখন পুরানো স্কুল কাপড়. 844 00:37:23,760 --> 00:37:26,010 এই pset 2, যেখানে ভালো হয় আপনি শুধু কিছু চলন্ত করছি 845 00:37:26,010 --> 00:37:28,620 প্রায় মেমরি, অথবা বরং স্ট্রিং মধ্যে. 846 00:37:28,620 --> 00:37:31,920 >> তাই আমি 0 থেকে iterating করছি স্ট্রিং এর দৈর্ঘ্য. 847 00:37:31,920 --> 00:37:37,820 এবং আমি-তম অক্ষর অনুলিপি করছি T আমি-তম অক্ষর মধ্যে এর মধ্যে. 848 00:37:37,820 --> 00:37:41,820 আর আমি সিদ্ধান্ত নিয়েছি, প্রোগ্রামার, তৈরি ঠিক যেমন অনেক বাইট বরাদ্দ নিশ্চিত 849 00:37:41,820 --> 00:37:44,600 আমি প্রয়োজন হিসাবে, এটা একেবারে ঠিক এক-এক সম্পর্ক. 850 00:37:44,600 --> 00:37:47,060 এবং আমি মায়ের কপি নতুন এক ছোটহাতের. 851 00:37:47,060 --> 00:37:50,170 এবং তারপর সর্বশেষে, আমি এই লাইন না. 852 00:37:50,170 --> 00:37:54,637 আর তাই প্রভাব শুধুমাত্র হয় এখানে এই T পুঁজিতে. 853 00:37:54,637 --> 00:37:56,470 তাই অনেক শোষণ, কিন্তু আপনি শুধু বিবেচনা যদি 854 00:37:56,470 --> 00:37:58,220 সত্যিই কি ঘটছে ফণা নীচে 855 00:37:58,220 --> 00:38:00,880 শুধু এই চলন্ত হয় সব যে, প্রায় বাইট 856 00:38:00,880 --> 00:38:06,617 এই সমস্যা সমাধানের জন্য প্রয়োজন হয় শুধু আমাদের মেমরি এই অঞ্চলে দিতে. 857 00:38:06,617 --> 00:38:08,450 এখন ঝুঁকির মধ্যে অপ্রতিরোধ্য, আমাকে দেখানোর দিন 858 00:38:08,450 --> 00:38:13,200 প্রায় যে এক অন্য উদাহরণ এই এক জন্য প্রয়োগ করা 859 00:38:13,200 --> 00:38:14,350 কোড লাইন. 860 00:38:14,350 --> 00:38:18,870 সুতরাং এই হ্যাকার সংস্করণ এই প্রোগ্রামের, যদি আপনি হবে. 861 00:38:18,870 --> 00:38:21,050 কিন্তু এর মাত্র চুয়ান দিন এটা কি ঘটছে মধ্যে. 862 00:38:21,050 --> 00:38:28,920 লাইন 24 এই T ব্যবহার করা হয় বন্ধনী আমি গুলি বন্ধনী আমি পায়. 863 00:38:28,920 --> 00:38:33,370 এখন, আমি এই পরিবর্তন করছি আরো অনেক কিছু রহস্যপূর্ণ তারকা টি 864 00:38:33,370 --> 00:38:36,280 প্লাস 1 তারকা এর প্লাস 1 সমান. 865 00:38:36,280 --> 00:38:38,702 >> তাই কি ঘটছে এবং কেন আমরা একটি তারকা চরিত্র আছে না? 866 00:38:38,702 --> 00:38:41,410 আমরা আগে তারকা দেখা করেছি, এবং এটা ভিন্নভাবে এখানে ব্যবহৃত হচ্ছে. 867 00:38:41,410 --> 00:38:45,490 আমরা পূর্বে এখন আমি দেখছি, গৃহস্থালি * দেখেছি একটি শুরুতে এ তারকা, এবং যে ঠিক আছে. 868 00:38:45,490 --> 00:38:48,190 আমরা দেখা যাচ্ছে, কারণ ধরনের মাত্র আবিষ্কার করতে পারেন 869 00:38:48,190 --> 00:38:50,280 যারা প্রথম থেকে নীতি কি ঘটছে. 870 00:38:50,280 --> 00:38:53,860 তাই ঠিক পরিষ্কার হবে, এর কি? 871 00:38:53,860 --> 00:38:55,052 গত সপ্তাহে, এটি একটি স্ট্রিং ছিল. 872 00:38:55,052 --> 00:38:56,260 যে আর যথেষ্ট নয়. 873 00:38:56,260 --> 00:38:57,690 বিশেষভাবে, এর কি হল? 874 00:38:57,690 --> 00:38:58,590 >> শ্রোতা: [শ্রবণাতীত] 875 00:38:58,590 --> 00:38:59,881 >> ডেভিড জে MALAN: এটা একটা পয়েন্টার. 876 00:38:59,881 --> 00:39:02,610 এটা এর ঠিকানা প্রথম অক্ষর আমরা টাইপ. 877 00:39:02,610 --> 00:39:04,780 ঠিক আছে, টি কি? 878 00:39:04,780 --> 00:39:05,660 >> শ্রোতা: [শ্রবণাতীত] 879 00:39:05,660 --> 00:39:07,950 >> ডেভিড জে MALAN: প্রথম বাইট ঠিকানা 880 00:39:07,950 --> 00:39:10,490 T মধ্যে, মেমরি যে তাল reallocated. 881 00:39:10,490 --> 00:39:14,720 সুতরাং দেখা যাচ্ছে যে, যখন আমরা স্ট্রিং পর্যন্ত 0 থেকে বারবার 882 00:39:14,720 --> 00:39:17,424 দৈর্ঘ্য সর্বপ্রথমে আমি কারণ, 0 আরম্ভ বন্ধ 883 00:39:17,424 --> 00:39:18,840 লুপ জিনিসের জন্য এই পুরানো স্কুল. 884 00:39:18,840 --> 00:39:22,400 তাই শুধু সরলীকরণের জন্য, আসুন কোড যে প্রথম লাইন অনুমান 885 00:39:22,400 --> 00:39:23,760 সত্যিই শুধু এই, সঠিক. 886 00:39:23,760 --> 00:39:26,080 আমি শূন্য, যোগ শূন্য হয়, তাহলে কিছু সম্ভবতঃ 887 00:39:26,080 --> 00:39:27,540 একটি প্রভাব আছে যাচ্ছে না. 888 00:39:27,540 --> 00:39:28,560 >> তাই এই কি বলছে না? 889 00:39:28,560 --> 00:39:31,600 এটা তারা যে দেখা যাচ্ছে এই প্রেক্ষাপটে অপারেটর 890 00:39:31,600 --> 00:39:33,700 ডি-রেফারেন্স হয় শুধু যা অপারেটর, 891 00:39:33,700 --> 00:39:37,530 যেতে বলছে এর অভিনব উপায় নিম্নলিখিত ঠিকানায়. 892 00:39:37,530 --> 00:39:42,080 সুতরাং এর যদি প্রথম ঠিকানা মেমরি এই অঞ্চলে এ চরিত্র, 893 00:39:42,080 --> 00:39:43,630 * এর মানে সেখানে যান. 894 00:39:43,630 --> 00:39:45,630 আর আমরা টানা করেছি কারণ এই ভাবে ছবি, 895 00:39:45,630 --> 00:39:47,430 আপনি গ্রহণ করতে পারেন মানসিক মডেল অনুসরণ. 896 00:39:47,430 --> 00:39:51,030 এই গুলি হল, এবং আপনি * গুলি, * গুলি যদি বলি ধরনের Chutes এবং Ladders মত, 897 00:39:51,030 --> 00:39:54,540 আপনি শৈশব থেকে খেলা মনে যদি, যে তীর অনুসরণ এবং যেতে ভালো হয় 898 00:39:54,540 --> 00:39:55,570 ঠিকানায়. 899 00:39:55,570 --> 00:39:57,080 >> * T একই জিনিস. 900 00:39:57,080 --> 00:39:59,855 সুতরাং এখানে শুরু, তার খণ্ড যান. 901 00:39:59,855 --> 00:40:03,350 আমি শুধু প্রথম আহরণ করতে পারে না এই পর্দায় যে ভাবে. 902 00:40:03,350 --> 00:40:05,560 * T এখানে যাওয়ার মানে. 903 00:40:05,560 --> 00:40:08,830 এবং তারপর, লুপ জন্য শুধু নয় এখানে এই অক্ষর সরানো বলছে 904 00:40:08,830 --> 00:40:11,330 এখানে এই অক্ষর সরানো, এখানে এই অক্ষর সরানো. 905 00:40:11,330 --> 00:40:12,890 কিন্তু কিভাবে আমি যে incrementation করবেন? 906 00:40:12,890 --> 00:40:15,430 আমি শুধু মুছে কি পূর্বাবস্থা প্রয়োজন. 907 00:40:15,430 --> 00:40:18,140 সাধারণত বলা হয় পয়েন্টার এরিথমেটিক, যা 908 00:40:18,140 --> 00:40:20,040 ঠিকানার সঙ্গে গণিত মানে. 909 00:40:20,040 --> 00:40:22,460 >> তাহলে, এই লুপ জন্য, আমি বৃদ্ধিশীল রাখতে 910 00:40:22,460 --> 00:40:26,880 এবং এর একটি ঠিকানা এবং T একটি হল অঙ্ক, আমি শুধু 1 যুক্ত রাখা হলে, 911 00:40:26,880 --> 00:40:31,406 যে শুধু গতির রাখা মানে, এবং ফরওয়ার্ড, এবং মেমরি ফরোয়ার্ড. 912 00:40:31,406 --> 00:40:34,030 এটা অক্সফোর্ড স্ট্রিট মত, সি এস বিল্ডিং হয় যে রাস্তায়. 913 00:40:34,030 --> 00:40:36,490 সি এস ভবন 33 অক্সফোর্ড স্ট্রিটে হয়. 914 00:40:36,490 --> 00:40:39,870 যদি তাই আপনি 33 কি ছিল অক্সফোর্ড স্ট্রিট প্লাস 1, 915 00:40:39,870 --> 00:40:42,870 যে 34 অক্সফোর্ড আপনাকে এনেছে রাস্তার, তারপর 35 অক্সফোর্ড স্ট্রিট, 916 00:40:42,870 --> 00:40:46,380 তারপর 36 অক্সফোর্ড স্ট্রিট, যাই হোক না কেন যারা ভবন আসলে - যদি তাদের অস্তিত্ব. 917 00:40:46,380 --> 00:40:50,540 আর তাই, যে আমরা করছেন সব এখানে পয়েন্টার গাণিতিক সঙ্গে. 918 00:40:50,540 --> 00:40:53,820 >> সুতরাং এটি একটি সুপার গোপনীয় উপায় নিজেদেরকে প্রকাশ. 919 00:40:53,820 --> 00:40:56,160 কিন্তু সব যে ঘটছে ফণা নীচে 920 00:40:56,160 --> 00:40:59,330 শুধু এই ঠিকানাগুলির অনুসরণ করছে, একটি মানচিত্রের নিচের মত, যদি আপনি হবে, 921 00:40:59,330 --> 00:41:02,692 বা মত তীর অনুসরণ আমরা পর্দায় টানা করেছি. 922 00:41:02,692 --> 00:41:04,910 ঠিক আছে, অনেক হজম. 923 00:41:04,910 --> 00:41:10,410 সিনট্যাক্স উপর কোন প্রশ্ন, ধারণা, পয়েন্টার, malloc, বা ভালো. 924 00:41:10,410 --> 00:41:11,480 হ্যাঁ, এখানে ওভার প্রথম. 925 00:41:11,480 --> 00:41:13,755 >> শ্রোতা: তাই যে যেখানে * T এর toupper * T সমান বলেছেন 926 00:41:13,755 --> 00:41:15,575 পুঁজিতে যাচ্ছে যে সব অক্ষর বা ঠিক করা 927 00:41:15,575 --> 00:41:17,283 >> ডেভিড জে MALAN: আহ, সত্যিই ভাল প্রশ্ন. 928 00:41:17,283 --> 00:41:19,805 এখানে এই লাইন সুতরাং, 31, এই পুঁজিতে যাচ্ছে 929 00:41:19,805 --> 00:41:21,430 প্রথম অক্ষর বা বর্ণ সব. 930 00:41:21,430 --> 00:41:23,460 সুতরাং আসুন যাচ্ছে দ্বারা যে উত্তর দিন ফিরে প্রথম নীতির. 931 00:41:23,460 --> 00:41:26,168 এবং এখানে প্রথম নীতির আমি বলতে চাচ্ছি শুধু মৌলিক সংজ্ঞা যান 932 00:41:26,168 --> 00:41:27,000 জড়িত কি. 933 00:41:27,000 --> 00:41:29,770 সুতরাং এর toupper একটি ফাংশন যে একটি গৃহস্থালি capitalizes. 934 00:41:29,770 --> 00:41:30,530 এখানেই শেষ. 935 00:41:30,530 --> 00:41:36,740 * T first-- যেতে মানে T এ ঠিকানায় যান. 936 00:41:36,740 --> 00:41:40,350 সুতরাং, ছবি, এই অঞ্চলে তাহলে মেমরি আমরা malloc সঙ্গে বরাদ্দ, 937 00:41:40,350 --> 00:41:43,310 এবং এই T * T এখানে যান মানে, হয়. 938 00:41:43,310 --> 00:41:46,710 >> এদিকে, আপনি পার করছি যে মান, ছোট হাতের M 939 00:41:46,710 --> 00:41:50,040 toupper করতে, আপনি ফিরে পেয়ে থাকেন রাজধানী এম, যেখানে আপনি এটি স্থাপন করা হয়? 940 00:41:50,040 --> 00:41:52,410 আপনি যে একই স্থানে এটি স্থাপন করছি. 941 00:41:52,410 --> 00:41:55,540 তাই যারা এর যে যুক্তি দ্বারা মৌলিক সংজ্ঞা এটা কেবলমাত্র 942 00:41:55,540 --> 00:41:58,792 প্রথম অক্ষরটিই ভিত্তি আপনি আমি বা সঙ্গে বারবার তবে 943 00:41:58,792 --> 00:42:02,000 লুপ বা যখন একটি লুপ জন্য, এটা যাচ্ছে না আপনি এটা জিজ্ঞাসা বেশী কিছু করতে. 944 00:42:02,000 --> 00:42:02,583 ভালো প্রশ্ন. 945 00:42:02,583 --> 00:42:03,237 হ্যা? 946 00:42:03,237 --> 00:42:05,369 >> শ্রোতা: কেন আপনি ব্যবহার হয়নি পদ্ধতি বদলে ডি-রেফারেন্স 947 00:42:05,369 --> 00:42:05,979 অ্যারে? 948 00:42:05,979 --> 00:42:07,395 >> ডেভিড জে MALAN: আহ, ভাল প্রশ্ন. 949 00:42:07,395 --> 00:42:10,672 কেন আপনি ডি-রেফারেন্স ব্যবহার করতে হবে পরিবর্তে অ্যারে পদ্ধতি পদ্ধতি? 950 00:42:10,672 --> 00:42:12,130 কোন এক কারনে, সৎ হতে. 951 00:42:12,130 --> 00:42:15,290 এবং, আসলে, এই জন্য উদাহরণস্বরূপ ধরনের, ঠিক আছে, 952 00:42:15,290 --> 00:42:17,556 আমি শুধু উপার্জন arguing করছি আরো জটিল প্রোগ্রাম, 953 00:42:17,556 --> 00:42:19,680 আরো চোখের উপর চাকচিক্যময় হয় মানুষ চেক আউট হয় 954 00:42:19,680 --> 00:42:22,830 এই, সুপার গোপনীয় মনে হচ্ছে, কারণ কিন্তু এমনকি এটি একই জিনিস করছে, যদিও. 955 00:42:22,830 --> 00:42:26,695 আর তাই, উন্মুক্তভাবে, এই হল একটি অকারণে দৃশ্যত জটিল সমাধান 956 00:42:26,695 --> 00:42:27,320 সমস্যা. 957 00:42:27,320 --> 00:42:29,580 >> এটা, এখনও ভাল নকশা পাঁচটি নকশা জন্য পাঁচটি আউট, 958 00:42:29,580 --> 00:42:33,140 এটা বন্ধনীর মধ্যে কিনা স্বরলিপি বা পয়েন্টার স্বরলিপি. 959 00:42:33,140 --> 00:42:36,299 আমরা পেতে হলে, বিশেষ করে But-- পরে কোর্সে 5 pset মধ্যে 960 00:42:36,299 --> 00:42:39,340 আমরা যে অভিধান বাস্তবায়ন হলে যে আমি একটি বার দম্পতি উল্লেখ করেছি 961 00:42:39,340 --> 00:42:42,300 আমরা আসলে যত্নশীল হবেন নিম্ন স্তরের মেমরি অ্যাড্রেস 962 00:42:42,300 --> 00:42:44,140 আমরা সত্যিই বুঝতে পারে কি হচ্ছে. 963 00:42:44,140 --> 00:42:48,300 >> কিন্তু, এখন জন্য, এটা এই যে দেখা যাচ্ছে কোড এখানে বর্গাকার বন্ধনী লাইন 964 00:42:48,300 --> 00:42:49,900 সত্যিই কোন অস্তিত্ব নেই. 965 00:42:49,900 --> 00:42:52,230 তারা কি বলা হয় অন্বিত চিনি, যা 966 00:42:52,230 --> 00:42:58,390 বলার অপেক্ষা রাখে না শুধু একটি weirdly শীতল উপায় কম্পাইলার বর্গাকার বন্ধনী হতে পরিবর্তন 967 00:42:58,390 --> 00:43:00,420 যে গাণিতিক এক্সপ্রেশন. 968 00:43:00,420 --> 00:43:02,660 সুতরাং এটি একটি মানুষের রীতিনীতি শুধু লিখতে পাবে 969 00:43:02,660 --> 00:43:04,220 এইসব খুব ব্যবহারকারী বন্ধুত্বপূর্ণ বন্ধনী. 970 00:43:04,220 --> 00:43:06,850 কিন্তু কি কম্পাইলার, ঝনঝন, সত্যিই কোন সময় করছে 971 00:43:06,850 --> 00:43:10,970 আপনি লাইনে হাইলাইট করা হয়েছে তা লিখুন 24, ফণা নীচে এটি সত্যিই 972 00:43:10,970 --> 00:43:12,330 এই রূপান্তর. 973 00:43:12,330 --> 00:43:16,200 এটা একজন মানুষ হিসেবে শুধু আরও আনন্দদায়ক এর পড়তে এবং লাইন 24 মত কোড লিখতে. 974 00:43:16,200 --> 00:43:18,530 কিন্তু শেষ পর্যন্ত ঐ প্রশিক্ষণ চাকার খুব খসা 975 00:43:18,530 --> 00:43:21,780 নিজের আরাম পায় শক্তিশালী হলে. 976 00:43:21,780 --> 00:43:27,240 >> ঠিক আছে, তাই তখন যে এই প্রত্যাহার সবচেয়ে বড় সমস্যা ধরণের ছিল 977 00:43:27,240 --> 00:43:27,807 আমরা গাড়ীতে. 978 00:43:27,807 --> 00:43:30,640 আর যে এই পুরো sparked কি পয়েন্টার সম্পর্কে অভিশাপ কথোপকথন, 979 00:43:30,640 --> 00:43:32,340 এবং ঠিকানা, এবং অনুলিপি করা জিনিষ. 980 00:43:32,340 --> 00:43:35,410 আমরা উপর হোঁচট খেয়েছি, কারণ এটা ছিল এই স্টুপিড ইস্যু, যদ্দ্বারা 981 00:43:35,410 --> 00:43:38,830 আমি Lauren সঙ্গে logically-- বাস্তবায়িত এখানে ডেমো এবং কমলার রস আপ 982 00:43:38,830 --> 00:43:43,770 milk-- একটি পুরোপুরি algorithmically, সঠিক ফাংশন 983 00:43:43,770 --> 00:43:47,010 দুটি ভেরিয়েবল 'সোয়াপিং জন্য বর্তমান মানের, কিন্তু জঘন্য জিনিস 984 00:43:47,010 --> 00:43:50,550 কোনো ক্রমাগত আছে, বা করা হয়নি আমার কোড স্থায়ী, প্রভাব. 985 00:43:50,550 --> 00:43:51,820 >> আর যে ছিল কেন? 986 00:43:51,820 --> 00:43:54,650 সংক্ষেপে, এই হল কেন অদল-বদলের কাজটি বাস্তবায়ন 987 00:43:54,650 --> 00:43:58,740 কথাটি সঠিক, কিন্তু কোন প্রভাব রয়েছে এটি প্রেরণ করা হয় যে ভেরিয়েবলের উপর, 988 00:43:58,740 --> 00:44:01,119 প্রধান জন্য x এবং y মত? 989 00:44:01,119 --> 00:44:02,410 সমস্যা সারকথা কী ছিল? 990 00:44:02,410 --> 00:44:02,909 হ্যা? 991 00:44:02,909 --> 00:44:05,532 শ্রোতা: পরিবর্তনশীল প্রণীত কারণ পাস পরিবর্তনশীল কপি 992 00:44:05,532 --> 00:44:06,240 ফাংশন মাধ্যমে. 993 00:44:06,240 --> 00:44:09,060 >> ডেভিড জে MALAN: ঠিক, আপনি যখন পাস একটি ফাংশন মধ্যে ভেরিয়েবল, বা আর্গুমেন্ট 994 00:44:09,060 --> 00:44:11,030 একটি ফাংশন মধ্যে, তারা আছেন কপি কর্তৃক গৃহীত, যা 995 00:44:11,030 --> 00:44:14,770 আপনি খুঁজছেন একটি অভিন্ন পেতে মানে X এবং Y উভয় জন্য বিট প্যাটার্ন, 996 00:44:14,770 --> 00:44:15,955 A এবং B এখানে বলা. 997 00:44:15,955 --> 00:44:18,080 এবং আপনি কিছু করতে পারেন আপনি ঐ কপি চান, 998 00:44:18,080 --> 00:44:20,657 কিন্তু তারা কোন আছে চলুন কলিং ফাংশন উপর প্রভাব. 999 00:44:20,657 --> 00:44:22,990 এবং, আসলে, আমরা যে সৃষ্টি পর্দা, রিকল ছবি 1000 00:44:22,990 --> 00:44:25,520 সর্বশেষ সময়, যদ্দ্বারা আপনি যদি সত্যিই কি আমার মনে হয় 1001 00:44:25,520 --> 00:44:28,570 যদি hood-- নীচে যাওয়া এই, আপনার কম্পিউটার এর মেমরি হয় 1002 00:44:28,570 --> 00:44:31,650 এবং এখানে নিচে খণ্ড মেমরি, প্রধান জন্য ব্যবহৃত হচ্ছে 1003 00:44:31,650 --> 00:44:34,020 এই খণ্ড মেমরি, swap 'র জন্য ব্যবহৃত হচ্ছে 1004 00:44:34,020 --> 00:44:37,090 এবং তাই, এমনকি যদি প্রধান হয়েছে দুটি ভেরিয়েবল, এক্স এবং ওয়াই, 1005 00:44:37,090 --> 00:44:41,840 অদল-বদল অভিন্ন খুঁজছেন থাকতে পারে 1 এবং 2, উভয় যা মান, 1006 00:44:41,840 --> 00:44:44,520 কিন্তু তারা সম্পূর্ণভাবে আছেন মেমরি বিভিন্ন অংশ. 1007 00:44:44,520 --> 00:44:46,130 >> সুতরাং আমরা এই একটি সমাধান প্রয়োজন. 1008 00:44:46,130 --> 00:44:51,580 এবং সত্যি, এটা এখন আমরা যে মনে হবে ঠিক আছে, এই সমস্যার একটি সমাধান আছে. 1009 00:44:51,580 --> 00:44:55,760 আমরা এখন ক্ষমতা থাকে ঠিকানার মাধ্যমে জিনিষ নিপূণভাবে 1010 00:44:55,760 --> 00:44:59,310 এবং, সাজানোর Chutes এবং Ladders শৈলী, তিরগুলো অনুসরণ 1011 00:44:59,310 --> 00:45:02,820 এবং আমরা চাই যে কোন জায়গায় যেতে স্মৃতিতে, হরতাল ডাকবে না 1012 00:45:02,820 --> 00:45:06,220 এই সমস্যা সমাধানের জন্য প্রধান থেকে পাশ অদলবদল 1013 00:45:06,220 --> 00:45:09,650 না মান আমরা করতে চান অদল-বদলের কাজটি কিন্তু শুধু intuitively 1014 00:45:09,650 --> 00:45:11,630 আমরা কি পরিবর্তে অদলবদল পাস হতে পারে? 1015 00:45:11,630 --> 00:45:12,620 >> [ভয়েসেস interposing] 1016 00:45:12,620 --> 00:45:15,244 >> ডেভিড জে MALAN: কেন আমরা ঠিক না এটা ঠিক আছে, ঠিকানাগুলি পাস? 1017 00:45:15,244 --> 00:45:17,470 কেন আমরা swap 'র একটি দিতে হবে না ভাণ্ডারী মানচিত্র, যদি আপনি হবে, 1018 00:45:17,470 --> 00:45:20,950 যে এটা বাড়ে প্রকৃত মান x এবং y. 1019 00:45:20,950 --> 00:45:24,340 চলুন শুরু করা যাক swap ', আসলে পরিবর্তন যারা আসল বিট, বরং 1020 00:45:24,340 --> 00:45:26,797 শুধু বিট কপি ক্ষণস্থায়ী. 1021 00:45:26,797 --> 00:45:29,130 আর তাই, আসলে, যে কি যাচ্ছে সমাধান হতে. 1022 00:45:29,130 --> 00:45:31,899 এই সংস্করণ এখানে পরিষ্কারভাবে খারাপ এবং ভ্রান্ত. 1023 00:45:31,899 --> 00:45:35,190 এবং এখন, প্রথম নজরে, এটা ঠিক দেখায় মত আমরা এলোমেলোভাবে বড় একটি গুচ্ছ যোগ 1024 00:45:35,190 --> 00:45:37,106 এবং আমাদের আঙ্গুলের পার এটা কম্পাইল হবে. 1025 00:45:37,106 --> 00:45:38,460 কিন্তু, এটা এখন কম্পাইল হবে. 1026 00:45:38,460 --> 00:45:40,090 >> কিন্তু এর, এসবের অর্থ কি দেখতে দিন. 1027 00:45:40,090 --> 00:45:43,990 এবং, দুর্ভাগ্যবশত, লেখক সি অন্য কোনো চিহ্ন বেছে নিতে পারতেন 1028 00:45:43,990 --> 00:45:46,380 এই একটু করতে পরিষ্কার, কিন্তু তারকা অপারেটর 1029 00:45:46,380 --> 00:45:48,610 বিভিন্ন অর্থ রয়েছে দুটি ভিন্ন প্রেক্ষিতে. 1030 00:45:48,610 --> 00:45:50,890 আর আমরা উভয় দেখা করেছি, কিন্তু এর পার্থক্য যাক. 1031 00:45:50,890 --> 00:45:55,310 >> সেখানে উপরের আপ সুতরাং আমি A এবং B পরিবর্তিত হয়েছে যখন 1032 00:45:55,310 --> 00:46:00,470 খারাপ কোন int এর থেকে সংস্করণ বড়, A এবং B int করতে, 1033 00:46:00,470 --> 00:46:01,740 পূর্বে, পূর্ণসংখ্যার ছিল. 1034 00:46:01,740 --> 00:46:05,752 এখন একটি এবং বি কি হয় ভাল, সবুজ সংস্করণ? 1035 00:46:05,752 --> 00:46:06,900 তারা ঠিকানাগুলি আছেন. 1036 00:46:06,900 --> 00:46:09,610 কি, ঠিকানাও স্পষ্ট হতে? 1037 00:46:09,610 --> 00:46:10,770 পূর্ণসংখ্যার ঠিকানাও. 1038 00:46:10,770 --> 00:46:12,520 আমি যে তাই কোন int তারকা মানে বলছে 1039 00:46:12,520 --> 00:46:15,440 এই ঠিকানা একটি পূর্ণসংখ্যা, বিশেষভাবে. 1040 00:46:15,440 --> 00:46:19,120 >> তাই এখন কোডের লাইনে লক্ষ্য, অন্য কিছু খুব পরিবর্তিত হয়েছে. 1041 00:46:19,120 --> 00:46:22,770 tmp কারণ, একই থাকে এটা শুধু অস্থায়ী পূর্ণসংখ্যা, 1042 00:46:22,770 --> 00:46:24,110 সেখানে কোন স্মৃতি যাদু. 1043 00:46:24,110 --> 00:46:26,370 কিন্তু এখন একটি তারকা প্রয়োজন. 1044 00:46:26,370 --> 00:46:28,560 এবং, আসলে, যে A এবং B এর অন্যান্য উল্লেখ, 1045 00:46:28,560 --> 00:46:31,780 সব যে যে বিজ্ঞপ্তি লাল থেকে সবুজ পরিবর্তন 1046 00:46:31,780 --> 00:46:34,209 আমি prefixing করছি যে হয় বড় সঙ্গে যারা ভেরিয়েবল. 1047 00:46:34,209 --> 00:46:35,750 আমি A এবং B কপি করতে চান না, কারণ. 1048 00:46:35,750 --> 00:46:40,350 কারণ আমি শুধু A এবং B ও swap 'র কপি করে A এবং B, আমি আসলে কি সোয়াপিং করছি? 1049 00:46:40,350 --> 00:46:43,760 শুধু ঠিকানা, আমি অদলবদল করতে চান কি ঐ ঠিকানার এ. 1050 00:46:43,760 --> 00:46:44,860 আমি সেখানে যেতে চাই. 1051 00:46:44,860 --> 00:46:48,000 আর তাই তারা অপারেটর আমার ফাংশনের ভিতর, 1052 00:46:48,000 --> 00:46:51,700 না পরামিতি তালিকার ভিতরে, আপনি ঐ ঠিকানায় যেতে মানে 1053 00:46:51,700 --> 00:46:54,490 এবং আসলে সেই মান পরিবর্তন. 1054 00:46:54,490 --> 00:46:56,500 >> তাই কি ছবি আছে এখন পরিবর্তে অনুরূপ. 1055 00:46:56,500 --> 00:47:03,250 ওয়েল, এর পরিবর্তে যদি আমি পার করছি একটি জন্য এবং না 1 এবং B 2 না 1056 00:47:03,250 --> 00:47:05,790 আমি আসলে যুক্ত করতে হবে এখানে অন্য একটি সংজ্ঞা. 1057 00:47:05,790 --> 00:47:09,030 তাই এই অঞ্চলে যে অনুমান মেমরি পাঁচ 10 এ হয়. 1058 00:47:09,030 --> 00:47:12,960 >> এই পাঁচ 11 এ, কিন্তু এই একটি সরলীকরণ একটি বিট, 1059 00:47:12,960 --> 00:47:18,900 আমি এখন এক্স দুটি বিকল্প আমি পাস করতে হবে এবং y বা আমি তাদের বাসার ঠিকানাসহ পাস না? 1060 00:47:18,900 --> 00:47:22,500 আমি তাদের বাসার ঠিকানাসহ পাস হলে এই মত, আমি শুধু 1061 00:47:22,500 --> 00:47:25,390 এখন বাস্তবায়ন করতে হবে সবুজ কোড প্রতি অদল-বদলের কাজটি 1062 00:47:25,390 --> 00:47:29,080 যে দেখতে পায় তাই একটি এবং যখন এটা বি, এটা শুধু A এবং B কপি না সূচিত 1063 00:47:29,080 --> 00:47:30,540 দুধ এবং কমলার রস সরাতে. 1064 00:47:30,540 --> 00:47:32,664 দুধ এবং কমলার রস রূপক এখন ভেঙ্গে নিচে 1065 00:47:32,664 --> 00:47:35,060 যারা কারণ কাপ হয় তরল ও না ম্যাপের. 1066 00:47:35,060 --> 00:47:37,750 আমরা পরিবর্তে যেতে হবে 10 এবং আমরা মোকাবেলার 1067 00:47:37,750 --> 00:47:42,420 11 ঠিকানায় যেতে হবে, এবং তারপর যে সোয়াপিং যুক্তিবিজ্ঞান সঞ্চালন. 1068 00:47:42,420 --> 00:47:45,580 >> সুতরাং যুক্তি, একই কিন্তু আমরা সামান্য অন্যভাবে প্রয়োজন 1069 00:47:45,580 --> 00:47:47,160 যারা ভেরিয়েবল ব্যবহারের. 1070 00:47:47,160 --> 00:47:52,400 আর তাই শেষ পর্যন্ত, কি প্রোগ্রাম এই মত চেহারা আছে. 1071 00:47:52,400 --> 00:47:56,610 Swap.c আক্ষরিক কপি এবং সবুজ সংস্করণ আটকানো. 1072 00:47:56,610 --> 00:47:58,450 কিন্তু আমি একটা পরিবর্তন করা প্রয়োজন. 1073 00:47:58,450 --> 00:48:00,180 এটা শুধু অদল-বদলের কাজটি পরিবর্তন যথেষ্ট নয়. 1074 00:48:00,180 --> 00:48:03,830 কি কোড অন্য লাইনে আমি পরিবর্তন করতে হবে? 1075 00:48:03,830 --> 00:48:04,330 হ্যা? 1076 00:48:04,330 --> 00:48:05,770 >> শ্রোতা: এটা আর্গুমেন্ট লাগে যেখানে. 1077 00:48:05,770 --> 00:48:07,603 >> ডেভিড জে MALAN: কোথায় এটা তার আর্গুমেন্ট গ্রহণ করা হয়. 1078 00:48:07,603 --> 00:48:09,985 তাই আমি মূল স্ক্রল আপ, তাহলে আমি শুধু x এবং y এর মধ্যে পাস করতে পারবে না, 1079 00:48:09,985 --> 00:48:12,820 এবং, আমি গত অঙ্গীকার নতুন বাক্য গঠন টুকরা আজ. 1080 00:48:12,820 --> 00:48:17,200 আমি না X মধ্যে পাস করতে হবে এবং Y কিন্তু x এবং y এর ঠিকানা. 1081 00:48:17,200 --> 00:48:20,400 এবং এটা, প্রতীক সক্রিয় আউট সি এর লেখক নেওয়া হয়েছে যে 1082 00:48:20,400 --> 00:48:23,860 আপনি এখানে একটি ampersand ব্যবহার যদি না করতে হয় bitwise এম্পারসেন্ড দিয়ে বিভ্রান্ত করা, 1083 00:48:23,860 --> 00:48:27,130 আপনি কি চান একজন এম্পারসেন্ড ব্যবহার করা হলে এখানে এবং এখানে একটি এম্পারসেন্ড, 1084 00:48:27,130 --> 00:48:29,570 এই, তোমার জন্য পরিসংখ্যান x এর ঠিকানা কি, 1085 00:48:29,570 --> 00:48:31,740 হয়তো এটা 10 এর, কি y এর ঠিকানা, হয়তো এটা 1086 00:48:31,740 --> 00:48:35,400 11, এবং পরিবর্তে যারা প্রেরণ করা হয়. 1087 00:48:35,400 --> 00:48:37,210 >> তাই অনেক একবারে সব শুষে. 1088 00:48:37,210 --> 00:48:40,190 কিন্তু এর মধ্যে দ্রুত এখন দেখা যাক আমাদের অবশিষ্ট চার মিনিট 1089 00:48:40,190 --> 00:48:42,150 যেখানে কিছু টেরা যেতে পারেন. 1090 00:48:42,150 --> 00:48:45,120 এবং একটি সরাইয়া, আসলে যেমন আমি ছবি তোলেন, 1091 00:48:45,120 --> 00:48:46,920 মেমরি একটি বা দুটি আগে ছবি তোলেন. 1092 00:48:46,920 --> 00:48:49,190 তাই এই ফিরে কোণায় হয় ইলিয়ট ডাইনিং হলের. 1093 00:48:49,190 --> 00:48:52,310 পয়েন্টার সম্ভবত কঠিন হয় আমরা CS50 মধ্যে আবরণ যে বিষয়ে. 1094 00:48:52,310 --> 00:48:54,810 আপনি সাজান চিন্তা যদি তাই হয়তো এটা ভালো ঢাল হয় 1095 00:48:54,810 --> 00:48:56,770 একটি হকি স্টিক এর আরো এই মত, বুঝতে পারছি 1096 00:48:56,770 --> 00:49:00,160 আমরা ধরনের একটি শিখর কাছাকাছি করছি ধারণাগত জটিলতা শর্তাবলী. 1097 00:49:00,160 --> 00:49:02,300 >> আর আমি এই আনা ছবি, আমি শপথ করে বলছি, কারণ 1098 00:49:02,300 --> 00:49:05,920 পতনের পর 1996 সালে ঈশ্বর, এর সাথে, যখন আমি গ্রহণ আমার সহকর্মী শিক্ষণ সঙ্গে CS50, 1099 00:49:05,920 --> 00:49:09,620 নিশাত মেহতা, তিনি আমাকে বসলেন লাঞ্চ উপর ইলিয়ট ডি হলের কোণে, 1100 00:49:09,620 --> 00:49:12,330 বা ডিনার, অথবা কিছু চেষ্টা আমার পয়েন্টার বুঝতে সাহায্য করার জন্য. 1101 00:49:12,330 --> 00:49:16,520 আমি এক সপ্তাহ পরে ছিল এবং এই হল যেখানে এটা বক্তৃতা যখন চালু ছিল 1102 00:49:16,520 --> 00:49:18,170 পরিশেষে আমি পয়েন্টার বোঝা. 1103 00:49:18,170 --> 00:49:20,590 আর আমি এই যে আশাবাদী নই পর্যন্ত যত তাড়াতাড়ি আপনি জন্য ক্লিক করতে হবে. 1104 00:49:20,590 --> 00:49:23,540 কিন্তু একেবারে মধ্যে এই উপলব্ধি আরো পরিশীলিত বিষয় 1105 00:49:23,540 --> 00:49:24,420 আমরা দিকে তাকিয়ে থাকেন. 1106 00:49:24,420 --> 00:49:25,819 কিন্তু এটা সবচেয়ে শক্তিশালী মধ্যে আছে. 1107 00:49:25,819 --> 00:49:28,860 আপনি এটা পেতে হলে, এটা সত্যিই সব শুধু অবশেষে একসঙ্গে আসতে যাচ্ছে. 1108 00:49:28,860 --> 00:49:31,460 তাই বাকি একটিও ভাষা ব্যবহারযোগ্য না আশ্বস্ত আজ সব বেসিনে প্রয়োজন. 1109 00:49:31,460 --> 00:49:32,980 >> সুতরাং এখানে সর্বশেষ প্রোগ্রাম আমরা তাকান চলুন. 1110 00:49:32,980 --> 00:49:35,605 আর আমরা একটি সঙ্গে শেষ হয়ে যাচ্ছেন claymation দ্রুত তিন মিনিট 1111 00:49:35,605 --> 00:49:37,030 আমাদের বন্ধু, নিক Parlante দ্বারা তৈরি. 1112 00:49:37,030 --> 00:49:41,440 এখানে একটি প্রোগ্রাম উপরের দুটি যে, এর লাইন একটি পরিবর্তনশীল x এবং y ঘোষণা. 1113 00:49:41,440 --> 00:49:44,780 উভয় যা ঠিকানাগুলো পূর্ণসংখ্যার, ওরফে পয়েন্টার. 1114 00:49:44,780 --> 00:49:48,125 আমরা তখন যথেষ্ট বরাদ্দ মেমরি কোন int সংরক্ষণ করতে 1115 00:49:48,125 --> 00:49:51,344 এবং ঠিকানা সংরক্ষণ X মধ্যে যে মেমরি. 1116 00:49:51,344 --> 00:49:53,260 সুতরাং, এটা এমনকি সহজ এর আগে যেমন বেশী. 1117 00:49:53,260 --> 00:49:56,100 আমার মেমরির চার বাইট দিন যে কোন int এর আকার, 1118 00:49:56,100 --> 00:49:58,000 এবং এক্স যে অঙ্ক করা. 1119 00:49:58,000 --> 00:50:01,070 এই লাইন এখানে মানে এক্স ঠিকানায় যান 1120 00:50:01,070 --> 00:50:05,270 এবং এর কোন অর্থ গ্রহণ করা জীবন, সেখানে 42 নম্বর. 1121 00:50:05,270 --> 00:50:07,710 কিন্তু এই লাইন সম্পর্কে চিন্তিত. 1122 00:50:07,710 --> 00:50:12,620 Y Y এ ঠিকানায় যান মানে তারা, এবং সেখানে দুর্ভাগ্য নম্বর 13 করা. 1123 00:50:12,620 --> 00:50:15,780 কেন এই সময়ে, এটা বিপজ্জনক গল্পে যদ্যপি দ্রুত জানান 1124 00:50:15,780 --> 00:50:17,980 আমাদের ক্ষীয়মাণ মিনিটের মধ্যে এখানে কেন এটা খারাপ 1125 00:50:17,980 --> 00:50:19,660 আমার বলার জন্য, Y মধ্যে ঠিকানায় যান? 1126 00:50:19,660 --> 00:50:21,077 >> শ্রোতা: আপনার কাছে নেই [শ্রবণাতীত]. 1127 00:50:21,077 --> 00:50:22,910 ডেভিড জে MALAN: আমি না আছে Y এর মধ্যে কিছু করা. 1128 00:50:22,910 --> 00:50:25,520 সুতরাং y এর মান কি, গল্পের এই সময়ে? 1129 00:50:25,520 --> 00:50:26,570 আমরা কোন ধারণা আছে. 1130 00:50:26,570 --> 00:50:29,190 এটা কিছু আবর্জনা মান এবং না একটি পোলট্রি জানে. 1131 00:50:29,190 --> 00:50:32,532 আমরা এই নোট শেষ করতে সক্ষম হতাম. 1132 00:50:32,532 --> 00:50:34,832 >> [ভিডিও প্লেব্যাক] 1133 00:50:34,832 --> 00:50:36,500 >> -আরে, Binky, জেগে ওঠা. 1134 00:50:36,500 --> 00:50:39,140 এটা মজা করার জন্য পয়েন্টার সময়. 1135 00:50:39,140 --> 00:50:40,210 >> -ওটা কী? 1136 00:50:40,210 --> 00:50:41,690 পয়েন্টার সম্পর্কে জানুন? 1137 00:50:41,690 --> 00:50:43,570 ওহ, বুড়ি. 1138 00:50:43,570 --> 00:50:46,600 >> -ওয়েল, শুরু, আমি মনে করি আমরা করছি অনুমান একটি দম্পতি পয়েন্টার প্রয়োজন যাচ্ছে. 1139 00:50:46,600 --> 00:50:47,380 >> -ঠিক আছে. 1140 00:50:47,380 --> 00:50:51,120 এই কোড দুই পয়েন্টার বরাদ্দ যা পূর্ণসংখ্যার নির্দেশ করতে পারেন. 1141 00:50:51,120 --> 00:50:53,557 >> -OK, ভাল আমি দেখতে দুই পয়েন্টার, কিন্তু তারা 1142 00:50:53,557 --> 00:50:55,140 কিছু ইশারা হবে বলে মনে হচ্ছে না. 1143 00:50:55,140 --> 00:50:55,970 >> -সেটা ঠিক. 1144 00:50:55,970 --> 00:50:58,100 প্রাথমিকভাবে পয়েন্টার কিছু নির্দেশ করে না. 1145 00:50:58,100 --> 00:51:00,950 তারা নির্দেশ জিনিস pointees বলা হয় এবং তাদের স্থাপনের 1146 00:51:00,950 --> 00:51:02,330 একটি পৃথক ধাপ. 1147 00:51:02,330 --> 00:51:03,210 >> ঠিক আছে, ঠিক আছে, -ওহ. 1148 00:51:03,210 --> 00:51:03,940 আমি ঐটা জানতাম. 1149 00:51:03,940 --> 00:51:05,730 pointees আলাদা. 1150 00:51:05,730 --> 00:51:08,310 সুতরাং কিভাবে আপনি একটি pointee বরাদ্দ না? 1151 00:51:08,310 --> 00:51:11,960 >> -OK, পাশাপাশি এই কোড বরাদ্দ একটি নতুন ইন্টিজার pointee, 1152 00:51:11,960 --> 00:51:15,050 এবং এই অংশ সেট X তা নির্দেশ করার জন্য. 1153 00:51:15,050 --> 00:51:16,240 >> -আরে, যে ভালো দেখায়. 1154 00:51:16,240 --> 00:51:17,743 সুতরাং এটা কিছু না করা. 1155 00:51:17,743 --> 00:51:23,580 >> -OK, আমি করব পয়েন্টার এক্স ডি-রেফারেন্স তার pointee মধ্যে 42 নম্বর সঞ্চয়. 1156 00:51:23,580 --> 00:51:27,130 এই কৌতুক জন্য, আমি হবে আমার dereferencing যাদু জাদুদণ্ড. 1157 00:51:27,130 --> 00:51:30,200 >> Dereferencing এর -আপনার যাদু জাদুদণ্ড? 1158 00:51:30,200 --> 00:51:32,310 আহ, যে, যে মহান. 1159 00:51:32,310 --> 00:51:34,270 >> -এই কোড দেখে মনে হচ্ছে কি. 1160 00:51:34,270 --> 00:51:35,970 আমি শুধু সংখ্যা সেট আপ করব and-- 1161 00:51:35,970 --> 00:51:37,070 >> [পপ শব্দ] 1162 00:51:37,070 --> 00:51:39,140 >> -আরে, এটা যায় সেখানে দেখুন. 1163 00:51:39,140 --> 00:51:43,980 সুতরাং, x এর একটি dereference করছেন অনুসরণ তীর তার pointee অ্যাক্সেস. 1164 00:51:43,980 --> 00:51:46,150 এই ক্ষেত্রে, সেখানে যাও 42 সঞ্চয়. 1165 00:51:46,150 --> 00:51:50,700 আরে, সংখ্যা সংরক্ষণ করার জন্য এটি ব্যবহার করার চেষ্টা করুন অন্যান্য পয়েন্টার মাধ্যমে 13, Y. 1166 00:51:50,700 --> 00:51:51,840 >> -ঠিক আছে. 1167 00:51:51,840 --> 00:51:56,270 আমি শুধু Y এখানে উপর যাবেন, এবং 13 নম্বর সেট আপ পেতে. 1168 00:51:56,270 --> 00:52:00,380 এবং তারপর এর জাদুদণ্ড নিতে dereferencing এবং ঠিক করা 1169 00:52:00,380 --> 00:52:01,646 >> [হর্ণ শব্দ] 1170 00:52:01,646 --> 00:52:04,080 >> -ওহ, আরে যে কাজ করা হয়নি. 1171 00:52:04,080 --> 00:52:06,470 , একটি পোলট্রি আহ, আমি না, বলুন dereferencing মনে 1172 00:52:06,470 --> 00:52:10,850 সেটিং কারণ Y, একটি ভাল ধারণা আপ pointee একটি পৃথক ধাপ. 1173 00:52:10,850 --> 00:52:12,480 আমি এবং আমরা কখনও তা মনে করি না. 1174 00:52:12,480 --> 00:52:14,620 >> -Hmm, ভাল পয়েন্ট. 1175 00:52:14,620 --> 00:52:19,810 >> হ্যা, আমরা পয়েন্টার, y বরাদ্দ, কিন্তু আমরা একটি pointee নির্দেশ সেট কখনও. 1176 00:52:19,810 --> 00:52:21,590 >> -Hmm, খুব সজাগ. 1177 00:52:21,590 --> 00:52:23,215 -আরে, আপনি সেখানে একটি পোলট্রি ভাল খুঁজছেন. 1178 00:52:23,215 --> 00:52:26,390 আপনি যাতে এটা ঠিক করতে পারবো Y পয়েন্ট X হিসাবে একই pointee. 1179 00:52:26,390 --> 00:52:29,290 >> -নিশ্চিত, আমি আমার যাদু জাদুদণ্ড ব্যবহার পয়েন্টার নিয়োগ. 1180 00:52:29,290 --> 00:52:31,970 >> একটি হতে যাচ্ছে যে -কি সমস্যা নেই, আগের মতই? 1181 00:52:31,970 --> 00:52:33,790 >> -না, এই pointees না স্পর্শ না. 1182 00:52:33,790 --> 00:52:35,840 এটা শুধু একটা পয়েন্টার পরিবর্তন একই জিনিস করতে নির্দেশ 1183 00:52:35,840 --> 00:52:36,465 >> [শব্দ পপিং] 1184 00:52:36,465 --> 00:52:37,450 অন্য --as. 1185 00:52:37,450 --> 00:52:38,440 >> -আচ্ছা বুঝলাম. 1186 00:52:38,440 --> 00:52:41,200 X একই জায়গা থেকে এখন Y পয়েন্ট. 1187 00:52:41,200 --> 00:52:42,950 সুতরাং, এখন Y সংশোধন করা হয়েছে, অপেক্ষা করুন. 1188 00:52:42,950 --> 00:52:44,110 এটি একটি pointee আছে. 1189 00:52:44,110 --> 00:52:47,779 সুতরাং আপনি জাদুদণ্ড চেষ্টা করতে পারেন 13 ওভার পাঠাতে আবার dereferencing. 1190 00:52:47,779 --> 00:52:51,110 >> -ওহ, ঠিক আছে, এখানে যায়. 1191 00:52:51,110 --> 00:52:52,330 >> -আরে, যে তাকান. 1192 00:52:52,330 --> 00:52:53,570 এখন Y তে কাজ dereferencing. 1193 00:52:53,570 --> 00:52:57,900 আর পয়েন্টার ভাগ করা হয়, কারণ এক pointee যে, তারা উভয় 13 দেখুন. 1194 00:52:57,900 --> 00:52:59,952 >> হ্যা, শেয়ারিং, আহ, যাই হোক না কেন. 1195 00:52:59,952 --> 00:53:01,535 সুতরাং, আমরা এখন জায়গা সুইচ করতে যাচ্ছি? 1196 00:53:01,535 --> 00:53:03,730 >> -ওহ, আমরা সময় ফুরিয়েছে দেখুন. 1197 00:53:03,730 --> 00:53:04,660 >> -But-- 1198 00:53:04,660 --> 00:53:06,520 >> তিন পয়েন্টার নিয়ম মনে -শুধু. 1199 00:53:06,520 --> 00:53:09,550 সংখ্যা 1, মৌলিক কাঠামো আপনি একটি ইশারা আছে, 1200 00:53:09,550 --> 00:53:11,630 এবং এটি একটি pointee পয়েন্ট. 1201 00:53:11,630 --> 00:53:13,740 কিন্তু পয়েন্টার এবং pointee আলাদা. 1202 00:53:13,740 --> 00:53:15,620 এবং সাধারণ ত্রুটি একটি পয়েন্টার সেট আপ করতে হয় 1203 00:53:15,620 --> 00:53:18,000 কিন্তু এটি একটি pointee দিতে ভুলবেন না. 1204 00:53:18,000 --> 00:53:21,170 >> সংখ্যা 2, পয়েন্টার dereferencing পয়েন্টার আরম্ভ 1205 00:53:21,170 --> 00:53:24,020 এবং তার উপর তীর অনুসরণ তার pointee অ্যাক্সেস. 1206 00:53:24,020 --> 00:53:27,815 আমরা সব জানি, এই শুধুমাত্র সেখানে যদি কাজ ধরনের ফিরে পায় যা একটি pointee, হয় 1207 00:53:27,815 --> 00:53:29,260 সংখ্যা 1 শাসন করার. 1208 00:53:29,260 --> 00:53:31,990 >> সংখ্যা 3, পয়েন্টার নিয়োগ এক পয়েন্টার নেয় 1209 00:53:31,990 --> 00:53:35,330 এবং নির্দেশ পরিবর্তন অন্য পয়েন্টার হিসাবে একই pointee. 1210 00:53:35,330 --> 00:53:37,150 নিয়োগ পরে তাই, দুই পয়েন্টার 1211 00:53:37,150 --> 00:53:40,927 একই pointee নির্দেশ করবে, কখনও কখনও যে শেয়ারিং বলা হচ্ছে. 1212 00:53:40,927 --> 00:53:42,510 এবং যে সত্যিই, এটা আছে সব. 1213 00:53:42,510 --> 00:53:43,130 বিদায় এখন. 1214 00:53:43,130 --> 00:53:43,475 >> [END টি প্লেব্যাক] 1215 00:53:43,475 --> 00:53:44,830 >> ডেভিড জে MALAN: যে CS50 জন্য এটি. 1216 00:53:44,830 --> 00:53:46,246 অধ্যাপক নিক Parlante ধন্যবাদ. 1217 00:53:46,246 --> 00:53:47,730 আমরা আগামী সপ্তাহে আপনি দেখতে পাবেন. 1218 00:53:47,730 --> 00:53:51,706 1219 00:53:51,706 --> 00:53:56,435 >> [বৈদ্যুতিন সঙ্গীত বাজাচ্ছি] 1220 00:53:56,435 --> 00:57:22,775