1 00:00:00,000 --> 00:00:02,742 2 00:00:02,742 --> 00:00:05,680 >> বক্তা 1: হাই সবাই. 3 00:00:05,680 --> 00:00:07,530 আমরা শুরু করতে যাচ্ছি. 4 00:00:07,530 --> 00:00:09,330 আমি এখনও মানুষ যাচ্ছে মনে মধ্যে ফিল্টার হবে. 5 00:00:09,330 --> 00:00:12,840 কিন্তু সময় স্বার্থে, আমরা করতে পারেন, তাই সময় এখানে আপনি আউট না পেতে, 6 00:00:12,840 --> 00:00:14,110 আমরা শুরু করতে যাচ্ছেন. 7 00:00:14,110 --> 00:00:18,780 সুতরাং CS50 ক্যুইজ 0 পর্যালোচনা স্বাগত জানাই. 8 00:00:18,780 --> 00:00:23,020 বুঝতে না যারা আপনি তাদের জন্য এখনো, আপনি বুধবার একটি প্রশ্ন আছে. 9 00:00:23,020 --> 00:00:25,700 পাণিপ্রার্থনা ব্যবহৃত অভিব্যক্তি. 10 00:00:25,700 --> 00:00:29,780 >> আপনি যদি এখনো অধ্যয়নরত শুরু না করে থাকেন বা এই এখনো বিদ্যমান বুঝলাম যে না, 11 00:00:29,780 --> 00:00:34,070 গত ক্যুইজ এবং সম্পর্কে তথ্য আপনার ব্যঙ্গ cs50.net/quizzes হয়. 12 00:00:34,070 --> 00:00:38,090 কিছু প্রশংসনীয় ভাল কাপড় সেখানে আছে, 10 শেষ থেকে গত ক্যুইজ 13 00:00:38,090 --> 00:00:43,760 বছর হিসেবে তথ্য এই ব্যঙ্গ এবং বিষয় সম্পর্কে 14 00:00:43,760 --> 00:00:46,250 যে আচ্ছাদিত করা হবে. 15 00:00:46,250 --> 00:00:48,980 তাই এর শুরু করা যাক. 16 00:00:48,980 --> 00:00:54,240 >> তাই আপনাকে বলছি, প্রথম মনে রাখতে পারে বর্গ ডেভিড দিন যারা আলো ছিল. 17 00:00:54,240 --> 00:00:59,650 তাই মূলত, সবকিছু যায় যে একটি কম্পিউটার ফণা অধীন উপর 18 00:00:59,650 --> 00:01:00,860 বাইনারি মধ্যে সম্পন্ন করা. 19 00:01:00,860 --> 00:01:04,080 বাইনারি শোনাচ্ছে কি মানে মত, 0 এবং 1 এর. 20 00:01:04,080 --> 00:01:09,290 এটা দুই মান আছে যে প্রতিনিধিত্ব করা যাবে. 21 00:01:09,290 --> 00:01:14,675 >> তাই শুধু অধ্যায় প্রথম দিন ভালো ডেভিড একটি হালকা চালু যখন 22 00:01:14,675 --> 00:01:21,990 কন্দ, আমাদের কম্পিউটারে প্রতিনিধিত্ব করেন, বা 1 বোঝে 0 এর বাইনারি এবং 23 00:01:21,990 --> 00:01:24,110 1 এর, বা বন্ধ. 24 00:01:24,110 --> 00:01:25,360 বাইনারি এর বুনিয়াদি. 25 00:01:25,360 --> 00:01:29,440 26 00:01:29,440 --> 00:01:32,470 প্রতিটি জায়গা প্রতিনিধিত্ব করা হয় বেস দুই. 27 00:01:32,470 --> 00:01:36,260 তাই আপনি যদি 0 থেকে 2 যোগ 1 সব পথ আপ 2. 28 00:01:36,260 --> 00:01:41,970 >> আপনার বাইনারি কি নিরূপণ দশমিক, আপনি শুধু এই সমীকরণ অনুসরণ 29 00:01:41,970 --> 00:01:42,840 টাইপ জিনিস. 30 00:01:42,840 --> 00:01:49,510 আপনি ঐ জায়গা কোনো একটি 1 আছে, আপনার দ্বারা এটি সংখ্যাবৃদ্ধি যাই হোক না কেন 31 00:01:49,510 --> 00:01:53,820 এটা বেস, এটি আপ যোগ করুন, এবং আপনি দশমিক পেতে. 32 00:01:53,820 --> 00:01:57,930 তাই এই আপনি গণনা করা হয় বাইনারি 5. 33 00:01:57,930 --> 00:02:01,400 শুধু আমরা এরকম হয় ভালো শেষ স্লাইডে, এই কিভাবে আপনি হয় 34 00:02:01,400 --> 00:02:02,650 5 মাধ্যমে 1 প্রতিনিধিত্বকারী. 35 00:02:02,650 --> 00:02:05,320 36 00:02:05,320 --> 00:02:09,660 >> একইভাবে, আপনি যোগ করতে পারেন চান এবং দশমিক বিয়োগ বা 10 বেস, বা 37 00:02:09,660 --> 00:02:13,040 সত্যিই কোনো বেস উপর যোগ করতে পারেন এবং বাইনারি বিয়োগ. 38 00:02:13,040 --> 00:02:18,400 যখন আপনি আশা করবে ঠিক কি এটি বৃহত্তর সমান হলে, দুই আপ যোগ করুন 39 00:02:18,400 --> 00:02:24,220 1, আপনি একটি 1, এটি একটি 0 না বহন করে, এবং শুধু, উপরন্তু যে উপায় কি 40 00:02:24,220 --> 00:02:29,910 যেমন আপনি নিয়মিত সঙ্গে আশা করে দশমিক বা অন্য কোন বেস. 41 00:02:29,910 --> 00:02:30,970 কুল. 42 00:02:30,970 --> 00:02:35,140 >> আমি সবকিছু আগে বলেন সুতরাং যে আমাদের কম্পিউটার এর ফণা অধীন যায় 43 00:02:35,140 --> 00:02:37,560 0 এবং 1 এর, বা বাইনারি মধ্যে সম্পন্ন করা হয়. 44 00:02:37,560 --> 00:02:43,470 তাই আমরা প্রকাশ না কিভাবে, উদাহরণস্বরূপ, অক্ষর, বা সংখ্যা বা অক্ষর? 45 00:02:43,470 --> 00:02:45,560 এবং যে উত্তর হওয়া ASCII হয়. 46 00:02:45,560 --> 00:02:49,380 >> ASCII অক্ষর মধ্যে একটি ম্যাপিং আমরা সাধারণত দেখতে হবে যে 47 00:02:49,380 --> 00:02:53,360 একটি, বি, এর মত ইংরেজি ভাষা, সি এর, আন্ডারস্কোর, ড্যাশ, এবং 48 00:02:53,360 --> 00:02:54,910 যে মত কিছু. 49 00:02:54,910 --> 00:02:57,260 এবং এটি একটি ASCII মান যে মানচিত্র. 50 00:02:57,260 --> 00:03:03,080 একটি ASCII মান মাত্র একটি সংখ্যা যে আপনার কম্পিউটার দ্বারা বোঝা যাবে. 51 00:03:03,080 --> 00:03:07,430 এবং যদি আপনি ছাড়াও করতে পারেন, ঠিক মত এবং সংখ্যার বিয়োগ, আপনি কি করতে পারেন 52 00:03:07,430 --> 00:03:10,890 ASCII মান সঙ্গে তাদের. 53 00:03:10,890 --> 00:03:14,050 >> , এই উদাহরণে কি এই প্রিন্ট আউট হবে? 54 00:03:14,050 --> 00:03:26,790 55 00:03:26,790 --> 00:03:35,480 হ্যাঁ, তাই শুধু একটি স্থান বি স্থান সি স্থান ডি কোথায় আমার মাউস যান নি? 56 00:03:35,480 --> 00:03:39,200 57 00:03:39,200 --> 00:03:43,380 আপনি যদি 65 এ কোন int নির্ধারণ করতে পারবেন লক্ষ্য করুন. 58 00:03:43,380 --> 00:03:47,080 এবং আপনি ব্যবহার করে প্রিন্ট আউট যখন শতাংশ সি, এটি একটি হিসাবে যে ব্যাখ্যা করব 59 00:03:47,080 --> 00:03:49,330 অক্ষর এবং এ প্রিন্ট আউট হবে 60 00:03:49,330 --> 00:03:52,800 >> একইভাবে, আপনি ডিক্লেয়ার করতে পারেন এটি একটি গৃহস্থালি হিসাবে. 61 00:03:52,800 --> 00:03:56,860 এবং যদি আপনি শতাংশ ব্যবহার করে এটি প্রিন্ট আউট যখন সি, এটি হিসাবে যে ব্যাখ্যা করব 62 00:03:56,860 --> 00:04:05,240 শতাংশ ডি এবং যদি আপনি একটি যোগ করতে পারেন, ঠিক মত সংখ্যা, আপনি অক্ষর যোগ করতে পারেন 63 00:04:05,240 --> 00:04:06,878 এই ক্ষেত্রে ASCII মান,. 64 00:04:06,878 --> 00:04:11,370 65 00:04:11,370 --> 00:04:16,130 >> সবার জন্য তাই একটু পয়েন্টার. 66 00:04:16,130 --> 00:04:19,610 5, একটি স্ট্রিং হিসেবে, না আসলে 5 সমান. 67 00:04:19,610 --> 00:04:26,610 সুতরাং আমরা কিভাবে রূপান্তর হতে পারে পূর্ণসংখ্যা 5 স্ট্রিং 5? 68 00:04:26,610 --> 00:04:28,930 কোন ধারণা? 69 00:04:28,930 --> 00:04:31,630 হ্যাঁ. 70 00:04:31,630 --> 00:04:36,720 >> সুতরাং আমরা একটি স্ট্রিং হিসেবে 5 আছে, আমরা 0 বিয়োগ করতে পারেন. 71 00:04:36,720 --> 00:04:37,820 এবং যে আমাদের 5 দেব. 72 00:04:37,820 --> 00:04:41,670 এবং একইভাবে, আমরা একটি 5 আছে পূর্ণসংখ্যা, স্ট্রিং 0 যে যোগ করুন. 73 00:04:41,670 --> 00:04:43,112 এবং যে আমাদের স্ট্রিং 5 দেয়. 74 00:04:43,112 --> 00:04:46,350 75 00:04:46,350 --> 00:04:48,350 কুল. 76 00:04:48,350 --> 00:04:52,940 >> এখন, এক যেখানে বক্তৃতা ফিরে প্রত্যাহার আমরা আলগোরিদিম সম্পর্কে বললাম. 77 00:04:52,940 --> 00:04:57,260 তাই আসলে আমরা একটি কম্পিউটার চান কিভাবে আকর্ষণীয় কিছু করার? 78 00:04:57,260 --> 00:05:00,460 আপনি শুধু যোগ এবং subtracting, জানি সংখ্যা এবং প্রিন্টিং কিছু হয় না 79 00:05:00,460 --> 00:05:01,730 যে উত্তেজনাপূর্ণ. 80 00:05:01,730 --> 00:05:04,620 সাধারণত, আমরা আমাদের কম্পিউটার চাই আলগোরিদিম কিছু সঞ্চালন. 81 00:05:04,620 --> 00:05:07,820 আরো একটু জটিল কিছু শুধু সহজ গাণিতিক তুলনায়. 82 00:05:07,820 --> 00:05:11,930 >> একটি অ্যালগরিদম পদক্ষেপ সেট দ্বারা শুধুমাত্র একটি পদক্ষেপ সঞ্চালন কিভাবে নির্দেশাবলীর জন্য 83 00:05:11,930 --> 00:05:14,640 একটি নির্দিষ্ট task-- 84 00:05:14,640 --> 00:05:15,660 শুধু একটি রেসিপি চাই. 85 00:05:15,660 --> 00:05:19,990 আপনি প্রথম দিন মনে রাখতে পারে ডেভিড আমাদের একটি রুম গণনা ছিল যেখানে বর্গ 86 00:05:19,990 --> 00:05:22,550 মানুষ এবং কিভাবে অনেক মানুষ রুমে ছিল. 87 00:05:22,550 --> 00:05:24,480 আপনি বেড়ে চলেছে ব্যবহার করা হতে পারে এক এক করে. 88 00:05:24,480 --> 00:05:25,860 1, 2, 3, 4. 89 00:05:25,860 --> 00:05:28,010 যে ক্ষেত্রে, একটি রৈখিক সময় আলগোরিদিম. 90 00:05:28,010 --> 00:05:31,710 >> কিন্তু ডেভিড জন্য একটি অ্যালগরিদম চালু আপনি রুমে মানুষ গণনা 91 00:05:31,710 --> 00:05:37,340 সবাই দাঁড়িয়েছে আপ, যেখানে আপনি আপনার বলে অন্য ব্যক্তির সংখ্যা, যোগ 92 00:05:37,340 --> 00:05:39,200 সংখ্যা, এবং এক ব্যক্তি নিচে অস্ত যায়. 93 00:05:39,200 --> 00:05:40,410 এবং আপনি যে পুনরাবৃত্তি. 94 00:05:40,410 --> 00:05:42,910 যে অ্যালগরিদম এক ধরনের. 95 00:05:42,910 --> 00:05:47,520 আমরা কিভাবে দক্ষ একটি বিশ্লেষণ করতে পারে এটা সময় চালানো উপর এলগরিদম ভিত্তি করে. 96 00:05:47,520 --> 00:05:49,680 কিন্তু আমরা একটি সামান্য বিট কথা বলতে পারবেন পরে যে সম্পর্কে আরো. 97 00:05:49,680 --> 00:05:52,740 98 00:05:52,740 --> 00:05:57,090 >> তাই সব আলগোরিদিম করতে পারেন pseudocode মধ্যে লেখা হবে. 99 00:05:57,090 --> 00:06:01,120 Pseudocode ঠিক মত একটি ইংরেজি সিনট্যাক্স প্রতিনিধিত্ব করতে ব্যবহৃত 100 00:06:01,120 --> 00:06:02,420 একটি প্রোগ্রামিং ভাষা. 101 00:06:02,420 --> 00:06:06,070 উদাহরণস্বরূপ, একটি ব্যবহারকারী আমরা চেয়েছিলেন জিজ্ঞাসা আমার প্রিয় সংখ্যা অনুমান করার জন্য, আমরা 102 00:06:06,070 --> 00:06:08,390 যেমন pseudocode হয় থাকতে পারে. 103 00:06:08,390 --> 00:06:09,850 >> একটি ব্যবহারকারীদের অনুমান পান. 104 00:06:09,850 --> 00:06:13,570 অনুমান যদি সঠিক হয়, তাদের বলুন তারা সঠিক, অন্য তাদের বলুন 105 00:06:13,570 --> 00:06:15,560 তারা সঠিক না. 106 00:06:15,560 --> 00:06:22,530 এবং pseudocode হয় সহজে একটি উপায় একটি ধারণা বা একটি অ্যালগরিদম প্রতিনিধিত্বমূলক. 107 00:06:22,530 --> 00:06:26,910 তাই এখন আমরা আসলে লিখতে চান হতে পারে এই ভাষায় যে কম্পিউটার 108 00:06:26,910 --> 00:06:27,980 বুঝতে পারে. 109 00:06:27,980 --> 00:06:35,660 তাই আমরা আমাদের pseudocode লিখতে পারে এবং সোর্স কোড মধ্যে যে ব্যাখ্যা. 110 00:06:35,660 --> 00:06:41,320 >> এ পর্যন্ত, সোর্স কোড মেনে চলতে হবে একটি নির্দিষ্ট বাক্য গঠন করতে 111 00:06:41,320 --> 00:06:42,490 একটি প্রোগ্রামিং ভাষা. 112 00:06:42,490 --> 00:06:45,430 এবং এ পর্যন্ত, CS50 মধ্যে, আমরা করেছি বেশিরভাগ গ ব্যবহার করা হয়েছে. 113 00:06:45,430 --> 00:06:48,320 তাই এই গ সোর্স কোড হতে পারে. 114 00:06:48,320 --> 00:06:51,440 পরে অবশ্যই, আপনি রাতে আসা অন্যান্য প্রোগ্রামিং সঙ্গে যোগাযোগের মধ্যে 115 00:06:51,440 --> 00:06:52,480 পিএইচপি মত ভাষা. 116 00:06:52,480 --> 00:06:57,540 অথবা আপনি এমনকি, আপনি অন্যান্য ক্লাস নিতে যদি জাভা, পাইথন, অথবা এমনকি OCML করতে পারে. 117 00:06:57,540 --> 00:07:01,570 কিন্তু আমাদের সি প্রোগ্রাম ভাষা, এই আমরা জন্য সোর্স কোড লিখতে পারে 118 00:07:01,570 --> 00:07:04,760 pseudocode হয় আলগোরিদিম যে আমি আগে বর্ণিত. 119 00:07:04,760 --> 00:07:08,630 120 00:07:08,630 --> 00:07:11,430 >> সুতরাং কিভাবে আসলে আপনার কম্পিউটার আছে বুঝতে? 121 00:07:11,430 --> 00:07:14,490 আমি শুধুমাত্র সত্যিই, এটা আগে বলেন, ভালো লেগেছে zeros এবং বেশী বোঝে. 122 00:07:14,490 --> 00:07:17,880 তাই কিভাবে এটি উৎস থেকে পাবেন না হতে পারে যে কিছু কোড 123 00:07:17,880 --> 00:07:18,960 বোঝা যায়? 124 00:07:18,960 --> 00:07:22,920 ভাল, আমরা কিছু আছে একটি কম্পাইলার বলা হয়. 125 00:07:22,920 --> 00:07:28,450 >> আপনি সবচেয়ে ফিরে প্রত্যাহার, আপনার psets, আপনি প্রোগ্রাম কিছু ছিল 126 00:07:28,450 --> 00:07:30,370 একটি বিন্দু গ ফাইল লেখা. 127 00:07:30,370 --> 00:07:32,550 এবং তারপর আপনি টাইপ করতে হবে. 128 00:07:32,550 --> 00:07:35,970 তাই কি না করছে? 129 00:07:35,970 --> 00:07:39,970 >> আপনি কম্পাইল করতে টাইপ করতে পারেন আপনার প্রোগ্রাম someone-- কারণ 130 00:07:39,970 --> 00:07:42,730 যে কেহ আপনার পি সেট লেখেন; সম্ভবত David-- 131 00:07:42,730 --> 00:07:44,190 একটি ফাইল তৈরি করা. 132 00:07:44,190 --> 00:07:51,320 এবং যে চালানোর জানতে না বলে আপনার কম্পাইলার বলা হয়, ঝনঝন শব্দ, যে ইচ্ছা 133 00:07:51,320 --> 00:07:55,560 তারপর বস্তু আপনার সোর্স কোড কম্পাইল zeros এবং বেশী, যা কোড, 134 00:07:55,560 --> 00:07:57,720 আপনার কম্পিউটার বুঝতে পারে যে. 135 00:07:57,720 --> 00:08:01,610 কিন্তু পরে একটু, আমরা যেতে হবে কম্পাইলার সম্পর্কে গভীরতার মধ্যে আরো. 136 00:08:01,610 --> 00:08:05,640 137 00:08:05,640 --> 00:08:10,800 >> তাই প্রত্যাহার, pset 0, where-- হ্যাঁ, যদি আপনি একটি প্রশ্ন আছে? 138 00:08:10,800 --> 00:08:11,620 >> শ্রোতা: [শ্রবণাতীত]? 139 00:08:11,620 --> 00:08:12,490 >> বক্তা 1: হ্যাঁ. 140 00:08:12,490 --> 00:08:14,960 আমি আসলে তারা মনে করে অনলাইন হতে হবে. 141 00:08:14,960 --> 00:08:15,120 হ্যাঁ. 142 00:08:15,120 --> 00:08:16,572 >> শ্রোতা: এটা [শ্রবণাতীত] মত কি? 143 00:08:16,572 --> 00:08:19,476 144 00:08:19,476 --> 00:08:20,830 >> বক্তা 1: এটা হয় না. 145 00:08:20,830 --> 00:08:25,810 দ্য cs50.net/quizzes হয়. 146 00:08:25,810 --> 00:08:32,900 >> শ্রোতা: স্ল্যাশ মো,, 2013 কাট 0 কাট, এবং শুধু মাধ্যমে ক্লিক করুন 147 00:08:32,900 --> 00:08:35,956 ক্যুইজ 2013 এবং ব্যঙ্গ 0, অধ্যায় স্লাইড পর্যালোচনা. 148 00:08:35,956 --> 00:08:40,380 >> বক্তা 1: হ্যাঁ, তাই আপনি যদি না করতে চান তাহলে এটি বৈঠাচালনা আপ এবং এটি তাকান আপনার 149 00:08:40,380 --> 00:08:42,740 নিজের কম্পিউটার, যে খুব সূক্ষ্ম. 150 00:08:42,740 --> 00:08:43,130 আবার বলে. 151 00:08:43,130 --> 00:08:44,546 >> শ্রোতা: [শ্রবণাতীত]. 152 00:08:44,546 --> 00:08:48,780 >> বক্তা 1: হ্যাঁ, [শ্রবণাতীত] ডামি পরিবর্তনশীল. 153 00:08:48,780 --> 00:08:49,644 হ্যাঁ, ওহ? 154 00:08:49,644 --> 00:08:51,372 >> শ্রোতা: [শ্রবণাতীত]? 155 00:08:51,372 --> 00:08:54,300 >> বক্তা 1: না, ধর্মঘট পরীক্ষা হয় না. 156 00:08:54,300 --> 00:08:55,950 দুঃখিত, ছিল তার প্রশ্ন ছিল, পরীক্ষা স্ট্রাইক. 157 00:08:55,950 --> 00:08:59,530 এবং এটা করা হয় না. 158 00:08:59,530 --> 00:09:05,780 তাই pset 0, আপনাকে বলছি সব আছে স্ক্র্যাচ ব্যবহার করে কিছু বাস্তবায়িত হয়নি. 159 00:09:05,780 --> 00:09:13,100 এবং আমরা কিছু মৌলিক প্রোগ্রামিং শেখা স্ক্র্যাচ ব্যবহার করে বিল্ডিং ব্লক. 160 00:09:13,100 --> 00:09:15,590 >> তাই কিছু কটাক্ষপাত করা যাক এই বিল্ডিং ব্লক 161 00:09:15,590 --> 00:09:18,170 একটি প্রোগ্রাম করা. 162 00:09:18,170 --> 00:09:20,570 প্রথম বুলিয়ান অভিব্যক্তি. 163 00:09:20,570 --> 00:09:24,540 বুলিয়ান এক্সপ্রেশন বেশী এবং যে 0 এর অথবা কিছু 164 00:09:24,540 --> 00:09:25,700 দুই সম্ভাব্য মান. 165 00:09:25,700 --> 00:09:30,320 এই ক্ষেত্রে, সত্য বা মিথ্যা, বা বন্ধ, এবং হ্যাঁ অথবা না. 166 00:09:30,320 --> 00:09:35,390 খুব সহজ একটি সহজ একটি উদাহরণ, একটি বুলিয়ান ব্যবহার করে প্রোগ্রাম 167 00:09:35,390 --> 00:09:39,140 এখানে মত প্রকাশের আপ. 168 00:09:39,140 --> 00:09:43,220 >> তাই বুলিয়ান এক্সপ্রেশন করার জন্য দরকারী হতে পারে, আমরা বুলিয়ান অপারেটর আছে. 169 00:09:43,220 --> 00:09:48,920 এই ব্যবহার করা যেতে পারে অপারেটরদের হয় নির্দিষ্ট মান তুলনা. 170 00:09:48,920 --> 00:09:52,820 সুতরাং আমরা আছে এবং বা না সমান, কম কম বা তার চেয়ে অনেক বেশী, সমান বা 171 00:09:52,820 --> 00:09:55,130 সমান, এবং কম তুলনায় বা তার অধিক. 172 00:09:55,130 --> 00:09:59,060 কিন্তু এই অপারেটর খুব দরকারী নয় আমরা তাদেরকে একত্রিত করতে পারে না, যদি না 173 00:09:59,060 --> 00:10:00,320 শর্ত. 174 00:10:00,320 --> 00:10:04,370 >> তাই আপনাকে বলছি গোড়া থেকে মনে রাখতে পারে এবং আপনার পি থেকে আমরা যে সেট 175 00:10:04,370 --> 00:10:05,400 শর্ত ছিল. 176 00:10:05,400 --> 00:10:09,710 তারা কাটাচামচ মত, মূলত, হয় আপনার প্রোগ্রাম যুক্তি যে 177 00:10:09,710 --> 00:10:12,670 কিনা তার উপর নির্ভর করে executes একটি শর্ত পূরণ করা হয়. 178 00:10:12,670 --> 00:10:18,150 আমরা যে অবস্থার তাই এক এই কোর্সে অনেক বার ব্যবহার করা হয় 179 00:10:18,150 --> 00:10:21,470 অন্যথায়, যদি, এবং অন্য শর্ত, যদি. 180 00:10:21,470 --> 00:10:24,060 >> এখানে কিভাবে একটি উদাহরণ আপনি যে ব্যবহার করতে পারে. 181 00:10:24,060 --> 00:10:28,430 যে কেউ এর মধ্যে পার্থক্য কি জানেন না শুধু বিবৃতি সব যদি ব্যবহার করে 182 00:10:28,430 --> 00:10:32,530 যদি, অন্য আয়াত নিচে উপায়, যদি, এবং অন্য মিলিত? 183 00:10:32,530 --> 00:10:33,013 হ্যাঁ? 184 00:10:33,013 --> 00:10:34,263 >> শ্রোতা: [শ্রবণাতীত]. 185 00:10:34,263 --> 00:10:40,741 186 00:10:40,741 --> 00:10:42,160 >> বক্তা 1: ঠিক. 187 00:10:42,160 --> 00:10:50,210 তাই আমি যদি এই সকল উপায় উপায়, এমনকি এই অবস্থা আয় যদি 188 00:10:50,210 --> 00:10:52,800 সত্য, এটা এখনও অব্যাহত থাকবে পরবর্তী দুই পরীক্ষা. 189 00:10:52,800 --> 00:11:00,120 , যেহেতু অন্য একটি যদি একটি অন্য সঙ্গে বিবৃতি, এক ফেরৎ সত্য যদি, 190 00:11:00,120 --> 00:11:02,640 অন্যদের পরীক্ষা করা হয় না. 191 00:11:02,640 --> 00:11:05,955 যে সম্পর্কে কোন প্রশ্ন? 192 00:11:05,955 --> 00:11:06,890 কুল. 193 00:11:06,890 --> 00:11:12,240 >> তাই আপনি যদি একটি অন্য একটি যদি অন্য ব্যবহার আপনি যদি জানেন যে বিবৃতি এটা শুধুমাত্র করতে পারেন 194 00:11:12,240 --> 00:11:14,470 এই ক্ষেত্রে এক হতে হবে. 195 00:11:14,470 --> 00:11:21,550 এক্স কম 0 তাই আপনি যদি আমরা এটা জানি, স্পষ্টভাবে করা যাচ্ছে না 196 00:11:21,550 --> 00:11:22,890 0 থেকে. 197 00:11:22,890 --> 00:11:26,940 198 00:11:26,940 --> 00:11:31,480 >> এর পরে, অন্য বিল্ডিং ব্লক আমরা শিখেছি loops যে হয়. 199 00:11:31,480 --> 00:11:33,310 আমরা loops তিন ধরনের আছে. 200 00:11:33,310 --> 00:11:35,830 Loops জন্য, যখন loops, এবং যখন loops না. 201 00:11:35,830 --> 00:11:38,730 এবং সাধারণত, আপনি যখন নিচে বসতে কিছু লিখুন, আপনি কি ঠিক আছে 202 00:11:38,730 --> 00:11:40,060 আপনি ব্যবহার করতে চান তিনটি যা. 203 00:11:40,060 --> 00:11:41,900 তাই কিভাবে আমরা যা তা স্থির? 204 00:11:41,900 --> 00:11:44,920 205 00:11:44,920 --> 00:11:48,790 >> আমরা জানি যদি আমরা সাধারণত লুপ জন্য একটি ব্যবহার কতবার আমরা বারবার করতে চান 206 00:11:48,790 --> 00:11:53,650 কিছু মাধ্যমে বা কিভাবে অনেক বার আমরা একটি কাজ করতে চান. 207 00:11:53,650 --> 00:11:58,830 আমরা কিছু প্রয়োজন হলে আমরা যখন loops ব্যবহার শর্ত চলমান রাখা সত্য হতে পারে. 208 00:11:58,830 --> 00:12:03,730 এবং আমরা অনুরূপ যখন না ব্যবহার যখন, কিন্তু আমরা আমাদের কোড এ চালাতে চান 209 00:12:03,730 --> 00:12:04,880 অন্তত এক সময়. 210 00:12:04,880 --> 00:12:09,410 >> বিক্ষোভ হয় যাই হোক না কেন, তাই না, যখন হবে সবসময় অন্তত এক সময় চালানো. 211 00:12:09,410 --> 00:12:13,120 , যেহেতু সময় সঙ্গে, এটা এ সব যদি চালাতে না পারে 212 00:12:13,120 --> 00:12:15,490 শর্ত সন্তুষ্ট না হয়. 213 00:12:15,490 --> 00:12:16,740 যে কোন প্রশ্ন? 214 00:12:16,740 --> 00:12:20,480 215 00:12:20,480 --> 00:12:22,860 >> লুপ এর জন্য তাই কাঠামো. 216 00:12:22,860 --> 00:12:23,620 আপনি যদি না এই সব দেখা যায়. 217 00:12:23,620 --> 00:12:25,320 আপনি এটি আরম্ভ. 218 00:12:25,320 --> 00:12:26,600 আপনি অবস্থার কিছু আছে. 219 00:12:26,600 --> 00:12:32,340 উদাহরণস্বরূপ, আমরা আরম্ভ হতে পারে হিসাবে জন্য আমি 0 সমান. 220 00:12:32,340 --> 00:12:34,040 আমি কম 10. 221 00:12:34,040 --> 00:12:35,442 এবং আমি ++. 222 00:12:35,442 --> 00:12:39,010 আমরা সম্পন্ন করেছি যে অত্যন্ত সহজ এক. 223 00:12:39,010 --> 00:12:42,210 >> যখন একটি লুপ জন্য, একভাবে, আপনি আরম্ভের কিছু আছে, 224 00:12:42,210 --> 00:12:44,980 অবস্থার কিছু ধরনের, এবং আপডেট কিছু. 225 00:12:44,980 --> 00:12:51,990 সুতরাং আমরা লুপ জন্য আমাদের বাস্তবায়ন করতে পারেন যখন একটি লুপ হিসাবে এই ব্যবহার করে. 226 00:12:51,990 --> 00:12:56,000 এবং একইভাবে একটি বিক্ষোভ যখন লুপ সঙ্গে, আমরা কিছু আরম্ভের থাকতে পারে, 227 00:12:56,000 --> 00:12:58,640 কিছু চালানো এটি আপডেট, এবং তারপর পরীক্ষা. 228 00:12:58,640 --> 00:13:03,500 229 00:13:03,500 --> 00:13:05,140 >> তাই এখন কাজ করে. 230 00:13:05,140 --> 00:13:06,460 আমরা একসাথে সবকিছু করা. 231 00:13:06,460 --> 00:13:10,140 আমরা কিছু লিখতে চান হতে পারে ফাংশন ধরনের. 232 00:13:10,140 --> 00:13:12,790 প্রচলিত ফাংশন যে আপনি পারে ইতিমধ্যে দেখা হল প্রধান. 233 00:13:12,790 --> 00:13:13,770 প্রধান একটি ফাংশন. 234 00:13:13,770 --> 00:13:16,160 এটি একটি রিটার্ন টাইপ, কোন int আছে. 235 00:13:16,160 --> 00:13:18,470 এটা প্রধান একটি ফাংশন নাম, আছে. 236 00:13:18,470 --> 00:13:20,810 এবং এটা আর্গুমেন্ট, argc এবং argv আছে. 237 00:13:20,810 --> 00:13:24,040 তাই প্রধান ঠিক একটি ফাংশন. 238 00:13:24,040 --> 00:13:27,230 >> আপনি ব্যবহৃত হতে পারে অন্যান্য কার্যাবলী, , printf printf, একটি ফাংশন হয় 239 00:13:27,230 --> 00:13:29,330 GetInt, toupper,. 240 00:13:29,330 --> 00:13:32,010 কিন্তু এই হয়েছে এরকম আমাদের জন্য প্রয়োগ 241 00:13:32,010 --> 00:13:33,270 লাইব্রেরি কিছু. 242 00:13:33,270 --> 00:13:37,400 আপনি যদি না সহ মনে রাখবেন এই CS50.h, লাইব্রেরী বা 243 00:13:37,400 --> 00:13:38,510 স্ট্যান্ডার্ড ইনপুট / আউটপুট লাইব্রেরি. 244 00:13:38,510 --> 00:13:39,200 হ্যাঁ, প্রশ্ন আছে? 245 00:13:39,200 --> 00:13:41,610 >> শ্রোতা: গ মাত্র সহজাত প্রধান হয়? 246 00:13:41,610 --> 00:13:44,740 এটা কোন ধরনের [শ্রবণাতীত] কি? 247 00:13:44,740 --> 00:13:47,370 >> বক্তা 1: প্রশ্ন প্রধান যদি গ মধ্যে অন্তর্নিহিত. 248 00:13:47,370 --> 00:13:51,460 এবং হ্যাঁ, সব ফাংশন একটি প্রধান ফাংশন আছে. 249 00:13:51,460 --> 00:13:55,290 এটা কোন ধরনের কম্পিউটারের জন্য এর প্রয়োজন যেখানে শুরু জানি 250 00:13:55,290 --> 00:13:55,993 কোড চলমান. 251 00:13:55,993 --> 00:13:58,108 >> শ্রোতা: তাই আপনি যদি হবে না [শ্রবণাতীত]? 252 00:13:58,108 --> 00:13:59,480 >> বক্তা 1: নং 253 00:13:59,480 --> 00:14:00,760 অন্য কোন প্রশ্ন? 254 00:14:00,760 --> 00:14:03,430 255 00:14:03,430 --> 00:14:04,770 কুল. 256 00:14:04,770 --> 00:14:08,050 আপনি একটি ফাংশন ব্যবহার করতে পারেন, তাই ঠিক মত যে আপনার জন্য লেখা, আপনি যা করতে পারেন 257 00:14:08,050 --> 00:14:10,380 আপনার নিজস্ব ফাংশন লিখুন. 258 00:14:10,380 --> 00:14:17,050 এই যে কেউ হতে পারে একটি ফাংশন ভলিউম নিরূপণ করা আছে 259 00:14:17,050 --> 00:14:18,395 উদাহরণস্বরূপ একটি প্রশ্ন, এর. 260 00:14:18,395 --> 00:14:21,300 261 00:14:21,300 --> 00:14:29,500 একটি রিটার্ন টাইপ এই ক্ষেত্রে, এখানে আছে কোন int, আমাদের ফাংশন নাম q এবং আমাদের 262 00:14:29,500 --> 00:14:31,360 পরামিতি তালিকা. 263 00:14:31,360 --> 00:14:34,550 >> এবং যদি আপনি তথ্য লিখতে হবে দয়া করে নোট আপনি চান পরামিতি ধরণ 264 00:14:34,550 --> 00:14:38,660 ব্যবহার বা ফাংশন না অন্য কি ধরনের জানা 265 00:14:38,660 --> 00:14:41,650 পরামিতি আমি গ্রহণ করা উচিত. 266 00:14:41,650 --> 00:14:48,110 সুতরাং, এই ক্ষেত্রে, আমরা চাই আমাদের ইনপুট হিসাবে একটি পূর্ণসংখ্যা. 267 00:14:48,110 --> 00:14:50,390 তাই কেন আমরা ফাংশন ব্যবহার করতে চাইবেন? 268 00:14:50,390 --> 00:14:52,800 >> প্রথম সব, প্রতিষ্ঠানের জন্য মহান. 269 00:14:52,800 --> 00:14:56,350 তারা আপনার কোড ভেঙ্গে সাহায্য আরো অংশ সংগঠিত এবং 270 00:14:56,350 --> 00:14:57,960 এটি সহজ পড়া. 271 00:14:57,960 --> 00:14:59,760 সরলীকরণ. 272 00:14:59,760 --> 00:15:01,740 এই নকশা জন্য ভাল. 273 00:15:01,740 --> 00:15:04,570 আপনি একটি কোড টুকরা পড়া হয়ে গেলে এবং প্রধান ফাংশন, সত্যিই 274 00:15:04,570 --> 00:15:07,750 সত্যিই দীর্ঘ, এটা কঠিন হতে পারে কি ঘটছে তা সম্পর্কে কারণ. 275 00:15:07,750 --> 00:15:11,710 তাই আপনি যদি ফাংশন মধ্যে এটি ভেঙ্গে, এটা পড়তে সহজ হতে পারে. 276 00:15:11,710 --> 00:15:12,750 এবং পুনরায় ক্ষমতা. 277 00:15:12,750 --> 00:15:16,940 আপনি কোড একটি খণ্ড আছে হচ্ছে যে বলা বা একাধিক বার চালানোর জন্য, 278 00:15:16,940 --> 00:15:20,690 পরিবর্তে যে কোড 10 বার rewriting এর আপনার প্রধান ফাংশন, আপনি হতে পারে 279 00:15:20,690 --> 00:15:21,440 এটি পুনরায় ব্যবহার করতে চান. 280 00:15:21,440 --> 00:15:25,740 এবং তারপর প্রত্যেক সময় আপনি যে ব্যবহার করতে হবে কোড টুকরা, ফাংশন কল. 281 00:15:25,740 --> 00:15:30,550 282 00:15:30,550 --> 00:15:35,380 >> তাই এখন আমরা ফিরে যাও স্ক্র্যাচ মনে রাখবেন, আমরা, কয়েক ধারণা সম্পর্কে কথা বলত 283 00:15:35,380 --> 00:15:37,680 যা এক থ্রেডিং করা হয়. 284 00:15:37,680 --> 00:15:41,120 থ্রেড একাধিক ধারণা কোড ক্রমের 285 00:15:41,120 --> 00:15:43,040 একই সময়ে নির্বাহ. 286 00:15:43,040 --> 00:15:47,490 দায়ূদ যেখানে এক দিন ফিরে মনে আপনি যদি না এর সংখ্যা গণনা 287 00:15:47,490 --> 00:15:48,440 রুমে মানুষ. 288 00:15:48,440 --> 00:15:50,550 >> মূলত, কি চালু ছিল উপর আপনি না সব ছিল 289 00:15:50,550 --> 00:15:52,370 আলাদা থ্রেড চলমান. 290 00:15:52,370 --> 00:15:55,540 এবং যারা থ্রেড একসঙ্গে আসছে উত্তর কিছু পেতে. 291 00:15:55,540 --> 00:15:58,890 একইভাবে, ভূত, আপনি যখন আছে একাধিক sprites, আপনি হতে পারে 292 00:15:58,890 --> 00:16:01,070 একটি বিড়াল এবং একটি কুকুর আছে. 293 00:16:01,070 --> 00:16:08,770 এবং তারা একযোগে হতে হবে তাদের নিজস্ব স্ক্রিপ্ট চলমান. 294 00:16:08,770 --> 00:16:10,020 যে থ্রেডিং এর একটি উদাহরণ. 295 00:16:10,020 --> 00:16:12,860 296 00:16:12,860 --> 00:16:18,000 >> এবং অন্যান্য ধারণা ছিল যে স্ক্র্যাচ চালু ঘটনা ছিল. 297 00:16:18,000 --> 00:16:22,550 এবং ঘটনা যখন একাধিক অংশ আপনার কোড একে অপরের সাথে যোগাযোগ. 298 00:16:22,550 --> 00:16:26,840 আপনি যখন ব্যবহৃত ভূত, এই ছিল সম্প্রচার নিয়ন্ত্রণ এবং যখন আমি 299 00:16:26,840 --> 00:16:29,500 ব্লক পান. 300 00:16:29,500 --> 00:16:35,170 >> এবং এছাড়াও, সমস্যা সেট 4, আমরা দেখেছি পাশাপাশি ঘটনা একটি সামান্য বিট. 301 00:16:35,170 --> 00:16:38,250 আপনি না ব্যবহার করা হতে পারে Gevent লাইব্রেরি. 302 00:16:38,250 --> 00:16:42,450 এবং একটি ফাংশন ছিল waitForClick যা আপনি অপেক্ষা ছিল 303 00:16:42,450 --> 00:16:44,300 ব্যবহারকারী ক্লিক করার জন্য. 304 00:16:44,300 --> 00:16:47,870 এবং আপনার ক্লিক করুন, এই ক্ষেত্রে, হবে ক্লিকের জন্য ইভেন্ট এবং অপেক্ষা করুন আপনার হয় 305 00:16:47,870 --> 00:16:49,120 ইভেন্ট হ্যান্ডলার. 306 00:16:49,120 --> 00:16:53,690 307 00:16:53,690 --> 00:16:58,630 >> এবং এছাড়াও, আপনার psets জুড়ে চলমান এবং আপনার psets কাজ, আপনি 308 00:16:58,630 --> 00:17:01,920 সংস্পর্শে আসতে পারে এই কমান্ড কিছু. 309 00:17:01,920 --> 00:17:05,579 আপনি এই টাইপ কি আপনার টার্মিনাল উইন্ডোতে বা যাই হোক না কেন উইন্ডো 310 00:17:05,579 --> 00:17:12,119 যে, আপনার গ্রাম সম্পাদনা দেখায় মূলত, আপনার কম্পিউটার নেভিগেট. 311 00:17:12,119 --> 00:17:19,440 >> সুতরাং উদাহরণস্বরূপ, নির্মিত LS তালিকা একটি ডিরেক্টরির বিষয়বস্তু. 312 00:17:19,440 --> 00:17:22,510 ডিরেক্টরি একটি নতুন ফোল্ডার তৈরি করে না. 313 00:17:22,510 --> 00:17:24,819 সিডি, পরিবর্তন করুন. 314 00:17:24,819 --> 00:17:28,400 Rm, অপসারণ, একটি ফাইল মুছে ফেলা অথবা কিছু ডিরেক্টরি. 315 00:17:28,400 --> 00:17:31,050 এবং তারপর ডিরেক্টরি অপসারণ একটি ডিরেক্টরি সরিয়ে ফেলা হয়. 316 00:17:31,050 --> 00:17:32,300 >> শ্রোতা: [শ্রবণাতীত]? 317 00:17:32,300 --> 00:17:36,978 318 00:17:36,978 --> 00:17:38,370 >> বক্তা 1: হ্যাঁ, নিশ্চিত. 319 00:17:38,370 --> 00:17:42,530 320 00:17:42,530 --> 00:17:46,040 দুঃখিত, প্রশ্ন ছিল আপনি যদি এই নির্বাণ সুপারিশ করবে 321 00:17:46,040 --> 00:17:48,840 Cheat শীট উপর. 322 00:17:48,840 --> 00:17:49,440 এটা সাহায্য করতে পারে. 323 00:17:49,440 --> 00:17:51,490 আপনি রুম আছে, আপনি এটা করা যাবে. 324 00:17:51,490 --> 00:17:56,170 এটা ঠিক যথেষ্ট সাধারণত ভাল যখন আপনি এটি ব্যবহার, কারণ মনে রাখা 325 00:17:56,170 --> 00:17:59,060 আপনি করতে চাইবেন শুধু তা কণ্ঠস্থ আছে. 326 00:17:59,060 --> 00:18:02,750 যে আপনার জীবন অনেক সহজ করতে হবে. 327 00:18:02,750 --> 00:18:04,000 আমি আপনার প্রশ্নের উত্তর দিতে হয়নি? 328 00:18:04,000 --> 00:18:10,528 329 00:18:10,528 --> 00:18:14,290 >> সুতরাং এখন, আমরা অল্প কথা বলত লাইব্রেরি সম্পর্কে সংক্ষিপ্তভাবে. 330 00:18:14,290 --> 00:18:18,570 কিন্তু দুই প্রধান বেশী আমরা চলেছি যে এ পর্যন্ত কোর্স আছে ব্যবহার করে 331 00:18:18,570 --> 00:18:20,860 স্ট্যান্ডার্ড ইনপুট / আউটপুট এবং CS50. 332 00:18:20,860 --> 00:18:25,410 কি ধরনের জিনিস অন্তর্ভুক্ত করা হয় স্ট্যান্ডার্ড ইনপুট / আউটপুট লাইব্রেরি? 333 00:18:25,410 --> 00:18:28,410 >> হ্যাঁ, এ পর্যন্ত আমরা printf ব্যবহার করেছি. 334 00:18:28,410 --> 00:18:31,150 CS50 মধ্যে, আমরা GetInt ব্যবহার করেছি এবং GetString. 335 00:18:31,150 --> 00:18:37,200 এবং তথ্য টাইপ স্ট্রিং ঘটবে এই CS50 লাইব্রেরি ঘোষণা করা হবে. 336 00:18:37,200 --> 00:18:40,250 আমরা প্রায় গভীরতার মধ্যে আরো একটু কথা বলতে পারবেন কিভাবে লাইব্রেরি কাজ এবং কিভাবে তারা 337 00:18:40,250 --> 00:18:41,870 আপনার কোড বাকি সঙ্গে যোগাযোগ করার জন্য. 338 00:18:41,870 --> 00:18:46,220 কিন্তু যারা দুই প্রধান ওগুলো যে আমরা এ পর্যন্ত এ সংস্পর্শে আসা আছে 339 00:18:46,220 --> 00:18:48,430 অবশ্যই. 340 00:18:48,430 --> 00:18:50,050 >> ধরন. 341 00:18:50,050 --> 00:18:58,120 এই কত মনে রাখা ভাল প্রতিটি টাইপ কিভাবে বা প্রতিনিধিত্ব করা হয় 342 00:18:58,120 --> 00:19:02,840 অনেক বাইট টাইপ প্রতিটি requires-- 343 00:19:02,840 --> 00:19:04,990 কোন int 4 বাইট; গৃহস্থালির কাজ, 1 বাইট. 344 00:19:04,990 --> 00:19:06,550 ভাসা 4 বাইট. 345 00:19:06,550 --> 00:19:07,782 একটি ডবল কি? 346 00:19:07,782 --> 00:19:09,032 >> শ্রোতা: [শ্রবণাতীত]. 347 00:19:09,032 --> 00:19:11,398 348 00:19:11,398 --> 00:19:16,240 >> বক্তা 1: হ্যাঁ, তাই একটি float কিন্তু দ্বিগুণ. 349 00:19:16,240 --> 00:19:17,150 কি একটি দীর্ঘ সম্পর্কে? 350 00:19:17,150 --> 00:19:18,400 >> শ্রোতা: [শ্রবণাতীত]. 351 00:19:18,400 --> 00:19:21,614 352 00:19:21,614 --> 00:19:24,680 >> বক্তা 1: ঠিক আছে. 353 00:19:24,680 --> 00:19:25,410 একটি দীর্ঘ কি? 354 00:19:25,410 --> 00:19:26,660 >> শ্রোতা: [শ্রবণাতীত]. 355 00:19:26,660 --> 00:19:29,400 356 00:19:29,400 --> 00:19:31,450 >> বক্তা 1: হ্যাঁ, কোন int দ্বিগুন. 357 00:19:31,450 --> 00:19:34,240 358 00:19:34,240 --> 00:19:34,705 হ্যাঁ. 359 00:19:34,705 --> 00:19:36,100 >> শ্রোতা: [শ্রবণাতীত]. 360 00:19:36,100 --> 00:19:38,030 >> বক্তা 1: দীর্ঘ [শ্রবণাতীত]. 361 00:19:38,030 --> 00:19:41,860 এবং তারপর একটি দীর্ঘ দীর্ঘ যে ডবল হয়. 362 00:19:41,860 --> 00:19:42,814 >> শ্রোতা: না, না. 363 00:19:42,814 --> 00:19:47,107 একটি দীর্ঘ ঠিক কোন int হয়. 364 00:19:47,107 --> 00:19:50,910 এটা আর্কিটেকচারের উপর নির্ভর করে আগে [শ্রবণাতীত] 365 00:19:50,910 --> 00:19:52,922 এবং কোন int একই আকার আছে. 366 00:19:52,922 --> 00:19:54,172 [শ্রবণাতীত]. 367 00:19:54,172 --> 00:19:58,841 368 00:19:58,841 --> 00:20:00,920 >> বক্তা 1: তাই একটি দীর্ঘ এবং কোন int একই. 369 00:20:00,920 --> 00:20:02,943 এবং তারপর একটি দীর্ঘ দীর্ঘ ডবল কোন int হয়. 370 00:20:02,943 --> 00:20:03,910 কুল. 371 00:20:03,910 --> 00:20:05,550 এবং তারপর, গত টাইপ কি? 372 00:20:05,550 --> 00:20:06,510 >> শ্রোতা: পয়েন্টার. 373 00:20:06,510 --> 00:20:10,350 >> বক্তা 1: হ্যাঁ, তাই আমরা শিখেছি পয়েন্টার সম্পর্কে একটি সামান্য বিট. 374 00:20:10,350 --> 00:20:14,015 এবং নির্বিশেষে একটি পয়েন্টার কি এটা চাচ্ছি প্রতি নির্দেশ একটি গৃহস্থালি তারকা হতে পারে 375 00:20:14,015 --> 00:20:15,880 বা কোন int star-- 376 00:20:15,880 --> 00:20:20,530 এটা সবসময় একটি পয়েন্টার 4 বাইট. 377 00:20:20,530 --> 00:20:21,633 যে সম্পর্কে প্রশ্ন? 378 00:20:21,633 --> 00:20:22,116 হ্যাঁ? 379 00:20:22,116 --> 00:20:24,531 >> শ্রোতা: [শ্রবণাতীত]? 380 00:20:24,531 --> 00:20:29,530 >> বক্তা 1: তাই একটি দীর্ঘ এবং কোন int হয় এই CS50 অ্যাপ্লায়েন্স একই. 381 00:20:29,530 --> 00:20:32,302 >> শ্রোতা: যন্ত্রপাতি সম্পূর্ণ হয় বিনিমেয়. 382 00:20:32,302 --> 00:20:33,510 >> বক্তা 1: হ্যাঁ. 383 00:20:33,510 --> 00:20:36,610 আমি তখন একটি দীর্ঘ দীর্ঘ ডবল কোন int হয়. 384 00:20:36,610 --> 00:20:39,250 >> শ্রোতা: এই 32 বিট? 385 00:20:39,250 --> 00:20:40,620 >> বক্তা 1: 32 বিট, হাঁ. 386 00:20:40,620 --> 00:20:43,572 >> AUDIENCE: তাই [শ্রবণাতীত]? 387 00:20:43,572 --> 00:20:46,790 >> বক্তা 1: হ্যাঁ, যদি না স্পষ্টভাবে, আপনি বলে 388 00:20:46,790 --> 00:20:47,870 একটি 32 বিট অনুমান করা উচিত. 389 00:20:47,870 --> 00:20:50,040 >> শ্রোতা: এটা কিছু বলতে হবে একটি অভিমানী মত 390 00:20:50,040 --> 00:20:51,498 প্রয়োগ মত স্থাপত্য. 391 00:20:51,498 --> 00:20:58,800 392 00:20:58,800 --> 00:21:01,710 64 বিট, শুধুমাত্র জিনিস যে পরিবর্তন জন্য longs এবং পয়েন্টার দেয়া হল. 393 00:21:01,710 --> 00:21:05,614 তারা উভয় [শ্রবণাতীত]. 394 00:21:05,614 --> 00:21:06,590 >> বক্তা 1: হ্যাঁ? 395 00:21:06,590 --> 00:21:07,566 >> শ্রোতা: প্রশ্ন. 396 00:21:07,566 --> 00:21:10,982 অনুশীলন ক্যুইজ উপর সুতরাং, এটি একটি স্বাক্ষরবিহীন int সম্পর্কে জিজ্ঞেস করে. 397 00:21:10,982 --> 00:21:15,374 সুতরাং কিভাবে নির্ধারিত হবে কোন int [শ্রবণাতীত] থেকে? 398 00:21:15,374 --> 00:21:18,140 >> বক্তা 1: একটি স্বাক্ষরবিহীন এছাড়াও 4 বাইট. 399 00:21:18,140 --> 00:21:21,172 কিন্তু একটি সাইন সম্পর্কে বিভিন্ন কি int এবং একটি স্বাক্ষরবিহীন int? 400 00:21:21,172 --> 00:21:22,422 >> শ্রোতা: [শ্রবণাতীত]. 401 00:21:22,422 --> 00:21:24,868 402 00:21:24,868 --> 00:21:25,630 >> বক্তা 1: রাইট. 403 00:21:25,630 --> 00:21:27,570 এক নেতিবাচক মান উপস্থাপন করতে পারেন. 404 00:21:27,570 --> 00:21:28,580 কিন্তু কিভাবে এটা যে কি না? 405 00:21:28,580 --> 00:21:30,536 >> শ্রোতা: [শ্রবণাতীত]. 406 00:21:30,536 --> 00:21:36,370 >> বক্তা 1: হ্যাঁ, এটি 1 সংরক্ষণ বিট সাইন প্রতিনিধিত্ব করতে. 407 00:21:36,370 --> 00:21:40,910 408 00:21:40,910 --> 00:21:45,040 সাইন ইন এক বিট আছে যে সাইন প্রতিনিধিত্ব করে. 409 00:21:45,040 --> 00:21:48,886 এবং স্বাক্ষরবিহীন শুধু সব ধনাত্মক হয়. 410 00:21:48,886 --> 00:21:50,365 >> শ্রোতা: ঠিক আছে. 411 00:21:50,365 --> 00:21:54,230 তাই আপনি যদি একটি ডবল বলে যে একটি float দ্বিগুণ আকার? 412 00:21:54,230 --> 00:21:58,202 >> বক্তা 1: ডবল দ্বিগুণ একটি float এর সাইজ, হ্যাঁ. 413 00:21:58,202 --> 00:22:01,639 >> শ্রোতা: একটি পয়েন্টার কিভাবে একটি দীর্ঘ দীর্ঘ [শ্রবণাতীত]? 414 00:22:01,639 --> 00:22:06,058 415 00:22:06,058 --> 00:22:10,870 >> বক্তা 1: কিভাবে তাই প্রশ্ন হল একটি লম্বা দীর্ঘ পয়েন্টার 416 00:22:10,870 --> 00:22:13,800 কিভাবে যে শুধুমাত্র চার বাইট যখন তার 8 বাইট একটি দীর্ঘ দীর্ঘ. 417 00:22:13,800 --> 00:22:17,310 তাই একটি পয়েন্টার মনে রাখবেন, মূলত, খুব বেস মান. 418 00:22:17,310 --> 00:22:19,046 >> শ্রোতা: [শ্রবণাতীত]. 419 00:22:19,046 --> 00:22:22,670 >> বক্তা 1: হ্যাঁ, তাই একটি পয়েন্টার শুধু একটি মেমরি অবস্থান. 420 00:22:22,670 --> 00:22:28,040 সুতরাং এটা কতটা স্থান কোন ব্যাপার না যে পয়েন্টার প্রতি নির্দেশ করা হয়. 421 00:22:28,040 --> 00:22:32,060 এটা শুধুমাত্র ট্র্যাক রাখা 4 বাইট প্রয়োজন যে মেমরি অবস্থান. 422 00:22:32,060 --> 00:22:34,760 423 00:22:34,760 --> 00:22:36,010 অন্য কোন প্রশ্ন? 424 00:22:36,010 --> 00:22:39,800 425 00:22:39,800 --> 00:22:41,050 কুল. 426 00:22:41,050 --> 00:22:42,920 427 00:22:42,920 --> 00:22:47,460 >> তাই শেষ জিনিস আমি মান আউটপুট. 428 00:22:47,460 --> 00:22:51,020 যদি আপনি ঘন ঘন তাদের ব্যবহার করা উচিত আপনি মনে করতে পারেন যে যথেষ্ট. 429 00:22:51,020 --> 00:22:54,800 আমরা ব্যবহার কিন্তু যখন এই হয় printf,, যেমন. 430 00:22:54,800 --> 00:22:59,260 এবং আমরা এই স্থানধারক আছে বিন্যাস কোড বলা হয়. 431 00:22:59,260 --> 00:23:03,910 >> তাই int জন্য শতাংশ গ গৃহস্থালির কাজ, শতাংশ আমি, এবং আমরা শতাংশ ঘ ব্যবহার করতে পারেন. 432 00:23:03,910 --> 00:23:05,130 এটা একই জিনিস. 433 00:23:05,130 --> 00:23:08,200 কিন্তু, সাধারণত, মধ্যে CS50 আমরা শতাংশ আমি ব্যবহার করার চেষ্টা করুন. 434 00:23:08,200 --> 00:23:09,860 Float জন্য শতাংশ চ. 435 00:23:09,860 --> 00:23:15,620 দীর্ঘ দীর্ঘ জন্য শতাংশ LD এবং স্ট্রিং জন্য শতাংশ এর. 436 00:23:15,620 --> 00:23:18,550 >> একইভাবে, আমরা কয়েক ব্যবহার করে এই পালাবার ক্রম. 437 00:23:18,550 --> 00:23:22,431 উদাহরণস্বরূপ, ব্যাকস্ল্যাশ জন্য এন নতুন লাইন জন্য. 438 00:23:22,431 --> 00:23:26,910 আপনি এই বিন্যাস করছেন জন্য শুধু মুদ্রণ চ জন্য আপনার কোড. 439 00:23:26,910 --> 00:23:27,260 হ্যাঁ? 440 00:23:27,260 --> 00:23:28,906 >> শ্রোতা: শতাংশ ঘ কি? 441 00:23:28,906 --> 00:23:31,850 >> বক্তা 1: তাই প্রশ্ন শতাংশ ঘ জন্য কি করা হয়? 442 00:23:31,850 --> 00:23:33,270 শতাংশ ঘ ints জন্য হয়. 443 00:23:33,270 --> 00:23:37,392 শতাংশ ঘ এবং শতাংশ আমি একই. 444 00:23:37,392 --> 00:23:41,130 >> শ্রোতা: মধ্যে পার্থক্য কি ব্যাকস্ল্যাশ এন ও ব্যাকস্ল্যাশ আর? 445 00:23:41,130 --> 00:23:45,300 >> বক্তা 1: তাই প্রশ্ন কি হয় নেতিবাচক প্রতিক্রিয়া n এবং এর মধ্যে পার্থক্য 446 00:23:45,300 --> 00:23:48,615 নেতিবাচক প্রতিক্রিয়া আর? 447 00:23:48,615 --> 00:23:50,906 আমি ব্যাকস্ল্যাশ আর মনে হচ্ছে ÑÑ 448 00:23:50,906 --> 00:23:54,340 >> AUDIENCE: তাই ব্যাকস্ল্যাশ আর ঠিক বোঝা লাইনের শুরুতে ফেরৎ 449 00:23:54,340 --> 00:23:56,670 আসলে একটি নতুন লাইন যাচ্ছে না. 450 00:23:56,670 --> 00:24:01,000 তাই আপনি যদি একটি ব্যাকস্ল্যাশ R মুদ্রণ এবং আপনি যদি লাইনের শুরুতে ফিরে যান 451 00:24:01,000 --> 00:24:04,005 তারপর আপনি আপনার মুছে ফেলা, আরো স্টাফ মুদ্রণ ইতিমধ্যে যে উপাদান 452 00:24:04,005 --> 00:24:04,390 [শ্রবণাতীত]. 453 00:24:04,390 --> 00:24:06,725 যেহেতু, এন আসলে একটি নতুন যায় লাইন এবং [শ্রবণাতীত] যায়. 454 00:24:06,725 --> 00:24:10,525 455 00:24:10,525 --> 00:24:13,915 >> বক্তা 1: আচ্ছা, অন্য কোন প্রশ্ন? 456 00:24:13,915 --> 00:24:15,430 ঠিক আছে. 457 00:24:15,430 --> 00:24:18,617 আমি এটা বন্ধ হাত করা যাচ্ছে না অবিরত হবে যারা ড্যান. 458 00:24:18,617 --> 00:24:25,078 >> [সাধুবাদ] 459 00:24:25,078 --> 00:25:08,814 460 00:25:08,814 --> 00:25:09,720 >> | DAN: সমস্ত righty. 461 00:25:09,720 --> 00:25:18,590 তাই আমি অন্য চওড়া সম্পর্কে কথা বলা হবে যে বর্গ থেকে ধারণা পরিসীমা 462 00:25:18,590 --> 00:25:23,220 প্রায় দুই সপ্তাহ প্রতিনিধি এবং সপ্তাহে তিন শুরুর বন্ধ শুরু 463 00:25:23,220 --> 00:25:28,690 শুধু একটি উপায়, যা ঢালাই, সঙ্গে একটি নির্দিষ্ট ধরনের একটি মান হিসাবে চিকিত্সা 464 00:25:28,690 --> 00:25:30,830 একটি ভিন্ন ধরনের একটি মান. 465 00:25:30,830 --> 00:25:34,110 তাই আমরা অক্ষর সঙ্গে এটা করতে পারেন ints হয়, আপনি ints থেকে floats, এবং 466 00:25:34,110 --> 00:25:35,360 দীর্ঘ longs দুবার. 467 00:25:35,360 --> 00:25:38,170 468 00:25:38,170 --> 00:25:44,500 >> এই সমস্ত জিনিস উপায় হিসাবে ব্যবহার করা যেতে পারে কিছু সাংখ্যিক মান চিকিত্সা 469 00:25:44,500 --> 00:25:48,370 অন্য কিছু হিসাবে বিয়োগ গৃহস্থালির কাজ সাংখ্যিক মান. 470 00:25:48,370 --> 00:25:54,480 কিছু বিষয় এই, এর সঙ্গে আছে তাই আপনি নিক্ষেপ যখন যা আসে অবশ্যই, 471 00:25:54,480 --> 00:25:57,860 আপনি ints থেকে ভাসা ভালো জিনিস. 472 00:25:57,860 --> 00:26:00,500 তাই এই সামান্য অদ্ভুত. 473 00:26:00,500 --> 00:26:03,170 আমরা 1.31 যে একটি float আছে. 474 00:26:03,170 --> 00:26:05,220 আমরা 10,000 দ্বারা এটি সংখ্যাবৃদ্ধি. 475 00:26:05,220 --> 00:26:08,380 এবং তারপর আমরা কোন int হিসাবে এটি মুদ্রণ. 476 00:26:08,380 --> 00:26:09,630 এই আউটপুট কি? 477 00:26:09,630 --> 00:26:11,600 478 00:26:11,600 --> 00:26:14,020 10,000 বার 1.31. 479 00:26:14,020 --> 00:26:18,761 তাই 13,000, অনুমান করা হয় যে? 480 00:26:18,761 --> 00:26:20,685 >> শ্রোতা: আমি এটা 10,000 মনে করি. 481 00:26:20,685 --> 00:26:24,234 >> | DAN: আমি 10,000 দ্বারা গুন করছি আমি এটা ঢালাই করছি আগে. 482 00:26:24,234 --> 00:26:25,202 >> শ্রোতা: ওহ. 483 00:26:25,202 --> 00:26:27,622 সেখানে এক 9 হবে না এবং কিছু 0 নম্বর? 484 00:26:27,622 --> 00:26:29,270 >> | DAN: আপনি কিছু অদ্ভুত সংখ্যা থাকতে পারে. 485 00:26:29,270 --> 00:26:32,410 486 00:26:32,410 --> 00:26:37,670 তাই অধিকার, এটা 1.3 গুণ 10,000 এর. 487 00:26:37,670 --> 00:26:40,040 সুতরাং যে 13,000 এর. 488 00:26:40,040 --> 00:26:41,313 এবং এই অতিরিক্ত weird-- 489 00:26:41,313 --> 00:26:42,160 >> শ্রোতা: 13,100. 490 00:26:42,160 --> 00:26:42,650 >> | DAN: 13,100. 491 00:26:42,650 --> 00:26:44,910 , রব আপনাকে ধন্যবাদ. 492 00:26:44,910 --> 00:26:46,610 এবং এই অতিরিক্ত weirdness-- 493 00:26:46,610 --> 00:26:48,060 এই 9,9-- 494 00:26:48,060 --> 00:26:53,860 কেবল এই সাক্ষাৎকারের কারণ শেষ পর্যন্ত নিচে যেখানে rounding 495 00:26:53,860 --> 00:26:55,394 এটা হবে না. 496 00:26:55,394 --> 00:26:55,871 হ্যাঁ. 497 00:26:55,871 --> 00:26:58,256 >> শ্রোতা: কাস্টিং ঘটবে অন্য কিছু পরে? 498 00:26:58,256 --> 00:27:03,865 >> | DAN: কারণ আমি এটা মুদ্রণ এই আছে এটা আগে এই গুণ আছে 499 00:27:03,865 --> 00:27:05,230 এই সাক্ষাৎকারের আছে. 500 00:27:05,230 --> 00:27:06,140 >> শ্রোতা: [শ্রবণাতীত]. 501 00:27:06,140 --> 00:27:11,350 >> | DAN: আমি এটা প্রথম নিক্ষেপ হবে মনে হয় হাঁ, 10,000, যা হতে হবে. 502 00:27:11,350 --> 00:27:12,610 অন্য কিছু? 503 00:27:12,610 --> 00:27:13,330 কুল. 504 00:27:13,330 --> 00:27:16,344 তাই এই 13.099 হয়. 505 00:27:16,344 --> 00:27:17,840 কেন এই ঘটবে? 506 00:27:17,840 --> 00:27:18,900 অস্পষ্টতা. 507 00:27:18,900 --> 00:27:21,020 >> Floats নিখুঁত হয় না. 508 00:27:21,020 --> 00:27:27,550 তারা শুধুমাত্র একটি সংখ্যা উপস্থাপন করতে পারেন উল্লেখযোগ্য পরিসংখ্যান নির্দিষ্ট সংখ্যক. 509 00:27:27,550 --> 00:27:35,120 আমরা 8 sig ডুমুর প্রিন্ট আউট তাই আপনি যদি এই ভাসা, আমরা একটি ধরনের পেতে 510 00:27:35,120 --> 00:27:36,800 কুদর্শন সংখ্যা. 511 00:27:36,800 --> 00:27:45,580 এবং যে কারণ 1.31 সঠিকভাবে না করতে পারেন সহজ দ্বারা প্রতিনিধিত্ব করা 512 00:27:45,580 --> 00:27:49,000 মেশিন দুটি ক্ষমতা. 513 00:27:49,000 --> 00:27:53,530 এটি নিকটস্থ গ্রহণ শেষ পর্যন্ত তাই যা শেষ পর্যন্ত, অনুমান 514 00:27:53,530 --> 00:27:55,710 একটু কম হচ্ছে. 515 00:27:55,710 --> 00:27:57,730 জানার জন্য? 516 00:27:57,730 --> 00:27:59,110 ঠিক আছে. 517 00:27:59,110 --> 00:28:05,840 >> এখন, সুইচ বিভিন্ন উপায় শর্তাধীন বিবৃতি যেখানে সব কাজ 518 00:28:05,840 --> 00:28:09,900 আমরা একটি একক পরিবর্তনশীল যত্নশীল. 519 00:28:09,900 --> 00:28:16,570 তাই এই বিশেষ উদাহরণ, আমরা আছেন ব্যবহারকারী থেকে একটি পূর্ণসংখ্যা পেয়ে. 520 00:28:16,570 --> 00:28:21,070 এবং তারপর আমরা এ খুঁজছেন যে পূর্ণসংখ্যা কি. 521 00:28:21,070 --> 00:28:23,500 সম্ভবত, এটা সংখ্যা এক এবং চার মধ্যে. 522 00:28:23,500 --> 00:28:24,800 যে জন্য আমরা বলছি কি. 523 00:28:24,800 --> 00:28:28,450 >> তাই আপনি যদি একটি সুইচ করতে পরিবর্তনশীল নাম. 524 00:28:28,450 --> 00:28:34,290 তারপর আপনি সম্ভব ক্ষেত্রে সেট আপ এটা হতে পারে মান. 525 00:28:34,290 --> 00:28:37,730 তাই এক ক্ষেত্রে, এটা কম বলে. 526 00:28:37,730 --> 00:28:41,080 এবং তারপর আপনি খুঁজে পেতে বিরতি সুইচ অবস্থার তাই 527 00:28:41,080 --> 00:28:43,270 আপনি বর্তা না. 528 00:28:43,270 --> 00:28:44,830 >> পরবর্তী ক্ষেত্রেই ইন 529 00:28:44,830 --> 00:28:46,940 তাই মামলা দুটি এবং কেস three-- 530 00:28:46,940 --> 00:28:51,920 এটা ক্ষেত্রে দুই যদি এটা শুধু ড্রপ ডাউন এটা দিয়ে সূচিত হিসাবে প্রথম কোড লাইন 531 00:28:51,920 --> 00:28:55,400 এটি একটি বিরতি উদ্ধার না হওয়া পর্যন্ত তিনটি ক্ষেত্রে. 532 00:28:55,400 --> 00:29:00,430 কারণ আপনি ক্ষেত্রে এক পেতে শুধুমাত্র মুদ্রণ কম কারণ আমি 533 00:29:00,430 --> 00:29:01,890 এখানে এই বিরতি আছে. 534 00:29:01,890 --> 00:29:05,360 আমি যদি, বলে, এই বিরতি উপেক্ষা আমি এই breakaway-- ছুড়ে ফেলে যদি 535 00:29:05,360 --> 00:29:09,740 এটা কম প্রিন্ট হবে, এবং তারপর এটি হবে মধ্যম মুদ্রণ, এবং তারপর এটি ভঙ্গ করা হবে. 536 00:29:09,740 --> 00:29:12,200 >> বিরতি একটি গুরুত্বপূর্ণ অংশ, তাই শর্ত এবং সুইচ 537 00:29:12,200 --> 00:29:14,340 তারা সেখানে উচিত. 538 00:29:14,340 --> 00:29:20,070 স্পষ্টভাবে বিবৃত হয় না যে কোন ক্ষেত্রে ডিফল্ট দ্বারা পরিচালিত হয় 539 00:29:20,070 --> 00:29:26,645 এবং সুইচ ক্ষেত্রে নিক্ষেপ করা উচিত. 540 00:29:26,645 --> 00:29:31,363 >> শ্রোতা: সুতরাং 1, 2, 3, এবং 4 এন হবে? 541 00:29:31,363 --> 00:29:33,310 >> | DAN: এন হতে পারে যে মূল্যবোধ. 542 00:29:33,310 --> 00:29:34,654 হ্যাঁ. 543 00:29:34,654 --> 00:29:35,146 হ্যাঁ? 544 00:29:35,146 --> 00:29:37,606 >> শ্রোতা: সুতরাং আপনি আছে [শ্রবণাতীত] যে? 545 00:29:37,606 --> 00:29:44,002 546 00:29:44,002 --> 00:29:46,830 >> | DAN: তারপর আপনি কম মুদ্রণ, এবং এটা মধ্যম মুদ্রণ, এবং 547 00:29:46,830 --> 00:29:47,400 তারপর এটি ভঙ্গ করা হবে. 548 00:29:47,400 --> 00:29:50,244 >> শ্রোতা: কেন এটা প্রিন্ট হবে মাঝখানে যদি [শ্রবণাতীত]? 549 00:29:50,244 --> 00:29:54,036 550 00:29:54,036 --> 00:30:00,550 >> | DAN: একটি কেস অধীনে তাই সবকিছু একটি বিরতি অধীন পড়ে আগে. 551 00:30:00,550 --> 00:30:09,390 সুতরাং ক্ষেত্রে এক মুদ্রণ নীচে কেস এক এই নিম্নলিখিত মুদ্রণ. 552 00:30:09,390 --> 00:30:09,890 হ্যাঁ? 553 00:30:09,890 --> 00:30:11,140 >> শ্রোতা: [শ্রবণাতীত]? 554 00:30:11,140 --> 00:30:15,890 555 00:30:15,890 --> 00:30:22,170 >> | DAN: সুতরাং এই সংখ্যা মাত্র একটি নির্দিষ্ট হয় মান যে এই পরিবর্তনশীল 556 00:30:22,170 --> 00:30:23,420 অধিকার, গ্রহণ করতে পারেন? 557 00:30:23,420 --> 00:30:26,740 558 00:30:26,740 --> 00:30:28,490 যে জানার জন্য? 559 00:30:28,490 --> 00:30:28,990 হ্যাঁ. 560 00:30:28,990 --> 00:30:31,490 >> শ্রোতা: [শ্রবণাতীত]? 561 00:30:31,490 --> 00:30:34,130 >> | DAN: হ্যাঁ, ক্ষেত্রে দুই প্রিন্ট হবে মধ্যম এবং তারপর বিরতি. 562 00:30:34,130 --> 00:30:35,380 >> শ্রোতা: [শ্রবণাতীত]? 563 00:30:35,380 --> 00:30:37,954 564 00:30:37,954 --> 00:30:40,050 >> | DAN: আমি কোনো মনে? 565 00:30:40,050 --> 00:30:43,855 কি কি ধরনের তথ্য আপনি উপর সুইচ করতে পারেন? 566 00:30:43,855 --> 00:30:46,320 >> শ্রোতা: আপনি সুইচ করতে পারেন কোনো ধরনের তথ্য উপর. 567 00:30:46,320 --> 00:30:50,905 কিন্তু এটি শুধুমাত্র অক্ষর উপর কিছু মানে এবং ints এবং যে মত কাপড়, কারণ 568 00:30:50,905 --> 00:30:55,600 আপনি একটি পয়েন্টার পরিবর্তন উপর করছি যে সত্যিই, না ইন্দ্রিয় না 569 00:30:55,600 --> 00:30:59,555 এটা এমনকি যাক, যদি লোড স্যুইচ উপর আপনি কারণ ফ্লোটিং পয়েন্ট এর যে কি, 570 00:30:59,555 --> 00:31:02,840 স্পষ্টতা, আপনি সত্যিই হবে না যাহাই হউক না কেন যে কাজ করতে চান. 571 00:31:02,840 --> 00:31:07,320 তাই প্রায় কাছাকাছি, শুধু ints এবং যে মত অক্ষর এবং উপাদান. 572 00:31:07,320 --> 00:31:12,360 >> | DAN: আপনি সুস্পষ্ যখন হাঁ, এটা আপনি কি জানেন মান যে, আমি মনে করি, হতে পারে 573 00:31:12,360 --> 00:31:14,250 যে একটি সুইচ আসলে দরকারী. 574 00:31:14,250 --> 00:31:17,094 575 00:31:17,094 --> 00:31:18,990 ভাল? 576 00:31:18,990 --> 00:31:21,370 ঠিক আছে. 577 00:31:21,370 --> 00:31:26,180 >> ব্যাপ্তি একটি ঘোষণা যে পরিসর পরিবর্তনশীল প্রসারিত করে. 578 00:31:26,180 --> 00:31:32,190 আমি এই কোড সামান্য খণ্ড তাই, এটা ত্রুটি পূর্ণ হবে. 579 00:31:32,190 --> 00:31:41,450 এবং কারণ আমি এই int ঘোষণা করা হয় আমি লুপ জন্য এই সুযোগ মধ্যে. 580 00:31:41,450 --> 00:31:46,390 এবং তারপর আমি যে উল্লেখ করার চেষ্টা করছি আমি লুপ সুযোগ জন্য যে বাইরে. 581 00:31:46,390 --> 00:31:50,330 >> তাই মূলত, আপনি সুযোগ সম্পর্কে মনে করতে পারেন আপনি ডিক্লেয়ার কিছু যে হিসাবে 582 00:31:50,330 --> 00:31:59,750 কোঁকড়া ধনুর্বন্ধনী একটি সেট ভিতরে শুধুমাত্র যারা কোঁকড়া ধনুর্বন্ধনী মধ্যে বিদ্যমান. 583 00:31:59,750 --> 00:32:04,990 এবং আপনি চেষ্টা করুন এবং যে ভেরিয়েবল ব্যবহার করে যারা কোঁকড়া ধনুর্বন্ধনী বাইরে, আপনি 584 00:32:04,990 --> 00:32:08,356 কম্পাইলার থেকে একটি ভুল পান. 585 00:32:08,356 --> 00:32:08,812 হ্যাঁ? 586 00:32:08,812 --> 00:32:09,724 >> শ্রোতা: তাই এই এক কাজ করে না? 587 00:32:09,724 --> 00:32:11,790 >> | DAN: এই হ্যাঁ, কাজ করে না. 588 00:32:11,790 --> 00:32:17,190 589 00:32:17,190 --> 00:32:18,660 স্ট্রিং. 590 00:32:18,660 --> 00:32:19,780 স্ট্রিং একটি গৃহস্থালি *. 591 00:32:19,780 --> 00:32:22,250 তারা ঠিক একই. 592 00:32:22,250 --> 00:32:25,540 তারা শুধু অক্ষর পয়েন্টার. 593 00:32:25,540 --> 00:32:33,000 এবং আপনি যে কোন স্ট্রিং শেষ করতে হবে ঠিক যা ব্যাকস্ল্যাশ শূন্য, সঙ্গে 594 00:32:33,000 --> 00:32:34,410 একটি সি কনভেনশন. 595 00:32:34,410 --> 00:32:36,680 >> এটা শূন্য টারমিনেটর বলা হয়. 596 00:32:36,680 --> 00:32:39,050 এবং নাল 597 00:32:39,050 --> 00:32:41,670 রাজধানী এন, রাজধানী হবে, রাজধানী এল, রাজধানী L-- 598 00:32:41,670 --> 00:32:44,290 হিসাবে একই নয় শূন্য টারমিনেটর. 599 00:32:44,290 --> 00:32:46,640 এটি একটি পয়েন্টার. 600 00:32:46,640 --> 00:32:48,280 এটি একটি চরিত্র. 601 00:32:48,280 --> 00:32:49,530 তারা খুব স্বতন্ত্র. 602 00:32:49,530 --> 00:32:50,200 এটা মনে রাখবেন. 603 00:32:50,200 --> 00:32:52,320 এটা সম্ভবত, ব্যঙ্গ করা হবে. 604 00:32:52,320 --> 00:32:54,040 আমি ব্যঙ্গ দেখা যায় না. 605 00:32:54,040 --> 00:32:57,880 606 00:32:57,880 --> 00:32:58,840 হ্যাঁ? 607 00:32:58,840 --> 00:33:01,232 >> AUDIENCE: তাই NULL পয়েন্টার, বলে, কি? 608 00:33:01,232 --> 00:33:01,995 >> | DAN: হ্যাঁ. 609 00:33:01,995 --> 00:33:05,170 >> শ্রোতা: কি [শ্রবণাতীত] আছে? 610 00:33:05,170 --> 00:33:10,050 >> | DAN:, বলে, malloc আহবান করা হয় যখন আপনি যথেষ্ট মেমরি নেই 611 00:33:10,050 --> 00:33:14,400 যাই হোক না কেন আপনার জন্য বলছি আকার, malloc NULL ফেরত হবে. 612 00:33:14,400 --> 00:33:19,550 একটি ফাংশন যখনই এটি মূলত, এর একটি পয়েন্টার ফেরত অনুমিত, আপনি 613 00:33:19,550 --> 00:33:22,600 শূন্য কারণ বিরুদ্ধে চেক করতে হবে শূন্য একটি চমত্কার good-- হয় 614 00:33:22,600 --> 00:33:25,260 এটা, বাছাই করা, আবর্জনা মান. 615 00:33:25,260 --> 00:33:27,050 এটা যতটা পয়েন্টার হিসাবে একটি শূন্য. 616 00:33:27,050 --> 00:33:29,630 617 00:33:29,630 --> 00:33:32,250 >> যখনই আপনি একটি ফাংশন কল, একটি পয়েন্টার ফেরৎ. 618 00:33:32,250 --> 00:33:35,960 আপনি হতে চেক করতে চান, চলুন যে পয়েন্টার শূন্য হয় না 619 00:33:35,960 --> 00:33:37,760 শূন্য খুবই সাধারণ কারণ. 620 00:33:37,760 --> 00:33:40,160 এটি একটি আবর্জনা ফেরত ধরণের. 621 00:33:40,160 --> 00:33:44,902 কিছু অধিকার না যান, তাই যদি শুধু পরিবর্তে শূন্য ফিরে. 622 00:33:44,902 --> 00:33:45,898 >> শ্রোতা: [শ্রবণাতীত]? 623 00:33:45,898 --> 00:33:48,922 >> | DAN: হ্যাঁ, এবং যে এই আছে. 624 00:33:48,922 --> 00:33:51,750 >> শ্রোতা: [শ্রবণাতীত]? 625 00:33:51,750 --> 00:33:52,800 >> | DAN: এই হিসাবে এটি বানান. 626 00:33:52,800 --> 00:33:54,150 এটা শূন্য টারমিনেটর এর. 627 00:33:54,150 --> 00:33:56,560 এটা ছোট হাতের অক্ষর n-ইউ এল এল যদি আপনি এটি বানান করছি. 628 00:33:56,560 --> 00:33:59,860 >> শ্রোতা: এবং আমি গিয়েছিলাম ফিরে এবং এটা পরীক্ষিত. 629 00:33:59,860 --> 00:34:03,010 এবং যদি আপনি একটি ফ্লোটিং পয়েন্ট করা চেষ্টা একটি সুইচ মধ্যে মান, এটা আপনি চিত্কার করব 630 00:34:03,010 --> 00:34:05,916 বলার অপেক্ষা রাখে না, বিবৃতি প্রকাশের প্রয়োজন পূর্ণসংখ্যা ধরনের. 631 00:34:05,916 --> 00:34:07,166 >> | DAN: এখন পর্যন্ত আপনি যান. 632 00:34:07,166 --> 00:34:09,639 633 00:34:09,639 --> 00:34:12,246 তবে হাঁ, প্রশ্ন আবার কি ছিল? 634 00:34:12,246 --> 00:34:13,496 >> শ্রোতা: [শ্রবণাতীত]? 635 00:34:13,496 --> 00:34:16,150 636 00:34:16,150 --> 00:34:23,679 >> | DAN: তাই রাজধানী এন, রাজধানী হবে, রাজধানী এল, রাজধানী এল একটি প্রকৃত গ জিনিস. 637 00:34:23,679 --> 00:34:29,719 এটা NULL পয়েন্টার এবং করবে শুধুমাত্র যেমন হিসাবে গণ্য করা. 638 00:34:29,719 --> 00:34:33,530 আপনি কি কখনও চেষ্টা করুন এবং বানান হবে না শূন্য অক্ষর এবং কোনো দেখতে 639 00:34:33,530 --> 00:34:35,630 এই ছাড়া অন্য উপায়. 640 00:34:35,630 --> 00:34:36,610 হ্যাঁ? 641 00:34:36,610 --> 00:34:42,490 >> AUDIENCE: তাই সর্বোচ্চ গৃহস্থালি ফিরে বা নোট কিছু, এটা হবে 642 00:34:42,490 --> 00:34:43,960 একই ফাংশন অঙ্গীভূত করা [শ্রবণাতীত] হিসাবে? 643 00:34:43,960 --> 00:34:50,655 644 00:34:50,655 --> 00:34:54,949 >> শ্রোতা: তাই আপনি যদি উল্লেখ করা হয় GetChar থেকে গৃহস্থালি সর্বোচ্চ ফিরে, বা 645 00:34:54,949 --> 00:34:55,444 যাই হোক না কেন এটা হয়? 646 00:34:55,444 --> 00:34:55,940 >> শ্রোতা: হ্যাঁ. 647 00:34:55,940 --> 00:34:58,620 >> শ্রোতা: হ্যাঁ, সাধারণ, তাই সমস্ত জিনিষ জন্য শব্দ 648 00:34:58,620 --> 00:34:59,920 প্রহরী মান. 649 00:34:59,920 --> 00:35:03,640 সুতরাং GetInt থেকে int-সর্বোচ্চ ফিরে মত এবং GetChar থেকে গৃহস্থালি সর্বোচ্চ, এটা 650 00:35:03,640 --> 00:35:06,010 যদি সমস্ত অধিকার, মত হতে অনুমিত এই জিনিস, আমাদের ফিরে হয় 651 00:35:06,010 --> 00:35:07,210 কিছু ভুল হয়েছে. 652 00:35:07,210 --> 00:35:09,950 >> পয়েন্টার জন্য, আমরা শুধু আছে এরকম এই প্রহরী মান যে সবাই 653 00:35:09,950 --> 00:35:10,750 উপর সম্মত হয়. 654 00:35:10,750 --> 00:35:13,210 এবং এই আপনি ফিরে জিনিস কিছু ভুল হয়ে যান. 655 00:35:13,210 --> 00:35:15,910 তাই গৃহস্থালি সর্বোচ্চ আমরা ব্যবহার করছেন কি কিছু প্রতিনিধিত্ব 656 00:35:15,910 --> 00:35:18,100 শূন্য বা GetChar মত. 657 00:35:18,100 --> 00:35:23,420 >> শ্রোতা: আপনি GetChar পরীক্ষা করছি তাই আপনি যদি, আপনি শুধু শূন্য করা হতে পারে? 658 00:35:23,420 --> 00:35:23,910 যে একটি পার্থক্য করতে হবে? 659 00:35:23,910 --> 00:35:25,400 >> | DAN: আপনি শুধু শূন্য চেক করতে পারে না. 660 00:35:25,400 --> 00:35:30,130 কারণ আপনি গৃহস্থালি সর্বোচ্চ চেক করতে চাই ফাংশন থেকে ফেরত মান 661 00:35:30,130 --> 00:35:35,416 একটি অক্ষর একটি পয়েন্টার. 662 00:35:35,416 --> 00:35:35,888 হ্যাঁ? 663 00:35:35,888 --> 00:35:38,248 >> শ্রোতা: এই প্রশ্ন জিজ্ঞেস করে স্ট্রিং দৈর্ঘ্য জন্য. 664 00:35:38,248 --> 00:35:40,136 শূন্য অক্ষর অন্তর্ভুক্ত করে? 665 00:35:40,136 --> 00:35:41,000 >> | DAN: নং 666 00:35:41,000 --> 00:35:45,930 এবং যে কিভাবে স্ট্রিং দ্বারা আসলে এটি দিয়ে যায়, কারণ বন্ধ করতে জানে 667 00:35:45,930 --> 00:35:49,070 অক্ষর আপনার অ্যারের পর্যন্ত এটি একটি শূন্য অক্ষর সূচিত করা হবে. 668 00:35:49,070 --> 00:35:51,030 এবং তারপর এটি সব, মত ঠিক আছে, আমি কাজ করছি. 669 00:35:51,030 --> 00:35:52,130 >> শ্রোতা: [শ্রবণাতীত] পাঁচ? 670 00:35:52,130 --> 00:35:53,990 >> | DAN: হ্যালো পাঁচ হবে. 671 00:35:53,990 --> 00:35:55,240 হাঁ. 672 00:35:55,240 --> 00:35:59,580 673 00:35:59,580 --> 00:36:02,880 সুতরাং অ্যারে ক্রমাগত হয় মেমরি ব্লক. 674 00:36:02,880 --> 00:36:08,480 তারা বলছে দ্বারা তাত্ক্ষণিক এক্সেস আছে কোঁকড়া, অ্যারের নাম এবং তারপর 675 00:36:08,480 --> 00:36:16,720 আপনি যেতে চান যাই হোক না কেন সূচক ধনুর্বন্ধনী, , তারা এর মাধ্যমে শূন্য থেকে ইন্ডেক্স করছি 676 00:36:16,720 --> 00:36:20,100 1 বিয়োগ অ্যারের দ্বারা. 677 00:36:20,100 --> 00:36:23,070 >> এবং তারা কি ধরনের ঘোষণা করছি আপনি সংরক্ষণ করছেন যে জিনিস 678 00:36:23,070 --> 00:36:29,750 অ্যারে অ্যারে নাম, এবং তারপর যাই হোক না কেন আকার যে অ্যারের হয়. 679 00:36:29,750 --> 00:36:36,660 তাই এই দৈর্ঘ্যের একটি গৃহস্থালি অ্যারে এই মান যে ছয়. 680 00:36:36,660 --> 00:36:42,050 681 00:36:42,050 --> 00:36:42,700 হ্যাঁ? 682 00:36:42,700 --> 00:36:43,950 >> শ্রোতা: [শ্রবণাতীত]? 683 00:36:43,950 --> 00:36:47,980 684 00:36:47,980 --> 00:36:48,460 >> | DAN: হ্যাঁ. 685 00:36:48,460 --> 00:36:51,340 >> শ্রোতা: [শ্রবণাতীত]? 686 00:36:51,340 --> 00:36:56,700 >> | DAN: আপনি কি ঘটছে আছে অ্যারের মধ্যে ইতিমধ্যে প্রণীত. 687 00:36:56,700 --> 00:37:02,260 তাই আপনি যদি এর পরিবর্তে এই নির্দিষ্ট পারে, এর বলে, গৃহস্থালি, যাই হোক না কেন নাম আপনার 688 00:37:02,260 --> 00:37:12,200 অ্যারে খালি বন্ধনী কোঁকড়া সমান হয়, এইচ কমা ই কমা এল কমা এল কমা উত্সাহিত 689 00:37:12,200 --> 00:37:16,290 হে কমা শূন্য অক্ষর এবং কোঁকড়া যুগল. 690 00:37:16,290 --> 00:37:18,180 যে একটি ঘোষণাপত্র হিসাবে কাজ করবে. 691 00:37:18,180 --> 00:37:20,886 >> শ্রোতা: [শ্রবণাতীত]? 692 00:37:20,886 --> 00:37:23,110 >> | DAN: তারপর আপনি প্রয়োজন আছে আকার ইতিমধ্যে প্রণীত. 693 00:37:23,110 --> 00:37:23,896 >> শ্রোতা: [শ্রবণাতীত]? 694 00:37:23,896 --> 00:37:25,146 >> | DAN: হ্যাঁ. 695 00:37:25,146 --> 00:37:30,114 696 00:37:30,114 --> 00:37:32,420 সমস্ত righty. 697 00:37:32,420 --> 00:37:36,430 কমান্ড লাইন আর্গুমেন্ট একটি উপায় ব্যবহারকারী হিসাবে থেকে ইনপুট পেয়ে 698 00:37:36,430 --> 00:37:39,380 প্রধান আর্গুমেন্ট. 699 00:37:39,380 --> 00:37:40,600 প্রধান দুটি আর্গুমেন্ট লাগে. 700 00:37:40,600 --> 00:37:47,680 হচ্ছে যে আর্গুমেন্টের সংখ্যা কমান্ড লাইন এবং একটি পাশ বরাবর 701 00:37:47,680 --> 00:37:55,340 স্ট্রিং ভেক্টর অথবা একটি স্ট্রিং অ্যারে আর্গুমেন্ট সব. 702 00:37:55,340 --> 00:38:07,840 >> তাই আমি, বলে, যেমন একটি ফাংশন বলা যদি 1 স্থান, 2 স্থান, তিনটি একটি বিন্দু, 703 00:38:07,840 --> 00:38:10,110 -argc 4 হবে. 704 00:38:10,110 --> 00:38:17,370 এবং argv 0 আউট একটি বিন্দু হতে হবে. 705 00:38:17,370 --> 00:38:19,130 Argv1 1 হবে. 706 00:38:19,130 --> 00:38:23,030 argv2 2 argv3 হবে হবে 3, যে বিশেষ ক্ষেত্রে. 707 00:38:23,030 --> 00:38:23,310 হ্যাঁ? 708 00:38:23,310 --> 00:38:25,400 >> শ্রোতা: [শ্রবণাতীত]? 709 00:38:25,400 --> 00:38:34,010 >> | DAN: অ্যারের মধ্যে শেষ উপাদান অ্যারের দৈর্ঘ্য argc হয় কারণ প্লাস 710 00:38:34,010 --> 00:38:41,050 ARGB এক, শেষ উপাদান শূন্য পয়েন্টার. 711 00:38:41,050 --> 00:38:42,580 এটা-argc প্লাস 1. 712 00:38:42,580 --> 00:38:46,210 713 00:38:46,210 --> 00:38:52,150 আমি শুধু, এটা বলেন যে ক্ষেত্রে 0 argv করা হবে একটি বিন্দু. 714 00:38:52,150 --> 00:38:56,330 argv হয় 1 1 argv2 3 3 2 হয় argv হয়. 715 00:38:56,330 --> 00:39:03,490 এক বড়, যা হয় argv 4, -argc চেয়ে শূন্য হবে. 716 00:39:03,490 --> 00:39:04,870 >> এবং যে শূন্য পয়েন্টার. 717 00:39:04,870 --> 00:39:06,590 হ্যাঁ. 718 00:39:06,590 --> 00:39:11,250 স্ট্রিং এবং যে কারণ একটি গৃহস্থালি তারা একটি পয়েন্টার. 719 00:39:11,250 --> 00:39:14,102 সুতরাং এটি একই ধরনের হতে হবে. 720 00:39:14,102 --> 00:39:14,595 হ্যাঁ? 721 00:39:14,595 --> 00:39:16,074 >> শ্রোতা: দুই প্রশ্ন. 722 00:39:16,074 --> 00:39:21,004 তাই এক, পার্থক্য মধ্যে কি এক ধরনের তুলনায় অন্যান্য এই এবং GetString 723 00:39:21,004 --> 00:39:22,483 ব্যবহারকারী ইঞ্জিন? 724 00:39:22,483 --> 00:39:25,934 এবং দুই, এটি মধ্যে সংরক্ষিত হয় আপনার সাম্প্রতিক মেমরি? 725 00:39:25,934 --> 00:39:28,399 যেমন, GetString, হবে [শ্রবণাতীত] হবে? 726 00:39:28,399 --> 00:39:31,357 727 00:39:31,357 --> 00:39:33,650 >> | DAN: এটা কোথায় সংরক্ষণ করা হয়? 728 00:39:33,650 --> 00:39:34,905 এটি সঞ্চিত যেখানে আমি জানি না. 729 00:39:34,905 --> 00:39:40,000 >> AUDIENCE: তাই, আসলে, আপনি কিভাবে কোনো জানেন আপনি এটি আর্গুমেন্ট কল কাজ 730 00:39:40,000 --> 00:39:42,170 স্ট্যাকের মধ্যে সংরক্ষণ করা হয়? 731 00:39:42,170 --> 00:39:46,610 সুতরাং argc এবং argv আর্গুমেন্ট প্রধান করা হয় এবং তারা স্ট্যাক হয়, অথবা সত্যিই 732 00:39:46,610 --> 00:39:49,131 শুধু হিসাবে আপনি কি মনে করেন উপরে স্ট্যাকের শুরু. 733 00:39:49,131 --> 00:39:53,490 অন্যান্য অংশ কি ছিল প্রশ্ন? 734 00:39:53,490 --> 00:39:56,821 >> AUDIENCE: তাই কি [শ্রবণাতীত]? 735 00:39:56,821 --> 00:40:00,990 >> | DAN: হ্যাঁ, এটা ঠিক একটি ভিন্ন উপায় এর ব্যবহারকারী থেকে ইনপুট পেয়ে. 736 00:40:00,990 --> 00:40:06,030 এই এক এর সামান্য বেশি দক্ষ ও এটা স্ক্রিপ্ট handier আপনি কারণ 737 00:40:06,030 --> 00:40:10,070 শুধু আপনার প্রধান আর্গুমেন্ট প্রেরণ করতে পারেন ফাংশন বরং অপেক্ষা করতে থাকার চেয়ে 738 00:40:10,070 --> 00:40:13,400 ব্যবহারকারীদের জন্য যদি কোন অ্যাকাউন্ট না থাকে. 739 00:40:13,400 --> 00:40:16,280 >> শ্রোতা: এবং হ্যাঁ, স্ট্রিং পেতে [শ্রবণাতীত] হবে. 740 00:40:16,280 --> 00:40:17,922 এটা আপনি প্রয়োজন কাপড় সংরক্ষণ করবে. 741 00:40:17,922 --> 00:40:18,834 >> | DAN: হ্যাঁ? 742 00:40:18,834 --> 00:40:21,114 >> শ্রোতা: [শ্রবণাতীত]? 743 00:40:21,114 --> 00:40:27,545 >> | DAN: হ্যাঁ, argv হয় 0 সবসময় রয়েছে বিন্দু ফাংশন কল কাট. 744 00:40:27,545 --> 00:40:28,042 হ্যাঁ? 745 00:40:28,042 --> 00:40:29,292 >> শ্রোতা: [শ্রবণাতীত]? 746 00:40:29,292 --> 00:40:33,509 747 00:40:33,509 --> 00:40:37,310 >> | DAN: হ্যাঁ, আর্গুমেন্ট প্রতিটি শূন্য অক্ষর শেষ তারা 748 00:40:37,310 --> 00:40:38,310 স্ট্রিং আছে. 749 00:40:38,310 --> 00:40:40,892 >> শ্রোতা: [শ্রবণাতীত]? 750 00:40:40,892 --> 00:40:44,116 >> | DAN: হ্যাঁ, argv হয় argc একটি NULL পয়েন্টার হয়. 751 00:40:44,116 --> 00:40:45,112 >> শ্রোতা: [শ্রবণাতীত]? 752 00:40:45,112 --> 00:40:47,104 >> | DAN: ওহ হ্যাঁ. 753 00:40:47,104 --> 00:40:48,100 হ্যাঁ, দুঃখিত. 754 00:40:48,100 --> 00:40:49,594 >> AUDIENCE: তাই [শ্রবণাতীত]? 755 00:40:49,594 --> 00:41:08,518 756 00:41:08,518 --> 00:41:16,340 >> | DAN: আপনি ছিল যদি প্রশ্ন করা হয়, তাই কমান্ড লাইন বিন্দু, 2, 1 একটি বিন্দু স্ল্যাশ 757 00:41:16,340 --> 00:41:20,410 কি কমান্ড লাইন সংখ্যা আর্গুমেন্ট দুটি হতে বা তিনটি হবে? 758 00:41:20,410 --> 00:41:24,420 759 00:41:24,420 --> 00:41:28,240 >> শ্রোতা: আমি এটা না মনে হয় সত্যিই কোন ব্যাপার. 760 00:41:28,240 --> 00:41:31,370 আমি ওহ, আপনি পাস না, বলতে ঝোঁক যখন কোন কমান্ড লাইন আর্গুমেন্ট, 761 00:41:31,370 --> 00:41:32,730 সম্ভবত, আপনি ফাংশন বলা হয়. 762 00:41:32,730 --> 00:41:37,950 তাই আমি স্বরবর্ণ বাদ ঝোঁক কমান্ড লাইন থেকে ফাংশন 763 00:41:37,950 --> 00:41:40,350 এটা যদিও যুক্তির argv মধ্যে অন্তর্ভুক্ত করা হয়েছে. 764 00:41:40,350 --> 00:41:42,600 >> | DAN: কিন্তু এটা test-- ছিল যদি 765 00:41:42,600 --> 00:41:46,550 yeah-- এবং আপনি কিছু বলতে যদি -argc 3 সমান মত, 766 00:41:46,550 --> 00:41:48,512 আপনি নিরাপদ স্থায়ী আছেন. 767 00:41:48,512 --> 00:41:49,416 হ্যাঁ? 768 00:41:49,416 --> 00:41:50,666 >> শ্রোতা: [শ্রবণাতীত]? 769 00:41:50,666 --> 00:42:00,990 770 00:42:00,990 --> 00:42:09,510 >> | DAN: আমি যদি এই পরিবর্তে কলিং মনে argc এবং স্ট্রিং argv বন্ধনী 771 00:42:09,510 --> 00:42:14,350 কিন্তু একই ধরনের রাখা এবং শুধু বলা একটি মত বিভিন্ন তাদের কিছু 772 00:42:14,350 --> 00:42:16,640 এবং খ, এখনও এটা কাজ করবে? 773 00:42:16,640 --> 00:42:18,790 এবং এটি এখনও কাজ করবে, আপনি ঠিক করা হবে 774 00:42:18,790 --> 00:42:21,520 পরিবর্তে argc-- ব্যবহার করে আপনি একটি এবং খ ব্যবহার করতে চাই. 775 00:42:21,520 --> 00:42:24,436 776 00:42:24,436 --> 00:42:25,408 হ্যাঁ? 777 00:42:25,408 --> 00:42:26,658 >> শ্রোতা: [শ্রবণাতীত]? 778 00:42:26,658 --> 00:42:34,642 779 00:42:34,642 --> 00:42:38,850 >> | DAN: তাই প্রশ্ন GetString, হয় গাদা মেমরি সংরক্ষণ করা যাচ্ছে 780 00:42:38,850 --> 00:42:42,280 GetString, গৃহস্থালির কাজ, কারণ *. 781 00:42:42,280 --> 00:42:47,530 এটা কারণ গাদা মেমরি সঞ্চয় প্রকৃত মধ্যে এখন যদি malloc কল 782 00:42:47,530 --> 00:42:49,258 GetString, বাস্তবায়ন. 783 00:42:49,258 --> 00:42:53,210 784 00:42:53,210 --> 00:42:55,090 ঠিক আছে, চলন্ত উপর. 785 00:42:55,090 --> 00:42:55,950 >> নিরাপত্তা. 786 00:42:55,950 --> 00:43:01,090 তাই সত্যিই নিরাপদ হবে, আপনি কোন উপর নির্ভর করে এক এবং আপনি কোন কোন এক ব্যবহারের অনুমতি 787 00:43:01,090 --> 00:43:04,540 আপনার তথ্য, যা কেন সবাই তাদের নিজস্ব মেশিন তৈরী করে 788 00:43:04,540 --> 00:43:09,580 তাদের নিজস্ব অপারেটিং সিস্টেম, তাদের সব গোড়া থেকে প্রোগ্রাম, এবং সম্ভবত 789 00:43:09,580 --> 00:43:13,410 অন্য কোন মেশিনের সাথে সংযোগ না ইন্টারনেটের মাধ্যমে. 790 00:43:13,410 --> 00:43:17,350 তাই কম্পিউটার অনিরাপদ হয়. 791 00:43:17,350 --> 00:43:19,200 সত্যিই তারা. 792 00:43:19,200 --> 00:43:20,940 আমরা অন্য মানুষ বিশ্বাস আছে. 793 00:43:20,940 --> 00:43:26,500 >> এবং নিরাপত্তা ধারণা আপনি যে এর পরিমাণ সীমিত করার চেষ্টা করছে 794 00:43:26,500 --> 00:43:27,540 যে আপনি প্রয়োজন বিশ্বাস. 795 00:43:27,540 --> 00:43:32,080 এবং মানে এক আপনি যে কি ক্রিপ্টোগ্রাফি মাধ্যমে হয়. 796 00:43:32,080 --> 00:43:34,950 ক্রিপ্টোগ্রাফি, মূলত, হয় আমরা গোপন আছে. 797 00:43:34,950 --> 00:43:38,880 >> কখনও কখনও আমরা আমাদের গোপন পাস করতে হবে বরাবর মাধ্যমে, বলে, ইন্টারনেট বা 798 00:43:38,880 --> 00:43:39,980 অন্যান্য বিষয়. 799 00:43:39,980 --> 00:43:43,180 এবং আমরা মানুষ চাই না এই গোপন জানতে. 800 00:43:43,180 --> 00:43:50,100 সুতরাং আমরা একটি উপায় মধ্যে আমাদের গোপন এনক্রিপ্ট যে আমরা কোন এক চিন্তা করতে পারেন আশা করি. 801 00:43:50,100 --> 00:43:51,600 >> তাই আমরা used-- 802 00:43:51,600 --> 00:43:54,340 এই ক্লাসে অবশ্যই মাধ্যমে 803 00:43:54,340 --> 00:44:00,750 সিজার সাইফার মত জিনিস এবং উভয় খুব খুব, যা [শ্রবণাতীত], 804 00:44:00,750 --> 00:44:03,200 কিছু এনক্রিপ্ট অনিরাপদ উপায়. 805 00:44:03,200 --> 00:44:07,930 তারা চিন্তা করা সহজ কি তারা এবং আপনার কি গোপন. 806 00:44:07,930 --> 00:44:12,130 বাস্তব জগতে আরো অনেক কিছু ব্যবহার করে জটিল এনক্রিপশন স্কিম. 807 00:44:12,130 --> 00:44:13,880 এবং আমরা মধ্যে পেতে হবে না যে তুলনায় আরো অনেক কিছু. 808 00:44:13,880 --> 00:44:18,280 809 00:44:18,280 --> 00:44:19,430 >> ডিবাগ করার পদ্ধতি. 810 00:44:19,430 --> 00:44:20,785 , GDB ভাল হয়. 811 00:44:20,785 --> 00:44:24,014 812 00:44:24,014 --> 00:44:25,810 আমি আবার এই চাপ সৃষ্টি করতে যাচ্ছি. 813 00:44:25,810 --> 00:44:30,920 , GDB সব সময় প্রতি ব্যবহার করুন সময় আপনি একটি সমস্যা আছে. 814 00:44:30,920 --> 00:44:36,030 GDB- র মধ্যে দরকারী কমান্ড আপনি একটি লাইন হয় পাস, যা বিরতি 815 00:44:36,030 --> 00:44:41,330 সংখ্যা, একটি ফাংশন নাম, মূলত যেখানে আপনার কোড আপনি বন্ধ করতে চান, 816 00:44:41,330 --> 00:44:45,600 এবং নিয়ন্ত্রণ নিতে সক্ষম. 817 00:44:45,600 --> 00:44:54,140 >> প্রিন্ট করুন একটি পরিবর্তনশীল নেয় এবং ছাপে আউট যে পরিবর্তনশীল যে যাই হোক না কেন 818 00:44:54,140 --> 00:44:55,990 আপনার মৃত্যুদন্ড পয়েন্ট. 819 00:44:55,990 --> 00:45:00,130 পরবর্তী আপনার মৃত্যুদন্ড চলে আসে এক ধাপ বরাবর. 820 00:45:00,130 --> 00:45:05,050 এবং একটি ফাংশন ভিতরে ধাপ ধাপ আপনার মৃত্যুদন্ড. 821 00:45:05,050 --> 00:45:10,480 >> অন্যান্য বিষয় কিভাবে, যা চালানো হয় আপনি আসলে আপনার কোড রান. 822 00:45:10,480 --> 00:45:16,630 চালিয়ে প্রয়োজনীয় সব পদক্ষেপ নেয় পরবর্তী বিরতি বিন্দু পেতে. 823 00:45:16,630 --> 00:45:18,300 এবং অনেক, অনেক অন্যদের আছে. 824 00:45:18,300 --> 00:45:19,040 তাদের দেখুন. 825 00:45:19,040 --> 00:45:19,901 তারা মহান. 826 00:45:19,901 --> 00:45:20,863 হ্যাঁ? 827 00:45:20,863 --> 00:45:22,113 >> শ্রোতা: [শ্রবণাতীত]? 828 00:45:22,113 --> 00:45:26,635 829 00:45:26,635 --> 00:45:28,200 >> | DAN: হ্যাঁ, একটি ডিবাগার হয়. 830 00:45:28,200 --> 00:45:34,230 সুতরাং একটি ডিবাগার একটি প্রোগ্রাম যে আপনি আপনার প্রোগ্রাম ডিবাগ করতে দেয়. 831 00:45:34,230 --> 00:45:39,931 এটা বাগ খুঁজে বের করে একটি প্রোগ্রাম যা না আপনি, যদিও যে মহান হতে হবে. 832 00:45:39,931 --> 00:45:43,020 833 00:45:43,020 --> 00:45:46,040 >> এবং অনুসন্ধান আমার জন্য শেষ. 834 00:45:46,040 --> 00:45:51,470 আমরা বললাম যে সার্চ ধরনের তাই এই ক্লাসে সম্পর্কে রৈখিক অনুসন্ধান, 835 00:45:51,470 --> 00:45:55,960 যা আপনি প্রতিটি মাধ্যমে যে চেহারা ঠিক হয় অনুসন্ধান স্থান উপাদান, এক 836 00:45:55,960 --> 00:46:00,410 একটি সময়ে উপাদান, আপনি পেতে কি পর্যন্ত আপনি বা আপনার পৌঁছানোর পর্যন্ত খুঁজছেন 837 00:46:00,410 --> 00:46:03,350 আপনার অনুসন্ধানের স্থান শেষে যা আপনি খুঁজে পেতে পারে না বলে নির্দেশ 838 00:46:03,350 --> 00:46:06,360 আপনি খুঁজছেন হয়েছে যে উপাদান. 839 00:46:06,360 --> 00:46:13,450 এবং এই, এ সেরা ধ্রুবক সময় লাগে যা 1 0 এবং সবচেয়ে খারাপ রৈখিক এ 840 00:46:13,450 --> 00:46:16,070 এন 0, যা সময়,. 841 00:46:16,070 --> 00:46:19,250 >> প্রয়োজন, যা বাইনারি অনুসন্ধান, নোংরা উপাদান. 842 00:46:19,250 --> 00:46:24,230 আপনি আপনার উপাদানের মধ্যম যান, যদি আপনি খুঁজছেন উপাদান 843 00:46:24,230 --> 00:46:30,120 উপাদান চেয়ে বড় বা ছোট হয় আপনি মধ্যম করেন যে. 844 00:46:30,120 --> 00:46:36,510 এটা বড়, আপনি নীচে বলে আপনার অনুসন্ধানের স্থান আপনার হয় 845 00:46:36,510 --> 00:46:41,550 বর্তমান অবস্থান, মধ্যম, এবং আপনি প্রক্রিয়া পুনরায় আরম্ভ করুন. 846 00:46:41,550 --> 00:46:46,150 এটি ছোট, আপনি বলে চেহারা হাঁ, কি the-- যে? 847 00:46:46,150 --> 00:46:47,400 >> শ্রোতা: [শ্রবণাতীত]? 848 00:46:47,400 --> 00:46:51,000 849 00:46:51,000 --> 00:46:54,260 >> | DAN: হ্যাঁ. 850 00:46:54,260 --> 00:46:58,360 শেখানো হয়েছে যে ধরণের কোন ধরণের বর্গ পরীক্ষার জন্য পরিষ্কার খেলা. 851 00:46:58,360 --> 00:47:01,504 852 00:47:01,504 --> 00:47:04,920 >> [হাস্য] 853 00:47:04,920 --> 00:47:10,260 >> | DAN: এবং আপনি ছিল না যে একটি সমস্যা সেট জন্য এটা, এটা পরিষ্কার 854 00:47:10,260 --> 00:47:12,420 পরীক্ষার জন্য খেলা. 855 00:47:12,420 --> 00:47:15,186 >> শ্রোতা: আমরা এটি উপর যেতে পারি কিভাবে চাচ্ছি 856 00:47:15,186 --> 00:47:17,052 >> | DAN: এটা উপর সর্বস্বান্ত করা হবে. 857 00:47:17,052 --> 00:47:20,496 >> স্পিকার 2: জন্য প্রকৃত কোড [শ্রবণাতীত] study.cs50.net হয়. 858 00:47:20,496 --> 00:47:25,910 859 00:47:25,910 --> 00:47:32,680 আপনি অনুশীলন সমস্যা তাকান তাই এর একত্রীকরণ সাজানোর পাতা 860 00:47:32,680 --> 00:47:35,880 study.cs50.net, কোড আছে একত্রীকরণ সাজানোর বাস্তবায়নের জন্য. 861 00:47:35,880 --> 00:47:38,550 তাই আপনি যদি বাস্তবায়ন করতে হবে না এটা নিজেকে আজ রাতে. 862 00:47:38,550 --> 00:47:42,090 কিন্তু নিশ্চিত করুন যে আপনি বরং এটা বুঝতে না আর শুধু এটা মনে রাখার. 863 00:47:42,090 --> 00:47:45,035 >> শ্রোতা: [শ্রবণাতীত]? 864 00:47:45,035 --> 00:47:49,720 >> স্পিকার 2: উপর একত্রীকরণ সাজানোর পৃষ্ঠা study.cs50.net, একটি অনুশীলন আছে 865 00:47:49,720 --> 00:47:53,570 আপনি মাধ্যমে ক্লিক করুন যে, সমস্যা সমস্যা, খুব শেষে আছে একটি 866 00:47:53,570 --> 00:47:56,280 একত্রীকরণ, যা সমাধান, সাজানোর বাস্তবায়ন. 867 00:47:56,280 --> 00:47:58,510 কিন্তু নিশ্চিত আপনি এটা বুঝতে বরং এটি মনে রাখার চেয়ে 868 00:47:58,510 --> 00:47:59,760 অথবা এটি নিচে কপি. 869 00:47:59,760 --> 00:48:02,870 870 00:48:02,870 --> 00:48:06,340 >> শ্রোতা: এবং একটি পুরোপুরি বৈধ পরীক্ষার জন্য সমস্যা হবে 871 00:48:06,340 --> 00:48:07,990 এখানে ভালো কিছু একটি তালিকা. 872 00:48:07,990 --> 00:48:12,100 এই তালিকা পর কেমন কি পছন্দসই মান নির্বাচন করে সাজানোর এক ধাপ বা 873 00:48:12,100 --> 00:48:13,330 সন্নিবেশ সাজানোর বা যাই হোক না কেন. 874 00:48:13,330 --> 00:48:14,940 তালিকার এক পূর্ণ পুনরাবৃত্তির. 875 00:48:14,940 --> 00:48:18,530 আপনি প্রয়োজন না শেষ তাই, এমনকি যদি এটা জন্য কোড, আপনি এটা বুঝতে হবে 876 00:48:18,530 --> 00:48:20,440 এটি হচ্ছে জানতে যথেষ্ট এই অ্যারের পরিবর্তন করা হবে. 877 00:48:20,440 --> 00:48:24,144 878 00:48:24,144 --> 00:48:25,394 >> | DAN: এটা আমার জন্য এটি. 879 00:48:25,394 --> 00:48:30,604 880 00:48:30,604 --> 00:48:32,588 >> [সাধুবাদ] 881 00:48:32,588 --> 00:49:06,316 882 00:49:06,316 --> 00:49:07,410 >> LUCAS: আরে সবাই. 883 00:49:07,410 --> 00:49:08,390 আমার নাম লুকাস. 884 00:49:08,390 --> 00:49:16,840 আমি সব জন্য, recursion সম্পর্কে কথা বলতে যাচ্ছি আমরা শিখেছি যে প্রকারের, এবং একটি 885 00:49:16,840 --> 00:49:18,050 সব পয়েন্টার সামান্য বিট. 886 00:49:18,050 --> 00:49:18,740 ঠিক আছে? 887 00:49:18,740 --> 00:49:20,340 সুতরাং প্রথম সব জন্য, recursion. 888 00:49:20,340 --> 00:49:22,951 এটা বলে মানে কি একটি ফাংশন recursive হয়? 889 00:49:22,951 --> 00:49:24,675 >> শ্রোতা: নিজেই কল. 890 00:49:24,675 --> 00:49:26,500 >> LUCAS: ঠিক আছে, হাঁ, কল নিজেই. 891 00:49:26,500 --> 00:49:27,700 তাই যেমন এই ছবি, মত. 892 00:49:27,700 --> 00:49:30,280 এটা ভিতরে ছবি মত একটি ছবি এবং তাই. 893 00:49:30,280 --> 00:49:35,740 সুতরাং উদাহরণস্বরূপ, যদি আপনি ড্যান হিসাবে থাকতে পারে যে বাইনারি অনুসন্ধান সম্পর্কে কথা বলা হয়েছিল. 894 00:49:35,740 --> 00:49:41,840 এক উপায়, যা বাইনারি অনুসন্ধান রিকার্সিভ আপনি সত্য যে 895 00:49:41,840 --> 00:49:43,130 একটি সংখ্যা খুঁজে বের করার চেষ্টা. 896 00:49:43,130 --> 00:49:44,250 সুতরাং আপনি মধ্যম যান. 897 00:49:44,250 --> 00:49:47,130 সেখানে সংখ্যা এবং তারপর যদি আপনি না পরীক্ষা বাম এবং ডান. 898 00:49:47,130 --> 00:49:49,650 >> এবং তারপর আপনি সংখ্যা খুঁজে বের করে বাম হতে যাচ্ছে, এটি একই 899 00:49:49,650 --> 00:49:53,340 আবার অনুসন্ধান করছেন হিসাবে জিনিস কিন্তু শুধু তালিকা বাম. 900 00:49:53,340 --> 00:49:57,350 শোনাচ্ছে কিভাবে সুতরাং যে মত রিকার্সিভ না. 901 00:49:57,350 --> 00:50:01,870 আপনি যদি না রিকার্সিভ আছে সুতরাং যে কেন একত্রীকরণ সাজানোর জন্য সমাধান. 902 00:50:01,870 --> 00:50:04,270 >> ঠিক আছে, তাই এখানে একটি উদাহরণ. 903 00:50:04,270 --> 00:50:07,280 তাই আমি চয়ন করতে চান যে বলা যাক 1 থেকে n যাও সব সংখ্যা. 904 00:50:07,280 --> 00:50:13,790 আমি বুঝতে পারেন যে n এর সমষ্টি সংখ্যা n প্লাস এন 1 বিয়োগ 1 আপ হয়. 905 00:50:13,790 --> 00:50:17,810 কিন্তু তারপর, আমি এন 1 বিয়োগ তাকান প্লাস এন বিয়োগ 2 প্লাস 1, যে একই 906 00:50:17,810 --> 00:50:20,680 summing সংখ্যার হিসাবে জিনিস এন 1 বিয়োগ আপ. 907 00:50:20,680 --> 00:50:25,890 তাই আমি একটি সমান সমষ্টি এর সমষ্টি বলতে পারেন এন বিয়োগ 1 এন প্লাস সমষ্টি সমান. 908 00:50:25,890 --> 00:50:28,010 যে জানার জন্য? 909 00:50:28,010 --> 00:50:32,630 >> এবং আমি অন্য কিছু হবে যে যা বেস ক্ষেত্রে বলা 910 00:50:32,630 --> 00:50:37,440 আপ সংখ্যার যোগফল শূন্য শূন্য হবে. 911 00:50:37,440 --> 00:50:42,770 তাই যত তাড়াতাড়ি আমি সংখ্যা পেতে শূন্য, আমি বেড়ে চলেছে থামাতে. 912 00:50:42,770 --> 00:50:45,330 যে জানার জন্য? 913 00:50:45,330 --> 00:50:48,120 >> তাই এখানে কিভাবে একটি উদাহরণ আমি যে বাস্তবায়ন করতে পারেন. 914 00:50:48,120 --> 00:50:49,860 তাই আমি কিছু এই ফাংশন আছে. 915 00:50:49,860 --> 00:50:51,700 যে একটি পূর্ণসংখ্যা এন লাগে. 916 00:50:51,700 --> 00:50:56,300 এন যদি তাই এখানে আমি প্রথম চেক কম বা শূন্য সমান. 917 00:50:56,300 --> 00:51:00,310 সুতরাং এটি শূন্য থেকে কম বা সমান যদি আমি আমাদের বেস কেস, যা শূন্য ফিরে. 918 00:51:00,310 --> 00:51:05,690 অন্যথা, আমি ঠিক ফিরে আসতে পারেন এন প্লাস সংখ্যার যোগফল থেকে 919 00:51:05,690 --> 00:51:07,190 এন বিয়োগ এক এক. 920 00:51:07,190 --> 00:51:09,360 জানার জন্য? 921 00:51:09,360 --> 00:51:10,100 ঠিক আছে. 922 00:51:10,100 --> 00:51:11,610 >> তাই এখানে এটা দেখে মনে হচ্ছে কি. 923 00:51:11,610 --> 00:51:15,260 আপনি 2 সমান সমষ্টি আছে 2 প্লাস 1 এর সমষ্টি. 924 00:51:15,260 --> 00:51:18,930 এবং 1 কিছু প্লাস 1 0 0 যা এর সমষ্টি. 925 00:51:18,930 --> 00:51:20,216 জানার জন্য? 926 00:51:20,216 --> 00:51:25,342 আমরা স্ট্যাক তাকান সুতরাং আপনার প্রোগ্রাম, এই এটা দেখে মনে হচ্ছে কি না. 927 00:51:25,342 --> 00:51:26,820 >> প্রথমত, আমরা প্রধান ফাংশন আছে. 928 00:51:26,820 --> 00:51:30,320 এবং তারপর প্রধান ফাংশন সমষ্টি 2 বলা হয়. 929 00:51:30,320 --> 00:51:36,690 এবং তারপর সমষ্টি 2 ওহ, বলতে হবে, সমষ্টি 2 2 প্লাস এক সমষ্টি সমান. 930 00:51:36,690 --> 00:51:39,460 তাই আমি স্ট্যাকে 1 এর সমষ্টি যোগ করুন. 931 00:51:39,460 --> 00:51:43,860 এবং 1 এর সমষ্টি এর সমষ্টি কল করতে যাচ্ছে 0, যা যোগ করা যাচ্ছে 932 00:51:43,860 --> 00:51:44,630 স্ট্যাকে. 933 00:51:44,630 --> 00:51:49,240 এবং যে এই বেশী তারপর প্রতিটি অন্য উপরে ফিরে যাও, 934 00:51:49,240 --> 00:51:52,020 অন্যান্য বেশী বর্তা পারেন. 935 00:51:52,020 --> 00:51:56,240 >> সুতরাং উদাহরণস্বরূপ, এখানে, 0 সমষ্টি, প্রথম, 0 ফিরে যাচ্ছে. 936 00:51:56,240 --> 00:51:58,320 এবং তারপর 1 এর সমষ্টি নির্বাচন করুন. 937 00:51:58,320 --> 00:52:00,850 তারপর 1 এর সমষ্টি যাচ্ছে 2 এর সমষ্টি 1 ফিরে. 938 00:52:00,850 --> 00:52:03,900 এবং পরিশেষে, 2 এর সমষ্টি যাচ্ছে প্রধান 3 ফিরে. 939 00:52:03,900 --> 00:52:05,320 যে জানার জন্য? 940 00:52:05,320 --> 00:52:09,496 >> এটা বুঝতে খুব গুরুত্বপূর্ণ স্ট্যাকের কাজ এবং চেষ্টা করা হয় 941 00:52:09,496 --> 00:52:11,980 এটা জ্ঞান করে তোলে দেখুন. 942 00:52:11,980 --> 00:52:13,260 ঠিক আছে, তাই বাছাই. 943 00:52:13,260 --> 00:52:16,170 সুতরাং কেন, গুরুত্বপূর্ণ বাছাই করা হয় প্রথম সব? 944 00:52:16,170 --> 00:52:18,260 কেন আমরা যত্ন করা উচিত? 945 00:52:18,260 --> 00:52:20,310 যে কেউ? 946 00:52:20,310 --> 00:52:20,695 আমাকে একটা উদাহরণ দিন? 947 00:52:20,695 --> 00:52:21,040 হ্যাঁ? 948 00:52:21,040 --> 00:52:22,968 >> শ্রোতা: [শ্রবণাতীত]. 949 00:52:22,968 --> 00:52:24,700 >> LUCAS: ঠিক আছে, হ্যাঁ. 950 00:52:24,700 --> 00:52:26,090 সুতরাং আপনি আরো দক্ষতার অনুসন্ধান করতে পারেন. 951 00:52:26,090 --> 00:52:28,580 এটা একটা ভাল উপায়. 952 00:52:28,580 --> 00:52:32,462 উদাহরণস্বরূপ, আমরা একটি অনেক আছে জিনিষ, আসলে, আমাদের জীবনের যে 953 00:52:32,462 --> 00:52:32,920 সাজানো হয়. 954 00:52:32,920 --> 00:52:34,830 উদাহরণস্বরূপ, অভিধান. 955 00:52:34,830 --> 00:52:39,210 >> এটা সব আছে খুব গুরুত্বপূর্ণ যাতে কিছু শব্দ যে আমরা 956 00:52:39,210 --> 00:52:41,970 সহজে অ্যাক্সেস করতে পারেন. 957 00:52:41,970 --> 00:52:43,280 সুতরাং যে তিনি বলার অপেক্ষা রাখে না কি. 958 00:52:43,280 --> 00:52:45,530 আপনি আরও দক্ষতার অনুসন্ধান করতে পারেন. 959 00:52:45,530 --> 00:52:48,740 এটি একটি আছে হবে কিভাবে হার্ড চিন্তা কথায় যা অভিধান 960 00:52:48,740 --> 00:52:49,500 র্যান্ডম ক্রম. 961 00:52:49,500 --> 00:52:53,120 আপনি অনেক সুন্দর, তাকান করতে হবে প্রতি একক শব্দ আপনি খুঁজে না হওয়া পর্যন্ত 962 00:52:53,120 --> 00:52:54,720 আপনি যা খুঁজছেন যে শব্দ. 963 00:52:54,720 --> 00:52:58,710 >> এছাড়াও আপনি ফেসবুক ব্যবহার করছেন, যখন আপনি আপনার বন্ধুদের এ খুঁজছেন, আপনি আছেন 964 00:52:58,710 --> 00:53:03,540 ফেসবুক করা দেখতে যাচ্ছে আপনার কাছাকাছি বন্ধু বেশী উপরে 965 00:53:03,540 --> 00:53:05,470 আপনি যে অনেক কথা বলতে না. 966 00:53:05,470 --> 00:53:08,080 আপনি নীচে সমস্ত উপায় যান আপনার বন্ধু তালিকা, আপনি দেখতে যাচ্ছেন 967 00:53:08,080 --> 00:53:11,250 আপনি সম্ভবত এমনকি না যে মানুষ আপনার সাথে বন্ধু মনে রাখবেন. 968 00:53:11,250 --> 00:53:14,590 এবং যে ফেসবুক প্রকারের কারণ কিভাবে উপর ভিত্তি করে আপনার বন্ধুদের 969 00:53:14,590 --> 00:53:16,472 আপনি তাদের থেকে হয় বন্ধ. 970 00:53:16,472 --> 00:53:17,930 >> তাই তথ্য সংগঠিত. 971 00:53:17,930 --> 00:53:18,450 এছাড়াও পোকেমন. 972 00:53:18,450 --> 00:53:21,400 সুতরাং আপনি সব pokemons দেখতে সংখ্যা আছে. 973 00:53:21,400 --> 00:53:27,210 এবং যে একটি সহজ মত তথ্য অ্যাক্সেস এর উপায়. 974 00:53:27,210 --> 00:53:29,050 >> শ্রোতা: পোকেমন প্রবেশ. 975 00:53:29,050 --> 00:53:29,890 >> LUCAS: হ্যাঁ. 976 00:53:29,890 --> 00:53:32,395 >> শ্রোতা: [শ্রবণাতীত]. 977 00:53:32,395 --> 00:53:33,460 >> LUCAS: হাঁ. 978 00:53:33,460 --> 00:53:35,140 ঠিক আছে, তাই নির্বাচন সাজানোর. 979 00:53:35,140 --> 00:53:41,610 নির্বাচন সাজানোর নির্বাচন করতে যাচ্ছে একটি তালিকা ক্ষুদ্রতম পাঁচমিশালী মান প্রতিটি 980 00:53:41,610 --> 00:53:43,300 প্রতিটি পুনরাবৃত্তির সময়. 981 00:53:43,300 --> 00:53:46,800 এটা কোন ধরনের আপনি কি যে সাজানোর মত আপনার মাথার মধ্যে আপনি চেষ্টা করছেন 982 00:53:46,800 --> 00:53:48,430 হাতে একটি তালিকা বাছাই. 983 00:53:48,430 --> 00:53:51,990 >> মূলত, আপনি কি সব আপনি তাকান হয় ক্ষুদ্রতম সংখ্যার জন্য. 984 00:53:51,990 --> 00:53:54,280 আপনি অনুসারে সাজানো তালিকা রাখা. 985 00:53:54,280 --> 00:53:56,230 এবং তারপর আপনার জন্য চেহারা পরবর্তী সবচেয়ে ছোট সংখ্যা. 986 00:53:56,230 --> 00:54:00,080 এবং তারপর আপনি করছেন রাখা যে তাই. 987 00:54:00,080 --> 00:54:04,600 >> তাই নির্বাচন সাজানোর আপনি মূলত হয় প্রত্যেক সময় ক্ষুদ্রতম নির্বাচন 988 00:54:04,600 --> 00:54:05,750 পাঁচমিশালী মান. 989 00:54:05,750 --> 00:54:10,840 সাজানো শেষে রাখুন তালিকার অংশ. 990 00:54:10,840 --> 00:54:12,370 এবং যে করছেন রাখা. 991 00:54:12,370 --> 00:54:15,890 সুতরাং এর দ্রুত দেখুন কি ভালো দেখায়. 992 00:54:15,890 --> 00:54:19,340 তাই এখানে সাজানো এবং পাঁচমিশালী তালিকা. 993 00:54:19,340 --> 00:54:23,350 >> তালিকা অনুসারে বাছাই করা জন্য, প্রথমে এটি খালি. 994 00:54:23,350 --> 00:54:26,760 এবং তারপর আমি নির্বাচন করা যাচ্ছে না 2, যা এখানে সবচেয়ে ছোট সংখ্যা,. 995 00:54:26,760 --> 00:54:30,650 তাই আমি 2 নম্বর পেতে এবং আমি করা তালিকা সামনে. 996 00:54:30,650 --> 00:54:34,910 এবং তারপর আমি পরের ক্ষুদ্রতম জন্য চেহারা 3 যা উপাদান. 997 00:54:34,910 --> 00:54:37,050 তাই আমি শেষে এটা করা সাজানো তালিকা. 998 00:54:37,050 --> 00:54:38,140 এবং তারপর আমি যে করছেন রাখা. 999 00:54:38,140 --> 00:54:40,040 আমি 4 খুঁজে পেতে এবং শেষে এটা করা. 1000 00:54:40,040 --> 00:54:41,360 5 খুঁজুন এবং শেষে এটা করা. 1001 00:54:41,360 --> 00:54:44,830 >> এবং যারা বার কিভাবে এ সব যে চেহারা আমি, শেষ হয় এ এটা করা বলছে 1002 00:54:44,830 --> 00:54:46,850 মূলত, দুটি মান সোয়াপিং. 1003 00:54:46,850 --> 00:54:48,100 ঠিক আছে? 1004 00:54:48,100 --> 00:54:50,140 1005 00:54:50,140 --> 00:54:52,825 এবং তারপর গত এক, আপনি শুধু আরো এক উপাদান আছে. 1006 00:54:52,825 --> 00:54:55,870 তাই এটি ইতিমধ্যেই সাজানো. 1007 00:54:55,870 --> 00:54:57,800 >> ঠিক আছে, তাই সন্নিবেশ সাজানোর. 1008 00:54:57,800 --> 00:55:03,180 সন্নিবেশ সাজানোর আপনি আছে চলুন একটি সাজানো থাকার যে জিনিস এবং 1009 00:55:03,180 --> 00:55:04,690 একটি পাঁচমিশালী তালিকা. 1010 00:55:04,690 --> 00:55:14,540 শুধুমাত্র জিনিস যে প্রত্যেক সময় যে আপনি সাজানো একটি উপাদান যোগ করছি 1011 00:55:14,540 --> 00:55:18,170 তালিকা, আপনি শুধু উপাদান বাছাই পাঁচমিশালী তালিকা সামনে. 1012 00:55:18,170 --> 00:55:20,880 এবং তারপর আপনি কি এটি চালু করছি অবস্থান এটা সাজানো হতে হবে 1013 00:55:20,880 --> 00:55:22,300 তালিকার অংশ. 1014 00:55:22,300 --> 00:55:25,840 >> এর এই কি দেখতে দিন এই আরো ইন্দ্রিয় তোলে. 1015 00:55:25,840 --> 00:55:29,360 তাই প্রথমে, উদাহরণস্বরূপ, আমি চেষ্টা করছি এর মধ্যে তিন নম্বর সন্নিবেশ করা 1016 00:55:29,360 --> 00:55:30,680 তালিকা সাজানো অংশ. 1017 00:55:30,680 --> 00:55:31,800 তাই তালিকা কিছু নেই. 1018 00:55:31,800 --> 00:55:34,160 তাই আমি ঠিক 3 নম্বর লাগাতে পারেন. 1019 00:55:34,160 --> 00:55:37,480 >> এখন, আমি 5 নম্বর যোগ করতে চান তালিকা সাজানো অংশ. 1020 00:55:37,480 --> 00:55:38,900 তাই আমি 5 নম্বর তাকান. 1021 00:55:38,900 --> 00:55:40,450 আমি এটি 3 এর চেয়ে বড় যে বিজ্ঞপ্তি. 1022 00:55:40,450 --> 00:55:41,980 তাই আমি এটি 3 পর হতে হয়েছে জানি. 1023 00:55:41,980 --> 00:55:44,100 তাই আমি 3 ও 5 করা. 1024 00:55:44,100 --> 00:55:45,940 >> তারপর আমি 2 নম্বর সন্নিবেশ করতে চান. 1025 00:55:45,940 --> 00:55:51,630 আমি 2 নম্বর আসলে বিজ্ঞপ্তি তারপর 3 এবং 5 উভয় শেষ. 1026 00:55:51,630 --> 00:55:54,580 আমি আসলে এটা সব করা আছে তালিকার শুরুতে উপায়. 1027 00:55:54,580 --> 00:55:59,030 তাই আমি ধরনের, সব নামান আছে অনুসারে সাজানো তালিকা যাতে আমি করতে পারেন উপাদান 1028 00:55:59,030 --> 00:56:01,970 সংখ্যা 2 জন্য জায়গা. 1029 00:56:01,970 --> 00:56:03,160 >> তারপর আমি 6 নম্বর দেখুন. 1030 00:56:03,160 --> 00:56:05,450 আমি এটি 5 পরে হতে হবে দেখতে. 1031 00:56:05,450 --> 00:56:06,240 তাই আমি সেখানে রাখা. 1032 00:56:06,240 --> 00:56:07,965 এবং পরিশেষে, আমি 4 নম্বর তাকান. 1033 00:56:07,965 --> 00:56:11,030 এবং আমি এটা করা উচিত বিজ্ঞপ্তি 3 ও 5 এর মধ্যে হতে. 1034 00:56:11,030 --> 00:56:14,870 এবং তারপর আমি সেখানে এটা করা এবং স্থানান্তর সমস্ত অন্যান্য উপাদান. 1035 00:56:14,870 --> 00:56:16,120 জানার জন্য? 1036 00:56:16,120 --> 00:56:17,880 1037 00:56:17,880 --> 00:56:19,150 >> বুদ্বুদ সাজানোর. 1038 00:56:19,150 --> 00:56:25,730 সুতরাং বুদ্বুদ সাজানোর আপনি কি মূলত যাচ্ছে আমরা বুদ্বুদ কল do-- থেকে 1039 00:56:25,730 --> 00:56:30,113 আপনি list-- মধ্য দিয়ে যেতে সাজানোর কারণ আমি শুধু দেখাতে যদি এটা আসলে ভাল 1040 00:56:30,113 --> 00:56:32,300 আপনি আপাততঃ চাই 1041 00:56:32,300 --> 00:56:35,030 এবং আপনি তুলনা করতে যাচ্ছেন সন্নিহিত সংখ্যা. 1042 00:56:35,030 --> 00:56:38,410 এবং যদি আপনি অদলবদল করতে যাচ্ছেন তাদের অবস্থানের তারা যদি না হন 1043 00:56:38,410 --> 00:56:39,190 ডান ক্রম. 1044 00:56:39,190 --> 00:56:42,570 >> তাই মূলত, কি যাচ্ছে এখানে ঘটেছে, যেমন, 1045 00:56:42,570 --> 00:56:44,160 আপনি 8 এবং 6 আছে. 1046 00:56:44,160 --> 00:56:47,270 আপনি যে সাজানো ক্রম করবে না আসলে ডান 6 এবং 5, হবে? 1047 00:56:47,270 --> 00:56:49,540 তাই আপনি যদি আদেশ অদলবদল করতে যাচ্ছেন. 1048 00:56:49,540 --> 00:56:51,370 তারপর আমি এখানে 8 এবং 4 দেখুন. 1049 00:56:51,370 --> 00:56:52,250 এবং আমি একই জিনিস করে. 1050 00:56:52,250 --> 00:56:53,400 আমি আবার অদলবদল. 1051 00:56:53,400 --> 00:56:55,070 এবং পরিশেষে, 2 এবং 8. 1052 00:56:55,070 --> 00:56:56,670 আমি তাদের অদলবদল. 1053 00:56:56,670 --> 00:57:01,690 >> এটা বুদ্বুদ সাজানোর কারণ পরে বলা এই পুনরাবৃত্তিও প্রতিটি, আসলে, 1054 00:57:01,690 --> 00:57:05,910 তালিকার মধ্যে বৃহত্তম সংখ্যা সব পায় তালিকার শেষে উপায়. 1055 00:57:05,910 --> 00:57:06,940 যে জানার জন্য? 1056 00:57:06,940 --> 00:57:11,880 এটা সোয়াপিং রাখে, কারণ এবং ডান থেকে এটি পরিবর্তনশীল. 1057 00:57:11,880 --> 00:57:14,440 >> ঠিক আছে, তাই এই দ্বিতীয় পুনরাবৃত্তির. 1058 00:57:14,440 --> 00:57:17,200 এটা একই জিনিস হবে. 1059 00:57:17,200 --> 00:57:20,190 আমি এক swap 'র কি হবে এবং তারপর গত এক. 1060 00:57:20,190 --> 00:57:23,290 কোন অদলবদল আছে আমি যে এবং তালিকা অনুসারে বাছাই করা হয়. 1061 00:57:23,290 --> 00:57:27,460 বুদ্বুদ সাজানোর, আমরা মূলত রাখা তালিকা দিয়ে যাচ্ছে এবং সোয়াপিং 1062 00:57:27,460 --> 00:57:32,310 কিছু আমি কি না লক্ষ্য করা যে পর্যন্ত যে পুনরাবৃত্তির করছেন কোনো অদলবদল, যা 1063 00:57:32,310 --> 00:57:34,270 ইতিমধ্যে তালিকা অনুসারে বাছাই করা হয় এর মানে হল যে. 1064 00:57:34,270 --> 00:57:35,520 জানার জন্য? 1065 00:57:35,520 --> 00:57:38,400 1066 00:57:38,400 --> 00:57:40,870 >> এর একটি সামান্য বিট কথা বলা যাক চলমান সময় সম্পর্কে. 1067 00:57:40,870 --> 00:57:45,165 তাই আপনাকে বলছি বিগ মনে রাখবেন না হে, ওমেগা, এবং থীটা? 1068 00:57:45,165 --> 00:57:49,290 1069 00:57:49,290 --> 00:57:50,990 হ্যাঁ? 1070 00:57:50,990 --> 00:57:53,070 ঠিক আছে, বিগ হে প্রথম সব, কি হয়? 1071 00:57:53,070 --> 00:57:54,315 >> শ্রোতা: [শ্রবণাতীত]. 1072 00:57:54,315 --> 00:57:59,070 >> LUCAS: হ্যাঁ, এটি একটি খারাপ ক্ষেত্রে বলা হচ্ছে শুধু যে এটা যার মানে রানটাইম, 1073 00:57:59,070 --> 00:58:03,470 আপনি কত প্রোগ্রাম আশা রান নিতে. 1074 00:58:03,470 --> 00:58:04,910 ভালো লেগেছে, পদ র 1075 00:58:04,910 --> 00:58:06,660 এই ক্ষেত্রেই n মধ্যে. 1076 00:58:06,660 --> 00:58:09,150 উপাদানের সংখ্যা সবচেয়ে খারাপ ক্ষেত্রে তালিকা. 1077 00:58:09,150 --> 00:58:12,520 ভালো লেগেছে, সম্ভাব্য সবচেয়ে খারাপ ক্ষেত্রে. 1078 00:58:12,520 --> 00:58:17,100 >> বুদ্বুদ সাজানোর জন্য উদাহরণস্বরূপ, আমরা n বর্গ বিগ হে আছে. 1079 00:58:17,100 --> 00:58:20,580 কেন আমরা যে আছে না? 1080 00:58:20,580 --> 00:58:24,716 কেন বাবল বিগ হে এন বর্গ বাছাই করা হয়? 1081 00:58:24,716 --> 00:58:27,614 >> শ্রোতা: [শ্রবণাতীত]. 1082 00:58:27,614 --> 00:58:35,670 >> LUCAS: হ্যাঁ, তাই সবচেয়ে খারাপ ক্ষেত্রে হতে হবে যে আমি n পুনরাবৃত্তিও করতে হবে. 1083 00:58:35,670 --> 00:58:39,260 তাই পুনরাবৃত্তিও প্রতিটি যাচ্ছে শেষ বৃহত্তম উপাদান আনা 1084 00:58:39,260 --> 00:58:40,290 তালিকা. 1085 00:58:40,290 --> 00:58:44,230 তাই সবচেয়ে খারাপ ক্ষেত্রে আমি আছে যে জিনিস n বার করতে. 1086 00:58:44,230 --> 00:58:48,550 এবং যারা বার জন্য, আমি আছে আমি তুলনা করতে হবে, কারণ এন অদলবদল করতে 1087 00:58:48,550 --> 00:58:49,870 প্রতিটি দুটি উপাদান. 1088 00:58:49,870 --> 00:58:53,730 এটা স্কয়ার্ড n এর সুতরাং যে কেন এটি এন এন বার কারণ. 1089 00:58:53,730 --> 00:59:00,120 >> তারপর, নির্বাচন সাজানোর এ এন বর্গক্ষেত্র কারণ, প্রতিটি পুনরাবৃত্তির জন্য, আমি আছে 1090 00:59:00,120 --> 00:59:02,650 প্রতি একক উপাদান তাকান তালিকায়. 1091 00:59:02,650 --> 00:59:04,980 এবং তারপর, ক্ষুদ্রতম খুঁজে যা আমি মানে 1092 00:59:04,980 --> 00:59:06,130 n উপাদান মাধ্যমে সন্ধান. 1093 00:59:06,130 --> 00:59:11,750 এবং আমি যে কারণ n বার করতে হবে আমি সব n উপাদান নির্বাচন করা আছে. 1094 00:59:11,750 --> 00:59:18,273 >> একটি সন্নিবেশ সাজানোর এ এন বর্গক্ষেত্র লক দৃশ্যকল্প হবে কারণ 1095 00:59:18,273 --> 00:59:20,950 এক হতে পারে, আমি সন্নিবেশ আছে এন নম্বর, ডান? 1096 00:59:20,950 --> 00:59:22,765 তাই আমি ইতিমধ্যে আমি যাচ্ছি জানি যে, এন পুনরাবৃত্তিও আছে. 1097 00:59:22,765 --> 00:59:25,466 1098 00:59:25,466 --> 00:59:29,840 কিন্তু আমি ঐ সংখ্যার প্রতিটি জন্য, যদি সংখ্যার সকল তাকান 1099 00:59:29,840 --> 00:59:34,380 অনুসারে সাজানো তালিকা এবং এটি সমস্ত উপায় করা সামনে, যে n বর্গ হতে হবে 1100 00:59:34,380 --> 00:59:36,230 এটি এন এন বার আবার হতে হবে. 1101 00:59:36,230 --> 00:59:38,280 জানার জন্য? 1102 00:59:38,280 --> 00:59:41,512 কি ওমেগা সম্পর্কে? 1103 00:59:41,512 --> 00:59:42,886 >> শ্রোতা: [শ্রবণাতীত]. 1104 00:59:42,886 --> 00:59:44,620 >> LUCAS: এটা শ্রেষ্ঠ কেস দৃশ্যকল্প এর. 1105 00:59:44,620 --> 00:59:48,810 সুতরাং এটা বার অনেক জন্য, মত শ্রেষ্ঠ কেস দৃশ্যকল্প হয়, বাছাই 1106 00:59:48,810 --> 00:59:50,660 ইতিমধ্যে তালিকা অনুসারে বাছাই করা হয়. 1107 00:59:50,660 --> 00:59:52,670 তাই আপনি যদি সত্যিই না কিছু করতে. 1108 00:59:52,670 --> 00:59:56,290 বুদ্বুদ সাজানোর সেরা হয়েছে n এর ক্ষেত্রে দৃশ্যকল্প. 1109 00:59:56,290 --> 00:59:58,820 আপনি যদি না কেন জানেন? 1110 00:59:58,820 --> 01:00:00,620 >> শ্রোতা: [শ্রবণাতীত]. 1111 01:00:00,620 --> 01:00:05,640 >> LUCAS: হ্যাঁ, আপনি ট্র্যাক রাখা তথ্য রেশন কোনো অদলবদল ছিল কিনা বা 1112 01:00:05,640 --> 01:00:10,533 আপনি কিছু আছে না, সেট মত একটি পুনরাবৃত্তির যদি ছিল, যদি সত্য 1113 01:00:10,533 --> 01:00:15,140 ইতিমধ্যে তালিকা, মূলত সাজানো হয় কি ঘটতে যাচ্ছে আমি যাচ্ছি হয় 1114 01:00:15,140 --> 01:00:17,890 প্রতিটি দুই অদলবদল করার চেষ্টা করুন সন্নিহিত উপাদান. 1115 01:00:17,890 --> 01:00:19,920 আমি যে দেখতে যাচ্ছি কোন অদলবদল করা হয়. 1116 01:00:19,920 --> 01:00:21,230 এবং আমি ঠিক এখুনি ফিরে. 1117 01:00:21,230 --> 01:00:24,240 >> তাই এটা আমি ঠিক ছিল অর্থ তালিকা এক সময় দিয়ে যান. 1118 01:00:24,240 --> 01:00:28,990 আমি চেহারা, কারণ তাই এটি এন এর n উপাদান এ. 1119 01:00:28,990 --> 01:00:30,930 কেন নির্বাচন সাজানোর এন স্কয়ার? 1120 01:00:30,930 --> 01:00:35,150 1121 01:00:35,150 --> 01:00:45,520 >> হ্যাঁ, তালিকা অনুসারে বাছাই করা হয়, এমনকি যদি জন্য নির্বাচন সাজানোর প্রতি পুনরাবৃত্তির, আমি 1122 01:00:45,520 --> 01:00:47,590 সর্বনিম্ন উপাদান নির্বাচন করা আছে. 1123 01:00:47,590 --> 01:00:49,980 সুতরাং যে আমি চেহারা আউট আছে যে মানে পাঁচমিশালী সব উপাদান 1124 01:00:49,980 --> 01:00:53,350 তালিকা এবং সর্বনিম্ন খুঁজে প্রতিটি পুনরাবৃত্তির জন্য. 1125 01:00:53,350 --> 01:00:54,600 যে জানার জন্য? 1126 01:00:54,600 --> 01:00:56,880 1127 01:00:56,880 --> 01:01:04,690 >> এবং সন্নিবেশ তলোয়ার কারণ n হয় আমি সন্নিবেশ করার চেষ্টা করছি যে ক্ষেত্রে 1128 01:01:04,690 --> 01:01:09,320 সংখ্যা এবং সংখ্যার সব, যখন আমি তাদের সন্নিবেশ করার চেষ্টা করুন, আমি মনে করি তারা দেখতে 1129 01:01:09,320 --> 01:01:10,510 সঠিক অবস্থানে আছে. 1130 01:01:10,510 --> 01:01:15,120 আমি অন্য সব পরীক্ষা যেতে হবে না পাঁচমিশালী তালিকা মধ্যে সংখ্যা. 1131 01:01:15,120 --> 01:01:17,170 এটি এন হতে হবে সুতরাং যে কেন. 1132 01:01:17,170 --> 01:01:19,480 জানার জন্য? 1133 01:01:19,480 --> 01:01:21,035 এবং থেটা কি? 1134 01:01:21,035 --> 01:01:23,410 >> শ্রোতা: [শ্রবণাতীত]. 1135 01:01:23,410 --> 01:01:24,380 >> LUCAS: কি, দুঃখিত? 1136 01:01:24,380 --> 01:01:24,960 আবার এটা বলুন. 1137 01:01:24,960 --> 01:01:25,666 >> শ্রোতা: [শ্রবণাতীত]. 1138 01:01:25,666 --> 01:01:26,490 >> LUCAS: ঠিক. 1139 01:01:26,490 --> 01:01:31,280 সুতরাং আপনি যে শুধুমাত্র নির্বাচন দেখতে পারেন মার্জ মধ্যে সংরক্ষিত সাজানোর thetas আছে. 1140 01:01:31,280 --> 01:01:39,920 আপনি শুধুমাত্র থেটা আছে এবং যে কারণ বিগ হে এবং ওমেগা উভয় একই হয়. 1141 01:01:39,920 --> 01:01:41,520 ঠিক আছে. 1142 01:01:41,520 --> 01:01:44,210 এবং পরিশেষে, লগ n মধ্যে সাজানোর একত্রীকরণ. 1143 01:01:44,210 --> 01:01:48,910 >> ড্যান বলছে ছিল হিসাবে এবং তারপর,, সাজানোর মার্জ ধরনের একই ভাবে ভালো হয় 1144 01:01:48,910 --> 01:01:50,320 আপনি বাইনারি অনুসন্ধান. 1145 01:01:50,320 --> 01:01:53,530 তাই আপনি যদি তালিকা পেতে. 1146 01:01:53,530 --> 01:01:55,170 এবং আপনি অর্ধেক কাটা যাচ্ছে. 1147 01:01:55,170 --> 01:02:00,580 এবং তারপর আপনি তাদের কাটা ছোট অর্ধেক. 1148 01:02:00,580 --> 01:02:01,730 এবং তারপর আপনি তাদের একত্রীকরণ. 1149 01:02:01,730 --> 01:02:02,960 আপনি না ডান, মনে রাখবেন, যে? 1150 01:02:02,960 --> 01:02:04,960 ঠিক আছে, তিনি ছিল. 1151 01:02:04,960 --> 01:02:08,330 >> ঠিক আছে, পয়েন্টার. 1152 01:02:08,330 --> 01:02:11,078 সুতরাং একটি পয়েন্টার কি? 1153 01:02:11,078 --> 01:02:12,050 >> শ্রোতা: [শ্রবণাতীত]. 1154 01:02:12,050 --> 01:02:12,820 >> LUCAS: একটি ঠিকানা. 1155 01:02:12,820 --> 01:02:13,720 ঠিক আছে. 1156 01:02:13,720 --> 01:02:18,530 আমি ডেভিড একটি গুচ্ছ দেখায় জানি যে Binky এর ভিডিও এবং কিছু নির্দেশ 1157 01:02:18,530 --> 01:02:19,080 একে অপরের. 1158 01:02:19,080 --> 01:02:22,960 কিন্তু আমি পয়েন্টার মনে করতে চান নিছক একটি ঠিকানা হিসাবে. 1159 01:02:22,960 --> 01:02:26,110 সুতরাং এটি চালু করা হয় যে একটি পরিবর্তনশীল একটি ঠিকানা সংরক্ষণ করে. 1160 01:02:26,110 --> 01:02:31,940 >> তাই এটি শুধু এই বিশেষ পরিবর্তনশীল যে চার বাইট দীর্ঘ. 1161 01:02:31,940 --> 01:02:36,550 কিছু যে পয়েন্টার মনে রাখবেন, আমাদের 32 বিট জন্য দীর্ঘ সবসময় চার বাইট 1162 01:02:36,550 --> 01:02:39,370 মেশিন কেস সঙ্গে তাই প্রয়োগ. 1163 01:02:39,370 --> 01:02:41,920 1164 01:02:41,920 --> 01:02:47,050 এবং এটি শুধু অবস্থান আছে এটা ভিতরে একটি পরিবর্তনশীল. 1165 01:02:47,050 --> 01:02:50,240 >> ঠিক আছে, তাই মূলত, এই মেমরি আছে. 1166 01:02:50,240 --> 01:02:57,420 তাই মেমরি প্রতিটি ব্লক আসলে একটি ঠিকানা যা লেবেল, 1167 01:02:57,420 --> 01:02:58,890 slotty মেমরি. 1168 01:02:58,890 --> 01:03:02,370 সুতরাং যে আমি করতে পারেন এর মানে হল যে একটি পয়েন্টার প্রতি নির্দেশ 1169 01:03:02,370 --> 01:03:03,380 এই ঠিকানার কোনো. 1170 01:03:03,380 --> 01:03:09,930 তাই আমরা পয়েন্টার ব্যবহার করব কারণ আমি অবস্থান মনে আছে 1171 01:03:09,930 --> 01:03:12,300 যে একটি নির্দিষ্ট পরিবর্তনশীল একটি স্মৃতি. 1172 01:03:12,300 --> 01:03:16,560 >> এবং যদি আপনি না মনে রাখবেন যারা এক যে আমি একটি ফাংশন আছে যদি ক্ষেত্রে ছিল 1173 01:03:16,560 --> 01:03:20,820 আমি আসলে আছে যদি আপনি চান reals জন্য swap 'র, আমি আসলে 1174 01:03:20,820 --> 01:03:22,110 একটি পয়েন্টার পাঠাতে হবে. 1175 01:03:22,110 --> 01:03:23,460 না পরিবর্তনশীল. 1176 01:03:23,460 --> 01:03:25,200 আপনি যদি না যে মনে করবেন না? 1177 01:03:25,200 --> 01:03:26,450 পার্থক্য between-- 1178 01:03:26,450 --> 01:03:33,350 1179 01:03:33,350 --> 01:03:34,120 নাম কি? 1180 01:03:34,120 --> 01:03:36,010 মান এবং কল করে কল করা রেফারেন্স দ্বারা, ডান? 1181 01:03:36,010 --> 01:03:36,840 >> হাঁ, ঠিক আছে. 1182 01:03:36,840 --> 01:03:38,330 তাই মান দ্বারা কল. 1183 01:03:38,330 --> 01:03:43,570 আপনি শুধু একটি পরিবর্তনশীল পাঠান আপনি শুধু একটি মান প্রেরণ করছেন কাজ. 1184 01:03:43,570 --> 01:03:45,610 সুতরাং আপনি আসলে প্রেরণ করছেন পরিবর্তনশীল এর একটি কপি. 1185 01:03:45,610 --> 01:03:49,720 এবং আপনার প্রোগ্রাম কম গ্রাহ্য না পারে আসলে একই পরিবর্তনশীল যদি সম্পর্কে 1186 01:03:49,720 --> 01:03:51,650 একটি কপি করে তোলে. 1187 01:03:51,650 --> 01:03:56,330 >> এবং রেফারেন্স যে মানে আহ্বান আমি আসলে একটি কপি পাঠানোর করছি 1188 01:03:56,330 --> 01:03:57,550 যে পরিবর্তনশীল পয়েন্টার. 1189 01:03:57,550 --> 01:04:00,970 তাই এটা আমি প্রেরণ করছি যে মানে যে পরিবর্তনশীল এর অবস্থান. 1190 01:04:00,970 --> 01:04:04,440 তাই আমি এর অবস্থান আছে অনুভূতি পরিবর্তনশীল, আমি যখন কল ফাংশন 1191 01:04:04,440 --> 01:04:09,700 পয়েন্টার সাথে, আমি আসলে করতে পারবেন না প্রধান ছিল যে তথ্য পরিবর্তন. 1192 01:04:09,700 --> 01:04:12,050 জানার জন্য? 1193 01:04:12,050 --> 01:04:17,560 >> যদিও, পয়েন্টার একটি কপি হয়, পয়েন্টার এখনও আসল ঠিকানা আছে 1194 01:04:17,560 --> 01:04:20,090 আমি পরিবর্তন করতে চান যে পরিবর্তনশীল. 1195 01:04:20,090 --> 01:04:21,920 জানার জন্য? 1196 01:04:21,920 --> 01:04:24,290 >> তাই পয়েন্টার তৈরি. 1197 01:04:24,290 --> 01:04:28,410 সবসময় পয়েন্টার আছে মনে রাখবেন, এটা নির্দেশ করে যে টাইপ 1198 01:04:28,410 --> 01:04:29,890 একটি তারকা এবং তারপর. 1199 01:04:29,890 --> 01:04:31,030 এবং তারপর আপনি নাম রাখা. 1200 01:04:31,030 --> 01:04:35,765 তাই আপনি যখনই মনে রাখবেন, যে যাই হোক না কেন তারা, এটা একটি পয়েন্টার মত 1201 01:04:35,765 --> 01:04:38,990 যাই হোক না কেন পরিবর্তনশীল যে যে আপনি ছিল টাইপ করুন. 1202 01:04:38,990 --> 01:04:42,850 >> সুতরাং এখানে তারা, যেমন, এটা একটি পয়েন্টার এবং একটি পূর্ণসংখ্যা. 1203 01:04:42,850 --> 01:04:47,680 এবং তারপর গৃহস্থালির কাজ তারা একটি পয়েন্টার গৃহস্থালির কাজ তারা এবং তাই ঘোষণা. 1204 01:04:47,680 --> 01:04:47,960 হ্যাঁ? 1205 01:04:47,960 --> 01:04:52,710 >> শ্রোতা: আমরা কি আছে একটি এন পয়েন্টার এক্স তারকা. 1206 01:04:52,710 --> 01:04:55,255 আমি যে এক্স একটি পয়েন্টার সৃষ্টি জানেন. 1207 01:04:55,255 --> 01:04:59,432 এটি একটি পূর্ণসংখ্যা x ডিক্লেয়ার করে? 1208 01:04:59,432 --> 01:05:05,170 >> LUCAS: ঠিক আছে, তাই আপনি যদি তারা x বলে, আপনি একটি একটি পয়েন্টার তৈরি করছি না 1209 01:05:05,170 --> 01:05:06,000 পরিবর্তনশীল x. 1210 01:05:06,000 --> 01:05:08,170 আপনি এক্স নামে একটি পয়েন্টার তৈরি করছি. 1211 01:05:08,170 --> 01:05:09,396 >> শ্রোতা: [শ্রবণাতীত]. 1212 01:05:09,396 --> 01:05:14,250 >> LUCAS: আমি এন তারা বলতে x সুতরাং যখন, আমি আরে, মেমরি, আমি যাচ্ছি, বলার অপেক্ষা রাখে না 1213 01:05:14,250 --> 01:05:16,390 এই তিনটি বাক্সে এক পেতে. 1214 01:05:16,390 --> 01:05:20,750 এবং আমি যে বলতে যাচ্ছি যা, এক্স হতে যাচ্ছে 1215 01:05:20,750 --> 01:05:22,000 যাচ্ছে একটি পয়েন্টার হতে হবে. 1216 01:05:22,000 --> 01:05:26,860 1217 01:05:26,860 --> 01:05:30,640 এবং পয়েন্টার সম্পর্কে আকর্ষণীয় কিছু আমরা তারা আছে বলে যে 1218 01:05:30,640 --> 01:05:32,620 একটি 32 বিট মেশিনের জন্য 4 বাইট. 1219 01:05:32,620 --> 01:05:36,320 এবং যে জন্য কারণ কারণ 4 বাইট 32 বিট. 1220 01:05:36,320 --> 01:05:40,490 >> 64 বিট আসলে যে এবং মেশিন পয়েন্টার ঠিকানা আছে 1221 01:05:40,490 --> 01:05:43,480 64 বিট দীর্ঘ হয়. 1222 01:05:43,480 --> 01:05:49,820 সুতরাং এটা মানে হল যে এর আকার মেশিনের মধ্যে ঠিকানা ভিন্ন. 1223 01:05:49,820 --> 01:05:52,270 >> তাই রেফারেন্স এবং Dereferencing. 1224 01:05:52,270 --> 01:05:54,310 দুই অপারেটর আছে আপনি যদি না মনে রাখা উচিত. 1225 01:05:54,310 --> 01:05:55,450 প্রথম এম্পারসেন্ড হয়. 1226 01:05:55,450 --> 01:05:56,810 দ্বিতীয় তারকা. 1227 01:05:56,810 --> 01:06:05,060 যে তারকা এবং এই দ্বারা বিভ্রান্ত করবেন না কারণ, মনে রাখবেন, যে একধরনের 1228 01:06:05,060 --> 01:06:06,950 এই ক্ষেত্রে, আপনি n তারা আছে. 1229 01:06:06,950 --> 01:06:08,700 >> এটি একসঙ্গে একটি পুরো জিনিস মত. 1230 01:06:08,700 --> 01:06:10,720 কোন স্কুল স্থান তারকা আছে. 1231 01:06:10,720 --> 01:06:12,070 সুতরাং এটি টাইপ এর মানে হল যে. 1232 01:06:12,070 --> 01:06:14,870 আপনি যখন যে মনে রাখবেন, পরিবর্তনশীল তারকা, আপনি আছেন 1233 01:06:14,870 --> 01:06:16,230 ধরন সম্পর্কে কথা বলা. 1234 01:06:16,230 --> 01:06:20,540 >> তারপর আপনি শুধু তারা এবং আছে পরিবর্তনশীল এর নাম, এটা মানে হল যে 1235 01:06:20,540 --> 01:06:24,100 আপনি পয়েন্টার, dereferencing করছি যা আপনি এ খুঁজছেন যে মানে 1236 01:06:24,100 --> 01:06:28,290 পয়েন্টার, ঠিকানা খুঁজে পেতে এটা , প্রতি নির্দেশ যে ঠিকানা যাচ্ছে, 1237 01:06:28,290 --> 01:06:30,850 এবং যখনই এ খুঁজছেন আপনি সেখানে আছে. 1238 01:06:30,850 --> 01:06:34,310 তাই আমি আপনি যখন যে আমার ছাত্র বলতে তারকা, আপনি যে এটা চিন্তা করা উচিত 1239 01:06:34,310 --> 01:06:36,850 বিষয়বস্তু সমাহার. 1240 01:06:36,850 --> 01:06:39,770 >> আপনি একটি ইশারা আছে, তাই যদি ও আপনি তারা পয়েন্টার কি, এটা 1241 01:06:39,770 --> 01:06:41,720 পয়েন্টার বিষয়বস্তু. 1242 01:06:41,720 --> 01:06:44,580 তাই আপনি যদি এটি এর প্রতি নির্দেশ যাই হোক না কেন যান এবং ধ্রুব বিষয়বস্তু তাকান. 1243 01:06:44,580 --> 01:06:47,730 এবং চিহ্ন; একই ঠিকানা হিসাবে জিনিস. 1244 01:06:47,730 --> 01:06:52,560 >> আমি ভালো ছাগু karigor.com একটি পরিবর্তনশীল আছে, তাই যদি যাক কোন int একটি সমান আমি বলতে 3-- 1245 01:06:52,560 --> 01:06:56,900 আমি যে এর ঠিকানা খুঁজতে চান পরিবর্তনশীল একটি মেমরি, আমি কি করতে পারেন 1246 01:06:56,900 --> 01:06:58,240 একটি ampersand. 1247 01:06:58,240 --> 01:07:00,280 সুতরাং এটি একটি ঠিকানা. 1248 01:07:00,280 --> 01:07:01,530 জানার জন্য? 1249 01:07:01,530 --> 01:07:03,790 1250 01:07:03,790 --> 01:07:05,040 >> তাই এখানে একটি উদাহরণ. 1251 01:07:05,040 --> 01:07:08,370 1252 01:07:08,370 --> 01:07:11,530 এই int খ এবং কোন int গ অনুপস্থিত. 1253 01:07:11,530 --> 01:07:16,520 একটি 3 উপায়ে সমান, তাই int যে আমি মেমরি যেতে যাচ্ছি. 1254 01:07:16,520 --> 01:07:19,870 এবং আমি একটি স্লট খুঁজে পাওয়া যাচ্ছে না এবং এখানে 3 নম্বর করা. 1255 01:07:19,870 --> 01:07:22,200 >> এবং তারপর কোন int খ 4 সমান. 1256 01:07:22,200 --> 01:07:23,100 আমি একই জিনিস করতে যাচ্ছি. 1257 01:07:23,100 --> 01:07:25,840 মেমরি যান এবং একটি সংখ্যা করা বাক্সে এক 4. 1258 01:07:25,840 --> 01:07:27,100 এবং কোন int 5 সমান. 1259 01:07:27,100 --> 01:07:29,740 অন্য একটি বক্স এবং খুঁজুন একটি সংখ্যা 5 করা. 1260 01:07:29,740 --> 01:07:36,160 >> তাই আউট করছেন এই লাইন কি? এন তারা বাবা এবং চিহ্ন; একটি সমান. 1261 01:07:36,160 --> 01:07:37,800 সুতরাং প্রথম সব, এন তারা বাবা. 1262 01:07:37,800 --> 01:07:39,050 এটা কি করছে? 1263 01:07:39,050 --> 01:07:40,930 1264 01:07:40,930 --> 01:07:42,298 >> শ্রোতা: [শ্রবণাতীত]. 1265 01:07:42,298 --> 01:07:47,890 >> LUCAS: হ্যাঁ, তাই এন তারা PA, প্রথম, বাবা নামক একটি পয়েন্টার ঘোষণা করে. 1266 01:07:47,890 --> 01:07:53,720 এবং তারপর এটি মান বরাদ্দ যে পয়েন্টার একটি ঠিকানা হতে. 1267 01:07:53,720 --> 01:07:55,790 সুতরাং একটি ampersand. 1268 01:07:55,790 --> 01:07:58,510 তারপর, আমি তারা PB না, একটি তারকা PB কি? 1269 01:07:58,510 --> 01:08:02,418 1270 01:08:02,418 --> 01:08:03,150 >> ওহ, দুঃখিত. 1271 01:08:03,150 --> 01:08:06,330 এই অনুপস্থিত. এন তারা PB. 1272 01:08:06,330 --> 01:08:07,905 আমি তারকা পিসি মানে. 1273 01:08:07,905 --> 01:08:11,200 আমি তাই দুঃখিত. 1274 01:08:11,200 --> 01:08:11,940 এটা একই জিনিস. 1275 01:08:11,940 --> 01:08:16,408 কিন্তু এখন আমি একটি পয়েন্টার তৈরি আরবী ভাল আছি তারপর গ একটি পয়েন্টার b এবং. 1276 01:08:16,408 --> 01:08:16,886 হ্যাঁ? 1277 01:08:16,886 --> 01:08:18,136 >> শ্রোতা: [শ্রবণাতীত]? 1278 01:08:18,136 --> 01:08:25,490 1279 01:08:25,490 --> 01:08:26,670 >> LUCAS: হ্যাঁ. 1280 01:08:26,670 --> 01:08:32,630 তাই আপনি যদি মেমরি যান এবং আপনি যান PA জন্য designator যে বক্স, 1281 01:08:32,630 --> 01:08:37,149 আপনি আসলে চলুন একটি একটি ঠিকানা দেখুন. 1282 01:08:37,149 --> 01:08:38,399 ঠিক আছে? 1283 01:08:38,399 --> 01:08:42,970 1284 01:08:42,970 --> 01:08:43,300 হ্যাঁ? 1285 01:08:43,300 --> 01:08:45,605 >> শ্রোতা: [শ্রবণাতীত]? 1286 01:08:45,605 --> 01:08:49,260 >> LUCAS: হ্যাঁ, পয়েন্টার একটি ঠিকানা. 1287 01:08:49,260 --> 01:08:50,120 যে ভুলবেন না. 1288 01:08:50,120 --> 01:08:52,800 এটা সবচেয়ে গুরুত্বপূর্ণ মত পয়েন্টার সম্পর্কে অংশ. 1289 01:08:52,800 --> 01:08:56,180 সংরক্ষণ এবং ঠিকানা আছে কিছু পরিবর্তনশীল. 1290 01:08:56,180 --> 01:08:56,890 অন্য কিছু? 1291 01:08:56,890 --> 01:08:58,370 অন্য কোন প্রশ্ন? 1292 01:08:58,370 --> 01:08:59,189 ঠিক আছে. 1293 01:08:59,189 --> 01:09:00,399 >> তাই পয়েন্টার এবং অ্যারে. 1294 01:09:00,399 --> 01:09:08,189 মনে রাখবেন যে, আমি অ্যারে 3 int না, মূলত, আমি কি করছি আমি ধরনের, না হয় 1295 01:09:08,189 --> 01:09:12,779 , একটি পয়েন্টার ঘোষণা. 1296 01:09:12,779 --> 01:09:18,960 সুতরাং অ্যারের ধরনের একটি একটি পয়েন্টার ভালো হয় মেমরি নির্দিষ্ট জায়গা যা আমি 1297 01:09:18,960 --> 01:09:21,999 পূর্ণসংখ্যার জন্য তিনটি স্লট বরাদ্দ. 1298 01:09:21,999 --> 01:09:23,430 যে জানার জন্য? 1299 01:09:23,430 --> 01:09:30,250 >> আমি int অ্যারে 3 যখন সুতরাং, আমি কি করছি করছেন, মূলত তিনটি তৈরি করা হয় 1300 01:09:30,250 --> 01:09:31,479 মেমরি স্লট. 1301 01:09:31,479 --> 01:09:33,899 তাই আমি ঠিক মেমরি তিনটি স্লট খুঁজে. 1302 01:09:33,899 --> 01:09:38,810 তাই আমি, তারপর, একটি তারকা অ্যারে, এটা করতে হলে মূলত অ্যারের বিষয়বস্তু মানে, 1303 01:09:38,810 --> 01:09:46,180 যা আমি যেতে, আমি পয়েন্টার নিশ্চিহ্ন মানে এটি এর প্রতি নির্দেশ যে যে জায়গায়, 1304 01:09:46,180 --> 01:09:47,939 এবং আমি এক নম্বর রাখা. 1305 01:09:47,939 --> 01:09:53,729 >> এবং তারপর, আমি তারা অ্যারে প্লাস 1 না, যে অ্যারের করছেন হিসাবে একই জিনিস 1306 01:09:53,729 --> 01:09:59,690 শুধু আমি যেতে, যার মানে, এক বন্ধনী এটা নির্দেশ করে যে জায়গা. 1307 01:09:59,690 --> 01:10:03,000 এবং তারপর প্লাস 1 তোলে আমার এক অবস্থান নামান. 1308 01:10:03,000 --> 01:10:06,510 তাই আমি, আসলে, এই অবস্থান থেকে যান এবং দুই নম্বর রাখা. 1309 01:10:06,510 --> 01:10:10,900 >> এবং তারপর, পরিশেষে, আমি যখন অ্যারে প্লাস 2, আমি যেখানে যেতে 1310 01:10:10,900 --> 01:10:11,825 এ অ্যারে এর প্রতি নির্দেশ. 1311 01:10:11,825 --> 01:10:14,690 এবং তারপর আমি মেমরি ব্লক সরাতে. 1312 01:10:14,690 --> 01:10:16,240 এবং তারপর আমি এখানে তিন নম্বর রাখা. 1313 01:10:16,240 --> 01:10:16,600 হ্যাঁ? 1314 01:10:16,600 --> 01:10:21,400 >> AUDIENCE: তাই তারা অ্যারে সহজভাবে হয় প্রথম বিন্দু বলছে. 1315 01:10:21,400 --> 01:10:25,090 এবং আপনি শুধু কারণ, 1 যোগ করতে পারেন আমরা শুধুমাত্র সত্যিই আছেন 1316 01:10:25,090 --> 01:10:27,295 যে প্রথম ঠিকানা উল্লেখ. 1317 01:10:27,295 --> 01:10:28,545 >> LUCAS: হ্যাঁ. 1318 01:10:28,545 --> 01:10:32,720 1319 01:10:32,720 --> 01:10:36,020 কেন আমরা, উদাহরণস্বরূপ, অ্যারে বলতে না 0, অ্যারে 1, এবং অ্যারের 2? 1320 01:10:36,020 --> 01:10:38,970 1321 01:10:38,970 --> 01:10:42,790 আমি, আপনি কেন 0 করবেন, বলছে 1, 2, 3 পরিবর্তে 1, 2, 3? 1322 01:10:42,790 --> 01:10:46,550 কারণ এক, এক, কম্পিউটার প্রোগ্রামারদের শুরু করতে পছন্দ 1323 01:10:46,550 --> 01:10:47,750 0 থেকে বেড়ে চলেছে. 1324 01:10:47,750 --> 01:10:52,370 আপনি অ্যারে 0 যখন কারণ দুই, হয় এটি অ্যারের করছেন হিসাবে একই জিনিস 1325 01:10:52,370 --> 01:10:56,330 যার মানে প্লাস 0, আমি যেতে যে অবস্থান, এবং আমি না 1326 01:10:56,330 --> 01:10:59,320 কোন মেমরি ব্লক লাফালাফি করা. 1327 01:10:59,320 --> 01:11:01,750 তাই আমি কোনো মেমরি ব্লক সরানো না. 1328 01:11:01,750 --> 01:11:02,015 হ্যাঁ? 1329 01:11:02,015 --> 01:11:03,265 >> শ্রোতা: [শ্রবণাতীত]? 1330 01:11:03,265 --> 01:11:05,928 1331 01:11:05,928 --> 01:11:12,670 >> LUCAS: তাই সে কি জিজ্ঞাসা এরকম মধ্যে পার্থক্য 1332 01:11:12,670 --> 01:11:14,000 এই বা malloc করছেন. 1333 01:11:14,000 --> 01:11:17,550 পার্থক্য এক যে int অ্যারে 3 একটি তৈরি হয় 1334 01:11:17,550 --> 01:11:19,260 স্ট্যাক অ্যারে. 1335 01:11:19,260 --> 01:11:23,080 এবং আমি malloc না, এটা গাদা তৈরি করে. 1336 01:11:23,080 --> 01:11:25,250 যে জানার জন্য? 1337 01:11:25,250 --> 01:11:28,870 >> সুতরাং কিভাবে malloc আসলে কাজ করে? 1338 01:11:28,870 --> 01:11:32,245 তাই কেন আমরা এমনকি malloc ব্যবহার করতে হবে? 1339 01:11:32,245 --> 01:11:35,730 1340 01:11:35,730 --> 01:11:39,700 পরিসংখ্যান আপনার কম্পাইলার ধরনের সব আপনি ঘোষণা যে ভেরিয়েবল. 1341 01:11:39,700 --> 01:11:44,040 এবং তিনি সব জন্য স্থান তৈরি করে স্ট্যাকের মধ্যে তাদের. 1342 01:11:44,040 --> 01:11:47,180 সুতরাং আপনার ভেরিয়েবল সব যাচ্ছে কোথাও স্ট্যাকের মধ্যে হতে হবে. 1343 01:11:47,180 --> 01:11:49,460 তাই এখানে পরিবেশের হয়. 1344 01:11:49,460 --> 01:11:53,850 >> যারা ভেরিয়েবল জন্য তাই মূলত, স্থান মেমরি বরাদ্দ করা হয় 1345 01:11:53,850 --> 01:11:55,080 সময় সঙ্কলন. 1346 01:11:55,080 --> 01:11:58,790 তাই এটা আপনার কম্পিউটারে যে মানে যারা ভেরিয়েবল সব জানতে 1347 01:11:58,790 --> 01:11:59,790 পূর্বেই. 1348 01:11:59,790 --> 01:12:02,500 এটা কি মান জানা প্রয়োজন না আপনি তাদের রাখা চলুন. 1349 01:12:02,500 --> 01:12:05,490 কিন্তু এটা কিভাবে জানা প্রয়োজন আপনি প্রয়োজন অনেক স্মৃতি. 1350 01:12:05,490 --> 01:12:09,380 >> কিন্তু এখন, এর, উদাহরণস্বরূপ, যে বলা যাক আপনি একটি অ্যারের তৈরি বা গ্রহণ করছেন 1351 01:12:09,380 --> 01:12:13,430 আপনি গ্রহণ করছেন স্ট্রিং ব্যবহারকারীর কাছ থেকে. 1352 01:12:13,430 --> 01:12:17,300 আপনি জানেন না কিভাবে দীর্ঘ স্ট্রিং যেমন, হতে যাচ্ছে. 1353 01:12:17,300 --> 01:12:20,600 সুতরাং আপনি ঠিক কত জানি না মেমরি ব্লক আপনি সঠিক, বরাদ্দ করা? 1354 01:12:20,600 --> 01:12:24,120 >> তাই এটা সত্যিই না করা অর্থে না আপনি 100 অক্ষর করা বলে. 1355 01:12:24,120 --> 01:12:26,420 এবং তারপর ব্যবহারকারী 150 লিখেছেন কি? 1356 01:12:26,420 --> 01:12:27,670 আপনি মাতাল করা চলুন. 1357 01:12:27,670 --> 01:12:30,160 1358 01:12:30,160 --> 01:12:34,620 >> তাই মূলত, আপনি কিভাবে নিশ্চিত হতে পারে না আপনি বরাদ্দ করা প্রয়োজন অনেক মেমরি 1359 01:12:34,620 --> 01:12:35,960 যখন আপনি প্রোগ্রাম কম্পাইল. 1360 01:12:35,960 --> 01:12:38,240 আপনি শুধুমাত্র রান সময় জানি. 1361 01:12:38,240 --> 01:12:39,950 আপনি গাদা আছে সুতরাং যে কেন. 1362 01:12:39,950 --> 01:12:47,610 সুতরাং গাদা মেমরি আছে যাচ্ছে আপনি সময় বণ্টন করছেন যে 1363 01:12:47,610 --> 01:12:50,810 প্রোগ্রাম সময়কাল. 1364 01:12:50,810 --> 01:12:55,780 >> তাই মূলত, আপনি malloc যখন, কি আপনি মেমরি বণ্টন করা হয় করছেন 1365 01:12:55,780 --> 01:13:00,160 আপনি যার মানে রানটাইম, যে মুহূর্তে সঠিক সিদ্ধান্ত যে আপনি 1366 01:13:00,160 --> 01:13:02,670 যে মেমরি থাকতে হবে. 1367 01:13:02,670 --> 01:13:04,210 আপনি এটি বণ্টন করছেন সুতরাং যখন যে. 1368 01:13:04,210 --> 01:13:06,430 যে জানার জন্য? 1369 01:13:06,430 --> 01:13:11,690 >> সুতরাং স্ট্যাকের ভেরিয়েবল আছে, মনে রাখবেন, যে কম্পাইল সময় উপর নির্মিত হয়. 1370 01:13:11,690 --> 01:13:14,560 এবং তারপর গাদা ভেরিয়েবল আছে হিসাবে আপনি যেতে তৈরি করা হয় যে 1371 01:13:14,560 --> 01:13:15,600 উদাহরণ জন্য malloc সঙ্গে. 1372 01:13:15,600 --> 01:13:16,850 >> শ্রোতা: [শ্রবণাতীত]? 1373 01:13:16,850 --> 01:13:19,179 1374 01:13:19,179 --> 01:13:24,340 >> LUCAS: সুতরাং GetString হয় malloc কল যাচ্ছে. 1375 01:13:24,340 --> 01:13:26,710 আমাকে যদি malloc সম্পর্কে কথা বলা যাক, এবং আমি GetString ব্যাখ্যা করব. 1376 01:13:26,710 --> 01:13:32,000 সুতরাং malloc একই জিনিস মেমরি বরাদ্দ হিসাবে. 1377 01:13:32,000 --> 01:13:34,600 সুতরাং এটি বরাদ্দ করা যাচ্ছে গাদা মেমরি. 1378 01:13:34,600 --> 01:13:40,010 এবং এটি একটি পয়েন্টার ফিরে যাচ্ছে যেখানে যে মেমরি বরাদ্দ করা হয়. 1379 01:13:40,010 --> 01:13:43,090 >> তাই আপনি যদি do-- যখন 1380 01:13:43,090 --> 01:13:44,910 এখানে উদাহরণস্বরূপ জন্য 1381 01:13:44,910 --> 01:13:45,830 এন তারকা পয়েন্টার. 1382 01:13:45,830 --> 01:13:50,520 এবং তারপর পয়েন্টার malloc সমান ইঞ্চি বার 10 আকার. 1383 01:13:50,520 --> 01:13:52,110 আমি একটি পয়েন্টার তৈরি করছি. 1384 01:13:52,110 --> 01:13:59,020 এবং তারপর আমি যে পয়েন্টার বরাদ্দ করছি পয়েন্টার যে malloc মান 1385 01:13:59,020 --> 01:13:59,680 আমাকে প্রদান করা হয়. 1386 01:13:59,680 --> 01:14:04,150 >> তাই আমি জিজ্ঞাসা করছি না malloc আপনি বরাদ্দ করতে পারেন 10 পূর্ণসংখ্যার জন্য স্থান. 1387 01:14:04,150 --> 01:14:05,390 যে এটা বলার অপেক্ষা রাখে না কি. 1388 01:14:05,390 --> 01:14:09,020 এবং malloc আমাকে ফেরত দেয় একটি যে জায়গায় পয়েন্টার. 1389 01:14:09,020 --> 01:14:11,460 জানার জন্য? 1390 01:14:11,460 --> 01:14:12,270 ঠিক আছে. 1391 01:14:12,270 --> 01:14:17,940 আমি এবং GetString, মূলত একটি করছে আপনি বরাদ্দ করতে পারেন তাই malloc কল 1392 01:14:17,940 --> 01:14:21,680 রানটাইম সময় মেমরি. 1393 01:14:21,680 --> 01:14:26,460 >> সর্বদা নাল জন্য চেক মনে malloc NULL ফিরে যাচ্ছে, কারণ 1394 01:14:26,460 --> 01:14:28,200 এটি মেমরি বরাদ্দ করতে পারবেন না. 1395 01:14:28,200 --> 01:14:31,660 আপনি একটি হাস্যকর জন্য অনুরোধ বলে মেমরির পরিমাণ. 1396 01:14:31,660 --> 01:14:33,950 আপনার কম্পিউটার হতে যাচ্ছে না অনেক যে বরাদ্দ করতে সক্ষম. 1397 01:14:33,950 --> 01:14:36,410 >> সুতরাং malloc ঠিক যাচ্ছে নাল ফিরে. 1398 01:14:36,410 --> 01:14:42,210 তাই সবসময় চেক করতে মনে রাখবেন আপনি malloc থেকে পেয়েছেন পয়েন্টার 1399 01:14:42,210 --> 01:14:45,640 নাল বা না যদি এটা হয়, আপনি হতে পারে, কারণ একটি পয়েন্টার dereferencing করা এবং 1400 01:14:45,640 --> 01:14:48,340 পাশ ফল্ট ঘটাচ্ছে. 1401 01:14:48,340 --> 01:14:50,930 এবং পরিশেষে, ভুলবেন না আপনার মেমরি মুক্ত. 1402 01:14:50,930 --> 01:14:57,800 1403 01:14:57,800 --> 01:15:00,560 >> Malloc গাদা মেমরি তৈরি করা হয়. 1404 01:15:00,560 --> 01:15:03,436 এবং আপনি মেমরি মুক্ত আছে প্রোগ্রাম শেষ করার আগে. 1405 01:15:03,436 --> 01:15:05,370 ঠিক আছে, যে আমার জন্য সব. 1406 01:15:05,370 --> 01:15:07,900 দুঃখিত, রব. 1407 01:15:07,900 --> 01:15:07,950 ধন্যবাদ. 1408 01:15:07,950 --> 01:15:09,878 >> [সাধুবাদ] 1409 01:15:09,878 --> 01:15:12,679 >> LUCAS: কোন শেষ প্রশ্ন রব আসে আগে? 1410 01:15:12,679 --> 01:15:13,138 কোন? 1411 01:15:13,138 --> 01:15:13,597 হ্যাঁ? 1412 01:15:13,597 --> 01:15:15,892 >> শ্রোতা: আমি দেখতে পাইনি এই এক অনলাইন. 1413 01:15:15,892 --> 01:15:17,269 আপনি এখনো আপলোড করা আছে? 1414 01:15:17,269 --> 01:15:19,106 >> LUCAS: আমি ডেভ মনে হয় শীঘ্রই এটি আপলোড. 1415 01:15:19,106 --> 01:15:19,880 >> ডেভ: এটা পোস্ট করা হবে. 1416 01:15:19,880 --> 01:15:20,310 >> LUCAS: এটা অনলাইন হতে হবে. 1417 01:15:20,310 --> 01:15:21,175 >> শ্রোতা: এটা আপ. 1418 01:15:21,175 --> 01:15:22,090 >> LUCAS: এটা কি? 1419 01:15:22,090 --> 01:15:23,157 ঠিক আছে. 1420 01:15:23,157 --> 01:15:23,644 হ্যাঁ? 1421 01:15:23,644 --> 01:15:27,053 >> শ্রোতা: [শ্রবণাতীত]? 1422 01:15:27,053 --> 01:15:30,285 >> LUCAS: হ্যাঁ, আপনি মুক্ত করতে হবে সব গাদা করা হয় যে মেমরি. 1423 01:15:30,285 --> 01:15:31,535 >> শ্রোতা: [শ্রবণাতীত]? 1424 01:15:31,535 --> 01:15:34,518 1425 01:15:34,518 --> 01:15:36,160 >> LUCAS: হ্যাঁ. 1426 01:15:36,160 --> 01:15:39,980 আপনি একটি সংস্কৃতি malloc হয় আছে কোন সময়, আপনি বিনামূল্যে একটি সংস্কৃতি আছে 1427 01:15:39,980 --> 01:15:42,640 আপনি পরে যে পরিবর্তনশীল ব্যবহার বন্ধ. 1428 01:15:42,640 --> 01:15:44,800 সুতরাং malloc এবং বিনামূল্যে সবসময় একসাথে. 1429 01:15:44,800 --> 01:15:45,410 তাদের সেরা বন্ধুদের. 1430 01:15:45,410 --> 01:15:46,720 হ্যাঁ. 1431 01:15:46,720 --> 01:15:47,970 রব? 1432 01:15:47,970 --> 01:15:55,595 1433 01:15:55,595 --> 01:15:56,850 >> Rob: আমি দ্রুত যেতে হবে. 1434 01:15:56,850 --> 01:16:00,466 এবং এছাড়াও ভিডিও আপ করা হবে. 1435 01:16:00,466 --> 01:16:01,716 আমি মাইক আছে. 1436 01:16:01,716 --> 01:16:24,060 1437 01:16:24,060 --> 01:16:26,230 >> ঠিক আছে, তাই সপ্তাহে পাঁচ জিনিস. 1438 01:16:26,230 --> 01:16:27,970 আমরা প্রথম জিনিস স্ট্যাকের. 1439 01:16:27,970 --> 01:16:33,390 সুতরাং শুধুমাত্র এক স্ট্যাকের আছে মনে রাখবেন, যে সক্রিয় ফাংশন কল প্রতি ফ্রেম. 1440 01:16:33,390 --> 01:16:34,710 আমরা একটি দ্বিতীয় মধ্যে দেখতে পাবেন. 1441 01:16:34,710 --> 01:16:37,850 এবং এছাড়াও আসলে কি যায় মনে প্রতিটি স্ট্যাকের ফ্রেম হতে যাচ্ছে 1442 01:16:37,850 --> 01:16:41,880 আমাদের কর্ম স্থানীয় ভেরিয়েবল, মধ্যে গৃহীত হয় পাল্টা যুক্তি হল যে আমাদের 1443 01:16:41,880 --> 01:16:43,880 একটি দম্পতি সঙ্গে বরাবর ফাংশন, অন্যান্য জিনিষ আপনি সত্যিই না 1444 01:16:43,880 --> 01:16:45,260 সম্পর্কে চিন্তা করতে হবে. 1445 01:16:45,260 --> 01:16:50,950 >> তাই এখানে যেখানে একটি উদাহরণ প্রোগ্রাম, নোটিশ, প্রধান ফেরত printfing হয় 1446 01:16:50,950 --> 01:16:52,830 foo বিন্যাস 4 মান. 1447 01:16:52,830 --> 01:16:57,930 foo বিন্যাস ঠিক ফিরে যাচ্ছে বার 4 কমা 6 মান. 1448 01:16:57,930 --> 01:17:02,380 এবং বার কিছু স্থানীয় সেট যাচ্ছে 4 বার 6 সমান পরিবর্তনশীল n. 1449 01:17:02,380 --> 01:17:03,920 এবং তারপর ফিরে. 1450 01:17:03,920 --> 01:17:09,130 >> সুতরাং এর সারা স্ট্যাক তাকান এই প্রোগ্রাম প্রকৃত পুনরাবৃত্তির. 1451 01:17:09,130 --> 01:17:10,500 সুতরাং আমাদের স্ট্যাকের নীচে আছে. 1452 01:17:10,500 --> 01:17:12,620 স্ট্যাকের বৃদ্ধি আপ রাখুন. 1453 01:17:12,620 --> 01:17:15,370 আমাদের স্ট্যাকের নীচে, তাই আমরা প্রধান জন্য একটি স্ট্যাক ফ্রেম আছে. 1454 01:17:15,370 --> 01:17:17,000 যখন প্রোগ্রাম আরম্ভ, প্রধান সবসময় হতে যাচ্ছে 1455 01:17:17,000 --> 01:17:18,560 আমাদের স্ট্যাকের নীচে. 1456 01:17:18,560 --> 01:17:20,880 >> এবং এর ভিতরে কি আমাদের প্রধান জন্য ফ্রেম গাদা? 1457 01:17:20,880 --> 01:17:23,810 তাই কোন স্থানীয় আছে যদিও প্রধান ভেরিয়েবল আমি আগে বলেন, মত 1458 01:17:23,810 --> 01:17:29,670 আমরা argc এবং RGV স্থান গ্রহণ করেছেন প্রধান স্ট্যাকের ফ্রেম ভিতরে. 1459 01:17:29,670 --> 01:17:33,260 এখন যাচ্ছে তাই প্রধান ফাংশন foo বিন্যাস কল. 1460 01:17:33,260 --> 01:17:35,125 এবং যে foo বিন্যাস যাচ্ছে মানে নিজস্ব স্ট্যাকের ফ্রেম পেতে. 1461 01:17:35,125 --> 01:17:36,970 >> তাই এখন আমরা এর ভিতরে করছি ফাংশন foo বিন্যাস. 1462 01:17:36,970 --> 01:17:38,610 এবং কি যেতে প্রয়োজন foo বিন্যাস এর সময় স্ট্যাক ফ্রেম? 1463 01:17:38,610 --> 01:17:41,100 ওয়েল, foo বিন্যাস একটি যুক্তি এন হয়েছে. 1464 01:17:41,100 --> 01:17:45,440 যে যেহেতু এন 4 সমান কি প্রধান foo বিন্যাস এর যুক্তি হিসাবে ক্ষণস্থায়ী হয়. 1465 01:17:45,440 --> 01:17:48,490 >> তাই এখন foo বিন্যাস বার কল করতে যাচ্ছে. 1466 01:17:48,490 --> 01:17:52,070 কি বার ভিতরে আছে যাচ্ছে তার 'স্ট্যাক ফ্রেম? 1467 01:17:52,070 --> 01:17:55,610 এটি ছয় সমান 4 Y x সমান আছে. 1468 01:17:55,610 --> 01:17:58,540 যে আমরা আছে চলুন যে সব না বার কারণ স্ট্যাক ফ্রেম 1469 01:17:58,540 --> 01:18:00,580 একটি স্থানীয় পরিবর্তনশীল n আছে. 1470 01:18:00,580 --> 01:18:03,370 এবং n আমরা 24 সমান সেট করতে যাচ্ছেন. 1471 01:18:03,370 --> 01:18:05,750 >> তাই এখন বার এন ফিরে যাচ্ছে. 1472 01:18:05,750 --> 01:18:09,300 তাই বার 24 ফিরে স্ট্যাক ফ্রেম foo বিন্যাস. 1473 01:18:09,300 --> 01:18:12,560 এবং বার যে এখন, ফিরে কারণ আমরা স্ট্যাক ফ্রেম পপিং করছি মানে 1474 01:18:12,560 --> 01:18:14,250 স্ট্যাকের বন্ধ বারের জন্য. 1475 01:18:14,250 --> 01:18:18,430 বার হয়েছে যাতে সব স্মৃতি ব্যবহার করে স্ট্যাকের বন্ধ হয়. 1476 01:18:18,430 --> 01:18:21,550 >> এখন, foo বিন্যাস এছাড়াও যাচ্ছে প্রধান 24 ফিরে. 1477 01:18:21,550 --> 01:18:25,470 তাই এখন যে foo বিন্যাস, মেমরি ফিরে যে foo বিন্যাস তার 'ব্যবহার করা হয় 1478 01:18:25,470 --> 01:18:27,550 স্ট্যাক ফ্রেম চলে গেছে. 1479 01:18:27,550 --> 01:18:29,660 এবং এখন, প্রধান printf কল করতে যাচ্ছে. 1480 01:18:29,660 --> 01:18:31,660 তাই printf শুধু আরেকটি ফাংশন. 1481 01:18:31,660 --> 01:18:35,320 আমরা printf কল, এটি হতে যাচ্ছে printf, অন্য স্ট্যাক ফ্রেম 1482 01:18:35,320 --> 01:18:36,470 ফাংশন কল. 1483 01:18:36,470 --> 01:18:37,990 >> আমরা কি printf, ক্ষণস্থায়ী হয়? 1484 01:18:37,990 --> 01:18:40,090 যে যেতে যাচ্ছে কি তার স্ট্যাক ফ্রেম উপর. 1485 01:18:40,090 --> 01:18:44,970 অন্ততপক্ষে, আমরা পার করছি যে শতাংশ আমি এন ব্যাকস্ল্যাশ এবং 1486 01:18:44,970 --> 01:18:47,180 যুক্তি 24. 1487 01:18:47,180 --> 01:18:50,370 এটি স্ট্যাক ফ্রেম এর মধ্যে এটি আরো থাকতে পারে printf, কিছু ব্যবহার করা হবে যদি 1488 01:18:50,370 --> 01:18:51,200 স্থানীয় ভেরিয়েবল. 1489 01:18:51,200 --> 01:18:51,920 আমরা জানি না. 1490 01:18:51,920 --> 01:18:53,810 >> কিন্তু সব যে printf এর মধ্যে যায় ফ্রেম গাদা. 1491 01:18:53,810 --> 01:18:55,740 এটা printf, চালানো যাচ্ছে. 1492 01:18:55,740 --> 01:18:56,830 তারপর printf, এর কাজ. 1493 01:18:56,830 --> 01:18:57,820 এটা ফিরে আসতে হবে. 1494 01:18:57,820 --> 01:18:58,960 অবশেষে, প্রধান করা হয়. 1495 01:18:58,960 --> 01:18:59,860 প্রধান ফিরে আসতে হবে. 1496 01:18:59,860 --> 01:19:02,020 এবং তারপর আমাদের প্রোগ্রাম করা হয়. 1497 01:19:02,020 --> 01:19:02,480 হ্যাঁ? 1498 01:19:02,480 --> 01:19:04,505 >> শ্রোতা: আপনি দেখতে পান [শ্রবণাতীত] 1499 01:19:04,505 --> 01:19:05,900 আর্গুমেন্ট [শ্রবণাতীত] 1500 01:19:05,900 --> 01:19:06,830 পরামিতি? 1501 01:19:06,830 --> 01:19:09,970 >> Rob: তাই একটি সূক্ষ্ম পার্থক্য আছে আর্গুমেন্ট এবং প্যারামিটার মধ্যে. 1502 01:19:09,970 --> 01:19:14,400 এবং সত্যিই, সাধারণ কথা, মানুষ ঝোঁক সব সময় তাদের মিশ্রিত করা. 1503 01:19:14,400 --> 01:19:17,550 কিন্তু পরামিতি প্রথাগত কিছু নাম. 1504 01:19:17,550 --> 01:19:20,180 >> সুতরাং argc এবং argv হয় প্রধান পরামিতি. 1505 01:19:20,180 --> 01:19:23,440 আর্গুমেন্ট কি আসলে আপনি যারা পরামিতি হিসেবে পাস. 1506 01:19:23,440 --> 01:19:28,340 তাই সেখানে আমি 4 foo বিন্যাস, 4 যখন কল আমি পার করছি যুক্তি. 1507 01:19:28,340 --> 01:19:31,460 এবং এর ভিতরে পরামিতি এন, foo বিন্যাস, মান 4 লাগে 1508 01:19:31,460 --> 01:19:32,880 4 থেকে যুক্তি ছিল. 1509 01:19:32,880 --> 01:19:35,826 >> শ্রোতা: [শ্রবণাতীত]? 1510 01:19:35,826 --> 01:19:37,880 >> Rob: এন বার একটি স্থানীয় পরিবর্তনশীল. 1511 01:19:37,880 --> 01:19:41,420 1512 01:19:41,420 --> 01:19:44,960 এন, এখনও foo বিন্যাস স্থানীয় কিন্তু এটা foo বিন্যাস থেকে একটি প্যারামিটার আছে. 1513 01:19:44,960 --> 01:19:48,190 এটি একটি স্থানীয় পরিবর্তনশীল নয়. 1514 01:19:48,190 --> 01:19:48,546 হ্যাঁ? 1515 01:19:48,546 --> 01:19:51,180 >> শ্রোতা: [শ্রবণাতীত]? 1516 01:19:51,180 --> 01:19:55,400 >> Rob: foo বিন্যাস ঠিক আহ্বান করা হয় বার এবং যাই হোক না কেন বার আয় ফিরে. 1517 01:19:55,400 --> 01:19:56,786 >> শ্রোতা: [শ্রবণাতীত]? 1518 01:19:56,786 --> 01:19:59,591 >> Rob: হ্যাঁ, ঠিক একাধিক দেখতে ফ্রেম গাদা. 1519 01:19:59,591 --> 01:20:00,082 হ্যাঁ? 1520 01:20:00,082 --> 01:20:03,519 >> শ্রোতা: কেন foo বিন্যাস বলা হয় printf, আগে? 1521 01:20:03,519 --> 01:20:05,920 >> Rob: কেন foo বিন্যাস printf, আগে বলা হত? 1522 01:20:05,920 --> 01:20:10,740 আমি হতে পারে সুতরাং, পরিবর্তে, কিছু কাজ int মত x 4 foo বিন্যাস সমান 1523 01:20:10,740 --> 01:20:12,980 এবং তারপর এক্স মুদ্রিত. 1524 01:20:12,980 --> 01:20:17,900 কিন্তু পরিবর্তে, ফাংশন সংযুক্ত printf, যুক্তি মধ্যে কল. 1525 01:20:17,900 --> 01:20:23,670 >> কিন্তু লক্ষ্য করা যে আমরা আসলে না করতে পারেন আমরা যতক্ষণ না printf কল চালানো 1526 01:20:23,670 --> 01:20:25,610 4 foo বিন্যাস জিনিসটা কি. 1527 01:20:25,610 --> 01:20:27,480 সুতরাং আমরা এই মূল্যায়নের চলুন. 1528 01:20:27,480 --> 01:20:32,504 এবং যে কাজ শুধুমাত্র একবার যাচ্ছে ফিরে আসা এবং এই মূল্যায়নের. 1529 01:20:32,504 --> 01:20:32,990 হ্যাঁ? 1530 01:20:32,990 --> 01:20:37,364 >> শ্রোতা: উভয় দণ্ড থেকে [শ্রবণাতীত] 1531 01:20:37,364 --> 01:20:41,738 মান, কেন আমরা [শ্রবণাতীত] আছে না? 1532 01:20:41,738 --> 01:20:44,400 >> Rob: তারা সম্পূর্ণই কোন int হতে হবে. 1533 01:20:44,400 --> 01:20:46,260 যে উপর ধরা হয় নি একাধিক পাস. 1534 01:20:46,260 --> 01:20:49,010 সুতরাং এটা কোন int বার এবং কোন int হতে হবে যারা উভয় থেকে foo বিন্যাস 1535 01:20:49,010 --> 01:20:50,460 পূর্ণসংখ্যার ফিরে হয়. 1536 01:20:50,460 --> 01:20:54,214 তারা যাচ্ছেন না যদি অকার্যকর শুধুমাত্র প্রকৃত মান প্রত্যাবর্তন. 1537 01:20:54,214 --> 01:20:54,692 হ্যাঁ? 1538 01:20:54,692 --> 01:20:58,038 >> শ্রোতা: আপনি একটি লাইন ছিল উপরে রিটার্ন, [শ্রবণাতীত]? 1539 01:20:58,038 --> 01:21:01,862 1540 01:21:01,862 --> 01:21:03,730 >> Rob: ফিরে উপরে একটি লাইন? 1541 01:21:03,730 --> 01:21:04,410 >> শ্রোতা: হ্যাঁ. 1542 01:21:04,410 --> 01:21:10,780 ভালো লেগেছে আপনি printf এবং [শ্রবণাতীত] না হলে, এটি দুইবার প্রিন্ট হবে? 1543 01:21:10,780 --> 01:21:12,992 >> Rob: foo বিন্যাস ভিতরে তাই? 1544 01:21:12,992 --> 01:21:15,945 আমরা অধিকার এখানে একটি printf ছিল? 1545 01:21:15,945 --> 01:21:16,750 >> শ্রোতা: হ্যাঁ. 1546 01:21:16,750 --> 01:21:19,510 >> Rob: তাই আপনি যদি আমরা একটি printf অধিকার ছিল এখানে, এটি একবার প্রিন্ট হবে. 1547 01:21:19,510 --> 01:21:23,400 আমরা একবার ডান foo বিন্যাস আহ্বান করা হয় যেহেতু এখানে তারপর, আমরা printf আঘাত করব. 1548 01:21:23,400 --> 01:21:24,620 তারপর আমরা বার কল করব. 1549 01:21:24,620 --> 01:21:25,710 এবং তারপর foo বিন্যাস ফিরে আসতে হবে. 1550 01:21:25,710 --> 01:21:26,275 এবং যে এটি. 1551 01:21:26,275 --> 01:21:30,985 আমরা শুধুমাত্র কখনও সম্মুখীন একবার printf,. 1552 01:21:30,985 --> 01:21:31,482 হ্যাঁ? 1553 01:21:31,482 --> 01:21:32,973 >> শ্রোতা: [শ্রবণাতীত] 1554 01:21:32,973 --> 01:21:37,950 আমরা প্রথম কারণ printf, foo বিন্যাস আহ্বান printf, কলিং এবং তারপর আমরা পার করছি 1555 01:21:37,950 --> 01:21:38,580 আর্গুমেন্ট. 1556 01:21:38,580 --> 01:21:40,960 >> Rob: তত্ত্ব তাই নয়, printf, foo বিন্যাস আহ্বান? 1557 01:21:40,960 --> 01:21:42,220 তাই কোন. 1558 01:21:42,220 --> 01:21:47,360 গ যাচ্ছে যে শুধু অর্ডার আমরা করতে পারেন আগে, এই জিনিস হয় চালানো 1559 01:21:47,360 --> 01:21:49,800 , আর্গুমেন্ট সব একটি ফাংশন কল ফাংশন আছে 1560 01:21:49,800 --> 01:21:51,600 সম্পূর্ণ মূল্যায়ন করা. 1561 01:21:51,600 --> 01:21:53,540 তাই এই সম্পূর্ণভাবে মূল্যায়ন করা হয়? 1562 01:21:53,540 --> 01:21:54,610 হ্যাঁ, এটা ঠিক একটি পংক্তি. 1563 01:21:54,610 --> 01:21:55,480 এটি শুধু একটি মান. 1564 01:21:55,480 --> 01:21:57,200 >> তারপর আমরা সম্পূর্ণ করতে হবে এই নির্ণয় করা. 1565 01:21:57,200 --> 01:21:59,720 এখন এই সব, একবার সম্পন্ন হলে তার আর্গুমেন্ট মূল্যায়ন করা হয়. 1566 01:21:59,720 --> 01:22:01,982 এবং এখন আমরা করতে পারেন printf কল. 1567 01:22:01,982 --> 01:22:02,478 হ্যাঁ? 1568 01:22:02,478 --> 01:22:03,966 >> শ্রোতা: এক প্রশ্ন. 1569 01:22:03,966 --> 01:22:06,942 আপনি একটি অকার্যকর ফাংশন আছে, অবশ্যই আপনি ফিরে সেমিকোলন আছে? 1570 01:22:06,942 --> 01:22:09,910 >> Rob: আপনি একটি ফিরতি সেমিকোলন না আপনি একটি অকার্যকর ফাংশন আছে. 1571 01:22:09,910 --> 01:22:13,370 1572 01:22:13,370 --> 01:22:14,780 ঠিক আছে. 1573 01:22:14,780 --> 01:22:15,830 তাই এখন কিছু গাদা কাপড়. 1574 01:22:15,830 --> 01:22:19,640 সুতরাং গাদা আমরা মোকাবেলা করতে যাচ্ছেন কিভাবে ডাইনামিক মেমরি পরিচালনার সঙ্গে. 1575 01:22:19,640 --> 01:22:23,100 এবং এই সরাসরি সাথে বৈপরীত্য আমরা স্বয়ংক্রিয় কল করবে যা স্ট্যাকের 1576 01:22:23,100 --> 01:22:24,100 মেমরি ব্যবস্থাপনা. 1577 01:22:24,100 --> 01:22:27,140 >> স্ট্যাক সুতরাং, আপনি সত্যিই আছে না কিভাবে স্থানীয় ভেরিয়েবল সঙ্গে মোকাবিলা করার জন্য 1578 01:22:27,140 --> 01:22:30,400 push করা এবং সমস্ত বন্ধ popped হচ্ছে এই স্ট্যাকের ফ্রেম এবং যে সব উপাদান. 1579 01:22:30,400 --> 01:22:31,070 আপনি এটি সম্পর্কে চিন্তা করতে হবে না. 1580 01:22:31,070 --> 01:22:32,070 এটা স্বয়ংক্রিয়. 1581 01:22:32,070 --> 01:22:36,990 সুতরাং গাদা ম্যানুয়াল হয়. 1582 01:22:36,990 --> 01:22:38,070 এবং [শ্রবণাতীত] 1583 01:22:38,070 --> 01:22:41,260 এই ফাংশন থেকে আসে malloc এবং বিনামূল্যে. 1584 01:22:41,260 --> 01:22:43,550 >> তাই এখানে অন্য প্রোগ্রাম. 1585 01:22:43,550 --> 01:22:47,145 আমরা করছেন mallocing হয় একটি পূর্ণসংখ্যা. 1586 01:22:47,145 --> 01:22:49,360 আমরা তারা x এর মধ্যে এটি সংরক্ষণ করছেন. 1587 01:22:49,360 --> 01:22:52,520 অবশ্যই, আমরা চেক আছে এক্স নাল কিনা দেখতে. 1588 01:22:52,520 --> 01:22:56,400 তারপর আমরা ঠিক কি সেট চলুন এক্স 50 প্রতি নির্দেশ করা হয়. 1589 01:22:56,400 --> 01:23:00,350 1590 01:23:00,350 --> 01:23:03,260 , প্রতি নির্দেশ করা হয় কি এক্স মুদ্রণ করুন মুদ্রণ এক্স, এবং তারপর বিনামূল্যে এক্স. 1591 01:23:03,260 --> 01:23:08,920 >> সুতরাং কিভাবে আসলে এই চেহারা হবে আমরা আমাদের স্ট্যাকের এবং গাদা তাকান? 1592 01:23:08,920 --> 01:23:10,950 তাই আমরা আবার শুরু করব. 1593 01:23:10,950 --> 01:23:12,580 আগে আমাদের স্ট্যাকের নীচে. 1594 01:23:12,580 --> 01:23:15,930 তোমাকে সরাসরি গাদা মনে রাখবেন যে, স্ট্যাকের বিরোধিতা করে? 1595 01:23:15,930 --> 01:23:18,850 সুতরাং আমরা আছে চলুন আপ আছে আমাদের গাদা উপরে. 1596 01:23:18,850 --> 01:23:22,590 >> আমাদের স্ট্যাকের নীচে, তাই আমরা প্রধান জন্য আমাদের স্ট্যাকের ফ্রেম. 1597 01:23:22,590 --> 01:23:28,000 এটা argc, argv জন্য স্থান আছে, এবং আমরা এখন একটি স্থানীয় পরিবর্তনশীল x, যা 1598 01:23:28,000 --> 01:23:30,030 কোন int তারকা. 1599 01:23:30,030 --> 01:23:32,240 তাই আমরা বারবার চলুন এই প্রোগ্রামের মাধ্যমে. 1600 01:23:32,240 --> 01:23:34,420 আমরা প্রথম জিনিস যদি malloc একটি কল. 1601 01:23:34,420 --> 01:23:36,250 >> তাই আমরা malloc একটি কল করছেন. 1602 01:23:36,250 --> 01:23:37,100 Malloc একটি ফাংশন. 1603 01:23:37,100 --> 01:23:38,770 এটি একটি স্ট্যাকের ফ্রেম পাওয়া যাচ্ছে. 1604 01:23:38,770 --> 01:23:40,180 আমরা কি malloc ক্ষণস্থায়ী হয়? 1605 01:23:40,180 --> 01:23:41,610 যে ভিতরে যেতে যাচ্ছে স্ট্যাক ফ্রেম. 1606 01:23:41,610 --> 01:23:45,130 আমরা 4, যা এন, আকার পার করছি. 1607 01:23:45,130 --> 01:23:49,700 সুতরাং যে malloc প্রেরণ করা হয়. 1608 01:23:49,700 --> 01:23:50,910 >> যদি malloc কী কাজ করে? 1609 01:23:50,910 --> 01:23:53,820 এটা আমাদের গাদা কিছু স্থান grabs. 1610 01:23:53,820 --> 01:23:55,320 তাই আমরা গাদা যেতে চলুন. 1611 01:23:55,320 --> 01:23:57,990 এবং আমরা দখল করতে যাচ্ছেন গাদা থেকে 4 বাইট. 1612 01:23:57,990 --> 01:24:01,500 তাই আসুন শুধু যে দিন একটি অবাধ ঠিকানা. 1613 01:24:01,500 --> 01:24:06,680 0x123 শুধু যে একটি জাহির গাদা হয় যে ঠিকানা. 1614 01:24:06,680 --> 01:24:12,300 >> সুতরাং যে এর ভিতরে আসলে কি ঠিকানা ox123 এ মেমরি অঞ্চলের? 1615 01:24:12,300 --> 01:24:13,080 বর্জ্য. 1616 01:24:13,080 --> 01:24:15,270 সুতরাং আমরা এটা কিছু সংরক্ষণ করা হয়নি. 1617 01:24:15,270 --> 01:24:18,830 তাই যতটা আমরা এটি জানি কোন কিছুই হতে পারে. 1618 01:24:18,830 --> 01:24:20,560 আপনি এটা শূন্য অনুমান করা উচিত নয়. 1619 01:24:20,560 --> 01:24:23,870 এটা শূন্য সম্ভবত. 1620 01:24:23,870 --> 01:24:26,260 >> তাই এখন যদি malloc আয়. 1621 01:24:26,260 --> 01:24:28,020 এবং আমরা যখন malloc আয় কি করবেন? 1622 01:24:28,020 --> 01:24:29,800 আমরা এটা ফেরৎ কি সেট. 1623 01:24:29,800 --> 01:24:32,290 আমরা x সমান সেট কি এটি ফিরে আসছে. 1624 01:24:32,290 --> 01:24:33,690 তাই এটি ফিরে? 1625 01:24:33,690 --> 01:24:38,150 যে যেহেতু এটি 0x123 এর ফিরে মেমরি ব্লক ঠিকানা যে 1626 01:24:38,150 --> 01:24:40,850 শুধু গাদা বরাদ্দ. 1627 01:24:40,850 --> 01:24:47,160 >> তাই 0x123 এক্স এখন নির্ধারণ করা যাচ্ছে ফিরে 0x123 সমান, যা pictorially, 1628 01:24:47,160 --> 01:24:52,940 আমরা প্রায়ই একটি প্রকৃত থাকার x হিসাবে আঁকা যে ব্লক প্রতি নির্দেশ তীর. 1629 01:24:52,940 --> 01:24:55,820 কিন্তু x ঠিক যে ঠিকানা সংরক্ষণ করা হয়. 1630 01:24:55,820 --> 01:24:58,670 তাই এখন আমরা x নাল যদি চেক আছে. 1631 01:24:58,670 --> 01:24:59,120 এটা নাল না. 1632 01:24:59,120 --> 01:25:02,170 আমরা যে malloc সফল জাহির. 1633 01:25:02,170 --> 01:25:04,950 >> তাই এখন তারা 50 x সমান. 1634 01:25:04,950 --> 01:25:08,450 তাই তারা এটা মানে মনে যে ঠিকানায় যান. 1635 01:25:08,450 --> 01:25:12,700 তাই 0x123 আমরা চলুন যে ঠিকানায় যান. 1636 01:25:12,700 --> 01:25:14,660 সুতরাং যে সেখানে আমাদের দেখাবে. 1637 01:25:14,660 --> 01:25:16,310 আমরা যে ঠিকানায় কি করছেন? 1638 01:25:16,310 --> 01:25:19,020 আমরা 50 সংরক্ষণ করছেন. 1639 01:25:19,020 --> 01:25:22,500 >> তাই এই লাইন পরে, যে কি কিছু মত চেহারা যাচ্ছে. 1640 01:25:22,500 --> 01:25:24,640 সুতরাং এখন এটা আর সেখানে আবর্জনা আপ. 1641 01:25:24,640 --> 01:25:28,910 এখন আমরা 50 যে জানি যে নির্দিষ্ট ঠিকানা, কারণ 1642 01:25:28,910 --> 01:25:32,410 আমরা যে এটি সেট. 1643 01:25:32,410 --> 01:25:32,790 ঠিক আছে? 1644 01:25:32,790 --> 01:25:34,370 তাই এখন আমরা চ মুদ্রণ চলুন. 1645 01:25:34,370 --> 01:25:38,490 >> তাই আমরা প্রথমে তারা এক্স মুদ্রণ চলুন. 1646 01:25:38,490 --> 01:25:39,640 তাই তারা এক্স কি? 1647 01:25:39,640 --> 01:25:44,300 আবার, তারা এক্স যেতে মানে x এর প্রতি নির্দেশ করা হয় যে জিনিস. 1648 01:25:44,300 --> 01:25:47,140 তাই x যে 0x123 যান সংরক্ষণ করা হয়. 1649 01:25:47,140 --> 01:25:48,490 আমরা 50 পেতে. 1650 01:25:48,490 --> 01:25:50,540 সুতরাং যে চ মুদ্রণ. 1651 01:25:50,540 --> 01:25:54,900 এবং যে এটি 50 মুদ্রণ যাচ্ছে না. 1652 01:25:54,900 --> 01:25:56,850 এবং তারপর ফেরৎ. 1653 01:25:56,850 --> 01:25:58,340 >> এবং তারপর আমরা দ্বিতীয় printf আছে. 1654 01:25:58,340 --> 01:25:59,370 আমরা এখন শতাংশ পি করছি. 1655 01:25:59,370 --> 01:26:01,680 যদি আপনি এটি দেখা না করে থাকেন, যে শুধু আপনি একটি পয়েন্টার মুদ্রণ কিভাবে. 1656 01:26:01,680 --> 01:26:04,960 সুতরাং আমরা শতাংশ শতাংশ আমি আছে চ, এবং ইতিমধ্যে যারা সব. 1657 01:26:04,960 --> 01:26:07,160 তাই শতাংশ পি, একটি পয়েন্টার মুদ্রণ. 1658 01:26:07,160 --> 01:26:08,920 >> তাই x এর একটি পয়েন্টার. 1659 01:26:08,920 --> 01:26:13,440 তাই আমরা নিজেই এক্স মুদ্রণ যাচ্ছে করছি, আমরা ভিতরে কি আসলে মুদ্রণ করছি 1660 01:26:13,440 --> 01:26:19,220 সুতরাং প্রথম 0x123 যা এক্স, মুদ্রণ চ 50 মুদ্রণ যাচ্ছে. 1661 01:26:19,220 --> 01:26:23,620 দ্বিতীয় মুদ্রণ চ যাচ্ছে হ্যাঁ 0x123 মুদ্রণ? 1662 01:26:23,620 --> 01:26:27,460 >> শ্রোতা: আপনি শতাংশ ব্যবহার করবেন না x এর একটি পয়েন্টার মুদ্রণ? 1663 01:26:27,460 --> 01:26:31,200 >> Rob: তাই আপনি শতাংশ ব্যবহার করবেন x এর একটি পয়েন্টার মুদ্রণ? 1664 01:26:31,200 --> 01:26:38,350 সুতরাং, আপনি যা করতে পারেন কিন্তু শতাংশ x ঠিক হয় সাধারণত, মত আপনি কিছু আছে 1665 01:26:38,350 --> 01:26:40,325 পূর্ণসংখ্যা এবং আপনি প্রিন্ট করতে চান এটি একটি হেক্সাডেসিমাল হিসাবে. 1666 01:26:40,325 --> 01:26:43,250 1667 01:26:43,250 --> 01:26:44,880 আপনি যে এটা কিভাবে ঠিক. 1668 01:26:44,880 --> 01:26:47,160 >> যেহেতু, শতাংশ ঘ হবে দশমিক হিসাবে মুদ্রণ. 1669 01:26:47,160 --> 01:26:50,310 আমরা শতাংশ পেতে হয় যে এর ঘ. আমি শুধু পূর্ণসংখ্যা. 1670 01:26:50,310 --> 01:26:52,690 শতাংশ পি বিশেষভাবে হয় পয়েন্টার জন্য. 1671 01:26:52,690 --> 01:26:54,060 >> তাই x এর একটি পয়েন্টার. 1672 01:26:54,060 --> 01:26:56,360 আমরা শতাংশ পি ব্যবহার করতে চান. 1673 01:26:56,360 --> 01:26:57,937 কিন্তু শতাংশ এক্স কাজ করতে পারে. 1674 01:26:57,937 --> 01:26:58,414 হ্যাঁ? 1675 01:26:58,414 --> 01:26:59,664 >> শ্রোতা: [শ্রবণাতীত]? 1676 01:26:59,664 --> 01:27:04,138 1677 01:27:04,138 --> 01:27:05,388 >> Rob: হ্যাঁ. 1678 01:27:05,388 --> 01:27:07,870 1679 01:27:07,870 --> 01:27:13,440 এই জন্য অন্তত তাই call-- আমি এখানে অন্তর্ভুক্ত করা হয়নি. 1680 01:27:13,440 --> 01:27:19,850 কিন্তু এই দুটি আর্গুমেন্ট অগত্যা হয় এই স্ট্যাকের ফ্রেম ভিতরে 1681 01:27:19,850 --> 01:27:23,040 কোনো স্থানীয় ভেরিয়েবল সহ printf ব্যবহার করে করা হবে. 1682 01:27:23,040 --> 01:27:27,020 এবং তারপর পরবর্তী কল এখন printf থেকে printf, এর ভিতরে স্ট্যাকের ফ্রেম, 1683 01:27:27,020 --> 01:27:33,960 শতাংশ পি ব্যাকস্ল্যাশ এন এবং যাই হোক না কেন x এর মান 0x123, যা হয়. 1684 01:27:33,960 --> 01:27:34,425 হ্যাঁ? 1685 01:27:34,425 --> 01:27:35,675 >> শ্রোতা: [শ্রবণাতীত]? 1686 01:27:35,675 --> 01:27:38,145 1687 01:27:38,145 --> 01:27:40,880 >> Rob: এটা কিছু প্রিন্ট হবে যে ভালো দেখায়. 1688 01:27:40,880 --> 01:27:41,846 >> শ্রোতা: [শ্রবণাতীত]. 1689 01:27:41,846 --> 01:27:44,510 >> Rob: তাই এটি অঙ্ক আকারে ছাপে. 1690 01:27:44,510 --> 01:27:47,003 এটি একটি ঠিকানা মত দেখায়. 1691 01:27:47,003 --> 01:27:47,494 হ্যাঁ? 1692 01:27:47,494 --> 01:27:49,458 >> শ্রোতা: [শ্রবণাতীত]? 1693 01:27:49,458 --> 01:27:51,075 >> Rob: কেন কি হল? 1694 01:27:51,075 --> 01:27:52,920 >> শ্রোতা: [শ্রবণাতীত]? 1695 01:27:52,920 --> 01:27:55,240 >> Rob: কেন এই পয়েন্টার 4 বাইট? 1696 01:27:55,240 --> 01:27:58,500 তাই আভা আছে এই সামনে 0 এর. 1697 01:27:58,500 --> 01:28:03,740 তাই এটা সত্যিই 0x0000000123 না. 1698 01:28:03,740 --> 01:28:06,510 একটি 64 বিট সিস্টেমে, হতে পারে আরো শূন্য আভা. 1699 01:28:06,510 --> 01:28:11,410 1700 01:28:11,410 --> 01:28:11,900 হ্যাঁ? 1701 01:28:11,900 --> 01:28:13,150 >> শ্রোতা: [শ্রবণাতীত]. 1702 01:28:13,150 --> 01:28:17,290 1703 01:28:17,290 --> 01:28:21,130 >> Rob: তাই প্রথম printf, print-- যাচ্ছে 1704 01:28:21,130 --> 01:28:21,980 >> শ্রোতা: [শ্রবণাতীত]. 1705 01:28:21,980 --> 01:28:24,420 >> Rob: হ্যাঁ, এটা মুদ্রণ যাচ্ছে কি এক্স প্রতি নির্দেশ করা হয়. 1706 01:28:24,420 --> 01:28:27,030 1707 01:28:27,030 --> 01:28:29,070 তারা এই কি বলছেন বিষয় প্রতি নির্দেশ. 1708 01:28:29,070 --> 01:28:30,300 এটা নিন. 1709 01:28:30,300 --> 01:28:31,455 তাই এটি প্রতি নির্দেশ করা হয় কি? 1710 01:28:31,455 --> 01:28:31,850 50. 1711 01:28:31,850 --> 01:28:32,410 এটা নিন. 1712 01:28:32,410 --> 01:28:33,390 যে আমরা মুদ্রণ চলুন কি. 1713 01:28:33,390 --> 01:28:37,020 পরের এক, যেহেতু, আমরা শুধু নিজেই এক্স মুদ্রণ. 1714 01:28:37,020 --> 01:28:38,850 চ ভিতরে কি? 1715 01:28:38,850 --> 01:28:43,710 0x123. 1716 01:28:43,710 --> 01:28:44,500 ঠিক আছে. 1717 01:28:44,500 --> 01:28:46,620 >> এবং তারপর, পরিশেষে, আমরা বিনামূল্যে আছে. 1718 01:28:46,620 --> 01:28:48,040 আমরা কি মুক্ত করতে ক্ষণস্থায়ী হয়? 1719 01:28:48,040 --> 01:28:49,470 আমরা x পার করছি. 1720 01:28:49,470 --> 01:28:52,380 আমি আসলে প্রদর্শিত যে সময় এটি স্ট্যাক ফ্রেম. 1721 01:28:52,380 --> 01:28:56,370 >> তাই আমরা মান পার করছি 0x123 মুক্ত করতে. 1722 01:28:56,370 --> 01:28:59,070 তাই এখন জানে বিনামূল্যে, সমস্ত অধিকার, আমি গাদা আপ যেতে হবে 1723 01:28:59,070 --> 01:29:00,050 এবং যে মেমরি বিনামূল্যে. 1724 01:29:00,050 --> 01:29:03,920 এটি আর ব্যবহার কি ঠিকানা 0x123 হয়. 1725 01:29:03,920 --> 01:29:07,010 >> তাই বিনামূল্যে প্রকাশ করতে যাচ্ছে গাদা থেকে যে. 1726 01:29:07,010 --> 01:29:09,490 এখন আমাদের গাদা আবার খালি. 1727 01:29:09,490 --> 01:29:11,120 আমরা কোন মেমরি তথ্য ফাঁসের আছে. 1728 01:29:11,120 --> 01:29:12,940 এখন বিনামূল্যে ফিরে আসতে হবে. 1729 01:29:12,940 --> 01:29:16,130 যে x এখনও 0x123 বিজ্ঞপ্তি. 1730 01:29:16,130 --> 01:29:18,240 কিন্তু যে এখন বৈধ মেমরি হয় না. 1731 01:29:18,240 --> 01:29:21,220 1732 01:29:21,220 --> 01:29:23,986 আমরা আর ডি-রেফারেন্স এক্স উচিত. 1733 01:29:23,986 --> 01:29:24,440 হ্যাঁ? 1734 01:29:24,440 --> 01:29:27,240 >> শ্রোতা: 0 অপ্রয়োজনীয় ফিরে কি? 1735 01:29:27,240 --> 01:29:28,290 >> Rob: 0 অপ্রয়োজনীয় returen হয়? 1736 01:29:28,290 --> 01:29:31,110 হ্যাঁ. 1737 01:29:31,110 --> 01:29:33,950 আমরা শুধু আছে, কারণ যে করা আমরা বায়ু জন্য একটি ফিরতি আছে. 1738 01:29:33,950 --> 01:29:36,830 সুতরাং এটা হাঁ, দেয়, মত রিটার্ন 0 অন্তর্ভুক্ত. 1739 01:29:36,830 --> 01:29:37,310 হ্যাঁ? 1740 01:29:37,310 --> 01:29:38,560 >> শ্রোতা: [শ্রবণাতীত]? 1741 01:29:38,560 --> 01:29:42,110 1742 01:29:42,110 --> 01:29:45,580 >> Rob: তাই বিনামূল্যে এক্স পর কি ঘটবে যদি আমরা পয়েন্টার dereference চেষ্টা? 1743 01:29:45,580 --> 01:29:47,240 এটা কিছুই গোলমাল যে সম্ভব. 1744 01:29:47,240 --> 01:29:49,330 আমরা এখনও 50 পাবেন যে এটা সম্ভব. 1745 01:29:49,330 --> 01:29:53,590 >> এটা যে মেমরি যে, এছাড়াও, সম্ভব এখন অন্য কিছু ব্যবহার করা হচ্ছে. 1746 01:29:53,590 --> 01:29:57,140 সুতরাং এটা অনির্ধারিত আচরণ. 1747 01:29:57,140 --> 01:30:00,772 এবং অনির্ধারিত কিছু মানে ঘটতে পারে. 1748 01:30:00,772 --> 01:30:01,250 হ্যাঁ? 1749 01:30:01,250 --> 01:30:02,500 >> শ্রোতা: [শ্রবণাতীত]? 1750 01:30:02,500 --> 01:30:07,942 1751 01:30:07,942 --> 01:30:10,830 >> Rob: না, তাই আপনি নির্ধারণ অন্য কিছু এক্স. 1752 01:30:10,830 --> 01:30:15,870 তাই এখানে ডান যদি আমরা x সমান বলেন, কিছু malloc else-- 1753 01:30:15,870 --> 01:30:17,100 যদি malloc আকার ইভেন্ট 1754 01:30:17,100 --> 01:30:20,180 তারপর যে মূল ব্লক মেমরি মুক্ত করা হয় না. 1755 01:30:20,180 --> 01:30:21,490 এবং আমরা আনুষ্ঠানিকভাবে এটি হারিয়ে গেছে. 1756 01:30:21,490 --> 01:30:23,150 যে একটি মেমরি লিক. 1757 01:30:23,150 --> 01:30:25,090 আমরা সব রেফারেন্স হারিয়ে ফেলেছি মেমরি যে ব্লক. 1758 01:30:25,090 --> 01:30:26,827 তাই আমরা কখনও এটি মুক্ত করতে পারেন কোন উপায় আছে. 1759 01:30:26,827 --> 01:30:32,074 1760 01:30:32,074 --> 01:30:36,630 ঠিক আছে, তাই তারপর কাজ 0 মানে ফিরে. 1761 01:30:36,630 --> 01:30:37,900 >> সমস্ত অধিকার, তাই স্ট্যাক ওভারফ্লো. 1762 01:30:37,900 --> 01:30:39,320 এখানে ধারণা কি? 1763 01:30:39,320 --> 01:30:41,210 তাই মনে রাখবেন, গাদা নিচে যাচ্ছে. 1764 01:30:41,210 --> 01:30:43,480 স্ট্যাক আপ যাচ্ছে. 1765 01:30:43,480 --> 01:30:48,000 তাই এই বক্তৃতা থেকে যেমন ছিল, আমি যেখানে প্রধান ঠিক হবে, মনে 1766 01:30:48,000 --> 01:30:51,380 যাচ্ছে যা এই ফাংশন foo বিন্যাস, কল উপর যাও recursively নিজেই কল করতে এবং 1767 01:30:51,380 --> 01:30:52,320 আবার. 1768 01:30:52,320 --> 01:30:55,370 >> তাই ফ্রেম যাচ্ছে গাদা ঠিক একই কাজ করে. 1769 01:30:55,370 --> 01:30:58,130 তাই আমরা প্রধান সঙ্গে শুরু করতে যাচ্ছেন নীচে স্ট্যাক ফ্রেম. 1770 01:30:58,130 --> 01:31:02,000 তারপর প্রধান, foo বিন্যাস কল করতে যাচ্ছে, যা একটি স্ট্যাক ফ্রেম পাওয়া যাচ্ছে. 1771 01:31:02,000 --> 01:31:04,260 >> তারপর foo বিন্যাস foo বিন্যাস কল করতে যাচ্ছে আবার, যা পাওয়া যাচ্ছে 1772 01:31:04,260 --> 01:31:05,500 অন্য স্ট্যাক ফ্রেম. 1773 01:31:05,500 --> 01:31:08,270 এবং তারপর আবার, এবং আবার, এবং আবার, এবং আবার পর্যন্ত, শেষ পর্যন্ত, আমরা রান 1774 01:31:08,270 --> 01:31:09,190 গাদা মধ্যে. 1775 01:31:09,190 --> 01:31:11,990 তাই এই আমরা পেতে হয় একটি স্ট্যাক ওভারফ্লো. 1776 01:31:11,990 --> 01:31:14,910 এবং এই সময়ে, আপনি seg ফল্ট. 1777 01:31:14,910 --> 01:31:17,335 অথবা আপনি সত্যিই seg আগে দোষ চাই এই বিন্দু কিন্তু হাঁ. 1778 01:31:17,335 --> 01:31:19,660 >> শ্রোতা: কোর ডাম্প হয় seg দোষ হিসাবে একই? 1779 01:31:19,660 --> 01:31:26,140 >> Rob: তাই আপনি সেগমেন্টেশন দেখতে পাবেন দোষ কোর ডাম্প. 1780 01:31:26,140 --> 01:31:28,760 আপনি একটি কোর ডাম্প যখন পেতে আপনি seg ফল্ট. 1781 01:31:28,760 --> 01:31:32,580 এবং এটি সমস্ত একটি ডাম্প মত আপনার বর্তমান মেমরির বিষয়বস্তু, তাই 1782 01:31:32,580 --> 01:31:36,670 আপনি চেষ্টা করুন এবং চিহ্নিত করতে পারে কেন আপনি faulted seg. 1783 01:31:36,670 --> 01:31:37,135 হ্যাঁ? 1784 01:31:37,135 --> 01:31:38,385 >> শ্রোতা: [শ্রবণাতীত]? 1785 01:31:38,385 --> 01:31:40,855 1786 01:31:40,855 --> 01:31:45,460 >> Rob: তাই একটি সেগমেন্টেশন ফল্ট মানে একটি স্ট্যাক ওভারফ্লো আছে. 1787 01:31:45,460 --> 01:31:47,060 তাই অগত্যা না. 1788 01:31:47,060 --> 01:31:49,880 একটি সেগমেন্টেশন ফল্ট আপনি যে মানে একটি উপায় স্পর্শ মেমরি 1789 01:31:49,880 --> 01:31:50,880 আপনি করা উচিত হবে না. 1790 01:31:50,880 --> 01:31:54,750 তাই যে ঘটছে এক উপায়, যখন আমরা স্পর্শ শুরু, ওভারফ্লো গাদা 1791 01:31:54,750 --> 01:31:58,736 আমরা করা উচিত হবে না একটি উপায় যে মেমরি. 1792 01:31:58,736 --> 01:31:59,208 হ্যাঁ? 1793 01:31:59,208 --> 01:32:00,458 >> শ্রোতা: [শ্রবণাতীত]? 1794 01:32:00,458 --> 01:32:03,456 1795 01:32:03,456 --> 01:32:05,830 >> Rob: একটি অসীম লুপ এর ভিতরে তাই. 1796 01:32:05,830 --> 01:32:08,770 ভালো লেগেছে, এই একটি recursive অসীম ভালো হয় লুপ এবং তাই আমরা অন্য পেতে 1797 01:32:08,770 --> 01:32:09,770 স্ট্যাকের প্রতিটি সময় ফ্রেমে. 1798 01:32:09,770 --> 01:32:13,540 কিন্তু শুধু একটি নিয়মিত ভিতরে অসীম one-- যখন 1799 01:32:13,540 --> 01:32:16,390 ভাল, এর এমনকি মুদ্রণ না f-- 1800 01:32:16,390 --> 01:32:17,040 কিছু করতে. 1801 01:32:17,040 --> 01:32:18,390 যাই হোক না কেন. 1802 01:32:18,390 --> 01:32:20,610 >> আমরা পেয়ে যাচ্ছেন না অন্য স্ট্যাক ফ্রেম. 1803 01:32:20,610 --> 01:32:22,530 আমরা শুধু looping, রাখা চলুন এই একক নির্দেশ করে. 1804 01:32:22,530 --> 01:32:23,920 স্ট্যাকের ক্রমবর্ধমান হয় না. 1805 01:32:23,920 --> 01:32:27,290 এটা প্রতিটি recursive যে সত্য কল আমাদের একটি স্ট্যাক ফ্রেম প্রদান করা হয়. 1806 01:32:27,290 --> 01:32:31,231 আমরা একটি স্ট্যাক ওভারফ্লো পেতে কেন. 1807 01:32:31,231 --> 01:32:31,728 হ্যাঁ? 1808 01:32:31,728 --> 01:32:38,189 >> শ্রোতা: তাই আপনি যদি আপনি পেতে বলেন, লুপ এবং তারপর [শ্রবণাতীত]? 1809 01:32:38,189 --> 01:32:42,000 >> Rob: যখন লুপ এর ভিতরে তাই একটি printf ছিল, আপনি কি এখনও হবে 1810 01:32:42,000 --> 01:32:42,790 seg না দোষ. 1811 01:32:42,790 --> 01:32:46,090 আমি শুধু কিছু গুলান চান না. 1812 01:32:46,090 --> 01:32:46,610 এটি লুপ হবে. 1813 01:32:46,610 --> 01:32:48,225 আপনি একটি স্ট্যাকের পেতে চাই printf, জন্য ফ্রেমে. 1814 01:32:48,225 --> 01:32:49,580 >> তারপর printf, ফিরে আসবে. 1815 01:32:49,580 --> 01:32:50,280 তারপর আপনি আবার লুপ চাই. 1816 01:32:50,280 --> 01:32:51,460 আপনি একটি স্ট্যাকের পেতে চাই printf, জন্য ফ্রেমে. 1817 01:32:51,460 --> 01:32:52,850 এটা ফিরে আসবে. 1818 01:32:52,850 --> 01:32:54,060 একা স্ট্যাক ফ্রেম. 1819 01:32:54,060 --> 01:33:00,215 তাই আপনি যদি এই অসীম না পেয়ে থাকেন স্ট্যাকের ফ্রেম আপ পাইল. 1820 01:33:00,215 --> 01:33:03,185 >> শ্রোতা: [শ্রবণাতীত]? 1821 01:33:03,185 --> 01:33:04,040 >> Rob: হ্যাঁ. 1822 01:33:04,040 --> 01:33:09,360 তাই এই স্ট্যাক ওভারফ্লো ঘটে এই না কারণ 1823 01:33:09,360 --> 01:33:11,600 foo বিন্যাস কল ফিরে হয়. 1824 01:33:11,600 --> 01:33:15,250 আমরা ফিরে তারপর, আমরা তাই স্ট্যাকের ফ্রেম হারানো শুরু. 1825 01:33:15,250 --> 01:33:17,870 এবং তারপর আমরা ওভারফ্লো গাদা না. 1826 01:33:17,870 --> 01:33:20,070 আপনি একটি বেস ক্ষেত্রে প্রয়োজন কেন এবং যে আপনার ব্যক্তিগত ফাংশন জন্য. 1827 01:33:20,070 --> 01:33:22,992 1828 01:33:22,992 --> 01:33:23,479 হ্যাঁ? 1829 01:33:23,479 --> 01:33:27,375 >> শ্রোতা: সম্ভাব্য আকার এবং গাদা জন্য একই জন্য গাদা 1830 01:33:27,375 --> 01:33:29,880 সব প্রোগ্রাম? 1831 01:33:29,880 --> 01:33:31,910 >> Rob: প্রায়. 1832 01:33:31,910 --> 01:33:35,090 হয় স্ট্যাকের সম্ভাব্য আকার এবং সব প্রোগ্রামের জন্য একই গাদা? 1833 01:33:35,090 --> 01:33:37,180 প্রায়. 1834 01:33:37,180 --> 01:33:40,080 কিছু রেন্ডোমাইজেশন নেই যেখানে স্ট্যাকের শুরু হয় এবং 1835 01:33:40,080 --> 01:33:42,400 যেখানে গাদা শুরু হয়. 1836 01:33:42,400 --> 01:33:45,870 আপনি একটি সম্পূর্ণ অনেক আছে এরকম গ্লোবাল ভেরিয়েবল এবং কিছু, আপনি হতে পারে 1837 01:33:45,870 --> 01:33:49,520 কিছু স্থান থেকে দূরে আপনার গাদা জন্য. 1838 01:33:49,520 --> 01:33:54,060 >> একটি 64 বিট সিস্টেম, আপনি ফলত অসীম মেমরি আছে. 1839 01:33:54,060 --> 01:33:55,820 ঠিক তাই অনেক আছে. 1840 01:33:55,820 --> 01:33:59,250 32 বিট এবং 64 বিট, যে এর মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য. 1841 01:33:59,250 --> 01:34:02,350 >> আপনি আরো একটি সম্পূর্ণ অনেক পেতে যাচ্ছেন একটি 64 বিট, এবং গাদা গাদা স্থান 1842 01:34:02,350 --> 01:34:05,810 সিস্টেম ঠিক আরো আছে কারণ তারা ব্যবহার করতে পারেন ঠিকানা. 1843 01:34:05,810 --> 01:34:09,360 কিন্তু একটি পৃথক সিস্টেমে, এটা করবে না স্ট্যাকের প্রায় একই পরিমাণ হতে 1844 01:34:09,360 --> 01:34:10,785 এবং গাদা স্থান. 1845 01:34:10,785 --> 01:34:13,635 1846 01:34:13,635 --> 01:34:15,530 ঠিক আছে. 1847 01:34:15,530 --> 01:34:18,220 >> তাই শেষ জিনিস সংকলন. 1848 01:34:18,220 --> 01:34:19,810 তাই আপনি যদি এই প্রক্রিয়া জানা উচিত. 1849 01:34:19,810 --> 01:34:22,240 চার বড় ধাপ আছে. 1850 01:34:22,240 --> 01:34:24,400 সুতরাং প্রথম এক উচিত মনে রাখা সহজ হবে. 1851 01:34:24,400 --> 01:34:25,085 প্রাক প্রক্রিয়াকরণ. 1852 01:34:25,085 --> 01:34:28,390 এতে পূর্ব উপসর্গ আছে. 1853 01:34:28,390 --> 01:34:32,080 সুতরাং এটা অন্য সব কিছুর আগে আসে. 1854 01:34:32,080 --> 01:34:34,000 >> মনে রাখা জিনিস হ্যাশ হয়. 1855 01:34:34,000 --> 01:34:37,250 সুতরাং হ্যাশ সংজ্ঞায়িত এবং হ্যাশ রয়েছে যারা সব. 1856 01:34:37,250 --> 01:34:39,560 যারা সব প্রাক প্রসেসর আছে নির্দেশ. 1857 01:34:39,560 --> 01:34:42,030 এই জিনিস যে আছে প্রাক প্রসেসর যত্ন নেয়. 1858 01:34:42,030 --> 01:34:43,680 >> সুতরাং একটি প্রাক প্রসেসর কি করবেন না? 1859 01:34:43,680 --> 01:34:44,850 এটা সত্যিই একটি মূক জিনিস. 1860 01:34:44,850 --> 01:34:49,380 এটি করতে সক্ষম এই সব সব কপি, এবং কাটা, এবং পেস্ট অপারেশন. 1861 01:34:49,380 --> 01:34:51,790 >> সুতরাং হ্যাশ মান i0 ডট জ রয়েছে. 1862 01:34:51,790 --> 01:34:52,990 করছেন কি? 1863 01:34:52,990 --> 01:34:56,610 এটা মান i0 ডট জ দখল এর ফাইল এবং উপরের মধ্যে পেস্ট 1864 01:34:56,610 --> 01:34:58,960 যেখানেই এটি হ্যাশ অন্তর্ভুক্ত বলেছেন মান i0 ডট জ. 1865 01:34:58,960 --> 01:35:02,480 >> এবং কোনো হ্যাশ আমরা করেছি যে নির্ধারণ দেখা যায়, কি করছে? 1866 01:35:02,480 --> 01:35:06,730 তার হ্যাশ মান কপি এবং পেস্ট সংজ্ঞায়িত করা হয় সংজ্ঞায়িত যে 1867 01:35:06,730 --> 01:35:08,500 আপনি যেখানেই থাকুন না মান ব্যবহার করা হয়. 1868 01:35:08,500 --> 01:35:13,400 সুতরাং preprocessor সত্যিই আছে সহজ টেক্সট ভিত্তিক অপারেশন. 1869 01:35:13,400 --> 01:35:15,870 এটা স্মার্ট কিছুই না. 1870 01:35:15,870 --> 01:35:18,920 তাই অন্য সব কিছুর হয় আরো জটিল. 1871 01:35:18,920 --> 01:35:22,970 >> তাই এখন যে preprocessor এবং হয় কাজ, আমরা আসলে সঙ্কলন. 1872 01:35:22,970 --> 01:35:24,320 তাই কম্পাইল মানে কি? 1873 01:35:24,320 --> 01:35:27,310 আমরা এখন গ কোড থেকে যাচ্ছেন সমাবেশ কোড. 1874 01:35:27,310 --> 01:35:27,570 হ্যাঁ? 1875 01:35:27,570 --> 01:35:28,820 >> শ্রোতা: [শ্রবণাতীত]? 1876 01:35:28,820 --> 01:35:32,390 1877 01:35:32,390 --> 01:35:34,220 >> Rob: হ্যাঁ, আমরা যে ধরা. 1878 01:35:34,220 --> 01:35:36,880 1879 01:35:36,880 --> 01:35:38,660 তাই কম্পাইল. 1880 01:35:38,660 --> 01:35:40,310 আমরা সমাবেশ থেকে সি চলুন. 1881 01:35:40,310 --> 01:35:42,470 তাই এই একটি প্রকৃত ভাষা পরিবর্তন. 1882 01:35:42,470 --> 01:35:45,240 নিজেই কম্পাইল থেকে যাচ্ছে মানে একটি উচ্চ স্তরের ভাষা 1883 01:35:45,240 --> 01:35:47,340 একটি নিম্ন স্তরের ভাষা. 1884 01:35:47,340 --> 01:35:50,720 >> এবং সি একটি উচ্চ পর্যায়ের ভাষা সমাবেশ তুলনায়. 1885 01:35:50,720 --> 01:35:52,320 সমাবেশ কি? 1886 01:35:52,320 --> 01:35:56,440 যে তার নির্দেশাবলী, সুন্দর অনেক, আপনার CPU 'র জন্য তৈরি. 1887 01:35:56,440 --> 01:35:59,130 কিন্তু আপনার কম্পিউটার এখনও আছে সমাবেশ বুঝতে না. 1888 01:35:59,130 --> 01:36:01,570 এটা শুধুমাত্র বেশী এবং zeros বুঝতে পারে. 1889 01:36:01,570 --> 01:36:06,160 তাই পরবর্তী পদক্ষেপ, একত্রিতকরনের হয়, যা এই নির্দেশাবলী থেকে আমাদের যে এটি 1890 01:36:06,160 --> 01:36:08,760 আপনার CPU বোঝে এবং আসলে তাদের অনুবাদ 1891 01:36:08,760 --> 01:36:10,820 বেশী এবং zeros. 1892 01:36:10,820 --> 01:36:13,570 >> বাইনারি সমাবেশ সি তাই. 1893 01:36:13,570 --> 01:36:15,870 কিন্তু আমি এখনো একটি এক্সিকিউটেবল না. 1894 01:36:15,870 --> 01:36:19,550 সুতরাং CS50 লাইব্রেরি মনে করি. 1895 01:36:19,550 --> 01:36:23,070 আমরা একটি বাইনারি সঙ্গে আপনার দেওয়া GetString, যা এই CS50 লাইব্রেরি, 1896 01:36:23,070 --> 01:36:24,400 এবং GetInt এবং যে সব. 1897 01:36:24,400 --> 01:36:25,700 >> কিন্তু CS50 লাইব্রেরি 1898 01:36:25,700 --> 01:36:27,650 এবং নিজেই এর এক্সিকিউটেবল হয় না. 1899 01:36:27,650 --> 01:36:29,570 এটি একটি প্রধান ফাংশন আছে না. 1900 01:36:29,570 --> 01:36:32,230 এটা বাইনারি শুধু একটি গুচ্ছ আপনি ব্যবহার করতে পারেন. 1901 01:36:32,230 --> 01:36:41,730 তাই লিঙ্ক আমরা একসাথে সব আনা হয় এই বিভিন্ন বাইনারি ফাইল 1902 01:36:41,730 --> 01:36:43,110 একটি প্রকৃত এক্সিকিউটেবল মধ্যে. 1903 01:36:43,110 --> 01:36:45,900 আপনি টাইপ করতে পারেন যে বিন্দু একটি বিন্দু আউট কাট. 1904 01:36:45,900 --> 01:36:51,660 >> তাই এই ফাইল মত যে আপনি লিখেছেন - যাই হোক না কেন আপনার প্রোগ্রাম হচ্ছে ÑÑ 1905 01:36:51,660 --> 01:36:53,620 Ceaser বিন্দু গ. 1906 01:36:53,620 --> 01:36:55,100 কিন্তু এখন এটা কম্পাইল করা হয়েছে বাইনারি নিচে. 1907 01:36:55,100 --> 01:36:56,480 তাই Ceaser ডট ণ. 1908 01:36:56,480 --> 01:36:59,620 এবং এই আমাদের CS50 বাইনারি লাইব্রেরি হয়. 1909 01:36:59,620 --> 01:37:02,284 এবং তারা মিলিত হচ্ছে একটি এক্সিকিউটেবল মধ্যে. 1910 01:37:02,284 --> 01:37:02,758 হ্যাঁ? 1911 01:37:02,758 --> 01:37:04,008 >> শ্রোতা: [শ্রবণাতীত]? 1912 01:37:04,008 --> 01:37:08,800 1913 01:37:08,800 --> 01:37:12,710 >> Rob: তাই প্রথম অন্তর্ভুক্ত করা, মনে রাখবেন, অন্তর্ভুক্ত আসলে একটি হয় হ্যাশ 1914 01:37:12,710 --> 01:37:13,810 প্রাক প্রসেসর পদক্ষেপ. 1915 01:37:13,810 --> 01:37:14,750 কিন্তু যে পৃথক. 1916 01:37:14,750 --> 01:37:20,730 আপনি যদি কোন ফাংশন ব্যবহার করছি না যে তারপর আপনার ফাইল এর বাইরে আছে, 1917 01:37:20,730 --> 01:37:26,100 না, আপনি কিছু লিঙ্ক করার প্রয়োজন হবে না আপনি সবকিছু আছে. 1918 01:37:26,100 --> 01:37:30,310 >> যে বলেন, printf মধ্যে সংযুক্ত করা হচ্ছে. 1919 01:37:30,310 --> 01:37:32,820 আপনি কি কখনও printf ব্যবহার, যে কিছু যে লিঙ্ক করা প্রয়োজন 1920 01:37:32,820 --> 01:37:35,740 আপনি যে লিখতে না, কারণ. 1921 01:37:35,740 --> 01:37:39,530 এবং, আসলে printf, স্বয়ংক্রিয়ভাবে সংযুক্ত. 1922 01:37:39,530 --> 01:37:42,760 আপনি কি জানেন কিভাবে কমান্ড লাইন বা যখন আপনি কি এটা আছে, দেখতে না টাইপ 1923 01:37:42,760 --> 01:37:46,690 লিঙ্ক আছে যা ড্যাশ ঠ CS50, CS50 লাইব্রেরি? 1924 01:37:46,690 --> 01:37:49,070 যে printf, এবং কাপড়, যাচ্ছে স্বয়ংক্রিয়ভাবে সংযুক্ত করা হবে. 1925 01:37:49,070 --> 01:37:51,730 1926 01:37:51,730 --> 01:37:53,930 কিছু অন্য কোন প্রশ্ন? 1927 01:37:53,930 --> 01:37:56,280 >> শ্রোতা: [শ্রবণাতীত]? 1928 01:37:56,280 --> 01:37:58,300 >> Rob: লিঙ্ক? 1929 01:37:58,300 --> 01:38:03,450 আমরা একটি আভা আছে বিভিন্ন বাইনারি ফাইল. 1930 01:38:03,450 --> 01:38:06,410 এই ক্যানোনিকাল উদাহরণ আমরা ব্যবহার করি যে CS50 লাইব্রেরি. 1931 01:38:06,410 --> 01:38:09,960 আমরা কম্পাইল এবং আপনি দেওয়া আছে এই CS50 লাইব্রেরি বাইনারি. 1932 01:38:09,960 --> 01:38:12,410 >> আপনি GetString ব্যবহার করতে চান আপনার প্রোগ্রাম. 1933 01:38:12,410 --> 01:38:14,750 সুতরাং আপনি যান এবং GetString ব্যবহার. 1934 01:38:14,750 --> 01:38:19,700 কিন্তু আমার জন্য বাইনারি কোড ছাড়া GetString,, আপনি আপনার কোড কম্পাইল যখন 1935 01:38:19,700 --> 01:38:23,140 নিচে, আপনি আসলে চালাতে না পারেন আপনার প্রোগ্রাম GetString, স্ট্রিং, কারণ 1936 01:38:23,140 --> 01:38:25,080 এখনো সম্পূর্ণ সংজ্ঞায়িত না. 1937 01:38:25,080 --> 01:38:29,220 >> আপনি আমার বাইনারি লিঙ্ক যখন এটি শুধুমাত্র যে সব, এখন যে GetString, রয়েছে 1938 01:38:29,220 --> 01:38:31,130 ঠিক আছে, আমি আসলে যা করতে পারেন GetString, চালানো হয়. 1939 01:38:31,130 --> 01:38:32,330 আমার ফাইল সম্পূর্ণ. 1940 01:38:32,330 --> 01:38:34,208 এবং আমি এই রান করতে পারেন. 1941 01:38:34,208 --> 01:38:34,697 হ্যাঁ? 1942 01:38:34,697 --> 01:38:37,631 >> শ্রোতা: রূপান্তর লিঙ্ক না বাইনারি এক্সিকিউটেবল? 1943 01:38:37,631 --> 01:38:42,032 আপনি অন্যান্য, না আছে তাই, এমনকি যদি লাইব্রেরি, এটি এখনও হবে না 1944 01:38:42,032 --> 01:38:44,477 অনুবাদ করতে প্রয়োজনীয় [শ্রবণাতীত]? 1945 01:38:44,477 --> 01:38:48,640 >> Rob: তাই একটি এক্সিকিউটেবল বাইনারি এখনও. 1946 01:38:48,640 --> 01:38:51,750 এটি শুধু একটি সম্পূর্ণ মিশ্রন এর বাইনারি গুচ্ছ. 1947 01:38:51,750 --> 01:38:55,124 1948 01:38:55,124 --> 01:38:56,591 >> শ্রোতা: অনেক ধন্যবাদ. 1949 01:38:56,591 --> 01:38:58,560 >> Rob: কোন সমস্যা নেই. 1950 01:38:58,560 --> 01:38:59,540 অন্য কোন প্রশ্ন? 1951 01:38:59,540 --> 01:39:02,001 অন্যথায়, আমরা সব সেট করছি. 1952 01:39:02,001 --> 01:39:02,690 ঠিক আছে. 1953 01:39:02,690 --> 01:39:02,990 ধন্যবাদ. 1954 01:39:02,990 --> 01:39:03,590 >> [সাধুবাদ] 1955 01:39:03,590 --> 01:39:04,490 >> শ্রোতা: আপনাকে ধন্যবাদ. 1956 01:39:04,490 --> 01:39:05,740 >> Rob: হ্যাঁ. 1957 01:39:05,740 --> 01:39:06,582