1 00:00:00,000 --> 00:00:06,180 2 00:00:06,180 --> 00:00:07,820 >> JASON HIRSCHHORN: স্বাগতম A5 করতে, সবাই. 3 00:00:07,820 --> 00:00:11,270 আমরা এগিয়ে আমাদের একটি উত্তেজনাপূর্ণ সপ্তাহে আছে তাই অনেক নতুন আছে বেশিরভাগই কারণ 4 00:00:11,270 --> 00:00:12,350 এই রুমে সম্মুখীন হবে. 5 00:00:12,350 --> 00:00:12,920 এটা বিস্ময়কর. 6 00:00:12,920 --> 00:00:15,740 আপনি অনেক দৃর্ঘটনায় এখানে আছেন, যা আরও ভাল হয়. 7 00:00:15,740 --> 00:00:18,220 তাই আশা করছি আপনি আমাদের সাথে যোগ যাব. 8 00:00:18,220 --> 00:00:20,220 >> এই সপ্তাহে আমরা কাটাতে চলুন অধ্যায় বাল্ক 9 00:00:20,220 --> 00:00:21,870 ব্যঙ্গ জন্য প্রস্তুতি নিচ্ছে. 10 00:00:21,870 --> 00:00:26,580 আমাদের বিষয়সূচি প্রতি সুতরাং, আমরা কথা বলতে যাচ্ছেন বর্গ জন্য সম্পদ সম্পর্কে একটি বিট, 11 00:00:26,580 --> 00:00:30,350 কিন্তু ব্যঙ্গ জন্য, এবং তারপর আবার,, বর্গ টকিং বাল্ক ব্যয় 12 00:00:30,350 --> 00:00:31,390 প্রশ্ন সম্পর্কে. 13 00:00:31,390 --> 00:00:33,900 আমরা উত্তর একবার হয়ে গেলে আপনার প্রশ্ন, অথবা যদি আপনার প্রশ্ন 14 00:00:33,900 --> 00:00:39,010 স্বাভাবিকভাবেই আমি, কিছু কোডিং আমাদের নেতৃত্ব midterms থেকে নমুনা সমস্যা 15 00:00:39,010 --> 00:00:43,180 আমরা বিভাগে লাইভ কোড যে অতীত একসাথে এছাড়াও কিছু অন্যান্য আসা যে 16 00:00:43,180 --> 00:00:45,420 আবরণ ভাল বিষয়. 17 00:00:45,420 --> 00:00:48,280 >> সুতরাং প্রথম, আমরা ধরে মাধ্যমে সর্বস্বান্ত করেছি আপনাকে মনে করিয়ে দিতে গত কয়েক সপ্তাহ 18 00:00:48,280 --> 00:00:51,700 বলছি, সম্পদ একটি টন আছে এই কোর্সের জন্য উপলব্ধ. 19 00:00:51,700 --> 00:00:55,020 তাদের মধ্যে অনেক অবিশ্বাস্যভাবে সহায়ক হবে আপনার কাছে যদি আপনি চালিয়ে হিসেবে 20 00:00:55,020 --> 00:00:57,280 , ব্যঙ্গ 0 জন্য অধ্যয়ন কারণ এটা মঙ্গলবার বিকেলে এর. 21 00:00:57,280 --> 00:00:59,630 সুতরাং আপনি সব হয়েছে একটি বিট জন্য অধ্যয়নরত. 22 00:00:59,630 --> 00:01:02,640 >> বক্তৃতা নোট এবং উৎস আছে কোড যে আপনি উচিত 23 00:01:02,640 --> 00:01:04,050 স্পষ্টভাবে চেক আউট. 24 00:01:04,050 --> 00:01:05,019 হাফপ্যান্ট দেখুন. 25 00:01:05,019 --> 00:01:07,470 Study.cs50.net দেখুন. 26 00:01:07,470 --> 00:01:11,770 এবং তারপর, একটি সংখ্যা, নীচে তালিকাবদ্ধ অন্যান্য সম্পদ. 27 00:01:11,770 --> 00:01:14,020 >> আবার, ব্যঙ্গ 0 আগামীকাল হয় 1 বাজে সময়ে. 28 00:01:14,020 --> 00:01:18,230 যদি আপনি ইতিমধ্যে এটি না করে থাকেন, চেক উপর আমার ক্যুইজ 0 দস্তাবেজ আউট 29 00:01:18,230 --> 00:01:21,370 চিন্তা করা অবশ্যই এর হোমপেজে আপনি ব্যঙ্গ গ্রহণ করছেন না. 30 00:01:21,370 --> 00:01:25,770 প্রশ্নোত্তর 1:10 আরম্ভ এবং 70 মিনিট পরে শেষ হয়. 31 00:01:25,770 --> 00:01:29,610 আপনি 1:10 পরে দেখা সুতরাং, যদি আপনি আছেন যে অনেক কম মিনিটের পেতে যাচ্ছে 32 00:01:29,610 --> 00:01:30,940 70 ব্যঙ্গ নিতে চেয়ে. 33 00:01:30,940 --> 00:01:33,570 তাই আপনি যদি সময়মত সেখানে থাকেন নিশ্চিত করুন. 34 00:01:33,570 --> 00:01:38,690 আপনি একটি এক্সটেনশন ছাত্র হন বা আছে কিছু অন্যান্য পরীক্ষার বিবেচ্য বিষয়, এটা 35 00:01:38,690 --> 00:01:40,400 1 বাজে আগামীকাল এ নাও হতে পারে. 36 00:01:40,400 --> 00:01:43,540 কিন্তু আবার, সম্পর্কে ক্যুইজ 0 পরীক্ষা নিশ্চিত করুন যে আপনি যখন জানতে করা নথিতে 37 00:01:43,540 --> 00:01:44,760 আপনি ব্যঙ্গ গ্রহণ করছেন. 38 00:01:44,760 --> 00:01:46,440 আমি এখানে 75 মিনিটের লিখেছে. 39 00:01:46,440 --> 00:01:48,580 আমি যে 70, ডান না মনে করি. 40 00:01:48,580 --> 00:01:53,420 >> এটি একটি সপ্তাহ 0 থেকে সব উপাদান জুড়ে বুধবার গত সপ্তাহে এর বক্তৃতা করতে. 41 00:01:53,420 --> 00:01:59,350 এবং আবার, এই ব্যঙ্গ জন্য, যে প্রতি নথি, আপনি এক দুই পার্শ্বযুক্ত পেতে এবং 8 42 00:01:59,350 --> 00:02:03,770 আপনি পেতে যে কাগজ 11 শীট দ্বারা 1/2 ব্যঙ্গ সময় নোট হিসাবে ব্যবহার করার জন্য. 43 00:02:03,770 --> 00:02:08,570 অনেকে, অধিকাংশ লোক, যদি না পাওয়া যে একক সবচেয়ে বড় উপায় 44 00:02:08,570 --> 00:02:11,970 ব্যঙ্গ জন্য অধ্যয়ন করতে হয় একটি গবেষণায় শীট, একটি করুন 45 00:02:11,970 --> 00:02:13,730 তাদের নিজস্ব এক-Sider,. 46 00:02:13,730 --> 00:02:17,710 তাই অতীতের বেশী তাকান আপনি অতীতের বেশী দেখা করেছি. 47 00:02:17,710 --> 00:02:19,960 দেখতে বন্ধুদের কাছে পৌঁছানো কি তারা তাদের উপর স্থাপন করছি. 48 00:02:19,960 --> 00:02:23,610 >> কিন্তু হাত ডাউন, আপনি যা করতে পারেন সবচেয়ে ভালো উপায় গবেষণা সবকিছু মধ্য দিয়ে যেতে হয় এবং 49 00:02:23,610 --> 00:02:26,530 কি করা উচিত বা উচিত যাও ছুরিবিশেষ ডাউন যে পত্রকে অন্তর্গত নয় 50 00:02:26,530 --> 00:02:30,570 কাগজ, যে মাত্র একটি সত্যিই কারণ আপনি নিশ্চিত জন্য সহায়ক উপায় 51 00:02:30,570 --> 00:02:33,620 আপনি সবকিছু দিয়ে যাচ্ছিলেন এবং করছি এটা দিয়ে কিছু ঘনিষ্ঠতা আছে. 52 00:02:33,620 --> 00:02:36,690 অধিকাংশ মানুষ, আমরা, যদিও তারা কাগজ শীট ডান বসা আছে 53 00:02:36,690 --> 00:02:39,840 ব্যঙ্গ তাদের পাশে, চালু না এটি করার জন্য, আবার, যে খুব, কারণ 54 00:02:39,840 --> 00:02:43,290 তথ্য মাধ্যমে চালু করার প্রক্রিয়া তাদের এটা জানতে সাহায্য করেছে. 55 00:02:43,290 --> 00:02:45,370 >> কেহ কোন প্রশ্ন আছে ব্যঙ্গ 0 সম্পর্কে কি? 56 00:02:45,370 --> 00:02:50,120 57 00:02:50,120 --> 00:02:51,450 সবাই আছে - 58 00:02:51,450 --> 00:02:53,230 আমি হাতের একটি শো করতে যাচ্ছি না. 59 00:02:53,230 --> 00:02:53,550 কিছু মনে করবেন না. 60 00:02:53,550 --> 00:02:54,790 আমি কে জিজ্ঞাসা যাচ্ছে অধ্যয়নরত শুরু. 61 00:02:54,790 --> 00:02:58,360 কিন্তু আমি আপনি করতে চান না সব আপনার হাত বাড়াতে না. 62 00:02:58,360 --> 00:03:01,290 আমি আগেই বলেছি তাই মত - হ্যাঁ, Avi, এগিয়ে যান. 63 00:03:01,290 --> 00:03:04,205 >> AVI: কি একটি দরকারী জিনিস হতে হবে এক পেজার রাখতে? 64 00:03:04,205 --> 00:03:05,875 >> ছাত্র: এটা আপনার উপর. 65 00:03:05,875 --> 00:03:08,210 >> JASON HIRSCHHORN: আপনি পেতে আপনার রায় ব্যবহার করতে. 66 00:03:08,210 --> 00:03:13,220 এক পেজার রাখতে দরকারী জিনিস, আপনার বড় হে সম্পর্কে বিভ্রান্ত হয় 67 00:03:13,220 --> 00:03:17,510 অনুসন্ধানে বিভিন্ন ধরনের রানটাইম এবং প্রকারের, একটি মধ্যে আছে উপর যে করা 68 00:03:17,510 --> 00:03:18,760 কুশলী সপ্রতিভ চার্ট. 69 00:03:18,760 --> 00:03:22,250 এই ভাবে, আপনি যে জিজ্ঞাসা করছি ব্যঙ্গ, আপনি চেষ্টা এবং চিত্রে করতে হবে না 70 00:03:22,250 --> 00:03:23,560 এটি বা রানটাইম মাধ্যমে কারণে. 71 00:03:23,560 --> 00:03:24,730 আপনি শুধু এটা দমন কপি করতে পারবে. 72 00:03:24,730 --> 00:03:28,320 আপনি ক্যুইজ অতীত, অনেক তাকান বার, সময় প্রশ্ন আছে চলমান এর. 73 00:03:28,320 --> 00:03:34,150 যাতে এর একটি ভাল একটি উদাহরণ হবে আপনার এক পেজার উপর করা জিনিস. 74 00:03:34,150 --> 00:03:37,450 >> আপনি যদি, রাখতে অন্য ভাল জিনিস ডিক্লেয়ার করার পদ্ধতি সম্পর্কে বিভ্রান্ত একটি 75 00:03:37,450 --> 00:03:40,570 ফাংশন বা কি বিভিন্ন অংশ ফাংশন ঘোষণা লিখুন, হয় 76 00:03:40,570 --> 00:03:43,400 যে আছে, একটি জেনেরিক সংস্করণ এবং তারপর হয়তো একটি উদাহরণ. 77 00:03:43,400 --> 00:03:47,290 আপনি পয়েন্টার সম্পর্কে বিভ্রান্ত হন, পয়েন্টার কাজ কিভাবে একটি ডায়াগ্রাম 78 00:03:47,290 --> 00:03:48,660 সম্ভবত সত্যিই সহায়ক. 79 00:03:48,660 --> 00:03:52,440 আপনি recursion একটি সম্পর্কে বিভ্রান্ত হন, সেখানে নেভিগেশন recursive ফাংশন নমুনা 80 00:03:52,440 --> 00:03:54,980 সত্যিই সহায়ক হতে প্রমাণ পারে. 81 00:03:54,980 --> 00:03:57,290 যে আপনি কিছু ধারনা দিতে হবে কেন? 82 00:03:57,290 --> 00:04:01,820 >> AVI: আপনি বুঝতে প্রয়োজন ভালো সমগ্র কম্পাইল প্রক্রিয়া, 83 00:04:01,820 --> 00:04:03,220 কিভাবে সব কাজ যে? 84 00:04:03,220 --> 00:04:06,620 >> JASON HIRSCHHORN: সবকিছু যে আচ্ছাদিত হয়েছে পারা 85 00:04:06,620 --> 00:04:08,060 ব্যঙ্গ দেখাবে. 86 00:04:08,060 --> 00:04:08,930 প্রশ্ন - 87 00:04:08,930 --> 00:04:11,300 কিন্তু আবার, কিছু কিছু বিষয় হবে অন্যদের চেয়ে প্রচন্ডভাবে পরিমেয়. 88 00:04:11,300 --> 00:04:14,330 কিছু জিনিস আবার আসতে হবে এবং আবার ক্লাসে, এ 89 00:04:14,330 --> 00:04:15,590 বক্তৃতা, ও বিভাগে. 90 00:04:15,590 --> 00:04:17,220 অন্যান্য জিনিষ না থাকে যে প্রায়ই চলে আসে. 91 00:04:17,220 --> 00:04:22,900 >> আমরা # অন্তর্ভুক্ত এবং সম্পর্কে অনেক কথা বলত করেছি -L কিছু এবং কি যারা এ অর্থ 92 00:04:22,900 --> 00:04:24,390 সংকলন প্রক্রিয়া. 93 00:04:24,390 --> 00:04:29,120 আমরা আটকে থাকা, GDB সম্পর্কে অনেক কথা বলত করেছি আমরা ব্যবহার করে যারা ভিন্ন পতাকা যখন 94 00:04:29,120 --> 00:04:33,100 আমরা কিছু কম্পাইল, এবং কি make15, যেমন, সত্যিই 95 00:04:33,100 --> 00:04:34,510 অর্থ এবং সত্যিই আছে. 96 00:04:34,510 --> 00:04:38,110 আমরা প্রায় হিসাবে অনেক কথা বলা হয়নি প্রতি একক পদক্ষেপ 97 00:04:38,110 --> 00:04:39,240 সংকলন প্রক্রিয়া. 98 00:04:39,240 --> 00:04:40,410 আমরা এখনও এটি সম্পর্কে সায়ীদ করেছি. 99 00:04:40,410 --> 00:04:42,550 তাই এটি এখনও যে আপনি কিছু সঙ্গে পরিচিত হতে হবে. 100 00:04:42,550 --> 00:04:44,610 কিন্তু আবার, আমরা হতে যাচ্ছেন না - 101 00:04:44,610 --> 00:04:49,140 ক্লাসে আরও প্রায়ই চলে আসে যে আরো চিন্তা করার সম্ভাবনা বেশি 102 00:04:49,140 --> 00:04:52,495 প্রায়ই এবং আরো ব্যাপকভাবে হতে ব্যঙ্গ নেভিগেশন পরিমেয়. 103 00:04:52,495 --> 00:04:53,280 >> কুল. 104 00:04:53,280 --> 00:04:54,580 ব্যঙ্গ 0 সম্পর্কে অন্য কোন প্রশ্ন? 105 00:04:54,580 --> 00:04:57,660 106 00:04:57,660 --> 00:05:00,050 >> ঠিক আছে, তাই আমি একটি তালিকা করা বোর্ডে বিষয়. 107 00:05:00,050 --> 00:05:01,550 আমি পাঠ্যক্রম মাধ্যমে গিয়েছিলাম. 108 00:05:01,550 --> 00:05:07,340 আমি থেকে পর্যালোচনা বিভাগে মাধ্যমে গিয়েছিলাম চিন্তা করা শেষ রাত এবং যারা স্লাইড 109 00:05:07,340 --> 00:05:13,710 বিষয়ের একটি অ সম্পূর্ণ তালিকা আমরা CS50 মধ্যে এ পর্যন্ত ঢেকে আছে 110 00:05:13,710 --> 00:05:16,800 এবং জিনিস যে বল ব্যঙ্গ প্রদর্শিত. 111 00:05:16,800 --> 00:05:19,900 তাই আমি মধ্য দিয়ে যেতে যাচ্ছি না এর মধ্যে প্রতি একক এক. 112 00:05:19,900 --> 00:05:22,370 এটা আরো অনেক কিছু লাগবে আমরা এখন আছে বেশী সময়. 113 00:05:22,370 --> 00:05:26,880 কিন্তু আমি আশা শ্লথ করার জন্য এখানে এই ন্যস্ত জিনিষ হিসাবে আপনার মেমরি যে may 114 00:05:26,880 --> 00:05:28,420 অথবা আপনার সঙ্গে হিসাবে পরিচিত নাও হতে পারে. 115 00:05:28,420 --> 00:05:32,850 >> এবং আমি বাল্ক এর ব্যয় ভালোবাসতাম সম্পর্কে আপনার প্রশ্নের উত্তর অধ্যায় 116 00:05:32,850 --> 00:05:35,130 এই বিষয়, বিষয় যে এখানে কাভার করবে না. 117 00:05:35,130 --> 00:05:36,130 আমরা ছদ্ম কোড লিখতে পারেন. 118 00:05:36,130 --> 00:05:40,010 আমরা বাস্তব কোড লিখতে পারেন নিশ্চিত আপনি যে - 119 00:05:40,010 --> 00:05:44,280 আমি আপনার প্রশ্নের উত্তর দিতে এবং সাহায্য করতে পারেন সবাই মৌলিকভাবে বুঝতে একটি 120 00:05:44,280 --> 00:05:48,330 এই বিষয় অনেক আপনি বোধ করব তাই যাচ্ছে মধ্যে প্রস্তুত এবং আরামদায়ক 121 00:05:48,330 --> 00:05:50,150 ব্যঙ্গ আগামীকাল. 122 00:05:50,150 --> 00:05:52,300 সুতরাং তালিকা উপর পড়া. 123 00:05:52,300 --> 00:05:54,780 আপনি আশা বিভাগে আসতে হবে কিছু প্রশ্ন হিসাবে ভাল. 124 00:05:54,780 --> 00:05:58,480 আপনি যখন প্রস্তুত, আপনার হাত বাড়াতে এবং আমরা শুরু করতে হবে. 125 00:05:58,480 --> 00:06:01,590 126 00:06:01,590 --> 00:06:05,200 >> মনে রাখবেন, প্রশ্ন আছে, কোন মূঢ় প্রশ্ন আছে. 127 00:06:05,200 --> 00:06:06,250 আমরা অনেক শুনেছি করেছি. 128 00:06:06,250 --> 00:06:09,490 এবং যদি আপনি আছে প্রশ্ন, আমি রাজী নই , অন্যান্য অনেক মানুষ উভয় বাজি 129 00:06:09,490 --> 00:06:11,740 এখানে বসা এবং পর্যবেক্ষক অনলাইন হিসাবে ভাল আছে. 130 00:06:11,740 --> 00:06:13,770 সুতরাং আপনি শুধুমাত্র লোক সাহায্য করতে পারেন প্রশ্ন জিজ্ঞাসা করে. 131 00:06:13,770 --> 00:06:15,070 মার্কাস. 132 00:06:15,070 --> 00:06:18,040 >> MARCUS: স্ট্যাকের এবং এর মধ্যে গাদা, একটি প্রাক বরাদ্দ আছে 133 00:06:18,040 --> 00:06:22,880 হিসাবে সংজ্ঞায়িত যে মেমরি শতাংশ এই স্ট্যাকের জন্য বা গাদা জন্য হয়? 134 00:06:22,880 --> 00:06:25,010 অথবা ঠিক কিভাবে যে কাজ, করে? 135 00:06:25,010 --> 00:06:26,230 >> JASON HIRSCHHORN: গ্রেট প্রশ্ন. 136 00:06:26,230 --> 00:06:28,640 আমি অল্প ট্রেস ব্যাক যাচ্ছি. 137 00:06:28,640 --> 00:06:30,910 সবাই কি - 138 00:06:30,910 --> 00:06:31,660 এখানে সৎ হবে, দয়া করে. 139 00:06:31,660 --> 00:06:34,130 আমি বাড়াতে আপনাকে জিজ্ঞাসা করছি জানি আপনার আপনার সহকর্মীরা সামনে হাত. 140 00:06:34,130 --> 00:06:38,510 কিন্তু মনে যারা আছে স্ট্যাকের এবং গাদা সঙ্গে অস্বস্তিকর 141 00:06:38,510 --> 00:06:42,980 এবং যে উপর যেতে চাই এবং যারা কি বোঝাতে চেয়েছেন? 142 00:06:42,980 --> 00:06:43,880 আপনার হাতে যদি বাড়াতে - 143 00:06:43,880 --> 00:06:44,420 ঠিক আছে. 144 00:06:44,420 --> 00:06:45,120 আপনাকে ধন্যবাদ. 145 00:06:45,120 --> 00:06:48,420 সুতরাং আমরা স্ট্যাকের উপর যেতে যাচ্ছে এবং করছি গাদা সত্যিই দ্রুত এবং তারপর 146 00:06:48,420 --> 00:06:50,370 আপনার প্রশ্নের উত্তর সরাতে. 147 00:06:50,370 --> 00:06:58,250 >> আমরা প্রতিনিধিত্ব করতে একটি বক্স বহিষ্কার সুতরাং যদি আপনার কম্পিউটারে মেমোরি, কিছু কি 148 00:06:58,250 --> 00:07:02,160 এই বক্সের মধ্যে যে যেতে জিনিস? 149 00:07:02,160 --> 00:07:03,630 মুখ্য. 150 00:07:03,630 --> 00:07:04,020 একটি প্রধান ফাংশন. 151 00:07:04,020 --> 00:07:05,890 কোথায় প্রধান যান না? 152 00:07:05,890 --> 00:07:08,090 >> ছাত্র: [শ্রবণাতীত]. 153 00:07:08,090 --> 00:07:09,390 >> JASON HIRSCHHORN: সুতরাং আমরা করব নিচে এখানে প্রধান করা. 154 00:07:09,390 --> 00:07:12,180 155 00:07:12,180 --> 00:07:13,430 কি এই বাক্সে যায়? 156 00:07:13,430 --> 00:07:16,000 157 00:07:16,000 --> 00:07:18,140 >> ছাত্র: আপনি কল যে কর্ম. 158 00:07:18,140 --> 00:07:19,020 >> JASON HIRSCHHORN: ফাংশন আমরা যে কল. 159 00:07:19,020 --> 00:07:20,440 এবং যেখানে তারা যান? 160 00:07:20,440 --> 00:07:21,300 >> ছাত্র: স্ট্যাকের মধ্যে. 161 00:07:21,300 --> 00:07:22,380 >> JASON HIRSCHHORN: তারা স্ট্যাকের মধ্যে যান. 162 00:07:22,380 --> 00:07:27,350 সুতরাং আমরা এই কল চলুন নিচে এখানে জিনিস স্ট্যাকের. 163 00:07:27,350 --> 00:07:31,880 আর টপ আপ, আমরা গাদা আছে. 164 00:07:31,880 --> 00:07:35,450 তাই মেমরি ঠিক এই মত একটি বক্স না. 165 00:07:35,450 --> 00:07:37,330 কিন্তু এটা আসলে বেশ অনুরূপ. 166 00:07:37,330 --> 00:07:40,840 এটা ধরে বাক্সে অনেক হতে যাচ্ছে এবং উপর, তার উপর নির্ভর করে কিভাবে বড় আপনার 167 00:07:40,840 --> 00:07:43,730 কম্পিউটার বা আপনার মেমরি কিভাবে বড় হয়. 168 00:07:43,730 --> 00:07:46,950 >> উদ্ধৃতি-উদ্ধতি "নিচ" এ স্ট্যাকের হয়. 169 00:07:46,950 --> 00:07:50,880 এবং একাধিক বিষয় আছে যে স্ট্যাক যান. 170 00:07:50,880 --> 00:07:53,840 এবং যারা ফাংশন উপর নির্ভর করে আপনি আপনার কোড আছে. 171 00:07:53,840 --> 00:07:57,780 আপনি সবসময় এক ফাংশন আছে আপনার কোড প্রধান বলা হয়, তাই একটি সর্বদাই সেখানে 172 00:07:57,780 --> 00:08:00,480 নিচে এখানে অধ্যায় প্রধান অনুগত গাদা. 173 00:08:00,480 --> 00:08:03,980 >> স্ট্যাকের মধ্যে এই বিভাগে স্ট্যাক ফ্রেম বলা হয়. 174 00:08:03,980 --> 00:08:09,580 আপনি অন্য ফাংশন কল করার সময়, প্রধান বলে একটি বাইনারি অনুসন্ধান ফাংশন কল, 175 00:08:09,580 --> 00:08:11,075 আমরা স্ট্যাক অন্য ফ্রেম রাখা. 176 00:08:11,075 --> 00:08:13,830 177 00:08:13,830 --> 00:08:17,320 আরো নির্দিষ্টভাবে, আমরা যাচ্ছি প্রথম মেমরি একটি খণ্ড দান আমাদের 178 00:08:17,320 --> 00:08:22,960 বাইনারি অনুসন্ধান এর স্থানীয় দোকান থেকে কম্পিউটার ভেরিয়েবল ও বাইনারি চালানোর 179 00:08:22,960 --> 00:08:24,150 সার্চ কোড. 180 00:08:24,150 --> 00:08:26,810 >> সুতরাং আমরা বাইনারি অনুসন্ধান কল. 181 00:08:26,810 --> 00:08:30,440 182 00:08:30,440 --> 00:08:33,340 মেমরির এই খণ্ড, আমরা চলুন তার স্থানীয় ভেরিয়েবল সংরক্ষণ. 183 00:08:33,340 --> 00:08:35,270 আমরা তার printf কল সংরক্ষণ চলুন. 184 00:08:35,270 --> 00:08:38,159 এরকম যাই হোক না কেন, যে ফাংশন অধিকার আছে সঞ্চিত করা যাচ্ছে. 185 00:08:38,159 --> 00:08:40,350 বাইনারি অনুসন্ধান চালানো হবে. 186 00:08:40,350 --> 00:08:42,210 এটা সঞ্চালনের সম্পূর্ণ করতে যাচ্ছে. 187 00:08:42,210 --> 00:08:47,450 সি শব্দ কি যে তাৎপর্য্য বহন একটি ফাংশন উচিত যে 188 00:08:47,450 --> 00:08:49,306 তার মৃত্যুদন্ড সম্পন্ন? 189 00:08:49,306 --> 00:08:50,040 >> ছাত্র: ফিরুন. 190 00:08:50,040 --> 00:08:50,870 >> JASON HIRSCHHORN: ফিরুন. 191 00:08:50,870 --> 00:08:53,230 সুতরাং আপনি একটি ফিরতি বিবৃতি দেখতে যখনই, ফাংশন শেষ 192 00:08:53,230 --> 00:08:54,350 এটা যে হিট. 193 00:08:54,350 --> 00:08:56,740 তাই বাইনারি অনুসন্ধান তার ফিরতি আঘাত করা. 194 00:08:56,740 --> 00:09:01,360 মেমরি এই ভাগে মূলত করবে আপ মুক্ত করা. 195 00:09:01,360 --> 00:09:03,510 আর প্রধান ফিরে মৃত্যুদন্ড যেতে হবে. 196 00:09:03,510 --> 00:09:07,240 , কল ছিল যেখানেই সুতরাং প্রধান বিরতি হবে বাইনারি অনুসন্ধান, কিছু ফিরতি মূল্য পেতে, 197 00:09:07,240 --> 00:09:08,700 ও মৃত্যুদন্ড অবিরত. 198 00:09:08,700 --> 00:09:10,840 এই স্ট্যাকের ফ্রেম দূরে যেতে হবে. 199 00:09:10,840 --> 00:09:14,810 >> আমরা একটি recursive ফাংশন কল যদি যা নিজেই ধরে কল যে একটি ফাংশন 200 00:09:14,810 --> 00:09:18,480 এবং উপর, আমরা পেতে পারে - আমরা বলতে recursively বাইনারি অনুসন্ধান করেনি. 201 00:09:18,480 --> 00:09:21,520 আমরা বাইনারি অনুসন্ধান সংস্করণ একটি পেতে পারে বাইনারি অনুসন্ধান দুই, বাইনারি অনুসন্ধান 202 00:09:21,520 --> 00:09:24,090 তিন, বাইনারি অনুসন্ধান চার, বাইনারি অনুসন্ধান পাঁচটি. 203 00:09:24,090 --> 00:09:27,950 এবং তারপর এই চূড়ান্ত বাইনারি অনুসন্ধান পাঁচটি বেস কেস, এবং স্ট্যাকের আঘাত করা 204 00:09:27,950 --> 00:09:31,010 ফ্রেম ফিরে যান এবং ক্লোজিং রাখা হবে আমরা ফিরে প্রধান পেতে না হওয়া পর্যন্ত. 205 00:09:31,010 --> 00:09:32,530 আমরা কিছুক্ষনের মধ্যে recursion উপর যেতে পারেন. 206 00:09:32,530 --> 00:09:35,530 আপনি যদি কিন্তু এই সব, বলতে হয় একটি সময়ে একাধিক ফাংশন আহ্বান 207 00:09:35,530 --> 00:09:39,250 একাধিক স্ট্যাকের সেখানে থাকব স্ট্যাক ফ্রেম. 208 00:09:39,250 --> 00:09:42,900 >> গাদা, অন্য দিকে, আপ এখানে, ফাংশন জন্য নয়, 209 00:09:42,900 --> 00:09:44,380 না স্থানীয় ভেরিয়েবল জন্য. 210 00:09:44,380 --> 00:09:48,920 এটা পরিবর্তনশীল বরাদ্দ জন্য ভেরিয়েবল. 211 00:09:48,920 --> 00:09:57,210 সুতরাং এই হতে পারে যে ভেরিয়েবল প্রধান বা হয় সক্রিয়া 212 00:09:57,210 --> 00:09:58,640 যে প্রধান কল কাজ. 213 00:09:58,640 --> 00:10:00,790 কোথাও আপনার কোড, তারা সক্রিয়া করা যাবে. 214 00:10:00,790 --> 00:10:04,360 এবং একটি পরিবর্তনশীল আরম্ভ বরাদ্দ পরিবর্তনশীল. 215 00:10:04,360 --> 00:10:06,970 আমরা সি কি ফাংশন ব্যবহার করব? 216 00:10:06,970 --> 00:10:07,600 >> ছাত্র: Malloc. 217 00:10:07,600 --> 00:10:09,240 >> JASON HIRSCHHORN: Malloc. 218 00:10:09,240 --> 00:10:10,800 আপনি malloc কল. 219 00:10:10,800 --> 00:10:12,260 আপনি মেমরি একটি স্থান পেতে. 220 00:10:12,260 --> 00:10:15,020 আর মেমোরী যে স্থান গাদা হয়. 221 00:10:15,020 --> 00:10:18,840 আর মেমোরী যে স্থান থাকে আপনি বিনামূল্যে সেখানে কল না হওয়া পর্যন্ত. 222 00:10:18,840 --> 00:10:22,670 >> সুতরাং পরিবর্তনশীল বরাদ্দ ভেরিয়েবলের মধ্যে গাদা আপনি যতদিন জন্য উপস্থিত হবে 223 00:10:22,670 --> 00:10:25,250 তাদের অস্তিত্ব করতে চান, এবং তারা না করবে না স্পষ্টভাবে আপনি যতক্ষণ দূরে যেতে 224 00:10:25,250 --> 00:10:26,760 দূরে যেতে বলুন. 225 00:10:26,760 --> 00:10:29,670 আপনি এক ফাংশন তাদের তৈরি করতে পারেন. 226 00:10:29,670 --> 00:10:31,930 যে ফাংশন এর স্ট্যাকের ফ্রেম দূরে যেতে হবে. 227 00:10:31,930 --> 00:10:35,490 কিন্তু যে পরিবর্তনশীল এখনও বিদ্যমান হবে গাদা তা মুক্ত না হওয়া পর্যন্ত, 228 00:10:35,490 --> 00:10:39,650 সম্ভাব্য নামক যে ফাংশন দ্বারা বাইনারি অনুসন্ধান বা যাই হোক না কেন. 229 00:10:39,650 --> 00:10:42,580 >> সুতরাং যারা গাদা ভেরিয়েবল সেখানে থাকার যতদিন আপনি চান হিসাবে জন্য 230 00:10:42,580 --> 00:10:43,490 তাদের সেখানে থাকার. 231 00:10:43,490 --> 00:10:46,090 তারা এখানে রাখা হয়. 232 00:10:46,090 --> 00:10:47,450 এবং তারপর পরবর্তী এক সেখানে রাখা হয়. 233 00:10:47,450 --> 00:10:50,210 তারা পূরণ হচ্ছে রাখা, এবং তারা আপনি বিনামূল্যে কল না হওয়া পর্যন্ত সেখানে থাকার. 234 00:10:50,210 --> 00:10:52,870 >> এবং মূলত, গাদা এবং স্ট্যাকের, , মার্কাস এর প্রশ্নের পেয়ে 235 00:10:52,870 --> 00:10:54,500 একে অপরের দিকে বাড়া. 236 00:10:54,500 --> 00:10:57,730 তারা একে অপরের মধ্যে চালানো এবং, যদি আপনি করেছি সমস্ত মেমরি আপ ব্যবহার আপনার 237 00:10:57,730 --> 00:11:01,330 কম্পিউটার, এবং আপনার প্রোগ্রাম অব্যাহতিপ্রাপ্ত হবে আপনি কোন স্মৃতি আছে না, কারণ 238 00:11:01,330 --> 00:11:02,420 ব্যবহার করা বাকি. 239 00:11:02,420 --> 00:11:07,290 তাদের মধ্যে যে, সেখানে সম্ভাব্য অন্যান্য জিনিস. 240 00:11:07,290 --> 00:11:10,980 কিন্তু এই কোর্সের সুযোগ, আপনার জন্য যে সম্পর্কে চিন্তা করার প্রয়োজন হবে না. 241 00:11:10,980 --> 00:11:12,020 >> সুতরাং যে উত্তরটি ছিল আপনার প্রশ্নের. 242 00:11:12,020 --> 00:11:13,520 এটা নিয়ে চিন্তা করবেন না. 243 00:11:13,520 --> 00:11:15,550 কিন্তু যে দীর্ঘ উত্তরটি ছিল. 244 00:11:15,550 --> 00:11:17,800 আপনাকে জানতে হবে সব হয় গাদা এবং স্ট্যাকের করবে না - 245 00:11:17,800 --> 00:11:18,900 এক নীচে আরম্ভ করা হয়. 246 00:11:18,900 --> 00:11:19,570 স্ট্যাকের আছে. 247 00:11:19,570 --> 00:11:20,790 গাদা আপ আছে. 248 00:11:20,790 --> 00:11:21,990 তারা একে অপরের কাছাকাছি বৃদ্ধি পায়. 249 00:11:21,990 --> 00:11:23,110 >> তারা স্পর্শ এবং, যদি যে একটি সমস্যা. 250 00:11:23,110 --> 00:11:24,500 আপনি মেমরির শেষ হয়েছে. 251 00:11:24,500 --> 00:11:28,760 তবে, বুদ্ধিমান ছাড়াও যেখানে তারা কি উভয় মধ্যে সংরক্ষিত হয় হয় 252 00:11:28,760 --> 00:11:30,512 গাদা এবং গাদা. 253 00:11:30,512 --> 00:11:31,410 কার্টিস. 254 00:11:31,410 --> 00:11:33,570 >> CURTIS: তারা সংঘর্ষ হলে, যে একটি স্ট্যাক ওভারফ্লো হয়? 255 00:11:33,570 --> 00:11:35,670 >> JASON HIRSCHHORN: তারা সংঘর্ষ হলে, যে একটি স্ট্যাক ওভারফ্লো না. 256 00:11:35,670 --> 00:11:38,340 একটি স্ট্যাক ওভারফ্লো একটি ভিন্ন এলাকা আপনি করতে চান তাহলে আমরা ধরে যেতে পারেন. 257 00:11:38,340 --> 00:11:40,020 ঠিক আছে, আমরা কিছুক্ষনের মধ্যে যে ফিরে পাবেন. 258 00:11:40,020 --> 00:11:42,730 >> ছাত্র: নামক শব্দটি কি তারা একে অপরকে আঘাত, 259 00:11:42,730 --> 00:11:44,450 গাদা এবং গাদা? 260 00:11:44,450 --> 00:11:46,640 >> JASON HIRSCHHORN: এখন জন্য, চিন্তার কিছু নেই. 261 00:11:46,640 --> 00:11:47,750 শুধু জানি - 262 00:11:47,750 --> 00:11:50,530 আমি যে প্রশ্নের উত্তর দিতে হবে ক্লাসের পরে. 263 00:11:50,530 --> 00:11:52,680 তারা একে অপরের মধ্যে চালানো, আপনি স্বল্প কোন আরো আছে মেমরি, কারণ 264 00:11:52,680 --> 00:11:53,330 সেখানে স্থান. 265 00:11:53,330 --> 00:11:55,450 >> ছাত্র: দুঃখিত, একটি seg দোষ কি? 266 00:11:55,450 --> 00:11:58,710 >> JASON HIRSCHHORN: একটি সেগমেন্ট দোষ জন্য বলা যেতে পারে - 267 00:11:58,710 --> 00:12:02,240 seg দোষ বলা কেন তা নির্ভর করে. 268 00:12:02,240 --> 00:12:06,260 কখনও কখনও, আপনার স্ট্যাক ওভারফ্লো, এটা করব seg ত্রুটি হিসাবে ফল্ট বলে. 269 00:12:06,260 --> 00:12:08,180 >> ছাত্র: কি dereferencing সম্পর্কে একটি নাল পরিবর্তনশীল? 270 00:12:08,180 --> 00:12:10,040 একটি seg দোষ কি? 271 00:12:10,040 --> 00:12:11,480 >> JASON HIRSCHHORN: Dereferencing একটি নাল পয়েন্টার - 272 00:12:11,480 --> 00:12:17,850 ঠিক আছে, যাতে আপনি যে আপনি একটি ইশারা আছে, যদি নাল সমান সেট, পয়েন্টার, রিকল, 273 00:12:17,850 --> 00:12:20,270 দোকান মেমরি অ্যাড্রেস তাদের মান হিসাবে. 274 00:12:20,270 --> 00:12:23,660 এবং একটি নাল পয়েন্টার মূলত হয় 0 সংরক্ষণকারী, 0-তম 275 00:12:23,660 --> 00:12:26,670 যে পরিবর্তনশীল ঠিকানা. 276 00:12:26,670 --> 00:12:30,010 সুতরাং 0x, 0, 0, 0, 0, ইত্যাদি ইত্যাদি. 277 00:12:30,010 --> 00:12:35,030 না যে মেমরির মধ্যে যে 0-তম ঠিকানা আমাদের ছবিতে, যে পর্যন্ত আছে 278 00:12:35,030 --> 00:12:38,800 কোথাও, যে সংরক্ষিত হচ্ছে কম্পিউটারের জন্য. 279 00:12:38,800 --> 00:12:40,130 আমরা এটা স্পর্শ করার অনুমতি দেওয়া করছি না. 280 00:12:40,130 --> 00:12:44,680 >> সুতরাং আপনার প্রোগ্রাম নির্বাহ যখন, যদি কিছু স্মৃতি যাওয়ার চেষ্টা করছে 281 00:12:44,680 --> 00:12:48,990 ঠিকানা 0, এটা জানে যে যে একটি খালি মান. 282 00:12:48,990 --> 00:12:50,820 এটা কিছুই আছে উচিত জানেন. 283 00:12:50,820 --> 00:12:53,420 তাই আপনি যদি সেখানে কিছু চেষ্টা এবং ব্যবহার এবং ভালো আছে কিছু আচরণ বা 284 00:12:53,420 --> 00:12:58,355 যে অবস্থান যাওয়ার চেষ্টা, আপনি আছেন একটি seg ফল্ট বা একটি ত্রুটি পেতে যাচ্ছে. 285 00:12:58,355 --> 00:13:00,520 যে আপনার প্রশ্নের উত্তর আছে? 286 00:13:00,520 --> 00:13:03,170 >> এবং এখন আমরা ফিরে যাবেন ওভারফ্লো গাদা. 287 00:13:03,170 --> 00:13:09,560 আপনি না আছে হিসাবে স্ট্যাকের মধ্যে থিংস, আগে দেখা, এ - এর একটি ঘনিষ্ঠ আঁকা যাক 288 00:13:09,560 --> 00:13:11,966 একটি স্ট্যাক ফ্রেম আপ. 289 00:13:11,966 --> 00:13:15,050 সবাই যে দেখতে পাচ্ছেন না? 290 00:13:15,050 --> 00:13:16,650 সুতরাং আমরা আমাদের স্ট্যাকের ফ্রেম আছে. 291 00:13:16,650 --> 00:13:23,260 আমরা একটি স্থানীয় হিসেবে একটি অ্যারের সংরক্ষণ করছেন এই ফাংশন মধ্যে পরিবর্তনশীল. 292 00:13:23,260 --> 00:13:29,510 সুতরাং আমাদের অ্যারের পাঁচটি দাগ আছে বলে. 293 00:13:29,510 --> 00:13:33,230 ঐ সকল পাঁচটি সংরক্ষণ করা হবে যে স্ট্যাক ফ্রেম. 294 00:13:33,230 --> 00:13:37,540 >> আমরা অতিক্রম লেখা শুরু এই অ্যারের কোট - 295 00:13:37,540 --> 00:13:43,990 তাই আমরা করে লেখা শুরু করলে, এর যে 0 এর কথা বলা যাক. 296 00:13:43,990 --> 00:13:46,800 যারা পাঁচটি সূচী হয় আমাদের অ্যারের. 297 00:13:46,800 --> 00:13:50,980 আমরা সূচক 5, মধ্যে লেখা শুরু করলে যা আমরা একটি আছে যখন আমরা না থাকে 298 00:13:50,980 --> 00:13:55,900 আয়তন 5 হাজার অ্যারে, আমরা মধ্যে লেখা শুরু সূচক 6, 7, 8, 9, আমরা একটি স্ট্যাক পেতে পারেন 299 00:13:55,900 --> 00:13:57,960 ওভারফ্লো ত্রুটি. 300 00:13:57,960 --> 00:14:00,510 >> সাধারণভাবে এটা না - 301 00:14:00,510 --> 00:14:04,910 সম্ভবত আপনি কষ্ট পাবেন আপনি একের পর ওভার যান. 302 00:14:04,910 --> 00:14:08,640 কিন্তু সাধারণত, আপনি মধ্যে পেতে হবে আপনি অনেক দ্বারা উপর যেতে হলে সবচেয়ে কষ্ট 303 00:14:08,640 --> 00:14:12,770 এবং আপনি এ পর্যন্ত ধরে আপনি লিখুন যে যান যে ফেরত ঠিকানা ওভার 304 00:14:12,770 --> 00:14:16,080 এ অবস্থিত যা ফাংশন, স্ট্যাক ফ্রেম নীচে. 305 00:14:16,080 --> 00:14:16,520 >> ঠিক আছে, কারণ? 306 00:14:16,520 --> 00:14:17,670 আপনি - এ - দুঃখিত. 307 00:14:17,670 --> 00:14:18,550 নেই "ডান কারণ." 308 00:14:18,550 --> 00:14:20,470 >> স্ট্যাকের ফ্রেম ইন, আপনি আপনার স্থানীয় ভেরিয়েবল. 309 00:14:20,470 --> 00:14:27,090 স্ট্যাকের খুব নীচে ফ্রেম ফিরতি ঠিকানা হয়. 310 00:14:27,090 --> 00:14:28,790 যে ফাংশন যেখানে আছে এটি উপর যখন যায়. 311 00:14:28,790 --> 00:14:33,750 এবং আপনি যে ফিরতি মুছে ফেলা হলে ঠিকানা, তাহলে এই স্ট্যাকের ফ্রেম যখন, 312 00:14:33,750 --> 00:14:36,680 আপনি স্ট্যাক মাধ্যমে চালু করছি ফ্রেমে এবং প্রতিটি লাইন নির্বাহ, আপনি আছেন 313 00:14:36,680 --> 00:14:40,350 আপনার নতুন ফিরতি ঠিকানা যেতে হবে যে পরিবর্তে সেখানে লেখা 314 00:14:40,350 --> 00:14:40,910 প্রকৃত এক. 315 00:14:40,910 --> 00:14:45,050 এবং যে আমরা দেখা করেছি কিভাবে কিছু নিরাপত্তা ভঙ্গের 316 00:14:45,050 --> 00:14:46,780 কম্পিউটারের সাথে ঘটতে পারে. 317 00:14:46,780 --> 00:14:52,760 >> সুতরাং যখন স্ট্যাক ওভারফ্লো, সংক্ষেপে, হল আপনি স্ট্যাক অংশ মুছে ফেলা 318 00:14:52,760 --> 00:14:55,440 আপনি, স্থানীয় ব্যবহার অনুমিত করছি পরিবর্তনশীল আপনি ব্যবহার অনুমিত, এবং করছি 319 00:14:55,440 --> 00:14:58,070 বিশেষ করে আপনি overwriting শুরু মত গুরুত্বপূর্ণ বিষয় 320 00:14:58,070 --> 00:14:59,100 ঠিকানা ফিরে. 321 00:14:59,100 --> 00:15:00,090 আপনি কোনো ত্রুটি হয়ে উঠবেন যেখানে এবং যে. 322 00:15:00,090 --> 00:15:03,980 অথবা হয়ত এমনকি আপনি শুরু করতে পারে এমনকি মধ্যে লেখা - 323 00:15:03,980 --> 00:15:05,370 বাইনারি অনুসন্ধান ছিল বলে ডান প্রধান উপরে. 324 00:15:05,370 --> 00:15:07,790 আপনি, অনেক overwrote যদি প্রধান করে লিখতে পারে. 325 00:15:07,790 --> 00:15:10,230 কিন্তু সাধারণত, আপনি আগে কোনো ত্রুটি পাওয়া কম্পিউটার জানেন তাহলে, কারণ 326 00:15:10,230 --> 00:15:12,270 আপনি কিছু করছেন এমনটি করা উচিত নয়. 327 00:15:12,270 --> 00:15:12,560 হ্যাঁ. 328 00:15:12,560 --> 00:15:13,910 >> ছাত্র: পার্থক্য কি একটি স্ট্যাক ওভারফ্লো মধ্যে 329 00:15:13,910 --> 00:15:16,940 এবং একটি বাফার ওভারফ্লো? 330 00:15:16,940 --> 00:15:19,420 >> JASON HIRSCHHORN: বাফার ওভারফ্লো আরো একটি জেনেরিক ধরনের হয় 331 00:15:19,420 --> 00:15:20,395 আমি শুধু বর্ণনা করেছি. 332 00:15:20,395 --> 00:15:22,610 >> ছাত্র: সুতরাং একটি স্ট্যাক ওভারফ্লো একটি হল একটি বাফার ওভারফ্লো উদাহরণ. 333 00:15:22,610 --> 00:15:23,420 >> JASON HIRSCHHORN: যথাযথভাবে. 334 00:15:23,420 --> 00:15:28,700 এই আমরা একটি হিসাবে মনে করতে পারেন একটি অ্যারে বাফার, এখনো যেতে জিনিসের জন্য একটি স্থান 335 00:15:28,700 --> 00:15:30,600 এই একটি স্ট্যাক বাফার ওভারফ্লো হয়. 336 00:15:30,600 --> 00:15:33,210 আমরা এক গাদা বাফার ওভারফ্লো থাকতে পারে. 337 00:15:33,210 --> 00:15:36,870 যা আছে প্রায়ই একটি বাফার, ছিল যদি একটি অ্যারে গাদা, এবং আমরা 338 00:15:36,870 --> 00:15:40,600 ঐ সীমার overwrote, তাহলে আমরা would এক গাদা বাফার ওভারফ্লো আছে. 339 00:15:40,600 --> 00:15:44,870 >> এবং এই কোর্সের সুযোগ পরলোক, তারা একটু ভিন্নভাবে সনাক্ত করছি. 340 00:15:44,870 --> 00:15:48,040 কম্পাইলার বিশেষ আছে প্রতিটি সনাক্ত উপায়. 341 00:15:48,040 --> 00:15:50,660 কিন্তু একটি বাফার ওভারফ্লো আরো একটি জেনেরিক হয় আমি বর্ণিত ধরণ, 342 00:15:50,660 --> 00:15:54,090 যা একটি স্ট্যাক বাফার ওভারফ্লো ছিল. 343 00:15:54,090 --> 00:15:56,240 যে আপনার প্রশ্নের উত্তর দিতে হয়নি? 344 00:15:56,240 --> 00:15:57,910 মিষ্টি. 345 00:15:57,910 --> 00:16:01,850 >> অন্য কোন প্রশ্ন সম্পর্কিত ছিল স্ট্যাকের বা গাদা করতে? 346 00:16:01,850 --> 00:16:04,920 347 00:16:04,920 --> 00:16:05,510 হ্যাঁ. 348 00:16:05,510 --> 00:16:08,220 >> ছাত্র: আমি আপনি বিনামূল্যে স্ট্রিং আছে জানি তারা গাদা মধ্যে আছেন, কারণ 349 00:16:08,220 --> 00:16:09,305 এবং আপনি মেমরি লিক করতে চাই না. 350 00:16:09,305 --> 00:16:12,240 তবে আপনি যদি গ্লোবাল ভেরিয়েবল মুক্ত আছে কি এবং যে ভালো জিনিস? 351 00:16:12,240 --> 00:16:14,335 অথবা তারা স্বয়ংক্রিয়ভাবে মুক্ত করা হয়? 352 00:16:14,335 --> 00:16:15,700 >> JASON HIRSCHHORN: ভাল প্রশ্ন. 353 00:16:15,700 --> 00:16:22,340 সুতরাং cs50.h, আমরা এই জিনিস তৈরি জন্য আপনি একটি স্ট্রিং বলা. 354 00:16:22,340 --> 00:16:23,800 একটি স্ট্রিং সত্যিই কি? 355 00:16:23,800 --> 00:16:24,810 >> ছাত্র: চর তারকা. 356 00:16:24,810 --> 00:16:29,180 >> JASON HIRSCHHORN: একটি গৃহস্থালি তারকা, একটি পয়েন্টার একটি অক্ষর, একটি পয়েন্টার করতে 357 00:16:29,180 --> 00:16:30,650 অক্ষরের একটি অ্যারে. 358 00:16:30,650 --> 00:16:32,210 স্ট্রিং হয় কি. 359 00:16:32,210 --> 00:16:36,050 তাই আমরা এটি মুক্ত করতে প্রয়োজন কারণ GetString, যা আমরা অনেক ব্যবহার - 360 00:16:36,050 --> 00:16:38,370 স্ট্রিং নাম GetString সমান - 361 00:16:38,370 --> 00:16:43,560 যে আমাদের জন্য কিছু মেমরি mallocs গাদা এবং তারপর একটি পয়েন্টার ফেরৎ 362 00:16:43,560 --> 00:16:47,230 যে প্রথম অক্ষর স্ট্রিং, একটি গৃহস্থালি তারকা. 363 00:16:47,230 --> 00:16:52,760 >> তাই বাহ্যত, আপনি হয়েছে না হলে আপনার স্ট্রিং কোনো মুক্ত লেখা 364 00:16:52,760 --> 00:16:55,600 আপনি এ পর্যন্ত বলা করেছি, আপনি করেছেন কিছু মেমরি লিক হয়েছে. 365 00:16:55,600 --> 00:16:57,430 অবশ্যই আমরা স্বপ্ন নি এটা, তাই কেউ এ অর্জিত হচ্ছে 366 00:16:57,430 --> 00:16:58,520 এরকম জন্য কষ্ট. 367 00:16:58,520 --> 00:16:59,980 কিন্তু হ্যাঁ, এগিয়ে নিয়ে যাওয়া. 368 00:16:59,980 --> 00:17:03,990 আপনি GetString কল, আপনি আছেন গাদা কিছু স্থান mallocing. 369 00:17:03,990 --> 00:17:07,640 এবং আপনি যে পরে ফ্রী কল না হলে স্ট্রিং, আপনি একটি মেমরি লিক আছে. 370 00:17:07,640 --> 00:17:09,440 যে আপনার প্রশ্নের উত্তর? 371 00:17:09,440 --> 00:17:10,606 >> হাঁ 372 00:17:10,606 --> 00:17:15,020 >> ছাত্র: তাই কি সেটা, আমরা ব্যবহার করব ফিরতি আগে মুক্ত ডান? 373 00:17:15,020 --> 00:17:18,510 ভালো লেগেছে, সুযোগ মধ্যে, আমি অনুমান যদি আমরা মধ্যে, প্রধান int, মত বলে, 374 00:17:18,510 --> 00:17:24,410 যাদের মধ্যে যে কোড সুযোগ কোঁকড়া ধনুর্বন্ধনী, ডান আগে - 375 00:17:24,410 --> 00:17:26,140 আপনি কি জানেন যেখানে আপনি চাই সাধারণত ফিরতি করা. 376 00:17:26,140 --> 00:17:27,950 আপনি যে আগে মুক্ত করা? 377 00:17:27,950 --> 00:17:31,000 >> JASON HIRSCHHORN: তাই আপনি বিনামূল্যে লাগাতে পারেন আপনি বিনামূল্যে লাগাতে চান যেখানে. 378 00:17:31,000 --> 00:17:33,810 এই পরিবর্তনশীল বরাদ্দ হয় ভেরিয়েবল, তারা করতে পারেন, কারণ 379 00:17:33,810 --> 00:17:39,170 একটি বিশেষ সুযোগ অতিক্রম বাস ফাংশন, আপনি একটি মধ্যে malloc কল যদি 380 00:17:39,170 --> 00:17:44,140 পৃথক ফাংশন, যেমন, GetString, আপনি মূল মধ্যে বিনামূল্যে কল করতে পারেন. 381 00:17:44,140 --> 00:17:46,050 আপনি কল করতে হবে না নির্দিষ্ট ফাংশন 382 00:17:46,050 --> 00:17:47,570 malloc বলা হয় যেখানে. 383 00:17:47,570 --> 00:17:50,340 তবে আপনি এটি ফোন করতে চাই প্রধান আয় আগে. 384 00:17:50,340 --> 00:17:51,120 >> এবং এটা সত্যিই নির্ভর করে. 385 00:17:51,120 --> 00:17:54,960 এটা আপনি যে malloced কেন উপর নির্ভর করে প্রথমেই স্থান. 386 00:17:54,960 --> 00:17:57,320 কিছু মানুষ কল হবে প্রশংসনীয় দ্রুত মুক্ত. 387 00:17:57,320 --> 00:17:59,220 কিছু মানুষ হওয়া পর্যন্ত বিনামূল্যে কল করতে হবে তাদের প্রোগ্রাম শেষে. 388 00:17:59,220 --> 00:18:00,660 এবং তারা মধ্য দিয়ে যাবেন এবং বিনামূল্যে সবকিছু. 389 00:18:00,660 --> 00:18:03,597 এটা আপনি malloc বলা কেন উপর নির্ভর করে. 390 00:18:03,597 --> 00:18:11,270 >> ছাত্র: আর আপনি কি বলতে হবে আপনি ব্যবহারের GetString নামক তাহলে কি হবে? 391 00:18:11,270 --> 00:18:13,320 আপনি কি বিনামূল্যে বলতে চাই? 392 00:18:13,320 --> 00:18:20,040 >> JASON HIRSCHHORN: তাই জন্য সিনট্যাক্স ফ্রী সহজভাবে বিনামূল্যে, খোলা paren, বন্ধ হয় 393 00:18:20,040 --> 00:18:22,130 paren, এবং পয়েন্টার নাম. 394 00:18:22,130 --> 00:18:26,410 সুতরাং আপনি স্ট্রিং নাম সমান লিখতে হলে GetString, আপনি এখানে নাম রাখা. 395 00:18:26,410 --> 00:18:27,760 যে পয়েন্টার নামে এর. 396 00:18:27,760 --> 00:18:30,570 এবং এটা যে মেমরি মুক্ত করতে জানে. 397 00:18:30,570 --> 00:18:33,920 >> ছাত্র: এটা যে মেমরি মুক্ত সুতরাং যখন, পয়েন্টার এখনও যে জায়গায় স্থানটিকে 398 00:18:33,920 --> 00:18:34,970 মেমরি? 399 00:18:34,970 --> 00:18:39,020 অথবা এও এর emptied পয়েন্টার এটি স্থানটিকে যে ঠিকানা. 400 00:18:39,020 --> 00:18:40,290 >> JASON HIRSCHHORN: আমরা যে চেষ্টা করা উচিত. 401 00:18:40,290 --> 00:18:41,430 আমরা যে কোড উচিত. 402 00:18:41,430 --> 00:18:43,880 আমরা পেতে হলে এর ফিরে আসা যাক কোডিং, এবং এর যে কোড দেওয়া. 403 00:18:43,880 --> 00:18:46,000 এবং যদি আপনি উত্তর চিত্র আউট করতে চান যে জন্য, আপনি পারেন এছাড়াও কোড যে 404 00:18:46,000 --> 00:18:46,690 ইতিমধ্যে. 405 00:18:46,690 --> 00:18:49,100 কিন্তু যে একটি বড় প্রশ্ন. 406 00:18:49,100 --> 00:18:53,480 >> ছাত্র: এটা কি সম্ভব খুব শীঘ্রই মুক্ত কিছু? 407 00:18:53,480 --> 00:18:58,530 সুতরাং আপনি এখনও আপনার প্রোগ্রামের জন্য এটি প্রয়োজন, এবং আপনি যে মেমরি স্পেস মুক্ত? 408 00:18:58,530 --> 00:18:59,200 >> JASON HIRSCHHORN: হ্যাঁ. 409 00:18:59,200 --> 00:19:03,020 এটা সম্ভব, যদি আপনি বিনামূল্যে কিছু এবং তারপর আপনি এটি পুনরায় ব্যবহার, আপনি হবে 410 00:19:03,020 --> 00:19:06,890 একটি ত্রুটি পাতিত. 411 00:19:06,890 --> 00:19:10,810 আপনি মুক্ত কারণ কিন্তু যে, আপনার উপর এর তারপর কিছু এবং পরে তা বলা. 412 00:19:10,810 --> 00:19:13,940 সুতরাং যে একজন প্রোগ্রামার এর ভুল ছিল. 413 00:19:13,940 --> 00:19:14,780 কিন্তু হ্যাঁ. 414 00:19:14,780 --> 00:19:17,760 আপনি যে লিখতে পারে. 415 00:19:17,760 --> 00:19:19,240 >> কোন আরো প্রশ্ন - 416 00:19:19,240 --> 00:19:19,760 হ্যাঁ. 417 00:19:19,760 --> 00:19:22,820 >> ছাত্র: সুতরাং আপনি অনুমিত হয় যদি শুধু আগে সাধারণ এটি মুক্ত 418 00:19:22,820 --> 00:19:25,490 প্রোগ্রাম যদি যে মানে, শেষ হয় প্রোগ্রাম শেষ হয় এবং আপনি তা মুক্ত করে না, 419 00:19:25,490 --> 00:19:27,580 যে স্মৃতি এখনও বরাদ্দ করা হয়? 420 00:19:27,580 --> 00:19:31,330 >> JASON HIRSCHHORN: আপনার প্রোগ্রাম শেষ হলে এবং এর পরে, কিছু মুক্ত করতে ভুলবেন 421 00:19:31,330 --> 00:19:34,390 যে স্মৃতি জুড়ে বরাদ্দ ছিল আপনার প্রোগ্রাম সারা জীবনের. 422 00:19:34,390 --> 00:19:37,670 আপনার প্রোগ্রাম, সম্পূর্ণ বন্ধ হয়ে গেলে যে মেমরি যাচ্ছে না 423 00:19:37,670 --> 00:19:39,490 চিরকাল সেখানে থাকতে. 424 00:19:39,490 --> 00:19:42,080 কম্পিউটার জানা স্মার্ট যথেষ্ট যে প্রোগ্রাম বন্ধ করা হলে, 425 00:19:42,080 --> 00:19:46,440 স্মৃতি সব পরিত্রাণ পেতে উচিত যে প্রোগ্রামের সাথে যুক্ত ছিল. 426 00:19:46,440 --> 00:19:51,240 >> যাইহোক, আপনি চালাতে পারেন টুলস আছে সনাক্ত করার জন্য একটি প্রোগ্রাম, যদি কখন 427 00:19:51,240 --> 00:19:54,720 প্রোগ্রাম আপনাকে ভুলে গেছি, সমাপ্ত কিছু মেমরি মুক্ত করতে. 428 00:19:54,720 --> 00:19:57,960 এবং আপনার পরের সমস্যার জন্য যেখানে সেট আপনি malloc ব্যবহার করে এবং ব্যবহার করা হবে 429 00:19:57,960 --> 00:20:02,610 পয়েন্টার, আপনি এই চলমান করা হবে যদি দেখতে আপনার প্রোগ্রাম প্রোগ্রাম, 430 00:20:02,610 --> 00:20:06,530 যখন প্রধান আয়, আপনি কিছু ছিল unfreed বাকি ছিল যে. 431 00:20:06,530 --> 00:20:09,130 >> সুতরাং তারা malloced থাকার যাচ্ছেন না চিরকালের জন্য আপনার কম্পিউটার এ. 432 00:20:09,130 --> 00:20:11,720 যে, অযথা হবে কারণ খুব দ্রুত, কম্পিউটার 433 00:20:11,720 --> 00:20:12,960 মেমরি ফুরিয়ে যায়. 434 00:20:12,960 --> 00:20:16,450 কিন্তু তারা আপনার শেষ পর্যন্ত চালানো হলে প্রোগ্রাম এবং তারা মুক্ত এবং করছি আপনার 435 00:20:16,450 --> 00:20:20,260 প্রোগ্রাম যে এখনও একটি সমস্যা, প্রস্থান করে এই টুল সহায়তা করবে আপনাকে মোকাবেলার. 436 00:20:20,260 --> 00:20:21,520 >> ছাত্র: Valgrind যে কি? 437 00:20:21,520 --> 00:20:22,910 >> JASON HIRSCHHORN: এটা নামক Valgrind. 438 00:20:22,910 --> 00:20:23,520 এবং আপনি হবেন - 439 00:20:23,520 --> 00:20:25,780 >> ছাত্র: কিন্তু আমরা জানি করতে হবে না যে ব্যঙ্গ জন্য যদিও? 440 00:20:25,780 --> 00:20:27,600 আমি বলতে চাচ্ছি, এটা স্বপ্ন ছিল বক্তৃতায় অল্প. 441 00:20:27,600 --> 00:20:33,600 >> JASON HIRSCHHORN: সুতরাং Valgrind যে হাতিয়ার নাম. 442 00:20:33,600 --> 00:20:37,180 এটি কী বুদ্ধিমান হয় ব্যঙ্গ জন্য যথেষ্ট. 443 00:20:37,180 --> 00:20:40,200 কিন্তু আপনার উপর এখনো এটি ব্যবহার করেন নি আপনার আমরা ছিল না, কারণ সমস্যা সেট একটি 444 00:20:40,200 --> 00:20:43,520 স্পষ্টভাবে মোকাবিলা করেছে যে সমস্যা সেট malloc সঙ্গে অথবা আপনি malloc ব্যবহার করে. 445 00:20:43,520 --> 00:20:45,330 তাই আপনি যদি এখনো Valgrind ব্যবহার করেন নি. 446 00:20:45,330 --> 00:20:47,760 কিন্তু আপনি যত তাড়াতাড়ি এটি ব্যবহার করবে বরং পরে. 447 00:20:47,760 --> 00:20:48,710 >> ছাত্র: আপনি পুনরাবৃত্তি করতে পারি কি Valgrind হয়? 448 00:20:48,710 --> 00:20:49,190 >> JASON HIRSCHHORN: দুঃখিত? 449 00:20:49,190 --> 00:20:51,240 >> ছাত্র: আপনি কি পুনরাবৃত্তি করতে পারি Valgring উদ্দেশ্য কি? 450 00:20:51,240 --> 00:20:53,100 >> JASON HIRSCHHORN: Valgrind নাম - 451 00:20:53,100 --> 00:20:59,890 GDB, আপনি আপনার প্রোগ্রাম ডিবাগ সাহায্য চাই Valgrind আপনি জিনিসটা সাহায্য করে যদি 452 00:20:59,890 --> 00:21:03,210 জিনিষ মুক্ত করা হয় নি আপনার প্রোগ্রাম বন্ধ হয়ে যায়. 453 00:21:03,210 --> 00:21:05,110 তাই আপনি যদি আপনার প্রোগ্রাম থেকে তা রান করব. 454 00:21:05,110 --> 00:21:09,230 এবং আপনার প্রোগ্রাম থেকে প্রস্থান করে, এবং এটা বলবো আপনার প্রোগ্রাম malloc এই অনেক বলা 455 00:21:09,230 --> 00:21:13,670 এই অনেক বাইট জন্য বার, এবং আপনি শুধুমাত্র এই অনেকবার বিনামূল্যে বলা. 456 00:21:13,670 --> 00:21:16,520 তাই আপনি এই অনেক বাইট বাকি মুক্ত হচ্ছে না. 457 00:21:16,520 --> 00:21:18,050 অথবা এটা আপনি সবকিছু মুক্ত করেছি বলবো. 458 00:21:18,050 --> 00:21:19,070 গুড জব. 459 00:21:19,070 --> 00:21:19,480 >> ছাত্র: ওকে. 460 00:21:19,480 --> 00:21:21,060 এবং এটা Valgring বলা হচ্ছে? 461 00:21:21,060 --> 00:21:24,940 >> JASON HIRSCHHORN: ভী একটি, L-জি r-আমি-n-D:. 462 00:21:24,940 --> 00:21:25,970 >> ছাত্র: পয়েন্টার সম্পর্কে একটি প্রশ্ন. 463 00:21:25,970 --> 00:21:30,080 তাই আপনি যদি এন তারকা আছে বলে এক্স কিছু সমান. 464 00:21:30,080 --> 00:21:33,330 তার মানে আপনি নির্বাণ করছি যাই হোক না কেন, সমান সেখানে, কি ভিতরে রাখা হচ্ছে যে হয় 465 00:21:33,330 --> 00:21:36,120 কি এক্স প্রতি নির্দেশ করা হয়, বা x এর পয়েন্টার? 466 00:21:36,120 --> 00:21:37,690 >> JASON HIRSCHHORN: আপনি Can প্রশ্নের পুনরাবৃত্তি? 467 00:21:37,690 --> 00:21:39,340 আপনি এটা বলে, যখন আমরা তা আঁকতে পারেন? 468 00:21:39,340 --> 00:21:42,710 >> ছাত্র: ব্যঙ্গ করে, আসলে, আপনি আমাদের পাঠানো এক, এটা, গৃহস্থালি মত ছিল 469 00:21:42,710 --> 00:21:46,520 তারা সত্য সঠিক, CS50 স্কচ সমান? 470 00:21:46,520 --> 00:21:52,190 যাতে এর মানে যে যে CS50 স্কচ সত্যের প্রতি নির্দেশ করা হয় কি? 471 00:21:52,190 --> 00:21:55,810 >> JASON HIRSCHHORN: সুতরাং আপনি কথা বলছি একটি স্ট্রিং মধ্যে একটি গৃহস্থালি তারকা সম্পর্কে, কিভাবে 472 00:21:55,810 --> 00:21:56,460 যে কাজ করে? 473 00:21:56,460 --> 00:21:56,890 হ্যাঁ. 474 00:21:56,890 --> 00:21:57,700 ঠিক আছে. 475 00:21:57,700 --> 00:21:59,140 এর উপর এখানে এই আঁকা যাক. 476 00:21:59,140 --> 00:22:07,100 >> [SIDE কথোপকথন] 477 00:22:07,100 --> 00:22:11,130 >> JASON HIRSCHHORN: সুতরাং এই পরিবর্তনশীল টাইপ গৃহস্থালির তারকা হতে যাচ্ছে. 478 00:22:11,130 --> 00:22:14,580 একটি পরিবর্তনশীল কত বড় হয় টাইপ গৃহস্থালির তারকা? 479 00:22:14,580 --> 00:22:15,510 কত বাইট? 480 00:22:15,510 --> 00:22:16,450 >> ছাত্রদের: চার. 481 00:22:16,450 --> 00:22:18,210 >> JASON HIRSCHHORN: এটা চার বাইট এর. 482 00:22:18,210 --> 00:22:21,420 একটি পরিবর্তনশীল কত অধিকার হয় টাইপ int-তারকা? 483 00:22:21,420 --> 00:22:22,210 >> ছাত্রদের: চার. 484 00:22:22,210 --> 00:22:24,910 >> JASON HIRSCHHORN: চার বাইট. 485 00:22:24,910 --> 00:22:28,280 এটি একটি পয়েন্টার, তাহলে এটা সবসময় হয় চার বাইট, কারণ পয়েন্টার, তাদের 486 00:22:28,280 --> 00:22:30,070 মূল্য একটি মেমরি ঠিকানা. 487 00:22:30,070 --> 00:22:35,160 এবং CS50 নেভিগেশন মেমরি অ্যাড্রেস প্রয়োগ চার বাইট দীর্ঘ. 488 00:22:35,160 --> 00:22:42,900 সুতরাং আমরা GetString, অথবা যখন আমরা কল যখন বলতে stringname তারপর সমান, এবং 489 00:22:42,900 --> 00:22:46,140 উদ্ধৃতি চিহ্ন একটি পংক্তি করা, আমরা নির্বাণ - 490 00:22:46,140 --> 00:22:46,920 ওহ, এটা একটু আলাদা. 491 00:22:46,920 --> 00:22:48,630 আমরা উদাহরণ হিসাবে GetString না করব. 492 00:22:48,630 --> 00:22:52,150 অথবা গৃহস্থালি তারা কিছু স্ট্রিং সমান. 493 00:22:52,150 --> 00:22:54,360 দুঃখিত, আমার উদাহরণ দিতে যে আপনি পড়তে? 494 00:22:54,360 --> 00:22:57,590 >> ছাত্র: গৃহস্থালি তারকা সত্য সমান উদ্ধৃতি চিহ্ন মধ্যে "CS50 স্কচ". 495 00:22:57,590 --> 00:23:02,260 >> JASON HIRSCHHORN: তাই এই তারকা, এই আমরা এই পরিবর্তনশীল x ডাকবো আমাদের 496 00:23:02,260 --> 00:23:04,060 জেনেরিক উদ্দেশ্যে. 497 00:23:04,060 --> 00:23:05,970 আমরা এক্স নামক একটি পরিবর্তনশীল তৈরি করেছি. 498 00:23:05,970 --> 00:23:07,610 এটা টাইপ গৃহস্থালির তারকা এর. 499 00:23:07,610 --> 00:23:10,950 এটি একটি ধারাবাহিক একটি পয়েন্টার অক্ষরের. 500 00:23:10,950 --> 00:23:12,200 তাই নিচে এখানে - 501 00:23:12,200 --> 00:23:23,710 502 00:23:23,710 --> 00:23:25,890 >> তাই এই কিভাবে এই would হয় মেমরি কাজ. 503 00:23:25,890 --> 00:23:27,410 এটি একটি মেমরি ঠিকানা সংরক্ষণ করবে. 504 00:23:27,410 --> 00:23:31,770 এটি মেমরি ঠিকানা সংরক্ষণ করবে অ্যারের মধ্যে প্রথম অক্ষর. 505 00:23:31,770 --> 00:23:33,830 এবং তারপর যখন আপনি অনুসরণ পয়েন্টার, আপনি would 506 00:23:33,830 --> 00:23:35,200 প্রথম অক্ষর পেতে. 507 00:23:35,200 --> 00:23:38,780 >> আর আপনার মত এই জিনিস পড়ি যদি একটি পংক্তি, আপনার কম্পিউটার স্মার্ট 508 00:23:38,780 --> 00:23:42,930 জানা ব্যাপার যে, এই পুরো জিনিস পড়তে এটি একটি নেতিবাচক প্রতিক্রিয়া 0 পায় না হওয়া পর্যন্ত. 509 00:23:42,930 --> 00:23:45,530 কিন্তু আপনি এ এটি একটি অক্ষর পড়া করছি একটি সময়, তাই আপনার মাধ্যমে iterating করছি 510 00:23:45,530 --> 00:23:49,910 এই পংক্তি, তাহলে আপনি শুধুমাত্র একটি পড়তে হবে একটি সময়ে অক্ষর আপনি পেতে না হওয়া পর্যন্ত 511 00:23:49,910 --> 00:23:50,850 ব্যাকস্ল্যাশ 0. 512 00:23:50,850 --> 00:23:52,335 যে উত্তর দিতে না পারে আপনার প্রশ্ন, যদিও. 513 00:23:52,335 --> 00:23:55,610 >> ছাত্র: হ্যাঁ, কিন্তু আপনি না আছে malloced যে স্থান 514 00:23:55,610 --> 00:23:58,400 এখনো যে পয়েন্টার জন্য. 515 00:23:58,400 --> 00:24:02,510 >> JASON HIRSCHHORN: তাই আমি পুরোপুরি নিশ্চিত নই ঠিক কি আপনি এ খুঁজছেন, 516 00:24:02,510 --> 00:24:03,640 আমি যে ব্যঙ্গ করতে না, কারণ. 517 00:24:03,640 --> 00:24:06,370 এটা একটি সহায়ক হতে অনুমিত ছিল অন্য মেমরি থেকে সম্পদ. 518 00:24:06,370 --> 00:24:11,380 আপনি একটি স্ট্রিং তৈরি করা হয় গাদা বা একটি স্থানীয় পরিবর্তনশীল, এটা করব 519 00:24:11,380 --> 00:24:16,920 শুধু অভিযোগ অ্যারের বদলে করা প্রতি নির্দেশ সাধারণত একটি গৃহস্থালি তারকা 520 00:24:16,920 --> 00:24:18,600 অন্য স্ট্রিং. 521 00:24:18,600 --> 00:24:20,550 কিন্তু আমি জানি না. 522 00:24:20,550 --> 00:24:25,065 অর্থাৎ অন্য একটি পয়েন্টার হতে পারে স্ট্যাক স্ট্রিং হিসাবে ভাল. 523 00:24:25,065 --> 00:24:27,240 হ্যাঁ. 524 00:24:27,240 --> 00:24:31,116 >> ছাত্র: আমি আপনাকে করতে হবে জানি পয়েন্টার যদি মেমরি বরাদ্দ 525 00:24:31,116 --> 00:24:33,360 ভিতরে ঘোষিত হচ্ছে আরেকটি ফাংশন. 526 00:24:33,360 --> 00:24:36,740 আপনি এটা যদি একই জিনিস করতে হবে না প্রধান ভেতরে ঘোষণা করা হচ্ছে, 527 00:24:36,740 --> 00:24:39,570 আপনি প্রধান ভেতরে এটা ব্যবহার করছেন? 528 00:24:39,570 --> 00:24:43,590 >> JASON HIRSCHHORN: তাই হ্যাঁ. 529 00:24:43,590 --> 00:24:46,670 আপনি যে কোন একটি পয়েন্টার ডিক্লেয়ার করতে পারেন মেমরি মেমরি ঠিকানা. 530 00:24:46,670 --> 00:24:51,440 এটি একটি স্থানীয় মেমরি ঠিকানা হতে পারে পরিবর্তনশীল, বারংবার যদিও, 531 00:24:51,440 --> 00:24:55,760 মানুষ মেমরি অ্যাড্রেস ঘোষণা না তারা যেতে, কারণ স্থানীয় ভেরিয়েবল যাও 532 00:24:55,760 --> 00:24:59,890 যে ফাংশন আয় দূরে একবার, যা আমরা সাধারণত জিনিস malloc কেন. 533 00:24:59,890 --> 00:25:04,630 কিন্তু হ্যাঁ, আপনি একটি পয়েন্টার ডিক্লেয়ার পারে অন্য স্থানীয় পরিবর্তনশীল করতে. 534 00:25:04,630 --> 00:25:06,360 এটা ঠিক সাধারণত সম্পন্ন না. 535 00:25:06,360 --> 00:25:09,480 কিন্তু আমি যে একবার দেখে নিতে পারেন ক্লাসের পরে নির্দিষ্ট জিনিস. 536 00:25:09,480 --> 00:25:10,650 হ্যাঁ. 537 00:25:10,650 --> 00:25:12,350 >> ছাত্র: আমি এই ধরণের মনে হয় বলা হচ্ছে কি. 538 00:25:12,350 --> 00:25:16,930 এটি আরম্ভ করার অদ্ভুত বলে মনে হচ্ছে না একটি হিসাবে একটি পয়েন্টার 539 00:25:16,930 --> 00:25:20,760 ঠিকানা, কিন্তু হিসাবে কি একটি মান মত মনে হয়. 540 00:25:20,760 --> 00:25:25,970 CS50 ভিতরে কি হয় এটি দেখে মনে হচ্ছে জিনিস জোরাল এবং হচ্ছে 541 00:25:25,970 --> 00:25:28,820 না প্রকৃত ঠিকানা, ডান? 542 00:25:28,820 --> 00:25:30,520 >> JASON HIRSCHHORN: সুতরাং যে না ক্ষেত্রে, যদিও. 543 00:25:30,520 --> 00:25:32,470 যে ঘটছে না. 544 00:25:32,470 --> 00:25:35,910 আপনি একটি গৃহস্থালি তারা ঘোষণা করে, এটি একটি মেমরি ঠিকানা নেই. 545 00:25:35,910 --> 00:25:38,860 পয়েন্টার সব স্মৃতি ঠিকানা হয় অন্য কিছু করার প্রতি নির্দেশ. 546 00:25:38,860 --> 00:25:41,480 অন্য যে কোনো কিছুর উপর হতে পারে স্ট্যাকের, কিন্তু প্রায় সবসময় হয় 547 00:25:41,480 --> 00:25:43,440 আমরা এটা ব্যবহার দেখতে পাবেন ভাবে গাদা. 548 00:25:43,440 --> 00:25:46,860 549 00:25:46,860 --> 00:25:53,500 কিন্তু stringname ডবল মূল্যউদ্ধৃতি সমান ", GetString" আমরা দেখতে পারেন এবং আমরা 550 00:25:53,500 --> 00:25:55,010 যে মাধ্যমে দেখবে এবং যে কোড পারেন. 551 00:25:55,010 --> 00:26:01,190 GetString স্ট্রিং সংরক্ষিত হচ্ছে না যে পরিবর্তনশীল, বা যাই হোক না কেন স্ট্রিং 552 00:26:01,190 --> 00:26:04,580 নামের যে সংরক্ষিত হচ্ছে না হয় পরিবর্তনশীল, যে কারণ না কিভাবে 553 00:26:04,580 --> 00:26:06,070 পয়েন্টার কাজ. 554 00:26:06,070 --> 00:26:06,770 যে জানার জন্য? 555 00:26:06,770 --> 00:26:07,170 >> ছাত্র: হ্যাঁ. 556 00:26:07,170 --> 00:26:08,570 >> JASON HIRSCHHORN: ঠিক আছে. 557 00:26:08,570 --> 00:26:11,690 আশা করছি, যে ছিল না কেউ বিভ্রান্তিকর. 558 00:26:11,690 --> 00:26:15,732 এটা ছিল কিন্তু, যদি আমরা আবার তাকান পারেন কিছুক্ষনের মধ্যে, আসলে আমরা চলুন কারণ 559 00:26:15,732 --> 00:26:19,240 যে আশা করবে কিছু কোড করার স্ট্রিং সঙ্গে কাজ এবং আপনি বোধ সাহায্য 560 00:26:19,240 --> 00:26:22,170 তাদের সঙ্গে আরো আরামদায়ক. 561 00:26:22,170 --> 00:26:24,869 >> এই সংক্রান্ত অন্য কোন প্রশ্ন বিষয় বা অন্যান্য বিষয় যে 562 00:26:24,869 --> 00:26:26,119 আমি ব্যাক আপ রেখে দেব? 563 00:26:26,119 --> 00:26:32,280 564 00:26:32,280 --> 00:26:34,840 এবং - 565 00:26:34,840 --> 00:26:36,310 এই মুহূর্তে. 566 00:26:36,310 --> 00:26:37,630 হ্যাঁ, Alden. 567 00:26:37,630 --> 00:26:39,860 >> ALDEN: তাই এই সম্পূর্ণভাবে সম্পর্কহীন হয়, কিন্তু আমরা শুধু ওভার যেতে পারেন 568 00:26:39,860 --> 00:26:42,760 সত্যিই দ্রুত আমরা জানা প্রয়োজন একটি 32 এবং এর মধ্যে পার্থক্য সম্পর্কে 569 00:26:42,760 --> 00:26:46,345 64 বিট মেশিনের? 570 00:26:46,345 --> 00:26:47,740 >> JASON HIRSCHHORN: হ্যাঁ. 571 00:26:47,740 --> 00:26:52,111 তাই 32 বিট কত বাইট হয়? 572 00:26:52,111 --> 00:26:53,060 >> ALDEN: এটা চার বাইট এর. 573 00:26:53,060 --> 00:26:54,360 >> JASON HIRSCHHORN: এটা চার বাইট এর. 574 00:26:54,360 --> 00:26:58,420 এবং 64 বিট কত বাইট হয়? 575 00:26:58,420 --> 00:26:59,112 >> ছাত্র: আট. 576 00:26:59,112 --> 00:27:00,610 >> JASON HIRSCHHORN: আট বাইট. 577 00:27:00,610 --> 00:27:03,980 তাই আবার, আট বিট এক বাইট. 578 00:27:03,980 --> 00:27:08,340 আপনার CS50 প্রয়োগ হয় একটি 32 বিট মেশিনের. 579 00:27:08,340 --> 00:27:13,650 তাই মেমরি ঠিকানা হল দীর্ঘ চার বাইট. 580 00:27:13,650 --> 00:27:17,460 2 32 করার আছে মেমরি অ্যাড্রেস. 581 00:27:17,460 --> 00:27:21,310 0 32 বিয়োগ 1 থেকে 2. 582 00:27:21,310 --> 00:27:27,630 এবং আমি ইতিবাচক নই, কিন্তু যে এর আপনি প্রয়োজন সম্ভবত সুযোগ 583 00:27:27,630 --> 00:27:35,230 , একটি 32 বিট মেশিনের জন্য জানেন যে মেমরি ঠিকানা,, আবার, চার বাইট দীর্ঘ 584 00:27:35,230 --> 00:27:39,620 এবং যে সর্বোচ্চ পরিমাণ আছে মেমরি ঠিকানা. 585 00:27:39,620 --> 00:27:41,680 >> এছাড়াও, তথ্য ধরনের - 586 00:27:41,680 --> 00:27:45,020 এই হিসাবে কিছু হতে পারে ভাল রাখবেন যে এর মূল্য. 587 00:27:45,020 --> 00:27:49,610 একটি ডাটা টাইপ আকারের উপর নির্ভর করে আপনার সাথে কাজ করছি মেশিন. 588 00:27:49,610 --> 00:27:56,760 সুতরাং একটি গৃহস্থালি, একটি একক চরিত্র, কিভাবে আমাদের CS50 প্রয়োগ অনেক বাইট? 589 00:27:56,760 --> 00:27:57,980 এক বাইট. 590 00:27:57,980 --> 00:28:02,310 এবং এটা আসলে এক বাইট হিসাবে এর ভাল একটি 64 বিট মেশিনের মধ্যে. 591 00:28:02,310 --> 00:28:05,920 >> এবং সবচেয়ে তথ্য ধরনের একই সংখ্যা থাকে উভয় মেশিনে বাইট. 592 00:28:05,920 --> 00:28:11,620 কিন্তু কিছু তথ্য ধরনের আলাদা হতে হবে উভয় মেশিনে. 593 00:28:11,620 --> 00:28:14,590 সুতরাং যে সম্ভাব্য হবে আপনাকে জানতে হবে শুধু. 594 00:28:14,590 --> 00:28:16,710 >> এমনকি যে, আমি মনে করি, সীমার বাইরে - 595 00:28:16,710 --> 00:28:20,990 আপনি ফিরে তাকান যদি আমি প্রায় ইতিবাচক আছি পুরানো ক্যুইজ এ, এটা বলছেন, জন্য ধরে নিই 596 00:28:20,990 --> 00:28:24,090 আপনি ব্যবহার করছেন সমস্যা কোডিং একটি 32 বিট মেশিনের. 597 00:28:24,090 --> 00:28:26,620 598 00:28:26,620 --> 00:28:30,620 কিন্তু যে সঙ্গে বরাবর যেতে, আছে আপনি আগ্রহী ক্ষেত্রে, আছে 599 00:28:30,620 --> 00:28:35,920 একই যে ধরনের তথ্য সব মেশিনে আকার. 600 00:28:35,920 --> 00:28:42,670 >> আপনি ভালো কিছু দেখা করেছি uint32_t, আপনি হতে পারে অথবা হতে পারে 601 00:28:42,670 --> 00:28:43,260 যে দেখা যায় না. 602 00:28:43,260 --> 00:28:44,290 যে একটি ডাটা টাইপ এর. 603 00:28:44,290 --> 00:28:47,570 এটা 32 বিট কোনো ব্যাপার হবে, বলছে না এই কি মেশিনে হয়. 604 00:28:47,570 --> 00:28:50,350 সুতরাং মানুষ পোর্টেবল লেখা হয় কোড, তারা সম্ভবত ints ব্যবহার করবে না. 605 00:28:50,350 --> 00:28:53,260 তারা পরিবর্তে এই অন্যান্য তথ্য ব্যবহার করব তারা জানেন যে ধরনের একই হবে 606 00:28:53,260 --> 00:28:54,780 প্রতি একক মেশিনে আকার. 607 00:28:54,780 --> 00:28:58,080 608 00:28:58,080 --> 00:28:58,250 মধু. 609 00:28:58,250 --> 00:29:00,150 >> MADHU: আমি সম্পর্কে একটি প্রশ্ন ছিল সংকলন প্রক্রিয়া. 610 00:29:00,150 --> 00:29:04,110 তাই আপনি ব্যবহার করে একটি প্রোগ্রাম লেখার করছি CS50 বা কিছু মত একটি লাইব্রেরি 611 00:29:04,110 --> 00:29:06,840 যে মত, আমি জানি যে যে লাইব্রেরি , এক পর্যায়ে হতে হয়েছে 612 00:29:06,840 --> 00:29:08,590 কম্পাইল এবং ইন লিঙ্ক 613 00:29:08,590 --> 00:29:13,380 কিন্তু কত যে সময় ঘটবে আপনার প্রোগ্রাম সংকলন? 614 00:29:13,380 --> 00:29:15,880 যে লাইব্রেরি প্রক্রিয়ার কি অংশ আপনি যখন ঘটে 615 00:29:15,880 --> 00:29:18,560 আপনার নিজস্ব প্রোগ্রাম কম্পাইল? 616 00:29:18,560 --> 00:29:24,020 >> JASON HIRSCHHORN: তাই এর উপর ছেড়ে দেওয়া এই প্রক্রিয়ার সাধারণত ধাপ. 617 00:29:24,020 --> 00:29:26,280 তুমি তোমার. গ ফাইল লিখতে. 618 00:29:26,280 --> 00:29:33,530 আপনার. গ ফাইল, আপনি # অন্তর্ভুক্ত আপনার হেডার লাইব্রেরি, যেমন, cs50.h. 619 00:29:33,530 --> 00:29:39,480 ধারালো অন্তর্ভুক্ত কি না লাইন আপনার প্রোগ্রাম কি? 620 00:29:39,480 --> 00:29:40,525 Akchar. 621 00:29:40,525 --> 00:29:43,350 >> AKCHAR: এটা এর এগুলির নমুনা সংযোজন হেডার থেকে ফাংশন 622 00:29:43,350 --> 00:29:45,120 লাইব্রেরি ফাইল. 623 00:29:45,120 --> 00:29:45,600 >> JASON HIRSCHHORN: যথাযথভাবে. 624 00:29:45,600 --> 00:29:49,870 এটা ঐ ফাংশন এগুলির নমুনা সংযোজন আপনার কোড করা. 625 00:29:49,870 --> 00:29:55,230 আপনার কোড কম্পাইল করা হচ্ছে তাই যখন প্রাথমিক পর্যায়ে, কম্পাইলার জানে 626 00:29:55,230 --> 00:29:59,250 এই ফাংশন সত্যিই বিদ্যমান, এবং যে যে কোথাও তারা সংজ্ঞায়িত করা হয়েছে. 627 00:29:59,250 --> 00:30:02,460 . জ ফাইল অন্তর্ভুক্ত করবেন না এই ফাংশন জন্য সংজ্ঞা বা কিভাবে 628 00:30:02,460 --> 00:30:03,950 তারা আসলে কাজ. 629 00:30:03,950 --> 00:30:07,960 Cs50.h ঠিক বলেছেন এমন কিছু বিষয় রয়েছে GetString একটি বাস্তব ব্যাপার হল 630 00:30:07,960 --> 00:30:09,270 ঘটতে পারে. 631 00:30:09,270 --> 00:30:14,240 আর standardio.h printf, বলছেন ঘটতে পারে যে আসল জিনিস. 632 00:30:14,240 --> 00:30:23,190 >> তাই এই সাথে আপনার C ভাষা. হেডারের ফাইলের কিছু পরিণত পরার 633 00:30:23,190 --> 00:30:27,750 মেশিনে পাঠযোগ্য কোড, যা শেষ পর্যন্ত বাইনারি পরিণত পরার 634 00:30:27,750 --> 00:30:30,030 কোড, 0 এবং 1 এর. 635 00:30:30,030 --> 00:30:33,590 এবং যে কোড যে চরমভাবে মৃত্যুদন্ড কার্যকর করা হয়. 636 00:30:33,590 --> 00:30:38,550 -L CS50 লাইন - উদাহরণস্বরূপ, আপনি ঝনঝন লেখার যখন - 637 00:30:38,550 --> 00:30:41,830 এবং তারপর আপনি অন্তর্ভুক্ত-L CS50, আপনি লগইন করেননি যে টাইপ 638 00:30:41,830 --> 00:30:42,180 এবং যদি আপনি দেখতে যে. 639 00:30:42,180 --> 00:30:43,890 আপনি লিখুন, আপনি পাবেন এখানে যে লাইন দেখুন. 640 00:30:43,890 --> 00:30:47,740 এবং আমরা একটি দ্বিতীয় মধ্যে দেখতে পাবেন যখন আমরা কোড বা পরে যখন আমরা কোড প্রথম. 641 00:30:47,740 --> 00:30:50,390 >> কিন্তু যে-L CS50 লাইন কিছু না তুলনায় একটু ভিন্ন 642 00:30:50,390 --> 00:30:52,440 # Cs50.h. অন্তর্ভুক্ত 643 00:30:52,440 --> 00:30:56,300 যে-L CS50 লাইন কী কাজ করে? 644 00:30:56,300 --> 00:30:56,820 Avi? 645 00:30:56,820 --> 00:31:00,310 >> AVI: আমার মনে হয় এটা যে সংযোগগুলি বলতে চাই ফাংশন লাইব্রেরি 646 00:31:00,310 --> 00:31:02,710 . ণ ফাইল মত, কল. 647 00:31:02,710 --> 00:31:08,200 >> JASON HIRSCHHORN: তাই খুবই বন্ধ, স্পট অন না হলে. 648 00:31:08,200 --> 00:31:16,220 -L CS50 বাইনারি ফাইল লাগে এবং আপনার বাইনারি ফাইল সঙ্গে এটি সংযোজন করে. 649 00:31:16,220 --> 00:31:21,410 সুতরাং cs50.h, বাঁক কোন পয়েন্ট আছে প্রতিটি বাইনারি থেকে সি ভাষা থেকে cs50.h 650 00:31:21,410 --> 00:31:23,130 এটি ব্যবহৃত হচ্ছে একক সময়. 651 00:31:23,130 --> 00:31:26,650 অর্থাৎ, নিরীহ হবে, কারণ যে অনেক সময় নষ্ট হবে. 652 00:31:26,650 --> 00:31:30,420 সুতরাং এটি ইতিমধ্যে কম্পাইল করা হয়েছে এবং একটি এক্সিকিউটেবল পরিণত হয়েছে. 653 00:31:30,420 --> 00:31:35,430 এবং এখন এটি মিশে গিয়ে তৈরি করা যাচ্ছে না শেষে আপনার ফাইল সঙ্গে. 654 00:31:35,430 --> 00:31:38,370 সুতরাং ঐ 1 এর এবং 0 এর যাচ্ছি আপনার বেশী সঙ্গে একত্রীকরণ 655 00:31:38,370 --> 00:31:39,150 এবং শেষে 0 এর. 656 00:31:39,150 --> 00:31:43,670 তাই এখন আপনি আসলে প্রকৃত করতে হবে 1 এর এবং 0 এর কিভাবে GetString সংজ্ঞায়িত যে, 657 00:31:43,670 --> 00:31:47,890 উদাহরণস্বরূপ,, কাজ, বা কিভাবে printf উদাহরণস্বরূপ, কাজ করে. 658 00:31:47,890 --> 00:31:52,750 >> এবং আরও তথ্যের জন্য, আছে একটি Nate যে যে দেয় স্বল্প কম্পাইলার 659 00:31:52,750 --> 00:31:55,410 আপনি যে যায় পরীক্ষা করা উচিত এই পদক্ষেপের মধ্য দিয়ে. 660 00:31:55,410 --> 00:31:56,050 কিন্তু - 661 00:31:56,050 --> 00:31:56,560 হ্যাঁ. 662 00:31:56,560 --> 00:32:01,700 >> ছাত্র: তারা সবসময় ণ ফাইল. তারা লাইব্রেরি আকারে যখন, 663 00:32:01,700 --> 00:32:06,764 মত - লিঙ্ক, মার্জ করা প্রস্তুত তারা বাইনারি কোড মধ্যে আছেন? 664 00:32:06,764 --> 00:32:07,600 >> JASON HIRSCHHORN: ঠিক আছে. 665 00:32:07,600 --> 00:32:08,420 কি - 666 00:32:08,420 --> 00:32:11,780 >> ছাত্র: যে সবসময় জন্য কেস লাইব্রেরি আপনি তাদের সংযোগ আছে যখন? 667 00:32:11,780 --> 00:32:12,500 >> JASON HIRSCHHORN: হ্যাঁ. 668 00:32:12,500 --> 00:32:17,300 তাই. গুলি করা হবে, যা ফাইল, আছে এছাড়াও হবে, যা মেশিন কোড, 669 00:32:17,300 --> 00:32:17,975 আপনার কাছে রহস্যপূর্ণ. 670 00:32:17,975 --> 00:32:19,410 আপনি যাদের সম্পর্কে চিন্তা করতে হবে না. 671 00:32:19,410 --> 00:32:24,930 কিন্তু সাধারণত, হাঁ, তারা করব হে যেতে প্রস্তুত ফাইলের মধ্যে. করা. 672 00:32:24,930 --> 00:32:27,170 >> ছাত্র: সুতরাং আপনি করতে অর্ণবপোত যখন একটি লাইব্রেরি, আপনি শুধুমাত্র অর্ণবপোত না 673 00:32:27,170 --> 00:32:28,880 . জ ও. হে? 674 00:32:28,880 --> 00:32:32,210 আপনি. গ বা. গুলি অর্ণবপোত না. 675 00:32:32,210 --> 00:32:33,070 >> JASON HIRSCHHORN: তাই - 676 00:32:33,070 --> 00:32:36,260 এবং এই, যদি পাশাপাশি এই সংক্ষেপে হয় এই তথ্য আসছে বলে মনে হয় 677 00:32:36,260 --> 00:32:36,700 একটু দ্রুত. 678 00:32:36,700 --> 00:32:39,870 কিন্তু কম্পাইলার উপর সংক্ষিপ্ত এই সম্পর্কে আলোচনা হিসাবে ভাল. 679 00:32:39,870 --> 00:32:43,290 আপনি একটি লাইব্রেরি অর্ণবপোত করার সময়, যদি আপনি অর্ণবপোত . জ, হেডার ফাইল, যারা 680 00:32:43,290 --> 00:32:46,290 ফাংশন এগুলির নমুনা, এবং 1 এর এবং 0 এর, যে আপনি দিতে প্রয়োজন সব. 681 00:32:46,290 --> 00:32:50,640 আপনি দিতে প্রয়োজন নেই কিভাবে ফাংশন. গ ফাইল, কাজ করে. 682 00:32:50,640 --> 00:32:56,360 কারণ বিমূর্ততা বিন্দু, অথবা API গুলি নির্দেশ, এই SPL এ বিন্দু, 683 00:32:56,360 --> 00:32:59,650 স্ট্যানফোর্ড বহনযোগ্য লাইব্রেরি, এটা আপনি চিন্তা করবেন না করার জন্য কিভাবে নতুন 684 00:32:59,650 --> 00:33:04,220 GRect, কাজ, বা কিভাবে কাজ অগ্রসর বা কিভাবে কাজ যোগ করুন. 685 00:33:04,220 --> 00:33:06,520 আপনাকে জানতে হবে সব যে অ্যাড হয় আপনি পারেন যে একটি ফাংশন 686 00:33:06,520 --> 00:33:08,880 ব্যবহার, এবং এটা এই আছে. 687 00:33:08,880 --> 00:33:12,760 সুতরাং আপনি সত্যিই জানতে হবে না, কিভাবে এটা সি আপনি এ লেখা শুধু প্রয়োজন 688 00:33:12,760 --> 00:33:15,460 জানি, এখানে ফাংশন হয়, কি তারা কাজ, এবং এখানে 1 এর এবং 0 এর হয় 689 00:33:15,460 --> 00:33:18,870 আপনি সত্যিই তাদের ব্যবহার করতে চান না. 690 00:33:18,870 --> 00:33:19,530 >> কুল. 691 00:33:19,530 --> 00:33:26,980 কম্পাইলার উপর কোন প্রশ্ন বা বোর্ডে অন্যান্য বিষয়? 692 00:33:26,980 --> 00:33:30,300 >> ছাত্র: আমি একটি প্রশ্ন আছে recursive ফাংশন রূপায়ণকারী. 693 00:33:30,300 --> 00:33:31,170 Recursion সম্পর্কে একটি প্রশ্ন. 694 00:33:31,170 --> 00:33:33,030 আমি চিন্তা যে একটা অনুভূতি ছিল. 695 00:33:33,030 --> 00:33:38,310 সুতরাং আসুন দ্রুত মধ্য দিয়ে যেতে দেওয়া একটি নির্দিষ্ট সঙ্গে recursion 696 00:33:38,310 --> 00:33:40,690 উদাহরণস্বরূপ, একটি গৌণিক ফাংশন. 697 00:33:40,690 --> 00:33:44,920 এই একটি উদাহরণ কারণ যে প্রায়ই আসে আপ বা ব্যবহার করা হয় 698 00:33:44,920 --> 00:33:46,170 recursion চিত্রিত. 699 00:33:46,170 --> 00:33:52,390 700 00:33:52,390 --> 00:33:56,410 >> সুতরাং "4" 4 গৌণিক হিসেবে পড়া হয়. 701 00:33:56,410 --> 00:33:59,120 এবং 4 গৌণিক কি মানে? 702 00:33:59,120 --> 00:34:00,696 যে কী কাজ করে? 703 00:34:00,696 --> 00:34:02,235 আপনি কিভাবে 4 গৌণিক নিরূপণ করব? 704 00:34:02,235 --> 00:34:05,250 705 00:34:05,250 --> 00:34:07,960 4 বার 3 বার 2 বার 1. 706 00:34:07,960 --> 00:34:11,889 >> 4 গৌণিক লিখতে তাই অন্য উপায় এই লিখতে হয়. 707 00:34:11,889 --> 00:34:16,780 708 00:34:16,780 --> 00:34:19,022 4 বার 3 গৌণিক. 709 00:34:19,022 --> 00:34:22,080 3 গৌণিক কারণ 3 বার 2 বার 1. 710 00:34:22,080 --> 00:34:27,580 তাই 4 বার 3 গৌণিক 4 হয় বার 3 বার 2 বার 1. 711 00:34:27,580 --> 00:34:32,679 গৌণিক একটি মহান এটি কেন recursion জন্য প্রার্থী, এটা কারণ 712 00:34:32,679 --> 00:34:36,630 যে কিছু আছে স্পষ্ট যে একটি উপর উপর এবং বহুবার এরকম 713 00:34:36,630 --> 00:34:39,820 জিনিস ছোট নম্বর না হওয়া পর্যন্ত আপনি শেষ পৌঁছানোর. 714 00:34:39,820 --> 00:34:42,570 আপনি 1 পৌঁছানোর, 1 গৌণিক 1. 715 00:34:42,570 --> 00:34:43,719 আপনি অনেক অগ্রগতি হতে পারে না. 716 00:34:43,719 --> 00:34:47,219 0 গৌণিক এছাড়াও 1 হিসেবে সংজ্ঞায়িত করা হয়. 717 00:34:47,219 --> 00:34:50,679 আপনি 1 বা 0 থেকে যখন সুতরাং, আপনি আছেন শেষে, এবং আপনি যা করতে পারেন 718 00:34:50,679 --> 00:34:53,219 ফিরে ঊর্ধ্বগামী শুরু. 719 00:34:53,219 --> 00:34:59,540 আমরা একটি recursive লিখতে চেয়েছিলেন তাই যদি একটি গৌণিক নিরূপণ ফাংশন, 720 00:34:59,540 --> 00:35:02,170 আমরা কিছু লিখতে যাচ্ছেন যে এখন জন্য pseudocode. 721 00:35:02,170 --> 00:35:03,300 আমরা যে pseudocode লিখুন আগে - 722 00:35:03,300 --> 00:35:05,660 আমি আপনাকে বলছি কয়েক মিনিট দেব ছদ্ম কোড লিখতে বা শুধু মনে 723 00:35:05,660 --> 00:35:09,600 এটা সম্পর্কে - প্রতি দুটি জিনিস আছে recursive ফাংশন প্রয়োজন. 724 00:35:09,600 --> 00:35:12,530 ঐ দুটি জিনিস কি কি? 725 00:35:12,530 --> 00:35:13,220 >> JACK: এটা নিজেই কল আছে. 726 00:35:13,220 --> 00:35:13,680 >> JASON HIRSCHHORN: নোয়া? 727 00:35:13,680 --> 00:35:14,460 ওহ, জ্যাক. 728 00:35:14,460 --> 00:35:15,100 এগিয়ে যান. 729 00:35:15,100 --> 00:35:16,640 >> JACK: এটা নিজেই কল আছে. 730 00:35:16,640 --> 00:35:19,220 >> JASON HIRSCHHORN: তাই একটি recursive ফাংশন একটি recursive কল প্রয়োজন একটি 731 00:35:19,220 --> 00:35:20,220 নিজেই কল. 732 00:35:20,220 --> 00:35:20,770 যে এক. 733 00:35:20,770 --> 00:35:21,510 আর অন্যান্য জিনিস কি? 734 00:35:21,510 --> 00:35:22,250 >> JACK: একটি বেস কেস. 735 00:35:22,250 --> 00:35:23,780 >> JASON HIRSCHHORN: একটি বেস কেস. 736 00:35:23,780 --> 00:35:26,940 একটি বেস ক্ষেত্রে আমরা থামাতে যখন এখানে, হয়. 737 00:35:26,940 --> 00:35:29,510 সুতরাং আপনার ফাংশন বলা হয়. 738 00:35:29,510 --> 00:35:31,410 বেস কেস আসে প্রথম. 739 00:35:31,410 --> 00:35:33,710 আপনি শেষে যদি জানতে চান. 740 00:35:33,710 --> 00:35:37,110 এবং আপনি, শেষে আপনি না হন তাহলে আপনার recursive কল করতে. 741 00:35:37,110 --> 00:35:39,880 এবং যদি আপনি আবার এই ফাংশন দিয়ে যেতে আবার আপনার বেস কেস চেক. 742 00:35:39,880 --> 00:35:42,575 আপনি শেষে পারব না, আপনি করতে অন্য recursive কল, 743 00:35:42,575 --> 00:35:44,130 ইত্যাদি ইত্যাদি, ইত্যাদি ইত্যাদি. 744 00:35:44,130 --> 00:35:47,110 >> এটা কেন recursive ফাংশন সর্বদাই ঐ বেস ক্ষেত্রে এবং ঐ প্রয়োজন 745 00:35:47,110 --> 00:35:48,210 recursive কল. 746 00:35:48,210 --> 00:35:51,280 আপনি একটি recursive কল না থাকে, এটা একটি recursive ফাংশন হবে না. 747 00:35:51,280 --> 00:35:53,210 আপনি একটি বেস কেস আছে কি না যদি, আপনি চিরতরে গিয়ে হবে 748 00:35:53,210 --> 00:35:54,780 কোন সমাপ্তি হতে পারে. 749 00:35:54,780 --> 00:35:57,870 এবং বেস ক্ষেত্রে সবসময় প্রথম আসে, আপনি সবসময় পরীক্ষা করতে হবে, কারণ 750 00:35:57,870 --> 00:36:00,420 আপনাকে প্রথমে শেষে হন তাহলে. 751 00:36:00,420 --> 00:36:04,770 আমরা কিছু pseudocode কি তাই আগে, কেন আপনি আমার মনে হয় এক মিনিট লাগবে না 752 00:36:04,770 --> 00:36:09,360 কিভাবে একটি recursive গৌণিক ফাংশন লেখা হবে? 753 00:36:09,360 --> 00:36:23,340 754 00:36:23,340 --> 00:36:26,010 >> এছাড়াও, আপনি করছেন হিসাবে হিসাবে অনেক, লেখা কাগজের একটি পত্রকে এটি হল 755 00:36:26,010 --> 00:36:27,960 আপনার কাছে আছে চলুন কি আগামীকাল ব্যঙ্গ করবেন. 756 00:36:27,960 --> 00:36:32,160 করা তাই সম্ভবত ভাল অভ্যাস নিশ্চিত করুন যে আপনি লেখার কোড 757 00:36:32,160 --> 00:36:34,420 কাগজ পত্রকে নিচে - 758 00:36:34,420 --> 00:36:35,160 অথবা আপনি তা করতে পারে. 759 00:36:35,160 --> 00:36:36,710 সেমিকোলন যেখানে আপনি জানেন. 760 00:36:36,710 --> 00:36:37,660 আপনি সিনট্যাক্স মনে রাখবেন. 761 00:36:37,660 --> 00:36:40,400 আপনার থাকতে পারবে না করছি কারণ একটি কম্পাইলার আপনাকে একটি ত্রুটি তৈরি বলুন. 762 00:36:40,400 --> 00:37:02,356 763 00:37:02,356 --> 00:37:07,240 >> এছাড়াও, যারা লাইন, আগামীকাল, বরাবর যখন আপনি যদি আপনি, সমস্যার কোডিং করেছেন 764 00:37:07,240 --> 00:37:11,490 সময় জন্য rushed, বা হয় যদি আপনি খুব করছি আপনি অনুমিত করছি কিভাবে হিসাবে বিভ্রান্ত 765 00:37:11,490 --> 00:37:16,030 সি নির্দিষ্ট জিনিস লিখুন, এটা ছদ্ম - কোড লিখুন আপনি behoove হবে 766 00:37:16,030 --> 00:37:18,160 অথবা পাশাপাশি এ মন্তব্য লিখুন. 767 00:37:18,160 --> 00:37:21,940 একটি জন্য আংশিক ক্রেডিট আছে কারণ ব্যঙ্গ প্রশ্ন অনেক. 768 00:37:21,940 --> 00:37:24,840 তাই আপনি যদি আপনি rushed, বা হতে পারে শুধু বিভ্রান্ত হতে পারে. 769 00:37:24,840 --> 00:37:28,030 মতামত বা ছদ্ম - কোড মধ্যে লিখন প্রায়ই ভাবে যে আপনি 770 00:37:28,030 --> 00:37:29,360 আংশিক ক্রেডিট পেতে পারেন. 771 00:37:29,360 --> 00:37:31,440 >> তাই কিছু ছেড়ে না ব্যঙ্গ নেভিগেশন ফাঁকা. 772 00:37:31,440 --> 00:37:33,490 জন্য কোনো জরিমানা নেই ইন জিনিষ নির্বাণ 773 00:37:33,490 --> 00:37:37,650 আসলে, ছদ্ম - কোড নির্বাণ বা মন্তব্য grader সাহায্য যাচ্ছে 774 00:37:37,650 --> 00:37:40,410 আসলে আপনি যদি জানেন জিনিসটা কি আপনি হয়তো পুরস্কার সম্পর্কে কথা বলা, এবং করছি 775 00:37:40,410 --> 00:37:42,030 আপনি যে জন্য কিছু আংশিক ক্রেডিট. 776 00:37:42,030 --> 00:37:44,510 >> এছাড়াও যারা লাইন বরাবর পরিষ্কারভাবে লিখতে. 777 00:37:44,510 --> 00:37:47,650 আমরা সত্যিই আপনি লেখার না পারেন তা হলে, আমরা আপনার ফোন করতে যাচ্ছেন না 778 00:37:47,650 --> 00:37:49,900 চিত্রে থেকে মধ্যরাত আগামীকাল এ আপনি লিখেছেন কি. 779 00:37:49,900 --> 00:37:51,520 আমরা শুধু পয়েন্ট বন্ধ করা চলুন. 780 00:37:51,520 --> 00:37:56,570 তাই আমরা বরং শুনতে, বা পারেন পরিষ্কারভাবে লিখুন, আমরা আপনাকে লেখেন কি পড়তে পারেন. 781 00:37:56,570 --> 00:38:00,230 >> এবং এটি দুটি বাক্য বলে থাকেন, একটি অনুচ্ছেদ লিখুন না. 782 00:38:00,230 --> 00:38:02,280 নির্দেশাবলী অনুসরণ করুন. 783 00:38:02,280 --> 00:38:03,500 পরিষ্কারভাবে লিখুন. 784 00:38:03,500 --> 00:38:07,720 এবং যারা মন্তব্য লিখতে বা প্রশ্নের জন্য pseudocode যে পারা 785 00:38:07,720 --> 00:38:10,270 পুরস্কার আংশিক ক্রেডিট. 786 00:38:10,270 --> 00:38:12,520 >> ঠিক আছে, এর গুণিতক করতে যান. 787 00:38:12,520 --> 00:38:15,000 সুতরাং আমরা একটি ফাংশন গৌণিক আছে. 788 00:38:15,000 --> 00:38:18,400 789 00:38:18,400 --> 00:38:21,550 আমি আসলে সি এই লেখার ছিল, যদি কি আমি নামের আগে করা প্রয়োজন 790 00:38:21,550 --> 00:38:22,800 ফাংশন? 791 00:38:22,800 --> 00:38:24,880 792 00:38:24,880 --> 00:38:30,060 রিটার্ন টাইপ, এই যা, ক্ষেত্রে, আমরা এটি int-দেব. 793 00:38:30,060 --> 00:38:35,450 এবং তারপর কোঁকড়া ধনুর্বন্ধনী ভিতরে হয় কি জন্য কোঁকড়া ধনুর্বন্ধনী ভিতরে যায় 794 00:38:35,450 --> 00:38:36,850 একটি ফাংশন? 795 00:38:36,850 --> 00:38:37,950 >> ছাত্রদের: আর্গুমেন্ট টাইপ. 796 00:38:37,950 --> 00:38:39,150 >> JASON HIRSCHHORN: তার আর্গুমেন্ট. 797 00:38:39,150 --> 00:38:42,680 সুতরাং গৌণিক হবে সম্ভবত একটি আর্গুমেন্ট গ্রহণ করা. 798 00:38:42,680 --> 00:38:44,500 এটা সম্ভবত শুধুমাত্র এক যুক্তি নেব. 799 00:38:44,500 --> 00:38:49,450 এবং আমরা তা গ্রহণ করব বলবো একটি পূর্ণসংখ্যা নামক এক্স. 800 00:38:49,450 --> 00:38:52,770 এবং আবার, প্রোটোটাইপ লেখার সময় একটি ফাংশন বা ফাংশন লেখা 801 00:38:52,770 --> 00:38:57,110 , আপনি এটা নির্ধারণ করার আগে আপনার কোডে ডাটা টাইপ এবং নাম লিখুন 802 00:38:57,110 --> 00:39:01,370 শুধু তাই ফাংশনের জন্য যে পরিবর্তনশীল. 803 00:39:01,370 --> 00:39:06,350 তাই আপনি যদি এই মধ্যে কিছু সংখ্যক পাস করতে পারেন ফাংশন, এটা x এর হিসাবে উল্লেখ করা হবে 804 00:39:06,350 --> 00:39:07,340 অন্ত. 805 00:39:07,340 --> 00:39:08,755 >> আমরা আমাদের গৌণিক ফাংশন আছে. 806 00:39:08,755 --> 00:39:12,030 807 00:39:12,030 --> 00:39:15,850 আমরা দুটি জিনিস, একটি বেস ক্ষেত্রে প্রয়োজন এবং একটি recursive কল. 808 00:39:15,850 --> 00:39:20,900 গৌণিক জন্য বেস কেস কি? 809 00:39:20,900 --> 00:39:24,850 এটি লিখেছেন এবং যারা না আছে কারো এখনো কথিত, বেস কি 810 00:39:24,850 --> 00:39:26,100 গৌণিক জন্য কেস? 811 00:39:26,100 --> 00:39:28,400 812 00:39:28,400 --> 00:39:30,930 >> ছাত্র: এন কম থাকলে 2 তুলনায়, 1 ফিরে. 813 00:39:30,930 --> 00:39:33,520 >> JASON HIRSCHHORN: R থাকলে 2 তুলনায় কম, 1 ফিরে. 814 00:39:33,520 --> 00:39:37,216 আমি চাই যে, এ কারণে যে 0 এবং 1 যত্ন নেয়. 815 00:39:37,216 --> 00:39:45,290 সুতরাং আমরা, X <2 করবেন 1 ফিরে আসবেন. 816 00:39:45,290 --> 00:39:47,870 আমরা পেতে যদি আমরা 0 পাস করতে হলে 1 অতিক্রান্ত, এই ফাংশন হবে 817 00:39:47,870 --> 00:39:49,790 অবিলম্বে 1 ফিরে. 818 00:39:49,790 --> 00:39:54,020 আমরা কিছু সংখ্যক বৃহত্তর পাশ করতে হলে বেশী বা 2 সমান, আমরা চলুন 819 00:39:54,020 --> 00:39:55,370 আমাদের recursive কল আছে. 820 00:39:55,370 --> 00:39:57,855 >> তাই কিভাবে যে কাজ করে যাচ্ছে? 821 00:39:57,855 --> 00:40:01,070 এই কাজ যারা অন্য কেউ যারা এখনো উচ্চারিত হয়নি আমাকে দিতে 822 00:40:01,070 --> 00:40:07,380 এই ফাংশন জন্য recursive কল pseudocode মধ্যে? 823 00:40:07,380 --> 00:40:10,770 আমরা একটি সংখ্যা x এর মধ্যে পাস করতে হলে এবং এটা 2 থেকে বড় হচ্ছে, কি 824 00:40:10,770 --> 00:40:13,370 আমরা যেতে চাই না? 825 00:40:13,370 --> 00:40:17,930 আমরা একটি উদাহরণ উপর লিখিত আছে আপনি একটা ইংগিত দিতে পারে এমন দিকে. 826 00:40:17,930 --> 00:40:20,770 >> ছাত্র: এক্স বার কল করুন এক্স বিয়োগ 1 এর গৌণিক? 827 00:40:20,770 --> 00:40:22,020 >> JASON HIRSCHHORN: ঠিক ঠিক. 828 00:40:22,020 --> 00:40:24,610 829 00:40:24,610 --> 00:40:37,750 আমরা এক্স বার ফিরে চলুন এক্স বিয়োগ 1 এর গৌণিক. 830 00:40:37,750 --> 00:40:41,810 এবং, আমি আপ লিখেছিলেন, যদিও যে মূলত, আপনি কি ইংরেজিতে বলেন, 831 00:40:41,810 --> 00:40:44,580 এই গৌণিক ফাংশন আবার বলা হবে. 832 00:40:44,580 --> 00:40:46,320 এটি এক্স বিয়োগ 1 উপর চালানো করব. 833 00:40:46,320 --> 00:40:49,320 এটা কিছু পূর্ণসংখ্যা সঙ্গে ফিরে, এবং করব তারপর এটি এই দুই গুন করব 834 00:40:49,320 --> 00:40:52,050 একসাথে, এবং যে মান হবে এই বলা যাহা ফিরে 835 00:40:52,050 --> 00:40:55,010 গৌণিক ফাংশন, যা যথাসাধ্য অন্য ইনস্ট্যান্সের মধ্যে হতে 836 00:40:55,010 --> 00:40:58,420 এই গৌণিক ফাংশন. 837 00:40:58,420 --> 00:41:01,360 >> সুতরাং যে একটি recursive একটি উদাহরণ ফাংশন, একটি খুব 838 00:41:01,360 --> 00:41:02,530 সহজ recursive ফাংশন. 839 00:41:02,530 --> 00:41:04,530 কিন্তু তাদের অধিকাংশই এই মত হতে হবে. 840 00:41:04,530 --> 00:41:11,170 আপনি একটি ভাল recursive চাই ব্যঙ্গ জন্য চ্যালেঞ্জ, কোডিং চেষ্টা 841 00:41:11,170 --> 00:41:13,230 বাইনারি অনুসন্ধান recursively. 842 00:41:13,230 --> 00:41:18,950 কারণ আপনার জন্য বাইনারি অনুসন্ধান না হলে সমস্যা তিন সেট, তাহলে সম্ভবত তা 843 00:41:18,950 --> 00:41:21,730 iteratively যখন একটি লুপ মধ্যে. 844 00:41:21,730 --> 00:41:23,700 >> কিন্তু এটা এমন একটা লেখা যেতে পারে recursively. 845 00:41:23,700 --> 00:41:26,310 আপনি আপনার নিজের লেখার প্রয়োজন চলুন কিছু লাগে পৃথক ফাংশন 846 00:41:26,310 --> 00:41:29,020 বিভিন্ন কমান্ড লাইন আর্গুমেন্ট - বা না কমান্ড লাইন আর্গুমেন্ট, কিছু 847 00:41:29,020 --> 00:41:30,910 বিভিন্ন শুধু নিয়মিত আর্গুমেন্ট. 848 00:41:30,910 --> 00:41:33,870 কিন্তু আপনি বাইনারি অনুসন্ধান লিখতে পারেন recursively হিসাবে ভাল. 849 00:41:33,870 --> 00:41:36,190 >> ছাত্র: সুতরাং আপনার কাছে লিখিত আছে পারে, পরিবর্তে এক্স বিয়োগ 1 হাজার, আপনি 850 00:41:36,190 --> 00:41:39,502 এছাড়াও এক্স বিয়োগ লেখা থাকতে পারে বিয়োগ, বা, আপনি হতে পারে 851 00:41:39,502 --> 00:41:40,830 লিখিত বিয়োগ বিয়োগ এক্স. 852 00:41:40,830 --> 00:41:44,740 আপনি শুধু সত্যিই দ্রুত ব্যাখ্যা করতে পারি যারা বিভিন্ন বিষয় হবে, 853 00:41:44,740 --> 00:41:49,510 পার্থক্য মধ্যে কি মত এক্স বিয়োগ বিয়োগ এবং বিয়োগ বিয়োগ এক্স? 854 00:41:49,510 --> 00:41:51,320 >> JASON HIRSCHHORN: না, আমি নই যে ঢোকা যাচ্ছে. 855 00:41:51,320 --> 00:41:55,500 কিন্তু আমি পরে এটি সম্পর্কে আপনি কথা বলতে হবে বর্গ. এক্স বিয়োগ বিয়োগ, বিয়োগ বিয়োগ এক্স 856 00:41:55,500 --> 00:41:57,780 1 দ্বারা এক্স হ্রাস. 857 00:41:57,780 --> 00:41:59,090 কিন্তু তারা একটু ভিন্নভাবে এটা. 858 00:41:59,090 --> 00:42:00,340 কিন্তু আমি যে ঢোকা না চান. 859 00:42:00,340 --> 00:42:04,330 860 00:42:04,330 --> 00:42:09,090 Recursion সম্পর্কে অন্য প্রশ্নের এই ফাংশন? 861 00:42:09,090 --> 00:42:10,140 যে সত্যিই এমনকি pseudocode না. 862 00:42:10,140 --> 00:42:15,060 এটা মূলত মধ্যে কোড এর আপনি এই জন্য লিখতে হবে C. 863 00:42:15,060 --> 00:42:19,393 >> ঠিক আছে, অন্য কোন প্রশ্ন এখানে বিষয় আপ সম্পর্কে কি? 864 00:42:19,393 --> 00:42:19,864 হ্যাঁ. 865 00:42:19,864 --> 00:42:23,130 >> ছাত্র: আমি দ্রুত ভগ্নস্বাস্থ্য শিঠ্ট আছে ফ্লোটিং পয়েন্ট এবং স্পষ্টতা. 866 00:42:23,130 --> 00:42:24,260 >> JASON HIRSCHHORN: ফ্লোটিং বিন্দু এবং স্পষ্টতা. 867 00:42:24,260 --> 00:42:26,920 Can কারো সত্যিই দ্রুত আমার একটি ভগ্নস্বাস্থ্য শিঠ্ট দিতে 868 00:42:26,920 --> 00:42:28,210 ফ্লোটিং পয়েন্ট এবং স্পষ্টতা? 869 00:42:28,210 --> 00:42:30,420 আপনি সব আপনার জন্য এই কি ছিল সমস্যা সেট, তাই আপনি সব করছি 870 00:42:30,420 --> 00:42:31,700 এটা সাথে পরিচিত. 871 00:42:31,700 --> 00:42:35,090 অথবা হয়ত সব না আপনাদের মধ্যে. 872 00:42:35,090 --> 00:42:36,602 যে কেউ? 873 00:42:36,602 --> 00:42:39,530 আমাকে একটা শুরু স্পট দিন. 874 00:42:39,530 --> 00:42:40,750 ফ্লোটিং পয়েন্ট এবং স্পষ্টতা. 875 00:42:40,750 --> 00:42:42,380 সমস্যা কি? 876 00:42:42,380 --> 00:42:42,960 হ্যাঁ. 877 00:42:42,960 --> 00:42:43,680 ভিক্টোরিয়া? 878 00:42:43,680 --> 00:42:44,480 >> Vanessa: Vanessa. 879 00:42:44,480 --> 00:42:45,285 >> JASON HIRSCHHORN: Vanessa. 880 00:42:45,285 --> 00:42:45,680 দুঃখিত. 881 00:42:45,680 --> 00:42:51,550 >> Vanessa: শুধুমাত্র একটি নির্দিষ্ট নম্বর আছে প্রতিনিধিত্ব করা যাবে সংখ্যার 882 00:42:51,550 --> 00:42:57,930 আপনি যদি একটি, এ করছি, কারণ আমাদের ক্ষেত্রে, একটি 32 বিট সিস্টেম. 883 00:42:57,930 --> 00:43:03,080 সুতরাং আপনি ধরনের আছে কিছু সংখ্যা আপ. 884 00:43:03,080 --> 00:43:03,910 >> JASON HIRSCHHORN: সুতরাং যে ঠিক অধিকার. 885 00:43:03,910 --> 00:43:08,110 শুধুমাত্র একটি নির্দিষ্ট পরিমাণ আছে প্রতিনিধিত্ব করা যাবে নম্বর. 886 00:43:08,110 --> 00:43:11,770 আপনি দুটি খুব বড় সংখ্যার গুন করা হলে, এটি পরিমাণ ওভারফ্লো পারে 887 00:43:11,770 --> 00:43:13,950 জায়গার আপনি উপস্থাপন করতে হবে একটি পূর্ণসংখ্যা. 888 00:43:13,950 --> 00:43:17,930 কখনও কখনও আমরা ব্যবহার কেন একটি পরিবর্তে কোন int দীর্ঘ দীর্ঘ. 889 00:43:17,930 --> 00:43:19,210 যে আরো শূণ্যস্থান আছে. 890 00:43:19,210 --> 00:43:21,210 এটা একটি বড় সংখ্যা রাখা যাবে. 891 00:43:21,210 --> 00:43:24,310 >> ফ্লোটিং পয়েন্ট স্পষ্টতা কি আছে যে, কিন্তু কি আছে 892 00:43:24,310 --> 00:43:29,300 দশমিক সংখ্যা যে সবসময় প্রতিনিধিত্ব না. 893 00:43:29,300 --> 00:43:29,540 দুঃখিত. 894 00:43:29,540 --> 00:43:31,280 আমার এই ব্যাক আপ করা যাক. 895 00:43:31,280 --> 00:43:36,610 দশমিক সংখ্যা 1.0 সবসময় নয় আপনার মত প্রতিনিধিত্ব আশা করবে, 896 00:43:36,610 --> 00:43:40,770 1,000000000. 897 00:43:40,770 --> 00:43:50,360 এটি কখনও কখনও হিসাবে প্রতিনিধিত্ব করা হয় 1,000000001 বা 0,999999999. 898 00:43:50,360 --> 00:43:52,780 এটি এমনকি 89 নিক্ষিপ্ত হতে পারে কোথাও সেখানে. 899 00:43:52,780 --> 00:43:56,560 সুতরাং যারা দশমিক সংখ্যা নয় ঠিক আপনি একটা ভালো প্রতিনিধিত্ব 900 00:43:56,560 --> 00:43:58,430 তাদের প্রতিনিধিত্ব করা আশা. 901 00:43:58,430 --> 00:44:00,010 >> সুতরাং সমস্যা সেট - 902 00:44:00,010 --> 00:44:00,860 এটি দুটি ছিল? - 903 00:44:00,860 --> 00:44:05,290 সমস্যা আমরা মোকাবেলা যেখানে দুই, সেট আমরা চেয়েছি যখন ফ্লোটিং পয়েন্ট সংখ্যা, 904 00:44:05,290 --> 00:44:08,690 তাদের আমরা চেয়েছিলেন ঠিক কি প্রতিনিধিত্বকারী তাদের প্রতিনিধিত্ব করতে, সংখ্যা 905 00:44:08,690 --> 00:44:12,860 পেনিসমূহ, বা সেন্ট সংখ্যা, আমরা 100 দ্বারা তাদের গুন. 906 00:44:12,860 --> 00:44:14,750 আমরা তাদের বৃত্তাকার. 907 00:44:14,750 --> 00:44:18,660 এবং তারপর আমরা সবকিছু ছিন্ন দশমিক পয়েন্ট পেছনে. 908 00:44:18,660 --> 00:44:22,020 তা নিশ্চিত করার জন্য যে তারা হবে আমরা চেয়েছিলেন ঠিক কি আসলে সমান 909 00:44:22,020 --> 00:44:22,410 তাদের সমান. 910 00:44:22,410 --> 00:44:26,870 >> আপনি কিছু নিতে যখন যে কারণ একটি float এবং আপনি কোন int এটা করান 911 00:44:26,870 --> 00:44:29,860 ডান সবকিছু ছিন্ন দশমিক বিন্দু. 912 00:44:29,860 --> 00:44:33,900 কিছু ফ্লোটিং পয়েন্ট আছে কারণ অনির্দিষ্টতা, 100.000 হতে পারে 913 00:44:33,900 --> 00:44:37,440 99,999999999 হিসাবে প্রতিনিধিত্ব. 914 00:44:37,440 --> 00:44:40,350 আর আপনি শুধু সবকিছু থেকে বিচ্ছিন্ন হলে এখুনি ঠিক আছে, আপনি চলুন 915 00:44:40,350 --> 00:44:41,600 ভুল নম্বর পেতে. 916 00:44:41,600 --> 00:44:44,050 917 00:44:44,050 --> 00:44:44,180 হ্যাঁ. 918 00:44:44,180 --> 00:44:45,290 >> ছাত্র: আমি ছিল একটি প্রশ্ন সম্পর্কে নিক্ষেপণ. 919 00:44:45,290 --> 00:44:47,500 কি যাতে এটা ঘটতে পারে? 920 00:44:47,500 --> 00:44:54,480 আপনি ভাসা করতে চাই তাহলে, বন্ধনী, 1 বিভক্ত 10 দ্বারা, 1, 10 দ্বারা এটি বিভক্ত করবেন না 921 00:44:54,480 --> 00:44:58,910 তারপর 0.1 পেতে, তারপর চালু একটি float মধ্যে এটি? 922 00:44:58,910 --> 00:45:01,470 >> JASON HIRSCHHORN: যদি তা চান 10 দ্বারা বিভক্ত 1 ভাসা - 923 00:45:01,470 --> 00:45:02,550 >> ছাত্র: হ্যাঁ, এবং তারপর সমান - 924 00:45:02,550 --> 00:45:04,240 ওয়েল, এটা সাধারণতঃ একটা তা সমান আছে - 925 00:45:04,240 --> 00:45:04,690 হ্যাঁ. 926 00:45:04,690 --> 00:45:06,760 আপনি এটি একটি float করতে চাই, ডান? 927 00:45:06,760 --> 00:45:12,790 >> JASON HIRSCHHORN: ঠিক আছে, তাই আমরা চলুন figuring আউট মধ্যে segue যে ব্যবহার 928 00:45:12,790 --> 00:45:15,390 এই প্রশ্নগুলির উত্তর কোডিং এর মাধ্যমে. 929 00:45:15,390 --> 00:45:18,180 আপনি সম্ভবত অনেক করতে হবে কারণ এইসব মিনিটে প্রশ্ন, এবং একটি ভালো উপায় 930 00:45:18,180 --> 00:45:19,100 তাদের সমাধান কোডিং মাধ্যমে হয়. 931 00:45:19,100 --> 00:45:21,320 সুতরাং আমরা এখন এই অধিকার কোড চলুন এবং তারপর আমরা ফিরে যেতে হবে এবং করছি 932 00:45:21,320 --> 00:45:24,020 আপনি ছিল প্রশ্ন কোড. 933 00:45:24,020 --> 00:45:24,950 >> তাই প্রথম লাইন - 934 00:45:24,950 --> 00:45:29,390 আমি এটা লিখিত আছে উচিত না - কি আমরা যেতে চাই প্রথম জিনিস যখন আমরা 935 00:45:29,390 --> 00:45:32,250 gedit মধ্যে একটি নতুন ফাইল খুলুন? 936 00:45:32,250 --> 00:45:34,190 >> ছাত্র: অন্তর্ভুক্ত করুন. 937 00:45:34,190 --> 00:45:35,920 >> JASON HIRSCHHORN: কি হল? 938 00:45:35,920 --> 00:45:37,952 >> ছাত্র: CS50 লাইব্রেরি. 939 00:45:37,952 --> 00:45:39,920 >> JASON HIRSCHHORN: ঠিক আছে. 940 00:45:39,920 --> 00:45:42,590 আমরা আর কি অন্তর্ভুক্ত করা উচিত? 941 00:45:42,590 --> 00:45:46,820 আমরা ঠিক কি চেক চলুন আপনি একটি float কিছু নিক্ষেপ করে. 942 00:45:46,820 --> 00:45:48,605 কিন্তু কি আমরা আমরা যদি অন্তর্ভুক্ত করার প্রয়োজন নেই একটি সি প্রোগ্রাম লিখতে যাচ্ছি? 943 00:45:48,605 --> 00:45:49,300 >> ছাত্র: স্ট্যান্ডার্ড ইনপুট / মন্ত্রণালয় 944 00:45:49,300 --> 00:45:50,625 >> JASON HIRSCHHORN: stdio.h. 945 00:45:50,625 --> 00:45:54,880 আমরা আসলে এই জন্য, দরকার নেই প্রোগ্রাম, cs50.h, এটা যদিও 946 00:45:54,880 --> 00:45:55,920 এটি অন্তর্ভুক্ত সবসময় সহায়ক. 947 00:45:55,920 --> 00:45:58,260 কিন্তু আমরা সবসময় stdio.h প্রয়োজন. 948 00:45:58,260 --> 00:45:59,660 >> ছাত্র: সি কোডিং করার সময়? 949 00:45:59,660 --> 00:46:15,770 >> JASON HIRSCHHORN: সি কোডিং যখন 950 00:46:15,770 --> 00:46:17,090 >> তাই আমি এই. গ ফাইল হিসাবে এটি সংরক্ষণ করুন. 951 00:46:17,090 --> 00:46:18,590 আমি কিছু চমৎকার সিনট্যাক্স হাইলাইটিং পেতে. 952 00:46:18,590 --> 00:46:22,890 আমি মূল ভেতরের শূন্যতা লিখেছে. 953 00:46:22,890 --> 00:46:24,792 অকার্যকর অর্থ কি? 954 00:46:24,792 --> 00:46:26,740 >> ছাত্র: কোন গ্রহণ না কমান্ড লাইন আর্গুমেন্ট. 955 00:46:26,740 --> 00:46:28,900 >> JASON HIRSCHHORN: এই অকার্যকর মানে, মামলা, প্রধান কোনো লাগবে না 956 00:46:28,900 --> 00:46:29,700 কমান্ড লাইন আর্গুমেন্ট. 957 00:46:29,700 --> 00:46:32,720 অন্যান্য ক্ষেত্রে, এটি ফাংশন মানে কমান্ড লাইন আর্গুমেন্ট গ্রহণ করা হয় না. 958 00:46:32,720 --> 00:46:36,560 অথবা ফাংশন, আমি যদি অকার্যকর লিখতে প্রধান (অকার্যকর), যে প্রধান এর বলতে হবে 959 00:46:36,560 --> 00:46:38,460 কিছু ফিরে না. 960 00:46:38,460 --> 00:46:39,960 তাই অকার্যকর শুধু কিছুই মানে. 961 00:46:39,960 --> 00:46:42,510 আমি ছিল আমি কি লিখতে হবে কমান্ড লাইন আর্গুমেন্ট নিতে? 962 00:46:42,510 --> 00:46:45,250 963 00:46:45,250 --> 00:46:47,150 >> ছাত্র: int-চাপ সি স্ট্রিং চাপ ভি 964 00:46:47,150 --> 00:46:49,055 >> JASON HIRSCHHORN: INT argc স্ট্রিং argv. 965 00:46:49,055 --> 00:46:54,050 966 00:46:54,050 --> 00:46:55,572 যে অধিকার আছে? 967 00:46:55,572 --> 00:46:58,720 >> ছাত্র: এটা গৃহস্থালি তারকা argv বন্ধনী এর. 968 00:46:58,720 --> 00:47:01,730 >> JASON HIRSCHHORN: তাহলে আপনি লিখতে পারেন স্ট্রিং argv বন্ধনী বা গৃহস্থালি তারকা argv 969 00:47:01,730 --> 00:47:03,710 বন্ধনী, কিন্তু আপনি বন্ধনী প্রয়োজন. 970 00:47:03,710 --> 00:47:06,290 Argv একটি অ্যারের কারণ স্ট্রিং, মনে রাখবেন. 971 00:47:06,290 --> 00:47:07,360 এটা শুধু একটা স্ট্রিং না. 972 00:47:07,360 --> 00:47:10,350 তাই স্ট্রিং argv এখানে, এর হয় এক স্ট্রিং argv বলা. 973 00:47:10,350 --> 00:47:13,630 স্ট্রিং argv বন্ধনী, এখানে হয় স্ট্রিং একটি অ্যারে. 974 00:47:13,630 --> 00:47:17,865 সুতরাং int-argc স্ট্রিং argv বন্ধনী কিছু হবে আমি 975 00:47:17,865 --> 00:47:18,810 সম্ভবত লিখতে হবে. 976 00:47:18,810 --> 00:47:23,050 >> তাই আপনি যদি একটি পূর্ণসংখ্যা মধ্যে সংরক্ষণ করতে চান? 977 00:47:23,050 --> 00:47:24,285 >> ছাত্র: হ্যাঁ, পূর্ণসংখ্যা. 978 00:47:24,285 --> 00:47:25,840 অথবা একটি float মধ্যে. 979 00:47:25,840 --> 00:47:26,710 >> JASON HIRSCHHORN: একটি float ইন? 980 00:47:26,710 --> 00:47:30,790 ভালো লেগেছে, ভাসা X 10 দ্বারা বিভক্ত 1 সমান. 981 00:47:30,790 --> 00:47:32,040 >> JASON HIRSCHHORN: ঠিক আছে. 982 00:47:32,040 --> 00:47:40,160 983 00:47:40,160 --> 00:47:42,240 আমি কিভাবে printf মধ্যে একটি float প্রিন্ট আউট হয়? 984 00:47:42,240 --> 00:47:45,100 985 00:47:45,100 --> 00:47:46,714 কি? 986 00:47:46,714 --> 00:47:47,560 >> ছাত্র:% চ. 987 00:47:47,560 --> 00:47:48,300 >> JASON HIRSCHHORN:% চ. 988 00:47:48,300 --> 00:47:50,810 একটি পূর্ণসংখ্যা কি? 989 00:47:50,810 --> 00:47:52,110 ডি অথবা আমি. 990 00:47:52,110 --> 00:47:53,000 একটি পংক্তি কি? 991 00:47:53,000 --> 00:47:54,240 >> ছাত্র: গুলি. 992 00:47:54,240 --> 00:47:56,140 >> JASON HIRSCHHORN: গুলি. 993 00:47:56,140 --> 00:47:57,550 কিভাবে আমি একটি নতুন লাইন পেতে পারি? 994 00:47:57,550 --> 00:47:58,800 >> ছাত্র: backslash হবে. 995 00:47:58,800 --> 00:48:04,610 996 00:48:04,610 --> 00:48:07,100 >> JASON HIRSCHHORN: আমি কি ফিরে না প্রধান রান সঠিকভাবে তাহলে কি হবে? 997 00:48:07,100 --> 00:48:08,360 >> ছাত্র: 0. 998 00:48:08,360 --> 00:48:09,430 আমি যদিও, যে লাইন লিখতে হবে? 999 00:48:09,430 --> 00:48:10,170 >> ছাত্র: নং 1000 00:48:10,170 --> 00:48:11,513 ঠিক আছে, আমরা তারপর, এটা লিখতে হবে না. 1001 00:48:11,513 --> 00:48:16,450 1002 00:48:16,450 --> 00:48:17,190 সবাই যে পড়তে পারেন? 1003 00:48:17,190 --> 00:48:18,485 এটা একটু ছোট দেখাচ্ছে. 1004 00:48:18,485 --> 00:48:20,160 সবাই দেখতে, বা উচিত পারি আমি এটা বড় করতে? 1005 00:48:20,160 --> 00:48:23,480 1006 00:48:23,480 --> 00:48:25,100 আমি ক্যামেরা জন্য, আমরা করতে হবে মনে করি যদিও, এটা একটু বড়. 1007 00:48:25,100 --> 00:48:35,750 1008 00:48:35,750 --> 00:48:38,410 >> JASON HIRSCHHORN: আমি এই চালু করতে চান, . একটি এক্সিকিউটেবল মধ্যে ফাইল সি, কি 1009 00:48:38,410 --> 00:48:39,260 আমি লিখতে পারি? 1010 00:48:39,260 --> 00:48:41,610 >> ছাত্র: পরীক্ষা করুন. 1011 00:48:41,610 --> 00:48:42,080 >> JASON HIRSCHHORN: দুঃখিত? 1012 00:48:42,080 --> 00:48:42,790 >> ছাত্র: পরীক্ষা করুন. 1013 00:48:42,790 --> 00:48:44,040 >> JASON HIRSCHHORN: পরীক্ষা করুন. 1014 00:48:44,040 --> 00:48:46,700 1015 00:48:46,700 --> 00:48:48,410 আমরা যে বিষয়ে কথা বলছি হয়েছে তার আগে এই লাইন. 1016 00:48:48,410 --> 00:48:49,140 ঝনঝন. 1017 00:48:49,140 --> 00:48:51,270 ঝনঝন কি? 1018 00:48:51,270 --> 00:48:52,200 কম্পাইলার নাম. 1019 00:48:52,200 --> 00:48:53,920 এই লাইন কি? 1020 00:48:53,920 --> 00:48:55,580 >> ছাত্র: GDB ব্যবহারের জন্য এটি নির্ধারণ করে. 1021 00:48:55,580 --> 00:48:59,230 >> JASON HIRSCHHORN: সেট গুলি এটা GDB ব্যবহারের জন্য. 1022 00:48:59,230 --> 00:49:02,338 এই লাইন, যে কি? 1023 00:49:02,338 --> 00:49:03,290 >> ছাত্র: উত্স কোড. 1024 00:49:03,290 --> 00:49:06,010 >> JASON HIRSCHHORN: যে সোর্স ফাইল,. গ ফাইল. 1025 00:49:06,010 --> 00:49:08,150 এই দুই লাইন কি করব? 1026 00:49:08,150 --> 00:49:10,245 অথবা এই দুটি না রেখা. 1027 00:49:10,245 --> 00:49:12,300 >> ছাত্র: এটা নাম তা পরীক্ষা. 1028 00:49:12,300 --> 00:49:15,410 >> JASON HIRSCHHORN: তাই ড্যাশ ণ বলেছেন, ভিন্নভাবে এটি কিছু নাম দিন. 1029 00:49:15,410 --> 00:49:16,790 এবং এখানে আপনি পরীক্ষা এটা আহ্বান করছি. 1030 00:49:16,790 --> 00:49:18,900 আমি যে এর মধ্যে আছে কি না যদি, কি এটা এই নাম হবে? 1031 00:49:18,900 --> 00:49:20,260 >> ছাত্র: a.out. 1032 00:49:20,260 --> 00:49:22,340 >> JASON HIRSCHHORN: a.out. 1033 00:49:22,340 --> 00:49:25,366 এই কী কাজ করে? 1034 00:49:25,366 --> 00:49:27,670 >> ছাত্র: গণিত লাইব্রেরি লিংক. 1035 00:49:27,670 --> 00:49:29,550 >> JASON HIRSCHHORN: এটা লিঙ্ক গণিত লাইব্রেরি. 1036 00:49:29,550 --> 00:49:32,880 আমরা গণিত লাইব্রেরি অন্তর্ভুক্ত, কিন্তু হয়নি যাতে সাধারণ যেহেতু, তারা করেছেন 1037 00:49:32,880 --> 00:49:35,780 লিখিত মেক সবসময় অন্তর্ভুক্ত গণিত লাইব্রেরি. 1038 00:49:35,780 --> 00:49:39,050 এবং অনুরূপভাবে, এই অন্তর্ভুক্ত CS50 লাইব্রেরি. 1039 00:49:39,050 --> 00:49:43,010 >> আমরা তার তালিকা দেখাবে যদি ঠিক আছে, তাই আমরা এখন আছে পরীক্ষা নামক একটি এক্সিকিউটেবল. 1040 00:49:43,010 --> 00:49:45,150 এটি নির্বাহ করার জন্য, আমি পরীক্ষায় লিখতে. 1041 00:49:45,150 --> 00:49:48,330 আমি আমার ফ্লোটিং পয়েন্ট দেখতে যেমন প্রত্যাশিত, 0 সমান. 1042 00:49:48,330 --> 00:49:50,890 1043 00:49:50,890 --> 00:49:51,590 যে কি - 1044 00:49:51,590 --> 00:49:52,060 তাই - 1045 00:49:52,060 --> 00:49:55,210 >> ছাত্র: তারপর আপনি করা হলে, এখন ভাসা যেমন আপনি ভাসা হিসাবে এটি নিক্ষেপ - 1046 00:49:55,210 --> 00:49:56,870 >> JASON HIRSCHHORN: Cast একটি ভাসা 1? 1047 00:49:56,870 --> 00:49:59,180 >> ছাত্র: না, পুরো ব্যাপারটাই নিক্ষেপ - 1048 00:49:59,180 --> 00:49:59,500 হাঁ. 1049 00:49:59,500 --> 00:50:02,460 আপনি শুধু যে কি করেন, would যে এটি 0.1 করতে? 1050 00:50:02,460 --> 00:50:07,170 >> JASON HIRSCHHORN: ঠিক আছে, তাই সত্যিই দ্রুত, 1 10 দ্বারা বিভক্ত, যাদের হয় 1051 00:50:07,170 --> 00:50:08,690 ইন্টিজার বিভক্ত করা হচ্ছে. 1052 00:50:08,690 --> 00:50:13,580 আপনি ইন্টিজার বিভক্ত সুতরাং যখন তারা করছি 0, এবং আপনি সংরক্ষণ করছেন যে 0 সালে 1053 00:50:13,580 --> 00:50:17,170 স্ল্যাশ কারণ, ভাসা শুধু পূর্ণসংখ্যা বিভাগ. 1054 00:50:17,170 --> 00:50:19,180 তাই এখন আমরা কিছু বাঁক করছি একটি float মধ্যে. 1055 00:50:19,180 --> 00:50:21,650 >> এর কি দেখতে দিন. 1056 00:50:21,650 --> 00:50:22,900 আমরা পরীক্ষা করতে পারবেন. 1057 00:50:22,900 --> 00:50:25,870 1058 00:50:25,870 --> 00:50:31,090 তাই এখন আমরা যে স্ল্যাশ ছিল না দেখুন পূর্ণসংখ্যা বিভাগ, এটি ভাসমান ছিল 1059 00:50:31,090 --> 00:50:32,640 বিন্দু বিভাগ. 1060 00:50:32,640 --> 00:50:35,700 কারণ তার আর্গুমেন্ট এক একটি float থেকে নিক্ষেপ করা হয়েছে. 1061 00:50:35,700 --> 00:50:38,380 তাই এখন এটা এই আচরণ, বলার অপেক্ষা রাখে না ছিল বিভাজন আমরা সঙ্গে লেনদেন করছেন মত 1062 00:50:38,380 --> 00:50:40,140 ফ্লোটিং পয়েন্ট, না পূর্ণসংখ্যার সঙ্গে. 1063 00:50:40,140 --> 00:50:42,760 এবং তাই আমরা আমরা আশা উত্তর পাবেন. 1064 00:50:42,760 --> 00:50:44,620 >> এর কি চলুন দেখা যাক - 1065 00:50:44,620 --> 00:50:47,103 ওহো. 1066 00:50:47,103 --> 00:50:51,646 আমি আরো দশমিক প্রিন্ট করতে চেয়েছিলেন দাগ, আমি যে কিভাবে কি করতে পারে? 1067 00:50:51,646 --> 00:50:55,550 >> ছাত্র: পয়েন্ট ডট চ, অথবা অনেক হিসাবে আপনি চান দশমিক স্থান. 1068 00:50:55,550 --> 00:51:02,280 1069 00:51:02,280 --> 00:51:04,440 >> JASON HIRSCHHORN: তাই আমি প্রিন্ট 10 দশমিক দাগ. 1070 00:51:04,440 --> 00:51:06,610 এবং আমরা এখন আমরা পেয়ে থাকেন দেখুন কিছু অদ্ভুত জিনিস. 1071 00:51:06,610 --> 00:51:09,650 এবং যে ফিরে আপনার প্রশ্নের যায় আমার পয়েন্ট অনির্দিষ্টতা ভাসমান. 1072 00:51:09,650 --> 00:51:10,950 এখানে সংরক্ষিত অদ্ভুত জিনিস আছে. 1073 00:51:10,950 --> 00:51:13,650 1074 00:51:13,650 --> 00:51:15,275 >> ঠিক আছে, যে আপনার প্রশ্নের উত্তর আছে? 1075 00:51:15,275 --> 00:51:18,550 1076 00:51:18,550 --> 00:51:20,200 আপনি আর কি চান নি দ্রুত কোড করার জন্য? 1077 00:51:20,200 --> 00:51:25,470 >> ছাত্র: আমি ঠিক কিনা বা দেখতে চেয়েছিলেন না, আপনি কিছু পয়েন্টার আপ মুক্ত হলে, 1078 00:51:25,470 --> 00:51:30,410 যে পয়েন্টার এখনও সঞ্চিত ছিল কিনা এটা ছিল কি ঠিকানা 1079 00:51:30,410 --> 00:51:32,170 পূর্বে প্রতি নির্দেশ. 1080 00:51:32,170 --> 00:51:34,100 >> JASON HIRSCHHORN: ঠিক আছে, তাই এর যে না দেওয়া. 1081 00:51:34,100 --> 00:51:38,030 চর তারকা ptr, এই একটি পরিবর্তনশীল তৈরি করে টাইপ গৃহস্থালির তারকা ptr বলা. 1082 00:51:38,030 --> 00:51:39,280 কিভাবে আমি malloc লিখুন? 1083 00:51:39,280 --> 00:51:40,550 Alden? 1084 00:51:40,550 --> 00:51:41,800 >> ALDEN: শুধু malloc. 1085 00:51:41,800 --> 00:51:44,820 1086 00:51:44,820 --> 00:51:51,040 কিন্তু তারপর এটা মাপ হতে হয়েছে, এবং এই ক্ষেত্রে, আমি আপনাকে চাই অনুমান 1087 00:51:51,040 --> 00:51:52,465 গৃহস্থালি প্রতি নির্দেশ করা. 1088 00:51:52,465 --> 00:51:54,450 সুতরাং গৃহস্থালির কাজ হতে চাই. 1089 00:51:54,450 --> 00:51:57,520 >> JASON HIRSCHHORN: ঠিক আছে, তাই আরও জেনেরিক, ইনসাইড - 1090 00:51:57,520 --> 00:51:58,770 এর সম্পাদনা যাক. 1091 00:51:58,770 --> 00:52:05,100 1092 00:52:05,100 --> 00:52:09,260 Malloc ইনসাইড, আপনি নম্বর চাই এর গাদা বাইট. 1093 00:52:09,260 --> 00:52:12,320 সাধারণত, আমরা কি আমরা যে পাচ্ছি করছেন আমরা malloc চলুন হয় 1094 00:52:12,320 --> 00:52:14,940 উদাহরণস্বরূপ স্ট্রিং,, অথবা পূর্ণসংখ্যার অ্যারে. 1095 00:52:14,940 --> 00:52:21,600 তাই আমরা 10 ইন্টিজার, বা 10 চাই অক্ষর, 10 আমাদের 10 দিতে হবে. 1096 00:52:21,600 --> 00:52:24,370 এবং তারপর অক্ষর মাপ দিতে হবে আমাদের যে অক্ষর আকার, যা 1097 00:52:24,370 --> 00:52:25,120 এই ক্ষেত্রে 1 বাইট. 1098 00:52:25,120 --> 00:52:26,250 আমরা 10 বাইট পেতে. 1099 00:52:26,250 --> 00:52:28,540 আমরা int মাপ লিখতে হয়, যদি যে আমাদের 40 বাইট দেবে. 1100 00:52:28,540 --> 00:52:31,520 >> তাই আরো জেনেরিক, malloc ভেতরে আপনি চান বাইট সংখ্যা. 1101 00:52:31,520 --> 00:52:34,620 এই ক্ষেত্রে, আমরা 1 বাইট পেয়ে থাকেন. 1102 00:52:34,620 --> 00:52:36,900 একটি অদ্ভুত ব্যবহারের মত যা মনে malloc এর, কিন্তু এর জন্য আমাদের 1103 00:52:36,900 --> 00:52:38,470 উদ্দেশ্য জ্ঞান করে তোলে. 1104 00:52:38,470 --> 00:52:40,420 সুতরাং যে আছে. 1105 00:52:40,420 --> 00:52:43,420 >> আমরা বিনামূল্যে কল চলুন. 1106 00:52:43,420 --> 00:52:47,040 আমরা এটা পরিত্রাণ পেতে এবং আমরা আবার ptr ব্যবহার. 1107 00:52:47,040 --> 00:52:48,750 এবং যদি আপনি না পরীক্ষা কি চাইলেন? 1108 00:52:48,750 --> 00:52:50,550 >> ছাত্র: আমি ঠিক কি না চেক করতে চেয়েছিলেন বা কিছু ছিল না 1109 00:52:50,550 --> 00:52:51,900 এটি ভেতরে. 1110 00:52:51,900 --> 00:52:53,050 >> JASON HIRSCHHORN: তাই কিনা এটা কিছু তীক্ষ্ন? 1111 00:52:53,050 --> 00:52:57,740 >> ছাত্র: হাঁ, ঠিক, কিনা এটি এখনও একটি মেমরি ঠিকানা ছিল. 1112 00:52:57,740 --> 00:53:02,220 >> JASON HIRSCHHORN: তাই আপনি চান ptr মান চেক করতে? 1113 00:53:02,220 --> 00:53:03,470 >> ছাত্র: হ্যাঁ, ঠিক. 1114 00:53:03,470 --> 00:53:07,940 1115 00:53:07,940 --> 00:53:10,160 >> JASON HIRSCHHORN: আমি এখানে কি লিখতে পারি তোমার মান পরীক্ষা করতে হলে 1116 00:53:10,160 --> 00:53:11,880 পয়েন্ট - কি, জর্দান মূল্য, বলেন? 1117 00:53:11,880 --> 00:53:13,720 অথবা কি ptr ভেতরে সংরক্ষিত হয়? 1118 00:53:13,720 --> 00:53:14,620 >> ছাত্র: একটি মেমরি ঠিকানা. 1119 00:53:14,620 --> 00:53:16,330 >> JASON HIRSCHHORN: একটি মেমরি ঠিকানা. 1120 00:53:16,330 --> 00:53:20,520 আমি এই লেখার সুতরাং, যদি এটা করব আমার ptr মান দিতে. 1121 00:53:20,520 --> 00:53:22,800 এবং কিভাবে আমি প্রিন্ট আউট না একটি মেমরি ঠিকানা? 1122 00:53:22,800 --> 00:53:26,470 ফরম্যাট স্ট্রিং কি একটি মেমরি ঠিকানা? 1123 00:53:26,470 --> 00:53:27,430 >> ছাত্র:% পি. 1124 00:53:27,430 --> 00:53:28,050 >> JASON HIRSCHHORN:% পি. 1125 00:53:28,050 --> 00:53:29,500 % S-একটি পংক্তি. 1126 00:53:29,500 --> 00:53:30,750 পয়েন্টার জন্য% পি. 1127 00:53:30,750 --> 00:53:40,820 1128 00:53:40,820 --> 00:53:43,540 যে অধিকার আছে? 1129 00:53:43,540 --> 00:53:44,790 একেবারে ঠিক না. 1130 00:53:44,790 --> 00:53:49,450 1131 00:53:49,450 --> 00:53:51,040 সুতরাং ptr সমান - 1132 00:53:51,040 --> 00:53:53,350 এটি এখনও এটি মধ্যে কিছু আছে. 1133 00:53:53,350 --> 00:53:56,110 1134 00:53:56,110 --> 00:53:57,645 এটা সম্ভবত আরো একটি হল মজার প্রশ্ন. 1135 00:53:57,645 --> 00:53:59,198 যে লাইন কী কাজ করে? 1136 00:53:59,198 --> 00:54:00,830 >> ছাত্র: Seg ফল্ট. 1137 00:54:00,830 --> 00:54:01,310 >> JASON HIRSCHHORN: কি? 1138 00:54:01,310 --> 00:54:02,678 >> ছাত্র: আমি এটা ফল্ট seg মনে করি. 1139 00:54:02,678 --> 00:54:03,574 >> JASON HIRSCHHORN: Hm? 1140 00:54:03,574 --> 00:54:04,920 >> ছাত্র: আমি এটা ফল্ট seg করব. 1141 00:54:04,920 --> 00:54:08,265 >> JASON HIRSCHHORN: তাই এই লাইন কোড, তারকা ptr হাজার, কি 1142 00:54:08,265 --> 00:54:10,152 তারা মানে? 1143 00:54:10,152 --> 00:54:11,240 >> ছাত্র: এর বিষয়বস্তু. 1144 00:54:11,240 --> 00:54:11,560 >> JASON HIRSCHHORN: হ্যাঁ. 1145 00:54:11,560 --> 00:54:13,910 বিষয়বস্তু পেতে যান. 1146 00:54:13,910 --> 00:54:16,830 তাই এই মেমরি যেতে হবে সেখানে ঠিকানা এবং আমাকে যে দিতে. 1147 00:54:16,830 --> 00:54:21,030 আমি এখানে ডান% গ ব্যবহৃত কারণ আছে অক্ষর আছে সংরক্ষণ করা হয়. 1148 00:54:21,030 --> 00:54:23,390 সুতরাং আমরা যে ঠিকানা আমরা যেতে চলুন শুধু দেখেছি - অথবা সম্ভবত এটি একটি থাকব 1149 00:54:23,390 --> 00:54:25,190 সামান্য কিছুটা আলাদা এই আমরা প্রোগ্রাম চালানো সময়. 1150 00:54:25,190 --> 00:54:28,010 কিন্তু আমরা যে ঠিকানায় যাবেন আমরা এখনও বিদ্যমান জানি যা 1151 00:54:28,010 --> 00:54:29,260 এবং আছে তা দেখতে. 1152 00:54:29,260 --> 00:54:35,640 1153 00:54:35,640 --> 00:54:37,110 >> সুতরাং এটি ফল্ট seg না. 1154 00:54:37,110 --> 00:54:38,970 এটা ঠিক আমাদের কিছু দেয় নি. 1155 00:54:38,970 --> 00:54:43,350 এটা আসলে আমাদের দেওয়া হতে পারে কিছু, আমরা তা দেখতে পারছি না. 1156 00:54:43,350 --> 00:54:45,110 এবং যে ফিরে এই ধারণা করা যায় - 1157 00:54:45,110 --> 00:54:47,270 এবং আমরা মধ্যে খুব বেশী পেতে যাচ্ছেন না এই, যে বহুদূরে কারণ 1158 00:54:47,270 --> 00:54:48,460 এই কোর্সের সুযোগ. 1159 00:54:48,460 --> 00:54:51,260 আমরা কিন্তু যদি আমরা অধিকার এখানে স্বপ্ন দ্বারা অ্যারের সীমার অতিক্রম গিয়েছিলাম 1160 00:54:51,260 --> 00:54:54,890 1, আমরা কষ্ট পেতে পারে না. 1161 00:54:54,890 --> 00:54:58,550 >> কখনও কখনও, আপনি শুধু 1 দ্বারা বন্ধ যান যখন, আপনি ভুল কিছু করছেন, এবং করছি 1162 00:54:58,550 --> 00:54:59,220 কষ্ট পেতে পারে. 1163 00:54:59,220 --> 00:55:00,820 কিন্তু আপনি সবসময় ঝামেলায় পাবেন না. 1164 00:55:00,820 --> 00:55:05,170 এটা নির্ভর করে কত খারাপ জিনিস আপনি , আপনি কষ্ট পেতে যাচ্ছেন না. 1165 00:55:05,170 --> 00:55:07,790 পঙ্কিল হবে, বলতে হয় না যা আপনার কোড সঙ্গে. 1166 00:55:07,790 --> 00:55:12,080 কিন্তু প্রোগ্রাম না করবে না, বলতে হয় আপনি কোথাও যেতে এমনকি যদি সবসময় প্রস্থান 1167 00:55:12,080 --> 00:55:14,130 আপনি যেতে অনুমিত করছি না. 1168 00:55:14,130 --> 00:55:18,170 >> যে একটি ভাল উদাহরণ, অনেক তাদের সমস্যা ব্যক্তিদের, 3 সেট যা 1169 00:55:18,170 --> 00:55:22,350 15, চেক পাইনি ছিল বোর্ডের কোট. 1170 00:55:22,350 --> 00:55:25,860 সুতরাং আপনি লাগছিল, বাঁদিকে তাকিয়ে অধিকার, লাগছিল, উপরে তাকিয়ে 1171 00:55:25,860 --> 00:55:27,000 নীচে. 1172 00:55:27,000 --> 00:55:31,540 কিন্তু আপনি দেখুন না শীর্ষ আসলে বোর্ডে হতে যাচ্ছে. 1173 00:55:31,540 --> 00:55:35,220 এবং যে যারা মানুষ অনেক এবং যে পরিণত, তাদের প্রোগ্রাম কাজ 1174 00:55:35,220 --> 00:55:38,960 পুরোপুরি, যে যেখানে বোর্ড কারণ আপনি এক গিয়েছিলাম যদি কণ্ঠস্থ 1175 00:55:38,960 --> 00:55:42,300 উপরে বা চেক করা যে মেমরি ঠিকানা, কিছু ছিল না 1176 00:55:42,300 --> 00:55:44,870 যে সম্পর্কে বিশেষ ভয়ঙ্কর, তাই আপনার প্রোগ্রাম ছিল না 1177 00:55:44,870 --> 00:55:45,970 আপনি চিত্কার যাচ্ছে. 1178 00:55:45,970 --> 00:55:48,870 >> কিন্তু আমরা এখনও পয়েন্ট বন্ধ করা হবে যদি আপনি, যে চেক করা হয়নি আপনি কারণ 1179 00:55:48,870 --> 00:55:50,850 আপনি না কিছু কাজ হয়েছে করতে অনুমিত, এবং, আপনি হতে পারে 1180 00:55:50,850 --> 00:55:51,860 ঝামেলায় অর্জিত. 1181 00:55:51,860 --> 00:55:54,040 অডস আপনি সম্ভবত না, যদিও, হয়. 1182 00:55:54,040 --> 00:55:57,790 তাই এই, হ্যাঁ, যে দেখানোর জন্য আমরা এখনও এটা যেতে পারেন. 1183 00:55:57,790 --> 00:55:59,010 এবং আমরা পেয়ে না থাকেন এই ক্ষেত্রে ঝামেলা. 1184 00:55:59,010 --> 00:56:04,000 আমরা পড়তে করতে চেষ্টা যদি পরবর্তী 100 টি অক্ষর, আমরা চাই 1185 00:56:04,000 --> 00:56:06,000 সম্ভবত কষ্ট পেতে. 1186 00:56:06,000 --> 00:56:09,400 এবং আপনি পরের 100 পড়ার কোড পারে অক্ষর আপনি কিছু করে চান 1187 00:56:09,400 --> 00:56:10,110 বাছাই করা লুপ জন্য. 1188 00:56:10,110 --> 00:56:10,850 হ্যাঁ. 1189 00:56:10,850 --> 00:56:16,250 >> ছাত্র: আমরা নির্ধারিত হয় যেহেতু যে স্থান একটি প্রকৃত মূল্য, আমরা না would 1190 00:56:16,250 --> 00:56:17,050 আসলে কিছু দেখতে সক্ষম. 1191 00:56:17,050 --> 00:56:21,740 আমরা নির্ধারণের সঙ্গে এটি চেষ্টা করা উচিত যে সি বা কিছু মত সমান? 1192 00:56:21,740 --> 00:56:22,640 >> JASON HIRSCHHORN: গ্রেট প্রশ্ন. 1193 00:56:22,640 --> 00:56:25,340 আমি কিভাবে যে মান সেট করে - 1194 00:56:25,340 --> 00:56:28,980 কি কোড লাইন আমি লাইনে লিখুন সাতটি আপনি বলেন কি করবেন? 1195 00:56:28,980 --> 00:56:34,040 >> ছাত্র: স্টার ptr একক সমান উদ্ধৃতি একক উদ্ধৃতি শেষ c. 1196 00:56:34,040 --> 00:56:36,970 >> JASON HIRSCHHORN: সুতরাং যে নির্বাণ এর একটি অক্ষর, সি, যে অবস্থানে, 1197 00:56:36,970 --> 00:56:40,200 কারণ আবার, যে তারকা সেখানে যেতে হবে. 1198 00:56:40,200 --> 00:56:43,320 এবং বাম দিকে এর ব্যবহার যখন একটি নিয়োগ অপারেটর, যে সমান 1199 00:56:43,320 --> 00:56:47,270 সাইন, আমরা পেতে যাচ্ছেন না যে মান যে মান সেট যতটা. 1200 00:56:47,270 --> 00:56:48,520 এখন আসুন দেখুন সেখানে কি ঘটছে যাক. 1201 00:56:48,520 --> 00:56:54,700 1202 00:56:54,700 --> 00:56:56,770 >> আমরা সেখানে কিছু করা এবং এটি ছিল. 1203 00:56:56,770 --> 00:56:58,000 আমরা মুক্ত বলা. 1204 00:56:58,000 --> 00:57:00,100 কিছু উপাদান সম্ভবত ঘটেছে গাদা. 1205 00:57:00,100 --> 00:57:01,890 সুতরাং আর সেখানে না. 1206 00:57:01,890 --> 00:57:07,440 কিন্তু আবার, আমরা পেয়ে না থাকেন সেখানে যাওয়ার জন্য ঝামেলায়. 1207 00:57:07,440 --> 00:57:10,260 >> আমি চিত্রিত কোডে এই আউট করছি যে এইসব অনেক 1208 00:57:10,260 --> 00:57:12,410 আপনি যে প্রশ্ন, তারা আছেন সত্যিই আকর্ষণীয় 1209 00:57:12,410 --> 00:57:13,650 অনেক সময় উত্তর. 1210 00:57:13,650 --> 00:57:15,260 এবং তারা সত্যিই ভাল প্রশ্ন করছি. 1211 00:57:15,260 --> 00:57:19,010 এবং আপনি তাদের চিন্তা করতে পারেন আপনার নিজের যদি, উদাহরণস্বরূপ, 1212 00:57:19,010 --> 00:57:19,990 আমরা বিভাগে পারব না. 1213 00:57:19,990 --> 00:57:20,940 হ্যাঁ. 1214 00:57:20,940 --> 00:57:24,430 >> ছাত্র: আপনি পাঠানোর করছি না কারণ যে কোন জায়গায় পয়েন্টার, আপনি প্রয়োজন 1215 00:57:24,430 --> 00:57:26,530 malloc ব্যবহার? 1216 00:57:26,530 --> 00:57:28,400 >> JASON HIRSCHHORN: তাই এই ফিরে যায় আপনার প্রারম্ভিক প্রশ্নের. 1217 00:57:28,400 --> 00:57:28,620 [? ?] 1218 00:57:28,620 --> 00:57:29,980 এটি শুধু একটি স্থানীয় ভেরিয়েবল কি? 1219 00:57:29,980 --> 00:57:32,280 এখানে malloc যে বাধ্যকারী না. 1220 00:57:32,280 --> 00:57:35,260 এখানে malloc ব্যবহার নয় এটা এ কারণে যে বাধ্যকারী 1221 00:57:35,260 --> 00:57:36,500 শুধু একটি স্থানীয় পরিবর্তনশীল. 1222 00:57:36,500 --> 00:57:40,970 >> ছাত্র: সুতরাং আপনি গৃহস্থালি যেত না তারকা ptr হ্যালো সমান? 1223 00:57:40,970 --> 00:57:41,400 >> JASON HIRSCHHORN: ওহ. 1224 00:57:41,400 --> 00:57:43,300 সুতরাং আমরা এখন ফিরে পেতে যাচ্ছেন আপনার প্রারম্ভিক প্রশ্নের. 1225 00:57:43,300 --> 00:57:46,885 আমি আপনাকে সন্তুষ্ট ছিল না মনে হয় আমার উত্তরটি দিয়ে. 1226 00:57:46,885 --> 00:57:48,220 ঠিক আছে? 1227 00:57:48,220 --> 00:57:49,226 যে পছন্দ? 1228 00:57:49,226 --> 00:57:49,682 >> ছাত্র: হ্যাঁ. 1229 00:57:49,682 --> 00:57:50,932 অপেক্ষা করুন. 1230 00:57:50,932 --> 00:57:54,090 1231 00:57:54,090 --> 00:57:57,850 >> JASON HIRSCHHORN: এবং যেখানে আপনি প্রিন্ট আউট করতে চান? 1232 00:57:57,850 --> 00:58:00,026 সুতরাং আমরা যে মত একটি পংক্তি প্রিন্ট আউট করব? 1233 00:58:00,026 --> 00:58:06,380 1234 00:58:06,380 --> 00:58:07,630 >> ছাত্র: আকর্ষনীয়. 1235 00:58:07,630 --> 00:58:09,900 1236 00:58:09,900 --> 00:58:14,285 >> JASON HIRSCHHORN: সুতরাং এই এই বললেন যুক্তি একটি অক্ষর টাইপ আছে. 1237 00:58:14,285 --> 00:58:17,200 1238 00:58:17,200 --> 00:58:18,620 তাই এই একটি অক্ষর হতে হবে. 1239 00:58:18,620 --> 00:58:25,170 1240 00:58:25,170 --> 00:58:26,280 >> ছাত্র: শুধু প্রথম এক সময় লাগে. 1241 00:58:26,280 --> 00:58:28,610 >> JASON HIRSCHHORN: তাই এই আমি আগে বলেন কি. 1242 00:58:28,610 --> 00:58:34,240 ভালো লেগেছে আমি এটি সংরক্ষণ না, বলেন পরিবর্তনশীল পয়েন্টার ভিতরে পংক্তি. 1243 00:58:34,240 --> 00:58:35,120 এটি সংরক্ষণ হচ্ছে - 1244 00:58:35,120 --> 00:58:36,350 >> ছাত্র: প্রথম মূল্য স্ট্রিং. 1245 00:58:36,350 --> 00:58:40,810 >> JASON HIRSCHHORN: ঠিকানা স্ট্রিং প্রথম মূল্য. 1246 00:58:40,810 --> 00:58:46,940 আমরা এই প্রিন্ট আউট ছিল, আমরা করছি পয়েন্টার ভিতরে মূল্য পাচ্ছেন. 1247 00:58:46,940 --> 00:58:51,005 এবং আমরা, এটা নিশ্চয় হয় দেখতে পাবেন একটি মেমরি ঠিকানা. 1248 00:58:51,005 --> 00:58:53,595 1249 00:58:53,595 --> 00:58:56,440 >> যে জানার জন্য? 1250 00:58:56,440 --> 00:58:56,940 দুঃখিত. 1251 00:58:56,940 --> 00:58:58,996 যে আপনার উত্তর আছে, অপেক্ষা করুন প্রশ্ন, যদিও? 1252 00:58:58,996 --> 00:58:59,790 >> ছাত্র: হ্যাঁ. 1253 00:58:59,790 --> 00:59:05,830 >> JASON HIRSCHHORN: কোড এই লাইন একটি স্ট্রিং এবং তারপর অন্য তৈরি 1254 00:59:05,830 --> 00:59:09,115 এর প্রতি নির্দেশ করে যে পরিবর্তনশীল পয়েন্টার স্ট্রিং থেকে, যে অ্যারে. 1255 00:59:09,115 --> 00:59:14,320 1256 00:59:14,320 --> 00:59:14,980 হ্যাঁ. 1257 00:59:14,980 --> 00:59:19,200 >> আমরা এক মেমরি গিয়েছিলাম যদি তাই হয়: শিক্ষার্থীদের আরও মোকাবেলার, আমরা জ পেতে হবে? 1258 00:59:19,200 --> 00:59:21,990 1259 00:59:21,990 --> 00:59:23,150 এটি একটি স্ট্রিং হিসেবে সংরক্ষণ করা হয়েছে! 1260 00:59:23,150 --> 00:59:24,400 >> JASON HIRSCHHORN: ভালো লেগেছে, আমরা কি - 1261 00:59:24,400 --> 00:59:28,540 1262 00:59:28,540 --> 00:59:30,790 তাই এই কাজ করতে মূল্যবান. 1263 00:59:30,790 --> 00:59:33,780 এই বিন্দু পাটীগণিত, যা আপনি না হয় আগে দেখা যায় এবং করা উচিত 1264 00:59:33,780 --> 00:59:35,550 সঙ্গে তুলনামূলকভাবে আরামদায়ক. 1265 00:59:35,550 --> 00:59:36,905 এই লেখার সদৃশ হয় - 1266 00:59:36,905 --> 00:59:41,980 1267 00:59:41,980 --> 00:59:46,350 আমরা কোড এই লাইন লিখতে হয়, যদি আমরা আগে অ্যারে নোটেশন দেখা করেছি. 1268 00:59:46,350 --> 00:59:55,900 এটি আমাদের দ্বিতীয় দিতে হবে এই অ্যারে, এইচ মান. 1269 00:59:55,900 --> 01:00:05,010 >> আমরা এই কি, এই এছাড়াও দিতে হবে আমাদের যে অ্যারের মধ্যে দ্বিতীয় মান. 1270 01:00:05,010 --> 01:00:08,320 এটি মেমরি না যাচ্ছে কারণ প্রথম জিনিস ঠিকানা, কিন্তু 1271 01:00:08,320 --> 01:00:10,530 এক ওভার জিনিস মেমরি ঠিকানা. 1272 01:00:10,530 --> 01:00:14,360 এবং তারপর তারা অপারেটর dereferences যে পয়েন্টার. 1273 01:00:14,360 --> 01:00:16,940 এবং আবার, দেখুন. 1274 01:00:16,940 --> 01:00:18,664 আমরা আবার জ পেতে. 1275 01:00:18,664 --> 01:00:20,980 >> ছাত্র: কি ঠিক আছে মানে dereference? 1276 01:00:20,980 --> 01:00:23,650 >> JASON HIRSCHHORN: Dereference যেতে জন্য অভিনব শব্দ. 1277 01:00:23,650 --> 01:00:26,390 যে যান এবং সেখানে কি পেতে একটি পয়েন্টার dereference হয়. 1278 01:00:26,390 --> 01:00:28,240 এটা যে জন্য শুধু একটি অভিনব শব্দ এর. 1279 01:00:28,240 --> 01:00:29,986 >> আমরা মুদ্রণ চেয়েছিলেন: শিক্ষার্থীদের পুরো স্ট্রিং, পারা আমরা 1280 01:00:29,986 --> 01:00:31,930 ampersand পয়েন্টার কি? 1281 01:00:31,930 --> 01:00:33,490 >> JASON HIRSCHHORN: ঠিক আছে, আমরা হয় এখানে বিরতি যাচ্ছে. 1282 01:00:33,490 --> 01:00:35,480 আমরা এখানে শেষ হয়ে যাচ্ছে. 1283 01:00:35,480 --> 01:00:41,760 Ampersand আপনি একটি ঠিকানা দেয় অবস্থান, তাই যখন আপনাদের মধ্যে ampersand না 1284 01:00:41,760 --> 01:00:44,080 একটি পরিবর্তনশীল, এটা আপনার ঠিকানা দেয় যে পরিবর্তনশীল সঞ্চিত যেখানে. 1285 01:00:44,080 --> 01:00:48,580 Ampersand পয়েন্টার আপনি দিতে হবে ptr মেমরি যেখানে ptr এর ঠিকানা. 1286 01:00:48,580 --> 01:00:50,140 >> আমরা যেতে যাচ্ছেন না এই উদাহরণ দিয়ে. 1287 01:00:50,140 --> 01:00:52,640 আপনি এই চিন্তা করতে পারেন আপনার নিজের জিনিস. 1288 01:00:52,640 --> 01:00:55,740 কিন্তু আবার, এই এমনকি একটি verging হতে পারে আপনার জন্য জানা প্রয়োজন পরেও বিট 1289 01:00:55,740 --> 01:00:58,000 এই মধ্য মেয়াদী সুযোগ - 1290 01:00:58,000 --> 01:00:59,070 এই ব্যঙ্গ, বরং. 1291 01:00:59,070 --> 01:01:00,270 দুঃখিত. 1292 01:01:00,270 --> 01:01:03,770 >> আমি কারণ আমরা এগিয়ে যেতে যাচ্ছে এক কোডিং সমস্যা যা করতে চাই 1293 01:01:03,770 --> 01:01:05,100 সময় হয় আগে. 1294 01:01:05,100 --> 01:01:09,340 এবং আমরা আমি মনে কোড যাচ্ছে এর মধ্যে সবচেয়ে আকর্ষক হয় 1295 01:01:09,340 --> 01:01:11,020 উদাহরণ, ATOI. 1296 01:01:11,020 --> 01:01:14,520 তাই এই একটি প্রশ্ন ছিল দুই বছর আগে একটি ব্যঙ্গ. 1297 01:01:14,520 --> 01:01:17,810 এবং আমি এখানে বোর্ডে এটি আছে. 1298 01:01:17,810 --> 01:01:20,680 >> মানুষ ব্যঙ্গ বলা হয়েছিল - 1299 01:01:20,680 --> 01:01:23,640 তারা একটু বেশি tesxt দেওয়া হয় প্রশ্ন, কিন্তু আমি কাটানো 1300 01:01:23,640 --> 01:01:26,640 এটি অপ্রয়োজনীয় ছিল টেক্সট কারণ এখন আমাদের উদ্দেশ্যে. 1301 01:01:26,640 --> 01:01:29,180 এটি শুধু কিছু পটভূমি ছিল কি ATOI নেভিগেশন. 1302 01:01:29,180 --> 01:01:31,425 কিন্তু আপনি সব জানেন এবং হয় খুব ATOI সাথে পরিচিত. 1303 01:01:31,425 --> 01:01:35,620 >> আমি আপনাকে এই কোড সুপারিশ কাগজের একটি পত্রকে. 1304 01:01:35,620 --> 01:01:39,310 আমি আপনি কৌশল ব্যবহার সুপারিশ আমরা উপর চলে গেছে করেছি 1305 01:01:39,310 --> 01:01:41,040 আমাদের বিভাগে অনেক. 1306 01:01:41,040 --> 01:01:44,130 প্রথমত, নিশ্চিত করুন যে আপনি বুঝতে না কি ATOI এর করছেন. 1307 01:01:44,130 --> 01:01:47,580 একটি ছবি আঁকুন বা কিছু চিন্তা আপনার মাথায় এটা মানসিক ছবিটি. 1308 01:01:47,580 --> 01:01:51,120 এর পরে, এই জন্য pseudocode লেখে. 1309 01:01:51,120 --> 01:01:53,120 ব্যঙ্গ, আপনি পেতে সব যদি pseudocode, অন্তত আপনি 1310 01:01:53,120 --> 01:01:54,550 কিছু দমন করা. 1311 01:01:54,550 --> 01:02:00,070 এবং তারপর সম্মুখের যে pseudocode ম্যাপ সি আপনি মধ্যে একটি চেক আছে আপনার 1312 01:02:00,070 --> 01:02:03,760 pseudocode, মত চেক করে যদি কিছু 1, একটি হলে সম্মুখের মানচিত্র হয় 1313 01:02:03,760 --> 01:02:05,750 তাই ঘোষণা শর্ত ও. 1314 01:02:05,750 --> 01:02:07,850 এবং পরিশেষে, সি প্রোগ্রাম কোড 1315 01:02:07,850 --> 01:02:15,000 >> তাই ফিরে ATOI যান এবং পাঁচ মিনিট সময় লাগবে একটি চাদর নেভিগেশন এই কোড থেকে 1316 01:02:15,000 --> 01:02:19,480 সম্পর্কে সম্ভবত যা কাগজ, আপনি একটি নিতে হবে সময় পরিমাণ 1317 01:02:19,480 --> 01:02:21,260 কোড ATOI যাও ব্যঙ্গ. 1318 01:02:21,260 --> 01:02:27,060 পাঁচ থেকে 15 মিনিট, পাঁচ থেকে পাঁচ, 12 10 মিনিট, পরিমাণ সম্পর্কে 1319 01:02:27,060 --> 01:02:30,150 আপনি এই খরচ চাই সময় প্রশ্নোত্তর প্রশ্ন. 1320 01:02:30,150 --> 01:02:31,670 সুতরাং, এখন পাঁচ মিনিট অনুগ্রহ করে নিতে. 1321 01:02:31,670 --> 01:02:35,957 এবং যদি আপনার কোন প্রশ্ন থাকে তাহলে, বাড়াতে আপনার হাত এবং আমি প্রায় আসবো. 1322 01:02:35,957 --> 01:06:39,570 1323 01:06:39,570 --> 01:06:41,066 >> [SIDE কথোপকথনে] 1324 01:06:41,066 --> 01:08:35,279 1325 01:08:35,279 --> 01:08:37,580 >> JASON HIRSCHHORN: ঠিক আছে, তাই যে পাঁচ মিনিট ছিল. 1326 01:08:37,580 --> 01:08:39,880 যে পরিমাণ প্রায় সম্ভবত ছিল সময় আপনি একটি ব্যঙ্গ যে খরচ চাই 1327 01:08:39,880 --> 01:08:42,120 যে সময় হয়তো কম শেষ. 1328 01:08:42,120 --> 01:08:44,010 আমরা কিছুক্ষনের মধ্যে সংক্ষিপ্তবৃত্তি করব. 1329 01:08:44,010 --> 01:08:45,740 আমাদের এই কোডিং এর শুরু. 1330 01:08:45,740 --> 01:08:49,479 এবং আমরা সব উপায় মাধ্যমে পেতে না, এই উত্তর এবং এই 1331 01:08:49,479 --> 01:08:54,189 প্রশ্নোত্তর প্রশ্ন আবার, পাওয়া যায়, পতন 2011 এই প্রশ্ন যখন হয় 1332 01:08:54,189 --> 01:08:54,913 ব্যঙ্গ হাজির. 1333 01:08:54,913 --> 01:08:57,830 >> এবং এটা আট পয়েন্ট মূল্য ছিল ব্যঙ্গ তারপর. 1334 01:08:57,830 --> 01:09:01,140 আট পয়েন্ট উচ্চ শেষ হয় পয়েন্ট কিছু পরিমাণ মূল্য. 1335 01:09:01,140 --> 01:09:04,790 বেশিরভাগ প্রশ্ন সীমার মধ্যে হয় এক থেকে ছয় পয়েন্ট. 1336 01:09:04,790 --> 01:09:08,500 তাই এই একটি আরো চ্যালেঞ্জিং নিশ্চিত জন্য প্রশ্ন. 1337 01:09:08,500 --> 01:09:09,750 আমার কেহ শুরু করতে পারেন? 1338 01:09:09,750 --> 01:09:13,260 1339 01:09:13,260 --> 01:09:15,380 >> সাধারণত, কি আমরা যাচ্ছি এই সঙ্গে কাজ করতে চান করতে 1340 01:09:15,380 --> 01:09:17,550 যুক্তি, ATOI কাজ? 1341 01:09:17,550 --> 01:09:19,569 আমরা কি করতে চান? 1342 01:09:19,569 --> 01:09:22,279 তাই আমরা লিখতে যাচ্ছেন কিছু pseudocode. 1343 01:09:22,279 --> 01:09:24,090 >> ছাত্র: অক্ষরের রূপান্তর করুন ইন্টিজার মধ্যে. 1344 01:09:24,090 --> 01:09:26,700 >> JASON HIRSCHHORN: অক্ষরের রূপান্তর করুন ইন্টিজার মধ্যে. 1345 01:09:26,700 --> 01:09:27,479 ঠিক আছে. 1346 01:09:27,479 --> 01:09:30,870 সুতরাং কিভাবে অনেক অক্ষর আমরা মধ্য দিয়ে যেতে প্রয়োজন যাচ্ছে? 1347 01:09:30,870 --> 01:09:32,295 >> ছাত্র: তাদের সব. 1348 01:09:32,295 --> 01:09:34,100 >> ছাত্র: সমস্ত অক্ষর স্ট্রিং. 1349 01:09:34,100 --> 01:09:35,540 >> JASON HIRSCHHORN: সমস্ত স্ট্রিং অক্ষর. 1350 01:09:35,540 --> 01:09:42,180 আমরা প্রতি মধ্য দিয়ে যেতে চেয়েছিলেন তাই যদি একটি পংক্তি মধ্যে অক্ষর, একটি জিনিস কি 1351 01:09:42,180 --> 01:09:44,560 সি আমরা অনুমতি দেওয়া হয়েছে যে দেখা করেছি আমাদের প্রতি মধ্য দিয়ে যেতে 1352 01:09:44,560 --> 01:09:45,939 একটি স্ট্রিং মধ্যে চরিত্র? 1353 01:09:45,939 --> 01:09:46,819 >> ছাত্রদের: লুপ জন্য একটি. 1354 01:09:46,819 --> 01:09:48,069 >> JASON HIRSCHHORN: লুপ জন্য একটি. 1355 01:09:48,069 --> 01:09:52,020 1356 01:09:52,020 --> 01:09:55,330 সুতরাং আমরা মাধ্যমে লুপ চলুন গুলি প্রতিটি চরিত্র. 1357 01:09:55,330 --> 01:10:00,940 >> তারপর কি আমরা যেতে চাই যাচ্ছে আমরা একটি নির্দিষ্ট অক্ষর পেতে হলে? 1358 01:10:00,940 --> 01:10:02,480 আমরা একটি 90 পাস পেয়ে থাকেন বলুন. 1359 01:10:02,480 --> 01:10:03,460 আমরা 9 ​​পেতে. 1360 01:10:03,460 --> 01:10:04,240 এটি একটি চরিত্র আছে. 1361 01:10:04,240 --> 01:10:07,440 আমরা কি সঙ্গে কাজ করতে চান না যে চরিত্র 9? 1362 01:10:07,440 --> 01:10:10,082 >> ছাত্র: অক্ষর 0 থেকে বিয়োগ? 1363 01:10:10,082 --> 01:10:11,860 >> ছাত্র: 0 যোগ করবেন? 1364 01:10:11,860 --> 01:10:13,350 >> JASON HIRSCHHORN: বিয়োগ অক্ষর 0 থেকে এটা? 1365 01:10:13,350 --> 01:10:13,800 >> ছাত্র: হ্যাঁ. 1366 01:10:13,800 --> 01:10:15,573 >> JASON HIRSCHHORN: কেন করবেন আপনি যে কাজ করতে চান? 1367 01:10:15,573 --> 01:10:16,560 >> ছাত্র: [শ্রবণাতীত] 1368 01:10:16,560 --> 01:10:17,010 মূল্য. 1369 01:10:17,010 --> 01:10:18,380 এর int মান. 1370 01:10:18,380 --> 01:10:21,580 >> JASON HIRSCHHORN: ঠিক আছে, তাই আমরা গ্রহণ চরিত্র 9, থেকে বিয়োগ 1371 01:10:21,580 --> 01:10:25,820 চরিত্র 0 একটি পেতে প্রকৃত পূর্ণসংখ্যা 9. 1372 01:10:25,820 --> 01:10:27,070 মিষ্টি. 1373 01:10:27,070 --> 01:10:31,255 1374 01:10:31,255 --> 01:10:37,000 এবং কিভাবে আপনি যে চরিত্র জানেন 9 0 ঋণাত্মক চরিত্র 9 হয়? 1375 01:10:37,000 --> 01:10:39,222 আপনি এ কি চার্ট তাকান নি? 1376 01:10:39,222 --> 01:10:43,130 >> ছাত্র: ন 'কথাটি আছে 9 এবং 0 এর মধ্যে জায়গা. 1377 01:10:43,130 --> 01:10:44,620 অথবা আপনি ASCII টেবিল তাকান পারে. 1378 01:10:44,620 --> 01:10:45,120 >> JASON HIRSCHHORN: ASCII টেবিল. 1379 01:10:45,120 --> 01:10:46,490 কিন্তু হ্যাঁ, আপনি যেমন সঠিক করছি. 1380 01:10:46,490 --> 01:10:47,780 সুতরাং আমরা 0 বিয়োগ. 1381 01:10:47,780 --> 01:10:49,010 তাই এখন আমরা পূর্ণসংখ্যা 9 আছে. 1382 01:10:49,010 --> 01:10:49,970 এবং কি আমরা যে সঙ্গে কাজ করতে চান না? 1383 01:10:49,970 --> 01:10:54,970 আমরা 90 আছে, এটা প্রথম পূর্ণসংখ্যা আমরা, আমরা কি চাই আছে? 1384 01:10:54,970 --> 01:10:58,180 >> ছাত্র: আমি একটি অস্থায়ী পূর্ণসংখ্যা রাখা চাই অ্যারের তারপর, এটা করার জন্য গণিত না 1385 01:10:58,180 --> 01:11:02,088 পরে শেষ মধ্যে এটি করা. 1386 01:11:02,088 --> 01:11:03,020 >> JASON HIRSCHHORN: ঠিক আছে. 1387 01:11:03,020 --> 01:11:06,990 >> ছাত্র: আপনি শেষে শুরু করতে পারেন তারপর অ্যারের এবং যাতে অগ্রসর 1388 01:11:06,990 --> 01:11:10,350 যে আপনি অগ্রসর প্রতিটি সময়, আপনি 10 দ্বারা এটি সংখ্যাবৃদ্ধি. 1389 01:11:10,350 --> 01:11:10,830 >> JASON HIRSCHHORN: ঠিক আছে. 1390 01:11:10,830 --> 01:11:12,250 এটা একটি প্রশংসনীয় মত শোনাচ্ছে বাধ্যকারী ধারণা. 1391 01:11:12,250 --> 01:11:16,040 আমরা আমাদের অ্যারের শেষে শুরু করতে পারেন, এবং আমরা strleng ব্যবহার করতে পারেন. 1392 01:11:16,040 --> 01:11:17,030 আমরা এখানে strleng ব্যবহার করতে পারেন. 1393 01:11:17,030 --> 01:11:18,870 আমরা আমাদের স্ট্রিং এর দৈর্ঘ্য পাবেন. 1394 01:11:18,870 --> 01:11:20,100 আমরা শেষে শুরু. 1395 01:11:20,100 --> 01:11:29,170 এবং + প্রথম এক, আমরা নিতে যে পূর্ণসংখ্যা, এবং হয়ত আমরা একটি ভালো তৈরি 1396 01:11:29,170 --> 01:11:32,270 নতুন পূর্ণসংখ্যা পরিবর্তনশীল আপ উপরে যেখানে আমরা সবকিছু সংরক্ষণ করছেন. 1397 01:11:32,270 --> 01:11:37,340 থেকে গুলি প্রতি গৃহস্থালি মাধ্যমে তাই আমরা লুপ ফিরে সামনে, আমরা 0 বিয়োগ, এবং 1398 01:11:37,340 --> 01:11:42,790 তারপর আমরা তা গ্রহণ করা, এবং তার উপর নির্ভর করে যেখানে এটা, আমরা এটা সংখ্যাবৃদ্ধি 1399 01:11:42,790 --> 01:11:45,860 10 একটি শক্তি দ্বারা. 1400 01:11:45,860 --> 01:11:50,644 কারণ প্রথম এক, আমরা কি ডানদিকে অবস্থিত অক্ষর দ্বারা সংখ্যাবৃদ্ধি? 1401 01:11:50,644 --> 01:11:51,440 >> ছাত্র: 0 থেকে 10. 1402 01:11:51,440 --> 01:11:53,170 >> JASON HIRSCHHORN: 0 থেকে 10. 1403 01:11:53,170 --> 01:11:56,010 আমরা দ্বিতীয় কি সংখ্যাবৃদ্ধি না ডানদিকে অবস্থিত অক্ষর দ্বারা? 1404 01:11:56,010 --> 01:11:57,450 >> ছাত্র: [শ্রবণাতীত]. 1405 01:11:57,450 --> 01:11:57,960 >> JASON HIRSCHHORN: কি? 1406 01:11:57,960 --> 01:11:59,150 >> ছাত্র: 1 10. 1407 01:11:59,150 --> 01:12:00,420 >> JASON HIRSCHHORN: 1 10. 1408 01:12:00,420 --> 01:12:03,754 তৃতীয় ডানদিকে অবস্থিত চরিত্র? 1409 01:12:03,754 --> 01:12:04,580 >> ছাত্র: 2 10. 1410 01:12:04,580 --> 01:12:05,350 >> JASON HIRSCHHORN: 2 10. 1411 01:12:05,350 --> 01:12:07,200 >> ছাত্র: দুঃখিত, আমি বুঝতে পারছি না আমরা এখানে কি করছেন. 1412 01:12:07,200 --> 01:12:08,640 >> JASON HIRSCHHORN: ঠিক আছে, এর পরে, ফিরে যান. 1413 01:12:08,640 --> 01:12:12,500 সুতরাং আমরা পেতে যাচ্ছেন একটি পংক্তি সালে পাশ. 1414 01:12:12,500 --> 01:12:14,470 আমরা ATOI লেখার কারণ. 1415 01:12:14,470 --> 01:12:15,260 সুতরাং আমরা একটি স্ট্রিং পাস পেতে. 1416 01:12:15,260 --> 01:12:17,640 আমরা পাশ শুরু করছেন বলুন স্ট্রিং 90 সালে. 1417 01:12:17,640 --> 01:12:19,930 >> আমরা কি করতে যাচ্ছেন সর্বপ্রথম সেট করা হয় আমরা যে একটি নতুন পূর্ণসংখ্যা পরিবর্তনশীল 1418 01:12:19,930 --> 01:12:22,150 শুধু তৈরি করতে যাচ্ছে আমাদের নতুন পূর্ণসংখ্যা হিসাবে. 1419 01:12:22,150 --> 01:12:24,630 আমরা চলুন শেষে ফিরে যাওয়ার জন্য. 1420 01:12:24,630 --> 01:12:30,110 আমরা প্রতিটি চরিত্রের মধ্য দিয়ে যেতে হবে স্ট্রিং আমরা নির্ধারণ করেছি, কারণ 1421 01:12:30,110 --> 01:12:34,430 আমরা প্রতিটি এক স্পর্শ করতে হবে এবং যে তারপর আমাদের নতুন পূর্ণসংখ্যা এটি যোগ করুন. 1422 01:12:34,430 --> 01:12:36,330 >> কিন্তু আমরা শুধু একটি সংখ্যা হিসেবে এটি যোগ করতে পারবেন না. 1423 01:12:36,330 --> 01:12:38,270 আমরা শুধু 9 এবং নিতে না পারে আমাদের পূর্ণসংখ্যা 9 যোগ করুন. 1424 01:12:38,270 --> 01:12:40,560 এটা কি জায়গা উপর নির্ভর করে এটি স্ট্রিং হয়. 1425 01:12:40,560 --> 01:12:42,960 আমরা সংখ্যাবৃদ্ধি প্রয়োজন চলুন এটা 10 একটি শক্তি দ্বারা. 1426 01:12:42,960 --> 01:12:45,580 কারণ যে কিভাবে বেস 10 কাজ করে. 1427 01:12:45,580 --> 01:12:49,050 >> সুতরাং আমরা প্রকৃত পেতে যাচ্ছেন চরিত্র, বা প্রকৃত পূর্ণসংখ্যা 1428 01:12:49,050 --> 01:12:53,860 সংখ্যা, অক্ষর 0 subtracting দ্বারা চরিত্র 9 আমরা সঙ্গে কি মত থেকে 1429 01:12:53,860 --> 01:12:57,560 থেকে অক্ষর বড় হাতের একটি subtracting আমরা এক ছিল যাই হোক না কেন চরিত্র 1430 01:12:57,560 --> 01:12:58,120 সেই সমস্যা. 1431 01:12:58,120 --> 01:13:04,190 তাই আসলে আমরা 0 থেকে একটি নম্বর পাবেন 9 একটি বাস্তব সংখ্যা হিসেবে সংরক্ষিত, এবং আমরা করব 1432 01:13:04,190 --> 01:13:07,590 নির্ভর করে 10 এর ক্ষমতা দ্বারা এটি সংখ্যাবৃদ্ধি আমরা স্ট্রিং যেখানে নেভিগেশন. 1433 01:13:07,590 --> 01:13:19,430 1434 01:13:19,430 --> 01:13:22,575 এবং তারপর আমরা তা ফিরে যোগ চলুন আমাদের নতুন পূর্ণসংখ্যা পরিবর্তনশীল মধ্যে. 1435 01:13:22,575 --> 01:13:32,840 1436 01:13:32,840 --> 01:13:37,890 >> তাই এই একটা ভালো দেখাবে আমরা এখানে উপর আঁকা করব - করা. 1437 01:13:37,890 --> 01:13:40,086 আমরা স্ট্রিং 90 সালে পাশ পেতে হলে - 1438 01:13:40,086 --> 01:13:41,336 >> ছাত্র: [শ্রবণাতীত]. 1439 01:13:41,336 --> 01:13:43,190 1440 01:13:43,190 --> 01:13:45,540 >> JASON HIRSCHHORN: কিন্তু ATOI একটি পংক্তি প্রদর্শন করা হয়. 1441 01:13:45,540 --> 01:13:46,350 সুতরাং আমরা মধ্য দিয়ে যেতে চলুন জোত. 1442 01:13:46,350 --> 01:13:49,900 আমরা 90 সালে পাশ পাবেন. 1443 01:13:49,900 --> 01:13:51,540 আমরা সামনে পিছন থেকে যান. 1444 01:13:51,540 --> 01:13:53,920 আমরা 0 নিতে. 1445 01:13:53,920 --> 01:13:55,080 >> ছাত্র: আমি দুঃখিত. 1446 01:13:55,080 --> 01:13:55,880 হয়তো এই মূঢ়. 1447 01:13:55,880 --> 01:13:59,440 আমরা একটি স্ট্রিং পাস পেয়ে করছি, কেন আমরা করছি কি 90 হয় 1448 01:13:59,440 --> 01:14:00,260 সালে পাশ হচ্ছে? 1449 01:14:00,260 --> 01:14:03,160 90 একটি পূর্ণসংখ্যা হয়. 1450 01:14:03,160 --> 01:14:06,820 >> JASON HIRSCHHORN: ATOI একটি লাগে কারণ স্ট্রিং এবং পূর্ণসংখ্যা মধ্যে এটি সক্রিয় 1451 01:14:06,820 --> 01:14:08,320 যে স্ট্রিং এর উপস্থাপনা. 1452 01:14:08,320 --> 01:14:13,650 কিন্তু স্ট্রিং 90 পূর্ণসংখ্যা নয় 90 বা সংখ্যা 90. 1453 01:14:13,650 --> 01:14:17,920 স্ট্রিং 90 একটি দুটি অ্যারে, বা হয় তিনটি অক্ষর, বরং, 9 1454 01:14:17,920 --> 01:14:22,740 চরিত্র, 0 চরিত্র, এবং ব্যাকস্ল্যাশ 0 চরিত্র. 1455 01:14:22,740 --> 01:14:26,260 >> এবং আমরা, কারণ জন্য ATOI লেখার উদাহরণস্বরূপ, আপনি কমান্ড গ্রহণ করার সময় 1456 01:14:26,260 --> 01:14:30,230 লাইন আর্গুমেন্ট, এবং এটি মধ্যে সংরক্ষিত হচ্ছে argv, এটি একটি স্ট্রিং হিসেবে সংরক্ষিত হচ্ছে. 1457 01:14:30,230 --> 01:14:32,940 তবে আপনি যদি একটি সংখ্যা হিসেবে বিবেচনা করতে চান, আপনি যদি একটি থেকে এটি রূপান্তর করতে হবে 1458 01:14:32,940 --> 01:14:34,700 প্রকৃত পূর্ণসংখ্যা. 1459 01:14:34,700 --> 01:14:37,210 যা আমরা আমাদের সমস্যা সেট এক করেছিল. 1460 01:14:37,210 --> 01:14:38,800 আমরা একটি নম্বর করেছিল কোনটি আমাদের সমস্যা সেট. 1461 01:14:38,800 --> 01:14:41,690 একটি পূর্ণসংখ্যা গ্রহণ প্রত্যেকেরই একটি কমান্ড লাইন আর্গুমেন্ট হিসাবে. 1462 01:14:41,690 --> 01:14:46,490 সুতরাং যে কেন আমাদের ATOI ফাংশন একটি পংক্তি প্রদর্শন করা হয়. 1463 01:14:46,490 --> 01:14:51,910 >> তাই আবার, এখানে আমাদের উদাহরণে, আমরা করছি গত এক নিতে যাচ্ছে. 1464 01:14:51,910 --> 01:14:55,050 আমরা চরিত্র বিয়োগ চলুন এটি থেকে 0, কারণ অক্ষর 0 1465 01:14:55,050 --> 01:14:58,810 চরিত্র 0 দ্বারা বিয়োগ আপনি দেয় অনুযায়ী প্রকৃত সংখ্যা 0, 1466 01:14:58,810 --> 01:15:00,950 আমরা কি যে হওয়া ASCII গণিত. 1467 01:15:00,950 --> 01:15:04,870 >> অক্ষর হিসাবে প্রতিনিধিত্ব করা হয় কারণ তাদের প্রকৃত চেয়ে ভিন্ন - 1468 01:15:04,870 --> 01:15:08,830 অক্ষর একটি, যেমন, ছোট হাতের একটি 97 হয়. 1469 01:15:08,830 --> 01:15:10,260 এটা না - উফ! 1470 01:15:10,260 --> 01:15:13,290 এটা আপনি আশা করবে যাই হোক না কেন নয় এটা উদাহরণস্বরূপ,, 0 হতে. 1471 01:15:13,290 --> 01:15:16,200 সুতরাং আপনি বিয়োগ করতে হবে অক্ষর একটি 0 পেতে. 1472 01:15:16,200 --> 01:15:18,950 >> তাই আমরা এখানে যে করতে যাচ্ছেন প্রকৃত সংখ্যা পেতে. 1473 01:15:18,950 --> 01:15:22,560 এবং তারপর আমরা দ্বারা এটি সংখ্যাবৃদ্ধি যাচ্ছে 10 এর একটি ক্ষমতা যেখানে এটি উপর নির্ভর করে 1474 01:15:22,560 --> 01:15:27,030 স্ট্রিং, এবং তারপর যে গ্রহণ এবং আমাদের জায়গা ধারক এটি যোগ করুন 1475 01:15:27,030 --> 01:15:32,520 পরিবর্তনশীল তাই আমরা চিন্তা করতে পারে আমাদের চূড়ান্ত নতুন পূর্ণসংখ্যা. 1476 01:15:32,520 --> 01:15:35,080 সবাই যে ইন্দ্রিয় তোলে না? 1477 01:15:35,080 --> 01:15:37,730 >> সুতরাং আমরা এই কোড যাচ্ছেন না ঠিক এখন, কারণ আমরা করছি 1478 01:15:37,730 --> 01:15:38,830 সময় সংক্ষিপ্ত পেয়ে. 1479 01:15:38,830 --> 01:15:40,860 আমি যে সময়সীমাকে জন্য ক্ষমাপ্রার্থী. 1480 01:15:40,860 --> 01:15:44,620 কিন্তু এই কি, আশা, আপনি হয় এ - ব্যঙ্গ করতে পারা 1481 01:15:44,620 --> 01:15:47,710 অন্ততপক্ষে, এই pseudocode পেতে আউট লিখিত. 1482 01:15:47,710 --> 01:15:50,840 >> এবং তারপর, আমরা যদি লিখতে pseudocode, আসলে, আমরা এই কাজ করতে পারে 1483 01:15:50,840 --> 01:15:51,490 প্রশংসনীয় দ্রুত. 1484 01:15:51,490 --> 01:15:55,230 আমরা আমরা লিখেছিলেন মন্তব্য প্রত্যেকটি লাইন এখানে প্রায় অনুবাদ 1485 01:15:55,230 --> 01:15:56,970 সি কোড একটি লাইন. 1486 01:15:56,970 --> 01:16:01,780 একটি নতুন পরিবর্তনশীল, লিখিত ঘোষণা একটি লুপ, কিছু বিয়োগ, কিছু 1487 01:16:01,780 --> 01:16:07,070 গুণ, এবং কিছু নিয়োগ. 1488 01:16:07,070 --> 01:16:09,020 আমরা সম্ভবত এটাও চাই চাই একটি ফিরতি লাইন লিখুন. 1489 01:16:09,020 --> 01:16:12,040 আমরা রাখতে চাইবেন এখানে কিছু চেক. 1490 01:16:12,040 --> 01:16:12,655 হ্যাঁ. 1491 01:16:12,655 --> 01:16:15,720 >> ছাত্র: সুতরাং আমরা বিবেচনা করতে পারেন প্রকৃত স্ট্রিং হিসেবে গুলি? 1492 01:16:15,720 --> 01:16:18,730 আমি জানি কারণ এটি শুধু একটি ঠিকানা আছে. 1493 01:16:18,730 --> 01:16:22,090 ভালো লেগেছে, কিভাবে আপনি দৈর্ঘ্যের পেতে চাই স্ট্রিং মাধ্যমে গৃহীত হচ্ছে? 1494 01:16:22,090 --> 01:16:25,310 >> JASON HIRSCHHORN: সুতরাং কিভাবে কি একটি স্ট্রিং এর দৈর্ঘ্য? 1495 01:16:25,310 --> 01:16:25,830 Strlen. 1496 01:16:25,830 --> 01:16:26,660 >> ছাত্র: strlen, হাঁ. 1497 01:16:26,660 --> 01:16:30,550 কিন্তু আপনি যত গুলি লাগাতে পারেন যে জন্য যুক্তি? 1498 01:16:30,550 --> 01:16:34,620 >> JASON HIRSCHHORN: তাই strlen একটি গৃহস্থালি তারকা লাগে. 1499 01:16:34,620 --> 01:16:38,090 এবং এটা যে গৃহস্থালি তারকা অনুসরণ করে, এবং এটি এটি একটি পায় না হওয়া পর্যন্ত বেড়ে চলেছে রাখে 1500 01:16:38,090 --> 01:16:41,865 ব্যাকস্ল্যাশ 0. strlen আসলে ছিল অন্যান্য প্রোগ্রামের এক আমরা 1501 01:16:41,865 --> 01:16:42,850 কোড চালু ছিল. 1502 01:16:42,850 --> 01:16:44,560 যে কোড আরেকটি ভাল এক. 1503 01:16:44,560 --> 01:16:47,270 যে এক, একটু সহজ যদি কারণ আপনি যে সম্পর্কে চিন্তা করতে যাচ্ছেন 1504 01:16:47,270 --> 01:16:47,830 ধারণার দিক - 1505 01:16:47,830 --> 01:16:51,620 আমি অট্ট এটা বলেন - strlen অনুসরণ একটি পয়েন্টার এবং রাখে যাচ্ছে এবং 1506 01:16:51,620 --> 01:16:54,210 বেড়ে চলেছে এবং যতক্ষণ অবগত থাকার আপনি একটি ব্যাকস্ল্যাশ 0 পৌঁছানোর. 1507 01:16:54,210 --> 01:16:56,530 >> ছাত্র: ঠিক আছে, পেয়েছি. 1508 01:16:56,530 --> 01:17:00,200 >> JASON HIRSCHHORN: তাই সেরা ব্যঙ্গ 0 আগামীকাল নেভিগেশন ভাগ্য. 1509 01:17:00,200 --> 01:17:03,170 যদি আপনার কোন প্রশ্ন থাকে, আমি করব এই পর বাইরে করা. 1510 01:17:03,170 --> 01:17:05,610 আমাকে ইমেইল বিনা দ্বিধায়. 1511 01:17:05,610 --> 01:17:08,480 আপনি যদি আপনার নিজের TF কাছে পৌঁছানো আমার বিভাগে বা পাবেন না আমার 1512 01:17:08,480 --> 01:17:10,005 আপনি এটি করতে চান ইমেইল. 1513 01:17:10,005 --> 01:17:13,140 >> আপনি খেয়াল আউট করতে চান এবং শুধু পাঠাতে হলে আমাকে একটি ইমেইল, একটি Freakout ইমেইল, আমি করব 1514 01:17:13,140 --> 01:17:16,710 , একটি হাস্যজ্জল মুখ, মত, আপনাকে ফেরত পাঠাতে বা, মত, একটি তামাশা বা কিছু. 1515 01:17:16,710 --> 01:17:18,190 সুতরাং হিসাবে ভাল তা করতে বিনা দ্বিধায়. 1516 01:17:18,190 --> 01:17:20,750 গুড লাক আবার, এবং আমি করব সব আগামী সপ্তাহে আপনি দেখতে. 1517 01:17:20,750 --> 01:17:23,435