1 00:00:00,000 --> 00:00:02,270 >> [পর্যালোচনা: ক্যুইজ 1] 2 00:00:02,270 --> 00:00:04,620 [আলি Nahm, Oreoluwa Barbarinsa, লুকাস Freitas, রব Bowden] [হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:04,620 --> 00:00:07,660 [এটি CS50.] [CS50.TV] 4 00:00:07,660 --> 00:00:11,610 [লুকাস Freitas] সবাইকে স্বাগতম. এই ব্যঙ্গ 1 জন্য পর্যালোচনা. 5 00:00:11,610 --> 00:00:15,040 শুধু একটি দাবিত্যাগ হিসাবে, এই হল - আমি বলতে চাচ্ছি, আমরা আবরণ চেষ্টা চলুন 6 00:00:15,040 --> 00:00:17,770 সম্ভব, কিন্তু যতটা উপাদান মানে এই নয় যে 7 00:00:17,770 --> 00:00:20,780 আমরা ব্যঙ্গ 1 হতে পারে যে জিনিস সব আবরণ চলুন. 8 00:00:20,780 --> 00:00:25,270 যাতে আপনি একটি বক্তৃতা এ চেহারা, বিভাগে, আপনি যা করতে পারেন যে সবকিছু নিতে ভুলবেন না. 9 00:00:25,270 --> 00:00:28,240 ক্যুইজ 1 বুধবার, পরের বুধবার হতে যাচ্ছে. 10 00:00:28,240 --> 00:00:33,800 সুতরাং অধ্যয়ন নিশ্চিত করা. এটি প্রথম ব্যঙ্গ মত প্রায় কাছাকাছি, হতে যাচ্ছে 11 00:00:33,800 --> 00:00:36,390 তার বিন্যাস সংক্রান্ত, কিন্তু এটি সম্ভবত অনেক বেশি কঠিন হতে যাচ্ছে. 12 00:00:36,390 --> 00:00:39,600 আমি 50 নেন যখন অন্তত, গত বছর, আমি এটা অনেক বেশি কঠিন ছিল. 13 00:00:39,600 --> 00:00:42,410 তাই অনেক অধ্যয়ন. 14 00:00:42,410 --> 00:00:45,190 >> আমি ডাটা স্ট্রাকচার আবরণ যাচ্ছি এবং Huffman কোডিং. 15 00:00:45,190 --> 00:00:47,910 এই, মানুষ অনেক জটিল মনে হয় এমন কিছু বিষয় 16 00:00:47,910 --> 00:00:51,930 কিন্তু আমি এটি যতটা সম্ভব সহজ করা চেষ্টা যাচ্ছি. 17 00:00:51,930 --> 00:00:56,330 প্রথম সব, আমরা কি আপনাকে বলছি ব্যঙ্গ 1 জন্য জানতে চান হয় 18 00:00:56,330 --> 00:01:00,970 আমি উপস্থাপন করতে যাচ্ছি যে ডাটা স্ট্রাকচার প্রতিটি ধারণাগত বিবরণ বুঝতে. 19 00:01:00,970 --> 00:01:03,960 তার মানে আপনি, না আছে এর মানে হল যে আসলে 20 00:01:03,960 --> 00:01:07,020 আপনার ব্যঙ্গ 1 সালে একটি হ্যাশ টেবিল বাস্তবায়ন. 21 00:01:07,020 --> 00:01:10,250 আমরা আপনাকে একটি সম্পূর্ণ হ্যাশ টেবিল বাস্তবায়ন করতে চাই না; হয়তো আমরা চেষ্টা করব 22 00:01:10,250 --> 00:01:13,090 আপনি কিছু ফাংশন বাস্তবায়ন করা, 23 00:01:13,090 --> 00:01:16,940 সবচেয়ে সাধারণ কাজকর্ম, কিন্তু আমরা আপনাকে সবকিছু বাস্তবায়ন করতে যাচ্ছেন না. 24 00:01:16,940 --> 00:01:21,010 সুতরাং আপনি প্রতিটি ডাটা স্ট্রাকচার ধারণার বুঝতে যে গুরুত্বপূর্ণ 25 00:01:21,010 --> 00:01:23,510 এবং এছাড়াও আপনি সি কোড করতে পারবেন যে, 26 00:01:23,510 --> 00:01:27,880 তারা প্রতিটি ডাটা স্ট্রাকচার জন্য আছে শুধু সবচেয়ে সাধারণ অপারেশন. 27 00:01:27,880 --> 00:01:30,090 এবং এছাড়াও, পয়েন্টার এবং structs পর্যালোচনা করতে পারবেন 28 00:01:30,090 --> 00:01:33,470 তারা এই ডাটা স্ট্রাকচার অনেক প্রদর্শিত হবে. 29 00:01:33,470 --> 00:01:37,380 >> ঠিক আছে. লিঙ্ক তালিকা আসলে অ্যারে অনুরূপ, 30 00:01:37,380 --> 00:01:39,930 কিন্তু একটি লিঙ্ক তালিকা এবং একটি অ্যারের মধ্যে পার্থক্য, 31 00:01:39,930 --> 00:01:45,160 প্রথম সব,, একটি লিঙ্ক তালিকা একটি খুব নমনীয় আকার আছে 32 00:01:45,160 --> 00:01:50,060 অ্যারে আপনি অ্যারের জন্য খুব বড় আকার চয়ন হয় আছে, যখন, 33 00:01:50,060 --> 00:01:53,710 যাতে আপনি, আপনি যে অ্যারের মধ্যে আপনার সমস্ত ডেটা জমা করতে পারবেন চলুন জানি 34 00:01:53,710 --> 00:01:59,370 অথবা আপনি অ্যারের একটি নমনীয় দৈর্ঘ্য আছে malloc ব্যবহার আছে. 35 00:01:59,370 --> 00:02:03,680 লিঙ্ক তালিকা মধ্যে এটা আরো উপাদান পেতে খুব সোজা, 36 00:02:03,680 --> 00:02:07,210 লিঙ্ক তালিকায় আরো উপাদান করিয়ে বা উপাদান মুছে ফেলুন. 37 00:02:07,210 --> 00:02:09,370 এবং প্রকৃতপক্ষে, আপনি লিঙ্ক তালিকা অনুসারে বাছাই করা না চান তাহলে, 38 00:02:09,370 --> 00:02:13,950 আপনি অনুসন্ধান এবং ধ্রুব সময় উপাদান সরাতে পারেন, 39 00:02:13,950 --> 00:02:16,800 তাই হে (1) সময়, তাই এটা খুবই সুবিধাজনক. 40 00:02:16,800 --> 00:02:20,660 আপনি শুধু, নোড সর্বদা malloc করতে মনে রাখতে সতর্ক থাকুন এবং মুক্ত হতে হবে 41 00:02:20,660 --> 00:02:25,510 আপনি না, আপনি মেমরি ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত হবে মাত্র কারণ. 42 00:02:25,510 --> 00:02:31,480 তাই লিঙ্ক তালিকা - একটি নোড সংজ্ঞা ঠিক আমরা অধিকার আছে কি ভালো হয়. 43 00:02:31,480 --> 00:02:35,110 আমি int-n করা, কিন্তু আপনি আপনার কাঙ্ক্ষিত তথ্য সংরক্ষণ করতে পারেন. 44 00:02:35,110 --> 00:02:37,280 আপনি একটি স্ট্রিং সঞ্চয় করতে চান তাহলে, এটা সূক্ষ্ম. 45 00:02:37,280 --> 00:02:41,690 আপনি একটি struct সঞ্চয় করতে চান, এটা আপনি চান যাই হোক না কেন,, একটি ডবল সূক্ষ্ম. 46 00:02:41,690 --> 00:02:44,630 আমি শুধু এখানে উদাহরণ জন্য int-n করা. 47 00:02:44,630 --> 00:02:46,800 এবং আপনি পরবর্তী নোডের একটি ইশারা আছে. 48 00:02:46,800 --> 00:02:51,940 সুতরাং, মূলত: একটি লিঙ্ক তালিকা কিছু তথ্য আছে, এবং তারপর এটি পরবর্তী নোডের স্থানটিকে. 49 00:02:51,940 --> 00:02:56,710 এটি লিঙ্ক তালিকায় শেষ উপাদান আছে, এটি যাও যাও নাল নির্দেশ যাচ্ছে. 50 00:02:56,710 --> 00:02:59,060 সুতরাং এই একটি লিঙ্ক তালিকা একটি উদাহরণ. 51 00:02:59,250 --> 00:03:05,960 >> ঠিক আছে, তাই এখন আমি একটি লিঙ্ক তালিকায় একটি উপাদান প্রবেশ করাতে চান তাহলে এর আমরা কি হবে তা দেখতে দিন. 52 00:03:05,960 --> 00:03:08,810 প্রথমত, একটি ফাংশন সন্নিবেশ টাইপ অকার্যকর হতে হবে 53 00:03:08,810 --> 00:03:11,350 আমি কিছু ফেরত না চান কারণ. 54 00:03:11,350 --> 00:03:14,200 এবং আমি একটি আর্গুমেন্ট হিসাবে কোন int নিতে যাচ্ছি, 55 00:03:14,200 --> 00:03:17,090 আমি প্রবেশ করাতে চান জানতে চান কারণ. 56 00:03:17,090 --> 00:03:21,840 সুতরাং আমি কি উচিত প্রথম জিনিস কি? ওয়েল, আমি newnode উপর malloc করা উচিত, 57 00:03:21,840 --> 00:03:24,240 তাই যে প্রথম লাইন. 58 00:03:24,240 --> 00:03:27,580 আমি শুধু একটি লিঙ্ক তালিকা করিয়ে নতুন নোড তৈরি করছি. 59 00:03:27,580 --> 00:03:32,360 তাই আমি কি করতে পারি? ভাল, আমরা জানি যে লিঙ্ক তালিকা আমাদের বাস্তবায়নের মধ্যে 60 00:03:32,360 --> 00:03:38,180 বর্গ, সবসময় আমরা একটি বিশ্বব্যাপী পরিবর্তনশীল হিসাবে মাথা রাখা. 61 00:03:38,180 --> 00:03:41,800 তাই আমরা কিছু করতে পারি মাথা পরিবর্তন হয়. 62 00:03:41,800 --> 00:03:44,300 আমি এই নতুন নোডের নতুন মাথা হতে না পারেন, 63 00:03:44,300 --> 00:03:46,670 এবং এটি আগের মাথার দিকে নির্দেশ করে যাচ্ছে. 64 00:03:46,670 --> 00:03:50,390 আমরা যে কিভাবে করতে পারি? আমি যা করতে হবে প্রথম জিনিস 65 00:03:50,390 --> 00:03:54,770 , মান নতুন নোডের মধ্যে 'এন' পরিবর্তন হয় 66 00:03:54,770 --> 00:03:57,530 ফাংশন প্রেরণ করা হত যা. 67 00:03:57,530 --> 00:04:01,050 তারপর newnode এর পরের মাথা হবে. 68 00:04:01,050 --> 00:04:05,800 মাথা newnode করা যাচ্ছে. সুতরাং এটা বেশ সহজ. 69 00:04:05,800 --> 00:04:10,090 একটি নোডের মুছে ফেলার জন্য, আমরা ভালো এটা করতে পারেন - 70 00:04:10,090 --> 00:04:14,790 আমরা তা করতে পারে ওয়ান ওয়ে বলতে হয়, 71 00:04:14,790 --> 00:04:18,160 ঠিক আছে, আমি মুছে ফেলতে চেয়েছিলেন, উদাহরণস্বরূপ, 3, 72 00:04:18,160 --> 00:04:24,850 কি আমি কাজ করতে পারে ঠিক আগের নোড নির্দেশ হল 73 00:04:24,850 --> 00:04:27,580 3 পরবর্তী নোডের. 74 00:04:27,580 --> 00:04:29,400 তাই আমি ঠিক সেই মতো কিছু করতে হবে. 75 00:04:29,400 --> 00:04:33,400 কিন্তু যে কাজ সঙ্গে সমস্যা কি? 76 00:04:33,400 --> 00:04:37,400 আমি একটি মেমরি লিক আছে, তাই আমি আর নম্বর 3 অ্যাক্সেস নেই. 77 00:04:37,400 --> 00:04:42,480 যে সঙ্গে সমস্যা হল আমি যে নোড মুক্ত করতে পারবে যাচ্ছি না যে. 78 00:04:42,480 --> 00:04:45,360 আমি মেমরি লিক এবং (অপাচ্য) আমাকে ঘৃণা করতে যাচ্ছে আছে যাচ্ছি. 79 00:04:45,360 --> 00:04:49,370 সুতরাং পরিবর্তে যে করছেন, আমি সম্ভবত একটি অস্থায়ী পয়েন্টার থাকা উচিত. 80 00:04:49,370 --> 00:04:53,210 তাই আমি temp করা. এটা আমি মুছতে চান নোডের দিকে নির্দেশ করতে যাচ্ছে. 81 00:04:53,210 --> 00:04:58,170 এবং তারপর আমি পরবর্তী নোডের বিন্দু পূর্ববর্তী নোড অগ্রসর না হতে পারেন 82 00:04:58,170 --> 00:05:00,390 আমি মুছতে চান নোড. 83 00:05:00,390 --> 00:05:02,730 এবং পরিশেষে, আমি পয়েন্টার মুক্ত করতে পারেন. 84 00:05:02,730 --> 00:05:07,480 আমি আমার অধিকার আছে তৈরি যে পয়েন্টার মুক্ত করতে আছে? 85 00:05:07,480 --> 00:05:09,560 আমি, শুধু কারণ হবে না - 86 00:05:09,560 --> 00:05:13,430 পার্থক্য এই নোডের malloc ব্যবহার করে তৈরি করা হয়েছে যে, 87 00:05:13,430 --> 00:05:17,280 এই এক শুধু স্ট্যাকের মধ্যে শূন্য সুইচ হিসাবে ঘোষণা করা হয় যখন তাই এটি গাদা আছে. 88 00:05:17,280 --> 00:05:20,000 তাই আমি এটি মুক্ত করতে হবে না. 89 00:05:20,000 --> 00:05:22,030 >> ঠিক আছে. তাই এখন আমি কি stacks সম্পর্কে কথা বলুন. 90 00:05:22,030 --> 00:05:24,680 Stacks বেশ সহজবোধ্য. 91 00:05:24,680 --> 00:05:29,540 আমরা শুধু অ্যারে ব্যবহার করে ক্লাসে stacks এবং সারির করেছিল, 92 00:05:29,540 --> 00:05:32,820 কিন্তু আপনি পরিচিত হতে হবে - শুধু সচেতন হতে হবে 93 00:05:32,820 --> 00:05:40,740 আপনি হিসাবে ভাল লিঙ্ক তালিকা ব্যবহার সারির মধ্যে stacks করতে পারেন যে. 94 00:05:40,740 --> 00:05:44,460 আপনি একটি অ্যারে আছে সুতরাং, যদি তা একটি স্ট্যাক হবে? 95 00:05:44,460 --> 00:05:46,810 একটি স্ট্যাক, প্রথম, একটি আকার আছে করতে হবে. 96 00:05:46,810 --> 00:05:49,950 আপনি এই মুহূর্তে আছে যে স্ট্যাকের আকার কি সংরক্ষণ করা আছে. 97 00:05:49,950 --> 00:05:52,980 এবং এছাড়াও আপনি যদি সংখ্যার এই ক্ষেত্রে, একটি অ্যারের হবে 98 00:05:52,980 --> 00:05:55,120 যদি আপনি চান তবে, এটি একটি অ্যারে হতে পারে 99 00:05:55,120 --> 00:06:00,380 স্ট্রিং, struct একটি শ্রেণীবিন্যাস, আপনি সংরক্ষণ করতে ইচ্ছুক কিছু যে. 100 00:06:00,380 --> 00:06:03,240 স্ট্যাক বিষয়ে: একটি স্ট্যাক এবং একটি লিঙ্ক তালিকা মধ্যে পার্থক্য 101 00:06:03,240 --> 00:06:08,590 স্ট্যাকের মধ্যে আপনি শুধুমাত্র স্ট্যাকের মধ্যে রাখা হয়েছিল যে শেষ উপাদান এক্সেস আছে. 102 00:06:08,590 --> 00:06:11,770 এটা প্রথম আউট, সর্বশেষ এ বলা হচ্ছে. 103 00:06:11,770 --> 00:06:15,090 আপনি ট্রে একটি স্ট্যাক আছে শুধু চাই, 104 00:06:15,090 --> 00:06:17,670 আপনি স্ট্যাকের উপর একটি ট্রে রাখা হলে, 105 00:06:17,670 --> 00:06:22,670 আপনি অন্যান্য ট্রে অ্যাক্সেস আছে প্রথম যে ট্রে অপসারণ করতে হবে. 106 00:06:22,670 --> 00:06:26,310 এটা stacks সঙ্গে একই জিনিস. 107 00:06:26,310 --> 00:06:31,220 আমি, উদাহরণস্বরূপ, একটি স্ট্যাক একটি উপাদান যোগ করতে চান সুতরাং, আমি কি করা উচিত? 108 00:06:31,220 --> 00:06:34,070 এটি ধাক্কা বলা হয়, এবং এটি বেশ সহজবোধ্য এর. 109 00:06:34,070 --> 00:06:37,130 আপনাকে যা করতে হবে সর্বপ্রথম চেক যদি স্ট্যাকের আকার 110 00:06:37,130 --> 00:06:40,150 বড় বা স্ট্যাকের ক্ষমতা সমান নয়. 111 00:06:40,150 --> 00:06:45,810 আপনি ইতিমধ্যে পূর্ণ ক্ষমতা থাকে, তাহলে আপনি অন্য কিছু যোগ করতে পারেন না কারণ. 112 00:06:45,810 --> 00:06:51,140 যদি না হয় এবং তারপর, আপনি শুধু স্ট্যাকে উপাদান যোগ আছে. 113 00:06:51,140 --> 00:06:54,530 এবং পরিশেষে, আকার বাড়ায়. সুতরাং এটি বেশ সহজবোধ্য. 114 00:06:54,530 --> 00:06:57,140 তাই আমি শুধু সংখ্যা 2 যোগ করুন. 115 00:06:57,140 --> 00:07:00,350 আমি পপ চান, যা আমি সরানোর বিষয়ে অর্থ 116 00:07:00,350 --> 00:07:03,870 যোগ এবং উপাদান মূল্য ফেরত দিতে হয় যে শেষ উপাদান, 117 00:07:03,870 --> 00:07:09,180 আমি চেক আছে প্রথম জিনিস স্ট্যাকের খালি হয় না. 118 00:07:09,180 --> 00:07:11,510 যদি এটা খালি, আমি কিছু না ফিরে যেতে পারে না. 119 00:07:11,510 --> 00:07:14,820 সেই ক্ষেত্রে, আমি -1 ফেরত দিচ্ছি. 120 00:07:14,820 --> 00:07:18,960 অন্যথা, আমি বৈশিষ্ট মাপ হ্রাস চলেছি, 121 00:07:18,960 --> 00:07:22,510 ও সংখ্যা (s.size) ফিরে. 122 00:07:22,510 --> 00:07:27,230 কেন আমি মাপ হ্রাস এবং তারপর s.size ফিরে হয়নি? 123 00:07:27,230 --> 00:07:30,930 এই ক্ষেত্রে, বৈশিষ্ট আকার 4 আছে, কারণ এটা হচ্ছে 124 00:07:30,930 --> 00:07:33,810 এবং আমি চতুর্থ উপাদান ফেরত চাই, ডান? 125 00:07:33,810 --> 00:07:36,030 কিন্তু চতুর্থ উপাদান সূচী কি? তিন. 126 00:07:36,030 --> 00:07:44,510 আমি মাপ করবেন যেহেতু - 3 হবে, আমি (s.size) s.numbers ফিরে আসতে পারেন 127 00:07:44,510 --> 00:07:48,410 এটি 3 কারণ. তাই এটি শুধু সূচক এর. 128 00:07:48,410 --> 00:07:50,380 >> এখন queues. সারির কাছাকাছি একই জিনিস. 129 00:07:50,380 --> 00:07:54,950 শুধু পার্থক্য হল, যে পরিবর্তে শেষ মধ্যে থাকার, প্রথম আউট হয় 130 00:07:54,950 --> 00:07:57,480 আপনি প্রথম আউট, প্রথম আছে. 131 00:07:57,480 --> 00:07:59,460 আপনি যদি একটি সংগীতানুষ্ঠানে যেতে অপেক্ষা করছি সম্ভবত যদি, 132 00:07:59,460 --> 00:08:04,260 আপনি পরিবর্তে সারিতে একটি স্ট্যাক ছিল আপনি খুশি হতে পারেন না. 133 00:08:04,260 --> 00:08:07,730 আসা শেষ ব্যক্তি হচ্ছে কনসার্টের প্রবেশ করতে প্রথম ব্যক্তি হবে. 134 00:08:07,730 --> 00:08:09,760 আপনি সম্ভবত খুশি হতে পারেন না. 135 00:08:09,760 --> 00:08:15,020 কিউ সালে পেতে প্রথম ব্যক্তি এছাড়াও নামা প্রথম ব্যক্তি. 136 00:08:15,020 --> 00:08:18,720 সুতরাং একজন কিউ সংজ্ঞা, অ্যারের মধ্যে মাপ হচ্ছে ছাড়াও, 137 00:08:18,720 --> 00:08:23,360 তবে আপনাকে স্ট্যাকের মাথা সূচক যা মাথা, আছে আছে. 138 00:08:23,360 --> 00:08:29,000 এই মুহূর্তে প্রথম উপাদান তাই. 139 00:08:29,000 --> 00:08:32,710 সারিবদ্ধ stacks জন্য ধাক্কা হিসাবে একই জিনিস. 140 00:08:32,710 --> 00:08:34,980 আপনি খুব সাদাসিধা ছিল, আপনি শুধু বলতে হবে, 141 00:08:34,980 --> 00:08:39,289 আমি ধাক্কা জন্য কি হিসাবে ভাল, আমি ঠিক ঠিক একই জিনিস করতে পারেন. 142 00:08:39,289 --> 00:08:44,030 এটা ক্ষমতা অতিক্রম না করে যদি আমি পরীক্ষা করতে পারবেন. 143 00:08:44,030 --> 00:08:48,760 যদি তা না হয়, আমি অন্যথায় আমি নতুন মান রপ্তানি করতে পারেন, মিথ্যা ফিরে 144 00:08:48,760 --> 00:08:50,630 এবং তারপর আকার বাড়ায়. 145 00:08:50,630 --> 00:08:52,750 কিন্তু কেন এই ভুল? 146 00:08:52,750 --> 00:08:55,010 এর এই উদাহরণে দেখতে দিন. 147 00:08:55,010 --> 00:08:57,020 আমি কাপড় একটি গুচ্ছ সারিবদ্ধ চেষ্টা করছি, 148 00:08:57,020 --> 00:08:58,390 এবং তারপর আমি dequeue এবং সারিবদ্ধ যাচ্ছি. 149 00:08:58,390 --> 00:09:00,550 সেখানে কমান্ড অনেক, কিন্তু এটা খুব সহজ. 150 00:09:00,550 --> 00:09:04,790 আমি 5 সারিবদ্ধ, তাই 5 যোগ করতে যাচ্ছে, এবং তারপর 7, করছি 151 00:09:04,790 --> 00:09:09,310 1, 4, 6, এবং তারপর আমি কিছু dequeue করতে চান, 152 00:09:09,310 --> 00:09:12,000 যা আমি প্রথম উপাদান সরিয়ে যাচ্ছি না. 153 00:09:12,000 --> 00:09:14,640 তাই আমি ডান, সংখ্যা 3, অপসারণ করা যাচ্ছে না? 154 00:09:14,640 --> 00:09:17,320 প্রথম উপাদান. ঠিক আছে. 155 00:09:17,320 --> 00:09:21,450 আমি অন্য কিছু সারিবদ্ধ চেষ্টা এখন, যদি কি ঘটতে যাচ্ছে? 156 00:09:21,450 --> 00:09:24,290 আমার বাস্তবায়ন মতে, 157 00:09:24,290 --> 00:09:31,040 আমি সূচক q.size পরবর্তী সংখ্যা করা হচ্ছে. 158 00:09:31,040 --> 00:09:35,140 এই ক্ষেত্রে, আকার 8 হয়, 159 00:09:35,140 --> 00:09:38,640 তাই সূচক 8 শেষ অবস্থান এ অধিকার এখানে করা হবে. 160 00:09:38,640 --> 00:09:43,900 আমি ডান এখানে 1 সারিবদ্ধ চেষ্টা করুন, আমি শেষ অবস্থান overwriting করা হবে 161 00:09:43,900 --> 00:09:45,870 সম্পূর্ণ ভুল যা সংখ্যা 1, যাও. 162 00:09:45,870 --> 00:09:49,870 আমি কি করে যেতে চাই চারপাশে মোড়ানো এবং প্রথম অবস্থান থেকে যেতে হয়. 163 00:09:49,870 --> 00:09:52,870 হতে পারে আপনি শুধু ভাল, আমি চেক আছে, বলতে হবে 164 00:09:52,870 --> 00:09:55,600 আমি আসলে সেখানে কিছু লাগাতে পারেন যদি. 165 00:09:55,600 --> 00:09:58,560 যদি না হয়, আমি ওহ, নতুন পূর্ণ ক্ষমতা বলে, 166 00:09:58,560 --> 00:10:02,010 আসলে ক্ষমতা হল - 1, এবং আপনি সেখানে একটি উপাদান রাখা যাবে না. 167 00:10:02,010 --> 00:10:06,150 কিন্তু সমস্যা কি? সমস্যা হল আমি ঠিক অধিকার এখানে সবকিছু dequeue যদি 168 00:10:06,150 --> 00:10:08,240 এবং তারপর আমি অন্য কিছু যোগ করার চেষ্টা করুন, এটা বলতে হবে, 169 00:10:08,240 --> 00:10:11,210 হ্যাঁ, আপনি 0 যা পূর্ণ ক্ষমতা, এ ছিল. 170 00:10:11,210 --> 00:10:13,620 সুতরাং আপনার সারিতে সর্বস্বান্ত হয়. 171 00:10:13,620 --> 00:10:16,990 আপনি চারপাশে মোড়ানো আছে, এবং প্রায় মোড়কে একটি উপায় 172 00:10:16,990 --> 00:10:22,040 আপনি স্বপ্নদর্শী এবং অন্যান্য psets শিখেছি বলছি গেলিক ভাষার ব্যবহার ছিল. 173 00:10:22,040 --> 00:10:29,090 আপনি q.size + + q.head কি কেন বুঝতে বাড়িতে এটি চেষ্টা করে দেখতে পারেন 174 00:10:29,090 --> 00:10:31,080 গেলিক ভাষার ক্ষমতা, কিন্তু আপনি এখানে ডান চেক করা হলে, 175 00:10:31,080 --> 00:10:34,760 আমরা এটি কাজ করে দেখতে পারেন. 176 00:10:34,760 --> 00:10:37,760 তাই শেষ উদাহরণে, q.size ছিল 8 177 00:10:37,760 --> 00:10:47,590 এটা এখানে অ্যারের এই অবস্থান ছিল এবং মাথা, 1 ছিল. 178 00:10:47,590 --> 00:10:51,970 সুতরাং + 1 টি 8, 9 হতে হবে. মডুলাস ক্ষমতা 9 0 হবে. 179 00:10:51,970 --> 00:10:56,640 এটা সূচক 0 যেতে হবে. আমরা সঠিক অবস্থানে থাকব. 180 00:10:56,640 --> 00:10:59,750 এবং তারপর বাড়িতে কিউ চেষ্টা করুন. 181 00:10:59,750 --> 00:11:04,950 কিছু গুরুত্বপূর্ণ জিনিস: একটি স্ট্যাক ও সারিতে মধ্যে পার্থক্য বুঝতে চেষ্টা করুন. 182 00:11:04,950 --> 00:11:11,620 বাড়িতে, সারিবদ্ধ, dequeue, ধাক্কা এবং পপ রূপায়ণকারী সঙ্গে খুব পরিচিত পেতে চেষ্টা করুন. 183 00:11:11,620 --> 00:11:16,560 আপনি তাদের প্রতিটি ব্যবহার করেন এবং যখন এও বুঝতে. 184 00:11:16,560 --> 00:11:22,830 >> সুতরাং এর Pokemons একটি গুচ্ছ সঙ্গে 10 সেকেন্ডের জন্য শিথিল করা যাক. 185 00:11:22,830 --> 00:11:26,080 এবং এখন এর পিছনে ডাটা স্ট্রাকচার করতে যান. 186 00:11:26,080 --> 00:11:29,770 টেবিলের হ্যাশ. মানুষ অনেক হ্যাশ সারণির কাঁচুমাচু ছিল. 187 00:11:29,770 --> 00:11:33,650 সমস্যা 6 সেটে, যাচাইকারী বানান. 188 00:11:33,650 --> 00:11:35,980 হ্যাশ টেবিল এবং চেষ্টা করে, মানুষ অনেক তাদের ভয় পেতে. 189 00:11:35,980 --> 00:11:38,540 তারা তারা বুঝতে খুব একটা কঠিন মনে. হাঁ? 190 00:11:38,540 --> 00:11:41,490 [রব বাউডেন] সমস্যা 5 সেট. >> সমস্যা হাঁ, 5 সেট. ধন্যবাদ রব. 191 00:11:41,490 --> 00:11:43,370 হ্যাঁ. ছয় অভিমান এন 'বহান, হাঁ করে. 192 00:11:43,370 --> 00:11:49,340 সমস্যা বানান যাচাইকারী ছিল 5 সেট, এবং আপনি একটি হ্যাশ টেবিল বা একটি চেষ্টা হয় ব্যবহার ছিল. 193 00:11:49,340 --> 00:11:55,360 মানুষ অনেক তারা বুঝতে সুপার কঠিন ছিল, কিন্তু তারা আসলে বেশ সহজ হয়. 194 00:11:55,360 --> 00:12:01,290 একটি হ্যাশ টেবিল মূলত, কি? একটি হ্যাশ টেবিল লিঙ্ক তালিকার একটি অ্যারে. 195 00:12:01,290 --> 00:12:06,730 একটি অ্যারে এবং একটি হ্যাশ টেবিল মধ্যে একমাত্র পার্থক্য 196 00:12:06,730 --> 00:12:09,730 হ্যাশ টেবিল আপনি একটি হ্যাশ ফাংশন কিছু বলা আছে. 197 00:12:09,730 --> 00:12:12,080 একটি হ্যাশ ফাংশন কি? 198 00:12:12,080 --> 00:12:13,970 আপনাকে বলছি এখানে পড়তে পারেন যদি আমি জানি না. 199 00:12:13,970 --> 00:12:16,090 এটি একটি হ্যাশ টেবিল একটি উদাহরণ. 200 00:12:16,090 --> 00:12:19,220 সুতরাং আপনি যে আপনি 31 উপাদানের সঙ্গে একটি অ্যারে আছে দেখতে পারেন. 201 00:12:19,220 --> 00:12:22,440 এবং কি আমরা একটি হ্যাশ টেবিল কি একটা হ্যাশ ফাংশন আছে হয় 202 00:12:22,440 --> 00:12:26,660 যে একটি কি অনুবাদ করতে হবে, প্রতিটি একটি সূচক int. 203 00:12:26,660 --> 00:12:31,740 যদি, উদাহরণস্বরূপ, আমি বি হ্যারিসন জন্য চয়ন করতে চান, 204 00:12:31,740 --> 00:12:34,190 আমি আমার হ্যাশ ফাংশন মধ্যে বি হ্যারিসন করা হবে, 205 00:12:34,190 --> 00:12:36,960 এবং হ্যাশ ফাংশন 24 আবার ফিরে আসবে. 206 00:12:36,960 --> 00:12:40,930 তাই আমি আমি 24 সালে বি হ্যারিসন সঞ্চয় করতে চান না. 207 00:12:40,930 --> 00:12:46,580 সুতরাং যে শুধু একটি অ্যারে হচ্ছে এবং একটি হ্যাশ টেবিল থাকার মধ্যে পার্থক্য. 208 00:12:46,580 --> 00:12:48,740 হ্যাশ টেবিল আপনি আপনাকে বলতে হবে যে একটি ফাংশন করতে হবে 209 00:12:48,740 --> 00:12:54,740 যেখানে আপনি সংরক্ষণ করতে ইচ্ছুক যে ডেটা জমা করতে. 210 00:12:54,740 --> 00:12:57,040 হ্যাশ ফাংশন জন্য, আপনি একটি হ্যাশ ফাংশন জন্য দেখতে চাই 211 00:12:57,040 --> 00:13:00,600 যে নিয়ন্ত্রণবাদী এবং উত্তমরুপে বিতরণ করে. 212 00:13:00,600 --> 00:13:07,810 আপনি এখানে দেখতে পারেন, আপনি আমি দোকান চেয়েছিলেন যে তথ্য অনেক আসলে 19 যে ছিল দেখতে 213 00:13:07,810 --> 00:13:12,470 পরিবর্তে সব ফ্রি যা ছিল 31 এবং 30 ও 29, ব্যবহার করে. 214 00:13:12,470 --> 00:13:16,920 তাই আমি যে হ্যাশ ফাংশন খুব ভালভাবে বিতরণ ছিল না. 215 00:13:16,920 --> 00:13:20,710 আমরা যথাযথভাবে বিতরণ করা বলে, এটা আমরা চাই যে মানে 216 00:13:20,710 --> 00:13:26,520 মোটামুটিভাবে, অন্তত 1 বা প্রতিটি জন্য 2 - 217 00:13:26,520 --> 00:13:32,190 মত, অ্যারে মধ্যে সূচকের প্রতিটি জন্য 1 বা 2 এর একটি পার্থক্য. 218 00:13:32,190 --> 00:13:43,950 আপনি প্রায়, অ্যারের মধ্যে প্রতিটি লিঙ্ক তালিকায় উপাদান একই সংখ্যক করাতে চাই. 219 00:13:43,950 --> 00:13:48,600 এবং এটা এটা, হ্যাশ টেবিল মধ্যে বৈধ এর হ্যাশ টেবিল হিসাবে দেখতে চেক সহজ. 220 00:13:48,600 --> 00:13:51,770 >> তারপর গাছ. এটি একটি গাছ. 221 00:13:51,770 --> 00:13:56,400 কম্পিউটার বিজ্ঞান মধ্যে গাছ কোনো কারণে নিচে গোলমালে হয়. 222 00:13:56,400 --> 00:14:00,150 সুতরাং অধিকার এখানে আপনি ট্রি রুট এবং তারপর পাতার আছে. 223 00:14:00,150 --> 00:14:05,630 আপনি শুধু পিতামাতা এবং সন্তানের জন্য নামাবলী জানা উচিত. 224 00:14:05,630 --> 00:14:12,880 প্রতিটি নোডের ঊর্ধ্বতন নীচের যে নোড যা তার শিশু, আছে. 225 00:14:12,880 --> 00:14:19,660 সুতরাং, উদাহরণস্বরূপ, 2, অধিকার আছে 3 এবং অন্যান্য সন্তানের জন্য পিতা বা মাতা হতে যাচ্ছে 226 00:14:19,660 --> 00:14:25,290 3 1 জন্য পিতা বা মাতা এবং আছে অন্যান্য শিশুদের হতে যাচ্ছে যখন. 227 00:14:25,290 --> 00:14:29,990 এবং 1 ক্রমশ 3 এর সন্তান হবে, এবং হয়. 228 00:14:29,990 --> 00:14:34,610 আমরা আরো অনেক কিছু আকর্ষণীয়, একটি বাইনারি অনুসন্ধান বৃক্ষ বলা আছে 229 00:14:34,610 --> 00:14:39,040 যা একটি নোড ডানদিকে সব মান 230 00:14:39,040 --> 00:14:41,660 এখানে ডান, ডান হতে যাচ্ছে - ডান, 231 00:14:41,660 --> 00:14:46,780 root-র মধ্যে উপাদান থেকে বড় হতে যাচ্ছে. 232 00:14:46,780 --> 00:14:49,780 ডানদিকে তাই আমি এখানে ডান সংখ্যা 5 আছে, সব উপাদান 233 00:14:49,780 --> 00:14:51,940 5 থেকে বড় হতে যাচ্ছে, এবং বাম হয় 234 00:14:51,940 --> 00:14:56,770 সব উপাদান 5 তুলনায় কম হতে যাচ্ছে. 235 00:14:56,770 --> 00:14:58,780 কেন এই দরকারী? 236 00:14:58,780 --> 00:15:01,660 ওয়েল, আমি 7 নম্বর এখানে যদি চেক করতে চান, উদাহরণস্বরূপ, 237 00:15:01,660 --> 00:15:05,960 আমি শুধু প্রথম 5 যেতে পারেন এবং আমি দেখতে যাচ্ছি, 5 আর 7 বেশী বা কম কি? 238 00:15:05,960 --> 00:15:09,540 এটা বেশী, তাই আমি এটা ট্রি ডানদিকে করা আছে যাচ্ছে না. 239 00:15:09,540 --> 00:15:13,980 তাই আমি তাকান অনেক কম উপাদান আছে. 240 00:15:13,980 --> 00:15:19,520 একটি বাইনারি অনুসন্ধান বৃক্ষ, নোড বাস্তবায়ন, আমি ঠিক, তথ্য আছে আছে যাচ্ছি 241 00:15:19,520 --> 00:15:21,750 তাই int-n; তবে আপনাকে একটি স্ট্রিং থাকতে পারে 242 00:15:21,750 --> 00:15:23,630 অথবা আপনি যেমনটি কিছু. 243 00:15:23,630 --> 00:15:28,100 আপনাকে কেবল বৃহত্তর কি সংজ্ঞা উপর সতর্কতা অবলম্বন করা আবশ্যক আছে, কম কি. 244 00:15:28,100 --> 00:15:30,390 সুতরাং আপনি স্ট্রিং ছিল, উদাহরণস্বরূপ, যদি আপনি নির্ধারণ করতে পারে 245 00:15:30,390 --> 00:15:34,690 ডানদিকে সমস্ত জিনিষ বৃহত্তর দ্বারা আছে যাচ্ছি যে, 246 00:15:34,690 --> 00:15:40,940 বাম কম লেন্থ আছে যাচ্ছি, তাই এটা আপনার উপর সত্যিই আছে. 247 00:15:40,940 --> 00:15:44,930 >> আমি কিভাবে বিএসটি জন্য খুঁজে বাস্তবায়ন করতে পারি? 248 00:15:44,930 --> 00:15:47,840 আমরা কি করতে হবে সর্বপ্রথম রুট শূন্য যদি পরীক্ষা হয়. 249 00:15:47,840 --> 00:15:50,920 এটি শূন্য, এটা জিনিস আছে না মানে হল 250 00:15:50,920 --> 00:15:53,330 আপনি এমন একটি গাছ, অধিকার না থাকে, কারণ? 251 00:15:53,330 --> 00:15:55,790 তাই আমি মিথ্যা ফিরে. 252 00:15:55,790 --> 00:15:58,740 অন্যথা, আমি সংখ্যা বেশী হলে চেক চলেছি 253 00:15:58,740 --> 00:16:01,720 root-র মধ্যে মান মূলত. 254 00:16:01,720 --> 00:16:04,250 আমি ডান উপাদান খুঁজে পেতে চেষ্টা করতে যাচ্ছি 255 00:16:04,250 --> 00:16:08,590 ট্রি. 256 00:16:08,590 --> 00:16:11,310 আপনি আমি এখানে recursion ব্যবহার করছি যে দেখুন. 257 00:16:11,310 --> 00:16:14,150 যদি কম এবং তারপর, আমি বাম তাকান যাচ্ছি. 258 00:16:14,150 --> 00:16:18,330 এবং পরিশেষে, অন্যথায়, এটি বৃহত্তর কম বা না না হলে, 259 00:16:18,330 --> 00:16:20,660 এটা মান নিজেই যে এর মানে. 260 00:16:20,660 --> 00:16:23,010 তাই আমি শুধু সত্য ফিরে. 261 00:16:23,010 --> 00:16:26,360 আপনি আমি যদি, যদি, যদি ব্যবহৃত যে এখানে দেখতে পারেন. 262 00:16:26,360 --> 00:16:30,820 এবং, মনে রাখবেন ব্যঙ্গ 0, আমরা,, যদি, যদি, যদি ছিল একটি সমস্যা হয়েছে 263 00:16:30,820 --> 00:16:32,780 এবং আপনি অদক্ষতা খুঁজে অনুমিত হয়, 264 00:16:32,780 --> 00:16:35,180 এবং অদক্ষতা যদি আপনি ব্যবহার করেন. 265 00:16:35,180 --> 00:16:39,060 আপনি যদি অন্য, যদি অন্য, যদি ব্যবহৃত, এবং অন্য উচিত. 266 00:16:39,060 --> 00:16:44,240 এবং যদি অন্য হলে এবং অন্য এখানে তাই, আমি অন্য ব্যবহার করা উচিত? 267 00:16:44,240 --> 00:16:46,200 কি যে কেউ - হাঁ? 268 00:16:46,200 --> 00:16:51,140 [ছাত্র ভাষাভাষী, শ্রবণাতীত] 269 00:16:51,140 --> 00:16:53,480 এটা একেবারে ঠিক আছে. তাই সে, এটা কোন ব্যাপার না যে এর বলছে 270 00:16:53,480 --> 00:16:55,930 শুধুমাত্র এই কারণে যে আমরা আগে ছিল অদক্ষতা 271 00:16:55,930 --> 00:16:59,550 যে ছিল, কিছু শর্ত সন্তুষ্ট ছিল হয়তো, যদি, কারণ 272 00:16:59,550 --> 00:17:03,570 যাতে আপনি একটি কাজ করেছেন, কিন্তু তারপর আপনি অন্যান্য অবস্থার সব চেক চালু ছিল. 273 00:17:03,570 --> 00:17:06,319 কিন্তু এই ক্ষেত্রে, এটা এখুনি ফিরে আসেন, তাই এটা কোন ব্যাপার না. 274 00:17:06,319 --> 00:17:09,220 তাই আপনি যদি অন্য ব্যবহার করতে হবে না. 275 00:17:09,220 --> 00:17:11,740 >> এবং পরিশেষে, এর চেষ্টা সম্পর্কে কথা বলুন, 276 00:17:11,740 --> 00:17:13,800 যা সকলের প্রিয়. 277 00:17:13,800 --> 00:17:15,980 একটি করে দেখুন অ্যারে একটি গাছ. 278 00:17:15,980 --> 00:17:20,369 এটা মান সন্ধান খুব দ্রুত, কিন্তু এটা মেমরি অনেক ব্যবহার করে. 279 00:17:20,369 --> 00:17:22,530 এবং এটা শব্দ ফিল্টার সাধারণত, তাই যখন আপনি 280 00:17:22,530 --> 00:17:27,920 আপনার ফোন একটি টেলিফোন বইয়ের মত, উদাহরণস্বরূপ, আমি জানি না, বাস্তবায়ন চাই 281 00:17:27,920 --> 00:17:30,440 এবং আপনি বি টাইপ করতে সক্ষম হতে চান 282 00:17:30,440 --> 00:17:32,510 এবং শুধু বি আছে যারা নাম আছে 283 00:17:32,510 --> 00:17:37,960 এটা উদাহরণস্বরূপ, ব্যবহার করে দেখুন ব্যবহার করে বাস্তবায়ন করা খুব সোজা. 284 00:17:37,960 --> 00:17:39,820 কিভাবে আপনি ব্যবহার করে দেখুন একটি নোড সংজ্ঞায়িত করব? 285 00:17:39,820 --> 00:17:43,910 আপনাকে কেবল is_word হবে যে একটি bool আছে. 286 00:17:43,910 --> 00:17:48,660 অর্থাৎ, যে নোড আগে সমস্ত অক্ষর ব্যবহার করে উপস্থাপন 287 00:17:48,660 --> 00:17:51,920 আপনি একটি শব্দ গঠন করতে পেরেছি, 288 00:17:51,920 --> 00:17:57,230 এবং তারপর আপনি নোড পয়েন্টার একটি অ্যারের করতে হবে. 289 00:17:57,230 --> 00:18:03,120 আপনি আমরা একটি ঊর্ধ্বতন নোড অ্যারের, তাই নোড * অ্যারে আছে দেখতে পারেন? হাঁ? 290 00:18:03,120 --> 00:18:06,050 সুতরাং আসুন যে কাজ করবে কিভাবে দেখতে দিন. বানান চেক জন্য, 291 00:18:06,050 --> 00:18:08,230 আমরা 27 উপাদানের একটি অ্যারে আছে, 292 00:18:08,230 --> 00:18:12,150 আমরা সকল চিঠিপত্র প্লাস ঊর্ধকমা আছে. 293 00:18:12,150 --> 00:18:17,800 আমি বোর্ডে লিখতে সক্ষম হতে চান, কারণ এখানে আগে আমি 2 ব্যবহার করা যাচ্ছে না. 294 00:18:17,800 --> 00:18:20,230 ঠিক আছে. তাই এই ব্যবহার করে দেখুন একটি উদাহরণ. 295 00:18:20,230 --> 00:18:25,600 আমি শুধু প্রথম নোডের নির্ধারণ করুন, আমি 2 উপাদানের একটি অ্যারের করতে হবে 296 00:18:25,600 --> 00:18:29,290 শূন্য থেকে 2 পয়েন্টার, তাই আমি শুধু 'একটি' এবং 'খ' রাখা যে. 297 00:18:29,290 --> 00:18:32,430 এবং আমি যে is_word একটি bool আছে যাচ্ছি. 298 00:18:32,430 --> 00:18:34,420 এটা প্রথম এক জন্য মিথ্যা হতে যাচ্ছে, 299 00:18:34,420 --> 00:18:37,370 ঠিক, কারণ যে আগে আপনি কোনো অক্ষর নেই. 300 00:18:37,370 --> 00:18:40,900 তাই খালি শব্দ একটি শব্দ নয়. সুতরাং এটা মিথ্যা. 301 00:18:40,900 --> 00:18:46,320 আমি এই অভিধান 'একটি' যোগ করতে চান, আমি কি করতে হবে? 302 00:18:46,320 --> 00:18:49,760 আমি শুধু 'একটি' জন্য নতুন নোডের malloc করতে হবে, 303 00:18:49,760 --> 00:18:54,630 এবং তারপর সত্য তার শব্দ যোগ করুন. 304 00:18:54,630 --> 00:19:00,180 তাই এটি শুধু 'একটি' সত্য হতে যাচ্ছে থাকার যে প্রতিনিধিত্ব করে. জানার জন্য? 305 00:19:00,180 --> 00:19:04,120 আমি 'বিএ' যোগ করতে চান তাহলে, আমি 'খ' জন্য malloc 1 করতে হবে, 306 00:19:04,120 --> 00:19:07,550 এবং তারপর আমি, মিথ্যা যাও বুলিয়ান স্থাপন করা যাচ্ছে না 307 00:19:07,550 --> 00:19:10,160 নিজে 'খ' একটি শব্দ নয়. 308 00:19:10,160 --> 00:19:13,010 এরপর আরো একটি 'একটি' জন্য এক, তাই 'বিএ' malloc চলেছি, 309 00:19:13,010 --> 00:19:16,290 এবং তারপর আমি এটা সত্যি একটি শব্দ স্থাপন করতে যাচ্ছি. 310 00:19:16,290 --> 00:19:18,950 'বিএ' একটি শব্দ কারণ. 311 00:19:18,950 --> 00:19:21,910 আমি দেখতে চাই এবং তারপর যদি 'খ', এই অভিধানে যদি 312 00:19:21,910 --> 00:19:26,730 আমি শুধু প্রথম এক, 'খ' যেতে পারেন. আমি নিচে যান, এবং আমি শব্দ তাকান, এবং এটা মিথ্যা বলছেন. 313 00:19:26,730 --> 00:19:30,110 সুতরাং এটি একটি শব্দ নয়. আমি 'বিএ' চেক করতে চান, 314 00:19:30,110 --> 00:19:38,010 আমি প্রথম এক, 'খ' যান, এবং তারপর 'একটি' যান, এবং আমি সত্য দেখতে, তাই এটি একটি শব্দ. জানার জন্য? 315 00:19:38,010 --> 00:19:41,950 মানুষ অনেক চেষ্টা দ্বারা বিভ্রান্ত পেতে. কোন? 316 00:19:41,950 --> 00:19:44,740 >> অবশেষে, Huffman কোডিং. Huffman কোডিং খুবই দরকারী 317 00:19:44,740 --> 00:19:47,550 মেমরি সংরক্ষণ করুন এবং টেক্সট ফাইল কম্প্রেস, 318 00:19:47,550 --> 00:19:52,270 ঠিক কারণ আপনি যেমন, 'একটি' এবং 'ই' ব্যবহার বার অনেক, 319 00:19:52,270 --> 00:19:57,710 আপনি না যতটা 'ফ' বা 'Z' ব্যবহার যদি আপনার নথিতে, কিন্তু আমি জানি না. 320 00:19:57,710 --> 00:20:02,040 প্রতি একক চরিত্র জন্য মাত্র 1 বাইট হচ্ছে, 321 00:20:02,040 --> 00:20:08,520 প্রতি একক - আমরা ASCII টেবিল মধ্যে আছে 256 অক্ষর খুব অনুকূল নয়, 322 00:20:08,520 --> 00:20:11,410 আপনি আরো অনেক কিছু ব্যবহার করে কিছু অক্ষর আছে মাত্র কারণ, 323 00:20:11,410 --> 00:20:15,180 তাই সম্ভবত আপনি তাদের জন্য কম মেমরি ব্যবহার করা উচিত. 324 00:20:15,180 --> 00:20:17,560 আমি কিভাবে Huffman কোডিং ব্যবহার? 325 00:20:17,560 --> 00:20:20,010 আমরা একটি Huffman গাছ যা করতে হবে. 326 00:20:20,010 --> 00:20:23,370  একটি Huffman গাছ নোড আছে 327 00:20:23,370 --> 00:20:27,760 চিঠি, 'গ', 'বি', 'একটি', ভালো হতে যাচ্ছে যে একটি প্রতীক আছে, 328 00:20:27,760 --> 00:20:32,990 আপনি যাই হোক না কেন চিঠি, শব্দ লেখা প্রদর্শিত হবে যে ফ্রিকোয়েন্সি যে একটি ফ্রিকোয়েন্সি, 329 00:20:32,990 --> 00:20:36,280 আপনি যদি জন্য Huffman ট্রি তৈরি হয়েছে 330 00:20:36,280 --> 00:20:41,800 এবং তারপর Huffman ট্রি বাম দিকে নির্দেশ করা যাচ্ছে যে একটি নোডের 331 00:20:41,800 --> 00:20:47,210 এবং ডান দিকে নির্দেশ করা যাচ্ছে যে অন্য একটি নোড. তাই শুধু একটি গাছ মত. 332 00:20:47,210 --> 00:20:49,440 আপনি কিভাবে একটি Huffman ট্রি নির্মাণ করেন? 333 00:20:49,440 --> 00:20:54,020 আপনি সর্বনিম্ন ফ্রিকোয়েন্সি আছে 2 নোড বাছাই চলুন. 334 00:20:54,020 --> 00:20:56,490 আপনি টাই আছে আপনি 2 নোড বাছাই চলুন 335 00:20:56,490 --> 00:20:59,870 পাশাপাশি সর্বনিম্ন ASCII মান আছে. 336 00:20:59,870 --> 00:21:02,420 তারপর আপনি ঐ 2 নোড আউট একটি নতুন ট্রি তৈরি করতে যাচ্ছেন 337 00:21:02,420 --> 00:21:08,030 যে পিতা বা মাতা নোডের মধ্যে সংযুক্ত ফ্রিকোয়েন্সি আছে যাচ্ছে. 338 00:21:08,030 --> 00:21:13,240 এবং তারপর আপনি বন থেকে 2 শিশুদের সরিয়ে চলুন 339 00:21:13,240 --> 00:21:15,570 এবং ঊর্ধ্বতন সঙ্গে তাদের প্রতিস্থাপন. 340 00:21:15,570 --> 00:21:18,930 এবং আপনি শুধুমাত্র আপনি বনের মধ্যে 1 গাছ আছে না হওয়া পর্যন্ত যে পুনরাবৃত্তি চলুন. 341 00:21:18,930 --> 00:21:23,840 সুতরাং আসুন আপনি ZAMYLA জন্য একটি Huffman গাছ করে কিভাবে দেখুন. 342 00:21:23,840 --> 00:21:29,220 আপনি সমস্ত অক্ষর 'এ' ছাড়া ফ্রিকোয়েন্সি 1 আছে এখানে দেখতে পারেন; ফ্রিকোয়েন্সি 2 আছে. 343 00:21:29,220 --> 00:21:34,090 তাই আমি আমি ASCII মান এবং ফ্রিকোয়েন্সি অনুযায়ী করা সব চিঠিপত্র নোড তৈরি. 344 00:21:34,090 --> 00:21:40,090 আমি প্রথম ট্রি তৈরি করতে চান সুতরাং, যদি তা 'এল' এবং 'এম' দিয়ে হবে. 345 00:21:40,090 --> 00:21:43,100 সুতরাং এখানে. জুড়ি ফ্রিকোয়েন্সি 2 হতে হবে 346 00:21:43,100 --> 00:21:49,470 এটা + 1 টি 1, কারণ, তাহলে সর্বনিম্ন ফ্রিকোয়েন্সি সঙ্গে পরবর্তী 2 'ওয়াই' এবং 'জেড' হয়. 347 00:21:49,470 --> 00:21:53,180 2 একটি ফ্রিকোয়েন্সি আছে - এবং তারপর আমি হচ্ছে তাদের সব আছে. 348 00:21:53,180 --> 00:22:00,470 তাই পরবর্তী এক জন্য সর্বনিম্ন ASCII মান আছে বেশী যে কোন কোনটি হয়? 349 00:22:00,470 --> 00:22:04,830 'এ' এবং 'এল'. তাই আমি নতুন নোড নির্মাণ, 350 00:22:04,830 --> 00:22:09,930 এবং পরিশেষে, এটা 4 এবং 2, তাই 2 বাম হতে যাচ্ছে. 351 00:22:09,930 --> 00:22:12,430 এবং এই Huffman গাছ. 352 00:22:12,430 --> 00:22:16,060 আমি কিছু টেক্সট লিখতে চান তারপর যদি, 353 00:22:16,060 --> 00:22:24,440 মত Huffman ট্রি ব্যবহার করে, টেক্সট রূপান্তর বাইনারি খুব সহজ. 354 00:22:24,440 --> 00:22:30,220 আমি বাম চলন্ত একটি 0 এবং ডান চলন্ত বলতে উদাহরণস্বরূপ, যদি, একটি 1 হয় 355 00:22:30,220 --> 00:22:32,410 কি প্রতিনিধিত্ব করতে যাচ্ছে যে হয়? 356 00:22:32,410 --> 00:22:35,530 সুতরাং মত 1, 1, ঠিক আছে, তাই ঠিক আছে, 357 00:22:35,530 --> 00:22:40,370 এবং তারপর, তাই বাকি 0, এল হবে, এবং তারপর 1, 0, 0. 358 00:22:40,370 --> 00:22:43,950 সুতরাং 1, 0, তাই মাত্র 1, 0, 'এ'. 359 00:22:43,950 --> 00:22:47,540 এবং তারপর 0, 1, তাই 'জেড'. 360 00:22:47,540 --> 00:22:52,170 এবং তারপর 1, 0, 0 - কোন. 361 00:22:52,170 --> 00:22:56,780 0, 0 'Y' হতে, তাই অলস হবে. 362 00:22:56,780 --> 00:23:06,060 সুতরাং যে আমার জন্য সব, রব এর উপর নিতে যাচ্ছে. 363 00:23:06,060 --> 00:23:08,400 >> [রব বাউডেন] অতএব, সপ্তাহে 7 স্টাফ. 364 00:23:08,400 --> 00:23:11,390 আমরা সত্যিই দ্রুত যান উপর অনেক পেয়েছেন. 365 00:23:11,390 --> 00:23:13,430 Bitwise অপারেটর, বাফার ওভারফ্লো, 366 00:23:13,430 --> 00:23:16,760 CS50 লাইব্রেরি তারপর, এইচটিএমএল, HTTP সিএসএস. 367 00:23:16,760 --> 00:23:20,990 15 থেকে 20 মিনিটের মত সমস্ত সালে. 368 00:23:20,990 --> 00:23:24,330 Bitwise অপারেটরদের. আপনাকে জানতে হবে যে তাদের মধ্যে 6 আছে. 369 00:23:24,330 --> 00:23:31,200 Bitwise ও, bitwise বা, XOR, বাম স্থানান্তর, ডানে সরান, এবং না. 370 00:23:31,200 --> 00:23:35,420 রাইট নামান এবং আপনি সবে এ সব বক্তৃতায় দেখেছি না. 371 00:23:35,420 --> 00:23:40,480 আমরা দ্রুত এটা এখানে উপর যাবেন, কিন্তু এটি এই যে বিদ্যমান 6 যে জানা ভাল. 372 00:23:40,480 --> 00:23:45,070 Bitwise অপারেটরদের আপনাকে + + 4 3 যখন মতো যে মনে রাখুন. 373 00:23:45,070 --> 00:23:49,420 আপনি 3 এবং 4 বাইনারি সাথে ডিল করা হয় না. 374 00:23:49,420 --> 00:23:56,550 Bitwise অপারেটরদের সঙ্গে আপনি আসলে সংখ্যা 3 এবং 4 পৃথক বিটের সাথে ডিল করা হয়. 375 00:23:56,550 --> 00:23:59,120 >> সুতরাং আমরা বলবো যে প্রথম এক bitwise, নয় 376 00:23:59,120 --> 00:24:02,340 এবং এটি আছে সব সব বিট উল্টানো হয়. 377 00:24:02,340 --> 00:24:05,500 আপনি সি এই লেখার যদি তাই এখানে,, আপনি এটা লিখতে না 378 00:24:05,500 --> 00:24:09,380 ~ 11011 বা যাই হোক না কেন, আপনি, এটা ~ 4 মত লিখতে হবে 379 00:24:09,380 --> 00:24:12,970 এবং তারপর এটি 4 বাইনারি উপস্থাপনা টুসকি হবে. 380 00:24:12,970 --> 00:24:24,800 তাই এখানে, 1 এর থেকে ~ কিছু বাইনারি সংখ্যা 1101101 হুবহু 0 এর সব 1 এর টুসকি যাচ্ছে এবং সমস্ত 0 এর. 381 00:24:24,800 --> 00:24:27,600 আমি সেখানে বলে, এই ঘন ব্যবহার, 382 00:24:27,600 --> 00:24:30,830 আমরা কিছু নম্বর চিন্তা করতে চান মত এবং আমরা কিছুক্ষনের মধ্যে এটি দেখতে পাবেন, হয় 383 00:24:30,830 --> 00:24:35,460 বিট সব তাদের মধ্যে একজন ছাড়া 1 যেখানে. 384 00:24:35,460 --> 00:24:38,560 সুতরাং সংখ্যা প্রকাশ করতে সাধারণত সহজ 385 00:24:38,560 --> 00:24:40,630 ঠিক যে একক বিট সেট করা হয় যেখানে, 386 00:24:40,630 --> 00:24:44,650 এবং তারপর এটি ~, তাই প্রত্যেক অন্যান্য বিট যে এক ছাড়া সেট করা হয় নিতে. 387 00:24:44,650 --> 00:24:50,300 সুতরাং যে আমরা কিছুক্ষনের মধ্যে আরো ব্যবহার চলুন কি. 388 00:24:50,300 --> 00:24:58,220 >> Bitwise বা. এখানে 2 বাইনারি সংখ্যা, এবং এই 2 নম্বর হয় 389 00:24:58,220 --> 00:25:00,780 তারা প্রতি সম্ভব প্রতিনিধিত্ব করেন, যেহেতু প্রায় কাছাকাছি প্রতিনিধি 390 00:25:00,780 --> 00:25:07,290 বিট সমন্বয় আপনাকে কাজ করতে হবে পারে. 391 00:25:07,290 --> 00:25:13,540 আমি প্রতিটি বিট or'd যখন এখানে,, আমরা সরাসরি নিচে তুলনা চলুন. 392 00:25:13,540 --> 00:25:15,410 সুতরাং বাম দিকে আমরা একটি 1 এবং একটি 1 আছে. 393 00:25:15,410 --> 00:25:20,510 আমি bitwise যখন | যারা, আমি কি পেতে যাচ্ছি? এক. 394 00:25:20,510 --> 00:25:25,320 0 এবং 1 আমাকে দিতে হবে | তারপর bitwise? এক. 395 00:25:25,320 --> 00:25:27,840 Bitwise 1 এবং 0 একই জিনিস, এক হতে যাচ্ছে. 396 00:25:27,840 --> 00:25:31,880 Bitwise 0 | 0 আমার 0 দিতে হবে. 397 00:25:31,880 --> 00:25:37,300 0 মামলা | তাই আমি 0 পাওয়া যেখানে শুধু কেস 0 হয়. 398 00:25:37,300 --> 00:25:40,020 এবং আপনি শুধু আপনার লজিক্যাল ors মত যে মনে করতে পারেন. 399 00:25:40,020 --> 00:25:44,830 আপনি সত্য হিসাবে 1 এবং হিসাবে মিথ্যা 0 মনে সুতরাং, যদি একই জিনিস এখানে প্রযোজ্য. 400 00:25:44,830 --> 00:25:50,040 সুতরাং সত্য বা সত্য সত্য; সত্য বা মিথ্যা সত্য. 401 00:25:50,040 --> 00:25:57,150 মিথ্যা বা সত্য সত্য; মিথ্যা বা মিথ্যা আসলে মিথ্যা যে এর একমাত্র জিনিস. 402 00:25:57,150 --> 00:26:00,100 এখানে আপনি জানা উচিত যে উদাহরণ 403 00:26:00,100 --> 00:26:05,160 bitwise অপারেটর ব্যবহার করা হয় যখন একটি প্রশংসনীয় ভাল উদাহরণ হিসাবে. 404 00:26:05,160 --> 00:26:08,660 এখানে যদি আমরা বা Ox20 সঙ্গে মূলধন 'এ', 405 00:26:08,660 --> 00:26:11,830 এবং আমরা আমরা কিছু পেতে, একটি দ্বিতীয় এই তাকান করব. 406 00:26:11,830 --> 00:26:16,020 এবং আমরা বা ছোট হাতের 'একটি' Ox20 সঙ্গে, আমরা কিছু পেতে হলে. 407 00:26:16,020 --> 00:26:26,750 সুতরাং আসুন ASCII টেবিল থামা যাক. 408 00:26:26,750 --> 00:26:34,000 ঠিক আছে. এখানে আমরা 'এ' যে দেখুন - 409 00:26:34,000 --> 00:26:36,920 এখানে আমরা 'এ' 65 দশমিক হল আছে. 410 00:26:36,920 --> 00:26:45,120 কিন্তু আমি Ox41 যা হেক্সাডেসিমেল, সঙ্গে যাবেন. 411 00:26:45,120 --> 00:26:48,280 চমত্কার নিশ্চিত আমরা ক্লাসে এটা দেখেছি. আমি মনে করি আমরা বর্গ তা দেখেছি মনে 412 00:26:48,280 --> 00:26:52,730 এটা হেক্সাডেসিমাল থেকে বাইনারি রূপান্তর বেশ সহজ করে. 413 00:26:52,730 --> 00:26:55,280 তাই এখানে, আমি বাইনারি মধ্যে 4 লাগাতে চান, 414 00:26:55,280 --> 00:26:59,550 যে শুধু 0100 হতে যাচ্ছে. 415 00:26:59,550 --> 00:27:03,620 এই 1 এর জায়গা, 2 এর জায়গা, 4 এর জায়গা, তাই এই 4 হয়. 416 00:27:03,620 --> 00:27:08,550 তারপর আমি 0001 হতে যাচ্ছে যা বাইনারি মধ্যে 1 বিভক্ত করতে পারেন. 417 00:27:08,550 --> 00:27:14,280 এবং তাই এই বাইনারি মধ্যে 'এ' র উপস্থাপনা হতে যাচ্ছে. 418 00:27:14,280 --> 00:27:22,720 ছোট হাতের 'একটি', এটা এখন Ox61 হতে যাচ্ছে গ্রহণ, 419 00:27:22,720 --> 00:27:27,050 তার বাইনারি মধ্যে এই পর্যন্ত বিভাজন যেখানে,, তাই একটি 6 - 420 00:27:27,050 --> 00:27:37,830 এর আসলে এটা করুক না - কোন রবার আছে? ইরেজার. 421 00:27:37,830 --> 00:27:48,220 Ox61. সুতরাং বাইনারি মধ্যে 6 বিভাজন + 4 + 2 + 0 0 হতে যাচ্ছে. 422 00:27:48,220 --> 00:27:54,610 এবং বিভাজন 1 0001 হতে যাচ্ছে. 423 00:27:54,610 --> 00:27:56,520 , এই 2 মধ্যে পার্থক্য এ খুঁজছি 424 00:27:56,520 --> 00:28:04,250 আমরা একটি ছোট হাতের এবং বড় হাতের 'এ' মধ্যে একমাত্র পার্থক্য এই একক বিট যে দেখতে. 425 00:28:04,250 --> 00:28:11,810 ঠিক আছে - তাই এখানে ফিরে আসছে. 426 00:28:11,810 --> 00:28:15,920 আমরা বিট Ox20 হয় তাকান, এখানে ফিরে আসছে 427 00:28:15,920 --> 00:28:22,210 তার বাইনারি মধ্যে তাই বিভাজন Ox20, 428 00:28:22,210 --> 00:28:27,310 0010, 0000 হল. 429 00:28:27,310 --> 00:28:33,470 Ox20, সেট করা হয় যে শুধুমাত্র বিট, আমরা সঙ্গে সংশ্লিষ্ট যে এই বিট 430 00:28:33,470 --> 00:28:38,210 মূলধন এবং ছোট হাতের 'একটি' মধ্যে সুইচিং সঙ্গে. 431 00:28:38,210 --> 00:28:47,610 যদি এই এক, 'এ', যা আমি বা 'এ', ' 432 00:28:47,610 --> 00:28:50,580 যদি আমি বা Ox20 সঙ্গে 'এ', 433 00:28:50,580 --> 00:28:53,490 কি আমি পেতে যাচ্ছি? 434 00:28:53,490 --> 00:28:58,960 [ছাত্র, শ্রবণাতীত] >> ছোট হাতের 'একটি', এটি একটি 1 এই বিট টুসকি যাচ্ছে কারণ. 435 00:28:58,960 --> 00:29:04,170 এবং যদি আমি বা 'একটি' Ox20 সঙ্গে কি আমি পেতে যাচ্ছি? 436 00:29:04,170 --> 00:29:08,780 একটি ছোট হাতের, কারণ শুধু oring 'একটি' Ox20 সঙ্গে, 437 00:29:08,780 --> 00:29:14,580 আমি শুধু একটি 1 এই একক বিট oring করা যাচ্ছে না; এটা কোন ব্যাপার না, তাই এটি ইতিমধ্যেই একটি 1 এর. 438 00:29:14,580 --> 00:29:17,960 তাই আমরা 'একটি' এবং 'একটি' পেতে. 439 00:29:17,960 --> 00:29:24,820 >> Bitwise এবং. আবার, আমরা আমাদের যৌক্তিক ও সহযোগীর হিসাবে এই মনে করতে পারেন. 440 00:29:24,820 --> 00:29:28,180 বাম দিকে আমরা সত্য ও সত্য আছে. 441 00:29:28,180 --> 00:29:31,160 এটা সত্য হতে যাচ্ছে, এবং ক্ষেত্রে সব জন্য এর 442 00:29:31,160 --> 00:29:36,270 মিথ্যা ও সত্য বা সত্য ও মিথ্যা, বা মিথ্যা ও মিথ্যা 443 00:29:36,270 --> 00:29:38,550 সেগুলো কেউ সত্য. 444 00:29:38,550 --> 00:29:44,170 তাই আমরা পেয়ে শেষ পর্যন্ত 1000 হয়. 445 00:29:44,170 --> 00:29:48,830 সুতরাং এখন, এখানে, এখানে আমি বিশ্বাসভাজন bitwise না ব্যবহার করেছি যেখানে আছে, 446 00:29:48,830 --> 00:29:52,230 আমরা Ox20 ছিল যেখানে. 447 00:29:52,230 --> 00:29:54,350 তাই এই Ox20 হয়. 448 00:29:54,350 --> 00:29:59,570 এখন আমি কি করতে চান, bitwise Ox20 এর ~. 449 00:29:59,570 --> 00:30:03,600 যে সমস্ত বিট টুসকি যাচ্ছে. 450 00:30:03,600 --> 00:30:09,330 তাই আমি 1101, 1111 আছে. 451 00:30:09,330 --> 00:30:18,940 তাই 'এ' ~ Ox20 আমাকে কি দিতে হবে সঙ্গে anded? 452 00:30:18,940 --> 00:30:22,430 আমরা সত্যিই সম্পর্কে চিন্তা করা প্রয়োজন শুধুমাত্র বিট, এই এক 453 00:30:22,430 --> 00:30:26,020 যেহেতু, এই বিট সব 1 থেকে সেট করা হয়, 454 00:30:26,020 --> 00:30:29,000 তারপর আমরা ঠিক কি 'এ' ছিল পেতে যাচ্ছেন, 455 00:30:29,000 --> 00:30:31,260 ছাড়া, সম্ভবত, কি এই বিট. 456 00:30:31,260 --> 00:30:34,460 এটি একটি 1 যদি, এখন এটি একটি 0 নির্ধারণ করা যাচ্ছে না 457 00:30:34,460 --> 00:30:39,810 এই যা কিছু থাকে, এই 0 হতে যাচ্ছে সঙ্গে anded কারণ. 458 00:30:39,810 --> 00:30:43,280 তাই 'এ' ~ Ox20 আমাকে দিতে যাচ্ছে & কি? 459 00:30:43,280 --> 00:30:48,200 [ছাত্র উত্তর, শ্রবণাতীত] >> এবং 'একটি' এবং কি - এটা 'এ' এর. 460 00:30:48,200 --> 00:30:52,170 এবং 'একটি' & ~ Ox20 আমাকে দিতে যাচ্ছে কি? 461 00:30:52,170 --> 00:30:56,720 'এ' এই বর্তমানে একটি 1 কারণ. 462 00:30:56,720 --> 00:30:59,570 এই 0 দিয়ে Anding, এটি একটি 0 করতে হবে 463 00:30:59,570 --> 00:31:02,530 এবং এখন আমরা একটি 'এ' পেতে যাচ্ছেন. 464 00:31:02,530 --> 00:31:06,600 >> দুটোই ', এ' এবং এই ধরনের শেষ কিন্তু না অন্তত, 465 00:31:06,600 --> 00:31:10,830 আমরা XOR আছে. এটা অনেক মত আছে বা, 466 00:31:10,830 --> 00:31:14,400 এটি একচেটিয়াভাবে অর্থ বা ছাড়া. 467 00:31:14,400 --> 00:31:18,420 এর মানে আপনি সাধারণত হিসাবে অথবা বাস্তব জগতে মনে ভালো হয়. 468 00:31:18,420 --> 00:31:23,190 সুতরাং আপনি হয় 'এক্স' বা 'Y', কিন্তু না উভয় না. 469 00:31:23,190 --> 00:31:28,700 এখানে ^ 1 1 0 হতে যাচ্ছে. 470 00:31:28,700 --> 00:31:33,650 সত্য কারণ, এই - এটি যৌক্তিক সত্য এবং মিথ্যা দিয়ে যেমন কাজ করে না 471 00:31:33,650 --> 00:31:37,150 , bitwise ও এবং বা না 472 00:31:37,150 --> 00:31:40,100 কিন্তু সত্য ^ সত্য মিথ্যা. 473 00:31:40,100 --> 00:31:44,810 শুধুমাত্র এক তাদের মধ্যে সত্য যদি আমরা কেবল সত্য ফিরে চাই না. 474 00:31:44,810 --> 00:31:50,950 সুতরাং ^ 1 1 0. কি ^ 1 0 সম্পর্কে কি? 475 00:31:50,950 --> 00:31:56,010 1. ^ 0 1 ^ 0 0 0 হয়, 1. 476 00:31:56,010 --> 00:32:03,890 তাই সব পরিস্থিতির অধীন, 0 bitwise কিছু 0 0 হবে. 477 00:32:03,890 --> 00:32:10,270 1 bitwise কিছু 0 বা 0 bitwise 1, 478 00:32:10,270 --> 00:32:14,660 এটা যদি | অথবা ^, এটি একটি 1 হবেন, এবং তা ও যদি এটা 0 হবেন. 479 00:32:14,660 --> 00:32:20,850 এবং 1 bitwise 1 1 নয় যেখানে শুধুমাত্র ক্ষেত্রে একচেটিয়া বা দিয়ে থাকে. 480 00:32:20,850 --> 00:32:24,580 এটা 0110 এর. 481 00:32:24,580 --> 00:32:36,520 সুতরাং এখানে এখন, XOR ব্যবহার করে - তাই আমরা ফিরে 20 করেন. 482 00:32:36,520 --> 00:32:43,480 'এ' ^ Ox20 আমরা তুলনা করছি এইসব 2 বিট. 483 00:32:43,480 --> 00:32:50,020 সুতরাং একটি 1 ^ 0 আমাকে কি দিতে হবে? একটি এক. 484 00:32:50,020 --> 00:32:58,430 'এ' ^ Ox20 আমাকে দিতে হবে? একটি ছোট হাতের. 485 00:32:58,430 --> 00:33:04,010 'একটি' ^ Ox20 আমাকে দিতে হবে? ক্যাপিটাল এ 486 00:33:04,010 --> 00:33:09,310 কারণ এই কাজ করা হয় যাই হোক না কেন, Ox20 সঙ্গে এই XORing 487 00:33:09,310 --> 00:33:15,380 কার্যকরভাবে এই বিট যা কিছু আলোকসম্পাতের হয়. 488 00:33:15,380 --> 00:33:21,240 এই একটি হল 0, এটি এখন একটি 1 হয়ে যাচ্ছে. 489 00:33:21,240 --> 00:33:26,160 এই একটি 1 যেহেতু, ^ 1 1 0. 490 00:33:26,160 --> 00:33:33,280 সুতরাং আমাদের 'একটি' 'এ' হয়ে উঠেছে, এবং আমাদের 'এ' 'একটি' পরিণত হয়েছে. 491 00:33:33,280 --> 00:33:36,910 সুতরাং XOR ধরো আলোকসম্পাতের মধ্যে সত্যিই সুবিধাজনক উপায়. 492 00:33:36,910 --> 00:33:39,960 আপনি শুধু অক্ষর একটি স্ট্রিং উপর বারবার চাই 493 00:33:39,960 --> 00:33:44,330 এবং প্রতি একক চরিত্রের ক্ষেত্রে বিকল্প, 494 00:33:44,330 --> 00:33:50,680 Ox20 সঙ্গে আপনি শুধু XOR সবকিছু. 495 00:33:50,680 --> 00:33:55,220 >> এখন আমরা স্থানান্তর বাকি আছে. বাম স্থানান্তর শুধু, মূলত, যাচ্ছে 496 00:33:55,220 --> 00:34:01,250 মধ্যে, বা বাম সংখ্যার সব ধাক্কা, এবং তাদের পিছনে 0 এর সন্নিবেশ. 497 00:34:01,250 --> 00:34:05,550 তাই আমরা এখানে 00001101 আছে. 498 00:34:05,550 --> 00:34:08,560 আমরা ডান থেকে 3 0 এর মধ্যে ধাক্কা চলুন 499 00:34:08,560 --> 00:34:13,580 এবং আমরা 01101000 পেতে. 500 00:34:13,580 --> 00:34:16,380 Nonbinary ভাষায়, 501 00:34:16,380 --> 00:34:24,699 আমরা যে সত্যিই 13 বাম স্থানান্তরিত 3 সঙ্গে, আমাদের 104 যা দেয় তার আচরণ যে দেখতে. 502 00:34:24,699 --> 00:34:32,530 সুতরাং বাম নাড়াচাড়া, আমরা এখানে দেখতে, এক্স << Y মূলত এক্স * 2 ^ Y হয়. 503 00:34:32,530 --> 00:34:40,139 ^ 3 13 * 2, ^ 3 2 তাই * 8 13 104 হয়, 8. 504 00:34:40,139 --> 00:34:45,679 আপনি শুধু সাধারণ বাইনারি, কিভাবে প্রতিটি অবস্থান ঠিকানা সম্পর্কে যদি মনে করেন 505 00:34:45,679 --> 00:34:49,530 আমরা ডান থেকে শুরু করা যায়, তাহলে 1 এর জায়গায়, তারপর 2 এর জায়গা, 4 এর জায়গা. 506 00:34:49,530 --> 00:34:51,330 তাই ডান থেকে 0 এর মধ্যে ধাক্কা দিয়ে, 507 00:34:51,330 --> 00:34:55,080 আমরা শুধু, 8 এর জায়গায় 4 এর জায়গায় ছিল যে জিনিষ ঠেলাঠেলি করছি 508 00:34:55,080 --> 00:34:57,920 এবং 16 এর জায়গায় 8 এর জায়গায় ছিল যে জিনিস. 509 00:34:57,920 --> 00:35:01,280 প্রতিটি শিফ্ট মাত্র 2 দ্বারা multiplies. হাঁ? 510 00:35:01,280 --> 00:35:05,210 আপনি 5 দ্বারা স্থানান্তরিত হলে [ছাত্র] কি হবে? 511 00:35:05,210 --> 00:35:10,790 [বাউডেন] আপনি 5 দ্বারা স্থানান্তরিত যদি আপনি শুধু সংখ্যা হারাবে. 512 00:35:10,790 --> 00:35:15,410 অবশ্যম্ভাবীভাবেই, এটা একই জিনিস. ভালো লেগেছে, ইন্টিজার শুধুমাত্র 32 বিট আছে, 513 00:35:15,410 --> 00:35:20,750 আপনি 2 বড় ইন্টিজার যোগ সুতরাং, যদি তা শুধু একটি পূর্ণসংখ্যা মধ্যে মাপসই করা হবে না. 514 00:35:20,750 --> 00:35:23,660 সুতরাং এখানে একই জিনিস. আপনি 5 দ্বারা স্থানান্তরিত হলে, 515 00:35:23,660 --> 00:35:25,650 আমরা শুধু যে এক হারাবে. 516 00:35:25,650 --> 00:35:28,820 এবং যে "প্রায়" আমি দ্বারা অর্থ কি ধরনের 517 00:35:28,820 --> 00:35:37,470 আপনি খুব বেশী দূরে নামান, আপনি বিট হারান যেখানে. 518 00:35:37,470 --> 00:35:39,830 >> রাইট শিফট বিপরীত হতে যাচ্ছে, 519 00:35:39,830 --> 00:35:43,090 আমরা শেষ বন্ধ 0 এর গুঁতা চলুন যেখানে 520 00:35:43,090 --> 00:35:48,400 এবং আমাদের উদ্দেশ্যে, বাম থেকে 0 এর মধ্যে পূরণ করুন. 521 00:35:48,400 --> 00:35:52,910 তাই এই কাজ, আমরা মূলত আমরা ইতিমধ্যে সম্পন্ন করেছে কি reversing করছি. 522 00:35:52,910 --> 00:35:57,780 এবং আমরা, ডানে তিনটি 0 এর মাত্র বন্ধ নিপতিত দেখুন 523 00:35:57,780 --> 00:36:02,020 এবং আমরা ডান থেকে 1101 সমস্ত উপায় push করা. 524 00:36:02,020 --> 00:36:08,380 এই কার্যকরভাবে, X / 2 ^ y, ও যা, 104 >> 3 করছে. 525 00:36:08,380 --> 00:36:11,200 সুতরাং এখন, এখানে, এটি একটি অনুরূপ ধারণা. 526 00:36:11,200 --> 00:36:18,720 কেন এটা ঠিক প্রায় X / 2 ^ Y, এবং না আসলে এক্স / 2 ^ Y? 527 00:36:18,720 --> 00:36:22,240 আমি 4 দ্বারা স্থানান্তরিত ছিল, আমি একটি 1 নষ্ট হতো না. 528 00:36:22,240 --> 00:36:25,950 মূলত, শুধু সাধারণ পূর্ণসংখ্যা বিভাগের কি আপনি মনে, মনে করি. 529 00:36:25,950 --> 00:36:31,070 সুতরাং, 5/2 ভালো 2. এটা 2.5 না. 530 00:36:31,070 --> 00:36:35,000 এটা এখানে একই ধারণা. আমরা 2 দ্বারা বিভক্ত, যখন 531 00:36:35,000 --> 00:36:39,910 আমরা পথ ধরে বিজোড় বিট হারাতে পারেন. 532 00:36:39,910 --> 00:36:43,870 তাই এখন - যে bitwise জন্য এটি. এটা আপনাকে জানতে হবে সব. 533 00:36:43,870 --> 00:36:46,340 আমরা বর্গ দেখেছি ব্যবহারের ক্ষেত্রে মনে রাখবেন, 534 00:36:46,340 --> 00:36:49,340 মত একটি বিট মাস্ক, bitwise অপারেটরদের জন্য দরকারী 535 00:36:49,340 --> 00:36:53,220 অথবা আপনি বিট মাস্ক জন্য তাদের ব্যবহার. 536 00:36:53,220 --> 00:36:58,620 ক্যাপিটাল অক্ষর এবং ছোট হাতের অক্ষর, ধর্মান্তর খুবই prototypical উদাহরণ. 537 00:36:58,620 --> 00:37:01,640 >> ঠিক আছে, তাই ওভারফ্লো আক্রমণের বাফার. 538 00:37:01,640 --> 00:37:05,110 যে কেউ এই ফাংশন সঙ্গে ভুল ছিল কি মনে পড়ে? 539 00:37:05,110 --> 00:37:10,140 আমরা 12 বাইট একটি অ্যারের, 12 অক্ষর, ঘোষিত লক্ষ্য করুন 540 00:37:10,140 --> 00:37:18,510 এবং তারপর আমরা 12 অক্ষর সম্পূর্ণ পংক্তি বার আমাদের বাফারের মধ্যে কপি করুন. 541 00:37:18,510 --> 00:37:25,080 সুতরাং সমস্যা এখানে কি? 542 00:37:25,080 --> 00:37:32,270 কেন 12 - ম্যাজিক নম্বর 12 প্রায় কাছাকাছি অবিলম্বে হিসাবে পপ আউট করা উচিত? 543 00:37:32,270 --> 00:37:35,050 বারের অধিক 12 অক্ষরের হতে হবে কি না? 544 00:37:35,050 --> 00:37:41,200 কি বার অক্ষর লক্ষ লক্ষ হয় তাহলে কি হবে? 545 00:37:41,200 --> 00:37:46,010 আমার মনে হয় এটি. বার যথেষ্ট, যদি 546 00:37:46,010 --> 00:37:50,330 এটা সম্পূর্ণ হবে - 'সি', 'গ' এটি শুধুমাত্র 12 অক্ষর ছিল না যত্ন; 547 00:37:50,330 --> 00:37:53,280 'গ' এটা যে অনেক বাইট মাপসই পারে না গ্রাহ্য করে না. 548 00:37:53,280 --> 00:37:58,250 এটা ঠিক সম্পূর্ণভাবে গৃহস্থালি মুছে ফেলা হবে, আমরা তার জন্য বরাদ্দ করেছি 12 বাইট, 549 00:37:58,250 --> 00:38:01,830 এবং মেমরির মধ্যে এটি অতীতের সবকিছু আসলে যে বাফার যাও অন্তর্গত নয় এমন 550 00:38:01,830 --> 00:38:06,520 যাই হোক না কেন স্ট্রিং বার করে দিয়ে. 551 00:38:06,520 --> 00:38:09,780 তাই এই আমরা বর্গ দেখেছি ছবি ছিল 552 00:38:09,780 --> 00:38:12,220 আমরা আমাদের স্ট্যাকের উদ্ভিন্ন আছে. 553 00:38:12,220 --> 00:38:16,040 আপনি এই ছবি ব্যবহৃত বা আবার তাদের সঙ্গে পরিচিত হয়. 554 00:38:16,040 --> 00:38:21,260 আমরা আমাদের স্ট্যাকের উদ্ভিন্ন করেছেন, মেমরি অ্যাড্রেস শীর্ষে 0 থেকে আরম্ভ হয় 555 00:38:21,260 --> 00:38:26,270 এবং নীচে 4 বিলিয়ন চান নিচে বাড়া. 556 00:38:26,270 --> 00:38:28,820 আমরা কোথাও মেমরির মধ্যে আমাদের অ্যারের 'গ' আছে 557 00:38:28,820 --> 00:38:32,260 তারপর আমরা ডান এটা নীচে বার আমাদের ইশারা আছে, 558 00:38:32,260 --> 00:38:38,720 এবং তারপর আমরা এই সংরক্ষিত ফ্রেম আমাদের ফিরতি ঠিকানা মধ্যে পয়েন্টার এবং আমাদের মূল রুটিন এর স্ট্যাকের আছে. 559 00:38:38,720 --> 00:38:40,800 ফিরতি ঠিকানা কি মনে রাখুন? 560 00:38:40,800 --> 00:38:45,360 প্রধান একটি ফাংশন বার কল, একটি ফাংশন foo বিন্যাস কল যখন এটি আছে 561 00:38:45,360 --> 00:38:48,100 অবশ্যম্ভাবীরূপে, আয় বার. 562 00:38:48,100 --> 00:38:52,610 সুতরাং যখন বার আয়, তারা এটা বলা যে foo বিন্যাস ফিরে যাচ্ছে যে জানা প্রয়োজন. 563 00:38:52,610 --> 00:39:01,360 তাই ফিরতি ঠিকানা যখন ফাংশন আয় ফিরে এটা যে ফাংশন এর ঠিকানা. 564 00:39:01,360 --> 00:39:05,830 , সুবিধামত, কারণ বাফার ওভারফ্লো আক্রমণের জন্য গুরুত্বপূর্ণ যে কারণ 565 00:39:05,830 --> 00:39:09,580 হ্যাকার যে ফিরতি ঠিকানা পরিবর্তন করতে চান. 566 00:39:09,580 --> 00:39:14,950 পরিবর্তে ফিরে foo বিন্যাস যাচ্ছে, আমি ফিরে হ্যাকার আমাকে ফিরে যেতে চায় যেখানেই যান যাচ্ছি. 567 00:39:14,950 --> 00:39:17,760 এবং, সুবিধামতো, হ্যাকার ঘন ঘন ফিরে যেতে চায় যেখানে 568 00:39:17,760 --> 00:39:22,400 আমরা মূলত ছিল বাফার শুরু হয়. 569 00:39:22,400 --> 00:39:26,170 তাই আবার,, লিটল ভারতীয় বিজ্ঞপ্তি. 570 00:39:26,170 --> 00:39:28,490 প্রয়োগ একটি লিটল ভারতীয় ব্যবস্থার একটি উদাহরণ, 571 00:39:28,490 --> 00:39:34,140 তাই একটি পূর্ণসংখ্যা অথবা একটি পয়েন্টার বিপরীত বাইট দিয়ে সংরক্ষণ করা হয়. 572 00:39:34,140 --> 00:39:38,980 তাই আমরা এখানে দেখুন - এই? হ্যাঁ. 573 00:39:38,980 --> 00:39:45,660 আমরা Ox80, OxC0, Ox35, OxO8 দেখুন. 574 00:39:45,660 --> 00:39:48,250 হেক্সাডেসিমেল সংখ্যা মনে রাখুন? 575 00:39:48,250 --> 00:39:50,640 আমরা, লিটল ভারতীয় ইন হেক্সাডেসিমেল সংখ্যার বিপরীত না 576 00:39:50,640 --> 00:39:56,110 2 হেক্সাডেসিমেল সংখ্যা একটি একক বাইট আপ করা, এবং আমরা বাইট বিপরীত কারণ. 577 00:39:56,110 --> 00:40:00,300 কেন আমরা, মত, 80530CO8 সংরক্ষণ করবেন না যে. 578 00:40:00,300 --> 00:40:07,520 আমরা ডান থেকে শুরু,, পরিবর্তে, 2 ডিজিটের প্রতিটি জোড়া সঞ্চয়. 579 00:40:07,520 --> 00:40:10,880 যে ঠিকানা শুরুর ঠিকানা বোঝায় 580 00:40:10,880 --> 00:40:15,190 আমরা আসলে প্রথমেই মধ্যে কপি চেয়েছিলেন আমাদের বাফারের মধ্যে. 581 00:40:15,190 --> 00:40:19,230 দরকারী যে কারণে কি যদি, কারণ আক্রমণকারী 582 00:40:19,230 --> 00:40:24,100 পরিবর্তে শুধুমাত্র ছিল একটি স্ট্রিং থাকার, ঘটেছে 583 00:40:24,100 --> 00:40:27,060 মত একটি নিরীহ স্ট্রিং, তাদের নাম বা কিছু, 584 00:40:27,060 --> 00:40:33,900 কি যদি পরিবর্তে, স্ট্রিং না কিছু কিছু নির্বিচারে কোড ছিল 585 00:40:33,900 --> 00:40:38,610 যে তারা এটা করতে চেয়েছিলেন যাই হোক না কেন হয়নি? 586 00:40:38,610 --> 00:40:45,630 সুতরাং তারা পারে - আমি কোন কুল কোড মনে করতে পারেন না. 587 00:40:45,630 --> 00:40:47,780 এটা যদিও, কিছু হতে পারে. কোন বিপর্যয়মূলক কোড. 588 00:40:47,780 --> 00:40:51,440 তারা চেয়েছিলেন, তারা শুধু seg ফল্ট এ কিছু করতে পারে, কিন্তু যে অর্থহীন হবে. 589 00:40:51,440 --> 00:40:54,950 তারা সাধারণত আপনার সিস্টেম হ্যাক করার তা করে. 590 00:40:54,950 --> 00:40:59,930 >> ঠিক আছে. CS50 লাইব্রেরি. 591 00:40:59,930 --> 00:41:04,800 এটি মূলত, GetInt, GetString, ঐ সমস্ত কর্ম আমরা আপনার জন্য প্রদান করা হয়. 592 00:41:04,800 --> 00:41:10,630 তাই আমরা গৃহস্থালি * স্ট্রিং আছে, এবং যে আমরা দূরে blew যে বিমূর্ততা এর 593 00:41:10,630 --> 00:41:12,450 সেমিস্টারে সময় কিছু সময়ে. 594 00:41:12,450 --> 00:41:18,220 একটি পংক্তি অক্ষর শুধু একটি অ্যারের যে মনে রাখুন. 595 00:41:18,220 --> 00:41:23,240 সুতরাং এখানে আমরা GetString একটি সংক্ষেপিত সংস্করণ দেখতে. 596 00:41:23,240 --> 00:41:25,920 আপনি আসলে এটি বাস্তবায়িত কিভাবে মনে রাখা এটি ফিরে উচিত. 597 00:41:25,920 --> 00:41:30,950 মূল বিবরণ আছে, আমরা একটি সময়ে একটি একক চরিত্র পেতে বিজ্ঞপ্তি 598 00:41:30,950 --> 00:41:34,570 শুধু আমাদের কীবোর্ড এ টাইপ মত, যা মান থেকে. 599 00:41:34,570 --> 00:41:37,890 সুতরাং একটি সময়ে একটি অক্ষর, এবং আমরা অনেকগুলি অক্ষর পেতে, 600 00:41:37,890 --> 00:41:40,580 তাই ঢ + 1 টি ক্ষমতা তার চেয়ে অনেক বেশী হলে, 601 00:41:40,580 --> 00:41:44,140 তারপর আমরা আমাদের বাফার ক্ষমতা বৃদ্ধি প্রয়োজন. 602 00:41:44,140 --> 00:41:47,780 তাই আমরা এখানে আমাদের বাফারের মাপ দ্বিত্ব করছি. 603 00:41:47,780 --> 00:41:51,840 এবং যে রাখে; আমরা আমাদের বাফার মধ্যে অক্ষর সন্নিবেশ 604 00:41:51,840 --> 00:41:56,220 আমরা একটি নতুন লাইন বা ফাইল বা যাই হোক না কেন শেষ প্রাপ্ত না হওয়া পর্যন্ত, 605 00:41:56,220 --> 00:41:59,380 যা ক্ষেত্রে, আমরা স্ট্রিং এবং তারপর বাস্তব GetString সঙ্গে সঙ্গে শেষ করেছেন 606 00:41:59,380 --> 00:42:05,120 আমরা অত্যধিক স্মৃতি বরাদ্দ হলে তা ফিরে যান এবং একটি বিট সঙ্কুচিত করব মত, মেমরি shrinks. 607 00:42:05,120 --> 00:42:08,830 সুতরাং আমরা যে দেখাবেন না, কিন্তু মূল ধারণা 608 00:42:08,830 --> 00:42:11,960 এটি একটি সময়ে একটি একক চরিত্রের মধ্যে পড়তে হয়েছে. 609 00:42:11,960 --> 00:42:17,140 এটা ঠিক একবারে পুরো জিনিস মধ্যে পড়তে পারে না, 610 00:42:17,140 --> 00:42:19,550 তাদের বাফার শুধুমাত্র একটি নির্দিষ্ট আকারের কারণ. 611 00:42:19,550 --> 00:42:26,590 এটি বাফারের মধ্যে সন্নিবেশ করার চেষ্টা করে যে স্ট্রিং অত্যন্ত বড় তাই আপনি যদি, তারপর ওভারফ্লো করবে. 612 00:42:26,590 --> 00:42:28,940 তাই আমরা এখানে প্রতিরোধ যে শুধুমাত্র একটি একক চরিত্রের মধ্যে পড়া দ্বারা 613 00:42:28,940 --> 00:42:33,750 একটি সময়ে এবং আমরা প্রয়োজন যখনই ক্রমবর্ধমান. 614 00:42:33,750 --> 00:42:40,270 সুতরাং GetInt এবং অন্যান্য CS50 লাইব্রেরি ফাংশন GetString ব্যবহার ঝোঁক 615 00:42:40,270 --> 00:42:42,310 তাদের বাস্তবায়নের মধ্যে. 616 00:42:42,310 --> 00:42:45,370 তাই আমি এখানে গুরুত্বপূর্ণ বিষয় হাইলাইট. 617 00:42:45,370 --> 00:42:49,460 এটি একটি স্ট্রিং পেতে GetString কল. 618 00:42:49,460 --> 00:42:51,710 GetString স্মৃতি ফিরে আসতে ব্যর্থ হন, 619 00:42:51,710 --> 00:42:54,270 getString কিছু mallocs মনে রাখবেন, যাতে আপনি GetString কল যখনই 620 00:42:54,270 --> 00:42:57,820 আপনি (অপাচ্য) আপনি যে যে স্ট্রিং মুক্ত করা উচিত নয়. 621 00:42:57,820 --> 00:43:02,870 এটা কিছু malloc ব্যর্থ হলে তাই এখানে,, আমরা শুধু একটি পতাকা হিসাবে INT_MAX ফিরে যে, 622 00:43:02,870 --> 00:43:05,650 আরে, আমরা আসলে একটি পূর্ণসংখ্যা পেতে সক্ষম ছিল না. 623 00:43:05,650 --> 00:43:10,830 আপনি আমি আপনি ফিরে যাই হোক না কেন উপেক্ষা, অথবা উচিত 624 00:43:10,830 --> 00:43:15,540 আপনি একটি বৈধ ইনপুট হিসাবে এই বিবেচনা করা উচিত নয়. 625 00:43:15,540 --> 00:43:21,360 অবশেষে, যে সফল হয়নি অভিমানী, আমরা যে বিশেষ পতাকা দিয়ে sscanf ব্যবহার 626 00:43:21,360 --> 00:43:23,820 যার মানে, প্রথম একটি পূর্ণসংখ্যা মেলে, 627 00:43:23,820 --> 00:43:26,770 তারপর যে পূর্ণসংখ্যা পর কোন অক্ষর মেলে. 628 00:43:26,770 --> 00:43:29,070 সুতরাং আমরা এটা 1 সমান করতে চান বিজ্ঞপ্তি. 629 00:43:29,070 --> 00:43:32,940 সুতরাং sscanf আয় সফলভাবে কতজন ম্যাচে করেছেন তাহলে কি হবে? 630 00:43:32,940 --> 00:43:37,010 এটি সফলভাবে একটি পূর্ণসংখ্যা মিলেছে যদি এটা 1 ফিরে আসবে, 631 00:43:37,010 --> 00:43:40,890 এটি একটি পূর্ণসংখ্যা মিল পাওয়া যায়নি যদি এটি 0 ফিরে আসবে, এবং এটি 2 ফিরে আসবে 632 00:43:40,890 --> 00:43:45,920 এটি মিলেছে যদি একটি পূর্ণসংখ্যা কিছু অক্ষর দ্বারা অনুসরণ. 633 00:43:45,920 --> 00:43:49,780 তাই আমরা 1 কিছু কিন্তু মেলে যদি আমরা পুনরায় চেষ্টা লক্ষ্য করা. 634 00:43:49,780 --> 00:43:55,230 সুতরাং আমরা প্রবেশ করানো হলে 1, 2, 3, সি, বা 1, 2, 3, এক্স, 635 00:43:55,230 --> 00:43:57,400 তারপর 1, 2, 3 পূর্ণসংখ্যা মধ্যে সংরক্ষণ করতে হবে, 636 00:43:57,400 --> 00:43:59,620 এক্স, চরিত্র সংরক্ষিত করতে হবে 637 00:43:59,620 --> 00:44:06,410 আমরা শুধুমাত্র একটি পূর্ণসংখ্যা চান, কারণ, sscanf 2 ফিরে আসবে, এবং আমরা পুনরায় চেষ্টা করবে. 638 00:44:06,410 --> 00:44:09,810 >> দ্রুত এইচটিএমএল, HTTP সিএসএস মাধ্যমে প্রবাহিত. 639 00:44:09,810 --> 00:44:15,340 হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ ওয়েব গঠন এবং শব্দার্থবিদ্যা হয়. 640 00:44:15,340 --> 00:44:19,960 এখানে আমরা HTML ট্যাগ আছে যেখানে বক্তৃতা থেকে উদাহরণ. 641 00:44:19,960 --> 00:44:22,110 আমরা মাথা ট্যাগ, শরীরের ট্যাগ, আছে 642 00:44:22,110 --> 00:44:27,770 আমরা, আমরা আসলে একটি শুরু ও বন্ধ ট্যাগ আছে না যেখানে খালি ট্যাগ উদাহরণ আছে 643 00:44:27,770 --> 00:44:30,820 আমরা শুধু লিঙ্ক এবং ইমেজ আছে. 644 00:44:30,820 --> 00:44:38,480 কোন ক্লোজিং ছবিটি ট্যাগ নেই; ট্যাগ কি প্রয়োজন সবকিছু accomplishes যে কেবলমাত্র একটি ট্যাগ আছে. 645 00:44:38,480 --> 00:44:41,950 লিঙ্ক একটি উদাহরণ; আমরা আপনার সিএসএস সাথে সংযুক্ত আছে দেখতে পাবেন, 646 00:44:41,950 --> 00:44:45,910 স্ক্রিপ্ট আপনি একটি বহিস্থিত জাভাস্ক্রিপ্ট লিঙ্ক কিভাবে একটি উদাহরণ. 647 00:44:45,910 --> 00:44:53,100 এটি এইচটিএমএল একটি প্রোগ্রামিং ভাষা নয়, বেশ সহজবোধ্য, এবং মনে রাখবেন. 648 00:44:53,100 --> 00:44:58,250 এখানে, আপনি এটা করতে কি একটি ফর্ম সংজ্ঞায়িত বা অন্তত কিভাবে মনে রাখবেন? 649 00:44:58,250 --> 00:45:01,740 যেমন একটি ফর্ম একটি কর্ম এবং একটি পদ্ধতি আছে. 650 00:45:01,740 --> 00:45:06,210 আপনি শুধুমাত্র কখনও দেখতে পাবেন পদ্ধতি GET এবং পোষ্ট হয়. 651 00:45:06,210 --> 00:45:09,040 তাই GET জিনিস URL টি স্থাপন করা হয় যেখানে সংস্করণ. 652 00:45:09,040 --> 00:45:11,680 এটা URL টি স্থাপন করা না যেখানে পোস্ট. 653 00:45:11,680 --> 00:45:18,520 পরিবর্তে, ফর্ম থেকে কোনো তথ্য HTTP-র অনুরোধে আরো লুকানো ঢোকানো হয়. 654 00:45:18,520 --> 00:45:22,390 HTTP-র অনুরোধ যায় যেখানে সুতরাং এখানে, কর্ম সংজ্ঞায়িত করে. 655 00:45:22,390 --> 00:45:27,490 এটি যাচ্ছে কোথায় google.com / অনুসন্ধান করে. 656 00:45:27,490 --> 00:45:32,890 পদ্ধতি. GET এবং পোষ্ট মধ্যে পার্থক্য মনে রাখবেন, 657 00:45:32,890 --> 00:45:37,200 আপনি বুকমার্ক কিছু করতে চান এবং, শুধু একটি উদাহরণ হিসাবে বলা. 658 00:45:37,200 --> 00:45:40,660 আপনি একটি পোষ্ট URL টি বুকমার্ক করতে পারবে না 659 00:45:40,660 --> 00:45:44,970 তথ্য URL-এ অন্তর্ভুক্ত নেই কারণ. 660 00:45:44,970 --> 00:45:49,790 >> HTTP-র, এখন, হাইপারটেক্সট ট্রান্সফার প্রোটোকল. 661 00:45:49,790 --> 00:45:54,080 হাইপারটেক্সট ট্রান্সফার প্রোটোকল, আপনি এটি হস্তান্তর আশা করবে 662 00:45:54,080 --> 00:45:57,710 হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ, এবং এটা আছে. 663 00:45:57,710 --> 00:46:00,170 কিন্তু এটি আপনি ওয়েবে খুঁজে পেতে কোন ইমেজ স্থানান্তর, 664 00:46:00,170 --> 00:46:05,400 আপনি কোনো ডাউনলোড একটি HTTP অনুরোধ হিসাবে শুরু. 665 00:46:05,400 --> 00:46:10,350 সুতরাং HTTP-র মাত্র ওয়ার্ল্ড ওয়াইড ওয়েব এর ভাষা. 666 00:46:10,350 --> 00:46:15,610 এবং এখানে আপনি একটি HTTP অনুরোধ এই ধরনের স্বীকৃতি প্রয়োজন. 667 00:46:15,610 --> 00:46:19,300 পাশ দিয়ে এখানে HTTP/1.1 ঠিক সেই সংস্করণ বলছেন 668 00:46:19,300 --> 00:46:21,570 প্রোটোকলের আমি ব্যবহার করছি. 669 00:46:21,570 --> 00:46:25,770 আপনি তা দেখতে পাবেন এটা প্রায় কাছাকাছি সবসময় HTTP/1.1 হতে যাচ্ছে. 670 00:46:25,770 --> 00:46:30,110 তারপর আমরা এই আপনাকে দেখতে হতে পারে যে, বিকল্প পোষ্ট হচ্ছে, পেতে যে ছিল দেখতে. 671 00:46:30,110 --> 00:46:40,790 এবং আমি দেখার চেষ্টা ছিল যে URL-www.google.com/search?q = বাজে কথা, বাজে কথা, বাজে কথা ছিল. 672 00:46:40,790 --> 00:46:44,240 তাই মনে রাখবেন যে এই, প্রশ্ন চিহ্ন প্রশ্ন = বাজে বাজে বাজে কথা, 673 00:46:44,240 --> 00:46:49,040 একটি ফর্ম জমা হয় যে পণ্যদ্রব্য সাজান. 674 00:46:49,040 --> 00:46:51,830 এটা আমার কাছে ফিরে আসতে পারে প্রতিক্রিয়া ভালো কিছু দেখাবে. 675 00:46:51,830 --> 00:46:54,050 আবার, যে হতে যাচ্ছে যা প্রোটোকল, দিয়ে শুরু, 676 00:46:54,050 --> 00:46:59,190 অবস্থা কোড দ্বারা অনুসৃত. এখানে 200 ঠিক আছে. 677 00:46:59,190 --> 00:47:05,060 এবং পরিশেষে, আমি আসলে জানতে চাওয়া যে ওয়েব পেজে অনুসরণ করা হবে. 678 00:47:05,060 --> 00:47:08,210 সম্ভাব্য অবস্থা কোড আপনি দেখতে হতে পারে, এবং আপনি তাদের মধ্যে বেশ কিছু জানা উচিত. 679 00:47:08,210 --> 00:47:12,770 200 ঠিক আছে তাহলে সম্ভবত আগে দেখা যায়. 680 00:47:12,770 --> 00:47:17,830 403 নিষিদ্ধ, 404 পাওয়া যায়নি, 500 অভ্যন্তরীণ সার্ভার সমস্যা 681 00:47:17,830 --> 00:47:22,140 আপনি একটি ওয়েবসাইটে যান এবং কিছু ভাঙা বা তাদের পিএইচপি কোড বিপর্যস্ত হলে, সাধারণত হয় 682 00:47:22,140 --> 00:47:24,930 প্রয়োগ আমরা আছে, যেহেতু যে বড় কমলা বক্স 683 00:47:24,930 --> 00:47:27,830 যে আসে আপ এবং ভালো, কিছু ভুল হয়, বলছেন, এই কোড কাজ করছে না 684 00:47:27,830 --> 00:47:30,380 এই ফাংশন এর খারাপ. 685 00:47:30,380 --> 00:47:33,230 সাধারণত ওয়েবসাইট, আপনি ফাংশন আসলে খারাপ বুদ্ধিমান কি চাই না 686 00:47:33,230 --> 00:47:37,880 তাই এর পরিবর্তে তারা শুধু আপনি 500 সার্ভারের অভ্যন্তরীণ ত্রুটি দেব. 687 00:47:37,880 --> 00:47:43,050 >> TCP / IP এর HTTP-র অধীন 1 স্তর. 688 00:47:43,050 --> 00:47:47,550 ইন্টারনেট ওয়ার্ল্ড ওয়াইড ওয়েব এর বাইরে আছে যে মনে রাখুন. 689 00:47:47,550 --> 00:47:52,270 ভালো লেগেছে আপনি HTTP-র মাধ্যমে যেতে না একটি অনলাইন খেলা খেলা যদি, 690 00:47:52,270 --> 00:47:55,740 এটি একটি ভিন্ন মাধ্যমে যাচ্ছে - এটি এখনও ইন্টারনেট ব্যবহার এর, 691 00:47:55,740 --> 00:47:58,900 কিন্তু এটি HTTP-র ব্যবহার করে না. 692 00:47:58,900 --> 00:48:02,470 HTTP-র TCP / IP এর উপর নির্মিত প্রোটোকলের শুধু একটা উদাহরণ. 693 00:48:02,470 --> 00:48:07,820 আইপি আক্ষরিক ইন্টারনেট প্রটোকল মানে. 694 00:48:07,820 --> 00:48:11,500 প্রতিটি কম্পিউটারের একটি IP ঠিকানা আছে; তারা যারা 4 অঙ্ক জিনিস 695 00:48:11,500 --> 00:48:16,510 192.168.2.1, বা যাই হোক না কেন চাই; যে একটি স্থানীয় এক হতে থাকে. 696 00:48:16,510 --> 00:48:23,390 কিন্তু যে একটি IP ঠিকানা প্যাটার্ন. 697 00:48:23,390 --> 00:48:29,060 সুতরাং DNS-র, ডোমেন নাম পরিষেবা, 698 00:48:29,060 --> 00:48:33,410 যে একটি প্রকৃত IP ঠিকানার সাথে google.com ভালো জিনিস অনুবাদ কি. 699 00:48:33,410 --> 00:48:37,700 সুতরাং আপনি একটি URL মধ্যে যে IP ঠিকানা টাইপ করুন যদি, 700 00:48:37,700 --> 00:48:40,850 যে গুগল থেকে আপনি আনতে হবে, কিন্তু আপনি সেগুলো মনে রাখা না ঝোঁক. 701 00:48:40,850 --> 00:48:45,470 আপনি পরিবর্তে google.com স্মরণ ঝোঁক. 702 00:48:45,470 --> 00:48:51,560 আমরা শেষ জিনিস এই আইপি থেকে বিভিন্ন TCP অংশ যেখানে পোর্ট হয়. 703 00:48:51,560 --> 00:48:54,880 বিভিন্ন TCP আরো আছে. আপনি আপনার ওয়েব ব্রাউজার চলমান আছে, মত, চিন্তা করুন. 704 00:48:54,880 --> 00:48:58,670 হতে পারে আপনি কিছু ইমেইল অ্যাপ্লিকেশন চলমান আছে; 705 00:48:58,670 --> 00:49:02,150 হতে পারে আপনি ইন্টারনেট চলমান ব্যবহার করে এমন কিছু অন্যান্য প্রোগ্রাম আছে. 706 00:49:02,150 --> 00:49:05,090 তারা সব ইন্টারনেট ব্যবহার করার প্রয়োজন, 707 00:49:05,090 --> 00:49:08,100 কিন্তু আপনার কম্পিউটার শুধুমাত্র 1 ওয়াইফাই কার্ড বা যাই হোক না কেন আছে. 708 00:49:08,100 --> 00:49:10,780 সুতরাং পোর্ট আমরা আপ বিভক্ত করতে সক্ষম হন যে উপায় 709 00:49:10,780 --> 00:49:13,550 এই অ্যাপ্লিকেশনগুলি ইন্টারনেট ব্যবহার করতে পারবেন না. 710 00:49:13,550 --> 00:49:17,230 প্রতিটি আবেদন, এটা শুনতে পারেন যে 1 নির্দিষ্ট পোর্টের পায় 711 00:49:17,230 --> 00:49:19,670 এবং ডিফল্টরূপে, HTTP-র পোর্ট 80 ব্যবহার করে. 712 00:49:19,670 --> 00:49:22,410 কিছু ইমেইল পরিষেবাগুলি 25 ব্যবহার. 713 00:49:22,410 --> 00:49:24,490 কম সংখ্যাযুক্ত বেশী সংরক্ষিত করা ঝোঁক. 714 00:49:24,490 --> 00:49:29,270 আপনি সাধারণত নিজের জন্য উচ্চ সংখ্যাযুক্ত বেশী পেতে সক্ষম. 715 00:49:29,270 --> 00:49:32,010 >> সিএসএস, ক্যাসকেডিং স্টাইল শীট. 716 00:49:32,010 --> 00:49:36,030 CSS এর সঙ্গে আমরা শৈলী ওয়েব পেজ, না এইচটিএমএল দিয়ে. 717 00:49:36,030 --> 00:49:38,440 আপনি আপনার সিএসএস লাগাতে পারেন 3 জায়গা আছে. 718 00:49:38,440 --> 00:49:46,300 এটা শৈলী ট্যাগ এর মধ্যে, বা একটি সম্পূর্ণ পৃথক ফাইলে এবং তারপর ইন লিঙ্ক, ইনলাইন হতে পারে 719 00:49:46,300 --> 00:49:48,470 এবং এখানে সিএসএস শুধু একটি উদাহরণ. 720 00:49:48,470 --> 00:49:50,450 আপনি এই প্যাটার্ন চিনতে হবে, 721 00:49:50,450 --> 00:49:54,310 প্রথম উদাহরণে আমরা শরীরের ট্যাগ মেলা, করছি যেখানে 722 00:49:54,310 --> 00:49:56,680 এবং এখানে আমরা শরীরের ট্যাগ কেঁদ্রীকরণ করছি. 723 00:49:56,680 --> 00:50:00,420 দ্বিতীয় উদাহরণে, আমরা জিনিস মিলে হয় 724 00:50:00,420 --> 00:50:04,740 আইডি পাদচরণ সঙ্গে, এবং আমরা যে কিছু শৈলী প্রয়োগ করছেন. 725 00:50:04,740 --> 00:50:07,310 বাঁদিকে যে আইডি পাদচরণ টেক্সট প্রান্তিক লক্ষ্য করুন, 726 00:50:07,310 --> 00:50:09,840 শরীরের টেক্সট প্রান্তিক কেন্দ্র যেহেতু. 727 00:50:09,840 --> 00:50:13,180 পাদলেখ শরীরের ভিতরে হয়. 728 00:50:13,180 --> 00:50:16,470 এটা পরিবর্তে, টেক্সট প্রান্তিককরণ শরীরের টেক্সট প্রান্তিককরণ কেন্দ্র বলছেন, যদিও বাকি হবে. 729 00:50:16,470 --> 00:50:18,880 এই পুরো Cascading অংশ. 730 00:50:18,880 --> 00:50:22,110 আপনি থাকতে পারে - আপনি শরীরের জন্য শৈলী নির্দিষ্ট করতে পারেন, 731 00:50:22,110 --> 00:50:25,320 এবং তারপর শরীরে জিনিস আপনি আরো নির্দিষ্ট শৈলী নির্দিষ্ট করতে পারেন, 732 00:50:25,320 --> 00:50:28,160 এবং জিনিষ আপনি আশা হিসাবে কাজ. 733 00:50:28,160 --> 00:50:34,420 আরো নির্দিষ্ট সিএসএস specifiers প্রাধান্য করা. 734 00:50:34,420 --> 00:50:46,140 আমি যে এটা মনে করি. 735 00:50:46,140 --> 00:50:49,260 >> [আলি Nahm] পরিষ্কার উচ্চ সবাই. আমি শুধু আপনার মনোযোগ পেতে পারে. 736 00:50:49,260 --> 00:50:53,990 আমি আলী এবং আমি সত্যিই দ্রুত পিএইচপি এবং এসকিউএল দিয়ে যেতে যাচ্ছি. 737 00:50:53,990 --> 00:51:00,310 তাই আমরা শুরু করতে পারবেন. পিএইচপি পিএইচপি জন্য সংক্ষিপ্ত: হাইপারটেক্সট Preprocessor. 738 00:51:00,310 --> 00:51:03,730 আপনি সব জানা উচিত হিসাবে এবং, এটি একটি সার্ভার সাইড স্ক্রিপ্টিং ভাষা আছে, 739 00:51:03,730 --> 00:51:06,800 এবং আমরা ওয়েবসাইটের ফিরে শেষ জন্য এটি ব্যবহার, 740 00:51:06,800 --> 00:51:12,540 এবং এটি কম্পিউটেশন, পিছনে দ্য দৃশ্য অংশ অনেক আছে কিভাবে. 741 00:51:12,540 --> 00:51:17,510 সিনট্যাক্স. এটা সি, আশ্চর্য, আশ্চর্য চাই না. 742 00:51:17,510 --> 00:51:22,060 আমি এগিয়ে সরাতে পারেন না - এটা সবসময় আপনি দেখতে পারেন,, দিয়ে শুরু হয়েছে. 743 00:51:22,060 --> 00:51:31,340 আপনি ধনুর্বন্ধনী নতুন ধরণের প্রয়োজন দেখতে পারেন এবং তারপর আপনার কাছে? পিএইচপি প্রয়োজন. 744 00:51:31,340 --> 00:51:35,780 তার মানে আপনি আপনার পিএইচপি টেক্সট, আপনার পিএইচপি কোড ফ্রেমে আছে কিভাবে সর্বদাই. 745 00:51:35,780 --> 00:51:39,180 সুতরাং এটি ঠিক আপনার ধরনের প্রথম এটা করা যেখানে সি, মত হতে পারে না. 746 00:51:39,180 --> 00:51:42,290 আপনি সবসময় এটা ঘেরা প্রয়োজন. 747 00:51:42,290 --> 00:51:47,610 এবং এখন, প্রধান বাক্য গঠন সব ভেরিয়েবল $ অক্ষর দিয়ে শুরু করা প্রয়োজন. 748 00:51:47,610 --> 00:51:49,490 আপনি আপনি তাদের সংজ্ঞা যখন এটা করতে হবে; আপনি এটি করতে হবে 749 00:51:49,490 --> 00:51:51,860 আপনি পরে তাদের উল্লেখ করছি. 750 00:51:51,860 --> 00:51:56,510 আপনি সবসময় যে $ প্রয়োজন. এটা অনেক সুন্দর, আপনার নতুন ভালো বন্ধু না. 751 00:51:56,510 --> 00:52:01,690 আপনি না - সি অসদৃশ, আপনি তা হল ভেরিয়েবল ধরন কি ধরনের করা হবে না. 752 00:52:01,690 --> 00:52:04,940 আপনি $ প্রয়োজন যখন সুতরাং, আপনি, ভালো করা হবে না 753 00:52:04,940 --> 00:52:09,470 int-x বা স্ট্রিং Y, ইত্যাদি, ইত্যাদি. 754 00:52:09,470 --> 00:52:11,490 তাই সামান্য পার্থক্য. 755 00:52:11,490 --> 00:52:15,590 এই ফলে, এটা পিএইচপি একটি স্বাস্থ্যহীন টাইপ করার প্রচেষ্টা করে. 756 00:52:15,590 --> 00:52:19,310 পিএইচপি একটি স্বাস্থ্যহীন টাইপ ভাষা, এবং এটা স্বাস্থ্যহীন ভেরিয়েবলের টাইপ করা হয়েছে. 757 00:52:19,310 --> 00:52:24,020 অন্য কথায়, যে আপনি পরিবর্তনশীল ধরনের বিভিন্ন ধরণের মধ্যে সুইচ করতে পারেন. 758 00:52:24,020 --> 00:52:27,230 আপনি কোন int হিসাবে আপনার 1 নম্বর সংরক্ষণ করতে পারেন, 759 00:52:27,230 --> 00:52:29,650 আপনি একটি স্ট্রিং হিসাবে এটি সংরক্ষণ করতে পারেন, এবং আপনি একটি float হিসাবে এটি সংরক্ষণ করতে পারেন, 760 00:52:29,650 --> 00:52:33,550 এবং এটি সমস্ত যে সংখ্যা 1 হতে হবে. 761 00:52:33,550 --> 00:52:36,080 আপনি বিভিন্ন ফর্ম মধ্যে এটি সংরক্ষণ করছেন যদিও, 762 00:52:36,080 --> 00:52:39,120 এটি এখনও এর - পরিবর্তনশীল ধরনের এখনও শেষ পর্যন্ত অধিষ্ঠিত হয়. 763 00:52:39,120 --> 00:52:41,540 সুতরাং আপনি এখানে তাকান, আপনি pset 7 থেকে স্মরণ হলে, 764 00:52:41,540 --> 00:52:43,500 আপনি অনেক সম্ভবত এই সঙ্গে বিষয় ছিল. 765 00:52:43,500 --> 00:52:47,280 দুই সমান চিহ্ন, 3 সমান চিহ্ন, 4 সমান চিহ্ন. 766 00:52:47,280 --> 00:52:49,990 ঠিক আছে, কোন 4 সমান চিহ্ন আছে, কিন্তু 2 এবং 3 আছে. 767 00:52:49,990 --> 00:52:53,320 আপনি মান পরীক্ষা করে 2 সমান চিহ্ন ব্যবহার. 768 00:52:53,320 --> 00:52:55,830 এটা ধরনের জুড়ে চেক করতে পারেন. 769 00:52:55,830 --> 00:52:58,770 সুতরাং আপনি প্রথম উদাহরণ এ দেখতে পারেন যদি, 770 00:52:58,770 --> 00:53:02,210 আমি num_int == num_string আছে. 771 00:53:02,210 --> 00:53:06,710 সুতরাং আপনার কোন int এবং আপনার স্ট্রিং উভয়, টেকনিক্যালি, 1, 772 00:53:06,710 --> 00:53:10,790 কিন্তু তারা বিভিন্ন ধরনের করছি. কিন্তু ডবল সমান জন্য, এটা এখনও পাস করব. 773 00:53:10,790 --> 00:53:15,510 যাইহোক, ট্রিপল সমান জন্য, এটা মান হিসেবে বিভিন্ন ধরনের পরীক্ষা করা হবে. 774 00:53:15,510 --> 00:53:18,760 যে, এটা এখানে যে দ্বিতীয় ক্ষেত্রে পাস যাচ্ছে না এর মানে হল যে 775 00:53:18,760 --> 00:53:22,350 আপনি পরিবর্তে 3 সমান চিহ্ন ব্যবহার করছেন যেখানে. 776 00:53:22,350 --> 00:53:26,590 সুতরাং যে আপনি সব এখন দেখানো হয়েছে যে একটি প্রধান পার্থক্য. 777 00:53:26,590 --> 00:53:31,570 >> স্ট্রিং সংযুক্তকরণের আপনি পিএইচপি ব্যবহার করতে পারেন অন্য একটি শক্তিশালী জিনিস. 778 00:53:31,570 --> 00:53:34,080 এটি মূলত শুধু এই কুশলী ডট স্বরলিপি 779 00:53:34,080 --> 00:53:36,230 এবং যে আপনি একসঙ্গে স্ট্রিং আবদ্ধ যাবে কিভাবে. 780 00:53:36,230 --> 00:53:40,800 তাই আপনি যদি বিড়াল আছে এবং আপনি কুকুর আছে, এবং আপনি একসাথে 2 স্ট্রিং লাগাতে চান, 781 00:53:40,800 --> 00:53:44,080 আপনি সময়ের ব্যবহার করতে পারেন, এবং যে কিভাবে এটি কাজ করে ধরনের. 782 00:53:44,080 --> 00:53:46,660 আপনি শুধু পরের একে অপরকে তাদের স্থাপন করতে পারেন, 783 00:53:46,660 --> 00:53:49,030 আপনি নীচের উদাহরণে এখানে দেখতে পারেন, 784 00:53:49,030 --> 00:53:51,610 আমি স্ট্রিং 1, স্থান স্ট্রিং 2 echo আছে যেখানে. 785 00:53:51,610 --> 00:53:56,930 পিএইচপি যেমন তাদের প্রতিস্থাপন জানতে হবে. 786 00:53:56,930 --> 00:53:59,780 অ্যারেগুলির. এখন, পিএইচপি, অ্যারে 2 বিভিন্ন ধরণের আছে. 787 00:53:59,780 --> 00:54:03,180 আপনি নিয়মিত অ্যারে আছে, এবং আপনি এছাড়াও মিশুক অ্যারে আছে, 788 00:54:03,180 --> 00:54:06,040 এবং আমরা এই মুহূর্তে তাদের মাধ্যমে যেতে চলুন. 789 00:54:06,040 --> 00:54:08,280 নিয়মিত অ্যারে, শুধু এই সি আছে 790 00:54:08,280 --> 00:54:11,240 এবং যাতে আপনি সংখ্যা নির্ধারণ করা হয় যে সূচক আছে. 791 00:54:11,240 --> 00:54:13,160 ঠিক এখন আমরা শুধু একটা তৈরি করতে যাচ্ছে এবং রাখা করছি - 792 00:54:13,160 --> 00:54:15,500 তাই এই আমরা একটি খালি অ্যারে তৈরি কিভাবে হয়, তাহলে আমরা চলুন 793 00:54:15,500 --> 00:54:17,310 সূচক সংখ্যা 0 পুরা. 794 00:54:17,310 --> 00:54:19,200 আমরা সংখ্যা 6, মূল্য 6 রাখা চলুন. 795 00:54:19,200 --> 00:54:21,500 আপনি এখানে নীচে এটা দেখতে পারেন. 796 00:54:21,500 --> 00:54:24,240 Where's - সূচক সংখ্যা 1 এ আমরা মূল্য সংখ্যা 4 করা যাচ্ছেন 797 00:54:24,240 --> 00:54:26,720 এবং যাতে আপনি একটি 6 আছে দেখতে পারেন, একটি 4, আছে 798 00:54:26,720 --> 00:54:29,160 এবং তারপর আমরা জিনিস মুদ্রণ করছি যে, 799 00:54:29,160 --> 00:54:33,550 আমরা চেষ্টা এবং সূচক সংখ্যা 0 সংরক্ষিত মান প্রিন্ট করার সময়, 800 00:54:33,550 --> 00:54:36,900 তারপর আমরা প্রিন্ট আউট হওয়ার 6 মূল্য দেখতে পাবেন. কুল? 801 00:54:36,900 --> 00:54:40,160 সুতরাং যে আপনার জন্য নিয়মিত অ্যারে এর. 802 00:54:40,160 --> 00:54:42,750 তাহলে আপনি এখন নিয়মিত অ্যারে জিনিষ যোগ করতে পারেন আরেকটি উপায় 803 00:54:42,750 --> 00:54:44,780 আপনি শুধু শেষে তাদের লিখবেন যাবে না. 804 00:54:44,780 --> 00:54:47,240 তার মানে আপনি নির্দিষ্ট সূচক উল্লেখ করতে হবে না মানে. 805 00:54:47,240 --> 00:54:51,000 আপনি সংখ্যা দেখতে পারেন, এবং তারপর বর্গাকার বন্ধনী উল্লিখিত কোন সূচক আছে. 806 00:54:51,000 --> 00:54:56,270 এবং এটা জানতে হবে - পিএইচপি শুধু তালিকা, পরের বিনামূল্যে স্পট শেষে এটি যোগ করতে জানতে হবে. 807 00:54:56,270 --> 00:54:59,190 তাই আপনি, যে 0 স্থানে অধিকার আছে 1 দেখতে পারেন 808 00:54:59,190 --> 00:55:02,690 2 প্রথম স্থানে সঠিক সেখানে গিয়েছিলাম. 809 00:55:02,690 --> 00:55:04,690 3 যায় - পাশাপাশি সেখানে যোগ করা হয়. 810 00:55:04,690 --> 00:55:06,720 সুতরাং যে ধরনের ইন্দ্রিয় তোলে. আপনি শুধুমাত্র ক্রমাগত এটি যোগ করছি, 811 00:55:06,720 --> 00:55:09,360 এবং তারপর আমরা, সংখ্যা 1 হাজার সূচী অনুনাদী করছি 812 00:55:09,360 --> 00:55:13,080 এটা মান 2 প্রিন্ট আউট হবে. 813 00:55:13,080 --> 00:55:16,800 >> তারপর আমরা মিশুক অ্যারে যে অ্যারে আছে. 814 00:55:16,800 --> 00:55:19,370 পরিবর্তে সংখ্যাসূচক সূচকগুলি থাকার মিশুক অ্যারে,, 815 00:55:19,370 --> 00:55:23,630 কি তারা তারা স্ট্রিং দ্বারা যে সূচক আছে. 816 00:55:23,630 --> 00:55:25,670 আপনি পরিবর্তে, দেখতে পারেন - আমি ঐ সমস্ত সংখ্যা সূচকের পরিত্রাণ, 817 00:55:25,670 --> 00:55:32,140 এবং এখন এটি key1, key2, key3, এবং তারা সব তারা স্ট্রিং করছি যে বোঝান উদ্ধৃতি চিহ্ন মধ্যে আছেন. 818 00:55:32,140 --> 00:55:34,470 সুতরাং আমরা এই একটি উদাহরণ হতে পারে. 819 00:55:34,470 --> 00:55:38,790 এই যেমন আমরা TF আছে, এবং যে সূচী নাম. 820 00:55:38,790 --> 00:55:42,030 আমরা, ক্যালোরি খাওয়া, সূচিতে, নাম হিসেবে "আলী" রাখা চলুন 821 00:55:42,030 --> 00:55:47,640 আমরা পরিবর্তে একটি স্ট্রিং এর কোন int এই সময় লাগাতে পারেন, 822 00:55:47,640 --> 00:55:52,240 এবং তারপর ইনডেক্স পছন্দ, আমরা এটি ভেতরে একটি সম্পূর্ণ অ্যারে লাগাতে পারেন. 823 00:55:52,240 --> 00:55:55,490 সুতরাং এই ধরনের হয় - এটা আমরা ছিল কিভাবে একটি অনুরূপ ধারণা 824 00:55:55,490 --> 00:55:58,930 সংখ্যার সূচক, কিন্তু এখন আমরা প্রায় সূচকের পরিবর্তন করতে পারেন 825 00:55:58,930 --> 00:56:03,890 পরিবর্তে স্ট্রিং হিসাবে তাদের আছে. 826 00:56:03,890 --> 00:56:06,070 এছাড়াও আপনি শুধু পৃথকভাবে এরকম পাশাপাশি এটা করতে পারেন 827 00:56:06,070 --> 00:56:09,400 আপনি এক খণ্ড মধ্যে এটি সব করতে পারেন. তাই আপনি, যে অ্যারের যে TF দেখতে পারেন 828 00:56:09,400 --> 00:56:13,350 এবং তারপর আমরা এক দৈত্য গুরুবন্ধনী সেট সেগুলি সেট. 829 00:56:13,350 --> 00:56:15,220 সুতরাং যে জিনিস গতি বাড়াতে পারেন. 830 00:56:15,220 --> 00:56:19,730 এটা না চেয়ে রচনাশৈলীসংক্রান্ত পছন্দের আরো. 831 00:56:19,730 --> 00:56:21,550 আমরা loops আছে. 832 00:56:21,550 --> 00:56:26,020 সি ইন আমরা ভালো কাজ যে loops আছে. 833 00:56:26,020 --> 00:56:29,690 আমরা আমাদের অ্যারের ছিল, এবং আমরা তালিকার শেষে সূচক 0 থেকে গিয়েছিলাম, 834 00:56:29,690 --> 00:56:31,740 এবং আমরা ডান, এটি সমস্ত মুদ্রণ? 835 00:56:31,740 --> 00:56:33,880 , সমস্যা মিশুক অ্যারে জন্য, হল ছাড়া 836 00:56:33,880 --> 00:56:36,610 আমরা যারা সাংখ্যিক সূচক অগত্যা জানি না 837 00:56:36,610 --> 00:56:39,610 এখন আমরা স্ট্রিং সূচক আছে. 838 00:56:39,610 --> 00:56:44,800 এখন আমরা আবার, আপনি আশা pset 7 ব্যবহার, যা foreach loops, ব্যবহার. 839 00:56:44,800 --> 00:56:48,930 Foreach loops শুধু তালিকার প্রতি একক অংশ জানতে হবে. 840 00:56:48,930 --> 00:56:52,450 এবং এটা আপনি যে ঠিক সংখ্যাগত সূচী জানা নেই. 841 00:56:52,450 --> 00:56:56,490 সুতরাং আপনি অ্যারে করা, আপনি foreach সিনট্যাক্স আছে, তাই এটা foreach এর. 842 00:56:56,490 --> 00:57:00,430 , তাই আমার অ্যারের pset বলা হয়, এবং তারপর হিসাবে শব্দ, হিসাবে 843 00:57:00,430 --> 00:57:04,530 এবং তারপর আপনি যে আপনি ব্যবহার করতে যাচ্ছেন যে এই স্থানীয় অস্থায়ী পরিবর্তনশীল রাখা 844 00:57:04,530 --> 00:57:10,690 শুধু নির্দিষ্ট রাখা যাচ্ছে যে নির্দিষ্ট জিনিস জন্য - 845 00:57:10,690 --> 00:57:14,770 এক ইনস্ট্যান্সের বা অ্যারের এক অধ্যায়. 846 00:57:14,770 --> 00:57:18,350 , Pset NUM 1 রাখা হবে, এবং তারপর হয়তো এটা সংখ্যা 6 রাখা হবে 847 00:57:18,350 --> 00:57:20,410 এবং তারপর এটি সংখ্যা 2 রাখা হবে. 848 00:57:20,410 --> 00:57:26,630 কিন্তু অ্যারের মধ্যে যে এর প্রতি একক মূল্য দিয়ে যেতে নিশ্চিত এর. 849 00:57:26,630 --> 00:57:30,530 আপনি পিএইচপি জানা উচিত যে দরকারী ফাংশন প্রয়োজন হয়, 850 00:57:30,530 --> 00:57:35,880 প্রস্থান, খালি, প্রতিধ্বনি, তাই যে, আপনি নির্দিষ্ট ফাইল সহ করছেন তা নিশ্চিত করে তোলে. 851 00:57:35,880 --> 00:57:40,490 আমি অত্যন্ত আপনি pset 7 এ এবং যারা ফাংশন তাকান সুপারিশ. 852 00:57:40,490 --> 00:57:42,810 আপনি যাদের জানা থাকতে পারে, 853 00:57:42,810 --> 00:57:47,060 তাই আমি স্পষ্টভাবে ঠিক, যারা সব কি করছেন, জানতে চাই. 854 00:57:47,060 --> 00:57:50,080 >> এবং এখন আমরা সত্যিই দ্রুত সুযোগ দিয়ে যেতে চলুন. 855 00:57:50,080 --> 00:57:53,490 সুযোগ ইন, পিএইচপি, সি ভিন্ন, একটি ভীতু ধরনের জিনিস 856 00:57:53,490 --> 00:57:56,170 এবং তাই আমরা দ্রুত এটা মাধ্যমে যেতে চলুন. 857 00:57:56,170 --> 00:57:58,930 সুতরাং আসুন আমরা আমরা সেখানে আছে যে তীর থেকে আরম্ভ হয় বলা যাক. 858 00:57:58,930 --> 00:58:02,900 এবং আমরা $ আমি দিয়ে শুরু করতে যাচ্ছেন. সুতরাং পরিবর্তনশীল 'আমি', 0 হতে যাচ্ছে 859 00:58:02,900 --> 00:58:06,730 এবং আমরা শুধু ওইদিকে যে বড় সাদা বাক্সে এটা মুদ্রণ রাখা চলুন. 860 00:58:06,730 --> 00:58:09,220 আমরা i0 সঙ্গে শুরু করতে যাচ্ছেন, এবং তারপর আমরা তা echo চলুন. 861 00:58:09,220 --> 00:58:12,670 সুতরাং 0 আছে. 862 00:58:12,670 --> 00:58:15,210 এবং তারপর আমরা, এর জন্য লুপ দ্বারা এটি বাড়ায় চলুন 863 00:58:15,210 --> 00:58:17,810 এবং তারপর এটি 1 এর মান হতে যাচ্ছে. 864 00:58:17,810 --> 00:58:20,070 , এক কম 3, তাই এটি লুপ জন্য যে সহ্য করে যাচ্ছে 865 00:58:20,070 --> 00:58:23,230 এবং তারপর আমরা আবার ছাপা দেখতে চলুন. 866 00:58:23,230 --> 00:58:25,520 আমরা, 2 আবার এটি বাড়ায় চলুন 867 00:58:25,520 --> 00:58:29,860 এবং 2 কম 3, তাই এটি লুপ জন্য পাস করব, এবং এটি 2 প্রিন্ট করব. 868 00:58:29,860 --> 00:58:35,100 তারপর আপনি 3 3 কম নয় নোট করব, তাই আমরা লুপ জন্য আউট বিরতি পাবেন. 869 00:58:35,100 --> 00:58:40,050 তাই এখন আমরা প্রস্থান করেছি, এবং তারপর আমরা aFunction ঢোকা চলুন. 870 00:58:40,050 --> 00:58:45,010 ঠিক আছে. তাই আপনি যদি এই পরিবর্তনশীল আমরা তৈরি করেছি যে খেয়াল করা আছে 871 00:58:45,010 --> 00:58:48,270 'আমি' পরিবর্তনশীল, স্থানীয়ভাবে scoped না. 872 00:58:48,270 --> 00:58:50,280 যে এটি লুপ স্থানীয় না এর মানে হল যে, 873 00:58:50,280 --> 00:58:58,060 এবং যে পরিবর্তনশীল আমরা এখনও অ্যাক্সেস এবং পরে পরিবর্তন, এবং এটা এখনও কার্যকর হবে পারেন. 874 00:58:58,060 --> 00:59:02,160 আপনি এখন ফাংশন ঢোকা সুতরাং, যদি আপনি, আমরা 'আমি' ভেরিয়েবল ব্যবহার দেখতে পাবেন 875 00:59:02,160 --> 00:59:05,320 এবং আমরা 'আমি' + + 'বাড়ায় চলুন. 876 00:59:05,320 --> 00:59:09,410 আপনি যে 'আমি' ভেরিয়েবলের একটি কপি যে, সি এর উপর ভিত্তি করে, প্রথম দিকে মনে হবে. 877 00:59:09,410 --> 00:59:12,830 এটা সঠিক, যা একটি সম্পূর্ণ ভিন্ন জিনিস. 878 00:59:12,830 --> 00:59:16,560 আমরা এটি প্রিন্ট যখন সুতরাং, আমরা প্রিন্ট আউট করতে যাচ্ছে, যা 'আমি' + প্রিন্ট করতে যাচ্ছেন যে 4, 879 00:59:16,560 --> 00:59:19,640 দুঃখিত - এবং তারপর আমরা চলুন. 880 00:59:19,640 --> 00:59:22,030 তারপর আমরা যে ফাংশন আউট শেষ হয়ে যাচ্ছেন, 881 00:59:22,030 --> 00:59:24,820 এবং আমরা যে তীর ডান এখন যেখানে হতে যাচ্ছেন. 882 00:59:24,820 --> 00:59:29,190 যে তারপর, কিন্তু, ফাংশন 'আমি' র মান পরিবর্তন করে, যদিও এর মানে হল যে, 883 00:59:29,190 --> 00:59:32,620 এটা বাইরে ফাংশন পরিবর্তন হয়নি, 884 00:59:32,620 --> 00:59:35,060 ফাংশন একটি পৃথক সুযোগ আছে, কারণ. 885 00:59:35,060 --> 00:59:38,960 যে, আমরা 'আমি' প্রতিধ্বনি, এটি ফাংশন সুযোগ মধ্যে পরিবর্তন হয়নি যে মানে 886 00:59:38,960 --> 00:59:43,660 এবং আমি তখন আমরা আবার 3 মুদ্রণ চলুন. 887 00:59:43,660 --> 00:59:47,520 সি আর পিএইচপি সুযোগ সম্পর্কে বিভিন্ন জিনিস 888 00:59:47,520 --> 00:59:51,130 >> এখন পিএইচপি এবং HTML এ. 889 00:59:51,130 --> 00:59:53,510 পিএইচপি ওয়েব পেজ গতিশীল করতে ব্যবহৃত হয়. 890 00:59:53,510 --> 00:59:58,660 এটা ধরনের জিনিস আলাদা করে তোলে. 891 00:59:58,660 --> 01:00:02,090 আমরা এইচটিএমএল থেকে এটি আলাদা আছে. 892 01:00:02,090 --> 01:00:05,230 এইচটিএমএল, আমরা সবসময় ঠিক, রব দেখিয়েছেন কিভাবে মত একই স্ট্যাটিক জিনিস আছে 893 01:00:05,230 --> 01:00:09,370 পিএইচপি, যেহেতু, আপনি ব্যবহারকারী কে উপর ভিত্তি জিনিস পরিবর্তন করতে পারেন. 894 01:00:09,370 --> 01:00:11,830 আমি এই আছে সুতরাং, যদি আমি, "আপনি যত ছবি -" আছে এবং তারপর নাম, 895 01:00:11,830 --> 01:00:14,420 এবং আমি নাম পরিবর্তন করতে পারেন. তাই এই মুহূর্তে নাম, জোসেফ হয় 896 01:00:14,420 --> 01:00:18,880 এবং এটা "আমার সম্পর্কে" আছে কিন্তু তারপর আমি টমি আছে নাম পরিবর্তন করতে পারেন. 897 01:00:18,880 --> 01:00:21,700 এবং যে একটি ভিন্ন জিনিস হবে. 898 01:00:21,700 --> 01:00:23,840 আমি তখন আমরা তার সম্পর্কে বিভিন্ন জিনিস পরিবর্তন করতে পারেন, 899 01:00:23,840 --> 01:00:27,070 এবং এটি নামের উপর ভিত্তি করে ভিন্ন কন্টেন্ট দেখাবে. 900 01:00:27,070 --> 01:00:31,430 সুতরাং পিএইচপি ধরনের আপনার ওয়েবসাইটের মধ্যে কি করছেন পরিবর্তন করতে পারেন. 901 01:00:31,430 --> 01:00:33,540 এখানে একই. এখনও, তারা বিভিন্ন কন্টেন্ট আছে মনে রাখবেন, 902 01:00:33,540 --> 01:00:38,870 আপনি টেকনিক্যালি এখনও পৃষ্ঠের যে একই ওয়েব পাতা ব্যবহার করা হয় যদিও. 903 01:00:38,870 --> 01:00:43,450 এইচটিএমএল জেনারেট. আপনি এটা করতে পারেন যে 2 বিভিন্ন উপায় আছে. 904 01:00:43,450 --> 01:00:48,980 সুতরাং আমরা এখন যে অধিকার দিয়ে যাবেন. প্রথম উপায় আপনার আছে, হল - হাঁ, দুঃখিত. 905 01:00:48,980 --> 01:00:51,150 সুতরাং আপনি ঠিক, পিএইচপি লুপ জন্য আপনার নিয়মিত আছে 906 01:00:51,150 --> 01:00:56,270 এবং তারপর আপনি পিএইচপি echo এবং আপনি এইচটিএমএল ইকো. 907 01:00:56,270 --> 01:00:58,720 রব এইচটিএমএল স্ক্রিপ্ট আপনাকে দেখিয়েছি কি ব্যবহার 908 01:00:58,720 --> 01:01:04,030 এবং তারপর শুধুমাত্র ওয়েব পেজ থেকে এটি প্রিন্ট আউট পিএইচপি মুদ্রণ ব্যবহার করে. 909 01:01:04,030 --> 01:01:09,520 বিকল্প উপায় আপনি পিএইচপি এবং এইচটিএমএল আউট আলাদা হিসাবে যদি এটা করতে হয়. 910 01:01:09,520 --> 01:01:11,940 তাই আপনি, লুপ জন্য শুরু হয় যে পিএইচপি একটি লাইন থাকতে পারে 911 01:01:11,940 --> 01:01:16,020 তারপর আপনি একটি পৃথক জিনিস মধ্যে HTML লাইন থাকতে পারে, 912 01:01:16,020 --> 01:01:19,700 এবং তারপর আপনি একটি পিএইচপি সঙ্গে, আবার, লুপ শেষ. 913 01:01:19,700 --> 01:01:21,800 সুতরাং এটি ধরনের এটি পৃথক এর. 914 01:01:21,800 --> 01:01:24,020 বাম দিকে, আপনি আপনার থাকতে পারে যে সব - 915 01:01:24,020 --> 01:01:26,360 এটি পিএইচপি মাত্র 1 খণ্ড. 916 01:01:26,360 --> 01:01:28,510 ডান উপর আপনি, আপনি PHP 'র একটি লাইন আছে দেখতে পারেন 917 01:01:28,510 --> 01:01:32,540 আপনি এইচটিএমএল একটি লাইন আছে, এবং আপনি আবার PHP 'র একটি লাইন আছে. 918 01:01:32,540 --> 01:01:36,870 সুতরাং তারা কি করছেন সেটিকে খুঁজে পৃথক. 919 01:01:36,870 --> 01:01:39,330 এবং আপনি যে উপায় হয়, তাদের মধ্যে হয়, যদি নোট করব 920 01:01:39,330 --> 01:01:41,980 তারা এখনও ইমেজ প্রিন্ট আউট, ইমেজ, ইমেজ, 921 01:01:41,980 --> 01:01:44,540 তাই যে এইচটিএমএল এখনও একই ভাবে ছাপা হয়. 922 01:01:44,540 --> 01:01:49,870 এবং তারপর আপনি এখনও 3 ইমেজ আপনার ওয়েবসাইটে দেখা দেখতে পাবেন. 923 01:01:49,870 --> 01:01:52,820 সুতরাং এটি একই জিনিস করছেন 2 বিভিন্ন উপায় আছে. 924 01:01:52,820 --> 01:01:55,060 >> এখন আমরা ফরম এবং অনুরোধ. রব, আপনি দেখিয়েছেন হিসাবে 925 01:01:55,060 --> 01:01:59,400 সেখানে এইচটিএমএল ফরম, এবং আমরা ঠিক এই মাধ্যমে অশান্তি হবে. 926 01:01:59,400 --> 01:02:02,040 আপনি একটি কর্ম আছে এবং আপনি একটি পদ্ধতি আছে, এবং আপনার কর্ম 927 01:02:02,040 --> 01:02:04,350 ধরনের আপনি এটা পাঠান চলুন যেখানে আপনি দেখায়, এবং পদ্ধতি কিনা 928 01:02:04,350 --> 01:02:06,960 এটি একটি GET অথবা একটি পোষ্ট হতে যাচ্ছে. 929 01:02:06,960 --> 01:02:11,220 এবং একটি অনুরোধ পান, রব বলেন, আপনি একটি আকারে এটা করা চলুন মানে হল 930 01:02:11,220 --> 01:02:15,760 একটি POST রিকোয়েস্ট আপনি একটি URL-এ দেখতে পাবেন না, যেহেতু এবং আপনি একটি URL হিসাবে এটি দেখতে পাবেন. 931 01:02:15,760 --> 01:02:17,840 তাই সামান্য পার্থক্য. 932 01:02:17,840 --> 01:02:19,950 তবে, একটি অনুরূপ জিনিস যে এক জিনিস 933 01:02:19,950 --> 01:02:22,560 পোষ্ট পেতে সমানভাবে অনিরাপদ হয়. 934 01:02:22,560 --> 01:02:26,430 তাই আপনি, ঠিক কারণ আপনি ইউআরএল তা দেখতে না যে মনে হতে পারে 935 01:02:26,430 --> 01:02:28,790 যে, পোষ্ট আরো নিরাপদ মানে 936 01:02:28,790 --> 01:02:34,420 কিন্তু আপনি এখনও আপনি পাঠানোর করছি যে তথ্য আপনার কুকি মধ্যে এটি দেখতে পারেন. 937 01:02:34,420 --> 01:02:38,260 তাই মনে করি না এক বা অন্যান্য. 938 01:02:38,260 --> 01:02:42,160 খেয়াল করা আরেকটা জিনিস আপনার কাছে অধ্যায় ভেরিয়েবল আছে. 939 01:02:42,160 --> 01:02:45,850 আপনি না আপনার ব্যবহারকারী আইডি তথ্য পেতে pset 7 এই ব্যবহার. 940 01:02:45,850 --> 01:02:48,550 কি আপনি এই মিশুক অ্যারে ব্যবহার করতে পারেন ছিল, 941 01:02:48,550 --> 01:02:53,310 $ _SESSION, এবং তারপর আপনি বিভিন্ন জিনিষ অ্যাক্সেস করতে সক্ষম হন 942 01:02:53,310 --> 01:02:57,720 এবং পৃষ্ঠা জুড়ে বিভিন্ন জিনিস সঞ্চয়. 943 01:02:57,720 --> 01:03:00,750 >> শেষ জিনিস, আমরা এসকিউএল, গঠিত অনুসন্ধান ভাষা আছে 944 01:03:00,750 --> 01:03:04,360 এবং এই উপাত্ত পরিচালনার জন্য একটি প্রোগ্রামিং ভাষা. 945 01:03:04,360 --> 01:03:08,220 ঠিক, উপাত্ত কি কি? তারা টেবিল সংগ্রহ করছি, 946 01:03:08,220 --> 01:03:10,630 এবং প্রতিটি টেবিলের অবজেক্টের একই ধরণের থাকতে পারে. 947 01:03:10,630 --> 01:03:14,990 সুতরাং আমরা আপনার অর্থ pset ব্যবহারকারীদের একটা টেবিল ছিল. 948 01:03:14,990 --> 01:03:20,610 এবং কেন তারা দরকারী? এটি স্থায়ীভাবে তথ্য জমা করার একটি উপায় কারণ. 949 01:03:20,610 --> 01:03:22,840 এটা জিনিস ট্র্যাকিং এবং জিনিষ পরিচালনার একটি উপায় 950 01:03:22,840 --> 01:03:25,890 এবং প্রকৃতপক্ষে বিভিন্ন পেজ এবং পালন ট্র্যাক এটা এইজন্য. 951 01:03:25,890 --> 01:03:29,930 যেহেতু আপনি শুধু যে এক তাৎক্ষণিক মুহূর্তে এটি সংরক্ষণ করা হলে 952 01:03:29,930 --> 01:03:33,720 এবং তারপর পরে এটি ব্যবহার, আপনি সংরক্ষণ করেছি কিছু যে অ্যাক্সেস করতে পারবে না. 953 01:03:33,720 --> 01:03:37,660 আমরা আমরা এসকিউএল কমান্ড জন্য ব্যবহার 4 প্রধান বিষয় আছে. 954 01:03:37,660 --> 01:03:40,190 আমরা নির্বাচন, সন্নিবেশ, মুছে ফেলা, এবং আপডেট আছে. 955 01:03:40,190 --> 01:03:42,880 যারা আপনাকে বলছি আপনার ব্যঙ্গ জন্য জানতে জন্য সত্যিই গুরুত্বপূর্ণ. 956 01:03:42,880 --> 01:03:45,990 >> আমরা দ্রুত মুহূর্তে ওভার নির্বাচন যাবেন. 957 01:03:45,990 --> 01:03:48,540 মূলত, আপনি একটি ডাটাবেস থেকে সারি নির্বাচন করছি. 958 01:03:48,540 --> 01:03:52,400 সুতরাং আপনি এখানে ডান, যদি - 959 01:03:52,400 --> 01:03:56,740 আমরা এইসব 2 ভিন্ন জিনিস আছে, এবং আমরা ক্লাস টেবিল থেকে নির্বাচন করতে চান 960 01:03:56,740 --> 01:04:01,480 যেখানে সন্ত্রস্ত - সন্ত্রস্ত কলামে মান 1 হয়. 961 01:04:01,480 --> 01:04:04,460 আপনি এখানে দেখতে পারেন সুতরাং, আমরা, বর্গ নামের এই 2 জিনিষ আছে 962 01:04:04,460 --> 01:04:08,490 CS50 এবং Stat110, এবং আমরা ক্লাস ID-র ও স্লোগান আছে. 963 01:04:08,490 --> 01:04:13,150 সুতরাং আমরা যে সমস্ত তথ্য নির্বাচন করতে চান. 964 01:04:13,150 --> 01:04:17,480 তারপর আপনি, এটা কোন ধরনের যে সন্ত্রস্ত কলামের বাইরে অবচয় যে অধিকার এখানে দেখতে পারেন 965 01:04:17,480 --> 01:04:25,170 সবকিছুর 1, এবং তারপর এটি বর্গ আইডি, ক্লাস নাম এবং এটি বাছাই করতে পারেন যে স্লোগান আছে যেখানে. 966 01:04:25,170 --> 01:04:28,100 আপনি এই কোডে কিভাবে ঠিক করব? আপনি পিএইচপি ব্যবহার আছে. 967 01:04:28,100 --> 01:04:33,830 সুতরাং যে ধরনের পিএইচপি এবং এসকিউএল একে অপরের সাথে সম্পর্কিত হয় কিভাবে. 968 01:04:33,830 --> 01:04:38,130 এখন আমরা আমাদের কোড আছে, এবং আমরা আমাদের প্রশ্নের সাথে ফাংশান ব্যবহার করতে যাচ্ছেন 969 01:04:38,130 --> 01:04:41,370 আমরা pset 7 করেছিল, এবং আমরা এসকিউএল কোয়েরি চালানো চলুন হিসেবে. 970 01:04:41,370 --> 01:04:43,870 তারপর আমরা আছে চলুন - 971 01:04:43,870 --> 01:04:46,280 আমরা সবসময় মিথ্যা যদি সারি এর ট্রিপল সমান যদি চেক আছে. 972 01:04:46,280 --> 01:04:49,010 তাই আবার, আপনি টাইপ এবং মান পরীক্ষা করতে, 973 01:04:49,010 --> 01:04:53,880 এটা কাজ করে না এবং তারপর যদি, তাহলে আমরা pset 7 করেছিল হিসাবে, স্বাভাবিক হিসাবে, ক্ষমাপ্রার্থী করতে চান. 974 01:04:53,880 --> 01:04:55,870 অন্যথা, আপনি ঐ কুশলী সঙ্গে সবকিছু মাধ্যমে লুপ চান 975 01:04:55,870 --> 01:04:59,410 foreach আমরা শুধু ওভার গিয়েছিলাম যে loops. 976 01:04:59,410 --> 01:05:01,280 , আমরা মাধ্যমে looping করছি এবং আমরা অতীতে এটি তৈরি করেছি এখন যে 977 01:05:01,280 --> 01:05:05,080 আসুন আমাদের প্রশ্নের সাথে পাশ অনুমান করা যাক, এখন আমরা আমাদের foreach লুপ আছে. 978 01:05:05,080 --> 01:05:11,050 এবং প্রথম সারিতে এটা আছে, তাই এখানে সারি অধিকার এখানে, এর তা boxed এর. 979 01:05:11,050 --> 01:05:14,010 এটা অর্জিত যে সমস্ত তথ্য আউট মুদ্রণ যাচ্ছে. 980 01:05:14,010 --> 01:05:18,070 সুতরাং নীচে আউট মুদ্রণ যাচ্ছে "ওয়ানা এইচটিএমএল শিখুন" 981 01:05:18,070 --> 01:05:23,370 এটি লুপ জন্য প্রথম সম্পন্ন কারণ তারপর এটা,, পরের সারিতে যেতে যাচ্ছে 982 01:05:23,370 --> 01:05:26,510 এবং তারপর, তাই এটা, এটা দ্বিতীয় লাইন আউট মুদ্রণ যাচ্ছে 983 01:05:26,510 --> 01:05:32,120 STAT110 হতে যাচ্ছে, যা সব মারার খুঁজুন. 984 01:05:32,120 --> 01:05:34,290 >> গত এক জিনিস এসকিউএল দুর্বলতা হয়. 985 01:05:34,290 --> 01:05:37,300 আমি ডেভিড এই প্রথম বক্তৃতায় অল্প ছোঁয়া জানি. 986 01:05:37,300 --> 01:05:40,730 আপনি পরে এই পড়তে পারেন. এটা সত্যিই মজার. 987 01:05:40,730 --> 01:05:45,320 এসকিউএল ইনজেকশন চতুর জিনিস এক ধরনের. 988 01:05:45,320 --> 01:05:49,890 এর আপনি সঠিক আপনার প্রশ্নের সাথে মধ্যে যারা ভেরিয়েবল সোঁটা বলা যাক, 989 01:05:49,890 --> 01:05:52,290 আপনি যে প্রথম লাইন দেখতে পারেন. 990 01:05:52,290 --> 01:05:54,520 সুতরাং এটি ঠিক আছে, সূক্ষ্ম বলে মনে হয়? আপনাকে কেবল ব্যবহারকারী নাম নির্বাণ করছি 991 01:05:54,520 --> 01:05:58,820 এবং আপনার SQL কোয়েরি যাও পাসওয়ার্ড, এবং আপনি তা বন্ধ অর্ণবপোত এবং আপনার তথ্য টেবিলের মধ্যে যা কিছু পেতে চান. 992 01:05:58,820 --> 01:06:01,450 এটা বেশ সহজ মনে হয়. সুতরাং, কেউ রাখে বলে দেয় 993 01:06:01,450 --> 01:06:04,910 পাসওয়ার্ড জন্য, এই বা টেক্সট এখানে ডান - 994 01:06:04,910 --> 01:06:06,780 আসলে লাল বক্সের মধ্যে হতে হবে. 995 01:06:06,780 --> 01:06:11,920 সুতরাং আসুন তারা মধ্যে যে পাসওয়ার্ড করা যে বলা যাক - যে তারা লিখতে কি. 996 01:06:11,920 --> 01:06:16,520 সুতরাং তারা নির্বাণ বা "1" = 1 করছি. 997 01:06:16,520 --> 01:06:20,880 আছে একটি নিরীহ পাসওয়ার্ড ধরনের. 998 01:06:20,880 --> 01:06:25,070 এখন আসুন শুধু এটি প্রতিস্থাপন করা যাক, এবং আপনি এখন যে SQL কোয়েরি মধ্যে নোট করব, 999 01:06:25,070 --> 01:06:29,090 আপনি নোট পাবেন, কারণ এটি সর্বদা সত্য যাও মূল্যায়ণ করা যে 1000 01:06:29,090 --> 01:06:32,240 আপনি SQL কোয়েরি এই সমস্ত তথ্য নির্বাচন করতে পারেন 1001 01:06:32,240 --> 01:06:35,420 অথবা আপনি শুধু = 1 1 থাকতে পারে. 1002 01:06:35,420 --> 01:06:41,030 সুতরাং যে সর্বদা সত্য যাও নির্ণয় করা যাচ্ছে. 1003 01:06:41,030 --> 01:06:46,610 যে হ্যাকার আপনার সিস্টেমের মধ্যে ভাঙ্গতে পারে এর মানে হল এ কারণে যে, সত্যিই কাজ করে যাচ্ছে না. 1004 01:06:46,610 --> 01:06:49,300 এই সমাধান আপনি PDO সিস্টেম ব্যবহার আছে যে, 1005 01:06:49,300 --> 01:06:51,360 যা, আপনি প্রশ্ন চিহ্ন ব্যবহার করতে হবে এর মানে হল যে 1006 01:06:51,360 --> 01:06:53,350 কি আপনি pset 7 ব্যবহার বলছি, যা 1007 01:06:53,350 --> 01:06:57,620 আপনি কিছু লাগাতে চান যেখানে স্থানে একটি প্রশ্ন চিহ্ন ব্যবহার করতে যাচ্ছেন যেখানে, 1008 01:06:57,620 --> 01:07:01,430 এবং তারপর, আপনি একটি কমা আছে চলুন, এবং তারপর আপনি পরে হবে 1009 01:07:01,430 --> 01:07:07,610 আপনার স্ট্রিং পরে, আপনি চান যে বিভিন্ন ভেরিয়েবল আপনার প্রশ্ন চিহ্ন মধ্যে প্রতিস্থাপন. 1010 01:07:07,610 --> 01:07:10,330 সুতরাং আপনি এখন আমি এই লাল প্রশ্ন চিহ্ন আছে এখানে নোট পাবেন. 1011 01:07:10,330 --> 01:07:15,420 আমি পরে যে অনুক্রমে তাদের প্রতিস্থাপন জানি তাই তারপর আমি আমার স্ট্রিং পরে ভেরিয়েবল করা. 1012 01:07:15,420 --> 01:07:18,470 কেউ ভালো যদি এটি আছে যে, নিশ্চিত যে করতে হবে 1013 01:07:18,470 --> 01:07:24,050 এবং তারা, নিশ্চিত করতে হবে যে, বা 1 = 1 অবস্থায় আছে 1014 01:07:24,050 --> 01:07:30,490 ফিরে শেষ পর্যন্ত, এটা আসলে এসকিউএল কোয়েরি বিরতি হবে তা নিশ্চিত করুন. 1015 01:07:30,490 --> 01:07:33,660 ঠিক আছে, পিএইচপি এবং এসকিউএল একটি ঘূর্ণিঝড়, যে প্রায় কাছাকাছি এটি তাই. 1016 01:07:33,660 --> 01:07:41,520 আপনি সব শুভেচ্ছা, এবং এখন যাও Ore যাও 1017 01:07:41,520 --> 01:07:44,270 >> [Oreoluwatomiwa Babarinsa] ঠিক আছে সবাই. কিছু জাভাস্ক্রিপ্ট ধরে যেতে সময় 1018 01:07:44,270 --> 01:07:48,840 এবং কিছু অন্যান্য বিষয় খুব তাড়াতাড়ি যাতে আমরা আপনাকে আজ রাতে আপ রাখা না. 1019 01:07:48,840 --> 01:07:56,930 জাভাস্ক্রিপ্ট. হ্যাঁ. জাভাস্ক্রিপ্ট purportedly, একটি শীতল জিনিস ধরনের. 1020 01:07:56,930 --> 01:07:59,090 আপনি সত্যিই জাভাস্ক্রিপ্ট সম্পর্কে জানা প্রয়োজন জিনিষ, এটা সাজানোর মত 1021 01:07:59,090 --> 01:08:03,810 আপনার ওয়েব অ্যাপ্লিকেশন কাজ করা যাচ্ছে কি ক্লায়েন্ট প্রান্তের শেষ. 1022 01:08:03,810 --> 01:08:08,280 আপনি শুধু সার্ভারের দিকে সব সময় যত্ন নিতে না চান কিছু জিনিস আছে. 1023 01:08:08,280 --> 01:08:12,880 সমস্ত সামান্য মিথস্ক্রিয়া, এক জিনিস হাইলাইট কিছু উধাও হয়ে যায়, যার ফলে. 1024 01:08:12,880 --> 01:08:15,340 আপনি সত্যিই আপনার সার্ভারের সাথে যে জন্য সব সময় কথা বলার আছে না চান. 1025 01:08:15,340 --> 01:08:18,069 এবং যে কিছু সার্ভার পাশ দিয়ে যা করতে এমনকি সম্ভব নয়. 1026 01:08:18,069 --> 01:08:21,899 আমরা জাভাস্ক্রিপ্ট ভালো কিছু প্রয়োজন কেন. 1027 01:08:21,899 --> 01:08:24,359 জাভাস্ক্রিপ্ট সম্পর্কে দুর্দান্ত জিনিস: এটি পরিবর্তনশীল টাইপ করা হয়. 1028 01:08:24,359 --> 01:08:27,149 কি এই মানে হল আপনার প্রোগ্রাম জানি না প্রয়োজন হয় 1029 01:08:27,149 --> 01:08:30,970 আপনি এটা লিখতে হলে কি, ঠিক, ভেরিয়েবল হয়. 1030 01:08:30,970 --> 01:08:34,510 এটা চলমান এর হিসাবে এটি শুধু সাজানোর এটা চিন্তা করব. 1031 01:08:34,510 --> 01:08:37,520 এটি সম্পর্কে শীতল হয় যে অন্যান্য জিনিস: এটি একটি কোঁকড়া বক্রবন্ধনী ভাষা আছে, 1032 01:08:37,520 --> 01:08:41,359 যা সিনট্যাক্স C এবং পিএইচপি অনুরূপ মানে. 1033 01:08:41,359 --> 01:08:47,050 আপনি জাভাস্ক্রিপ্ট শিখছে তা হলে অনেক rework যা করতে হবে না. 1034 01:08:47,050 --> 01:08:49,180 এখানে আমরা জাভাস্ক্রিপ্ট সামান্য বিট আছে. 1035 01:08:49,180 --> 01:08:52,560 অধিকার এখানে আকর্ষনীয় ব্যাপার হল যে, আপনি এটি তাকান, হয় 1036 01:08:52,560 --> 01:08:56,330 আমরা মাথা ট্যাগে অধিকার আছে জাভাস্ক্রিপ্ট একটি বিট আছে. 1037 01:08:56,330 --> 01:08:59,479 কি মূলত শুধুমাত্র একটি জাভাস্ক্রিপ্ট ফাইল অন্তর্ভুক্ত করা হয় না. 1038 01:08:59,479 --> 01:09:02,260 এই কমান্ডের সাহায্যে আপনি আপনার প্রোগ্রামে জাভাস্ক্রিপ্ট অন্তর্ভুক্ত করতে পারে একটি পদ্ধতি. 1039 01:09:02,260 --> 01:09:06,910 তারপর দ্বিতীয় সামান্য বিট, আসলে কিছু ইনলাইন জাভাস্ক্রিপ্ট হয় 1040 01:09:06,910 --> 01:09:10,790 খুব সিএসএস সঙ্গে ইনলাইন শৈলী অনুরূপ, 1041 01:09:10,790 --> 01:09:16,180 এবং আপনি শুধু খুব তাড়াতাড়ি সেখানে কিছু কোড লেখার. 1042 01:09:16,180 --> 01:09:18,120 জাভাস্ক্রিপ্ট অ্যারে আছে. 1043 01:09:18,120 --> 01:09:20,850 খুব দরকারী, কাছাকাছি তথ্য রাখা শুধু অন্য উপায়. 1044 01:09:20,850 --> 01:09:25,180 অত্যন্ত সুন্দর এবং সহজ সিনট্যাক্স. 1045 01:09:25,180 --> 01:09:29,870 আপনি সবকিছু এবং অ্যাক্সেস সবকিছু একসাথে রাখা বর্গাকার বন্ধনী ব্যবহার. 1046 01:09:29,870 --> 01:09:35,020 খুব জটিল কিছুই নেই. 1047 01:09:35,020 --> 01:09:38,630 সাধারণ জাভাস্ক্রিপ্ট এবং স্ক্রিপ্টিং ভাষা সম্পর্কে শীতল জিনিস 1048 01:09:38,630 --> 01:09:40,920 আপনি অ্যারে মাপ সম্পর্কে চিন্তা করতে হবে না যে. 1049 01:09:40,920 --> 01:09:43,880 আপনি শুধুমাত্র array.length এবং এটি ব্যবহার ট্র্যাক রাখতে পারবেন, 1050 01:09:43,880 --> 01:09:46,960 এবং এ অ্যারে বাড়া বা আপনি এটি প্রয়োজন হিসাবে সঙ্কুচিত করতে পারেন. 1051 01:09:46,960 --> 01:09:49,279 সুতরাং আপনি এমনকি, কোন ধরণের সম্পর্কে চিন্তা করতে হবে না 1052 01:09:49,279 --> 01:09:57,050 ওহ না, আমি আরো জিনিষ, বা যে মত কিছু বরাদ্দ করা প্রয়োজন. 1053 01:09:57,050 --> 01:10:00,090 >> জিনিস এখানে বস্তু কিছু বলা আছে. 1054 01:10:00,090 --> 01:10:04,800 এটি একটি অবজেক্ট ওরিয়েন্টেড ভাষা, তাই এটা হয়েছে মূলত,, 1055 01:10:04,800 --> 01:10:10,100 দলের তথ্য আপনার জন্য একটি পথ একসাথে, একটি struct থেকে কিছুটা অনুরূপ, 1056 01:10:10,100 --> 01:10:17,280 কিন্তু আপনি একটি struct মত অথবা একটি মিশুক অ্যারে সিনট্যাক্স মধ্যে এটি ব্যবহার করতে পারবেন. 1057 01:10:17,280 --> 01:10:22,520 এটি বেশ সহজ এবং আপনি কি এই সঙ্গে কাজ করতে পারেন একসাথে গ্রুপ তথ্য হল 1058 01:10:22,520 --> 01:10:24,810 আপনি সম্পর্কিত যে তথ্য একটি গুচ্ছ আছে. 1059 01:10:24,810 --> 01:10:26,850 এটি আপনাকে একটি গাড়ী বর্ণনা প্রয়োজন সবকিছুর কারণ, 1060 01:10:26,850 --> 01:10:29,050 আপনি বিভিন্ন জায়গায় একটি গুচ্ছ মধ্যে এটা আছে, দরকার নেই. 1061 01:10:29,050 --> 01:10:35,300 আপনি শুধুমাত্র জাভাস্ক্রিপ্ট মধ্যে 1 বস্তুর মধ্যে দাম ধরা যেতে পারে. 1062 01:10:35,300 --> 01:10:39,090 আপনি সম্ভবত জানেন, iterating ঐ ক্লান্তিকর কাজগুলো এক. 1063 01:10:39,090 --> 01:10:43,810 আপনি শুধু আবার একটি ওভার ওভার এটা. আপনি গাড়ির প্রত্যেক বস্তুর সঙ্গে কথা বলার প্রয়োজন 1064 01:10:43,810 --> 01:10:47,340 অথবা আপনি একটি তালিকা বা যে মত কিছু প্রতিটি আইটেমের মধ্য দিয়ে যেতে হবে. 1065 01:10:47,340 --> 01:10:51,770 সুতরাং জাভাস্ক্রিপ্ট, পিএইচপি, একটি foreach সিনট্যাক্স অনুরূপ আছে. 1066 01:10:51,770 --> 01:10:54,590 এই ক্ষেত্রে, এটি লুপ জন্য না. 1067 01:10:54,590 --> 01:10:57,300 আপনি কেবল বস্তুর উপর এই ব্যবহার করতে চান. 1068 01:10:57,300 --> 01:11:01,030 আপনি অ্যারে নেভিগেশন এই ব্যবহার যদি যে ঘটতে কিছু সমস্যা আছে. 1069 01:11:01,030 --> 01:11:03,750 সাধারণভাবে যদিও, যে খুবই দরকারী, সেগুলো এক 1070 01:11:03,750 --> 01:11:06,590 আপনি উপরি অনেক বাছা কারণ 1071 01:11:06,590 --> 01:11:10,270 আপনি নিজেকে দ্বারা আপনার বস্তুর সবকিছুই থামা করতে হবে না, কারণ. 1072 01:11:10,270 --> 01:11:12,300 আপনি সব কি নাম স্মরণ করতে হবে না. 1073 01:11:12,300 --> 01:11:18,270 আপনি ঠিক সাজানোর এই সিনট্যাক্স তাদের ফিরে পেতে. 1074 01:11:18,270 --> 01:11:21,500 এই যে, জন্য সহ, আপনি শুধু মনে রাখতে চান 1075 01:11:21,500 --> 01:11:27,180 আপনি টেবিল হ্যাশ একটি অনুরূপ ভাবে, সব কি ফিরে পেয়ে থাকেন যে. 1076 01:11:27,180 --> 01:11:30,880 আপনি যে থেকে মনে রাখবেন যদি আপনি একটি স্ট্রিং স্থাপন করা হবে, আপনি কিছু খুঁজে পেতে পারেন 1077 01:11:30,880 --> 01:11:33,840 যে এটি সঙ্গে যুক্ত মান থাকতে হবে. 1078 01:11:33,840 --> 01:11:36,360 কি আপনি এই সঙ্গে কাজ করতে পারেন, আপনি, ঠিক আছে বলতে পারেন হয় 1079 01:11:36,360 --> 01:11:42,120 আমি একটা গাড়ী রাখা, এবং আমি একটি ফেরারী বলা. 1080 01:11:42,120 --> 01:11:45,290 সুতরাং আপনি পরে আবার স্ট্রিং ফেরারী মধ্যে লাগাতে পারেন, এবং আপনি যে খুঁজে পেতে পারেন. 1081 01:11:45,290 --> 01:11:50,000 এবং যদি আপনি লুপ জন্য, সঙ্গে একটি লুপ মধ্যে তা করতে পারে. 1082 01:11:50,000 --> 01:11:53,320 তাই শুধু বস্তু সম্পর্কে আরো. আপনি মনে রাখা প্রয়োজন এই থেকে কি জিনিস 1083 01:11:53,320 --> 01:12:00,340 , আপনি এই সঙ্গে যখনই আপনি সিনট্যাক্স মত বস্তুর struct ব্যবহার করতে পারেন 1084 01:12:00,340 --> 01:12:04,590 কি আপনার একটি পংক্তি হিসাবে ব্যবহার করা যাচ্ছে একটি বৈধ পরিবর্তনশীল নাম নয় যদি ছাড়া. 1085 01:12:04,590 --> 01:12:07,650 আপনি যে আছে তাকান সুতরাং, যদি আমরা স্পেস দিয়ে কি আছে. 1086 01:12:07,650 --> 01:12:12,500 হ্যাঁ, আপনি object.key করা হলে, স্থান, সঙ্গে, স্থান, শূণ্যস্থান, 1087 01:12:12,500 --> 01:12:15,320 যে শুধু চিহ্নগুলি সিন্টেক্সের জানার জন্য না. 1088 01:12:15,320 --> 01:12:22,730 সুতরাং আপনি শুধুমাত্র বন্ধনী সিনট্যাক্স এই সাজানোর সঙ্গে তা করতে পারে. 1089 01:12:22,730 --> 01:12:26,520 >> এছাড়াও, জাভাস্ক্রিপ্ট খুব সুযোগ জিনিস পিএইচপি হল. 1090 01:12:26,520 --> 01:12:29,050 আপনি সুযোগ অ্যাড্রেসিং এর মধ্যে 2 টি উপায় আছে. 1091 01:12:29,050 --> 01:12:31,960 আপনি একটি পরিবর্তনশীল সামনে var থাকতে পারে না, 1092 01:12:31,960 --> 01:12:34,060 এবং যে মাত্র এই আন্তর্জাতিক মানে. 1093 01:12:34,060 --> 01:12:37,050 আপনি যে কোন জায়গা থেকে তা দেখতে পারেন. আপনি যদি একটি যদি বিবৃতিতে এই করা ছিল এমনকি যদি, 1094 01:12:37,050 --> 01:12:42,430 কোথাও আপনার কোড মধ্যে যে বিন্দু পরে আপনি যে পরিবর্তনশীল দেখতে পারে. 1095 01:12:42,430 --> 01:12:46,730 আরেকটি বিষয় যদিও, এটা আপনি ইন করছি যাই হোক না কেন ফাংশন সীমাবদ্ধ আছে, var সঙ্গে হল 1096 01:12:46,730 --> 01:12:48,870 আপনি যদি একটি ফাংশন মধ্যে পারব না, ভাল, এটা বিশ্বব্যাপী এর. 1097 01:12:48,870 --> 01:12:53,900 আপনি যদি একটি ফাংশন আছে কিন্তু যদি এটা যে ফাংশন মধ্যে শুধুমাত্র দৃশ্যমান হবে. 1098 01:12:53,900 --> 01:12:56,420 আমি হাঁ, একটি উদাহরণ আছে, কিন্তু নেই. এটা ঐ জিনিস এক যেখানে 1099 01:12:56,420 --> 01:12:59,900 আপনি, আপনি বৈশ্বিক হতে চান কি ভেরিয়েবল পরিচালনা করতে পারেন 1100 01:12:59,900 --> 01:13:03,810 কি ভেরিয়েবল আপনি স্থানীয় হতে চান, কিন্তু আপনি এই সম্পর্কে সচেতন হওয়া প্রয়োজন না, 1101 01:13:03,810 --> 01:13:06,890 আপনি সি কি সূক্ষ্ম দানা নিয়ন্ত্রণ ধরণ আছে না, কারণ, 1102 01:13:06,890 --> 01:13:15,820 কিছু লুপ জন্য একটি মধ্যে ঘোষিত হয়, এটি লুপ জন্য যে থাকতে যাচ্ছে যেখানে. 1103 01:13:15,820 --> 01:13:18,790 আমরা আসলে জন্য জাভাস্ক্রিপ্ট ব্যবহার যত্নশীল জিনিস অধিকার, ওয়েব পেজ সাধিত হয়? 1104 01:13:18,790 --> 01:13:21,800 আমি বলতে চাচ্ছি, যে কেন আমরা এই কাজ করছি না. 1105 01:13:21,800 --> 01:13:23,840 >> আমরা DOM কিছু বলা ব্যবহার, যে কাজের জন্য. 1106 01:13:23,840 --> 01:13:25,850 ডকুমেন্ট অবজেক্ট মডেল. 1107 01:13:25,850 --> 01:13:29,430 মূলত, এটি কী জন্য এটি সব আপনার HTML লাগে হয় 1108 01:13:29,430 --> 01:13:34,110 এবং একে অপরের মধ্যে নেস্টেড যে বস্তুর এক গুচ্ছ মধ্যে মডেল এটি. 1109 01:13:34,110 --> 01:13:37,080 আপনি ভালো কিছু দিয়ে শুরু. 1110 01:13:37,080 --> 01:13:44,770 আপনি সেখানে আউট কোড একটি গুচ্ছ যে ধরণের আছে, আমার জন্য অধিকার, আছে - 1111 01:13:44,770 --> 01:13:46,640 আপনি যে নিপূণভাবে খুব কঠিন হতে চাই মনে হবে, 1112 01:13:46,640 --> 01:13:48,700 আপনি লেখার একটা গুচ্ছ মাধ্যমে পার্সিং করা চাই, কারণ 1113 01:13:48,700 --> 01:13:52,080 এবং জিনিস সরাইয়া টুকরা হচ্ছে. এবং এটি সঠিকভাবে কি ফরম্যাট না হয় তাহলে কি হবে? 1114 01:13:52,080 --> 01:13:54,880 খারাপ ব্যাপার ঘটতে হবে. 1115 01:13:54,880 --> 01:13:58,140 সুতরাং, জাভাস্ক্রিপ্ট আপনার জন্য এই যত্ন নেয়, এবং আপনি একটা চমৎকার তথ্য কাঠামো পেতে 1116 01:13:58,140 --> 01:14:01,390 আপনি শুধু একটি নথি আছে আমার, বাকি এক মত, 1117 01:14:01,390 --> 01:14:03,530 এবং যে ভিতর আপনি, এইচটিএমএল কিছু বলা আছে 1118 01:14:03,530 --> 01:14:05,600 এবং যে ভিতরে আপনি একটি মাথা এবং শরীরের আছে 1119 01:14:05,600 --> 01:14:08,420 এবং যে মাথার ভিতর আপনি, ইত্যাদি,, ইত্যাদি ইত্যাদি একটি শিরোনাম আছে. 1120 01:14:08,420 --> 01:14:11,810 এই, এটা ঠিক যে, তাই একটি ওয়েব পাতা সাধিত সহজসাধ্য 1121 01:14:11,810 --> 01:14:14,190 ওহ, আমি এই বস্তুর কথা বলতে চান. 1122 01:14:14,190 --> 01:14:21,340 আপনি আপনার নিজের তৈরি করা অন্য বস্তুর সাথে কথা বলতে হবে একটি অনুরূপ ভাবে সাজানোর. 1123 01:14:21,340 --> 01:14:25,980 ভালো লেগেছে আমি বলেন, সব DOM নথির বস্তুর হয়. 1124 01:14:25,980 --> 01:14:29,290 উভয় ক্ষেত্রেই, এটা শুধু একটা জায়গা এবং তারপর আপনি জিনিষ খুঁজে পেতে এটি মধ্যে যেতে পারেন 1125 01:14:29,290 --> 01:14:33,880 এবং আপনি এটা করতে পারেন - এই পর্যন্ত আছে, এরকম পুরানো শৈলী, 1126 01:14:33,880 --> 01:14:38,130 কি যদি বার এবং যেখানে তারপর নাম, 1127 01:14:38,130 --> 01:14:42,420 সম্ভবত আপনি বলতে পারেন এবং এই একটা সময় পরে খুব জবরজং পায়. 1128 01:14:42,420 --> 01:14:44,480 তাই সম্ভবত আপনি তা করতে না চান. আমরা আছে এটা কেন 1129 01:14:44,480 --> 01:14:48,760 আমরা এই পরে সম্পর্কে কথা বলতে যাচ্ছেন পরের জিনিস. 1130 01:14:48,760 --> 01:14:52,510 এখানে কী জিনিস, যে ঠিক আছে, আপনি সঠিক, এই সব উপাদান আছে? 1131 01:14:52,510 --> 01:14:56,400 তাই হয়তো আমি যখন পাতা লোড কিছু এর রং পরিবর্তন করতে পারেন. 1132 01:14:56,400 --> 01:14:58,380 তাই কি? কি আমার ইউজার কিছু ক্লিক তাহলে কি হবে? 1133 01:14:58,380 --> 01:15:00,540 আমি মনে করি তারা কিছু ক্লিক করা হলে এটি আকর্ষণীয় কিছু করে যেতে চাই. 1134 01:15:00,540 --> 01:15:02,600 আমরা ঘটনা আছে কেন. 1135 01:15:02,600 --> 01:15:05,330 আপনি মূলত, আপনার DOM মধ্যে কোন উপাদান খুঁজে পেতে পারেন, 1136 01:15:05,330 --> 01:15:08,560 এবং তারপর আরে, বলে. , এই লোড বা কেউ এটি ক্লিক করা হলে 1137 01:15:08,560 --> 01:15:11,410 অথবা তারা মাউস এটি উপর, এটা দিয়ে কিছু করতে হলে. 1138 01:15:11,410 --> 01:15:15,330 এবং কি আপনি যদি আপনি আপনার জন্য এই সব ব্যবস্থা যে ফাংশন আছে. 1139 01:15:15,330 --> 01:15:17,980 এই ফাংশন ইভেন্ট হ্যান্ডলার হয়. 1140 01:15:17,980 --> 01:15:20,440 কি they're - এটি বলার অপেক্ষা রাখে না শুধু একটি অভিনব উপায়, 1141 01:15:20,440 --> 01:15:23,500 এই ঘটনা ঘটে যখন এই ফাংশন শুধুমাত্র মৃত্যুদন্ড কার্যকর করা হয়. 1142 01:15:23,500 --> 01:15:28,070 সুতরাং এটা যে ঘটে ইভেন্ট পরিচালনা. 1143 01:15:28,070 --> 01:15:30,810 এই কমান্ডের সাহায্যে আপনি একটি ইভেন্ট হ্যান্ডলার খুঁজে রাখা হবে না. 1144 01:15:30,810 --> 01:15:34,750 আমি কিছু বোতাম আছে, এবং আপনি এটি ক্লিক করা হলে, এটি explodes. 1145 01:15:34,750 --> 01:15:40,560 সুতরাং বাটন ক্লিক না. 1146 01:15:40,560 --> 01:15:42,910 এই অধিকার, এটা সমীপবর্তী এক উপায়? 1147 01:15:42,910 --> 01:15:46,430 , আপনি একটি বাটন ট্যাগ আছে, এবং ক্লিক করলে আপনি যে একটি স্ট্রিং আছে 1148 01:15:46,430 --> 01:15:50,460 ওহ, যাইহোক, আমি আমার জন্য এই exploding জিনিস করে. 1149 01:15:50,460 --> 01:15:53,990 অন্যথা, এটি শুধু আপনি শুধু তৈরি একটি নিয়মিত বোতাম মত. 1150 01:15:53,990 --> 01:15:56,550 এছাড়াও আপনি এই অন্য উপায় কি করতে পারেন, 1151 01:15:56,550 --> 01:16:02,770 আমরা jQuery সম্পর্কে কথা বলার পরে DOM উপাদান দখল, কিন্তু এর দ্বারা আমরা যে সংরক্ষণ করব. 1152 01:16:02,770 --> 01:16:07,580 >> JQuery: এটা ক্রস ব্রাউজার যে একটি লাইব্রেরি রয়েছে. 1153 01:16:07,580 --> 01:16:09,580 আপনি প্রশংসনীয় অনেক কিছু এটি ব্যবহার করতে পারেন. 1154 01:16:09,580 --> 01:16:12,090 এবং এটা ঠিক আপনার সাথে কাজ করার জন্য সরঞ্জাম অনেক আপনি. 1155 01:16:12,090 --> 01:16:15,850 জাভাস্ক্রিপ্ট, শক্তিশালী, যখন আপনার প্রয়োজন সরঞ্জাম নেই কারণ 1156 01:16:15,850 --> 01:16:20,550 সত্যিই একটি ওয়েব অ্যাপ্লিকেশন মোকাবেলা বাক্সের বাইরে আপনাকে যা করতে চাইতে পারেন. 1157 01:16:20,550 --> 01:16:24,650 সুতরাং, একটা অনেক সহজসাধ্য আপনি ফাংশন অনেক দেয় 1158 01:16:24,650 --> 01:16:28,760 আপনি সাধারণতঃ বহুবার এবং উপর, নিজেকে লিখতে হবে যে বাক্সের বাইরে. 1159 01:16:28,760 --> 01:16:31,600 এবং শুধুমাত্র জিনিস খুব সহজ করে তোলে. 1160 01:16:31,600 --> 01:16:35,780 এছাড়াও আপনি ঐ সমস্ত উপাদান গ্রহণ করা যাক যা নির্বাচক, আছে 1161 01:16:35,780 --> 01:16:42,800 আপনার DOM আরো অনেক কিছু থেকে সহজভাবে পরিবর্তে এইসব খুব দীর্ঘ ফাংশান কল ব্যবহার করতে হচ্ছে. 1162 01:16:42,800 --> 01:16:46,630 এই নির্বাচক আরও. আপনি, এর কথা বলা যাক আছে আপ আছে, আছে 1163 01:16:46,630 --> 01:16:49,800 আমি আইডি সঙ্গে একটি উপাদান পেতে চাই "শিলা." 1164 01:16:49,800 --> 01:16:56,450 ওয়েল, jQuery, এটা কেবল $ এবং তারপর একটি আধা কেজি আছে একটি স্ট্রিং, এবং তারপর এর "শিলা." 1165 01:16:56,450 --> 01:17:01,960 এটা খুবই সহজ এবং এই সমস্যা মোকাবেলা প্রথাগত জাভাস্ক্রিপ্ট উপায় তুলনায় অনেক দ্রুততর. 1166 01:17:01,960 --> 01:17:06,120 এবং আপনি ক্লাস এবং উপাদান ধরনের জন্য একই জিনিস আছে. 1167 01:17:06,120 --> 01:17:08,140 jQuery হয় - শীতল বৈশিষ্ট্য হল যে আপনি ধরণের কম্প্রেস করতে পারেন 1168 01:17:08,140 --> 01:17:14,350 আপনার DOM আপনার জিজ্ঞাস্য ডাউন খুব, খুব দ্রুত. 1169 01:17:14,350 --> 01:17:18,980 এখন আমরা ফিরে ইভেন্ট হ্যান্ডলিং করতে থাকেন, এবং এই আপনি jQuery এক ইভেন্ট হ্যান্ডেল করবে না. 1170 01:17:18,980 --> 01:17:23,090 তাই আমরা এখানে চলুন আমরা ঠিক আছে, বলছে না. আমি একটি স্ক্রিপ্ট ট্যাগ আছে, ডান? 1171 01:17:23,090 --> 01:17:25,400 তাই আমি এই ইনলাইন জাভাস্ক্রিপ্ট আছে. 1172 01:17:25,400 --> 01:17:27,750 আমরা কি করতে যাচ্ছেন আমরা সব অধিকার বলে, চলুন না. 1173 01:17:27,750 --> 01:17:30,860 নথি, দলিল লোড করা হয়েছে, যার মানে যখন প্রস্তুত 1174 01:17:30,860 --> 01:17:34,660 , আমরা যে ফাংশন করতে যেতে যাচ্ছে, এবং আমরা, ঠিক আছে বলে যাচ্ছেন 1175 01:17:34,660 --> 01:17:37,060 এই ফাংশন আসলে অন্য কিছু করছে. 1176 01:17:37,060 --> 01:17:42,320 এটি মূলত ঠিক আছে, আমার আইডি দিয়ে উপাদান পেতে, বলছে "myid." 1177 01:17:42,320 --> 01:17:47,960 এবং তারপর এই যদি আপনি এটি ক্লিক করা হলে executes যে একটি ফাংশন হ্যান্ডলার দিতে. 1178 01:17:47,960 --> 01:17:49,820 মূলত এই কি আছে, এটা বলছেন, সব অধিকার. 1179 01:17:49,820 --> 01:17:52,630 , পাতা লোড হয়, তাই আমি, এই উপাদান খুঁজে পাওয়া যাচ্ছে না 1180 01:17:52,630 --> 01:17:56,420 এটি এই হ্যান্ডলার দিতে, এবং এটি মূলত আপনার জন্য আপনার পৃষ্ঠা পর্যন্ত নির্ধারণ করা হবে. 1181 01:17:56,420 --> 01:18:00,520 এবং এই যে আপনি ইভেন্ট হ্যান্ডলিং সম্পর্কে ভাবতে চান না. 1182 01:18:00,520 --> 01:18:06,310 আপনি ঠিক, আমার মনে হয় ঠিক আছে, কিছু পরিস্থিতিতে, আমি ঘটতে কি চান চান? 1183 01:18:06,310 --> 01:18:10,520 আপনি, ঠিক আছে, আমি এই জিনিস নিশ্চিত এই জিনিস আলোচনা করা প্রয়োজন, আমার মনে হয় না চান 1184 01:18:10,520 --> 01:18:14,660 এই জিনিস বাজে বাজে বাজে কথা, আপনি শুধু ঘটনা পদ জিনিস কথা বলতে চান না. 1185 01:18:14,660 --> 01:18:17,650 এই ঘটনার পরে, এই ঘটনার পরে. এই ঘটনার পরে, যে ঘটবে. 1186 01:18:17,650 --> 01:18:20,240 বিষয় অন্যান্য জিনিসের ট্রিগার এবং যদি, দারুণ. 1187 01:18:20,240 --> 01:18:22,150 তবে আপনি যদি জটিল কোড চেষ্টা করে যেতে চাই না 1188 01:18:22,150 --> 01:18:24,130 যেখানে আপনি একই সময়ে একাধিক জিনিষ triggering করছি 1189 01:18:24,130 --> 01:18:28,860 আপনি শুধু নিজের একটি মাথা ব্যাথা দিতে যাচ্ছেন কারণ. 1190 01:18:28,860 --> 01:18:32,340 >> ঠিক আছে. এখন আমরা আমাদের পাতা ঘটনা হ্যান্ডেল পেতে পারেন, 1191 01:18:32,340 --> 01:18:35,640 কিন্তু এর আমার ইউজার একটি বাটন ক্লিক করে বলা যাক. 1192 01:18:35,640 --> 01:18:38,040 কি, আমি ফিরে সার্ভারে যে অনুরোধ পাঠাতে চান 1193 01:18:38,040 --> 01:18:41,100 একটি নতুন পৃষ্ঠা পুনরায় লোড হচ্ছে কারণ কিন্তু আমি পৃষ্ঠাটি পুনরায় লোড করতে চাই না 1194 01:18:41,100 --> 01:18:44,390 প্রতি একক সময় ধরনের ক্লান্তিকর পায়, এবং আমি কেন প্রয়োজন 1195 01:18:44,390 --> 01:18:47,430 আবার হেডারের নিচে টানা, এবং আবার পাদচরণ করতে, 1196 01:18:47,430 --> 01:18:49,670 এবং সমস্ত পৃষ্ঠার উপাদান আবার 1197 01:18:49,670 --> 01:18:53,180 শুধু অভিবাদন বা সময় রিফ্রেশ? 1198 01:18:53,180 --> 01:18:55,290 আমরা Ajax মত কিছু আছে সুতরাং যে কেন. 1199 01:18:55,290 --> 01:18:59,150 আমরা কি Ajax সঙ্গে এখানে করতে পারেন, আমরা, ঠিক আছে বলতে পারেন হয় 1200 01:18:59,150 --> 01:19:01,290 আমি সার্ভারে কিছু তথ্য পাঠাতে চান, 1201 01:19:01,290 --> 01:19:04,010 এবং আমি তাই আমি আমার পাতা আপডেট করতে পারেন একটি প্রতিক্রিয়া পেতে চান, 1202 01:19:04,010 --> 01:19:12,120 হয়তো বা শুধু অগত্যা ব্যবহারকারীকে কিছু দেখাতে না কিছু আলগোরিদিমিক গণনা করবেন. 1203 01:19:12,120 --> 01:19:15,500 কি আপনি এই কাজ করতে প্রয়োজন? হ্যাঁ, আপনি যে আপনি কথা বলার প্রয়োজন একটি URL প্রয়োজন. 1204 01:19:15,500 --> 01:19:18,650 আপনার সার্ভার ঠিক magically কোথাও না থেকে রেডিও শোনা যাবে না. 1205 01:19:18,650 --> 01:19:21,960 আপনি আপনার জন্য এই তথ্য প্রেরণ করছেন একটি নির্দিষ্ট স্থানে করতে হবে. 1206 01:19:21,960 --> 01:19:26,240 আর আপনার কাছে পাঠানোর জন্য কিছু তথ্য প্রয়োজন, অথবা হয়ত এটা একটা dataless প্রশ্নের সাথে. 1207 01:19:26,240 --> 01:19:31,380 আপনি ঠিক হেই, আমি জীবিত, বা যে ভালো কিছু নই, ফিরে সার্ভার ping এবং বলতে চাই. 1208 01:19:31,380 --> 01:19:35,150 এবং তারপর আপনি মূলত সাফল্যের সাথে পরিচালনা করা একটি ফাংশন যে চাই. 1209 01:19:35,150 --> 01:19:38,250 এর আপনি আপনার সার্ভার থেকে কিছু তথ্য ফিরে পেতে শুরু করা যাক বলতে, 1210 01:19:38,250 --> 01:19:42,960 এবং আপনি তাদের পেজে ব্যবহারকারীর শিরোনাম পরিবর্তন করতে চান. 1211 01:19:42,960 --> 01:19:44,930 সুতরাং আপনি তথ্য ফিরে পেতে চাই, 1212 01:19:44,930 --> 01:19:48,860 এবং আপনি পর্দায় যে ধাক্কা হবে. 1213 01:19:48,860 --> 01:19:51,170 পাতা প্রস্তুত হলে কি হবে,, হয় 1214 01:19:51,170 --> 01:19:56,500 আপনি greeter নামক এই বোতাম জন্য ক্লিক ফাংশন উপর তৈরি. 1215 01:19:56,500 --> 01:19:58,810 যে বাটন push করা হয় যখন কি এই তারপর না হয়, 1216 01:19:58,810 --> 01:20:03,700 আপনি greetings.php কথা বলতে, আপনি একটি পোষ্ট অনুরোধ করা 1217 01:20:03,700 --> 01:20:07,290 এবং আপনি আরে, আমার আপনার পাতা থেকে কিছু পেতে, বলে. 1218 01:20:07,290 --> 01:20:09,890 আমরা সত্যিই, যে বর্ণনা করতে প্রয়োজন, কিন্তু greetings.php না 1219 01:20:09,890 --> 01:20:12,480 এর ঠিক বলা যাক, "ওহে দুনিয়া." পেছন দেয় 1220 01:20:12,480 --> 01:20:15,650 সুতরাং আমরা, "ওহে দুনিয়া" এই ফিরে পেতে এবং এই সাফল্যের উপর 1221 01:20:15,650 --> 01:20:20,730 কিছুই গোলমাল অভিমানী, তাহলে আমরা এই লক্ষ্য জায়গা যান 1222 01:20:20,730 --> 01:20:25,720 আমরা নির্দিষ্ট এবং আমরা ঠিক আছে প্রতিক্রিয়া বিদ্ধ করে. 1223 01:20:25,720 --> 01:20:31,560 এবং এই একটি Ajax প্রশ্নের সাথে স্থাপনের একটি খুব সহজ উপায়. 1224 01:20:31,560 --> 01:20:34,340 >> অত্যন্ত দ্রুত, রব সাজানোর, ইতিমধ্যে এই উল্লেখ করেছে 1225 01:20:34,340 --> 01:20:37,170 জিনিস ভুল হয়ে যেতে পারে, খারাপ ব্যাপার ঘটতে পারে, 1226 01:20:37,170 --> 01:20:42,660 তাই আপনার এই HTTP প্রতিক্রিয়া কোড সঙ্গে নিজেকে পরিচিত করতে চান. 1227 01:20:42,660 --> 01:20:46,030 কি এই হয় সবকিছু ঠিক গিয়েছিলাম, 200, মত, ঠিক আছে. 1228 01:20:46,030 --> 01:20:48,670 অন্য কিছু, খারাপ জিনিস ঘটেছে. 1229 01:20:48,670 --> 01:20:50,790 সাধারণভাবে আপনার মনে রাখতে চান জিনিস. 1230 01:20:50,790 --> 01:20:53,440 কিন্তু এই সব জানতে চমৎকার. 1231 01:20:53,440 --> 01:20:55,970 এবং পরিশেষে, একবার আমরা যে সব মাধ্যমে সর্বস্বান্ত করেছি, 1232 01:20:55,970 --> 01:20:58,680 আমরা ডিজাইন সম্পর্কে খুব দ্রুত কথা বলার প্রয়োজন 1233 01:20:58,680 --> 01:21:00,620 এবং তারপর আমরা আপনাকে সব ছেড়ে দেওয়া যাবে. 1234 01:21:00,620 --> 01:21:03,410 ডিজাইন. আপনার মনে রাখতে চান থিংস. 1235 01:21:03,410 --> 01:21:06,950 নিজেকে এই প্রশ্ন জিজ্ঞাসা করুন: কে এই ব্যবহার করা হবে? 1236 01:21:06,950 --> 01:21:09,580 তারা কি জন্য এটি ব্যবহার করা হবে? আমার ব্যবহারকারীদের কি সম্পর্কে যত্ন? 1237 01:21:09,580 --> 01:21:11,750 তারা কি যত্ন সম্পর্কে না? 1238 01:21:11,750 --> 01:21:14,500 আপনাকে কেবল একটি অ্যাপ্লিকেশন করতে এবং এটা হত্তয়া যাক না চান 1239 01:21:14,500 --> 01:21:18,270 এবং এই দৈত্য, এমনকি আপনি শেষ করতে পারেন না যে সব অপগিত জিনিস হয়ে. 1240 01:21:18,270 --> 01:21:23,900 আপনি ঠিকানা চাই বিযুক্ত লক্ষ্য এবং পরিকল্পনা এবং জিনিষ করাতে চাই. 1241 01:21:23,900 --> 01:21:29,000 এটি অনায়াস করুন. এই সব, মূলত, বলছেন 1242 01:21:29,000 --> 01:21:34,950 এটা সহজ ব্যবহারকারী এটি ব্যবহার করার জন্য করা; আসলে, এটা এই স্লাইড ভালো লেখার একটা দৈত্য ফোঁটা হয় না. 1243 01:21:34,950 --> 01:21:38,020 আপনি শুধু এটা কেউ যেতে জন্য এটি খুব সহজ যেখানে কিছু হতে চাই 1244 01:21:38,020 --> 01:21:40,800 এবং তারা কি করতে চান না. 1245 01:21:40,800 --> 01:21:42,920 আপনি তাদের 5 পৃষ্ঠা নেভিগেট আছে না চান 1246 01:21:42,920 --> 01:21:45,460 আপনার সাইটের আপনার মৌলিক ফাংশন পেতে. 1247 01:21:45,460 --> 01:21:49,290 গুগল আগে 5 পৃষ্ঠাগুলি ছিল এমনকি আপনি কিছু অনুসন্ধান করতে পারে, 1248 01:21:49,290 --> 01:21:53,080 কেউ এটা ব্যবহার করেন. 1249 01:21:53,080 --> 01:21:55,890 এবং সর্বশেষে, কাগজ প্রোটোটাইপ, ফোকাস গ্রুপ. 1250 01:21:55,890 --> 01:21:59,220 ভাল নকশা এবং টেস্টিং অনুশীলন আছে. 1251 01:21:59,220 --> 01:22:00,730 যদি আপনি এটি আপনার জন্য কাজ করে মনে শুধু কারণ, 1252 01:22:00,730 --> 01:22:04,860 অন্য কেউ এটি কাজ মনে করে না মানে. 1253 01:22:04,860 --> 01:22:14,490 তবে হাঁ, যে এটি. 1254 01:22:14,490 --> 01:22:17,490 [CS50.TV]