1 00:00:00,000 --> 00:00:02,270 [Powered by Google Translate] [2 সপ্তাহ, ক্রমাগত] 2 00:00:02,270 --> 00:00:04,220 [ডেভিড জে Malan, হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:04,220 --> 00:00:06,880 [এই হয় CS50. - CS50.TV] 4 00:00:06,880 --> 00:00:10,990 ঠিক আছে. এটি CS50, এবং এই 2 সপ্তাহ শেষে. 5 00:00:10,990 --> 00:00:14,410 আপনি যদি এই সময় প্রায় খাই করা আগামীকাল আশা, 6 00:00:14,410 --> 00:00:18,620 জানি যে আমরা একটি ছোট গ্রুপ আগামীকাল, বৃহস্পতিবার, 1:15 অপরাহ্ন হিসাবে আহ্বান যাও চলুন. 7 00:00:18,620 --> 00:00:21,360 এখানে এখন পর্যন্ত এই URL-এ যদি আপনি উত্তর দিতে চাই. 8 00:00:21,360 --> 00:00:26,740 স্থান সীমিত, তাই আপনি যদি এই ফর্ম পূরণ করার সময় দ্বারা পূরণ করেনি আপ ক্ষমা করুন. 9 00:00:26,740 --> 00:00:29,300 অন্য URL, যদিও, যে সুদ হতে পারে এটি. 10 00:00:29,300 --> 00:00:32,369 প্রায় এক মাসের সময়, কোর্স করা উপলব্ধ করা যাচ্ছে 11 00:00:32,369 --> 00:00:36,890 যার মাধ্যমে সকল আরো বিস্তৃতভাবে মাধ্যমে edX, ইন্টারনেট ভাবেন যাও বরাবর অনুসরণ করতে হবে, 12 00:00:36,890 --> 00:00:39,380 অবশ্যই ব্যস্ত আসলে বেশ সক্রিয়ভাবে,. 13 00:00:39,380 --> 00:00:42,270 তারা CS50 অ্যাপ্লায়েন্স এবং CS50 আলোচনা ব্যবহার করা হবে 14 00:00:42,270 --> 00:00:45,490 বিভিন্ন সফ্টওয়্যার এবং টুলস যে ইতিমধ্যে আমরা এই সেমিস্টারে ভর্তি করা হয়েছে ব্যবহার করে বেশিরভাগ. 15 00:00:45,490 --> 00:00:48,710 এবং এক উদ্যোগের আমরা একটি পরীক্ষা হিসাবে গ্রহণ এই বছরের চাই 16 00:00:48,710 --> 00:00:51,930 ঠিক কত কন্টেন্ট আমরা অনুবাদ করতে হয় 17 00:00:51,930 --> 00:00:53,960 অন্যান্য উচ্চারিত এবং লিখিত ভাষা. 18 00:00:53,960 --> 00:00:57,500 তাই আপনি যদি এই প্রকল্পে অংশগ্রহণ করতে আগ্রহ থাকতে পারে 19 00:00:57,500 --> 00:01:02,270 যেখানে আমরা অবশ্যই এর বক্তৃতা জন্য ইংরেজি সাবটাইটেল প্রতিলিখন এবং প্রদান করবে 20 00:01:02,270 --> 00:01:05,450 এবং হাফপ্যান্ট এবং সেমিনার ও বিভাগে এবং মত, 21 00:01:05,450 --> 00:01:08,200 যদি আপনি অনর্গল কথা বলুন অথবা অন্যান্য ভাষা অনর্গল কিছু লিখুন, 22 00:01:08,200 --> 00:01:12,290 আমরা এই প্রকল্পে আপনি ব্যস্ত সাহায্যে আপনি এক বা একাধিক ভিডিও নিতে চাই, 23 00:01:12,290 --> 00:01:15,200 একটি ভাষা আপনি কি জানেন বেশ ভাল সেগুলি অনুবাদ. 24 00:01:15,200 --> 00:01:18,700 >> আপনার ইন্টারফেসের একটি ধারনা দেবে, এই ওয়েব ভিত্তিক ইউজার ইন্টারফেস আছে 25 00:01:18,700 --> 00:01:22,090 যে আমরা ব্যবহার করে যে মূলত ভালো একটি UI 'তে তৈরি করা হবে. 26 00:01:22,090 --> 00:01:24,290 এই সম্পর্কে কিছু ছিল অধ্যাপনা হ্যালোইন আগে, 27 00:01:24,290 --> 00:01:27,390 এবং ডান হাত কালো সেখানে পার্শ্ব পরের এইসব সময় স্ট্যাম্প, 28 00:01:27,390 --> 00:01:31,210 আপনি বিভিন্ন বিষয় আছে যা আমার মুখ দিয়ে বেরিয়ে আসেন যে দিন দেখতে পাবেন না, 29 00:01:31,210 --> 00:01:34,850 এটি নীচের এবং তারপরে আপনি কিছু অন্য ভাষায় অনুবাদ করতে পারবেন 30 00:01:34,850 --> 00:01:38,690 ঠিক কি ম্যাপিং, তাদের মধ্যে এই ক্ষেত্রে, এবং ইংরেজি, স্প্যানিশ ভাষায়,. 31 00:01:38,690 --> 00:01:40,440 সুতরাং এটি প্রকৃত একটি খুব ব্যবহারকারী বন্ধুত্বপূর্ণ হাতিয়ার. 32 00:01:40,440 --> 00:01:43,370 আপনি এবং কিবোর্ড শর্টকাটের মাধ্যমে গুটিয়ে দ্রুত এগিয়ে যায় খুব সহজেই করতে পারেন. 33 00:01:43,370 --> 00:01:47,490 তাই আপনি যদি এই গবেষণায় অংশ নিতে চান, তাহলে আপনার শব্দ দেখা যায় এবং পড়া 34 00:01:47,490 --> 00:01:51,850 সেখানে আউট ভাবেন সম্ভাব্য হাজার হাজার দ্বারা, অংশগ্রহণের মুক্ত মনে করবেন না দয়া করে. 35 00:01:51,850 --> 00:01:54,350 বিড়ালছানা সোমবার থেকে একটি মাত্র শব্দ. 36 00:01:54,350 --> 00:02:00,350 পাছে আমরা একটি মাত্রাতিরিক্ত ভয়ের বার্তা পাঠিয়েছে, যে, বুঝতে হিসাবে অফিসে ঘন্টা সুপারিশ করবেন 37 00:02:00,350 --> 00:02:03,300 এবং হিসাবে বিভাগে সুপারিশ, অবশ্যই নকশা বহুলাংশেই 38 00:02:03,300 --> 00:02:07,360 ছাত্রদের সমস্যা সেট মাধ্যমে সহযোগী এবং কাজ করার কথা বলা আছে 39 00:02:07,360 --> 00:02:11,260 এবং একসাথে সমস্যা, এবং সত্যিই ঠিক লাইন আসে নিচে, 40 00:02:11,260 --> 00:02:16,010 আবার, আপনি যে কাজ চূড়ান্তভাবে জমা আপনার হওয়া উচিত. 41 00:02:16,010 --> 00:02:18,860 এবং অফিসে ঘন্টার মধ্যে সেজন্য ভাল, এটা সম্পূর্ণই স্বাভাবিক, 42 00:02:18,860 --> 00:02:22,240 এটি সম্পূর্ণই এর প্রত্যাশিত হবে, এমনকি যাও, যাও কিছু বন্ধুর পাশে আপনার সাথে চ্যাট করা হবে. 43 00:02:22,240 --> 00:02:24,370 >> যদি তিনি কিছু বিষয় সঙ্গে সংগ্রাম এবং আপনি ভালো হয়, 44 00:02:24,370 --> 00:02:27,940 "ওহ, ভাল, আপনি কোড সম্পর্কে কিছু লাইনের একটি আভাস যে আমি লিখেছি দিতে যাক," যে সূক্ষ্ম, 45 00:02:27,940 --> 00:02:31,250 এটি ঘটে, এবং এর যে শিক্ষণ প্রক্রিয়ার সঙ্গে খুব সহায়ক, আমি মনে করি. 46 00:02:31,250 --> 00:02:36,750 যেখানে লাইন পার পরার যখন প্রধান ধরণের হেলানো পর্যন্ত অনেকগুলি যাও জন্য এখানে উপর 47 00:02:36,750 --> 00:02:41,160 বা ঠিক যে সত্যিই জন্য মিনিট আছে আপনার বন্ধুর জন্য একটি সুযোগ অবরোধমুক্ত, 48 00:02:41,160 --> 00:02:44,160 এবং কিছু জিনিস যখন ইমেল এবং ড্রপবক্স এবং মত বিনিময় মাধ্যমে পেতে, 49 00:02:44,160 --> 00:02:45,640 অত্যন্ত লাইন আছে. 50 00:02:45,640 --> 00:02:48,620 তাই সব উপায়ে আরাম লাগছে এবং বন্ধুদের সাথে চ্যাট করতে উত্সাহ বোধ 51 00:02:48,620 --> 00:02:52,810 এবং psets এবং আরো সম্পর্কে এবং সহপাঠীদের ঠিক বুঝতে পারি যে কি চরমভাবে আপনার জমা দেওয়া 52 00:02:52,810 --> 00:02:57,340 সত্যিই আপনার সৃষ্টিতে এবং না অন্য কারোর পণ্য উচিত. 53 00:02:57,340 --> 00:03:00,490 এবং তাই pset2 জন্য ডোমেন নির্দিষ্ট সমস্যা, 54 00:03:00,490 --> 00:03:04,740 যা আউট দেরী আগামীকাল রাতে আসবে, ক্রিপ্টোগ্রাফি বিশ্বের মধ্যে আকর্ষণীয় হয়, 55 00:03:04,740 --> 00:03:08,970 যা এনক্রিপ্ট বা তথ্য scrambling শিল্প, 56 00:03:08,970 --> 00:03:12,600 এবং শেষ পর্যন্ত এই নিরাপত্তা বিশ্বের সাথে সম্পর্কিত. 57 00:03:12,600 --> 00:03:16,560 এখন, আমাদের অধিকাংশ জন্য নিরাপত্তা মোটামুটি জাগতিক মেকানিজম আকারে আসে. 58 00:03:16,560 --> 00:03:19,050 আমাদের সমস্ত ব্যবহারকারীর নাম এবং পাসওয়ার্ডের আছে, 59 00:03:19,050 --> 00:03:23,450 এবং আমাদের খুব খারাপ ব্যবহারকারীর নাম এবং পাসওয়ার্ডের আছে, সম্ভবত. 60 00:03:23,450 --> 00:03:28,240 >> আপনি যদি আপনার পাসওয়ার্ড একাধিক ওয়েবসাইটের জন্য একই, যে হয়ত ভাল ধারণা না, 61 00:03:28,240 --> 00:03:30,070 হিসাবে আমরা সেমেস্ত্র এর শেষ দিকে নিয়ে আলোচনা করব. 62 00:03:30,070 --> 00:03:34,720 কোন রসিকতা - - যদি আপনার পাসওয়ার্ড একটি স্টিকি নোট করা হয় আপনার মনিটরের উপর, 63 00:03:34,720 --> 00:03:38,350 যে খুব ভাল হয় অগত্যা নকশা কিন্তু বেশ সাধারণ প্রপঞ্চ না. 64 00:03:38,350 --> 00:03:42,470 এবং যদি আপনি আপনার পাসওয়ার্ডগুলি এনক্রিপ্ট ক্রিপ্টোগ্রাফি ব্যবহার করছি না, 65 00:03:42,470 --> 00:03:44,210 তারা বিশেষ করে প্রবন. 66 00:03:44,210 --> 00:03:47,270 তাই আপনি যদি মনে করেন যে আপনার কোন গোপন ওয়ার্ড ফাইলটি থাকার হচ্ছে সুপার চতুর করছি 67 00:03:47,270 --> 00:03:49,910 কোথাও আপনার হার্ড ড্রাইভের যে আপনার পাসওয়ার্ডের সব আছে 68 00:03:49,910 --> 00:03:53,670 কিন্তু এটি একটি ফোল্ডার আছে যে কোন এক, তার যে খুব একটা খুব নিরাপদ পদ্ধতিও না যাচ্ছে. 69 00:03:53,670 --> 00:03:56,990 তাই কি pset2 প্রবর্তন করা হয় ক্রিপ্টোগ্রাফি এই শিল্প 70 00:03:56,990 --> 00:04:02,010 এবং তথ্য scrambling যাতে পাসওয়ার্ডগুলি মত জিনিষ সব আরো সুরক্ষিত. 71 00:04:02,010 --> 00:04:05,790 এখানে প্রসঙ্গ হল সঙ্গে অসুরক্ষিত তথ্য 72 00:04:05,790 --> 00:04:07,930 এটি এবং এনক্রিপ্ট এটা হামাগুড়ি দিয়া আরোহণ একটি সুযোগ আসে. 73 00:04:07,930 --> 00:04:11,470 তাই এই উদাহরণস্বরূপ,, একটি এনক্রিপ্ট করা বার্তার একটি উদাহরণ. 74 00:04:11,470 --> 00:04:14,700 এই প্রকৃতপক্ষে ইংরেজিতে কিছু বলছে, কিন্তু এটা স্পষ্ট না বিলকুল সুস্পষ্ট. 75 00:04:14,700 --> 00:04:18,279 এবং আমরা দুষ্টচক্র আজ সরাইয়া জ্বালাতন করা কি এই গোপন বার্তা হয় এখানে পাবেন. 76 00:04:18,279 --> 00:04:23,490 কিন্তু কম্পিউটারের বাস্তব জগতে, ভালো জিনিস তারা ইংরেজি বাক্যাংশ চেহারা হতে পারে না এমনকি না. 77 00:04:23,490 --> 00:04:28,430 উদাহরণস্বরূপ, এটি কি আপনি একটি প্রমিত লিনাক্স বা Mac বা ইউনিক্স কম্পিউটারে পারে 78 00:04:28,430 --> 00:04:32,070 যে একটি ফাইলের মধ্যে একবার ছিল উপর একটি পাসওয়ার্ড সময় নামক ফাইলটি. 79 00:04:32,070 --> 00:04:34,200 >> আজকাল এটা অন্যান্য জায়গা থেকে সরানো হয়েছে এর. 80 00:04:34,200 --> 00:04:39,210 কিন্তু আপনি যদি একটি সিস্টেমে যথাস্থানে চেহারা, না আপনি শুধুমাত্র আপনার ব্যবহারকারী নাম দেখতে পাবেন 81 00:04:39,210 --> 00:04:43,400 সিস্টেমের অন্যান্য ব্যক্তিদের অথবা যে, কিন্তু আপনি এমন একটি পাসওয়ার্ড তাদের মধ্যে এনক্রিপ্ট সংস্করণ দেখতে পাবেন. 82 00:04:43,400 --> 00:04:47,980 প্রকৃতপক্ষে, শব্দ আছে সমাধিগৃহ দাড়ায় যে নিম্নলিখিত স্টাফ এনক্রিপ্ট করা হয়, 83 00:04:47,980 --> 00:04:52,680 এবং আপাতদৃষ্টিতে র্যান্ডম অক্ষর এবং অক্ষর এবং সংখ্যার এই সিরিজের এবং তাই ঘোষণা 84 00:04:52,680 --> 00:04:56,480 সাধারণত শুধুমাত্র কিছু গোপন বুদ্ধিমান দ্বারা decrypted করা যেতে পারে - 85 00:04:56,480 --> 00:04:58,840 একটি গোপন শব্দ, একটি গোপন নম্বর - 86 00:04:58,840 --> 00:05:03,160 এবং তাই প্রকৃতপক্ষে, পরিণামে boils ক্রিপ্টোগ্রাফি নিচে শিল্প কিছু ধরণের বিশ্বাস 87 00:05:03,160 --> 00:05:05,650 এবং কিছু যে কারোর না বুদ্ধিমান. 88 00:05:05,650 --> 00:05:10,090 সুতরাং আমরা একটি বিট আরো বিস্তারিতভাবে এই আজকের অন্বেষণ এবং করব pset আসা যাও. 89 00:05:10,090 --> 00:05:12,200 এবং এখন পাস / ব্যর্থ একটি শব্দ. 90 00:05:12,200 --> 00:05:15,360 বিশেষত হিসাবে আপনি কিছু pset1, অ্যাপ্লায়েন্স মধ্যে dived আছে, 91 00:05:15,360 --> 00:05:19,080 এবং নিজের জন্য খুব নতুন দুনিয়া, বুঝতে পারি যে বিরক্তির এবং বিভ্রান্তির 92 00:05:19,080 --> 00:05:21,700 এবং শুধু প্রযুক্তিগত সমস্যার খুব আশা করা যায়, 93 00:05:21,700 --> 00:05:24,180 বিশেষ করে প্রথম pset, যেখানে ঠিক তাই নতুন অনেক আছে, 94 00:05:24,180 --> 00:05:27,730 শুধুমাত্র ls এবং সিডি পেয়ে সাথে পরিচিত এবং এই গোপনীয় সব কমান্ড 95 00:05:27,730 --> 00:05:33,050 এবং একটি নতুন পরিবেশ, এবং যে এর প্রকৃত উপাদান এবং নিজেই প্রোগ্রামিং থেকে পৃথক. 96 00:05:33,050 --> 00:05:36,940 তাই বুঝতে পারি যে খুব আছে অবশ্যই আছে অফিসে ঘন্টা সমর্থন কাঠামো হিসাবে যে বিদ্যমান. 97 00:05:36,940 --> 00:05:38,880 >> এই বিভাগে শুরু আগামী রবিবার. 98 00:05:38,880 --> 00:05:42,960 তবে সবচেয়ে গুরুত্বপূর্ণভাবে, যদি আপনি ঠিক যে এই বিশ্বের জন্য আপনি বোধ করছি না, 99 00:05:42,960 --> 00:05:44,710 বুঝতে পারি যে এটা সত্যিই সময় লাগবে. 100 00:05:44,710 --> 00:05:48,600 এবং সুযোগ ছিল এই জন্য এটি আমার জন্য একটি শ্রেণী পাস গ্রহণ / ব্যর্থ সারাংশ বছর আগে হইনি, 101 00:05:48,600 --> 00:05:50,990 সত্যি বলতে, এমনকি আমি চাই না শ্রেণীকক্ষে পাদদেশ সেট. 102 00:05:50,990 --> 00:05:53,690 এবং আপনি এই পর্যন্ত পরিবর্তন আপ, বলতে পারেন, পঞ্চম সোমবার অবশ্যই, 103 00:05:53,690 --> 00:05:58,280 তাই আপনি যদি এখন উত্তেজিত হন, যে, বরং মাথা বুঝতে সম্পূর্ণভাবে মধ্যে কিছু অন্যান্য জলের, 104 00:05:58,280 --> 00:06:01,260 না অবশ্যই শুধুমাত্র / পাস ব্যর্থ পরিবর্তন বিবেচনা. 105 00:06:01,260 --> 00:06:04,570 আবার, হার্ভার্ড এ আছে সত্যিই এই সংস্কৃতি জিনিস না গ্রহণের এখানে / পাস বিফল 106 00:06:04,570 --> 00:06:08,670 যেহেতু সবাই সত্যিই বা অর্জন, overachieve চায় 107 00:06:08,670 --> 00:06:11,130 কিন্তু অকপটে, এই একটি আউট কিছু করার চেষ্টা করছেন এর বিস্ময়কর উপায় 108 00:06:11,130 --> 00:06:16,720 যে পরিচিত আপনি না, এবং আপনি আপ বেশিরভাগ ক্ষেত্রেই কাজ শেষ করব পারে, বেশ সূক্ষ্ম, 109 00:06:16,720 --> 00:06:18,210 আপনার বিস্ময় যাও সম্ভবত অনেক. 110 00:06:18,210 --> 00:06:20,980 এবং আরো কংক্রিট পদ, আমার মনে / পাস সাধারণত ব্যর্থ আছে, 111 00:06:20,980 --> 00:06:22,940 বিশেষত হিসাবে আপনি pset0 সঙ্গে সম্মুখীন হতে পারে, 112 00:06:22,940 --> 00:06:26,560 যদি 10 ঘন্টা, 15 ঘন্টা, 25 ঘন্টার মধ্যে আপনার কিছু pset পুরা 113 00:06:26,560 --> 00:06:29,920 মাত্র এবং আপনি প্রাচীর বিরুদ্ধে করছি আপনার মাথা banging এবং এটা রাতে পেতে দেরী সুপার এর 114 00:06:29,920 --> 00:06:33,950 কিন্তু আপনি pset উপায় 90% গ্রহণ করেছি এবং আপনি শুধু একটা জিনিস চিন্তা না করতে পারেন, 115 00:06:33,950 --> 00:06:36,520 / পাস সত্যিই ভালো লাগে ক্লাসের প্রান্ত বন্ধ ব্যর্থ হয়, 116 00:06:36,520 --> 00:06:39,100 যেখানে আপনার বাছাই সুখে, বলে "ঠিক আছে, আমি জানি এটা নিখুঁত না করতে পারেন, 117 00:06:39,100 --> 00:06:42,350 কিন্তু আমি এই কাজ আমার মলদ্বার বন্ধ, আমি যেখানে এটা শেষ পর্যন্ত সঙ্গে চমত্কার খুশি, " 118 00:06:42,350 --> 00:06:44,850 এবং যে পাস জন্য প্রত্যাশা / মেটাতে ব্যর্থ হবে. 119 00:06:44,850 --> 00:06:47,540 তাই মন না থাকে. ঠিক আছে. 120 00:06:47,540 --> 00:06:50,520 >> তাই আপনাদের মধ্যে যারা যাও হার্ভার্ড বিশ্ববিদ্যালয়ের ওয়াই ফাই ব্যবহার অসুবিধা আছে, 121 00:06:50,520 --> 00:06:54,780 জানেন যে একটি CS50 SSID, Wi-Fi সংযোগ, ফ্লোটিং চারপাশে আছে 122 00:06:54,780 --> 00:06:56,490 যে ভাল ভাগ্য জন্য থাকতে পারে. 123 00:06:56,490 --> 00:07:00,130 এটা একটা সামান্য বিদ্রূপাত্মক যে এই পাসওয়ার্ড জন্য, আপনি যদি সাথে সংযোগ এই চেষ্টা করতে চাই 124 00:07:00,130 --> 00:07:08,350 এবং আমাদের যদি কোন ভাল জানাতে - - ভাল গতিশীলতার জন্য 8 আপ 12345, সমস্ত উপায় 125 00:07:08,350 --> 00:07:10,910 কারণ 8 5 তুলনায় বেশী নিরাপদ. 126 00:07:10,910 --> 00:07:16,910 তাই আপনি যদি ওয়াই ফাই পাসওয়ার্ড প্রয়োজন CS50 যাও, wirelessly এখানে সংযোগ 12345678,, 127 00:07:16,910 --> 00:07:20,380 এবং CS50 পোস্ট যদি এখনও আপনার সবিরাম সংযোগ বিষয় আছে আলোচনা, 128 00:07:20,380 --> 00:07:25,420 এবং ক্ষমতা যে আমরা এই স্থান জানি করা জানাবো. ঠিক আছে. 129 00:07:25,420 --> 00:07:32,230 সুতরাং একটি দ্রুত বিশেষত আপনাদের মধ্যে যারা পাখা ছেলেদের সব জিনিষ আপেল বা মেয়েশিশুদের জন্য টিজার,. 130 00:07:32,230 --> 00:07:37,460 আমি কি কয়েক বছর থেকে খুঁজে বের করা ব্যাকআপ ছিল এখানে এই ফাইলটি, iUnlock.c, 131 00:07:37,460 --> 00:07:39,930 শুধু ধরনের আরো কংক্রিট এবং আরো জটিল করা 132 00:07:39,930 --> 00:07:42,560 আরো মৌলিক সি প্রোগ্রাম লেখা আমরা করছি কিছু. 133 00:07:42,560 --> 00:07:46,910 তাই আমি এই ফাইলটি খোলা পর্যন্ত, iUnlock.c. এটা আজকের জন্য লেকচার পৃষ্ঠায় উপলব্ধ. 134 00:07:46,910 --> 00:07:49,810 বাম দিকে আপনি একটি কর্ম দীর্ঘ তালিকা দেখুন. 135 00:07:49,810 --> 00:07:53,230 তাই সহকর্মী যিনি এই লিখেছেন লেখেন ফাংশন অনেক, কেবল প্রধান তুলনায় আরো আপ. 136 00:07:53,230 --> 00:07:57,340 তিনি একটি লাইব্রেরি আভা এখানে ব্যবহৃত, এবং আমরা যদি স্ক্রলিং শুরু মাধ্যমে, 137 00:07:57,340 --> 00:08:04,890 এই কি আসলে খুবই প্রথম মূল আইফোন জন্য, আমি বিশ্বাস করি, ক্র্যাক. 138 00:08:04,890 --> 00:08:09,830 >> আপনি যখন আসল আইফোন jailbreak চেয়েছিলেন, যা AT & T থেকে এটি untether অর্থ 139 00:08:09,830 --> 00:08:13,710 এবং এটা আসলে বিশেষ সফ্টওয়্যার এবং ইনস্টল যে আপেল মানুষ কি না করতে চান না, 140 00:08:13,710 --> 00:08:18,480 কেউ চিন্তা করা ঠিক কিভাবে তারা সফ্টওয়্যার সংক্রান্ত ত্রুটিগুলি নিজের কাজে লাগানো যায় নি সময় নেয়, 141 00:08:18,480 --> 00:08:22,690 - iUnlock.c-ভুল, আপেল সফ্টওয়্যার বাগ,, এবং এইভাবে জন্মগ্রহণ করেন 142 00:08:22,690 --> 00:08:26,760 আপনি যদি আপনার কম্পিউটারে এটা কম্পাইল করা এবং একটি আইফোন সম্মুখের এটি ইনস্টল করা 143 00:08:26,760 --> 00:08:29,430 যে আপনার কম্পিউটার যাও, যেমন একটি USB তারের মাধ্যমে সংযুক্ত ছিল, 144 00:08:29,430 --> 00:08:32,450 এই আপনার আইফোনের প্রশাসনিক অথবা root অ্যাকাউন্টের অনুমতিসহ ব্যবহারযোগ্য দিতে হবে 145 00:08:32,450 --> 00:08:34,620 এবং আপনাকে কি চমত্কার অনেক যাই হোক না কেন আপনি কি করতে চান. 146 00:08:34,620 --> 00:08:36,400 এবং তাই হয়েছে এই চটুল বিড়াল ইঁদুরের খেলা এর নেই 147 00:08:36,400 --> 00:08:39,340 মধ্যে অ্যাপল এবং বিশ্ব, বিশেষ করে বিশ্রাম হিসাবে তারা, মত অনেক কোম্পানি, 148 00:08:39,340 --> 00:08:43,350 তাদের পণ্যদ্রব্য লক ডাউন যাতে শুধুমাত্র আপনি এটা দিয়ে কি তারা মনস্থ করা চেষ্টা করতে পারেন. 149 00:08:43,350 --> 00:08:47,360 কিন্তু ধন্যবাদ জনের ভালো এবং নিম্নস্তরের বিবরণ বুঝতে - 150 00:08:47,360 --> 00:08:50,830 এবং এই ক্ষেত্রে C প্রোগ্রামিং - পরিচিত এবং নির্মানের অনেক 151 00:08:50,830 --> 00:08:55,280 যে আমরা বাজানো দিয়ে শুরু করেছি, আপনি সত্যিই হার্ডওয়্যার লিভারেজ সক্ষম 152 00:08:55,280 --> 00:08:59,250 আপনি এমনভাবে দেখতে উপযুক্ত এবং অগত্যা কিছু কর্পোরেট সত্তা না. 153 00:08:59,250 --> 00:09:01,600 সুতরাং উদাহরণস্বরূপ, আমি কোন ধারণা কি এই সব করছে আছে, 154 00:09:01,600 --> 00:09:03,580 কিন্তু GetVersion শোনাচ্ছে প্রশংসনীয় সহজবোধ্য, 155 00:09:03,580 --> 00:09:05,710 এবং এটা দেখে মনে হচ্ছে এই একটি ফাংশন যে এই ব্যক্তির লিখেছে. 156 00:09:05,710 --> 00:09:09,250 এটি একটি আর্গুমেন্ট হিসাবে পূর্ণসংখ্যা কিছু লাগে, কিছু ফেরত না, 157 00:09:09,250 --> 00:09:13,710 লুপ যাও কিন্তু এখানে একটি লুপ জন্য এবং যদি একটি শর্ত, যদি শর্ত বিরতি, প্রদর্শিত হবে 158 00:09:13,710 --> 00:09:16,770 এবং একরকম সংস্করণ সংখ্যার সাথে সম্পর্কিত যদি আমরা নিচে স্ক্রল, 159 00:09:16,770 --> 00:09:19,650 যদিও এই কীওয়ার্ড অনেক নতুন হতে যাচ্ছে. 160 00:09:19,650 --> 00:09:22,590 এবং এখানে একটি ফাংশন এর পুরো অনেক করেছি এবং আমরা কখনও দেখতে পারে না দেখেননি আছে 161 00:09:22,590 --> 00:09:24,350 উপর সেমেস্ত্র অবশ্যই. 162 00:09:24,350 --> 00:09:29,160 >> দিন শেষে, এটি একই নিয়ম এবং যুক্তি অনুসরণ করে যে আমরা সঙ্গে পর্যন্ত করেছি বাজানো হয়েছে. 163 00:09:29,160 --> 00:09:34,340 তাই এই পর্যন্ত খুব আপনার আইফোন 3s বা 4s বা শীঘ্রই 5s এইসব দিন ফাটল পুরানো, 164 00:09:34,340 --> 00:09:38,830 কিন্তু জানি যে এই দুনিয়া থেকে সমস্ত খুব এর প্রাপ্ত যে আমরা মধ্যে dived করেছি. 165 00:09:38,830 --> 00:09:42,280 চলুন একটু সহজ উদাহরণ কটাক্ষপাত: 166 00:09:42,280 --> 00:09:46,260 এই এক, মাত্র কয়েকটি বাক্য গঠন নিয়ে যাও উত্তাপিত যায় এবং এছাড়াও অন্যান্য কিছু তথ্য টাইপ 167 00:09:46,260 --> 00:09:48,910 আমরা যে বিষয়ে কথা বললাম আছে কিন্তু সত্যিই দেখা সি না করেছি 168 00:09:48,910 --> 00:09:53,670 এটি একটি ফাইল নামক positive1.c, এবং প্রতি শীর্ষে মতামত, 169 00:09:53,670 --> 00:09:56,070 এই দাবী ঠিক যে একটি ব্যবহারকারী একটি ধনাত্মক সংখ্যা প্রদান. 170 00:09:56,070 --> 00:09:59,910 এটা কি একটা সময় লুপ, যা ব্যবহারকারী ইন্টারেক্টিভ প্রোগ্রামের জন্য চমৎকার একটি উদাহরণ 171 00:09:59,910 --> 00:10:02,070 যেখানে আপনি ব্যবহারকারীর প্রয়োজন বলতে কোনো কিছু করতে, 172 00:10:02,070 --> 00:10:05,530 এবং যদি তারা আপনাকে তাদের অথবা চিত্কার ইনপুট প্রত্যাখ্যান না সহকর্মী. 173 00:10:05,530 --> 00:10:10,480 একটা উদাহরণ: আমি 24 কি 19 লাইনের মাধ্যমে যাচ্ছি 174 00:10:10,480 --> 00:10:14,620 তাই যতদিন ব্যবহারকারী একটি ধনাত্মক সংখ্যা সম্পর্কে দেওয়া হইনি. 175 00:10:14,620 --> 00:10:21,340 এই লাইন 18 এখানে বিস্তারিত, কেন আমি এই পুরো looping গড়া উপরে n ঘোষণা 176 00:10:21,340 --> 00:10:26,870 ডান পাশে লাইন 22 যেখানে আমি আসলে n পেতে যত্ন হিসাবে বিরোধিতা? হাঁ. 177 00:10:26,870 --> 00:10:29,330 ব্যাপ্তি [ছাত্রদের]. >> হ্যাঁ, তাই সুযোগ রয়েছে এই সমস্যা. 178 00:10:29,330 --> 00:10:31,770 এবং অ - বিশেষজ্ঞ এর শর্ত কি, সুযোগ আছে পড়ুন? 179 00:10:34,880 --> 00:10:41,560 হাঁ. >> [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> একটু জোরে আপনি কথা বলতে পারি? 180 00:10:41,560 --> 00:10:45,440 [ছাত্রদের] কোথায় আপনি যে পরিবর্তনশীল অ্যাক্সেস করতে পারেন. >> পারফেক্ট. 181 00:10:45,440 --> 00:10:47,610 যেখানে আপনি একটি নির্দিষ্ট পরিবর্তনশীল অ্যাক্সেস করতে পারেন. 182 00:10:47,610 --> 00:10:50,990 এবং সাধারণত, চলতি রীতি পর্যন্ত হয়েছে যে কিছু পরিবর্তনশীল সুযোগ 183 00:10:50,990 --> 00:10:56,140 সাম্প্রতিকতম কোঁকড়া ধনুর্বন্ধনী যে আপনি পাচ্ছি দ্বারা সংজ্ঞায়িত করা হয়. 184 00:10:56,140 --> 00:11:03,070 >> এই ক্ষেত্রে এবং তাই, যদি আমি লাইন 22 n প্রকাশক ভুল করে, যে লাইন কাজ করবে. 185 00:11:03,070 --> 00:11:10,840 আমি কোন int পেতে, এবং আমি যে পরিবর্তনশীল n মধ্যে এটি 22 লাইন স্থাপন করা হবে, 186 00:11:10,840 --> 00:11:17,060 কিন্তু কোন কোড লাইন এখন কোন ধারণা আমি কি বিষয়ে কথা বলছি না থাকবে? >> [ছাত্রদের] 25. 187 00:11:17,060 --> 00:11:23,840 [Malan] 25, 24 এবং এটি সক্রিয় আউট হিসাবে ভাল কারণ এটি এই ক্ষেত্রে পড়ে কোঁকড়া ধনুর্বন্ধনী বাইরে. 188 00:11:23,840 --> 00:11:28,550 তাই শুধু একটি উত্পাত সামান্য বিট কিন্তু কেবল পরিবর্তনশীল প্রকাশক দ্বারা খুব সহজে সমাধান 189 00:11:28,550 --> 00:11:30,700 বাইরে কাজ নিজেই. 190 00:11:30,700 --> 00:11:32,760 আমরা পরে আজ আপনি আরও এক ধাপ যেতে পারেন দেখতে পাবেন 191 00:11:32,760 --> 00:11:34,940 এবং এমনকি আপনি পেতে একটু অলস পারে. 192 00:11:34,940 --> 00:11:39,660 এবং এই হয়, কিন্তু সাধারণ সুপারিশ করা হবে না আপনাকে এমনকি পেতে অলস পারে 193 00:11:39,660 --> 00:11:44,150 এবং বিশ্বব্যাপী একটি পরিবর্তনশীল করা, তাই কথা বলতে একটি ফাংশন, ভিতরে না একটি লুপ এর ভিতরে, 194 00:11:44,150 --> 00:11:49,800 কিন্তু র সমস্ত কর্ম ব্যবহার বাইরে ফাইল নিজেই, আপনি, লিখিত হিসাবে আমি 15 লাইন এখানে কি করেছি. 195 00:11:49,800 --> 00:11:55,220 এই উপর সাধারণত frowned, কিন্তু বুঝতে পারছি এটা কখনও কখনও অন্যান্য সমস্যার সমাধান, 196 00:11:55,220 --> 00:11:56,910 অবশেষে হিসাবে আমরা দেখতে পাবেন. 197 00:11:56,910 --> 00:11:59,500 তাই এখন জন্য আমরা এটা ভালো, ছেড়ে পাবেন, কিন্তু এর দিন যদি আমরা এই পুনর্লিখন করতে পারেন 198 00:11:59,500 --> 00:12:02,360 শুধু প্রকাশ নিজেদেরকে একটু ভিন্নভাবে শুরু. 199 00:12:02,360 --> 00:12:05,550 এই প্রোগ্রামটি, ঠিক পরিষ্কার করা হয় positive1. 200 00:12:05,550 --> 00:12:11,980 আমাকে এগিয়ে যেতে এখানে এবং আমার টার্মিনাল উইন্ডোর positive1, লিখুন না. 201 00:12:11,980 --> 00:12:15,080 কম্পাইল করা একদম ঠিক. আমি positive1 চালানো লিখুন আঘাত যাচ্ছি. 202 00:12:15,080 --> 00:12:19,250 আমি দাবি করছি যে আপনার সম্পর্কে একটি ধনাত্মক পূর্ণসংখ্যা দিতে. আমি -1 বলবো. যে কাজ করে নি. 203 00:12:19,250 --> 00:12:22,340 0, 99. যে কাজ মনে হয়. 204 00:12:22,340 --> 00:12:25,310 হয়তো সবচেয়ে কঠোর পরীক্ষা না, কিন্তু অন্তত এটা একটা চমৎকার সদ্বিবেচনা চেক 205 00:12:25,310 --> 00:12:27,100 যে মুহূর্তে আমরা ট্র্যাক করছি. 206 00:12:27,100 --> 00:12:29,570 >> সুতরাং এখন আমাকে এগিয়ে যান এবং এই সংস্করণ 2 খুলুন এব, 207 00:12:29,570 --> 00:12:32,800 এবং কি ইতিমধ্যেই বিভিন্ন? 208 00:12:32,800 --> 00:12:39,030 সেই একই জিনিস দেখা দেবে, কিন্তু কি স্পষ্টতই বিভিন্ন সময় এই হিসাবে এর জাম্পিং আউট? 209 00:12:40,790 --> 00:12:47,090 এই bool সবুজ. এটা সবুজ, এই অভিব্যক্তি bool, যা একটি তথ্য টাইপ হিসাবে পরিচিত হাইলাইট হয়. 210 00:12:47,090 --> 00:12:50,510 এটা সি সব সংস্করণের জন্য নির্মিত না আসা 211 00:12:50,510 --> 00:12:52,650 আপনি একটি নির্দিষ্ট লাইব্রেরি অন্তর্ভুক্ত করা প্রয়োজন. 212 00:12:52,650 --> 00:12:56,460 আমাদের ক্ষেত্রে, আমি CS50 লাইব্রেরি অন্তর্ভুক্ত যাতে আমরা bool অ্যাক্সেস আছে. 213 00:12:56,460 --> 00:12:59,860 কিন্তু লাইন 18, আমরা একটি বুলিয়ান মান এখানে বলা কৃতজ্ঞ করেছেন বলে মনে হচ্ছে. 214 00:12:59,860 --> 00:13:02,190 আমি এই কিছু, বলা যেতে পারে কিন্তু আমি এটা বলা কৃতজ্ঞ 215 00:13:02,190 --> 00:13:04,750 ঠিক যে ধরণের কিছু শব্দার্থিক অর্থ বহন করা. 216 00:13:04,750 --> 00:13:07,700 তাই প্রাথমিকভাবে উপর লাইন 18, আমি দৃশ্যত কৃতজ্ঞ না 217 00:13:07,700 --> 00:13:12,230 কারণ বুলিয়ান মান কৃতজ্ঞ লাইন 18 মিথ্যা যাও সক্রিয়া করা হয়. 218 00:13:12,230 --> 00:13:16,500 এবং তারপর মনে হয় আমি কি লাইন 21 সম্পন্ন করেছি এখানে 23 এর মাধ্যমে 219 00:13:16,500 --> 00:13:19,200 না আমি শুধু আমার ধরনের লজিক পুনর্লিখিত করেছি. 220 00:13:19,200 --> 00:13:26,100 সুতরাং কোন বৈশিষ্ট্যগুলি ভিন্ন, কিন্তু এখন লাইন 22 আমি যদি int-ব্যবহারকারী দেওয়া চেক 221 00:13:26,100 --> 00:13:31,360 মান 0, তার চেয়ে অনেক বেশী, তাহলে আমি কৃতজ্ঞ কেবল সত্য যাও মান পরিবর্তন. 222 00:13:31,360 --> 00:13:35,590 এবং কেন আমি করব না যে? কারণ লাইন 25 দৃশ্যত, আমি একটি পরীক্ষা যাচ্ছি. 223 00:13:35,590 --> 00:13:39,760 এই লুপ যখন কৃতজ্ঞ মিথ্যা কি. 224 00:13:39,760 --> 00:13:42,960 তাই আমি সংস্করণ 1 বিকল্প হিসাবে এই প্রস্তাব 225 00:13:42,960 --> 00:13:47,050 কারণ এটা সম্ভবত অন্তত একটু আরও বেশি ধারণাসম্পন্ন, এটা একটু বেশি ইংরেজি ভিত্তির উপরে প্রতিষ্ঠিত. 226 00:13:47,050 --> 00:13:51,980 তাই নিচের কাজগুলো করার সময় আপনি বা যখন কৃতজ্ঞ মিথ্যা কৃতজ্ঞ নয়. 227 00:13:51,980 --> 00:13:56,220 এবং খুব এই সময় আমি কি ইউজার টাইপ স্মরণ দৃশ্যত না যত্ন 228 00:13:56,220 --> 00:14:00,050 বিজ্ঞপ্তি কারণ কোনো চলক n, তাই আসলে, সেখানে একটি সাদা সামান্য মিথ্যা আছে. 229 00:14:00,050 --> 00:14:03,290 >> কাজের, প্রোগ্রাম একটি বিট বিভিন্ন একবার আমরা এটি ডোবান 230 00:14:03,290 --> 00:14:04,960 কারণ আমি কি n হল মনে করছি না. 231 00:14:04,960 --> 00:14:09,120 কিন্তু আমি এখানে খুব প্রকট চেয়েছিলেন যে যদিও আমরা GetInt দেখা করেছি 232 00:14:09,120 --> 00:14:13,780 এবং একটি GetString ডান দিকে ব্যবহৃত হচ্ছে সাইন সমান দূর পর্যন্ত 233 00:14:13,780 --> 00:14:17,310 যাতে আমরা মান, টেকনিক্যালি, যে কঠোরভাবে প্রয়োজন না মনে রাখবেন. 234 00:14:17,310 --> 00:14:20,290 যদি কোন কারনের জন্য আপনাকে কেবল মান সংরক্ষণ করতে না যত্ন, 235 00:14:20,290 --> 00:14:25,540 আপনি শুধু মান, চেক লক্ষ্য করা যে, আমরা শুধু GetInt হিসাবে এই লিখতে পারেন করতে চান, 236 00:14:25,540 --> 00:14:27,320 paren খোলা, বন্ধ paren. 237 00:14:27,320 --> 00:14:30,570 যে ফাংশন এর মান ফিরে যাচ্ছে, হিসাবে আমরা করছি বলছে না. 238 00:14:30,570 --> 00:14:32,220 এটা আপনাকে ফেরত দিতে কোন int যাচ্ছে. 239 00:14:32,220 --> 00:14:34,460 তাই যদি আপনি মনে মনে এই ঘটনাকেই মনে করি, 240 00:14:34,460 --> 00:14:38,190 যখন আমি 99 টাইপ, GetInt ফেরৎ নম্বর 99, 241 00:14:38,190 --> 00:14:41,840 এবং তাই ধারণার, এটা হিসাবে যদিও আমার কোড আসলে ছিল এই. 242 00:14:41,840 --> 00:14:45,950 তাই আপনি যদি 99 হয় 0 থেকে প্রকৃতপক্ষে বৃহত্তর তারপর, কৃতজ্ঞ হয়ে সত্য, 243 00:14:45,950 --> 00:14:50,810 তারপর লাইন 25 বুঝতে খুশি, আমরা কারণ এখন আমি কৃতজ্ঞ সম্পন্ন হলে, 244 00:14:50,810 --> 00:14:53,970 এবং লাইন 26 সালে, কেবলমাত্র আমরা, বলে "ধনাত্মক পূর্ণসংখ্যা জন্য ধন্যবাদ!" 245 00:14:53,970 --> 00:14:55,960 যাই হোক না কেন এটা ঘটেছে. 246 00:14:55,960 --> 00:14:59,140 এখন এর অসম্মান অন্বিত চিনি এখানে করতে দেওয়া, তাই কথা বলতে. 247 00:14:59,140 --> 00:15:04,670 আসুন আমরা এই তৃতীয় এবং চূড়ান্ত বৈকল্পিক সঙ্গে এই লাইন 25 পরিষ্কার positive3 আপ করতে পারেন. 248 00:15:04,670 --> 00:15:13,600 >> শুধু পার্থক্য এখন কি কোড লাইন লক্ষ্য করুন? >> [ছাত্রদের] 25. >> [Malan] হ্যাঁ, 25. 249 00:15:13,600 --> 00:15:17,680 এবং আমরা এই কৌতুক দেখা সত্যিই করেছি না এখনো, কিন্তু আমরা সোমবার বিস্ময়বোধক বিন্দু দেখতে পাইনি, 250 00:15:17,680 --> 00:15:21,070 যা কি বোঝায়? >> [ছাত্রদের] নেই. >> নেই বা অস্বীকৃতি. 251 00:15:21,070 --> 00:15:23,510 সুতরাং একটি বুলিয়ান মান গ্রহণ এবং তার মান টুসকি. 252 00:15:23,510 --> 00:15:25,810 মুক্ত হয়ে মিথ্যা, মিথ্যা হয়ে ওঠে সত্য. 253 00:15:25,810 --> 00:15:30,420 এই সুতরাং, আমি উত্থাপন করা হবে, এমনকি সামান্য একটি আরও বেশি ধারণাসম্পন্ন কোড লেখার একটি উপায় 254 00:15:30,420 --> 00:15:33,430 কারণ এখনও আমি কৃতজ্ঞ মিথ্যা আরম্ভ, এখনও আমি নিম্নোক্ত কাজ করুন, 255 00:15:33,430 --> 00:15:36,010 আমি সেট কৃতজ্ঞ সত্য যখন সময় আসে, 256 00:15:36,010 --> 00:15:40,880 তবে এখন আপনি কি সত্যিই এই কোড ডানে বামে শব্দগতভাবে অনুবাদ করতে পারেন, 257 00:15:40,880 --> 00:15:45,630 যখন (কৃতজ্ঞ!); কারণ ঠুং ঠুং শব্দ বা বিস্ময়বোধক বিন্দু না ধারণা হল, 258 00:15:45,630 --> 00:15:47,580 তাই যখন হইনি কৃতজ্ঞ. 259 00:15:47,580 --> 00:15:49,900 তাই আবার, আমরা কোনো কোনটাই নতুন ধারণা চালু করেন নি. 260 00:15:49,900 --> 00:15:53,730 আমরা Booleans সম্পর্কে ফিরে সায়ীদ যখন আমরা ভূত সঙ্গে অভিনয়, 261 00:15:53,730 --> 00:15:56,720 কিন্তু এখন বুঝতে আমরা কেবল শুরু বিভিন্নভাবে আমাদের কোড লেখা যাবে. 262 00:15:56,720 --> 00:16:01,060 তাই বিশেষ করে pset1 মধ্যে যদি আপনি কিছু প্রোগ্রাম লিখে উপায় চিত্র আউট সংগ্রাম সাজানোর, 263 00:16:01,060 --> 00:16:04,340 অমিল হল আপনি ভাগ্য আছেন কারণ হতে সমাধানের কোনো নম্বর থাকতে পারে 264 00:16:04,340 --> 00:16:06,110 যে আপনার উপর ঘটতে পারে. 265 00:16:06,110 --> 00:16:10,500 উদাহরণস্বরূপ, এই মাত্র এমনকি প্রোগ্রামের জন্য সহজ 3. ঠিক আছে. 266 00:16:10,500 --> 00:16:14,200 এবং এখন প্রত্যাহার সোমবার এই নোট উপর আমরা ফিরে মান বাকি. 267 00:16:14,200 --> 00:16:18,450 সুতরাং খুব প্রথমবার জন্য আমরা একটি প্রোগ্রাম যা প্রধান না ঠিক আছে না লেখেন; 268 00:16:18,450 --> 00:16:22,550 এটা নিজস্ব কাস্টম ফাংশন যে আমি এখানে লিখেছে আছে. 269 00:16:22,550 --> 00:16:26,810 34 এর মাধ্যমে সুতরাং লাইন 31 সালে আমি একটি ঘনক ফাংশন প্রয়োগ করেছি. 270 00:16:26,810 --> 00:16:30,240 এটা জটিল না. এটি শুধু একটি * একটি একটি * এই ক্ষেত্রে. 271 00:16:30,240 --> 00:16:34,750 কিন্তু কি এটি সম্পর্কে গুরুত্বপূর্ণ হল যে আমি একটা ফর্ম ইনপুট গ্রহণ করছি 272 00:16:34,750 --> 00:16:39,180 এবং আমি একটি * একটি * একটি ফর্ম ফিরে আউটপুট করছি. 273 00:16:39,180 --> 00:16:43,560 তাই এখন আমি ক্ষমতা আছে, অনেক ভালো যাও আমি একা prinf সঙ্গে ব্যবহার, 274 00:16:43,560 --> 00:16:47,240 যাও ঘনক্ষেত্র ফাংশন কল করে এই ফাংশন কল. 275 00:16:47,240 --> 00:16:51,970 >> ঘনক্ষেত্র ফাংশন এবং কিছু ইনপুট নেয়, এবং ঘনক্ষেত্র ফাংশন কিছু ফলাফল উত্পন্ন হবে. 276 00:16:51,970 --> 00:16:56,960 বিপরীতভাবে, একবার মাত্র printf কিছু করেছিল. 277 00:16:56,960 --> 00:17:00,840 এটা, ফিরিয়ে কিছু যে আমরা যত্ন সম্পর্কে না যদিও একটি সরাইয়া হিসাবে এটি একটি মান ফিরে না; 278 00:17:00,840 --> 00:17:03,110 আপনি সাধারণত কেবল এটি উপেক্ষা করা. 279 00:17:03,110 --> 00:17:06,510 Printf মাত্র কিছু করেছিল. এটি একটি মুদ্রণ পর্দায় পাশ প্রভাব ছিল. 280 00:17:06,510 --> 00:17:11,770 বৈসাদৃশ্য এখানে দ্বারা, আমরা ঘনক্ষেত্র ফাংশন, যা আসলে কিছু ফেরৎ আছে. 281 00:17:11,770 --> 00:17:15,520 তাই যারা এর সাথে পরিচিত এই জন্য যে এটা একটা মোটামুটি ধারণা সহজবোধ্য. 282 00:17:15,520 --> 00:17:19,640 কিন্তু যারা পাশ করার জন্য ইনপুট এবং আউটপুট পেয়ে ফিরে এই ধারণা কম পরিচিত, 283 00:17:19,640 --> 00:17:21,950 যাক এর মাত্র কিছু সুপার সহজ চেষ্টা করুন. 284 00:17:21,950 --> 00:17:25,490 না কেউ আরামদায়ক মঞ্চে আসছে সংক্ষিপ্তভাবে আপ? 285 00:17:25,490 --> 00:17:28,040 আপনি আপনার ক্যামেরা সঙ্গে আরামদায়ক হতে হিসাবে ভাল আছে. হাঁ? ঠিক আছে. 286 00:17:28,040 --> 00:17:31,240 আপনার নাম কি? >> [ছাত্রদের] কেন. >> Ken. ঠিক আছে. Ken, এসেছেন তার উপরে. 287 00:17:31,240 --> 00:17:35,050 Ken যাও প্রকারের একটি ফাংশন এখানে হবে. 288 00:17:35,050 --> 00:17:38,720 চলুন এগিয়ে যান এবং এই কাজের জন্য. চলুন একটু অভিনব পেতে. 289 00:17:38,720 --> 00:17:42,260 দেখা হওয়ায় খুশী হলাম. স্বাগতম কেন্দ্র পর্যায়ে. ঠিক আছে. 290 00:17:42,260 --> 00:17:46,640 আসুন এখানে এই বোতাম আঘাত. ঠিক আছে. 291 00:17:46,640 --> 00:17:49,820 তাই এখানে আপনি একটি আধুনিক chalkboard আছে, 292 00:17:49,820 --> 00:17:53,470 এবং কি আমি হয় উদাহরণস্বরূপ, প্রধান ফাংশন,, 293 00:17:53,470 --> 00:17:56,460 আমি এবং আমার হাতে একটি আইপ্যাড না. 294 00:17:56,460 --> 00:17:59,710 >> ওয়েল, আমি যা বলতে পারে না - আমি কিভাবে কি সত্যিই মনে রাখবেন না. 295 00:17:59,710 --> 00:18:02,480 আমি ভাল হস্তাক্ষর সত্যিই নেই, 296 00:18:02,480 --> 00:18:05,520 এবং সেইজন্য আমি কি আমার জন্য পর্দায় কিছু প্রিন্ট করতে চান. 297 00:18:05,520 --> 00:18:12,040 আমি মূল প্রোগ্রাম হচ্ছে, এবং am আমি আপনাকে এই বলতে যাচ্ছি 298 00:18:12,040 --> 00:18:16,720 দ্বারা আমার মুরগির স্ক্র্যাচ মধ্যে লিখে তারপর ক্ষণস্থায়ী এবং একটি ইনপুট আপনি. 299 00:18:16,720 --> 00:18:20,400 তাই অর্থহীন যদিও এই ব্যায়াম হয়, ফাংশন এর ধারণা এবং একটি ফাংশন কলিং 300 00:18:20,400 --> 00:18:22,400 এবং ফিরে একটি ফাংশন সত্যিই boils এই ডাউন. 301 00:18:22,400 --> 00:18:26,260 আমি প্রধান, শুধু আমি পর্দায় আছে printf, মূল্যউদ্ধৃতি-উদ্ধতি কিছু না, 302 00:18:26,260 --> 00:18:29,110 আমি এই প্রোগ্রাম am চলমান, এবং হিসাবে হিসাবে শীঘ্রই printf নামক পরার, 303 00:18:29,110 --> 00:18:32,880 এটি একটি যুক্তি অথবা একটি উদ্ধৃতি চিহ্ন মধ্যে কখনও কখনও প্যারামিটার নেয়. 304 00:18:32,880 --> 00:18:35,880 এখানে যে যুক্তি. আমি কেন নিকট এটি ক্ষণস্থায়ী. 305 00:18:35,880 --> 00:18:39,020 তিনি একটি কালো বাক্স বছর কিছু সংখ্যা আগে লিখিত 306 00:18:39,020 --> 00:18:41,510 যে শুধুমাত্র দৃশ্যত জানেন কিভাবে পর্দায় জিনিষ মুদ্রণ. 307 00:18:41,510 --> 00:18:43,150 তাই চালানো হয়. 308 00:18:49,280 --> 00:18:51,280 যে খারাপ না. খুব ভাল. 309 00:18:51,280 --> 00:18:55,510 তাই এখন Ken নির্বাহ করার জন্য এটা করা হয়. কিন্তু সে সম্পর্কে কিছু সমর্পন ফিরে প্রয়োজন? 310 00:18:55,510 --> 00:18:57,470 নেই যে আমরা এইভাবে দেখা করেছি. 311 00:18:57,470 --> 00:19:00,460 আবার printf, আসলে একটি নম্বর আছে, কিন্তু আমরা ফিরে যাও এখন জন্য যে উপেক্ষা চলুন 312 00:19:00,460 --> 00:19:03,470 কারণ আমরা তা নিইনি. যাতে এর Ken জন্য এটি. 313 00:19:03,470 --> 00:19:08,580 তাই এখন প্রধান প্রোগ্রাম নিয়ন্ত্রণ আবার লাগে 314 00:19:08,580 --> 00:19:11,060 কারণ কোড যে লাইন printf,, নির্বাহ করার জন্য এটা করা হয়. 315 00:19:11,060 --> 00:19:14,050 এবং আমাদের উপায় সম্পর্কে আমরা, যাই হোক না কেন যেতে নির্বাহ অন্যান্য লাইন আছে. 316 00:19:14,050 --> 00:19:17,320 তাই এখন যাক এর একটি উদাহরণ চেষ্টা কিছুটা ভিন্ন. 317 00:19:17,320 --> 00:19:24,940 এই সময় এখানে এর প্রথম পর্দা পরিষ্কার করে দেওয়া, এবং এই সময় আমরা cubing ফাংশন করব, 318 00:19:24,940 --> 00:19:27,080 কিন্তু এই সময়, আমি একটি আউটপুট মান প্রত্যাশা. 319 00:19:27,080 --> 00:19:29,180 >> তাই আসুন আর দেরী না করে এবং এই কাজের জন্য. 320 00:19:29,180 --> 00:19:35,790 এখন আমি কোড একটি লাইন যে x x এর ঘনক্ষেত্র পায় আছে. 321 00:19:41,370 --> 00:19:46,370 কোড লাইন, রিকল, ভালো দেখায়: x = ঘনক (x); 322 00:19:46,370 --> 00:19:50,930 সুতরাং কিভাবে এই কাজ করে যাচ্ছে? চলুন এগিয়ে যান এবং একটি সাদা পর্দা দিতে আবার আপনি. 323 00:19:50,930 --> 00:19:54,070 আমি লিখে এখন x এর মান যাচ্ছি, 324 00:19:54,070 --> 00:20:01,400 যা সময় এই মুহূর্তে করা হয়, এর বলতে দেওয়া 2, এটা সহজ রাখা. 325 00:20:01,400 --> 00:20:06,150 আমি এক টুকরা কাগজ 2 মান, যা আমার মান x এর থেকে লিখে রাখা. 326 00:20:06,150 --> 00:20:10,920 আমি কেন এটা ওদের হাতে. >> এবং আমি ঠিক উত্তর লিখুন? >> হ্যাঁ, আমি কি ঠিক উত্তর লিখুন. 327 00:20:12,760 --> 00:20:18,940 ঠিক আছে. এবং এখন তিনি ফিরে যাও সম্পর্কে কিছু আছে. পারফেক্ট. Segue চমৎকার. 328 00:20:18,940 --> 00:20:23,120 সুতরাং এখন তিনি আমার হাত এই ক্ষেত্রে ফিরে 8 মান, এবং কি আমি কি কাজ? 329 00:20:23,120 --> 00:20:28,250 বাস্তবিক - এর দেখতে দিন, এই অধিকার পেতে. Am কি আমি কাজ করতে যাচ্ছি? 330 00:20:28,250 --> 00:20:33,440 এখন আমি এই মান গ্রহণ করা এবং প্রকৃতপক্ষে যারা মেমরির মধ্যে একই বিটের মধ্যে এটি সংরক্ষণ যাচ্ছি. 331 00:20:33,440 --> 00:20:35,170 কিন্তু লক্ষ্য করা আমি সংগ্রাম এখানে ধরনের. 332 00:20:35,170 --> 00:20:38,210 আমি একটু বিভ্রান্ত, কারণ যেখানে আসলে আমি x এর মান লিখুন, 333 00:20:38,210 --> 00:20:43,150 কারণ কি আমি ঠিক করেছি কাজ হয় শারীরিকভাবে হাতে এক টুকরা কাগজ কেন যে মান 2 ছিল, 334 00:20:43,150 --> 00:20:46,590 যা ছিল x, প্রকৃতপক্ষে, অবিকল যে কি ঘটেছে. 335 00:20:46,590 --> 00:20:50,210 সুতরাং দেখা যাচ্ছে যে আপনি যখন ফাংশন কল করবে এবং আপনাকে একটি আর্গুমেন্ট পাস 336 00:20:50,210 --> 00:20:53,290 হ্যালো ভালো, বিশ্বের অথবা একটি আর্গুমেন্ট আপনি 2 ভালো পাস, 337 00:20:53,290 --> 00:20:57,110 সাধারণত, আপনি যে যুক্তি একটি কপি মধ্যে পার করছি. 338 00:20:57,110 --> 00:21:00,730 এবং সে হিসাবে আমি wrote 2 নম্বর এখানে নিচে এবং কেন তা হস্তান্তর, 339 00:21:00,730 --> 00:21:04,720 যে যা এখনও আমি মান 2 একটি কপি আছে কোথাও মানে আবশ্যক 340 00:21:04,720 --> 00:21:08,890 কারণ সত্যিই, আমি এখন যে মান 8 অর্জিত ফিরে করেছি, আমি উপস্থিত RAM-র মধ্যে ফিরে যেতে প্রয়োজন 341 00:21:08,890 --> 00:21:12,130 এবং প্রকৃতপক্ষে 8 লিখে যেখানে একবার আমি 2 নম্বর ছিল. 342 00:21:12,130 --> 00:21:16,950 সুতরাং দৃশ্যত, ক্ষণস্থায়ী আক্ষরিক অর্থ, মান একটি অনুলিপি, এই ধারণা মনে রাখবেন. 343 00:21:16,950 --> 00:21:20,780 >> Ken আছে তার জিনিস, আমার হাতে ফেরত কিছু - এই ক্ষেত্রে 8 মত একটি মান - 344 00:21:20,780 --> 00:21:24,980 এবং তারপর আমি এই মান সঙ্গে কিছু করতে হবে যদি আমি এটা কাছাকাছি রাখতে চান. 345 00:21:24,980 --> 00:21:29,650 তাই এই সব অতি দীর্ঘ আগে পরিচিত হতে ফিরে আসা হবে. 346 00:21:29,650 --> 00:21:34,920 আপনাকে ধন্যবাদ এই ডেমো জন্য এখানে এত, Ken. [সাধুবাদ] 347 00:21:34,920 --> 00:21:36,920 খুব ভাল কাজ করেছেন. 348 00:21:36,920 --> 00:21:42,690 চলুন কিভাবে যে চরমভাবে ফাংশন কলিং যে এখানে আমরা কাজ করছি কিছু সাথে সম্পর্কিত দেখুন. 349 00:21:42,690 --> 00:21:47,910 আমাকে এগিয়ে যান এবং আমাদের আনা cubing উদাহরণ এখানে ফিরে. 350 00:21:47,910 --> 00:21:53,300 যে যদি আমরা আসলে এই বিষয়ে আরও গ্রহণ শুরু করতে চান বিজ্ঞপ্তি, 351 00:21:53,300 --> 00:21:57,570 আমরা যে সংখ্যা x যে এখানে হচ্ছে এর পাশ সম্পর্কে সচেতন থাকুন হতে যাচ্ছেন 352 00:21:57,570 --> 00:22:01,530 এটা কি আসলে এর ফাংশন হচ্ছে পাশ থেকে আলাদা. 353 00:22:01,530 --> 00:22:05,880 তাই আবার, কপি দ্বারা এই পাস মাত্র এক মিনিটের মধ্যে বেশ প্রাসঙ্গিক হয়ে যাচ্ছে. 354 00:22:05,880 --> 00:22:09,580 যাক এর কিছু যে অধিকার আছে এখনো পুরোপুরি কাজ না কটাক্ষপাত করা. 355 00:22:09,580 --> 00:22:13,250 আমি এগিয়ে যান এবং একটি তৃতীয় বগী উদাহরণ, যা প্রকৃতি দ্বারা ত্রুটিপূর্ণ হয় খুলুন চলেছি, 356 00:22:13,250 --> 00:22:18,550 এবং এটি buggy3 বলা হয় এবং এটি একটি সোয়াপিং ফাংশন এর কার্যকরী. 357 00:22:18,550 --> 00:22:25,110 এখানে আমরা একটি প্রধান ফাংশন যে x এবং y করেনি ইচ্ছামত 1 এবং 2 যাও সক্রিয়া, যথাক্রমে আছে. 358 00:22:25,110 --> 00:22:27,700 আমরা GetInt ব্যবহার, কিন্তু আমরা শুধু একটি সহজ ব্যায়াম করার প্রয়োজন হতে পারে, 359 00:22:27,700 --> 00:22:30,170 তাই 1 এবং 2 হিসাবে হার্ড কোড. 360 00:22:30,170 --> 00:22:35,340 লাইন 21 এবং 22 ইঞ্চি, আপাতদৃষ্টিতে আমরা x এবং y, প্রতি লাইনে 1 প্রিন্ট আউট. 361 00:22:35,340 --> 00:22:39,720 তারপর লাইন 23, আমি দাবী আমি এই মান am সোয়াপিং, বিন্দু, বিন্দু, বিন্দু. 362 00:22:39,720 --> 00:22:44,170 আমি দৃশ্যত একটি ফাংশন কল লাইন 24 তথাকথিত swap 'র যে 2 আর্গুমেন্ট লাগে. 363 00:22:44,170 --> 00:22:48,300 এটা সম্পূর্ণই এর legit ফাংশন আর্গুমেন্ট 2 নিতে. আমরা printf ইতিমধ্যে এটা দেখা করেছি. 364 00:22:48,300 --> 00:22:51,830 >> সুতরাং দৃশ্যত: swap-x এবং y লাগে, এবং তার নাম সুপারিশ, 365 00:22:51,830 --> 00:22:54,670 আমি যে এইসব 2 মান বিনিময় করা হবে এই আশা. 366 00:22:54,670 --> 00:23:00,090 আমি তখন লাইন দাবি 25 "অদলবদল করা হয়েছে!" এবং আমি এক্স এবং ওয়াই পুনর্মুদ্রণ 367 00:23:00,090 --> 00:23:03,070 অধীন ভাবনাটি হলো এই যে প্রকৃতপক্ষে তারা হয়েছে করেছি আনা যায়. 368 00:23:03,070 --> 00:23:06,080 কিন্তু যদি আমি আসলে এই প্রোগ্রাম চালানো - আমাকে একটি টার্মিনাল উইন্ডোতে খুলুন, 369 00:23:06,080 --> 00:23:09,860 সম্পর্কে buggy3 করার সুযোগ - হিসাবে নাম সুপারিশ, এই ভাল শেষ হয়ে যাচ্ছে না 370 00:23:09,860 --> 00:23:15,770 কারণ আমি যখন, লিখুন যে x 1 বিজ্ঞপ্তি আঘাত, y 2, 371 00:23:15,770 --> 00:23:19,420 এবং এখনো প্রোগ্রাম শেষে, তারা এখনও বস্তুত,, একই. 372 00:23:19,420 --> 00:23:22,960 বিক্ষোভের উপর ভিত্তি করে শুধু তাই এখন Ken সঙ্গে, আসলে কি হচ্ছে উপর? 373 00:23:22,960 --> 00:23:28,710 এই swap 'র মধ্যে ডুব এর ফাংশন যাক. এটা অতি অল্প. এটি কেবলমাত্র একটি কোড দীর্ঘ কয়েক লাইন. 374 00:23:28,710 --> 00:23:34,520 কিন্তু কি মৌলিক সমস্যার সহজ বিবরণ বলা Ken সঙ্গে এখানে আপ উপর ভিত্তি করে? 375 00:23:34,520 --> 00:23:36,670 কেন ভাঙ্গা হয় ও swap 'র? 376 00:23:36,670 --> 00:23:39,660 [ছাত্রদের] আপনি একটি কপি পরিবর্তনশীল, না সংরক্ষণ করছেন. 377 00:23:39,660 --> 00:23:43,980 ঠিক. আমরা একটি কপি যাও, সংরক্ষণকারী পরিবর্তনশীল নিজেই করছি না. 378 00:23:43,980 --> 00:23:47,170 অন্য কথায়, দৃশ্যত মাপের swap 2 আর্গুমেন্ট, কোন int লাগে, 379 00:23:47,170 --> 00:23:49,370 এবং ইচ্ছামত বলা এর একটি এবং খ, 380 00:23:49,370 --> 00:23:54,420 এবং এখানে আমি x এবং y, ও যা হল যথাক্রমে 1 এবং 2 সালে পাশ করেছি, 381 00:23:54,420 --> 00:23:58,770 কিন্তু আমি আক্ষরিক পার করছি x এর মধ্যে না, আক্ষরিক আমি পার করছি y না, 382 00:23:58,770 --> 00:24:01,450 আমি x এর একটি অনুলিপি এবং y একটি কপি করছি ক্ষণস্থায়ী. 383 00:24:01,450 --> 00:24:04,510 যদিও এটা প্রায় হিসাবে আপনি এর কপি এবং swap 'র মধ্যে আটকানো 384 00:24:04,510 --> 00:24:07,810 মান যে আপনি এটি আসলে নিপূণভাবে চান. 385 00:24:07,810 --> 00:24:14,480 তাই আপনি যদি এর ক্ষেত্রে, যখন আমি প্রোগ্রাম শুরু লাইন নির্বাহ তারপর 35 36, 386 00:24:14,480 --> 00:24:18,650 আমি যখন লাইন 37 পেতে বিবরণ এই সময়ে,, কি একটি মান কি? 387 00:24:21,040 --> 00:24:25,050 গল্পের এই পর্যায়ে, লাইন 37, কি একটি এই সময়ে মান? >> [ছাত্রদের] 1. 388 00:24:25,050 --> 00:24:29,280 [Malan] এটা ঠিক হতে 1 অধিকার, উচিত, কারণ এক্স প্রথম আর্গুমেন্ট হিসাবে পাস করা হয়েছিল, 389 00:24:29,280 --> 00:24:33,080 এবং এই ফাংশনটি শুধু ইচ্ছামত তার প্রথম যুক্তি একটি আহ্বান করা হয়. 390 00:24:33,080 --> 00:24:38,200 একইভাবে দ্বিতীয় আর্গ্যুমেন্টটি y, এবং এটা ইচ্ছামত এর দ্বিতীয় যুক্তি বো কলিং. 391 00:24:38,200 --> 00:24:40,990 >> এই বৈপরীত্য আসলে মোটামুটি সহজভাবে ব্যাখ্যা করা হয়. সেটা ভাবুন. 392 00:24:40,990 --> 00:24:43,320 আমাদের কেউ ব্যক্তি printf লিখেছেন পরিচয়, 393 00:24:43,320 --> 00:24:50,770 তাই নিশ্চয়, সে বা তিনি কোন ধারণা কি আমাদের ভেরিয়েবল 30 বছর পরে করা হবে বলা যাচ্ছে হয়েছে. 394 00:24:50,770 --> 00:24:56,650 তাই হয়েছে কি কল ফাংশন আপনি লেখার মধ্যে ভেরিয়েবলের মধ্যে একটি পার্থক্য আছে 395 00:24:56,650 --> 00:25:02,080 এবং আপনি কি ফাংশন কল করতে বা কলিং ব্যবহার করছেন মধ্যে ভেরিয়েবল. 396 00:25:02,080 --> 00:25:05,340 তাই অন্য কথায়, আমি x এবং y হিসাবে আমার ভেরিয়েবল আছে না, 397 00:25:05,340 --> 00:25:08,890 কিন্তু যদি কারোর জন্য swap ফাংশন লিখিত ছিল, অবশ্যই সে জানা নেই 398 00:25:08,890 --> 00:25:10,690 করা হবে বলা কি আমার ভেরিয়েবল যাচ্ছে, 399 00:25:10,690 --> 00:25:13,830 বুঝতে হবে যে এটা কেন আপনি নামের এই দ্বৈত আছে. 400 00:25:13,830 --> 00:25:16,750 টেকনিক্যালি, আমি কাকতালীয় এই যেত না, 401 00:25:16,750 --> 00:25:20,080 কিন্তু তারা এখনও হিসাবে কপি মধ্যে হস্তান্তর করা হবে. 402 00:25:20,080 --> 00:25:23,650 এটা ঠিক করা একটি খাঁটি কাকতালীয় হবে aesthetically যদি যে ব্যক্তি করতে swap লিখেছেন 403 00:25:23,650 --> 00:25:26,150 তিনি একই নাম ব্যবহৃত. 404 00:25:26,150 --> 00:25:32,370 তাই গল্পের এই সময়ে, লাইন 37, একটি হল 1, 2 b হল, এবং এখন আমি তাদের অদলবদল এগিয়ে যান. 405 00:25:32,370 --> 00:25:34,900 প্রথম সব, আমাকে আসলে এই না আরো অনেক কিছু সহজভাবে. 406 00:25:34,900 --> 00:25:36,690 আমি কি ঐ কোড 3 লাইন এমনটি ছিল না. 407 00:25:36,690 --> 00:25:41,210 সম্পর্কে শুধু এই করুক: খ = একটি; একটি = বো; সম্পন্ন. 408 00:25:41,210 --> 00:25:44,690 কেন হয় এই ভাঙা যুক্তি,? 409 00:25:46,490 --> 00:25:48,900 এটা স্বজ্ঞাত জিনিস ধরনের অধিকার,? 410 00:25:48,900 --> 00:25:52,560 সুতরাং একজন পরিণত হয় এবং বো বো হয়ে, 411 00:25:52,560 --> 00:25:57,730 কিন্তু সমস্যা হল যত তাড়াতাড়ি লাইন 37 executes, কি এবং a ও b মান কি? 412 00:25:57,730 --> 00:26:03,410 একই, 1, কারণ আপনি clobbered আছে, তাই কথা বলতে, আপনি বো একটি সমান পরিবর্তন করেছেন. 413 00:26:03,410 --> 00:26:08,890 তাই একবার লাইন 37 মৃত্যুদন্ড কার্যকর করেনি, দারুণ, এখন আপনি কি নম্বর 1 2 কপি আছে 414 00:26:08,890 --> 00:26:13,350 এই ফাংশনের ভিতর, অতএব যখন আপনি লাইন 38 বলতে একটি = খ, 415 00:26:13,350 --> 00:26:17,640 আপনি ধরনের করছি মাতাল কারণ আপনি 1 করছি 1 বরাদ্দ. 416 00:26:17,640 --> 00:26:20,580 আপনি ধরনের করেছি মান সম্পর্কে যত্ন হারিয়ে গেছে. 417 00:26:20,580 --> 00:26:23,220 তাই এই মূল সংস্করণে, বিজ্ঞপ্তি আমি কি. 418 00:26:23,220 --> 00:26:26,850 আমি পরিবর্তে একটি কোড তৃতীয় লাইনটি ভালো যে তাকিয়ে ছিল. 419 00:26:26,850 --> 00:26:28,580 আমি একটি অস্থায়ী ভেরিয়েবল ডিক্লেয়ার. 420 00:26:28,580 --> 00:26:32,170 >> Tmp একটি অস্থায়ী পরিবর্তনশীল জন্য খুব সাধারণ নাম, এবং এটা কোন int 421 00:26:32,170 --> 00:26:34,580 কারণ এটা থেকে কি আমি একটি কপি করতে চান মেলে আছে. 422 00:26:34,580 --> 00:26:39,770 আমি tmp একটি ভিতর কপি সংরক্ষণ, তাই একবার লাইন 37 মৃত্যুদন্ড কার্যকর করেনি, 423 00:26:39,770 --> 00:26:45,860 একটি মান - দ্রুত বৈধতা চেক - 1, বো মান 2, 424 00:26:45,860 --> 00:26:48,970 tmp এবং মান হয় 1. 425 00:26:48,970 --> 00:26:52,060 তাই এখন আমি লাইন 38 চালানো হয়. 426 00:26:52,060 --> 00:27:00,540 একবার লাইন 38 executes, একটি বো মূল্যের লাগে. এবং বো ছিল 2, তাই এখন হল 2. 427 00:27:00,540 --> 00:27:05,210 তাই গল্পের এই সময়ে, একটি হল 2, b হল 2, এবং tmp 1, 428 00:27:05,210 --> 00:27:11,060 তাই এখন যুক্তি, এবং আমরা বো মধ্যে মাত্র চুর্পশব্দ tmp এর মান আমরা সম্পন্ন করতে পারেন. 429 00:27:11,060 --> 00:27:12,800 সুতরাং আমরা যে সমস্যার সমাধান করেছি. 430 00:27:12,800 --> 00:27:17,720 দুর্ভাগ্যবশত, যখন আমি এই ফর্ম এই প্রোগ্রাম চালানো, এটি আসলে কোনো মান কোনো অদলবদল না. 431 00:27:17,720 --> 00:27:20,100 কিন্তু পরিষ্কার হবে, কেন? 432 00:27:23,660 --> 00:27:26,450 আমি শুধু একটা মুহূর্ত আগে থেকে লজিক্যাল সমস্যা সমাধান, 433 00:27:26,450 --> 00:27:31,020 কিন্তু আবার, যদি আমি এই প্রোগ্রামটি চালানোর জন্য, x এবং y থাকা অপরিবর্তিত 434 00:27:31,020 --> 00:27:33,310 প্রোগ্রাম সঞ্চালনের এর সমাপ্তি. 435 00:27:33,310 --> 00:27:37,220 [শ্রবণাতীত ছাত্র মন্তব্য নেই] >> আমরা কিছু ফিরে আসেন নি, তাই এটা সত্য. 436 00:27:37,220 --> 00:27:39,670 কিন্তু এটি সক্রিয় আউট এখানে আছে একটি সমস্যার একটি বিট কারণ দূর পর্যন্ত, 437 00:27:39,670 --> 00:27:44,170 শুধুমাত্র জিনিস আমরা ফিরে আসতে পারব এক জিনিস, এবং এই সি একটি সীমাবদ্ধতা 438 00:27:44,170 --> 00:27:49,070 আপনি শুধুমাত্র ফিরে সত্যিই এক মান, হতে পারে যে ক্ষেত্রে আমি ধরনের এখানে আটকে 439 00:27:49,070 --> 00:27:53,310 কারণ আমি এক্স নতুন মূল্য ফেরত দিতে পারে বা আমি y নতুন মূল্য ফেরত দিতে পারে, 440 00:27:53,310 --> 00:27:55,190 কিন্তু আমি উভয় ফেরত চাইবেন. 441 00:27:55,190 --> 00:27:58,650 সুতরাং এখানে ফিরে সহজ সমাধান হয় না. 442 00:27:58,650 --> 00:28:01,710 কিন্তু মৌলিকভাবে সমস্যা হয় কেন? কি আসলে আমরা আনা? 443 00:28:01,710 --> 00:28:04,190 [ছাত্রদের] এবং a ও b. >> A ও b. 444 00:28:04,190 --> 00:28:08,230 কিন্তু a ও b হল x এবং y, যার মানে আমরা ঠিক এই কাজ করে কি কপি, 445 00:28:08,230 --> 00:28:11,650 আমরা মাত্র 3 মিনিট সময় ব্যয় করতে swap ফাংশন এবং এই ভেরিয়েবলগুলি সমস্ত 3 বিষয়ে কথা বলছি, 446 00:28:11,650 --> 00:28:15,420 এবং যে বিচ্ছিন্নতা মধ্যে দারুণ, পুরোপুরি সঠিক, 447 00:28:15,420 --> 00:28:20,740 কিন্তু a ও b এর সুযোগ রয়েছে এখানে শুধুমাত্র এই লাইনে হয়. 448 00:28:20,740 --> 00:28:24,790 >> তাই শুধু লুপ জন্য একটি ভালো, আপনি যদি একটি পূর্ণসংখ্যা ডিক্লেয়ার ভিতরে লুপ তোমার জন্য, 449 00:28:24,790 --> 00:28:28,760 একইভাবে, আপনি যদি একটি ফাংশন এবং a ও b এর ভিতরে আপনি যে লিখিত করেছি ঘোষণা করছি, 450 00:28:28,760 --> 00:28:33,320 তারা কেবল যে ফাংশন বৈধ ভিতর, যার মানে হিসাবে শীঘ্রই swap হিসাবে নির্বাহ করার জন্য এটা করা হয় 451 00:28:33,320 --> 00:28:38,470 এবং আমরা লাইন 25 লাইন 24 থেকে যান, এক্স এবং ওয়াই এ সকল পরিবর্তন করা হয়েছে না. 452 00:28:38,470 --> 00:28:42,790 আপনি শুধু একটা সময় পুরো অনেক ভেরিয়েবল কপি সোয়াপিং বরবাদ. 453 00:28:42,790 --> 00:28:47,010 সুতরাং দেখা যাচ্ছে যে এই সমাধান আসলে অ সুস্পষ্ট. 454 00:28:47,010 --> 00:28:50,670 এর কারণ আমরা শুধু 1 মান প্রত্যাবর্তন করতে পুরোপুরি ফিরে যাও মান যথেষ্ট না, 455 00:28:50,670 --> 00:28:53,470 এবং আমি সত্যিই একই সময়ে উভয় x এবং y অদলবদল করতে না চান, 456 00:28:53,470 --> 00:28:55,210 তাই আমরা এই ফিরে আসতে যাচ্ছেন. 457 00:28:55,210 --> 00:29:01,020 কিন্তু এখন জন্য, বুঝতে পারছি যে বিষয় মৌলিকভাবে যে a ও b হল কপি থেকে প্রাপ্ত 458 00:29:01,020 --> 00:29:03,630 এবং তারা তাদের নিজস্ব সুযোগ আছে. 459 00:29:03,630 --> 00:29:05,050 যাক এর কিছু উপায়ে এই সমস্যার সমাধানের চেষ্টা করুন. 460 00:29:05,050 --> 00:29:11,250 সম্পর্কে আসলে স্ক্রল এখানে ফিরে আসুন এবং আপ খুলুন, এর একটি এই চতুর্থ বৈকল্পিক, buggy4 বলে, যাক. 461 00:29:11,250 --> 00:29:13,370 কি হবে এই সম্পর্কে 462 00:29:13,370 --> 00:29:17,810 এটি একটি অনুরূপ কিন্তু সহজ সমস্যা সমাধানের আগে আমরা একটি ছুরিকাঘাত নিতে তাকান. 463 00:29:17,810 --> 00:29:24,190 এই প্রোগ্রামটি বৃদ্ধি বলা হয়, এবং এটি দৃশ্যত 1 যাও লাইন 18 x এর একটি পূর্ণসংখ্যা সূচনা করে. 464 00:29:24,190 --> 00:29:28,150 আমি দাবি x 1, তারপর আমি "বৃদ্ধিশীল ..." দাবি 465 00:29:28,150 --> 00:29:33,730 আমি তারপর বৃদ্ধি কল, কিন্তু তারপর লাইন 22 এবং 23 সালে, আমি দাবী এটা মান বৃদ্ধি করা হয়েছে, 466 00:29:33,730 --> 00:29:40,220 আমি দাবী x যাই হোক না কেন এখন হয় এটা - 2, সম্ভবতঃ - কিন্তু এই প্রোগ্রামটি বগী. 467 00:29:40,220 --> 00:29:42,610 সমস্যা কি? 468 00:29:43,440 --> 00:29:50,160 হাঁ. >> [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> যথাযথভাবে. 469 00:29:50,160 --> 00:29:52,490 তাই এক্স, ঘোষিত হয়েছে সম্ভবত লাইন 18,. 470 00:29:52,490 --> 00:29:54,700 যে প্রধান এর কোঁকড়া ধনুর্বন্ধনী ভিতরে হয়. 471 00:29:54,700 --> 00:29:58,440 সুতরাং এখানে সহজ উত্তর হল যে যখন এক্স এখানে বিদ্যমান, 472 00:29:58,440 --> 00:30:03,930 এটি লাইন 32 মধ্যে বিদ্যমান নেই, তাই এই প্রোগ্রাম এমনকি প্রকৃতপক্ষে না কম্পাইল হবে. 473 00:30:03,930 --> 00:30:07,940 কম্পাইলার যখন আমি এই কোড কম্পাইল করে দেখুন এ সম্পর্কে চিত্কার যাচ্ছে 474 00:30:07,940 --> 00:30:14,100 সম্পর্কে কিছু অঘোষিত শনাক্তকারী বা যে প্রভাব কিছু. আসলে, আমি কি চেষ্টা করুন. 475 00:30:14,100 --> 00:30:18,470 এই buggy4 করা হয়. এটা এখন পর্যন্ত. 476 00:30:18,470 --> 00:30:22,110 অঘোষিত শনাক্তকারী লাইন 32 'x' ব্যবহার. 477 00:30:22,110 --> 00:30:25,580 এবং প্রকৃতপক্ষে, এর আরো স্পষ্ট হতে আজ এখানে, তাই যাক যে এই সহায়ক 478 00:30:25,580 --> 00:30:27,580 ঘন্টার মধ্যে অফিসে এবং বাড়িতে. 479 00:30:27,580 --> 00:30:29,300 >> উল্লেখ্য, এটি একটি সামান্য cryptically লিখিত. 480 00:30:29,300 --> 00:30:37,270 কিন্তু যে ঝনঝন শব্দ আছে আমাদের yelled, বলছে buggy4.c: 32:5, সে আসলে দরকারী. 481 00:30:37,270 --> 00:30:42,050 মানে ত্রুটি অক্ষর অবস্থান 5 লাইনে 32 হয়. 482 00:30:42,050 --> 00:30:46,700 সুতরাং 1, 2, 3, 4, 5. যে সত্য আছে, যেখানে সমস্যা হয়. 483 00:30:46,700 --> 00:30:49,790 এবং এছাড়াও খুব,, অফিস সময়ে এবং বাড়িতে রাখবেন, আমি ভাগ্যবান এখানে. 484 00:30:49,790 --> 00:30:52,990 আমি এক ভুল আছে. এটা তুলনামূলকভাবে সহজ ফিক্স করা হচ্ছে. 485 00:30:52,990 --> 00:30:55,990 কিন্তু আপনি যদি একটি সম্পূর্ণ পর্দা অপ্রতিরোধ্য ত্রুটির বার্তা সম্পূর্ণ পেতে, 486 00:30:55,990 --> 00:31:00,330 আবার ঠিক বুঝতে পারি যে গভীরতম এক হতে হবে সর্বোচ্চ এক লাক্ষণিক পারে. 487 00:31:00,330 --> 00:31:03,450 সুতরাং সর্বদা উপরে নিচে থেকে আপনার পেছনে তাড়া বাগ নিচে 488 00:31:03,450 --> 00:31:05,820 কারণ মাত্র একটি চেইন ফ্ুলপাছ প্রভাব আছে পারে 489 00:31:05,820 --> 00:31:09,240 যে ভাবে আপনি আরো বেশী সমস্যা আসলে আপনি কি ইঙ্গিত করা হয়. 490 00:31:09,240 --> 00:31:15,150 তাই আমরা কিভাবে এই যদি আমার লক্ষ্য স্থির করা হয় x এর বাড়ায় পারে? >> [ছাত্রদের] x বিশ্বব্যাপী না. 491 00:31:15,150 --> 00:31:17,060 ঠিক আছে, তাই আমরা x বিশ্বব্যাপী করতে পারেন. 492 00:31:17,060 --> 00:31:20,480 চলুন শুরু করা যাক শর্টকাট যে আমি সতর্ক সম্পর্কে আগে, করতে হবে, কিন্তু নরক, আমরা দ্রুত ফিক্স করা প্রয়োজন, 493 00:31:20,480 --> 00:31:25,730 তাই আসুন শুধু int x আপ এখানে বলার. যে এক্স বিশ্বব্যাপী তোলে. 494 00:31:25,730 --> 00:31:31,800 তাই এটি এখন প্রধান অ্যাক্সেস এবং তা বৃদ্ধি করেনি অ্যাক্সেস আছে, 495 00:31:31,800 --> 00:31:34,110 এবং তাই আমাকে এগিয়ে যান এবং এখন এই সঙ্কলন. 496 00:31:34,110 --> 00:31:37,630 Buggy4 না, লিখুন. যাও এখন কম্পাইল করা হচ্ছে. 497 00:31:37,630 --> 00:31:41,230 চলুন buggy4 চালানো. এবং এটা আসলে কাজ মনে হয়. 498 00:31:41,230 --> 00:31:45,150 এই হল এই যে হিসাবে আমি বলতে কি এর এক, আমি হিসাবে না, 499 00:31:45,150 --> 00:31:47,010 হিসাবে আমি করেছেন এখানে, কারণ সাধারণ, 500 00:31:47,010 --> 00:31:50,440 আমাদের প্রোগ্রাম আরো অনেক আকর্ষণীয় এই তুলনায় অনেক এবং আর পাওয়া যাচ্ছে, 501 00:31:50,440 --> 00:31:56,390 যদি এবং কেবল জীবন এর সমস্যার সমাধান আপনার আপনার ফাইল শীর্ষে রাখা হয় সব ভেরিয়েবল, 502 00:31:56,390 --> 00:31:59,690 খুব দ্রুত প্রোগ্রাম পেতে horrifically কঠিন পরিচালনা করুন. 503 00:31:59,690 --> 00:32:02,190 সেটা কঠিন নতুন ভেরিয়েবলের নাম মনে আপ, 504 00:32:02,190 --> 00:32:05,240 সেটা কঠিন কি পরিবর্তনশীল কি করছে বুঝতে, 505 00:32:05,240 --> 00:32:08,460 সাধারণভাবে তাই, এই একটা ভালো সমাধান নয়. 506 00:32:08,460 --> 00:32:10,030 তাই এর এই কি ভালো দিন. 507 00:32:10,030 --> 00:32:12,160 আমরা এখানে একটি গ্লোবাল ভেরিয়েবল ব্যবহার করতে চান না. 508 00:32:12,160 --> 00:32:16,240 >> আমি এক্স বাড়াতে চান, ঠিক তা আমি স্পষ্টত পারে - 509 00:32:16,240 --> 00:32:18,670 দিনের শেষে, এই একটি অর্থহীন গল্প ধরনের কারণ আমরা এই কি - 510 00:32:18,670 --> 00:32:24,450 কিন্তু যদি আমি যে অপারেটর সম্পর্কে বা কি আমি যাও প্রধান নিজেই তা পরিবর্তন করতে অনুমতি দেওয়া হয়েছিল না জানি না, 511 00:32:24,450 --> 00:32:30,730 কিভাবে অন্যথায় এখানে উপর আমি কেন এই সময় বাস্তবায়ন করা যায়নি ঘনবস্তু কিন্তু বাড়ায়? 512 00:32:31,380 --> 00:32:33,190 আমি কিভাবে এখানে এই জিনিস পরিবর্তন? হাঁ. 513 00:32:33,190 --> 00:32:38,480 [ছাত্রদের] x এর মধ্যে পাস এবং তারপর ফিরে [শ্রবণাতীত] >> ঠিক আছে, ভাল. 514 00:32:38,480 --> 00:32:41,900 সুতরাং কেন আমি x এর মধ্যে না পাশ করে এবং তারপর বরং এটা ফেরত দিতে, 515 00:32:41,900 --> 00:32:44,870 কেন শুধু আমি না x + 1 টি ফেরত. 516 00:32:44,870 --> 00:32:47,710 একটি দম্পতি আরো জিনিষ এখানে পরিবর্তন আছে. আমি ঠিক দিকে যাচ্ছে না. 517 00:32:47,710 --> 00:32:49,770 আমি আর কী করতে হবে না যাও খামচি? অন্য কেউ. হাঁ. 518 00:32:49,770 --> 00:32:51,740 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] 519 00:32:51,740 --> 00:32:54,730 আমি বর্ধন ফেরত টাইপ পরিবর্তন প্রয়োজন কারণ এটি না বাতিলযোগ্য এর. 520 00:32:54,730 --> 00:32:57,780 অকার্যকর অর্থ কিছুই না হলেও এখন এটা স্পষ্ট হচ্ছে, 521 00:32:57,780 --> 00:32:59,830 তাই এই পরিবর্তন প্রয়োজন যাও - >> [ছাত্রদের] int. 522 00:32:59,830 --> 00:33:02,740 যাই হোক না কেন আসলে আমি ফিরে যাও করছি সঙ্গে সামঞ্জস্যপূর্ণ হবে int. 523 00:33:02,740 --> 00:33:05,180 এখন অন্য কোন কিছু এখনও বগী এখানে. হাঁ. 524 00:33:05,180 --> 00:33:08,400 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> [Malan] আমি এক্স বাড়ায় প্রয়োজন? 525 00:33:08,400 --> 00:33:12,080 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> [Malan] আহ, তাই আমি এক্স পাস প্রয়োজন. 526 00:33:12,080 --> 00:33:16,660 আমি এখানে এই প্রয়োজন. >> [শ্রবণাতীত ছাত্র মন্তব্য নেই] 527 00:33:16,660 --> 00:33:20,050 [Malan] সুতরাং প্রোটোটাইপ, আমি এই পর্যন্ত এখানে পরিবর্তন আছে. 528 00:33:20,050 --> 00:33:22,930 তাই এই যাও কোন int হয়ে আছে, এই হয়ে আছে - 529 00:33:22,930 --> 00:33:25,620 হুম, আমি আসলে একটি বাগ আছে নিচে এখানে. যাক এই প্রথম এক ফিক্স. 530 00:33:25,620 --> 00:33:29,590 এই আসলে কি করা উচিত? এটা কোন int কিছু করা না হয়. 531 00:33:29,590 --> 00:33:32,700 এটি এক্স, হতে উন্মুক্তভাবে কিন্তু, হতে পারে যদি আপনি আপনার ভেরিয়েবল x সব কলিং, 532 00:33:32,700 --> 00:33:35,390 এটা কম পরিষ্কার যা যা করবে. 533 00:33:35,390 --> 00:33:39,560 >> সুতরাং এর ইচ্ছামত শুধু একটি ভিন্ন আমার সাহায্যকারী ফাংশন নামকরণের জন্য কনভেনশন চয়ন যাক, 534 00:33:39,560 --> 00:33:41,940 ফাংশন আমি লিখছি না. আমরা, কল বা আমরা একে ডাকতে পারে করব - 535 00:33:41,940 --> 00:33:45,010 চলুন শুরু করা যাক ফোন নম্বর এটি এমনকি আরো স্পষ্ট হবে. 536 00:33:45,010 --> 00:33:47,560 আমি তখন যাও যাই হোক না কেন নম্বর হল প্লাস 1 ফিরে আছে, 537 00:33:47,560 --> 00:33:50,740 এবং এখন আমি 1 অন্যান্য জিনিস আপ পরিবর্তন এখানে এবং অন্য একটি বিষয় এখানে আছে. 538 00:33:50,740 --> 00:33:54,350 কি করে আমি লাইন 21 প্রথম পরিবর্তন আছে? >> [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] 539 00:33:54,350 --> 00:33:57,610 [Malan] আমি এক্স এটি দায়িত্ব অর্পণ করা আছে. আমি শুধু বৃদ্ধি কল (x) করতে পারেন. 540 00:33:57,610 --> 00:34:01,960 আমি বাম দিকে x এর মান পরিবর্তন করে উত্তর মনে রাখা প্রয়োজন. 541 00:34:01,960 --> 00:34:04,680 এবং যদিও x বর্তমান বাম এবং ডান, যা সম্পূর্ণই জরিমানা 542 00:34:04,680 --> 00:34:08,860 কারণ প্রথম ডানদিকের সাইড মৃত্যুদন্ড কার্যকর পরার পরে বাঁদিকের জিনিস মধ্যে plopped সম্ভার - 543 00:34:08,860 --> 00:34:10,600 এই ক্ষেত্রে এক্স. 544 00:34:10,600 --> 00:34:12,159 এবং সর্বশেষে, তাহলে এই একটি সহজ ফিক্স এখন. 545 00:34:12,159 --> 00:34:17,230 এই মাত্র সুসংগত হওয়া আবশ্যক কি এর নিচে নিচে, int-নম্বর. 546 00:34:17,230 --> 00:34:20,570 সুতরাং একটি পরিবর্তন পুরো একটি সত্যিই মূঢ় ফাংশন জন্য গুচ্ছ 547 00:34:20,570 --> 00:34:24,420 কিন্তু যে আমরা ক্রমবর্ধমান করতে চাইবেন প্রতিনিধি. 548 00:34:24,420 --> 00:34:27,090 সুতরাং buggy4 করা. আমি কোথাও মাতাল করেছি. 549 00:34:27,090 --> 00:34:30,139 ওহ, আমার ঈশ্বর. 6 লাইন প্রোগ্রামে পাঁচ ভুল. 550 00:34:30,139 --> 00:34:35,690 তাই লাইন 18 এর ভুল, চরিত্র 5? 551 00:34:35,690 --> 00:34:39,610 আমি এই, int-ডিক্লেয়ার আছে. 552 00:34:39,610 --> 00:34:41,920 চলুন দেখুন. অন্য একটি ত্রুটি আভা আছে. 553 00:34:41,920 --> 00:34:47,010 ওহ, আমার ঈশ্বর - 19, 18, 21 - আবার কিন্তু, আমি কি শুধু পর্দা, সাফ এখানে কন্ট্রোল এল, 554 00:34:47,010 --> 00:34:49,380 ঝনঝন শব্দ এবং পুন: প্রকাশ. 555 00:34:49,380 --> 00:34:51,340 তাই 5 সমস্যা আসলে ঠিক যে 1. 556 00:34:51,340 --> 00:34:57,520 তাই এখন এর buggy4 চালানো যাক, লিখুন. Whew, সঠিকভাবে x এর মান বৃদ্ধি হয়েছে. 557 00:34:57,520 --> 00:35:02,720 ঠিক আছে. কিভাবে নম্বর বাড়ায় উপর কোন প্রশ্ন? হাঁ. 558 00:35:02,720 --> 00:35:09,870 [শ্রবণাতীত ছাত্র প্রশ্ন] >> গুড প্রশ্ন. 559 00:35:09,870 --> 00:35:14,220 কিভাবে এটি যে আমি শুধু সংখ্যা x এবং পরিবর্তন করতে পারেন প্রোগ্রাম অবিলম্বে জানতে হবে? 560 00:35:14,220 --> 00:35:16,200 >> আবার তা, এই বিমূর্ততা হিসাবে মনে করি. 561 00:35:16,200 --> 00:35:21,600 সুতরাং যদি আমি প্রধান এবং কেন হল বৃদ্ধি উন্মুক্তভাবে,, আমি কি তার Ken কল রহমান না যত্ন. 562 00:35:21,600 --> 00:35:26,570 আমি কি তিনি কল কিছু যে এই কার্যকারিতা তার বাস্তবায়ন না আছে না যত্ন. 563 00:35:26,570 --> 00:35:33,340 এটি একটি বাস্তবায়ন বিশদ যে আমি, প্রধান, যত্নশীল না. 564 00:35:33,340 --> 00:35:38,250 এবং শুধু তাই পরিবর্তন ফাংশন ভিতরে এটা ধারাবাহিকভাবে - নম্বর এখানে এবং সংখ্যা এখানে - 565 00:35:38,250 --> 00:35:40,960 সব এটি লাগে তাই যতদিন আমি recompile. 566 00:35:40,960 --> 00:35:44,180 এটা ধরণের যদি আপনি মনে করেন আমাদের সম্পর্কে অনেক, ড্রাইভার এর লাইসেন্সধারীরা আপনার যারা 567 00:35:44,180 --> 00:35:46,770 যারা চালিত অথবা আপনি যদি আরও একটি গাড়ীর করেছি চালিত আছে, 568 00:35:46,770 --> 00:35:50,950 আমাদের অধিকাংশ কোন ধারণা কিভাবে একটি গাড়ী ফণা নীচে কাজ করে. 569 00:35:50,950 --> 00:35:54,970 এবং আক্ষরিক, যদি আপনি খুলুন ফণা, আমাদের অধিকাংশ আপ - নিজেকে অন্তর্ভুক্ত - 570 00:35:54,970 --> 00:35:56,940 হয় সত্যিই কি আমরা এ খুঁজছেন তা জানা যাচ্ছে না, 571 00:35:56,940 --> 00:35:59,220 যেমন আপনি এখন এই অধিকার ভালো স্টাফ সঙ্গে মনে হতে পারে ধরনের. 572 00:35:59,220 --> 00:36:01,480 কিন্তু আমরা কিভাবে কাজ করে গাড়ির যত্ন সত্যিই আছে না, 573 00:36:01,480 --> 00:36:05,970 আমরা যত্ন না কি rods এবং pistons মধ্যে গাড়ী এবং তারের ভিতর সব 574 00:36:05,970 --> 00:36:08,160 আসলে হয় না. 575 00:36:08,160 --> 00:36:12,770 তাই আপনি কল পিস্টন এখানে কোনো ব্যাপার এই ক্ষেত্রে কিছু নয়. একই ধারণা. 576 00:36:12,770 --> 00:36:25,300 হাঁ. >> [শ্রবণাতীত ছাত্র প্রশ্ন] 577 00:36:25,300 --> 00:36:29,180 যদি আগে হয় পরিবর্তনশীল XA মুহুর্তে আরো ব্যবহার 578 00:36:29,180 --> 00:36:32,150 আপনি, প্রোগ্রামার সর্বত্র তাদের পরিবর্তন, থাকবে. 579 00:36:32,150 --> 00:36:36,600 অথবা আপনি আক্ষরিক ফাইল, মেনু, না পারে, তাহলে খুঁজুন প্রতিস্থাপন করুন - যে ভালো কিছু - 580 00:36:36,600 --> 00:36:39,170 কিন্তু আপনি নিজে তা পরিবর্তন করতে যাচ্ছি. 581 00:36:39,170 --> 00:36:47,450 আপনি সামঞ্জস্যপূর্ণ হতে হবে. >> [ছাত্রদের] যদি একাধিক ভেরিয়েবল আছে [শ্রবণাতীত] 582 00:36:47,450 --> 00:36:53,100 এখানে একটি বিশেষ মত অর্ডার, যদি এই ছিল আরেকটি নম্বর int? >> [ছাত্রদের] সঠিক. 583 00:36:53,100 --> 00:36:56,590 [Malan] হ্যাঁ. আদেশ বিষয়ে যখন আপনি ফাংশন আহ্বান করা হয়. 584 00:36:56,590 --> 00:37:00,050 >> সুতরাং যদি আমি বর্ধন কলিং এখানে কিছু কিছু কমা সঙ্গে ছিল, 585 00:37:00,050 --> 00:37:01,680 একটি সরাসরি ম্যাপিং আছে. 586 00:37:01,680 --> 00:37:05,690 প্রথম পরিবর্তনশীল, যাই হোক না কেন এর বলা, এখানে উপর প্রথম আর্গুমেন্টের একটি কপি হয়. 587 00:37:05,690 --> 00:37:07,760 দুঃখিত. এই একটি লঘুবন্ধনী উচিত নয়. 588 00:37:07,760 --> 00:37:11,490 দ্বিতীয় এক সঙ্গে যুক্তি লাইন আপ. তাই অর্ডার, হ্যাঁ, বিষয়গুলি. ঠিক আছে. 589 00:37:11,490 --> 00:37:17,020 দুঃখিত. আমি সেখানে পেতে দীর্ঘ পথ গ্রহণ করেন. অন্য প্রশ্ন? ঠিক আছে. 590 00:37:17,020 --> 00:37:20,610 সুতরাং আসুন যদি আমরা কি এখানে আসলে যাচ্ছে না আঁকা একটা ছবি দেখতে পারেন 591 00:37:20,610 --> 00:37:23,090 ফণা তল, তাই কথা বলতে. 592 00:37:23,090 --> 00:37:26,640 এটি একটি আয়তক্ষেত্র যে আপনার কম্পিউটার এর মেমরি প্রতিনিধিত্ব করতে পারে. 593 00:37:26,640 --> 00:37:30,970 এমনকি আপনি যদি কোন ধারণা কিভাবে কাজ করে বা মেমরি উপস্থিত RAM-র কিভাবে কাজ আছে, 594 00:37:30,970 --> 00:37:33,940 অন্তত অনুমান করা হয় যে আপনি এটি bunches আছে এই দিন. 595 00:37:33,940 --> 00:37:36,280 আপনি এটা মেগাবাইটের বেশি পেয়েছেন, তাহলে গিগাবাইট পেয়েছেন, 596 00:37:36,280 --> 00:37:40,870 এবং আমরা সপ্তাহে 0 থেকে জানি যে একটি বাইট ঠিক কি? >> [ছাত্রদের] 8 বিট. 597 00:37:40,870 --> 00:37:42,950 8 বিট, ডান? তাই 8 শূণ্যসমূহ এবং 1. 598 00:37:42,950 --> 00:37:45,880 তাই আপনি যদি আপনার কম্পিউটারের RAM-র একটি কোঁচ, উপস্থিত RAM-র 2 যোগাড় করে এই দিন আছে, 599 00:37:45,880 --> 00:37:55,030 আপনি মেমরি বা 2 বিলিয়ন বিলিয়ন বাইট বা প্রায় 8 বিলিয়ন ডলার বা 16 বিলিয়ন বিট আছে 600 00:37:55,030 --> 00:37:56,890 ভিতর আপনার কম্পিউটার. 601 00:37:56,890 --> 00:38:00,590 একটু অস্পষ্ট Willy উদাহরণের থেকে ভিন্ন, এটা সাধারণত আর চৌম্বকীয় কণা না. 602 00:38:00,590 --> 00:38:04,450 ল্যাপটপের মধ্যে অন্তত - - ধীরে এটা কঠিন রাষ্ট্র ড্রাইভ, SSDs, 603 00:38:04,450 --> 00:38:08,580 যে কোন চলন্ত যন্ত্রাংশ আছে. এটা সকল ইলেকট্রনিক. এটা সব খানে বিদ্যুত-ভিত্তিক. 604 00:38:08,580 --> 00:38:14,060 এই আয়তক্ষেত্র তাই শুধু মেমরি 1 বা 2 গিগাবাইট যে আপনি আছে প্রতিনিধিত্বমূলক হিসাবে মনে করি. 605 00:38:14,060 --> 00:38:16,020 >> এটা মেমরির একটি খণ্ড. 606 00:38:16,020 --> 00:38:19,830 কম্পিউটার বিজ্ঞান বিশ্বের করেনি ধরণের পার্টিশন বন্ধ 607 00:38:19,830 --> 00:38:22,950 মেমরির অংশ বিভিন্ন জিনিষ না. 608 00:38:22,950 --> 00:38:27,190 উদাহরণস্বরূপ, যদি এটি আপনার কম্পিউটারের RAM-র, হিসাবে সেখানে আয়তক্ষেত্র দ্বারা প্রস্তাবিত, 609 00:38:27,190 --> 00:38:31,130 এটি সক্রিয় যে কনভেনশন দ্বারা, তাই আপনার RAM-র উপরে, কথা বলতে, 610 00:38:31,130 --> 00:38:33,660 সাধারণত কি একটি টেক্সট অংশ বলা হয়. 611 00:38:33,660 --> 00:38:36,740 সেগুলো হল 0 সেঃ এবং 1s যে আপনি কম্পাইল করা আছে. 612 00:38:36,740 --> 00:38:39,020 সুতরাং যখন আমরা ফণা নীচে কি a.out হয় দিকে তাকিয়ে করেছি, 613 00:38:39,020 --> 00:38:41,980 এই সমস্ত 0 সেঃ এবং 1s, আপনি যখন একটি প্রোগ্রাম চালানো, 614 00:38:41,980 --> 00:38:46,290 যারা 0 সেঃ এবং 1s আপনার হার্ড ড্রাইভ থেকে কিছু বলা উপস্থিত RAM-র মধ্যে লোড করা হয়, 615 00:38:46,290 --> 00:38:49,320 এবং উপস্থিত RAM-র মধ্যে তারা শীর্ষে রাখা করছি. 616 00:38:49,320 --> 00:38:52,770 ইতিমধ্যে, আপনি অন্যান্য বিষয় আছে: তথ্য, আরম্ভ তথ্য uninitialize. 617 00:38:52,770 --> 00:38:57,510 যারা মেমরি 2 swaths গ্লোবাল ভেরিয়েবল, যা আপনি প্রায়ই ব্যবহার করবেন না পড়ুন 618 00:38:57,510 --> 00:39:00,760 তবে কখনও কখনও যদি আপনি না, তারা শেষ পর্যন্ত সেখানে হিসাবে ভাল. 619 00:39:00,760 --> 00:39:04,260 এনভায়রনমেন্ট ভেরিয়েবলের মান, যা আমরা অনেক সময় ব্যয় হবে না,: তারপর অন্য কিছু উপাদান আছে 620 00:39:04,260 --> 00:39:06,860 কিন্তু তারপর 2 গুরুত্বপূর্ণ বিষয় আছে যা সারা সেমিস্টারে প্রত্যাবর্তন করা, 621 00:39:06,860 --> 00:39:08,550 স্ট্যাকের এবং গাদা. 622 00:39:08,550 --> 00:39:12,210 তাই আপনার কম্পিউটার এর মেমরি সবচেয়ে যখন একটি প্রোগ্রাম সংরক্ষিত 623 00:39:12,210 --> 00:39:15,370 কিছু জন্য স্ট্যাকের নামক এবং কিছু গাদা বলা. 624 00:39:15,370 --> 00:39:18,840 গাদা সম্পর্কে আমরা আজ কথা বলার, করছি যাচ্ছে না কিন্তু আমরা স্ট্যাকের সম্পর্কে কথা বলতে হবে. 625 00:39:18,840 --> 00:39:24,600 স্ট্যাকে মাথের হাউস এ ভেলকি দেখান ভোজনশালা খাবার ট্রে চাক্ষুষ আপ বোঝানো হয় 626 00:39:24,600 --> 00:39:28,110 অথবা আপনি যেখানেই যাও হতে ঘটতে যেখানে ভোজনশালা কর্মীরা তাদের প্রতিদিন পরিষ্কার করা, 627 00:39:28,110 --> 00:39:30,180 তারা তাদের গাদা মেঝে থেকে উপরে, 628 00:39:30,180 --> 00:39:34,550 এবং একইভাবে মেমরি,, একটি স্ট্যাক কিছু নির্বাণ এই ধারণা আছে, 629 00:39:34,550 --> 00:39:36,860 একটি স্ট্যাক কিছু নির্বাণ, একটি স্ট্যাক কিছু নির্বাণ. 630 00:39:36,860 --> 00:39:38,240 আমরা কি এবং এই দ্বারা মানে? 631 00:39:38,240 --> 00:39:41,860 >> চলুন শুরু করা যাক, ঠিক এই ছবি নীচে অর্ধেক, আপনার কম্পিউটারের RAM এর উপর জুম, 632 00:39:41,860 --> 00:39:44,330 নিম্নলিখিত উপস্থাপিত. 633 00:39:44,330 --> 00:39:48,170 এটা পরিনত হয় যে যখন আপনি a.out অথবা হ্যালো মত একটি প্রোগ্রাম চালানো - 634 00:39:48,170 --> 00:39:50,100 যাই হোক না কেন প্রোগ্রাম যে আপনি লিখিত করেছি - 635 00:39:50,100 --> 00:39:54,020 আবার, যারা 0 সেঃ এবং 1s আপনার হার্ড ড্রাইভ, যা দীর্ঘমেয়াদী সংগ্রহস্থল থেকে লোড হয়, 636 00:39:54,020 --> 00:39:57,230 থাকে সেখানে এমনকি যখন আপনি প্লাগ, উপস্থিত RAM-র মধ্যে লোড করা মারবে না. 637 00:39:57,230 --> 00:40:00,610 উপস্থিত RAM-র তুলনায় দ্রুততর হয় হার্ড ড্রাইভ - এর হার্ড ড্রাইভের চেয়ে কম - 638 00:40:00,610 --> 00:40:03,300 কিন্তু যেখানে প্রোগ্রাম বাস যখন আপনি তাদের চালাচ্ছেন. 639 00:40:03,300 --> 00:40:08,230 তাই ডবল আপনি একটি Mac বা PC তে একটি প্রোগ্রাম ক্লিক করুন, এটি উপস্থিত RAM-র মধ্যে হার্ড ড্রাইভ থেকে লোড হয়. 640 00:40:08,230 --> 00:40:11,520 যত তাড়াতাড়ি এটা RAM-র, পথ শীর্ষে 0 সেঃ এবং 1s লোড এর মধ্যে চলতে চলতে, 641 00:40:11,520 --> 00:40:16,610 তথাকথিত টেক্সট সেগমেন্ট, তারপর কিন্তু যত তাড়াতাড়ি আসলে আপনার প্রোগ্রাম আরম্ভ চলমান, 642 00:40:16,610 --> 00:40:21,360 প্রধান ফাংশন, এবং বলা হয় প্রধান, হিসাবে আমরা দেখা করেছি প্রায়ই, স্থানীয় ভেরিয়েবল আছে, 643 00:40:21,360 --> 00:40:24,870 এবং এটি ints এবং স্ট্রিং এবং অক্ষর এবং ভালো হয়েছে. 644 00:40:24,870 --> 00:40:29,180 তাই আপনি যদি আপনার প্রোগ্রাম যে আপনি লিখিত আছে বা প্রোগ্রাম যে আপনি ডবল ক্লিক আছে 645 00:40:29,180 --> 00:40:32,970 ব্যবহৃত কিছু ভেরিয়েবল প্রধান ভেতরে, 646 00:40:32,970 --> 00:40:37,240 তারা মেমরি আপনার স্ট্যাকের নীচে শেষ পর্যন্ত, তাই কথা বলতে. 647 00:40:37,240 --> 00:40:39,410 আরো concretely কি, আসলে এর মানে কি? 648 00:40:39,410 --> 00:40:48,450 এই মাত্র মানে হল যে যদি আমরা আপনার কম্পিউটারে উপস্থিত RAM-র মাপ, বাইট হিসাবে নম্বর চালু ছিল, 649 00:40:48,450 --> 00:40:55,750 যে এই সংখ্যা 0 বাইট হতে পারে বিজ্ঞপ্তি, এই বাইট সংখ্যা 1, 2, 3, 4, 5, 6 হতে পারে, 650 00:40:55,750 --> 00:41:01,480 সমস্ত 2 বিলিয়ন আপ উপায় সমস্ত উপায় আপ সেখানে উপরে হবে. 651 00:41:01,480 --> 00:41:05,880 তাই অন্য কথায়, যখন উপস্থিত RAM-র বা মেমরি সম্পর্কে আমরা বাইট নিরিখে কথা বলুন, 652 00:41:05,880 --> 00:41:11,500 এটা মানে হল কেউ কি মেমরি যারা অংশ প্রতিটি নম্বর সিদ্ধান্ত নেওয়া হয়েছে. 653 00:41:11,500 --> 00:41:16,650 সুতরাং যখন আপনি কোন int জন্য 32 বিট প্রয়োজন অথবা আপনি একটি গৃহস্থালি জন্য 8 বিট প্রয়োজন, 654 00:41:16,650 --> 00:41:18,840 যেখানে তারা যা মেমরির মধ্যে শেষ? 655 00:41:18,840 --> 00:41:22,350 >> ধারণার দিক থেকে, তারা ঠিক এই জিনিস নীচে নামক স্ট্যাকের আপ শেষ. 656 00:41:22,350 --> 00:41:25,870 কিন্তু কি এখন আকর্ষণীয় হয় যখন প্রধান একটি ফাংশন কল - 657 00:41:25,870 --> 00:41:28,750 একটি ফাংশন বলা foo বিন্যাস, শুধু একটি অবাধ নামের অনুমান করা - 658 00:41:28,750 --> 00:41:32,330 মেমরি এই স্ট্যাকের নীচে কি হল প্রধান হয়; 659 00:41:32,330 --> 00:41:35,680 foo বিন্যাস এখন প্রধান উপরে মেমরি রাখা হয়. 660 00:41:35,680 --> 00:41:40,990 সুতরাং কোনো স্থানীয় ভেরিয়েবল যে foo বিন্যাস শেষ ধারণার উপরে মূল মধ্যে যারা সাজানোর আপ করেনি. 661 00:41:40,990 --> 00:41:47,070 যদি foo বিন্যাস ফাংশন কল অন্য নামক বার, যারা ভেরিয়েবল আপ এখানে শেষ. 662 00:41:47,070 --> 00:41:50,120 যদি বার অন্য কিছু এখানে, এখানে, এখানে কল. 663 00:41:50,120 --> 00:41:53,830 তাই এর একটি প্রোগ্রাম সম্পর্কে আকর্ষণীয় হয় যে হিসাবে আপনি ফাংশন কল 664 00:41:53,830 --> 00:41:57,750 এবং সেই হিসাবে ফাংশন ফাংশন কল হিসাবে এবং তাদের কর্ম ফাংশন কল, 665 00:41:57,750 --> 00:42:01,470 আপনি নির্মাণ মেমরির মধ্যে কর্ম এই স্ট্যাকের আপ. 666 00:42:01,470 --> 00:42:06,890 এবং শুধুমাত্র একবার একটি ফাংশন আয় আপনি যে স্মৃতি ফিরে পেতে শুরু. 667 00:42:06,890 --> 00:42:10,860 সুতরাং সহজতম উপায় মেমরির একটি কম্পিউটার প্রোগ্রাম চালানোর আউট এক 668 00:42:10,860 --> 00:42:14,360 ফাংশন যে ফিরে না লিখতে হয়. 669 00:42:14,360 --> 00:42:18,900 সুতরাং উদাহরণস্বরূপ, যাক এর একটি ইচ্ছাকৃতভাবে বগী প্রোগ্রামের সাথে হিসাবে অনেক প্রকট. 670 00:42:18,900 --> 00:42:22,230 সম্পর্কে এগিয়ে যান এবং না # অন্তর্ভুক্ত করা যাক, 671 00:42:22,230 --> 00:42:25,000 int প্রধান (অকার্যকর), 672 00:42:25,000 --> 00:42:32,940 এবং আমি যখন (2> 1), সম্ভবত যা আমাদের উপর কখনো পরিবর্তন করবে না চলেছি, 673 00:42:32,940 --> 00:42:37,560 এবং আমাকে এখন এগিয়ে যান এবং printf না. 674 00:42:37,560 --> 00:42:40,700 বাস্তবিক, যে কম চাক্ষুষরূপে আকর্ষণীয় হতে যাচ্ছে. এর এই করুক না. 675 00:42:40,700 --> 00:42:50,240 জন্য int i = 0; i> এ 0 - এর এই ভুল করার সুযোগ - তোমার +. 676 00:42:50,240 --> 00:42:52,720 এবং এর এখানে printf না. চলুন কি আমি প্রচারক ছিল অভ্যাস. 677 00:42:52,720 --> 00:43:00,190 চলুন শুরু করা যাক একটি পদ্ধতি আছে, অকার্যকর কোরাস, এবং আমরা int আমি বলবো, 678 00:43:00,190 --> 00:43:06,830 এবং তারপর আমি printf বলতে চলেছি - কোন, আসুন না এই আরো আকর্ষণীয়. 679 00:43:06,830 --> 00:43:15,790 চলুন আসলে এ সব মুদ্রণ কিছু না. ধুয়া (ঝ): এর মাত্র এই করুক না. 680 00:43:15,790 --> 00:43:20,390 ঠিক আছে. তাই এই বগী কারণ কেন? 681 00:43:20,390 --> 00:43:23,380 আমি এই করছি অভাবপূরণ হিসাবে আমি কি কারণ প্রোগ্রাম আসলে সুদের কিছু না. 682 00:43:23,380 --> 00:43:25,320 >> কিন্তু যে উদ্দেশ্য না. 683 00:43:25,320 --> 00:43:29,630 লক্ষ্য হল একটি প্রোগ্রাম যার প্রধান ফাংশন কি, দৃশ্যতঃ আছে লিখতে হয়? 684 00:43:30,720 --> 00:43:32,860 নিজেই কল করুন. এবং প্রকৃতপক্ষে, আমরা লুপ প্রয়োজন নেই. 685 00:43:32,860 --> 00:43:37,200 চলুন শুরু করা যাক এমনকি এই হিসাবে ঠিক তাই সত্যিই মৌলিক বাগ দেখিতে না হারান যাও সহজ করে. 686 00:43:37,200 --> 00:43:39,640 মুখ্য কল কিছু ধুয়া sing কোরাস, 687 00:43:39,640 --> 00:43:41,440 তারপর আমি কিছু মূঢ় করেছিলাম এবং আমি ধুয়া ধুয়া কল ছিল 688 00:43:41,440 --> 00:43:43,760 কারণ আমি অধিকৃত অন্য কাউকে হয়তো এটা বাস্তবায়ন হচ্ছে, 689 00:43:43,760 --> 00:43:47,210 এবং এখন এই এখনও সঙ্কলন করা যাচ্ছে না. আমি কি করতে হবে কি? 690 00:43:47,210 --> 00:43:49,970 আমি প্রোটোটাইপ প্রয়োজন, মনে রাখবেন. 691 00:43:49,970 --> 00:43:56,110 আমি আপ আছে এখানে অকার্যকর ধুয়া প্রয়োজন (int-i); 692 00:43:56,110 --> 00:43:59,210 সুতরাং এখন যদি আমি কি এখানে ডাউন - প্রকৃতপক্ষে, আমি কি বড় উইন্ডো ব্যবহার. 693 00:43:59,210 --> 00:44:01,980 চলুন এগিয়ে যান এবং কোরাস করা. 694 00:44:01,980 --> 00:44:06,490 চলুন এগিয়ে যান এবং কোরাস করা. 695 00:44:06,490 --> 00:44:08,370 অঘোষিত শনাক্তকারী আমি ব্যবহার. 696 00:44:08,370 --> 00:44:12,500 ওহ, যে ছিল মূঢ়. আমরা যুক্তি প্রয়োজন হয় না. এর ঠিক এই করুক না. 697 00:44:12,500 --> 00:44:16,370 আমি ইচ্ছুক আমরা এই ভাবে শুরু করেছে. এটা হয়েছে একটি সহজ প্রোগ্রাম লিখতে হবে. 698 00:44:16,370 --> 00:44:25,590 এখন পর্যন্ত. এখন আমি কি আমার টার্মিনাল উইন্ডোতে পুনরালোচনা, ঝনঝন পুন: প্রকাশ, এবং এখানে আমরা যান. 699 00:44:25,590 --> 00:44:28,460 এটা ছিল সত্যিই দ্রুত. 700 00:44:28,460 --> 00:44:31,150 ঠিক আসলে কি ঘটেছে, যদিও? 701 00:44:31,150 --> 00:44:33,730 অবশ্য, এখন আমি মুদ্রণ লাইন যুক্ত করুন যাতে আমরা দেখতে পাবেন. 702 00:44:33,730 --> 00:44:43,490 সম্পর্কে বলতে printf ("আমি এখানে আছি") যাক - কোন ভেরিয়েবল. আমরা যে মত ছেড়ে দেব. 703 00:44:43,490 --> 00:44:47,480 সম্পর্কে পুন: প্রকাশ করা যাক. আমাকে ধুয়া পুন: প্রকাশ. 704 00:44:47,480 --> 00:44:57,380 এবং ... চলো. বর্তা. 705 00:44:57,380 --> 00:44:59,930 একটি সরাইয়া হিসাবে, কারণ এখনও তা করেনি ক্র্যাশ না? 706 00:44:59,930 --> 00:45:02,080 সেগমেন্টেশন ফল্ট সুপার ফাস্ট আগে ঘটেছে. 707 00:45:02,080 --> 00:45:06,570 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> যথাযথভাবে. সুতরাং মুদ্রণ সময় লাগে, ঠিক? 708 00:45:06,570 --> 00:45:08,610 এটা কম্পিউটার এর পক্ষ থেকে আরো কাজ নেয়. 709 00:45:08,610 --> 00:45:10,620 এবং এটা আছে: সেগমেন্টেশন ফল্ট. 710 00:45:10,620 --> 00:45:12,340 >> তাই লক্ষ্য করা ঠিক কিভাবে দ্রুত প্রোগ্রাম সঞ্চালন করা হয়. 711 00:45:12,340 --> 00:45:14,130 আপনি যদি কিছু, সুপার ফাস্ট মুদ্রণ করছি না. 712 00:45:14,130 --> 00:45:18,770 কিন্তু আমরা এখনও এই সেগমেন্টেশন ফল্ট না কারণ কি ছিল? 713 00:45:18,770 --> 00:45:21,210 আপনি যদি মনে করেন যে সম্পর্কে কিভাবে আপনার কম্পিউটার এর মেমোরি আউট পাড়া হল, 714 00:45:21,210 --> 00:45:28,740 এই মেন করা হয়, কিন্তু এখানে এর শুধু এই ধুয়া কল দেওয়া, এবং এর যাক এই ধুয়া কল. 715 00:45:28,740 --> 00:45:34,550 এবং এখন যদি আমি আমার নন্দনতত্ব অধিকার না, শুধু এই কোরাস, কোরাস, কোরাস বলতে হবে, 716 00:45:34,550 --> 00:45:40,550 কোরাস, কোরাস, কোরাস, কোরাস, বিজ্ঞাপন nauseum, এবং ঘটনাক্রমে, কি ঘটতে যাচ্ছে? 717 00:45:40,550 --> 00:45:45,630 যদি বড় ছবি আক্ষরিক,, এই, ঠিক কি ধারণার দিক থেকে? 718 00:45:46,520 --> 00:45:48,630 স্ট্যাকের overruns গাদা. 719 00:45:48,630 --> 00:45:51,940 অথবা, খারাপ, তাহলে টেক্সট সেগমেন্ট সহ সবকিছু, পদদলিত করা, 720 00:45:51,940 --> 00:45:54,590 যা 0 সেঃ এবং 1s যে আপনার প্রোগ্রাম প্রতিনিধিত্বকারী. 721 00:45:54,590 --> 00:45:57,080 সংক্ষেপে, এই শুধু সুপার, সুপার খারাপ. 722 00:45:57,080 --> 00:45:58,830 তোমার প্রোগ্রাম নিয়ন্ত্রণ করেনি spiraled আউট. 723 00:45:58,830 --> 00:46:01,220 আপনি পথ আরো মেমরি তুলনায় আপনি উদ্দেশ্যে ব্যবহার করছেন 724 00:46:01,220 --> 00:46:03,960 সমস্ত কারণে এই একটি ক্ষেত্রে ভুল মূঢ়, 725 00:46:03,960 --> 00:46:08,040 অথবা এই ক্ষেত্রে একটি খুব ভেবেচিন্তে কাজ ফাংশন নিজেই কলিং. 726 00:46:08,040 --> 00:46:09,500 এখন, এই সব খারাপ হয় না. 727 00:46:09,500 --> 00:46:13,800 নিজেদের কলিং কার্যাবলী আসলে মহান ক্ষমতা আছে আপনি যখন এটি সঠিকভাবে ব্যবহার. 728 00:46:13,800 --> 00:46:15,800 আমি এখানে সঠিকভাবে ব্যবহৃত এটি নি. 729 00:46:15,800 --> 00:46:19,780 তাই এই হয়, কিন্তু সব খারাপ না যে আসলে আমি নিজেকে থামাতে না কলিং 730 00:46:19,780 --> 00:46:23,520 একটি মৌলিক এই প্রোগ্রামের এখানে দুর্বলতা. 731 00:46:23,520 --> 00:46:26,400 তাই যেখানে আমরা এই সমস্ত সাথে যাচ্ছে? এর সত্যিই কি ঘটছে? 732 00:46:26,400 --> 00:46:30,340 যখন আমি বর্ধন ফাংশন কল মত আমরা যারা উদাহরণ মধ্যে কাজ হয়েছে, 733 00:46:30,340 --> 00:46:33,420 1 আমি যে আমি পাস ইনের মত একটি মান আছে 734 00:46:33,420 --> 00:46:37,570 আমি 1 নম্বর একটি কপি পাস, যাতে নিম্নলিখিত ঘটবে. 735 00:46:37,570 --> 00:46:44,240 বৃদ্ধি উদাহরণ ঢোকা চলুন শুরু করা যাক, এখানে ডান উপর এই লোক. 736 00:46:44,240 --> 00:46:46,870 এখানে আসলে এর ঘটছে. 737 00:46:46,870 --> 00:46:53,400 আমি যখন কল বৃদ্ধি এবং আমি x এর মধ্যে পাস pictorially,, এখানে কি হচ্ছে এই. 738 00:46:53,400 --> 00:46:59,520 >> যদি আমি 1 এর মান এখানে সংরক্ষিত আছে এবং আমি আসলে বৃদ্ধি কল, 739 00:46:59,520 --> 00:47:04,330 যা এখন বলা হয় ধুয়া - রহমান সম্পর্কে এখানে নিক্ষেপ বন্ধ করা হয়. 740 00:47:04,330 --> 00:47:09,760 চলুন শুরু করা যাক এই বৃদ্ধি কল, এবং আমরা কি এই পরের ফাংশন হবে জানি না. 741 00:47:09,760 --> 00:47:14,840 তাই আসলে কী ঘটছে এখানে প্রধান কোথাও আমি মেমরি তাল আছে 742 00:47:14,840 --> 00:47:17,000 যে সংখ্যা 1 সংরক্ষণ করা হয়. 743 00:47:17,000 --> 00:47:19,380 আমি যখন কল বৃদ্ধি, আমি মেমরি অন্য চাঙ্গড় ব্যবহার করছি, 744 00:47:19,380 --> 00:47:21,230 কিন্তু এখন আমি 1 কপি আছে. 745 00:47:21,230 --> 00:47:26,660 যখন আমি যে মান বাড়ায়, এই পরিণত 2, 746 00:47:26,660 --> 00:47:30,560 কিন্তু তারপর কি ঘটবে হিসাবে আয় বৃদ্ধি যত তাড়াতাড়ি? 747 00:47:30,560 --> 00:47:33,630 এই মেমরি শুধুমাত্র অপারেটিং সিস্টেমের হস্তান্তর পরার ফিরে, 748 00:47:33,630 --> 00:47:37,450 যার মানে আপনি সব সম্পন্ন করেছি কিছুই দরকারী. 749 00:47:37,450 --> 00:47:43,120 1 যে প্রধান হয়েছিল আছে এখনও আসলে আছে. 750 00:47:43,120 --> 00:47:44,890 তাই যেখানে আমরা এই সাথে যাচ্ছে? 751 00:47:44,890 --> 00:47:49,770 এটি সক্রিয় যে মেমরি আপনাকে এই বাইট ব্যাক টু ব্যাক ক্রম আছে 752 00:47:49,770 --> 00:47:53,050 যে আপনি স্টাফ রাখতে পারেন এবং এটি সক্রিয় যে ইতিমধ্যে আমরা কিছু করেছি দেখা 753 00:47:53,050 --> 00:47:55,390 যে বিষয় জড়িত থাকে নির্বাণ ফিরে যাও যাও যাও ব্যাক ব্যাক ব্যাক. 754 00:47:55,390 --> 00:47:59,860 একটি স্ট্রিং সপ্তাহ 1 এবং এখন সপ্তাহ 2 উপর ভিত্তি কি? 755 00:48:00,020 --> 00:48:01,980 এটি শুধু একটি অক্ষর সংগ্রহে. 756 00:48:01,980 --> 00:48:04,310 সুতরাং এটি সক্রিয় আউট ঠিক হিসাবে আপনি মেমরি সংখ্যাগুলি লাগাতে পারেন, 757 00:48:04,310 --> 00:48:06,990 একভাবে মেমরি আপনাকে অক্ষর লাগাতে পারেন. 758 00:48:06,990 --> 00:48:10,530 এবং একবার আমরা যা মেমরির মধ্যে আরম্ভ নির্বাণ অক্ষর ফিরে যাও ফিরে যাও যাও ব্যাক ব্যাক, 759 00:48:10,530 --> 00:48:13,620 এটি সক্রিয় করে একটি লুপ বা মত একটি লুপ করার জন্য সহজ জিনিস ব্যবহার করে, 760 00:48:13,620 --> 00:48:17,170 আমরা বাঁ দিক থেকে ডানদিকে অক্ষর উপর একটি স্ট্রিং মধ্যে পুনরুক্তি করতে পারেন 761 00:48:17,170 --> 00:48:20,600 এবং বিভিন্ন অক্ষর সেগুলি সম্পূর্ণভাবে মালিশ শুরু - 762 00:48:20,600 --> 00:48:23,370 একটি বো হতে পারে, খ গ হতে পারে - 763 00:48:23,370 --> 00:48:27,780 যাতে শেষ পর্যন্ত, আমরা একটি ইংরেজি বাক্য যে আসলে অর্থ গ্রহণ করতে পারেন 764 00:48:27,780 --> 00:48:30,310 এবং একটি সময়ে যারা এক অক্ষর প্রতিটি রূপান্তর 765 00:48:30,310 --> 00:48:34,400 অধিকার আমাদের কম্পিউটার এর মাধ্যমে মেমরি হেঁটে যাও আসলে এনক্রিপ্ট বাকি. 766 00:48:34,400 --> 00:48:35,810 তাই আমাদের এখানে এর পাঁচ মিনিট ব্রেক নেয়া যাক, 767 00:48:35,810 --> 00:48:40,730 এবং যখন আমরা ফিরে আসুন, আমরা তথ্য scrambling এই প্রক্রিয়া শুরু করব. 768 00:48:42,020 --> 00:48:43,520 >> ঠিক আছে. 769 00:48:43,520 --> 00:48:48,070 আগে কিছু ক্রিপ্টো মধ্যে আকর্ষণীয় এবং আমরা এইসব জিনিস বলা অ্যারে, 770 00:48:48,070 --> 00:48:51,470 সম্পর্কে কোন প্রশ্ন জন্য বিরতি দেওয়া কারণ আমি মনে সত্যিই আমি ধরনের বলার 771 00:48:51,470 --> 00:48:54,080 ঐ বিষয়ের কিছু. সুতরাং এর ঠিক করা যাক এখন যদি আমরা করতে পারেন. 772 00:48:54,080 --> 00:48:58,700 আমরা শুধু ফিরে মান সম্পর্কে বললাম, আমরা আর্গুমেন্ট সম্পর্কে বললাম, 773 00:48:58,700 --> 00:49:03,250 এবং আমরা এই ধারণা সম্পর্কে বললাম, যা আমরা ফিরে যাও সপ্তাহের মধ্যে আসবো, 774 00:49:03,250 --> 00:49:08,720 একটি এইসব স্তুপীকৃত ট্রে আভা মেমরি হিসাবে দেখছেন, তাই কথা বলতে, 775 00:49:08,720 --> 00:49:12,660 উপর থেকে নিচ পর্যন্ত, যেমন প্রতিটি ট্রে যে স্ট্যাক করা পরার 776 00:49:12,660 --> 00:49:16,530 একটি ফাংশান বর্তমানে বলা হচ্ছে প্রতিনিধিত্ব করে. 777 00:49:17,900 --> 00:49:20,260 কোন প্রশ্ন? 778 00:49:20,260 --> 00:49:22,640 আমাকে এখানে একটি প্রশ্ন জিজ্ঞাসা করুন. 779 00:49:22,640 --> 00:49:27,890 আমাকে কি এটা আমাদের আগে প্রশ্ন এ কিছু আগে ছিল এই ফিরে অজটিল 780 00:49:27,890 --> 00:49:35,570 যে বৃদ্ধি খোলা লঘুবন্ধনী, int-নম্বর আছে, লঘুবন্ধনী বন্ধ - 781 00:49:35,570 --> 00:49:39,110 না কি int-নম্বর প্রতিনিধিত্ব করেন? 782 00:49:39,110 --> 00:49:42,790 [ছাত্রদের] একটি যুক্তি. >> একটি যুক্তি. ঠিক আছে. কিন্তু কি একটা যুক্তি? 783 00:49:42,790 --> 00:49:46,370 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> কি যে? >> [ছাত্রদের] কিছু যে আপনি পাস ইন 784 00:49:46,370 --> 00:49:49,940 ঠিক আছে, তাই কিছু যে আপনি পাস ইন এবং আরো সাধারণভাবে, এটি শুধু ইনপুট. 785 00:49:49,940 --> 00:49:52,450 আপনি যদি একটি জীবনের ফাংশন এবং যে ফাংশন এর উদ্দেশ্য লেখা ছিল 786 00:49:52,450 --> 00:49:55,770 যাও একটু ভিন্ন প্রত্যেক সময় আপনি এটি ব্যবহার করতে কিছু হয়, 787 00:49:55,770 --> 00:50:00,110 তাহলে একমাত্র উপায় জন্য যে সত্যিই ঘটতে ইনপুট সঙ্গে এটি প্রদান করা হবে বলে মনে হচ্ছে 788 00:50:00,110 --> 00:50:03,510 যাতে তা যে ইনপুট সঙ্গে কিছু সময় বিভিন্ন প্রতিটি করতে পারেন. 789 00:50:03,510 --> 00:50:06,650 >> তাহলে আপনি দুটি জিনিস যখন একটি ফাংশন ইনপুট নেয় নির্দিষ্ট করতে হবে. 790 00:50:06,650 --> 00:50:09,590 আপনি নামের যে আপনি যে ইনপুট দিতে চান নির্দিষ্ট করতে হবে 791 00:50:09,590 --> 00:50:12,700 কেবল আপনার নিজের সুবিধার জন্য যাতে আপনি তা উল্লেখ করতে পারেন 792 00:50:12,700 --> 00:50:16,540 ফাংশানের যে আপনি নিজে করুন, লেখা হিসাবে আমি 32 লাইন এখানে কি হয়. 793 00:50:16,540 --> 00:50:20,800 কিন্তু আপনাকে তার টাইপ কারণ সি একটি প্রোগ্রামিং ভাষা নির্দিষ্ট করতে হবে 794 00:50:20,800 --> 00:50:25,940 যে শুধু প্রয়োজন যে আপনি যদি একটি পরিবর্তনশীল করতে চান, আপনি কম্পিউটার কি তথ্য টাইপ এটা বলা আছে, 795 00:50:25,940 --> 00:50:30,200 বৃহৎ অংশ যাতে তা জানে কতগুলি বিট যে পরিবর্তনশীল জন্য বরাদ্দ করা যাও 796 00:50:30,200 --> 00:50:33,020 কারণ এটি হতে পারে 6 - দুঃখিত, এটি 6 করা সম্ভব হবে না. 797 00:50:33,020 --> 00:50:37,080 এটা 16 হতে পারে, এটি 8 হতে পারেন, এটি 32, এমনকি 64 হতে পারে, 798 00:50:37,080 --> 00:50:39,130 কিন্তু কম্পিউটার জানা প্রয়োজন. 799 00:50:39,130 --> 00:50:43,180 এখন, বাম দিকে int-বিপরীতে দ্বারা কি, প্রতিনিধিত্ব করে? 800 00:50:46,350 --> 00:50:48,850 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] >> কি যে? >> [ছাত্রদের] ফাংশন প্রকার. 801 00:50:48,850 --> 00:50:53,610 একটি ফাংশন টাইপ এবং, আরো নির্দিষ্টভাবে, এর উত্পাদনের টাইপ. রাইট. 802 00:50:53,610 --> 00:50:57,380 সুতরাং প্রথম বন্ধনী জিনিস উপস্থাপন করে যেহেতু তার ইনপুট, যদি থাকে, 803 00:50:57,380 --> 00:50:59,660 বাম জিনিস থেকে আউটপুট তার প্রতিনিধিত্ব করে. 804 00:50:59,660 --> 00:51:03,530 এবং এই ক্ষেত্রে, দৃশ্যত বৃদ্ধি কোন int ফেরৎ, 805 00:51:03,530 --> 00:51:07,690 এবং তাই int-এই ফাংশন রিটার্ন টাইপ. 806 00:51:07,690 --> 00:51:09,340 কি মানে ফিরে যাও? 807 00:51:09,340 --> 00:51:15,090 আক্ষরিক, আপনি ফিরে অভিব্যক্তি ব্যবহার এবং তারপরে যদি ফিরে আপনি কি হয় 808 00:51:15,090 --> 00:51:18,600 অভিব্যক্তি ডানদিকে একটি পূর্ণসংখ্যা, 809 00:51:18,600 --> 00:51:21,660 তারপর যে কি আমরা অঙ্গীকার করেছি প্রকৃতপক্ষে সঙ্গে সামঞ্জস্যপূর্ণ. 810 00:51:21,660 --> 00:51:26,410 হ্যালো, বিশ্ব - - আপনি ভালো কিছু করতে না পারে কারণ যে একটি স্ট্রিং. 811 00:51:26,410 --> 00:51:28,860 >> একথাও ঠিক যে, এটি একটি পূর্ণসংখ্যা হয় না. 812 00:51:28,860 --> 00:51:33,140 তাই সংক্ষিপ্ত, বোঝা আমাদের সত্যিই হয়, প্রোগ্রামার, নির্দিষ্ট করা 813 00:51:33,140 --> 00:51:37,770 আমরা কী করছি এবং ফিরে যাও হিসাবে তারপর আসলে এটা সম্পর্কে ফিরে যান. 814 00:51:37,770 --> 00:51:43,440 এখানে প্রসঙ্গ এখন মনে হয় যে আপনার কম্পিউটার এর একটি গিগাবাইট মেমরি, 2 গিগাবাইট - 815 00:51:43,440 --> 00:51:45,920 যাই হোক না কেন - হয়তো এটা আরো হয়তো, এটা কম, 816 00:51:45,920 --> 00:51:49,050 কিন্তু কম্পিউটার বিভিন্ন বিভাগে তার হিসাবে এটি দেখে. 817 00:51:49,050 --> 00:51:51,200 কিছু যায় নিচে আছে, অন্য কিছু যায় সেখানে আপ, 818 00:51:51,200 --> 00:51:54,290 বিভিন্ন উপাদান মধ্যম যায়, এবং আজ আমরা গল্প বলছি শুরু, 819 00:51:54,290 --> 00:51:56,340 কিন্তু আমরা এই সময়ের যাও ফিরে পাবেন. 820 00:51:56,340 --> 00:51:59,980 এখন জন্য, মেমরি শুধুমাত্র টুকরা আমরা সত্যিই যত্নশীল হয় টেক্সট সেগমেন্ট 821 00:51:59,980 --> 00:52:03,360 কারণ ঠিক সেই 0 সেঃ এবং 1s যে ঝনঝন outputted উপস্থাপন করেনি. 822 00:52:03,360 --> 00:52:06,050 সুতরাং যখন আপনি a.out ভালো কীবোর্ড এ একটি কমান্ড ব্যবহার করুন 823 00:52:06,050 --> 00:52:09,110 ডবল বা আপনি উইন্ডোজ বা ম্যাক অপারেটিং সিস্টেম একটি আইকন ক্লিক করুন, 824 00:52:09,110 --> 00:52:11,880 আপনার প্রোগ্রাম থেকে আপনার হার্ড ড্রাইভে উপস্থিত RAM-র মধ্যে লোড করা হয় 825 00:52:11,880 --> 00:52:16,330 এবং এটি আপনার কম্পিউটারের RAM-র শীর্ষে, তাই কথা বলতে plopped এর. 826 00:52:16,330 --> 00:52:20,450 এদিকে, হিসাবে আপনার প্রোগ্রাম আরম্ভ চলমান এবং প্রধান নামক পরার 827 00:52:20,450 --> 00:52:23,640 আপনি প্রোগ্রাম লেখেন, বা প্রোগ্রাম মাইক্রোসফট বা আপেল লিখেছেন, 828 00:52:23,640 --> 00:52:27,860 নিজের স্থানীয় ভেরিয়েবল কোনো আপনার কম্পিউটার এর মেমরি নীচে শেষ আপ ডাউন আছে. 829 00:52:27,860 --> 00:52:33,230 কিন্তু প্রধান ফাংশন কল অন্য যে নিজেই ভেরিয়েবল অথবা যদি আর্গুমেন্ট আছে, তারা এটি উপরে শেষ. 830 00:52:33,230 --> 00:52:36,680 এবং যদি কিছু ফাংশন কল যে, তারা এটা উপরের শেষ, উপরে উপরে,. 831 00:52:36,680 --> 00:52:41,460 >> এবং শুধুমাত্র একবার একটি ফাংশন নির্বাহ করার জন্য এটা করা হয় ট্রে স্ট্যাকের মধ্যে, যাতে কোনো কথা বলতে, 832 00:52:41,460 --> 00:52:43,240 নিম্ন এবং নিম্ন পেতে শুরু. 833 00:52:43,240 --> 00:52:48,250 এবং এই কি তাহলে সংক্ষেপে মধ্যে,, ব্যাখ্যা দিয়েছে কেন যখন আপনি ঘনক্ষেত্র কল 834 00:52:48,250 --> 00:52:51,550 অথবা আপনি বৃদ্ধি কল, মান একটি কপি মধ্যে পার করছি. 835 00:52:51,550 --> 00:52:55,520 এবং কি যে pictorially মানে হল যে আপনি আক্ষরিক সংখ্যা 1 করছি লেখা 836 00:52:55,520 --> 00:53:00,460 মেমরি আরেকটি অংশ, পরিবর্তন যে 1 বৃদ্ধি ক্ষেত্রে যাও 2 837 00:53:00,460 --> 00:53:04,820 অথবা ঘনক্ষেত্র ক্ষেত্রে একটি 8 এবং তারপরে যে মেমরি দূরে নিক্ষেপ 838 00:53:04,820 --> 00:53:09,140 যত দ্রুত বৃদ্ধি বা ঘনক্ষেত্র ফাংশন আয়. প্রশ্ন. 839 00:53:09,140 --> 00:53:12,900 [ছাত্রদের] কোথায় গ্লোবাল ভেরিয়েবল সংরক্ষণ করা হয়? 840 00:53:12,900 --> 00:53:18,100 গ্লোবাল ভেরিয়েবল কি বর্তমানে বলা সক্রিয়া তথ্য বা uninitialized তথ্য সংরক্ষিত হয়, 841 00:53:18,100 --> 00:53:21,920 পার্থক্য হচ্ছে যদি আপনি একটি বিশ্বব্যাপী পরিবর্তনশীল আছে এবং আপনি তা অবিলম্বে অর্পণ মান 842 00:53:21,920 --> 00:53:24,640 সাইন সমান, এটা আছে শীর্ষে সমাপ্তি, 843 00:53:24,640 --> 00:53:29,200 এবং আপনি যদি শুধুমাত্র বলতে int x; কোন মান, এটা শেষ পর্যন্ত উপস্থিত RAM-র মধ্যে সামান্য কম 844 00:53:29,200 --> 00:53:31,710 সহজভাবে দ্বারা কনভেনশন. 845 00:53:31,710 --> 00:53:34,940 অন্য প্রশ্ন? ঠিক আছে. 846 00:53:34,940 --> 00:53:37,340 তাই এই ছবি হিসাবে আমরা ফিরে পেতে আরো শক্তিশালী হবে 847 00:53:37,340 --> 00:53:39,170 সঙ্গে সঙ্গে কম্পিউটার কি আমরা করতে পারি, 848 00:53:39,170 --> 00:53:42,720 কিন্তু এখন জন্য, এর একটি ক্রিপ্টোগ্রাফি সংক্ষিপ্ত ভূমিকা আছে যাক, 849 00:53:42,720 --> 00:53:46,080 ক্রিপ্টোগ্রাফি একটি নির্দিষ্ট ধরনের যে বিশ্বের সকল সমস্যার সমাধান না না 850 00:53:46,080 --> 00:53:47,720 কিন্তু তাদের মধ্যে কিছু আছে সমাধানের জন্য. 851 00:53:47,720 --> 00:53:51,700 এখানে এই ক্ষেত্রে, আমরা কিছু বলা গোপন-কি ক্রিপ্টোগ্রাফি আছে. 852 00:53:51,700 --> 00:53:56,410 গোপন-কি ক্রিপ্টোগ্রাফি, নামের প্রস্তাবক হিসাবে, একটি গোপন নিরাপত্তা থেকে আহরিত. 853 00:53:56,410 --> 00:54:00,690 >> উদাহরণস্বরূপ, যদি আপনি গ্রেড স্কুলে ফিরে ছিল এবং আপনি একটু গোপন প্রেমপত্র ক্ষণস্থায়ী ছিল 854 00:54:00,690 --> 00:54:04,850 ছেলে বা মেয়ে আপনাকে নিষ্পেষণ, যদি আপনি শ্রোতার মাধ্যমে যে নোট পাস চেয়েছিলেন ছিল, 855 00:54:04,850 --> 00:54:08,380 আপনি সম্ভবত যেমন ইংরেজিতে একটি নোট বা কিছু লিখতে যাই হোক না কেন আপনার স্থানীয় ভাষা হয় না. 856 00:54:08,380 --> 00:54:13,340 বরং, আপনি এটি এনক্রিপ্ট অথবা আপনি শুধুমাত্র একটি টেক্সট মেসেজ পাঠাতে তাদের এইসব দিন পারে. 857 00:54:13,340 --> 00:54:15,460 কিন্তু আসলে আপনি পাস শ্রেণীকক্ষ জুড়ে একটি নোট তাদের পারে. 858 00:54:15,460 --> 00:54:18,700 এবং এই না নিরাপদভাবে এমনভাবে যে আপনার বন্ধু এবং শিক্ষক 859 00:54:18,700 --> 00:54:22,650 না কি আপনি লেখার না জানি, আপনি একটি মোটামুটি সহজ এলগরিদম সঙ্গে আসা পর্যন্ত হতে পারে, 860 00:54:22,650 --> 00:54:25,920 যদিও তরুণ হতে পারেন, শুধু শব্দের হামাগুড়ি দিয়া আরোহণ. 861 00:54:25,920 --> 00:54:28,130 তাই এর পরিবর্তে একটি লেখার আপনি বো লিখতে পারে, 862 00:54:28,130 --> 00:54:30,220 পরিবর্তে আপনি খ গ লিখতে পারে, 863 00:54:30,220 --> 00:54:32,140 পরিবর্তে গ ঘ আপনি লিখুন, এবং তাই ঘোষণা হতে পারে. 864 00:54:32,140 --> 00:54:34,360 অথবা আপনি আরো পরিশীলিত অনুবাদ সাথে আসতে পারেন 865 00:54:34,360 --> 00:54:36,720 চিঠি বিভিন্ন অক্ষর. 866 00:54:36,720 --> 00:54:39,740 কিন্তু ধরা হয় যাকে আপনি এই নোট প্রেরণ করছি ছেলে বা মেয়ে 867 00:54:39,740 --> 00:54:45,020 প্রয়োজন কিছু, যা কি, সম্ভবত আপনি জানেন? >> [ছাত্রদের] আপনি কী প্রেরণ করছেন. 868 00:54:45,020 --> 00:54:49,720 কি একটি এবং এর বো এর এবং এর গ এবং সম্মানের গুলি মধ্যে যে ম্যাপিং মত কি আপনার গোপন করা হয়,. 869 00:54:49,720 --> 00:54:54,650 হয় এটা অক্ষর প্রতিটি 1 থেকে একটি বো, বো যাও যাও গ যেতে যোগ? 870 00:54:54,650 --> 00:54:56,670 এটা যে তুলনায় আরো জটিল? 871 00:54:56,670 --> 00:55:01,540 >> যাতে আপনি এবং আপনার ভালোবাসার এই গোপন তথ্য আছে প্রয়োজন, 872 00:55:01,540 --> 00:55:03,190 কিন্তু এখানে একটি নিয়মিত 22 ধরনের আছে. 873 00:55:03,190 --> 00:55:06,830 যদি এই হয় খুব প্রথমবার বর্গ মাধ্যমে এই প্রেমপত্র পাঠানোর করছি, 874 00:55:06,830 --> 00:55:10,720 কিভাবে যে ছেলে বা মেয়ে না কি এমন হয় গোপন জানা যাচ্ছে? 875 00:55:10,720 --> 00:55:13,930 তাই গোপন চাবি ক্রিপ্টো বিশ্বের সকল সমস্যার সমাধানের জন্য না, 876 00:55:13,930 --> 00:55:16,320 এবং এর একটা সম্পর্ক আসলে এখানে যে আমরা আসা সেমেস্ত্র এর শেষের দিকে ফিরে পাবেন. 877 00:55:16,320 --> 00:55:25,110 একইভাবে আমাদের অধিকাংশ জানি যে কেউ ইনস্ট্যান্সের জন্য কাজ করে, Amazon.com এ, না, 878 00:55:25,110 --> 00:55:28,190 এবং সম্ভবত এখনো আমাদের অনেক Amazon.com আছে পণ্যদ্রব্য কেনা, 879 00:55:28,190 --> 00:55:31,990 এবং আমরা যে এই ই কমার্স লেনদেন নিরাপদ শেখানো অনুমান করছি. 880 00:55:31,990 --> 00:55:36,470 URL-এ সম্ভবত বলছেন এটির মধ্যে দিয়ে https, এর হয়তো সেখানে একটি নিরীহ সামান্য তালা আইকন কোথাও, 881 00:55:36,470 --> 00:55:39,930 ক্রিপ্টোগ্রাফি কিছু আপনার ক্রেডিট কার্ডের তথ্য সুরক্ষিত আছে 882 00:55:39,930 --> 00:55:42,160 মধ্যে আপনি এবং Amazon.com. 883 00:55:42,160 --> 00:55:45,430 এবং এখনো যদি ক্রিপ্টোগ্রাফি জড়িত থাকে কিছু গোপন বুদ্ধিমান 884 00:55:45,430 --> 00:55:48,620 এবং এখনো আমি জানি না এবং ইসলাম কাউকে না আমি অবশ্যই ব্যবস্থা করেছি গোপন কোন ধরনের না 885 00:55:48,620 --> 00:55:52,710 ইসলাম কারও সাথে, কিভাবে আমার কম্পিউটারে বা আমার ব্রাউজার এই করছেন? 886 00:55:52,710 --> 00:55:55,720 এটি সক্রিয় আউট সম্পূর্ণভাবে আছে ক্রিপ্টোগ্রাফি অন্যান্য ধরনের যে যে সমস্যার সমাধানের জন্য. 887 00:55:55,720 --> 00:55:57,670 কিন্তু আজকের জন্য, আমরা একটি সহজ মনোনিবেশ করব 888 00:55:57,670 --> 00:56:00,290 যেখানে আপনি কিছু জানেন গোপন আগাম ব্যবস্থা করতে পারে 889 00:56:00,290 --> 00:56:03,760 ভালো +1 করুন অথবা এর একটি এবং খ এর মধ্যে কিছু ম্যাপিং. 890 00:56:03,760 --> 00:56:05,840 এবং সাধারণত ক্রিপ্টোগ্রাফি প্রক্রিয়ার এই যায়. 891 00:56:05,840 --> 00:56:08,620 আপনি কিছু প্লেইন টেক্সট, বাম এখানে ফোটানো আছে, 892 00:56:08,620 --> 00:56:12,930 আপনি এলগরিদম বা পদ্ধতির কিছু মাধ্যমে এনক্রিপ্ট করার জন্য এটি চালানোর জন্য - 893 00:56:12,930 --> 00:56:15,100 হয়তো যে শুধু একটি পরিণত বো, বো হয়ে গ - 894 00:56:15,100 --> 00:56:17,490 এবং তারপর আপনি ciphertext সঙ্গে শেষ. 895 00:56:17,490 --> 00:56:20,380 ইতিমধ্যে একবার, আপনার ভালোবাসার এই গোপন নোট পায়, 896 00:56:20,380 --> 00:56:24,200 সে আছে তারপর সাধারণত দ্বারা ডিক্রিপ্ট এটি যে অ্যালগরিদম reversing 897 00:56:24,200 --> 00:56:27,190 সুতরাং হিসাবে প্লেইন টেক্সট ফিরে পেতে. 898 00:56:27,190 --> 00:56:28,960 এই প্রকৃত সমগ্র আদর্শের আছে. 899 00:56:28,960 --> 00:56:31,680 >> উদাহরণস্বরূপ, এই সামান্য একটি গোপন সঙ্কেতমোচক রিং, 900 00:56:31,680 --> 00:56:35,110 এবং এই অর্থে যে এখানে আছে দুটি dials মধ্যে একটি আংটি. 901 00:56:35,110 --> 00:56:38,490 এই জিনিস বাইরে পরিধি অন করুন, Z মাধ্যমে একটি চিঠি আছে, 902 00:56:38,490 --> 00:56:40,340 যদিও তারা র্যান্ডম ক্রম করছি, 903 00:56:40,340 --> 00:56:42,880 এবং ভেতরের, এর আসলে সেখানে কিছু সংখ্যা 904 00:56:42,880 --> 00:56:46,620 যেমন যে এই রিং সঙ্গে আপনি বাইরে ধরনের কিন্তু চালু করতে পারবেন না ভিতর 905 00:56:46,620 --> 00:56:49,140 যাতে চিঠি সঙ্গে রেখায় নম্বর আপ. 906 00:56:49,140 --> 00:56:53,020 একটি সিনেমা নামক একটি ক্রিসমাস গল্প থেকে, আপনি যে সামান্য Ralphie দেখতে পাবেন 907 00:56:53,020 --> 00:56:58,000 ছিল তা জিনিসটা কি লিটল অনাথ অ্যানি এর গোপন বার্তা ছিল তাকে আগ্রহান্বিত 908 00:56:58,000 --> 00:57:02,570 যে সাংখ্যিক বার্তা আকারে হয়েছে বিশ্বকে একটি খাদ্যশস্য বাক্স উপর, আমি মনে করি, 909 00:57:02,570 --> 00:57:07,220 এবং আপনি কি সব সামান্য কার্ড খাদ্যশস্য বাক্সে পরিপ্রেক্ষিতে যে স্তূপাকার করা ছিল, 910 00:57:07,220 --> 00:57:09,770 আপনি তাদের মেইল ​​ছিল, আপনি গোপন সঙ্কেতমোচক রিং ফিরে পেতে ছিল 911 00:57:09,770 --> 00:57:13,910 যাতে অবশেষে আপনি চিন্তা করতে পারেন কি ম্যাপিং অক্ষর এবং সংখ্যার মধ্যে 912 00:57:13,910 --> 00:57:15,550 বা চিঠি এবং চিঠি. 913 00:57:15,550 --> 00:57:19,520 কিভাবে একটি কম্পিউটার আমরা রূপায়ণকারী বা ভালো জিনিস প্রতিনিধিত্বমূলক যেতে পারবেন? 914 00:57:19,520 --> 00:57:22,560 আমরা আমাদের নিজেদের মত প্রকাশের একটি সামান্য flexibly আরো একটি উপায় প্রয়োজন 915 00:57:22,560 --> 00:57:25,080 তুলনায় আমাদের ভেরিয়েবল পর্যন্ত করে নিতে পারে. 916 00:57:25,080 --> 00:57:29,000 আমরা ints করেছি ছিল, আমরা টুকিটাকি কাজ করেছি ছিল, আমরা floats এবং টেনিস এবং কয়েক অন্যদের ছিল করেছি, 917 00:57:29,000 --> 00:57:34,200 কিন্তু যারা আছেন মেমরি পৃথক টুকরা যা আমাদের জিনিষ প্রকাশ করে সত্যিই অনুমতি দেয় না 918 00:57:34,200 --> 00:57:36,440 শব্দ এবং বাক্য ও বাক্যাংশ. 919 00:57:36,440 --> 00:57:38,630 বস্তুত, আমরা বিষয়গুলো নামক স্ট্রিং করেছি, 920 00:57:38,630 --> 00:57:42,660 কিন্তু আমরা এই অঙ্গীকার যে আসলেই ঠিক CS50 লাইব্রেরি একটি সরলীকরণ 921 00:57:42,660 --> 00:57:45,540 যে আমরা ফিরে ছুলা উদ্দেশ্যে করছেন. 922 00:57:45,540 --> 00:57:47,500 তাই আসুন এখানে যে কি শুরু. 923 00:57:47,500 --> 00:57:49,840 আমাকে এগিয়ে যান এবং একটি ফাইল খুলুন - 924 00:57:49,840 --> 00:57:54,100 ফাইলগুলির সমস্ত উপলব্ধ, স্বাভাবিক হিসাবে, অনলাইন - তথাকথিত array.c 925 00:57:54,100 --> 00:57:58,960 একটি সমস্যা সম্পর্কহীন স্ট্রিং যাও কিন্তু সমাধানের যে একটি ছবি এখানে রঙে 926 00:57:58,960 --> 00:58:01,520 কিভাবে আমরা কিছু নামক একটি অ্যারে ব্যবহার করতে পারে. 927 00:58:01,520 --> 00:58:04,050 >> একটি অ্যারের একটি ডাটা টাইপ. 928 00:58:04,050 --> 00:58:10,730 এটা পরিবর্তনশীল একটি প্রকারের টাইপ একাধিক ক্ষুদ্রতর তথ্য ধরনের এটি ভেতরে আছে 929 00:58:10,730 --> 00:58:12,680 ফিরে যাও যাও যাও ব্যাক ব্যাক ব্যাক. 930 00:58:12,680 --> 00:58:16,980 সুতরাং উদাহরণস্বরূপ, যদি আমরা একটু প্রোগ্রাম যে দেয় আপনার ব্যঙ্গ গড় আপনি লিখতে চেয়েছিলেন 931 00:58:16,980 --> 00:58:19,780 যে জন্য 50 2 quizzes আছে ভালো একটা কোর্স, 932 00:58:19,780 --> 00:58:23,450 আপনি এই প্রোগ্রাম এমনকি গত সপ্তাহে এর কিছু উপাদানের উপর ভিত্তি করে খুব সহজেই লিখতে পারেন 933 00:58:23,450 --> 00:58:28,830 দ্বারা GetInt এবং ভেরিয়েবল কয়েক ব্যবহার: int-quiz1, int-quiz2. 934 00:58:28,830 --> 00:58:30,550 এবং এটি বেশ সহজবোধ্য. 935 00:58:30,550 --> 00:58:33,500 এটা হয়তো এর 10, সর্বোচ্চ 20 লাইন কোড একটি প্রোগ্রাম বাস্তবায়ন 936 00:58:33,500 --> 00:58:38,940 যে 2 ব্যঙ্গ স্কোর ব্যবহারকারী তারপর জিজ্ঞেস করল এবং তাদের গড় নির্ণয় 937 00:58:38,940 --> 00:58:42,020 দ্বারা পরিতিচিতে একসঙ্গে, 2 দ্বারা বিভক্ত করা, এবং তারপর ফলাফল মুদ্রণ. 938 00:58:42,020 --> 00:58:46,400 আমরা সম্ভবত না যে কিছু সংখ্যক মিনিট পরে চমত্কার নির্দ্ধিধায় এখন পারে. 939 00:58:46,400 --> 00:58:49,450 কিন্তু সমস্যা হল অনুমান ছিল যে 50 ক্যুইজ 3 বা 4. 940 00:58:49,450 --> 00:58:52,830 ধরুন আপনি যে একটি শ্রেণী যে সাপ্তাহিক ছিল quizzes জন্য একই প্রোগ্রাম ব্যবহার করতে চেয়েছিল. 941 00:58:52,830 --> 00:58:55,100 একটি বর্গ যে সাপ্তাহিক ক্যুইজ সম্পর্কে চিন্তা করেনি. 942 00:58:55,100 --> 00:58:58,840 যদি একটি সেমিস্টারে মধ্যে 16 বা তাই সপ্তাহের আছে এখন, আপনি 16 ভেরিয়েবল আছে: 943 00:58:58,840 --> 00:59:03,030 int-quiz1, int-quiz2, int-quiz3, int-quiz4. 944 00:59:03,030 --> 00:59:06,870 যত তাড়াতাড়ি আপনি শুরু এই অতিরেক এইজন্য, এই অনুলিপি এবং কোড পেস্ট, 945 00:59:06,870 --> 00:59:09,810 এটা আপনি চান একটি ভাল উপায় ছিল না শুরু করা উচিত. 946 00:59:09,810 --> 00:59:13,610 এবং সৌভাগ্যক্রমে অ্যারে এর কারণ, আছে. তাই এর এই না দেওয়া. 947 00:59:13,610 --> 00:59:16,700 প্রথমত, আমাকে একটি খুব সহজ বিষয় যে আমরা এ পর্যন্ত ব্যবহার করেছি না পরিচয় করিয়ে, 948 00:59:16,700 --> 00:59:18,820 কিন্তু আপনি কোড তা মাঝে মাঝে দেখতে পাবেন. 949 00:59:18,820 --> 00:59:21,270 >> এটা কি সাধারণভাবে এর নামক একটি ধ্রুবক. 950 00:59:21,270 --> 00:59:24,410 এটা অর্থে যে এই মান পরিবর্তন না একটি ধ্রুবক. 951 00:59:24,410 --> 00:59:26,450 মানুষের রীতিনীতি যখন একটি ধ্রুবক তৈরি 952 00:59:26,450 --> 00:59:30,420 সব বড় হাতের অক্ষরে ঠিক তাই যে সত্যিই এটি আপনার কোড মধ্যে ঘোরা আউট ব্যবহার করা হয়, 953 00:59:30,420 --> 00:59:34,270 # এবং বিশেষ অভিব্যক্তি যে আপনি সি ব্যবহার সংজ্ঞায়িত করা হয়. 954 00:59:34,270 --> 00:59:39,970 সুতরাং আমরা বলতে #, তারপর একটি স্থান নির্ধারণ করুন, তারপর আপনি যে শব্দ ধ্রুবক এর নামের জন্য ব্যবহার করতে চান 955 00:59:39,970 --> 00:59:41,730 এবং তারপর ধ্রুবক মান. 956 00:59:41,730 --> 00:59:44,710 এই একটি পরিবর্তনশীল কিছু বরাদ্দ থেকে বিভিন্ন বিজ্ঞপ্তি. 957 00:59:44,710 --> 00:59:46,430 সাইন কোন উল্লেখ আছে, কোন সেমিকোলন আছে. 958 00:59:46,430 --> 00:59:49,140 এটি কি একটি preprocessor ডিরেক্টিভের হিসাবে সাধারণত এর পরিচিত, 959 00:59:49,140 --> 00:59:50,840 অন্য যে সময় আছে আরো. 960 00:59:50,840 --> 00:59:56,350 এখন, এই একটি অপরিবর্তনীয় মান নামক কুইজ সৃষ্টি 961 00:59:56,350 --> 00:59:58,290 যার প্রকৃত সাংখ্যিক মান 2. 962 00:59:58,290 --> 01:00:02,180 সুতরাং আপনি যে কোন জায়গায় দেখতে কুইজ, কুইজ এই ফাইলটি জুড়ে, কুইজ, 963 01:00:02,180 --> 01:00:04,230 যে শুধু সংখ্যা 2. 964 01:00:04,230 --> 01:00:06,550 যদি আমি প্রধান এ এখন দেখুন, আমি কিভাবে এই কাজ করে দেখুন. 965 01:00:06,550 --> 01:00:09,770 প্রথম মনে একটু রহস্যপূর্ণ, কিন্তু এটা সপ্তাহ 1 থেকে সকল উপাদান. 966 01:00:09,770 --> 01:00:12,210 বাংলাদেশের জন্য ব্যবহারকারীকে জিজ্ঞাসা করুন. কিভাবে আমরা এই কাজ করে? 967 01:00:12,210 --> 01:00:17,350 লাইন 22 ইঞ্চি - এই সত্যিই সরস অংশ - আমি একটি float ঘোষণা 968 01:00:17,350 --> 01:00:23,240 কিন্তু আছে. কেবলমাত্র একটি float না আমি, বরং প্রকাশক ফ্লোটিং পয়েন্ট মান একটি অ্যারের করছি,. 969 01:00:23,240 --> 01:00:27,700 যে পরিবর্তনশীল করা হবে নামক বাংলাদেশের, যাও হিসাবে এখানে উহ্য যাচ্ছে, 970 01:00:27,700 --> 01:00:31,420 কিন্তু তারপর নতুন বাক্য গঠন শুধুমাত্র টুকরা এই বর্গাকার বন্ধনী. 971 01:00:31,420 --> 01:00:37,280 যে আমি বাংলাদেশের float এবং তারপর খোলা বন্ধনী এবং তারপর একটি নম্বর বলেন করেছি - 972 01:00:37,280 --> 01:00:40,980 যদি এই একটি ধ্রুবক এই মাত্র আমরা এই কি ভালো হয় বিজ্ঞপ্তি - 973 01:00:40,980 --> 01:00:46,840 এর মানে হল, "আরে কম্পিউটার, সম্পর্কে 2 floats দিতে এবং এর সম্মিলিতভাবে তাদের বাংলাদেশের কল দিন." 974 01:00:46,840 --> 01:00:51,780 >> এই একটি ভালো আরো অনেক ক্লান্তিকর প্রক্রিয়া বিপরীতে হয়: float grade1; 975 01:00:51,780 --> 01:00:54,580 grade2 ভাসা; এবং তাই ঘোষণা. 976 01:00:54,580 --> 01:00:58,310 আমি একটি অ্যারের আমাদের এই ধারণা প্রয়োগ করা যাবে কিন্তু অনেক কম অগোছালভাবে, 977 01:00:58,310 --> 01:01:04,560 এমন যে আমরা কোড 1 লাইন লিখুন পরিবর্তে, বলতে পারেন, একটি 16 সপ্তাহ সেমেস্ত্র জন্য 16. 978 01:01:04,560 --> 01:01:09,060 আমি হার্ড কোড 2 বার করতে চান না, কারণ আপনি যদি এই বিষয়ে এখন মনে হয় যুক্তি, 979 01:01:09,060 --> 01:01:12,560 পরের বছর ঠাউর 3 CS50 পরিবর্তন পরিবর্তে ক্যুইজ 980 01:01:12,560 --> 01:01:15,010 এবং আমি এখানে 2 নম্বর ছিল, আমি এখানে 2 নম্বর ছিল, 981 01:01:15,010 --> 01:01:17,210 আমি এখানে 2 নম্বর ছিল, সংখ্যা 2 এখানে. 982 01:01:17,210 --> 01:01:19,890 তা খুব ক্লান্তিকর এবং খুব সহজ পর্যন্ত যৌনসঙ্গম 983 01:01:19,890 --> 01:01:26,550 এবং ঘটনাক্রমে 3 যাও 1 মান পরিবর্তন এবং কিছু 2 অন্যান্য মান মিস্. 984 01:01:26,550 --> 01:01:30,660 তাই আমি পরিবর্তে বিমূর্ত এই চলে যাচ্ছে এবং এই ধ্রুবক যে ব্যবহার করছি, 985 01:01:30,660 --> 01:01:32,520 হিসাবে তার নাম পরিবর্তনের প্রস্তাব দেওয়া হয়, না. 986 01:01:32,520 --> 01:01:35,870 এবং এখন কোন ব্যাপার আছে কিনা আমরা বিভিন্ন এই বছর বা পরের ক্যুইজ 987 01:01:35,870 --> 01:01:39,380 আমি এক জায়গায় এটা পরিবর্তন এখানে শীর্ষে আছে. 988 01:01:39,380 --> 01:01:41,230 তাই যে সমস্ত একটি ধ্রুবক হয়. 989 01:01:41,230 --> 01:01:47,100 এদিকে, নতুন ধারণাগত বৈশিষ্ট্য হল একটি অ্যারের যে. 990 01:01:47,100 --> 01:01:55,030 সুতরাং বর্গাকার বন্ধনী দিন অনেক floats সম্পর্কে এবং এখানে তাদের কল করতে দেয় সম্পর্কে সম্মিলিতভাবে বাংলাদেশের. 991 01:01:55,030 --> 01:01:56,720 তাই এখন আমি কি আমি কি করতে যাচ্ছি দেখতে. 992 01:01:56,720 --> 01:01:59,220 এখানে লাইন 24 একটি লুপ এর জন্য শুরুতে. 993 01:01:59,220 --> 01:02:03,380 >> এই সত্যিই কিছুই অভিনব. এটা ঠিক এর কুইজ ব্যবহার পরিবর্তে একটি হার্ড কোড নম্বর. 994 01:02:03,380 --> 01:02:06,740 কিন্তু কিছুই বুদ্ধিমত্তা শেষ সপ্তাহ থেকে বিভিন্ন আছে. 995 01:02:06,740 --> 01:02:11,650 এটি শুধুমাত্র printf, তাই printf ("% d এর% d ক্যুইজ #:") 996 01:02:11,650 --> 01:02:16,670 কারণ আমি যে মুদ্রণ সম্পর্কে 2 সংখ্যা 1 এবং তারপর উপহাস 2 মোট 2 দিতে চান. 997 01:02:16,670 --> 01:02:18,480 সুতরাং এই একটি বিশুদ্ধরূপে নান্দনিক জিনিস. 998 01:02:18,480 --> 01:02:21,000 কিন্তু আকর্ষণীয় অংশ এখন লাইন 27 হয়. 999 01:02:21,000 --> 01:02:27,840 যাতে দুই স্থানধারক এক একটি ভাসমান পয়েন্ট মান পূরণ করে, 1000 01:02:27,840 --> 01:02:29,640 আপনি আবার বর্গাকার বন্ধনী ব্যবহার করুন. 1001 01:02:29,640 --> 01:02:35,170 এই ক্ষেত্রে, আমি তোমার ব্যবহার করছি কারণ লুপ জন্য এই কি তোমার মান equaling সঙ্গে, দৃশ্যত শুরু করেনি? 1002 01:02:35,170 --> 01:02:36,670 0 [ছাত্রদের]. >> [Malan] 0. 1003 01:02:36,670 --> 01:02:40,990 তাই এই লুপ প্রথম পুনরাবৃত্তির উপর, এটা যেন আমি এই কোড লিখেছেন, 1004 01:02:40,990 --> 01:02:46,310 কিন্তু এই লুপ দ্বিতীয় পুনরাবৃত্তির উপর, এটা যেন আমি আমার মধ্যে এই কোড লেখেন. 1005 01:02:46,310 --> 01:02:49,970 কিন্তু এটা সত্য যে আমি একটি ভেরিয়েবল ব্যবহার করা হয় নিখুঁত কারণ, নাম হিসাবে সুপারিশ, 1006 01:02:49,970 --> 01:02:52,600 এটি প্রতি পুনরাবৃত্তির উপর এর মান তারতম্য, 1007 01:02:52,600 --> 01:02:55,900 তাই আমি একটি সময়ে ভর্তি এক স্পট এই অ্যারে করছি. 1008 01:02:55,900 --> 01:02:57,380 কি এই অ্যারে কেমন হয়েছে? 1009 01:02:57,380 --> 01:03:01,570 কারণ আমি সুপার পর্দায় সহজ আয়তক্ষেত্র এখানে সৃষ্টি আগে এই কারণে ছিল. 1010 01:03:01,570 --> 01:03:05,590 একটি অ্যারের শুধুমাত্র মেমরি চাঙ্গড় মেমরি অন্য চাঙ্গড় অনুসরণ 1011 01:03:05,590 --> 01:03:08,570 অনুসরণ মেমরি অন্য চাঙ্গড় দ্বারা এবং তাই ঘোষণা. 1012 01:03:08,570 --> 01:03:13,120 তাই আপনি যদি আমার অ্যারের আকার 2 এখানে এই ক্ষেত্রে, আমি সব কাজ করা হবে 1013 01:03:13,120 --> 01:03:20,200 আমার ব্যঙ্গ স্কোর টাইপ করে এখানে চাই - আমি এই একটিতে 100 পেয়েছেন এবং তারপর আমি এই এক একটা 99 পেয়েছিলাম - 1014 01:03:20,200 --> 01:03:24,970 তারপর এই মেমরি ব্যবহার করা যেতে পারে না, কারণ আমি শুধুমাত্র কম্পিউটার জিজ্ঞাসা করেছি 1015 01:03:24,970 --> 01:03:26,840 জন্য আকার 2 শ্রেণীবিন্যাস. 1016 01:03:26,840 --> 01:03:28,600 যারা এখনও স্কোয়ার আছে, ডান? 1017 01:03:28,600 --> 01:03:32,670 আপনি এখনও 2 গিগাবাইট RAM উপস্থিত থাকে, এমনকি যদি আপনি শুধুমাত্র 2 floats জন্য বলছেন. 1018 01:03:32,670 --> 01:03:36,840 সুতরাং অ্যারে পিছনে ধারণা হয় যে শুধু কম্পিউটার মেমরি চাঙ্গড় লাগে 1019 01:03:36,840 --> 01:03:41,340 এবং তারপর ছোট টুকরা apportions ফিরে যাও যাও যাও ব্যাক ব্যাক ব্যাক. 1020 01:03:41,340 --> 01:03:43,310 তাই যে সমস্ত একটি অ্যারের হয়. 1021 01:03:43,310 --> 01:03:47,350 >> এটা একটা মেমরি ভিতর সংলগ্ন অঞ্চলে যা আপনি জিনিষ লাগাতে পারেন. 1022 01:03:47,350 --> 01:03:50,700 এই তারপরে শুধু কিছু বিরক্তিকর পাটীগণিত কি ঘটবে. 1023 01:03:50,700 --> 01:03:54,640 যদি আমি এখানে স্ক্রল ডাউন, এই হল যেখানে আমি তারপর অ্যারের উপর বারবার. 1024 01:03:54,640 --> 01:03:58,020 আমি অ্যারে মান সব সঙ্কলন সঙ্গে আসা পর্যন্ত, 1025 01:03:58,020 --> 01:04:02,470 এবং তারপর আমি এখানে বৃত্তাকার ফাংশন ব্যবহার করার জন্য আসলে সমষ্টি কুইজ দ্বারা বিভক্ত না. 1026 01:04:02,470 --> 01:04:06,320 কিন্তু আমাকে যে এ জন্য এখন যথেষ্ট গাণিতিক ধরণের হিসাবে আমার হাত ঢেউ. 1027 01:04:06,320 --> 01:04:08,370 কিন্তু শেষ পর্যন্ত যে সব সম্পর্কে জন্য করছে একটি গড় কম্পিউটিং হয়. 1028 01:04:08,370 --> 01:04:13,580 তাই প্রথম প্লাস ব্যঙ্গ দ্বিতীয় ব্যঙ্গ 2 দ্বারা বিভক্ত এবং তারপর মুদ্রণ কোন int হিসাবে এটি. 1029 01:04:13,580 --> 01:04:17,280 কিন্তু এখন let এর একটি পৃথক উদাহরণে বলা string1 রূপান্তর, 1030 01:04:17,280 --> 01:04:20,700 যা একই ছবি ব্যবহার করে কিন্তু স্ট্রিং রঙে. 1031 01:04:20,700 --> 01:04:23,940 আমাকে এগিয়ে যান এবং শুধু একটা মুহূর্ত জন্য এই সহজ করে. 1032 01:04:23,940 --> 01:04:27,090 এখন জন্য ক্ষমা খাঁজ. 1033 01:04:27,090 --> 01:04:30,870 এই উদাহরণ লাইন 19 নোটিশ, আমি ব্যবহারকারী থেকে একটি পংক্তি পেতে. 1034 01:04:30,870 --> 01:04:34,640 কিন্তু লক্ষ্য করা কি আমি পরের লাইনে করছি 22 অনওয়ার্ড করছেন. 1035 01:04:34,640 --> 01:04:41,250 আমি তোমার থেকে আসলে করছি iterating আপ - এবং এই একটি নতুন কৌতুক - strlen, স্ট্রিং দ্বারা. 1036 01:04:41,250 --> 01:04:44,880 এটি একটি এই যে আপনি যদি এটি একটি স্ট্রিং পাস, ফাংশন সি সাথে 1037 01:04:44,880 --> 01:04:47,730 এটা আপনাকে বলে যে, স্ট্রিং কতগুলি অক্ষর. এই যা. 1038 01:04:47,730 --> 01:04:51,550 এবং যে এটা strlen পরিবর্তে স্ট্রিং দৈর্ঘ্য মাত্র কারণ এটা আরো পরিবেষ্টিত. 1039 01:04:51,550 --> 01:04:55,100 ত্রিশ বছর আগে, মানুষ জিনিষ হিসাবে succinctly হিসাবে সম্ভাব্য পছন্দ লিখুন, 1040 01:04:55,100 --> 01:04:57,630 তাই আমরা যে কনভেনশন রাখা এখানে করেছি. 1041 01:04:57,630 --> 01:05:00,660 আমি + মানে শুধুমাত্র প্রতিটি পুনরাবৃত্তিতে তোমার বাড়ায়. 1042 01:05:00,660 --> 01:05:02,990 এবং এখন এই, নোটিশ যা সত্যিই আকর্ষণীয়. 1043 01:05:02,990 --> 01:05:09,180 লাইন 24 ইঞ্চি, আমি বলে, "কম্পিউটার, সম্পর্কে একটি চরিত্র দিন, 8 বিট, এবং এটি গ ফোন." 1044 01:05:09,180 --> 01:05:12,630 কিন্তু কি ডানদিকের সাইড বলছে হয় এই? 1045 01:05:13,490 --> 01:05:16,530 ইন ইংরেজি কি, যে প্রতিনিধিত্ব না? 1046 01:05:16,530 --> 01:05:18,730 [ছাত্রদের] অ্যারের মধ্যে প্রথম অক্ষর. 1047 01:05:18,730 --> 01:05:20,790 ঠিক. সম্পর্কে অ্যারের মধ্যে প্রথম অক্ষর দিন. 1048 01:05:20,790 --> 01:05:24,090 অথবা, আরো সাধারণভাবে, সম্পর্কে অ্যারের মধ্যে ith অক্ষর দিন. 1049 01:05:24,090 --> 01:05:26,100 এবং এটা গুরুত্বপূর্ণ এখন বুঝতে পারি যে হিসাবে কম্পিউটার বিজ্ঞানীরা, 1050 01:05:26,100 --> 01:05:27,890 আমরা 0 থেকে আসলে করছি বেড়ে চলেছে. 1051 01:05:27,890 --> 01:05:29,720 >> আপনি এখন নেই বিচক্ষণতা না এই কাজ শুরু. 1052 01:05:29,720 --> 01:05:34,160 এখন আপনার কম্পিউটার এর প্রত্যাশা অনুযায়ী আচরণ করে এবং 0 থেকে গণনা আছে 1053 01:05:34,160 --> 01:05:38,180 [0] কারণ স্ট্রিং এর মধ্যে প্রথম অক্ষর হতে হবে, 1054 01:05:38,180 --> 01:05:42,150 [1] দ্বিতীয় হবে, [2] তৃতীয়, এবং তাই ঘোষণা করা হয়. 1055 01:05:42,150 --> 01:05:49,720 তাই এই প্রোগ্রাম, যদি আমি এটা কম্পাইল, এই আবার string1, তাই string1 করা, 1056 01:05:49,720 --> 01:05:54,670 এবং এখন আমি আমার টার্মিনাল উইন্ডোর string1 রান করেছি. 1057 01:05:54,670 --> 01:05:58,330 এটা ইনপুট জন্য অপেক্ষা করছে, যাতে আমি ডেভিড মধ্যে, টাইপ করে Enter যাচ্ছি এর, 1058 01:05:58,330 --> 01:06:02,540 এবং এখন এটি সমস্ত ভিন্ন পংক্তিতে ডেভিড ছাপে কারণ বিজ্ঞপ্তি আমি কি করছি. 1059 01:06:02,540 --> 01:06:05,820 আমি একটি সময়ে করছি একটি অক্ষর মুদ্রণ. 1060 01:06:05,820 --> 01:06:10,100 আমরা বিস্তারিত ঢোকা হবে না এই আজ, কিন্তু আমি এই চেক আগে এক মুহুর্ত এখানে মোছা. 1061 01:06:10,100 --> 01:06:15,480 এটা পরিনত হয় যে ব্যবহারকারী যদি অনাচারী হয়, adversarial, বা শুধু বিভ্রান্ত, 1062 01:06:15,480 --> 01:06:20,210 আপনাকে আসলে কিছু দৈর্ঘ্যের একটি স্ট্রিং দিতে ব্যর্থ হতে পারে. 1063 01:06:20,210 --> 01:06:22,860 যদি আপনি কীবোর্ডের কী ভুল আঘাত, আপনি স্ট্রিং এ সব দিতে পারে, 1064 01:06:22,860 --> 01:06:26,950 অথবা যদি আপনি দূষিত, আপনি একটি নিবন্ধের একটি গিগাবাইট এর মূল্য মধ্যে পেস্ট করার চেষ্টা করতে পারেন 1065 01:06:26,950 --> 01:06:29,290 এই পংক্তি, ভরাট এবং যদি কম্পিউটার মেমরি রান আউট, 1066 01:06:29,290 --> 01:06:32,710 এটি সক্রিয় করে যে আমরা এই বিশেষ মান নামক NULL ফেরত পেতে যাচ্ছেন. 1067 01:06:32,710 --> 01:06:35,580 তাই এখন জন্য, শুধু জানি যে এই বিশেষ মান NULL বলা আছে 1068 01:06:35,580 --> 01:06:39,580 যা আমাদের যখন আমরা মেমরি ফুরিয়েছে অন্যান্য বিষয়ের মধ্যে, চেক করার অনুমতি দেবে. 1069 01:06:39,580 --> 01:06:45,630 কিন্তু যদি আমি খুলুন এখন string2, এখানে একটি পার্থক্য লক্ষ্য করা. 1070 01:06:45,630 --> 01:06:48,210 এক পার্থক্য লক্ষ্য করুন এখানে string2 সঙ্গে. 1071 01:06:48,210 --> 01:06:51,340 String2 সঙ্গে, লুপ জন্য এই একটি সামান্য ভিন্ন. 1072 01:06:51,340 --> 01:06:55,010 >> আমাকে NULLs যাতে আমরা যারা অন্য সময় সম্পর্কে কথা বলতে পারেন মুছে দিন. 1073 01:06:55,010 --> 01:06:57,800 লুপ জন্য এই সময় সম্পর্কে বিভিন্ন কি? 1074 01:06:59,620 --> 01:07:01,670 আমি আগের উদাহরণ ফিরে যেতে পারেন. 1075 01:07:01,670 --> 01:07:08,580 যাতে এর সংস্করণ 2, এই সংস্করণ 1. 1, 2. 1076 01:07:08,580 --> 01:07:11,980 1, 2. 1077 01:07:13,520 --> 01:07:16,660 strlen কল করা হয় যেখানে? 1078 01:07:16,660 --> 01:07:18,860 এটি প্রথম অংশ জন্য লুপ আছে. 1079 01:07:18,860 --> 01:07:21,830 কেন আমি এই হিসাবে কোন চিন্তা করছি? হাঁ. 1080 01:07:21,830 --> 01:07:24,560 [ছাত্রদের] সুতরাং আপনি ফাংশন প্রতি একক সময় কল করবেন না. 1081 01:07:24,560 --> 01:07:26,440 [Malan] সুতরাং আমরা প্রতি একক সময় ফাংশন কল করবেন না. ঠিক. 1082 01:07:26,440 --> 01:07:28,300 জন্য loops থেকে প্রত্যাহার করা যে তারা সুপার সহজ 1083 01:07:28,300 --> 01:07:31,770 একবার আপনি বোঝেন যে এই ধরণের হয় আরম্ভের, শর্ত, এবং আপডেট. 1084 01:07:31,770 --> 01:07:34,750 সমস্যা হল শর্ত লুপ প্রতি পুনরাবৃত্তির উপর ঘটবে. 1085 01:07:34,750 --> 01:07:40,010 এই উদাহরণে, তাই এখানে এবং, কি সত্য যে, এই হল আমার অবস্থা খারাপ? 1086 01:07:40,010 --> 01:07:41,830 [ছাত্রদের] আপনি strlen আহ্বান করছি. 1087 01:07:41,830 --> 01:07:44,340 [Malan] আপনি strlen করছি আবার কলিং এবং আবার এবং আবার. 1088 01:07:44,340 --> 01:07:47,410 কিন্তু একবার আমি ডেভিড টাইপ করেছি, স্ট্রিং এর দৈর্ঘ্য হল 5, 1089 01:07:47,410 --> 01:07:49,650 এবং এটি লুপ প্রতি পুনরাবৃত্তির পরিবর্তন যাও যাচ্ছে না 1090 01:07:49,650 --> 01:07:51,670 কারণ স্ট্রিং এখনও হল D-a-v-i-ঘ. 1091 01:07:51,670 --> 01:07:55,320 তাই এটি কি একটি ক্রমবর্ধমানভাবে গুরুত্বপূর্ণ ধারণা হয়ে যাচ্ছে এ ইঙ্গিত 1092 01:07:55,320 --> 01:08:00,410 একটি নকশা সিদ্ধান্ত যেখানে শুধু কম্পিউটার অপ্রয়োজনীয় কাজ না করা হিসাবে পরিচিত. 1093 01:08:00,410 --> 01:08:03,920 >> শুধু হিসাবে একটি pset2, pset2 একটি স্নিক মানক সংস্করণে মধ্যে প্রাকদর্শন 1094 01:08:03,920 --> 01:08:07,030 আপনাকে আসলে কিছু সাইফারগুলির নম্বর বাস্তবায়ন চ্যালেঞ্জ হবে, 1095 01:08:07,030 --> 01:08:10,410 এনক্রিপশন অ্যালগোরিদম কিছু নম্বর, যাতে আপনি উভয় এনক্রিপ্ট করতে পারেন 1096 01:08:10,410 --> 01:08:13,840 এবং সেখানে অনেক ডিক্রিপ্ট এক Ralphie মত গোপন বার্তা সঙ্কেতমুক্ত. 1097 01:08:13,840 --> 01:08:16,810 Pset2 র হ্যাকার সংস্করণে, আমরা যাও একটু আরো চলুন. 1098 01:08:16,810 --> 01:08:19,649 আমরা একটি প্রকৃত কম্পিউটার সিস্টেম থেকে করছি আপনি একটি ফাইল হাতে যাচ্ছে 1099 01:08:19,649 --> 01:08:23,479 যে একটি ব্যবহারকারীর নাম এবং প্রকৃত পাসওয়ার্ডগুলি এনক্রিপ্ট আভা রয়েছে, 1100 01:08:23,479 --> 01:08:26,939 এবং হ্যাকার সংস্করণ জন্য চ্যালেঞ্জ যারা পাসওয়ার্ডগুলি ফাটল হবে 1101 01:08:26,939 --> 01:08:33,200 এবং জিনিসটা কি ক্রিপ্টোগ্রাফি বা কি গোপন প্রকৃতপক্ষে যারা পাসওয়ার্ড জেনারেট করতে ব্যবহৃত হয়. 1102 01:08:33,200 --> 01:08:36,109 এবং আমরা একটি নতুন বৈশিষ্ট্য ব্যবহার করে এখানে C দ্বারা এই কাজ করতে যাচ্ছেন 1103 01:08:36,109 --> 01:08:40,630 যে আমি একটি ডেমো কমান্ড লাইন আর্গুমেন্ট হিসাবে পরিচিত দেব. 1104 01:08:40,630 --> 01:08:44,229 এটি সক্রিয় আউট, হিসাবে আপনি কিছু অধ্যায় বা পাঠ্যবই পারে আছে দেখা যায়, 1105 01:08:44,229 --> 01:08:48,260 প্রধান যাও বন্ধনীর মধ্যে অকার্যকর হতে থাকে সবসময় না. 1106 01:08:48,260 --> 01:08:52,430 এটি সক্রিয় আউট দুটি আর্গুমেন্ট সহ যে প্রধান এছাড়াও ভালো করা যাবে,, 1107 01:08:52,430 --> 01:08:56,870 argc এবং argv, যেখানে argc হয় শব্দের সংখ্যা 1108 01:08:56,870 --> 01:09:00,020 যে প্রোগ্রাম এর নামের পরে আপনি আপনার কমান্ড লাইনে টাইপ করুন 1109 01:09:00,020 --> 01:09:03,420 এবং argv হয় মূল শব্দ. 1110 01:09:03,420 --> 01:09:07,540 এবং হিসাবে বর্গাকার বন্ধনী প্রস্তাব আছে, argv দৃশ্যত একটি অ্যারে. 1111 01:09:07,540 --> 01:09:12,210 এটা মেমরির মধ্যে একটি স্ট্রিং পরে একটি পংক্তি স্ট্রিং এর পরে যাচ্ছে. 1112 01:09:12,210 --> 01:09:16,010 >> তাই আমরা যা কর pset 2 দিয়ে শুরু করতে হবে সেটি ভালো কিছু. 1113 01:09:16,010 --> 01:09:21,350 যদি আমি argv1, যা একটি উদাহরণ আমরা ফিরে সোমবার, করব এবং এটি চালানোর জন্য, 1114 01:09:21,350 --> 01:09:23,370 বিজ্ঞপ্তি যে এটা এখনও কিছু করতে না বলে মনে হচ্ছে. 1115 01:09:23,370 --> 01:09:25,490 এটা নিজস্ব ছাপে নাম আউট. 1116 01:09:25,490 --> 01:09:31,479 কিন্তু যদি আমি বলে বিদায় বর্গ, যে বিজ্ঞপ্তি দৃশ্যত এই প্রোগ্রাম iterates 1117 01:09:31,479 --> 01:09:35,479 উপর শব্দের প্রম্পটে টাইপ করা হয়েছে প্রতিটি. 1118 01:09:35,479 --> 01:09:41,630 এবং যার দ্বারা আমরা শব্দ ঢোকার জন্য যে ব্যবহারকারী প্রম্পটে টাইপ করেনি হবে 1119 01:09:41,630 --> 01:09:49,160 পরিবর্তন প্রধান প্রধান int-(অকার্যকর) থেকে শুরু এই সপ্তাহের শেষের ছুটির যাও প্রধান (argc, argv) int হয় 1120 01:09:49,160 --> 01:09:52,050 এবং এইভাবে কমান্ড লাইন আর্গুমেন্ট জন্মগ্রহণ করা হবে. 1121 01:09:52,050 --> 01:09:57,100 এবং একবার যখন আপনি এই সময়ে পেতে সত্যিই বাস্তববুদ্ধিসম্পন্ন, সত্যিই আপনার trippy প্রোগ্রামগুলি লিখতে সক্ষম হবেন 1122 01:09:57,100 --> 01:09:59,610 এই যেমন এখানে এক, যা উপরে যায় এবং অতিক্রম 1123 01:09:59,610 --> 01:10:03,940 কার্যকারিতা আমরা কিছু দূর পর্যন্ত কাজ করেছি, কিন্তু বেশ শক্তিশালী. 1124 01:10:03,940 --> 01:10:08,950 >> সুতরাং আমরা এই সঙ্গে এই পর্দায় চলে, করব এবং আমরা সোমবার আপনি দেখতে পাবেন. 1125 01:10:17,570 --> 01:10:20,000 >> [CS50.TV]