1 00:00:00,000 --> 00:00:01,940 [Powered by Google Translate] [Walkthrough - সমস্যা সেট 2] 2 00:00:01,940 --> 00:00:04,130 [Zamyla Chan - হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:05,170 --> 00:00:07,490 [এটি CS50. CS50.TV] 4 00:00:07,490 --> 00:00:10,750 ঠিক আছে. হ্যালো, প্রত্যেককে, Walkthrough 2 যাও এবং স্বাগত জানাই. 5 00:00:10,750 --> 00:00:14,330 প্রথমত, আমি pset 1 ধ্বংস করার জন্য আপনাকে অভিনন্দন জানাচ্ছি চান. 6 00:00:14,330 --> 00:00:18,140 আমি জানি যে আপনি কিছু জন্য আরেকটু শক্ত হয়ে থাকতে পারে, 7 00:00:18,140 --> 00:00:20,460 হয়েছে আপনার প্রথম কম্পিউটার প্রোগ্রাম যা আপনি লিখেছেন থাকতে পারে, 8 00:00:20,460 --> 00:00:24,500 কিন্তু শুধু এই শেষে যে, মনে রাখবেন যখন আপনি সেমেস্ত্র শেষে পিছনে তাকান, 9 00:00:24,500 --> 00:00:29,820 আপনি pset 1 এ এবং আপনাকে বলবে "আরে, আমি কাজ করতে পারে যা 5 মিনিট." করব সন্ধান করব 10 00:00:29,820 --> 00:00:35,700 তাই এবং জানি যে এই শেষে আপনি স্পষ্টভাবে pset 1 বেশ সহজ পাবেন বিশ্বাস. 11 00:00:35,700 --> 00:00:40,640 কিন্তু এটি এখন জন্য একটা বিশাল সংসাধন, এবং কাজ শুরু করার জন্য অভিনন্দন. 12 00:00:40,640 --> 00:00:44,010 এখন এছাড়াও, একটি দ্রুত নোট আগে আমরা walkthrough মাংস ভাগ পেতে. 13 00:00:44,010 --> 00:00:48,340 আমি একটি দ্রুত নোট করতে চাই যে কখনও কখনও আমি যথেষ্ট সময় থাকবে না 14 00:00:48,340 --> 00:00:52,500 এগিয়ে যান সময় প্রত্যেক সমস্যা সেট করার উপায় একক মাধ্যমে যেতে 15 00:00:52,500 --> 00:00:56,140 এবং শুধু বাস্তবায়নের পরিবর্তে 1 বা 2 ধরনের উপর হয়তো ফোকাস, 16 00:00:56,140 --> 00:00:57,750 উপায় যে আপনি এই কাজ করতে পারে. 17 00:00:57,750 --> 00:01:01,970 কিন্তু যে যে আপনি সেটা অন্য কোনো উপায় থেকে নিষিদ্ধ করা হয় বলে মনে হয় না. 18 00:01:01,970 --> 00:01:05,980 প্রায়ই পর্যন্ত সঙ্গে কম্পিউটার বিজ্ঞান হিসাবে,, জিনিসগুলি এর অনেক উপায় আছে, 19 00:01:05,980 --> 00:01:12,190 এবং স্পষ্টভাবে তা সমাধানের বিভিন্ন টাইপ তুলনায় আমি উপস্থিত থাকতে পারে ব্যবহার করতে দ্বিধা বোধ করবেন না. 20 00:01:12,190 --> 00:01:14,520 [2 pset: ক্রিপ্টো - Zamyla Chan - zamyla@cs50.net] 21 00:01:14,520 --> 00:01:17,160 [Pset2 - 0. প্রশ্ন একটি অনুচ্ছেদ - 1. সিজার - 2. Vigenere] 22 00:01:17,160 --> 00:01:20,650 ঠিক আছে. সুতরাং সমস্যা 2 সেট: ক্রিপ্টো একটি মজাদার এক. 23 00:01:20,650 --> 00:01:24,500 প্রতি pset সঙ্গে আবার, আপনি প্রশ্নগুলির একটি অধ্যায় সাথে শুরু করব 24 00:01:24,500 --> 00:01:29,600 যে আপনার বিভাগে আপনার নির্ধারিত শিক্ষণ সহকর্মী পরিচালিত করা হচ্ছে. 25 00:01:29,600 --> 00:01:31,670 আমরা এইসব মাধ্যমে walkthrough উপর যেতে যাচ্ছে না, 26 00:01:31,670 --> 00:01:35,100 কিন্তু তারা স্পষ্টভাবে আপনি pset সম্পূর্ণ করতে সাহায্য করবে. 27 00:01:35,100 --> 00:01:38,100 সুতরাং সমস্যা সেটের প্রথম ভাগে সিজার. 28 00:01:38,100 --> 00:01:43,470 সিজার তাই কেউ একটি পূর্ণসংখ্যা সঙ্গে কি আপনি পাস হবে, 29 00:01:43,470 --> 00:01:48,420 এবং আপনার লেখার একটা স্ট্রিং যে তারা আপনাকে প্রদান হওয়া তথ্য এনক্রিপ্ট করা 30 00:01:48,420 --> 00:01:50,670 এবং তাদেরকে ফেরত আনতে আপনাকে একটি এনক্রিপ্ট জিনিস. 31 00:01:50,670 --> 00:01:56,050 যদি কেউ একটি ক্রিসমাস গল্প দেখেছেন, যে সেখানে একটি উদাহরণ আছে. 32 00:01:56,050 --> 00:01:59,090 তারপর সমস্যা সেট দ্বিতীয় ভাগে Vigenere, 33 00:01:59,090 --> 00:02:01,790 যা আরো উন্নত এনক্রিপশন টেকনিক. 34 00:02:01,790 --> 00:02:05,640 এবং আমরা টেক্সট এক টুকরা সঙ্কেতাক্ষরে লিখা চলুন, 35 00:02:05,640 --> 00:02:09,600 পরিবর্তে শুধুমাত্র একটি পূর্ণসংখ্যা ছাড়া, আসলে আমরা একে সঙ্কেতাক্ষরে লিখা করছি যাচ্ছে 36 00:02:09,600 --> 00:02:13,340 সঙ্গে একটি অভিব্যক্তি যে ব্যবহারকারী আমাদের দেওয়া হবে. 37 00:02:16,270 --> 00:02:22,090 ঠিক আছে, তাই টুলবাক্স আজকের প্রথম হাতিয়ার আসলে যাওয়া হয় প্রয়োগ আপডেট করা হবে. 38 00:02:22,090 --> 00:02:26,430 আলোচনা বোর্ডে আমরা জিনিস মত দেখতে, "কেন কাজ করে না?" হবে 39 00:02:26,430 --> 00:02:28,110 "কেন? জমা আছে 50 কাজ করে না" 40 00:02:28,110 --> 00:02:31,830 এবং প্রায়ই সমাধান আসলে শুধুমাত্র আপনার প্রয়োগ আপডেট. 41 00:02:31,830 --> 00:02:36,730 এবং তাই আপনি যদি শুধুমাত্র একটি যন্ত্র আপনার উবুন্টু জন্য yum-y মধ্যে টার্মিনাল উইন্ডোতে চালাতে - 42 00:02:36,730 --> 00:02:40,040 যে একটি পতাকা বলছে হ্যাঁ, সবকিছু আপডেট - আপডেট, 43 00:02:40,040 --> 00:02:42,280 তারপর আপনার যন্ত্র যদি প্রয়োজন হতে আপডেট করতে হবে. 44 00:02:42,280 --> 00:02:46,960 এবং এটি যদি আপনি ইতিমধ্যে প্রয়োগ সাম্প্রতিকতম সংস্করণ আছে আঘাত না. 45 00:02:46,960 --> 00:02:51,280 তারপর এটা বলতে কোন নতুন আপডেট উপলব্ধ হবে এবং আপনি কাজ বরাবর অবিরত করতে হবে. 46 00:02:51,280 --> 00:02:55,800 কিন্তু এটা প্রতিটি সময় যে আপনি প্রয়োগ খুলুন এমনকি চালানো ভাল 47 00:02:55,800 --> 00:02:57,140 কারণ আমরা এখনও খুব - 48 00:02:57,140 --> 00:03:00,320 সরঞ্জামের মধ্যে এটি নির্ধারণ - কখনও যদি আমরা একটি বাগ সংশোধন করা হয়ে উঠা. 49 00:03:00,320 --> 00:03:03,180 তাই নিশ্চিত করুন যে আপনি প্রয়োগ সাম্প্রতিকতম সংস্করণ আছে 50 00:03:03,180 --> 00:03:07,710 এবং চালানোর যে সেখানে আপডেট. 51 00:03:07,710 --> 00:03:14,360 ঠিক আছে. সুতরাং যেহেতু আমরা চিঠি দিয়ে এবং আচরণ পরিবর্তন, করছি জিনিষ enciphering, 52 00:03:14,360 --> 00:03:20,410 আমরা সত্যিই আমাদের ASCII লেখচিত্রের সঙ্গে ভাল বন্ধু হওয়ার চান চলুন. 53 00:03:20,410 --> 00:03:24,350 অনলাইন আছে অনেক বেশী, আপনি যদি পান. হয়তো আপনার নিজের এমনকি. 54 00:03:24,350 --> 00:03:29,950 মূলত, প্রতি অক্ষর এবং সংখ্যা প্রতি এবং প্রত্যেক অক্ষর 55 00:03:29,950 --> 00:03:32,210 একটি নম্বর এর সাথে জড়িত আছে, 56 00:03:32,210 --> 00:03:38,670 এবং তাই এর প্রকৃত চিঠি পাশাপাশি তাদের ASCII মান দেখতে ভাল. 57 00:03:38,670 --> 00:03:42,310 যে স্পষ্টভাবে সমস্যা সেটে আপনাকে সাহায্য করবে. 58 00:03:42,310 --> 00:03:45,750 একটা জিনিষ যে সত্যিই এই সমস্যা সেটে সম্পর্কে সাহায্য প্রকৃতপক্ষে এটি মুদ্রণ ছিল, 59 00:03:45,750 --> 00:03:48,380 এবং হিসাবে আমি মাধ্যমে চালু ছিল, আসলে আমি আঁকা হবে, 60 00:03:48,380 --> 00:03:51,150 , লিখুন "যদি এই সেখানে যেতে থাকে তাহলে, ..." 61 00:03:51,150 --> 00:03:55,270 এটা কোন ধরনের এবং আঁকা এটি বাড়ান, আপনার ASCII টেবিলের সাথে ভাল বন্ধু হওয়ার. 62 00:03:57,240 --> 00:04:00,750 তারপর আমরা আমাদের নিষ্পত্তি কয়েক অন্যান্য সরঞ্জাম আছে. 63 00:04:00,750 --> 00:04:03,750 এই সময় পরিবর্তে প্রকৃতপক্ষে তাদের ইনপুট সব জন্য হলে ব্যবহারকারীকে 64 00:04:03,750 --> 00:04:05,230 আমরা একটি সমন্বয় করতে যাচ্ছেন. 65 00:04:05,230 --> 00:04:06,880 আমরা কিছু ইনপুট জন্য তাদের অনুরোধ জানানো চলুন, 66 00:04:06,880 --> 00:04:11,350 কিন্তু আমরা শুধু কমান্ড লাইন আর্গুমেন্ট ব্যবহার করছি না. 67 00:04:11,350 --> 00:04:15,600 সুতরাং যখন তারা তাদের প্রোগ্রাম চালানো সাধারণত, আপনি বলুন. / হ্যালো, উদাহরণস্বরূপ, 68 00:04:15,600 --> 00:04:17,310 যদি আপনার প্রোগ্রাম ছিল hello.c. 69 00:04:17,310 --> 00:04:22,500 কিন্তু এই সময় পরিবর্তে শুধুমাত্র বলছে যে, তারা শব্দ, আর্গুমেন্ট পরে লাগাতে পারেন. 70 00:04:22,500 --> 00:04:27,210 এবং আমরা ব্যবহার যাচ্ছে যাই হোক না কেন তারা আমাদের তাদের মধ্যে পাস ইনপুট হিসাবে হিসাবে ভাল করছেন, 71 00:04:27,210 --> 00:04:31,720 পূর্ণসংখ্যা জন্য শুধু প্ররোচনা বহুদূরে তাই চলন্ত কিন্তু কমান্ড লাইন আর্গুমেন্ট ব্যবহার করে. 72 00:04:31,720 --> 00:04:36,590 এবং তারপর আমরা অ্যারে এবং স্ট্রিং, যা আমরা অনেক ভাল হিসাবে ব্যবহার করা হবে ঢোকা করব. 73 00:04:41,460 --> 00:04:44,810 এখানে মাত্র 1 মিনি ASCII চার্ট একটি উদাহরণ. 74 00:04:44,810 --> 00:04:48,460 আমি যেমন বলেছি, প্রতি অক্ষর সংখ্যা একটি অনুরূপ, 75 00:04:48,460 --> 00:04:52,510 এবং যাতে সঙ্গে পরিচিত হন. এটা কাজে লেগে যাবে. 76 00:04:52,510 --> 00:04:55,610 এবং পরে যখন আমরা কিছু শুরু ASCIIMath সংখ্যার সঙ্গে আচরণ করছে - 77 00:04:55,610 --> 00:05:00,110 যোগ, তাদের subtracting - তারপর স্পষ্টভাবে এই চার্ট জন্য ভাল. 78 00:05:02,860 --> 00:05:06,920 তাই এখানে একটি সিজার সাইফার একটি উদাহরণ - কিছু যে আপনার সঙ্গে থাকতে পারেন খেলেছে. 79 00:05:06,920 --> 00:05:11,190 এটা শুধুমাত্র একটা চাকা. মূলত, একটি বাইরের বর্ণমালা আছে এবং তারপর একটি অভ্যন্তরীণ বর্ণমালা আছে. 80 00:05:11,190 --> 00:05:15,290 সুতরাং এখানে ডান হয় সিজার সাইফার, কিন্তু সঙ্গে 0 কী একটি উদাহরণ. 81 00:05:15,290 --> 00:05:21,540 মূলত, একটি একটি সঙ্গে সংযুক্ত করা হয়, বি বি সাথে সংযুক্ত করা হয়, সমস্ত আপ জেড উপায় 82 00:05:21,540 --> 00:05:26,590 কিন্তু তারপর আমরা বলতে চেয়েছিলেন উদাহরণস্বরূপ 3 কী,. 83 00:05:26,590 --> 00:05:33,280 তারপর আমরা ভেতরের চাকা ঘোরাতে যাতে একটি এখন ডি, ইত্যাদি দিয়ে সাজায় হবে 84 00:05:33,280 --> 00:05:35,250 তাই এই মূলত এটা কি আমরা করতে যাচ্ছেন. 85 00:05:35,250 --> 00:05:38,340 আমরা, আছে একটি চাকা না কিন্তু আমরা কি করতে যাচ্ছেন আমাদের প্রোগ্রাম হয়েছে 86 00:05:38,340 --> 00:05:44,490 যে ধরনের সঙ্গে আমাদের বরাবর একটি নির্দিষ্ট সংখ্যার পরিমাণ বর্ণমালা নামান. 87 00:05:44,490 --> 00:05:48,650 সুতরাং হিসাবে আমি আগে বলেন, আমরা কমান্ড লাইন আর্গুমেন্ট সাথে ডিল করা চলুন 88 00:05:48,650 --> 00:05:50,390 পাশাপাশি একটি পূর্ণসংখ্যা হিসাবে পেয়ে. 89 00:05:50,390 --> 00:05:55,050 তাই উপায় যে একজন ব্যবহারকারী আপনার সিজার প্রোগ্রাম চালানো হবে বলে মনে হয়. / রোমান সম্রাটদের পদবী 90 00:05:55,050 --> 00:05:58,090 এবং তারপর যা পরে একটি নম্বর লিখে. 91 00:05:58,090 --> 00:06:01,130 এবং যে কী নম্বর, স্থানান্তর প্রতিনিধিত্ব করে, 92 00:06:01,130 --> 00:06:06,740 কতবার আপনার সিজার সাইফার ভেতরের চাকা আবর্তিত করা চলুন. 93 00:06:06,740 --> 00:06:08,390 এবং যাতে আপনি দেখতে এখানে একটি উদাহরণ. 94 00:06:08,390 --> 00:06:14,550 যদি আমরা আমাদের সিজার সাইফার একটি যাও এল থেকে চিঠি প্রবেশ করানো, 95 00:06:14,550 --> 00:06:19,520 তাহলে হে মাধ্যমে ডি ইনপুট কারণ যে প্রতি চিঠি 3 বার উপর স্থানান্তরিত করা হবে, 96 00:06:19,520 --> 00:06:22,080 ঠিক মত চাকা যে আমি আপনাকে দেখিয়েছি উদাহরণ. 97 00:06:22,080 --> 00:06:25,300 উদাহরণস্বরূপ, তখন যদি আপনার লেখা,, এটি CS50! 98 00:06:25,300 --> 00:06:27,960 তারপর এটি অক্ষর সব সরাতে হবে. 99 00:06:27,960 --> 00:06:31,040 এবং যে একটি উভয় সিজার এবং Vigenere গুরুত্বপূর্ণ বিষয় 100 00:06:31,040 --> 00:06:34,890 যে কোনো অ অক্ষর থামিয়া উপর চলুন. 101 00:06:34,890 --> 00:06:39,160 সুতরাং কোনো শূণ্যস্থান, অক্ষর, ইত্যাদি, সংখ্যা, আমরা তাদের একই রাখা চলুন. 102 00:06:39,160 --> 00:06:42,920 আমরা শুধুমাত্র সেটি এই ক্ষেত্রে অক্ষর নামান যাচ্ছে. 103 00:06:42,920 --> 00:06:45,870 সুতরাং হিসাবে আপনি চাকা দেখতে পাচ্ছেন, আমরা কেবল অক্ষর উপলব্ধ আমাদের আছে, 104 00:06:45,870 --> 00:06:50,150 তাই আমরা শুধুমাত্র চিঠি এবং নামান অক্ষর এনক্রিপ্ট করতে চান. 105 00:06:51,370 --> 00:06:56,720 প্রথম জিনিস না, তাই আপনি দেখেছি যে সিজার জন্য সমস্যা ব্যবহার 2 সেট 106 00:06:56,720 --> 00:07:05,280 যাও সিজার এবং তারপর চালানোর একটি সংখ্যা লিখুন যখন আপনি টার্মিনালে এটি চালানো হয়. 107 00:07:05,280 --> 00:07:10,940 তাই আমরা যা করার মতলব যে কি এবং এটি অ্যাক্সেস পেতে হয়. 108 00:07:10,940 --> 00:07:14,730 এবং আমরা একরকম এটি দ্বিতীয় কমান্ড লাইন আর্গুমেন্ট হতে যাচ্ছে তা দেখতে চান. 109 00:07:14,730 --> 00:07:20,950 প্রথম এক যাও. / রোমান সম্রাটদের পদবী হবে, এবং পরবর্তী এক নম্বর কী হতে যাচ্ছে. 110 00:07:22,190 --> 00:07:29,200 তাই আগে আমরা int প্রধান (অকার্যকর) আমাদের সি প্রোগ্রাম আরম্ভ করে. 111 00:07:29,200 --> 00:07:31,790 আমরা ফিরে ছুলা একটি অল্প স্তর যাও চলুন 112 00:07:31,790 --> 00:07:34,720 এবং আসলে দেখে যে পরিবর্তে আমাদের প্রধান ফাংশন অকার্যকর কথা প্রসঙ্গে 113 00:07:34,720 --> 00:07:37,920 আমরা 2 পরামিতিসহ আসলে আচরণ করছেন. 114 00:07:37,920 --> 00:07:44,070 আমরা কোন int নামে argc আছে এবং তারপর স্ট্রিং একটি অ্যারে বলা argv. 115 00:07:44,070 --> 00:07:46,030 সুতরাং argc একটি পূর্ণসংখ্যা, 116 00:07:46,030 --> 00:07:49,640 এবং এটি আপনার প্রোগ্রামের পাস আর্গুমেন্টের সংখ্যা উপস্থাপন করে. 117 00:07:49,640 --> 00:07:53,590 এবং তারপর argv আসলে পাস আর্গুমেন্ট তালিকা. 118 00:07:53,590 --> 00:08:00,820 আর্গুমেন্ট হল সমস্ত স্ট্রিং, এবং তাই argv প্রতিনিধিত্ব করে একটি অ্যারের, স্ট্রিং একটি তালিকা. 119 00:08:01,830 --> 00:08:03,990 চলুন অ্যারে একটি সামান্য বিট সম্পর্কে কথা বলুন. 120 00:08:03,990 --> 00:08:05,940 অ্যারেগুলির হয় মূলত একটি নতুন ডাটা স্ট্রাকচার. 121 00:08:05,940 --> 00:08:09,660 আমরা ints আছে, আমরা দ্বিগুণ, আমরা স্ট্রিং আছে, এবং এখন আমরা অ্যারে আছে. 122 00:08:09,660 --> 00:08:13,820 অ্যারেগুলির হয় ডাটা স্ট্রাকচার একই ধরণের একাধিক মান ধরে রাখতে পারেন, 123 00:08:13,820 --> 00:08:18,320 তাই মূলত:, যাই হোক না কেন আপনি টাইপ করতে চান তা একটি তালিকা. 124 00:08:18,320 --> 00:08:24,400 মূলত, যদি আপনি সব 1 পরিবর্তনশীল মধ্যে পূর্ণসংখ্যার একটি তালিকা চেয়েছে, 125 00:08:24,400 --> 00:08:29,090 তারপর আপনি একটি নতুন পরিবর্তনশীল টাইপ int-অ্যারের যে ছিল তৈরি করবে. 126 00:08:29,090 --> 00:08:34,450 সুতরাং অ্যারে হয় শূন্য সূচিবদ্ধ, অর্থাত যে অ্যারের প্রথম উপাদান ইনডেক্স 0 এ. 127 00:08:34,450 --> 00:08:41,799 যদি অ্যারের মধ্যে এই উদাহরণ হিসাবে দৈর্ঘ্য 4, হয় তাহলে, আপনার সর্বশেষ উপাদান সূচক 3 হতে চাই, 128 00:08:41,799 --> 00:08:44,810 যা 4 - 1. 129 00:08:45,940 --> 00:08:48,420 সুতরাং অ্যারে নির্মাণ, আপনি ভালো কিছু করতে চাই. 130 00:08:48,420 --> 00:08:51,440 বলুন আপনি একটা ডাবল অ্যারে চেয়েছিলেন. 131 00:08:51,440 --> 00:08:56,520 এই ধরনের কোনো তথ্য টাইপ জন্য যায় যদিও,. 132 00:08:56,520 --> 00:09:00,210 তাই বলে আপনি একটা ডাবল অ্যারে চান. বলুন আপনি এটি ডাকবাক্স কল করতে চান. 133 00:09:00,210 --> 00:09:04,760 আপনি যেমন অন্য কোন ডবল আরম্ভ করবে, 134 00:09:04,760 --> 00:09:09,760 আপনার নাম ডবল এবং তারপর বলে, কিন্তু এই সময় আমরা বর্গাকার বন্ধনী করা হবে, 135 00:09:09,760 --> 00:09:13,570 এবং তারপর সংখ্যা হবে অ্যারের দ্বারা থাকবে. 136 00:09:13,570 --> 00:09:16,840 যে অ্যারে কখনো আমরা দ্বারা পরিবর্তন করতে পারবেন না উল্লেখ্য, 137 00:09:16,840 --> 00:09:21,230 তাই আপনি সর্বদাই এবং সংজ্ঞায়িত কতগুলি বাক্সে চয়ন আছে, 138 00:09:21,230 --> 00:09:25,440 কত মান আপনার অ্যারের রাখা যাচ্ছে না. 139 00:09:25,440 --> 00:09:31,820 সুতরাং আপনার অ্যারের মধ্যে বিভিন্ন মান নির্ধারণ করেন, তাহলে আপনি এই নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে যাচ্ছেন, 140 00:09:31,820 --> 00:09:33,200 হিসাবে আপনি স্লাইডে দেখুন. 141 00:09:33,200 --> 00:09:37,620 আপনি আছে ডাকবাক্স 0 সূচক 1.2 যাও সেট হবে, 142 00:09:37,620 --> 00:09:42,180 ডাকবাক্স 2.4 সূচক 1 সেট, ইত্যাদি 143 00:09:42,180 --> 00:09:47,910 তাই এখন যে আমরা একটি বিট অ্যারে পর্যালোচনা করেছি, যাক এর argc এবং argv ফিরে যান. 144 00:09:47,910 --> 00:09:52,220 আমরা জানি যে argv এখন হয় স্ট্রিং একটি অ্যারে. 145 00:09:52,220 --> 00:09:55,080 সুতরাং যখন একটি ব্যবহারকারী পাস - বলে একটা প্রোগ্রাম চালনা করছেন - 146 00:09:55,080 --> 00:09:58,740 তারা বলে. / হ্যালো ডেভিড Malan, 147 00:09:58,740 --> 00:10:05,160 ইতিমধ্যে জন্য আপনি আসলে কি argc এবং argv সাথে থাকেন না আসা পর্যন্ত কি প্রোগ্রাম করবেন. 148 00:10:05,160 --> 00:10:07,620 সুতরাং আপনি যে সম্পর্কে চিন্তা করার প্রয়োজন হবে না. 149 00:10:07,620 --> 00:10:14,370 এই ক্ষেত্রে Argc 3 কারণ এটি 3 স্বতন্ত্র শূণ্যস্থান দ্বারা পৃথক শব্দ সম্পর্কে সূচিত করা হবে. 150 00:10:14,370 --> 00:10:18,850 এবং তারপর, তাই এই ইনস্ট্যান্স অ্যারের, প্রথম সূচক. / হ্যালো হতে চাই, 151 00:10:18,850 --> 00:10:21,770 পরের এক ডেভিড, পরের এক Malan. 152 00:10:21,770 --> 00:10:25,640 কেউ কি সরাসরি দেখুন কি argv মধ্যে সম্পর্ক, 153 00:10:25,640 --> 00:10:28,990  অ্যারে, এবং argc হয়? 154 00:10:32,820 --> 00:10:38,090 হাঁ. আমরা যে ভাগ args.c. মধ্যে একটি উদাহরণ পাবেন 155 00:10:38,090 --> 00:10:42,880 চলুন আমরা যদি 2 মধ্যে সম্পর্ক সুবিধা গ্রহণ করতে পারেন. 156 00:10:42,880 --> 00:10:46,550 এখানে আপনি প্রয়োগ যে পারে ডিফল্ট অ্যাপ্লিকেশন 157 00:10:46,550 --> 00:10:49,450 যাও. গ ফাইল খুলুন মাঝে মাঝে Emacs. 158 00:10:49,450 --> 00:10:54,660 কিন্তু আমরা gedit মোকাবেলা করতে চান, কি আপনি করতে পারেন আপনার অধিকার আপনার সি ফাইলের নামের উপর ক্লিক করতে পারেন, 159 00:10:54,660 --> 00:11:04,580 প্রোপার্টি যান, এর মাধ্যমে খুলুন, এবং তারপর gedit, ডিফল্ট হিসাবে সেট করুন চয়ন, 160 00:11:04,580 --> 00:11:13,020 এবং এখন আপনি gedit প্রোগ্রাম পরিবর্তে Emacs খোলা উচিত. 161 00:11:14,710 --> 00:11:16,290 পারফেক্ট. 162 00:11:17,120 --> 00:11:25,520 তাই এখানে আমি একটি প্রোগ্রাম যা আমি প্রতিটি কমান্ড লাইন আর্গুমেন্ট প্রিন্ট আউট করতে চান আছে. 163 00:11:25,520 --> 00:11:32,050 তাই যাই হোক না কেন ব্যবহারকারী ইনপুট, আমি মূলত এটি ফেরত তাদের একটি নতুন লাইন ফেরত চাইবেন. 164 00:11:32,050 --> 00:11:36,710 তাই এর একটি কাঠামোর যে আমরা কিছু পুনরুক্তি উপর ব্যবহার করতে পারেন - 165 00:11:36,710 --> 00:11:40,380 কিছু যে আপনি সম্ভবত আপনার pset 1 ব্যবহৃত? 166 00:11:40,380 --> 00:11:45,840 আপনি যদি একটি জিনিষ সেট নম্বর দিয়ে যেতে চান? >> লুপ জন্য [ছাত্রদের]. 167 00:11:45,840 --> 00:11:48,910 জন্য লুপ. ঠিক. সুতরাং যাক লুপ এর সাথে এর শুরু. 168 00:11:48,910 --> 00:11:56,900 আমরা int i = 0 জন্য আছে. চলুন শুরু করা যাক শুধু একটি প্রারম্ভিক মান পরিবর্তনশীল এর সাথে শুরু হয়. 169 00:11:56,900 --> 00:12:02,370 আমি একটা সেট জন্য শর্ত এবং তারপর ছেড়ে তোমার + + ', সেখানে কিছু করার যাচ্ছে বলে যাচ্ছি. 170 00:12:02,370 --> 00:12:04,090 ঠিক আছে. 171 00:12:04,090 --> 00:12:11,590 সুতরাং argv চিন্তা ফিরে যাও, যদি argv হয় প্রোগ্রাম আর্গুমেন্ট প্রেরণ মধ্যে তালিকা 172 00:12:11,590 --> 00:12:15,380 এবং argc হয় আর্গুমেন্ট প্রোগ্রামে নম্বর, 173 00:12:15,380 --> 00:12:21,280 তারপর তার মানে argc মূলত argv দৈর্ঘ্য, ডান, 174 00:12:21,280 --> 00:12:28,970 কারণ যাচ্ছে argc মান হিসাবে অনেক আর্গুমেন্ট হিসাবে করা আছে. 175 00:12:28,970 --> 00:12:35,910 তাই আপনি যদি আমরা argv মধ্যে বারবার প্রতিটি উপাদান বেশী চান, 176 00:12:35,910 --> 00:12:43,290 আমরা প্রতিটি সময় argv দেওয়া সূচিতে পরিবর্তনশীল অ্যাক্সেস চান চলুন. 177 00:12:43,290 --> 00:12:49,060 যে এই সঙ্গে, প্রতিনিধিত্ব অধিকার করা যাবে? 178 00:12:49,060 --> 00:12:53,430 এখানে পরিবর্তনশীল এই ইনস্ট্যান্সের মধ্যে নির্দিষ্ট স্ট্রিং উপস্থাপন 179 00:12:53,430 --> 00:12:57,030 কারণ এটি একটি স্ট্রিং অ্যারে - যে প্রদত্ত সূচিতে বিশেষ পংক্তি. 180 00:12:57,030 --> 00:13:00,690 এই ক্ষেত্রে আমরা কি করে যেতে চাই, আমরা এটা মুদ্রণ করতে চান, তাই আসুন printf বলে. 181 00:13:00,690 --> 00:13:04,680 এবং এখন argv একটি স্ট্রিং, তাই আমরা সেখানে যে প্লেসহোল্ডার লাগাতে চান. 182 00:13:04,680 --> 00:13:08,430 আমরা এটা ভাল চেহারা করতে নতুন লাইন চান. 183 00:13:08,430 --> 00:13:12,530 তাই আমরা এখানে একটি জন্য লুপ আছে. আমরা এখনও পর্যন্ত কোনো শর্ত নয়. 184 00:13:12,530 --> 00:13:20,020 তাই তোমার 0 আরম্ভ, এবং তারপর প্রত্যেক সময় এটা প্রদত্ত স্ট্রিং মুদ্রণ যাচ্ছে 185 00:13:20,020 --> 00:13:22,980 এ যে অ্যারের মধ্যে নির্দিষ্ট সূচক. 186 00:13:22,980 --> 00:13:28,410 সুতরাং যখন আমরা যাও মুদ্রণ অ্যারের মধ্যে উপাদানগুলো থামাতে চান? 187 00:13:28,410 --> 00:13:35,720 যখন আমরা সমাপ্ত করেছি, ডান? যখন আমরা অ্যারের শেষ পৌঁছেছেন. 188 00:13:35,720 --> 00:13:38,870 সুতরাং আমরা অ্যারের দ্বারা অতীত অতিক্রম করতে না চান, 189 00:13:38,870 --> 00:13:43,700 এবং ইতিমধ্যে আমরা জানি যে আমরা সক্রিয়ভাবে আসলে কি জানতে argv দৈর্ঘ্য করার প্রয়োজন হবে না 190 00:13:43,700 --> 00:13:47,520 কারণ এটা আমাদের জন্য, দেওয়া এবং কি যে এর? Argc. ঠিক. 191 00:13:47,520 --> 00:13:56,640 তাই আমরা এই বার প্রক্রিয়া argc নম্বর কাজ করতে চান. 192 00:13:56,640 --> 00:13:59,550 আমি ডান ডিরেক্টরির মধ্যে নই. 193 00:14:02,100 --> 00:14:03,490 ঠিক আছে. 194 00:14:03,490 --> 00:14:08,990 এখন আসুন ARGS করা. কোন ত্রুটি, যা মহান. 195 00:14:08,990 --> 00:14:11,430 তাই আসুন শুধু ARGS চালানো. 196 00:14:11,430 --> 00:14:15,130 না কি এই আমাদের ফিরে যাচ্ছে? এটা ঠিক এর এটি ফিরিয়ে মুদ্রণ যাচ্ছে. 197 00:14:15,130 --> 00:14:18,320 "আপনি এই প্রোগ্রামের ইনপুট ARGS; আমি তা দিতে আপনি ফিরে যাচ্ছি." 198 00:14:18,320 --> 00:14:23,170 সুতরাং আসুন আমরা বলে যাও তারপর ARGS বলতে foo বিন্যাস বার করতে চান. 199 00:14:23,170 --> 00:14:26,570 আমি তখন এটা সেটা ছাপে আমাদের পিছান. ঠিক আছে? 200 00:14:26,570 --> 00:14:30,790 সুতরাং কিভাবে আপনি argc এবং argv ব্যবহার করতে পারেন একটি উদাহরণ আছে 201 00:14:30,790 --> 00:14:33,460 যে argc বুদ্ধিমান argv দৈর্ঘ্যের প্রতিনিধিত্ব করে. 202 00:14:33,460 --> 00:14:42,750 নিশ্চিত করুন যে আপনি কি একটি অ্যারে এক্সেস কখনও অ্যারের দৈর্ঘ্য অতিক্রম না 203 00:14:42,750 --> 00:14:45,140 কারণ স্পষ্টভাবে সি আপনি এ চিত্কার করা. 204 00:14:45,140 --> 00:14:47,560 আপনি কিছু নামক একটি সেগমেন্টেশন ফল্ট পাবেন, 205 00:14:47,560 --> 00:14:52,470 যা হয়, মূলত বলছে আপনি কি কিছু করার চেষ্টা করছেন মজা না 206 00:14:52,470 --> 00:14:55,000 যা বিদ্যমান নেই, আপনি পড়েন না. 207 00:14:55,000 --> 00:14:59,430 তাই নিশ্চিত করতে, এবং বিশেষ করে শূন্য ইন্ডেক্স সঙ্গে, আমরা না করতে চান - 208 00:14:59,430 --> 00:15:02,390 উদাহরণস্বরূপ যাচ্ছে, যদি আমরা দৈর্ঘ্য 4 শ্রেণীবিন্যাস আছে, 209 00:15:02,390 --> 00:15:07,240 যে অ্যারের সূচক 4 কারণ আমরা 0 থেকে আরম্ভ হয় শূন্য সূচিতে, বিদ্যমান নেই. 210 00:15:07,240 --> 00:15:11,730 এটা জন্য loops ভালো হয়ে দ্বিতীয় প্রকৃতি যখন আমরা 0 এ শুরু হবে. 211 00:15:11,730 --> 00:15:13,610 সে যে কথা মনে রাখবেন. 212 00:15:13,610 --> 00:15:22,590 আপনি কখনও একটি অ্যারের আপনার নাগালের বাইরে এর সূচী অ্যাক্সেস করতে না চান. 213 00:15:26,710 --> 00:15:32,560 তাই এখন আমরা কিভাবে আমরা ধরনের এক্সেস করতে পারেন দেখতে পাবেন 214 00:15:32,560 --> 00:15:35,930 কমান্ড লাইন আর্গুমেন্ট গৃহীত হয় যে ইন 215 00:15:35,930 --> 00:15:41,330 কিন্তু হিসাবে আপনি স্ট্রিং দেখেছি, argv আসলে একটি স্ট্রিং অ্যারে. 216 00:15:41,330 --> 00:15:45,740 সুতরাং এটি প্রকৃত এখনো, একটি পূর্ণসংখ্যা পূর্ণসংখ্যার না কিন্তু আমরা মোকাবেলা সিজার চাই. 217 00:15:45,740 --> 00:15:54,430 সৌভাগ্য যে, একটি ফাংশন আমাদের জন্য তৈরি যে আসলে একটি পূর্ণসংখ্যা স্ট্রিং এর রূপান্তর করতে হয়. 218 00:15:54,430 --> 00:15:58,710 এছাড়াও এখানে আমরা ব্যবহারকারীর ইনপুট সঙ্গে যেখানে আমরা তাদের অনুরোধ করছেন কারবারী না 219 00:15:58,710 --> 00:16:03,740 কী জন্য এখানে ইনপুট জন্য, তাই আমরা আসলে এবং reprompt না বলতে পারে, 220 00:16:03,740 --> 00:16:07,840 "ওহ, আমাকে আরেকটা পূর্ণসংখ্যা দিতে, বলে, যদি এটি কোন বৈধ নয়." 221 00:16:07,840 --> 00:16:10,540 কিন্তু আমরা এখনও সঠিক ব্যবহারের জন্য পরীক্ষা করার প্রয়োজন নেই. 222 00:16:10,540 --> 00:16:13,520 সিজার ইন তারা শুধুমাত্র 1 নম্বর মধ্যে পাস করতে অনুমোদিত, 223 00:16:13,520 --> 00:16:18,030 এবং তাই তারা. / রোমান সম্রাটদের পদবী চালানোর পরে আছে এবং তারা আপনাকে একটি নম্বর দিতে. 224 00:16:18,030 --> 00:16:23,660 সুতরাং argc একটি নির্দিষ্ট নম্বর হতে হয়েছে. 225 00:16:23,660 --> 00:16:29,060 কি নম্বর যে যদি তারা আপনাকে. / রোমান সম্রাটদের পদবী এবং তারপর একটি পাস কী হবে? 226 00:16:29,060 --> 00:16:32,920 Argc কি? >> [ছাত্রদের] 2. >> দুই. ঠিক. 227 00:16:32,920 --> 00:16:35,490 সুতরাং আপনি নিশ্চিত যে argc 2 করতে চাই. 228 00:16:35,490 --> 00:16:39,620 অন্যথায় আপনি মূলত যাও প্রোগ্রাম চালানো প্রত্যাখ্যান করা. 229 00:16:39,620 --> 00:16:43,040 এটি প্রধান ইন এর একটি ফাংশন যে int প্রধান, 230 00:16:43,040 --> 00:16:47,360 অতএব ভাল একটি সফল প্রোগ্রাম শেষে অনুশীলন রিটার্ন 0 সর্বদা আমরা. 231 00:16:47,360 --> 00:16:50,840 তাই যদি, বলে, তারা দিতে 3 কমান্ড লাইন আর্গুমেন্ট পরিবর্তে আপনি 2 232 00:16:50,840 --> 00:16:54,350 অথবা আপনাকে উদাহরণস্বরূপ 1, তারপর, আপনি যে জন্য চেক করতে চাইবেন কি কি করবেন তা 233 00:16:54,350 --> 00:16:59,900 এবং তারপর 1 বলছে, না ফিরে, আমি এই প্রোগ্রামের সাথে এগিয়ে যেতে পারবেন না. 234 00:16:59,900 --> 00:17:03,190 [ছাত্রদের] পর্যন্ত আপনার লেখা একটি স্থান হতে পারে না. >> সম্পর্কে ঘটায় দুঃখিত? 235 00:17:03,190 --> 00:17:06,780 [ছাত্রদের] হতে টেকস্টটি আপনি এনক্রিপ্ট করার চেষ্টা করছেন তার মধ্যে একটি স্থান পর্যন্ত করতে পারে না. 236 00:17:06,780 --> 00:17:08,480 আহ! 237 00:17:08,480 --> 00:17:11,280 টেক্সট যে আমরা এনক্রিপ্ট করার চেষ্টা করছেন তার ভাষায়, আসলে যে আসে পরে 238 00:17:11,280 --> 00:17:13,970 যখন আমরা যে টেক্সট প্রদান করা. 239 00:17:13,970 --> 00:17:18,260 সুতরাং অধিকার এখন আমরা শুধু কমান্ড আর্গুমেন্ট হিসাবে গ্রহণ করছি প্রকৃত সংখ্যা, 240 00:17:18,260 --> 00:17:21,579 সিজার এনক্রিপশনের জন্য প্রকৃত স্থানান্তর. 241 00:17:21,579 --> 00:17:27,569 [ছাত্রদের] আপনি কেন প্রয়োজন মাত্র 1 2 argc বিপরীতে? এর স্পষ্টভাবে পর্যন্ত 1 নম্বর. 242 00:17:27,569 --> 00:17:32,200 রাইট. কারণ আমরা argc জন্য 2 প্রয়োজন পরিবর্তে 1 243 00:17:32,200 --> 00:17:36,260 যখন আপনি একটি প্রোগ্রাম চালাতে এবং বলতে কারণ. / রোমান সম্রাটদের পদবী অথবা. / হ্যালো, 244 00:17:36,260 --> 00:17:38,280 যে আসলে একটা কমান্ড লাইন আর্গুমেন্ট হিসাবে গণ্য. 245 00:17:38,280 --> 00:17:43,020 আমি তখন ইতিমধ্যে যে সময় লাগে 1 আপ এবং অতএব আমরা 1 অতিরিক্ত inputting করছি. 246 00:17:45,030 --> 00:17:49,440 সুতরাং আপনি কমান্ড লাইন আর্গুমেন্ট একটি পংক্তি আসলে inputting করছি. 247 00:17:49,440 --> 00:17:52,730 সিজার জন্য কি আপনি কাজ করতে চান, আমরা একটি পূর্ণসংখ্যা মোকাবেলা করতে চান, 248 00:17:52,730 --> 00:17:57,180 তাই আপনার এই atoi ফাংশন ব্যবহার করতে পারেন. 249 00:17:57,180 --> 00:18:02,850 এবং মূলত, আপনি এটি একটি স্ট্রিং পাস করে তাহলে আপনি ফিরে ফিরে পূর্ণসংখ্যা হবে 250 00:18:02,850 --> 00:18:06,070 যদি একটি পূর্ণসংখ্যা মধ্যে স্ট্রিং করা সম্ভব. 251 00:18:06,070 --> 00:18:10,960 এখন যখন আমরা যে ভালো printf বা GetString, জিনিষ সঙ্গে লেনদেন করছেন মনে রাখবেন, 252 00:18:10,960 --> 00:18:13,390 আমরা যে লাইব্রেরি নির্দিষ্ট আমাদের অন্তর্ভুক্ত. 253 00:18:13,390 --> 00:18:19,450 তাই শুরুতে আমরা একটি হ্যাশ ট্যাগ যা মত স্ট্যান্ডার্ড ইনপুট / আউটপুট,. জ, কিছু দিয়ে শুরু করুন. 254 00:18:19,450 --> 00:18:22,430 ওয়েল, atoi যারা লাইব্রেরির মধ্যে এক হয় না, 255 00:18:22,430 --> 00:18:26,600 তাই আমরা কি করতে হবে তা হচ্ছে আমরা যে লাইব্রেরি জন্য অধিকার অন্তর্ভুক্ত আছে. 256 00:18:26,600 --> 00:18:32,720 সুতরাং Walkthrough 1 যেখানে আমি ম্যানুয়াল ফাংশন আলোচনা যাও প্রত্যাহার. 257 00:18:32,720 --> 00:18:37,110 আপনি টার্মিনালে মানুষের টাইপ করুন এবং তারপর একটি ফাংশন নামের দ্বারা অনুসৃত. 258 00:18:37,110 --> 00:18:39,720 এবং যাতে তার ব্যবহারের সম্পূর্ণ তালিকা দেখাবে আনতে হবে, 259 00:18:39,720 --> 00:18:42,890 কিন্তু সেইসাথে এটি আপ যা গ্রন্থাগারের যে জন্যে আনা হবে. 260 00:18:42,890 --> 00:18:47,000 তাই আমি যে আপনি atoi সঙ্গে ম্যানুয়াল ফাংশন ব্যবহার ছেড়ে দেব 261 00:18:47,000 --> 00:18:53,360 এবং জিনিসটা যা গ্রন্থাগারের আপনি যাও যাও যাও atoi ফাংশন ব্যবহার করতে পারবেন না অন্তর্ভুক্ত করা প্রয়োজন. 262 00:18:54,450 --> 00:18:57,670 সুতরাং আমরা কি পেয়েছেন এবং এখন এটি প্লেইন টেক্সট পেয়ে আসে, 263 00:18:57,670 --> 00:19:01,820 এবং তাই আসলে যা ব্যবহারকারীর ইনপুট হবে যেখানে আপনাকে অনুরোধ জানানো যাচ্ছে. 264 00:19:01,820 --> 00:19:05,540 আমরা GetInt এবং GetFloat মোকাবেলা, এবং যাতে একই শিরা মধ্যে 265 00:19:05,540 --> 00:19:07,670 আমরা GetString সাথে ডিল করা চলুন. 266 00:19:07,670 --> 00:19:12,440 কিন্তু এই ক্ষেত্রে আমরা কোনো চেষ্টা না করার বা না করার প্রয়োজন loops চেক যাও. 267 00:19:12,440 --> 00:19:14,480 GetString স্পষ্টভাবে দিতে একটি স্ট্রিং আমাদের হবে, 268 00:19:14,480 --> 00:19:17,630 এবং আমরা যাই হোক না কেন ব্যবহারকারী আমাদের দেয় এনক্রিপ্ট করতে যাচ্ছেন. 269 00:19:17,630 --> 00:19:23,770 সুতরাং আপনি যে এইসব ব্যবহারকারী ইনপুট করা স্ট্রিং সমস্ত সঠিক ধারনা করতে পারি. 270 00:19:23,770 --> 00:19:24,670 গ্রেট. 271 00:19:24,670 --> 00:19:27,270 তাই একবার তারপর আপনি কি পেয়েছেন এবং একবার আপনি টেক্সট পেয়েছেন, 272 00:19:27,270 --> 00:19:31,660 এখন কি বাকি এর হয় আপনি প্লেইন সঙ্কেতাক্ষরে লিখা আছে. 273 00:19:31,660 --> 00:19:36,530 শুধু ভাষা উপর দ্রুত আবরণ, প্লেইন হল কি ব্যবহারকারী আপনাকে দেয়, 274 00:19:36,530 --> 00:19:41,030 এবং ciphertext কি তাদের ফেরত. 275 00:19:42,450 --> 00:19:45,850 স্ট্রিং, তাই আসলে চিঠির মাধ্যমে চিঠি যেতে সক্ষম করা 276 00:19:45,850 --> 00:19:48,550 কারণ আমরা প্রতি চিঠি নামান আছে, 277 00:19:48,550 --> 00:19:51,390 আমরা যে স্ট্রিং বুঝতে, যদি আমরা ফিরে স্তর ছুলা ধরনের, 278 00:19:51,390 --> 00:19:54,130 আমরা দেখতে যে তারা শুধু সত্যিই অক্ষরের একটি তালিকা. 279 00:19:54,130 --> 00:19:55,930 অন্য পরে আসে. 280 00:19:55,930 --> 00:20:01,690 এবং তাই আমরা অ্যারে হিসাবে স্ট্রিং আচরণ কারণ তাদের অক্ষরের অ্যারে পারেন. 281 00:20:01,690 --> 00:20:05,640 তাই বলে আপনি একটি স্ট্রিং নামে লেখা আছে, 282 00:20:05,640 --> 00:20:09,400 এবং যে পরিবর্তনশীল টেক্সট মধ্যে এটি CS50 সংরক্ষিত হয়. 283 00:20:09,400 --> 00:20:15,680 তারপর ইনডেক্স 0 টেক্সট একটি মূলধন T হবে, সূচক 1 জ, ইত্যাদি হতে পারে 284 00:20:17,530 --> 00:20:23,970 এবং তারপরে সঙ্গে অ্যারে, এ args.c মধ্যে argc উদাহরণস্বরূপ, 285 00:20:23,970 --> 00:20:27,090 আমরা দেখেছি যে আমরা একটি অ্যারের পুনরুক্তি করা ছিল 286 00:20:27,090 --> 00:20:32,440 এবং তাই আমরা তোমার থেকে = 0 পর্যন্ত বারবার করা হয় যতক্ষণ না তোমার দ্বারা তুলনায় কম ছিল. 287 00:20:32,440 --> 00:20:35,560 সুতরাং আমরা figuring কি আমাদের স্ট্রিং দৈর্ঘ্য কিছু উপায় প্রয়োজন 288 00:20:35,560 --> 00:20:37,090 আমরা যদি এটা উপর বারবার যাও চলুন. 289 00:20:37,090 --> 00:20:42,300 ভাগ্যক্রমে আবার, যদিও পরে CS50 হয় সেখানে আমাদের জন্য একটি ফাংশন আছে, 290 00:20:42,300 --> 00:20:45,860 আপনি স্পষ্টভাবে করা এবং বাস্তবায়ন আপনার নিজস্ব ফাংশন করতে পারবেন 291 00:20:45,860 --> 00:20:48,260 যে একটি স্ট্রিং এর দৈর্ঘ্য নিরূপণ করতে পারেন. 292 00:20:48,260 --> 00:20:52,120 কিন্তু এখন জন্য আমরা স্ট্রিং দ্বারা, তাই strlen ব্যবহার চলুন. 293 00:20:52,120 --> 00:21:00,440 আপনি একটি স্ট্রিং পাস, এবং তারপর এটি কোন int যে আপনার স্ট্রিং এর দৈর্ঘ্য উপস্থাপন প্রত্যাবর্তন করতে হবে. 294 00:21:00,440 --> 00:21:05,840 যাক কিভাবে আমরা স্ট্রিং এর মধ্যে বারবার প্রতিটি অক্ষর উপর সক্ষম হতে পারে একটি উদাহরণ তাকান 295 00:21:05,840 --> 00:21:08,470 এবং সেই সাথে কিছু একটা করুন. 296 00:21:08,470 --> 00:21:13,250 আমরা কি করে যেতে চাই হয় স্ট্রিং প্রতিটি অক্ষর পুনরুক্তি উপর, 297 00:21:13,250 --> 00:21:19,150 আমরা কি করতে হয় আমরা 1 দ্বারা মুদ্রণ প্রতিটি অক্ষর 1 ফিরে 298 00:21:19,150 --> 00:21:22,060 আমরা এটা ছাড়া কিছু পরের যোগ করুন. 299 00:21:22,060 --> 00:21:27,020 সুতরাং যাক লুপ এর সাথে এর শুরু. Int i = 0. 300 00:21:27,020 --> 00:21:30,070 আমরা অবস্থার জন্য স্থান ছেড়ে যাচ্ছেন. 301 00:21:32,700 --> 00:21:36,840 আমরা বারবার করতে চান না হওয়া পর্যন্ত আমরা স্ট্রিং এর শেষে পৌঁছানোর, ডান? 302 00:21:36,840 --> 00:21:41,340 আমি তখন কি ফাংশন দেয় স্ট্রিং এর দৈর্ঘ্য আমাদের? 303 00:21:41,340 --> 00:21:43,160 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] 304 00:21:43,160 --> 00:21:46,420 যে কমান্ড লাইন আর্গুমেন্ট দ্বারা. 305 00:21:46,420 --> 00:21:50,650 কিন্তু আমরা একটি ফাংশন যে দেয় string এর দ্বারা আমাদের জন্য একটি পংক্তি ব্যবহার করতে চান. 306 00:21:50,650 --> 00:21:53,090 যাতে স্ট্রিং এর দৈর্ঘ্য. 307 00:21:53,090 --> 00:21:57,130 এবং তারপর, তাই আপনি এটা স্ট্রিং এর মধ্যে পাস করতে হবে. 308 00:21:57,130 --> 00:21:59,760 এটা কি স্ট্রিং এটি দৈর্ঘ্যের নিরূপণ করা প্রয়োজন প্রয়োজন. 309 00:21:59,760 --> 00:22:03,160 এই ক্ষেত্রে তারপর সুতরাং আমরা স্ট্রিং গুলি সঙ্গে লেনদেন করছেন. 310 00:22:04,790 --> 00:22:05,860 গ্রেট. 311 00:22:05,860 --> 00:22:10,770 আমি তখন কি আমরা যেতে চাই, এর printf যাক. 312 00:22:10,770 --> 00:22:14,850 এখন, আমরা অক্ষরের সাথে মোকাবিলা করতে চান. আমরা প্রতিটি অক্ষর প্রিন্ট আউট করতে চান. 313 00:22:14,850 --> 00:22:22,150 যখন এটি একটি float প্রিন্ট আউট করতে চান, আপনি% চ প্লেসহোল্ডার ভালো ব্যবহার করবে. 314 00:22:22,150 --> 00:22:24,580 কোন int সঙ্গে আপনি% d ব্যবহার করেন. 315 00:22:24,580 --> 00:22:30,890 এবং একটি অক্ষর দিয়ে তাই একভাবে, আপনি আমাকে একটা অক্ষর মুদ্রণ করা যাচ্ছে না বলে% গ ব্যবহার 316 00:22:30,890 --> 00:22:34,570 যে একটি পরিবর্তনশীল ভিতরে সঞ্চিত. 317 00:22:34,570 --> 00:22:40,840 সুতরাং আমরা এই আছে, এবং এর একটি এটি সেই সময়ের এবং একটি স্থান যোগ করা যাক. 318 00:22:40,840 --> 00:22:45,430 কোন অক্ষর আমরা ব্যবহার করছেন? 319 00:22:45,430 --> 00:22:49,780 আমরা যাহা অক্ষর ব্যবহার করা হবে আমরা এই পংক্তি এ করছি চলুন. 320 00:22:49,780 --> 00:22:52,890 তখন আমরা স্ট্রিং সঙ্গে কিছু ব্যবহার করা যাচ্ছেন, 321 00:22:52,890 --> 00:22:56,420 কিন্তু আমরা চাই সেখানে নির্দিষ্ট অক্ষর অ্যাক্সেস করা হবে. 322 00:22:56,420 --> 00:23:02,740 তাই আপনি যদি একটি স্ট্রিং শুধুমাত্র একটি অ্যারের তারপর, কিভাবে আমরা অ্যারে উপাদান অ্যাকসেস? 323 00:23:02,740 --> 00:23:06,480 আমরা যারা বর্গাকার বন্ধনী আছে, এবং তারপর আমরা সেখানে সূচক করা. 324 00:23:06,480 --> 00:23:11,820 সুতরাং আমরা বর্গাকার বন্ধনী আছে. এই ক্ষেত্রে আমাদের সূচক আমরা শুধু আমি ব্যবহার করতে পারেন. ঠিক. 325 00:23:15,290 --> 00:23:22,370 তাই আমরা এখানে আমরা একটি অক্ষর একটি বিন্দু এবং একটি স্থান অনুসরণ মুদ্রণ করা চলুন বলছে, 326 00:23:22,370 --> 00:23:30,870 এবং যে চরিত্র আমাদের স্ট্রিং গুলি মধ্যে ith চিঠি হবে. 327 00:23:32,920 --> 00:23:39,330 আমি শুধু যে সংরক্ষণ করতে যাচ্ছে. ঠিক আছে. 328 00:23:42,510 --> 00:23:46,840 এখন আমি স্ট্রিং দ্বারা চালানো যাচ্ছে না. 329 00:23:46,840 --> 00:23:53,440 সুতরাং আমরা একটি স্ট্রিং নামক omg ছিল এবং এখন এটি এমনকি আরো ব্যাখ্যা করা হচ্ছে. 330 00:23:53,440 --> 00:23:57,870 একইভাবে, আমি কি বলতে আমরা আসলে ব্যবহারকারী থেকে একটি পংক্তি পেতে চান. 331 00:23:57,870 --> 00:23:59,580 কিভাবে এই আমরা কি হতে পারে? 332 00:23:59,580 --> 00:24:01,610 পূর্বে, কিভাবে আমরা কোন int পাইনি? 333 00:24:01,610 --> 00:24:08,040 আমরা GetInt বলেন, ডান? কিন্তু এই int-এ হয় না, তাই এর GetString যাক. 334 00:24:11,780 --> 00:24:17,770 যাক স্ট্রিং এর দৈর্ঘ্য করা. এখানে আমরা একটি নির্দিষ্ট প্রম্পটে লিখুন না. 335 00:24:17,770 --> 00:24:19,940 তাই আমি জানি না. 336 00:24:19,940 --> 00:24:23,820 আমি এখানে আমার নাম প্রকাশ করা যাচ্ছে এবং অতএব আমি ঐ জিনিস এক করতে পারি না 337 00:24:23,820 --> 00:24:29,600 যেখানে আমি প্রতি যে ভালো চিঠি বা কিছু জন্য একটি শব্দ নির্ধারণ করুন. কুল. 338 00:24:29,600 --> 00:24:31,900 যাতে স্ট্রিং এর দৈর্ঘ্য. 339 00:24:33,000 --> 00:24:34,640 সুতরাং আমরা সিজার যাও ফিরে এসেছি. 340 00:24:34,640 --> 00:24:38,620 আমরা কিভাবে আমরা একটি স্ট্রিং উপর বারবার উপর কয়েক সরঞ্জাম আছে, 341 00:24:38,620 --> 00:24:41,250 কিভাবে আমরা প্রতিটি উপাদান অ্যাক্সেস. 342 00:24:41,250 --> 00:24:44,720 তাই এখন আমরা প্রোগ্রাম পেতে পারেন. 343 00:24:44,720 --> 00:24:48,650 হিসাবে আমি আগে, এ ASCII টেবিল, আপনার বন্ধু, উল্লেখ 344 00:24:48,650 --> 00:24:52,300 আপনি যে সংখ্যাগুলি প্রতি চিঠি সাথে দেখতে যাচ্ছেন. 345 00:24:52,300 --> 00:24:55,900 তাই আমাদের এখানে বলতে প্লেইন হল আমি হতবুদ্ধি! 346 00:24:55,900 --> 00:25:01,090 তারপর এইসব অক্ষর প্রতিটি একটি সংখ্যা এবং এর সাথে জড়িত আছে ASCII মান হবে, 347 00:25:01,090 --> 00:25:04,710 এমনকি ঊর্ধকমা, এমনকি স্থান, এমনকি বিস্ময়বোধক চিহ্ন, 348 00:25:04,710 --> 00:25:06,600 তাই আপনার মন যে রাখতে চাইবেন. 349 00:25:06,600 --> 00:25:12,360 সুতরাং আমাদের কি বলে যে ব্যবহারকারী তাদের কমান্ড লাইন আর্গুমেন্ট অন্তর্ভুক্ত হয় 6. 350 00:25:12,360 --> 00:25:17,770 প্রথম চিঠি, যা আমি, যা 73 দ্বারা প্রতিনিধিত্ব করা হবে, তার মানে, 351 00:25:17,770 --> 00:25:25,610 আপনি তাদের কাছে যাই হোক না কেন চিঠি 73 + 6 ASCII মান দ্বারা প্রতিনিধিত্ব করা হয় ফিরে আসতে চান. 352 00:25:25,610 --> 00:25:29,020 এই ক্ষেত্রে যে 79 হবে. 353 00:25:30,840 --> 00:25:35,040 এখন আমরা পরবর্তী অক্ষর যেতে চান. 354 00:25:35,040 --> 00:25:40,960 সুতরাং সূচক 1 প্লেইন এর পরের ঊর্ধকমা হবে. 355 00:25:40,960 --> 00:25:46,780 কিন্তু মনে রাখবেন আমরা শুধুমাত্র অক্ষর সঙ্কেতাক্ষরে লিখা চাই. 356 00:25:46,780 --> 00:25:50,040 তাই আমরা নিশ্চিত যে আসলে ঊর্ধকমা একই থাকে করতে চাই, 357 00:25:50,040 --> 00:25:54,310 যে যাই হোক না কেন আমরা 39 থেকে 45 পরিবর্তন না হয়. 358 00:25:54,310 --> 00:25:57,150 আমরা একটি ঊর্ধকমা হিসাবে এটি রাখতে চান. 359 00:25:57,150 --> 00:26:00,780 তাই আমরা শুধুমাত্র অক্ষর সঙ্কেতাক্ষরে লিখা মনে রাখতে চান 360 00:26:00,780 --> 00:26:04,560 কারণ আমরা অন্যান্য চিহ্ন সমস্ত আমাদের প্রোগ্রামে যাও অপরিবর্তিত থাকবে চান. 361 00:26:04,560 --> 00:26:07,130 আরেকটি বিষয় যে আমরা চান ক্যাপিটালাইজেশন সংরক্ষিত করা হয়. 362 00:26:07,130 --> 00:26:10,250 সুতরাং যখন আপনি একটি য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর আছে, এটি একটি য়ের বড়হাতের অক্ষর ছোটহাতের হিসেবে থাকতে হবে. 363 00:26:10,250 --> 00:26:12,830 Lowercases ছোট হাতের অক্ষর ব্যবহার হিসাবে থাকতে হবে. 364 00:26:13,620 --> 00:26:19,480 তাই কিছু দরকারী ফাংশন শুধুমাত্র enciphering অক্ষর মোকাবেলা করতে পারবেন 365 00:26:19,480 --> 00:26:22,380 এবং জিনিস ক্যাপিটালাইজেশন অপরিবর্তিত রাখা 366 00:26:22,380 --> 00:26:25,130 isalpha হয়, isupper, islower ফাংশন. 367 00:26:25,130 --> 00:26:29,270 তাই এই ফাংশন যে ফিরে একটি বুলিয়ান মান. 368 00:26:29,270 --> 00:26:34,180 মূলত, সত্য বা মিথ্যা. এটি একটি য়ের বড়হাতের অক্ষর ছোটহাতের? এই আলফানিউমেরিক? 369 00:26:34,180 --> 00:26:37,180 এটি মূলত একটি চিঠি,. 370 00:26:37,180 --> 00:26:41,070 তাই এখানে কিভাবে আপনি যে ফাংশন ব্যবহার করবে 3 উদাহরণ. 371 00:26:41,070 --> 00:26:47,060 মূলত, আপনি কিনা আপনি যে মান ফাংশন দ্বারা পরীক্ষা করতে পারে সত্য বা মিথ্যা 372 00:26:47,060 --> 00:26:49,400 যে ইনপুটের ভিত্তিতে. 373 00:26:49,400 --> 00:26:54,880 সঙ্কেতাক্ষরে লিখা হয় না কিছু বা এটি অথবা সাইফার নিশ্চিত যে এটা য়ের বড়হাতের অক্ষর ছোটহাতের, ইত্যাদি কাজ করা 374 00:26:54,880 --> 00:27:01,080 [ছাত্রদের] আপনি যারা একটু বেশি এবং কিভাবে আপনি তাদের ব্যবহার ব্যাখ্যা করতে পারি? >> হ্যাঁ, অবশ্যই. 375 00:27:01,080 --> 00:27:08,470 তাই আপনি যদি আমরা ফিরে তাকান, এখানে আমরা একটি মূলধন আমি আছে, ডান? 376 00:27:08,470 --> 00:27:14,550 যাতে আমরা জানতে পারি যে আমি হে যায় কারণ আমি + 6 ও হয় 377 00:27:14,550 --> 00:27:18,740 তবে আমরা নিশ্চিত যে আউটপুট একটি মূলধন ও হতে যাচ্ছে করতে চাই 378 00:27:18,740 --> 00:27:22,940 তাই মূলত, যা আমাদের ইনপুট পরিবর্তন করতে যাচ্ছেন ধরনের. 379 00:27:22,940 --> 00:27:26,870 সুতরাং এটি য়ের বড়হাতের অক্ষর ছোটহাতের বা উপায় যে আমরা তা মোকাবেলা ধরনের পরিবর্তন না হবে. 380 00:27:26,870 --> 00:27:32,360 তখন যদি আমরা সেই বিশেষ সূচক উপর isupper ফাংশান ব্যবহার, 381 00:27:32,360 --> 00:27:36,480 তাই isupper ("আমি"), আমাদের জন্য সত্য যে ফেরৎ, তাই আমরা জানি যে এটা উপরের. 382 00:27:36,480 --> 00:27:40,360 তখন উপর ভিত্তি করে পরে, আমরা একটি ফর্মূলায় যাবেন 383 00:27:40,360 --> 00:27:42,750 আপনি যে ব্যবহার করে সিজার অনেক কিছু নামান করতে হবে, 384 00:27:42,750 --> 00:27:46,560 তাই মূলত তারপর, গিয়ে সামান্য বিভিন্ন সূত্র হতে সেখানে যদি য়ের বড়হাতের অক্ষর ছোটহাতের এর 385 00:27:46,560 --> 00:27:50,670 হিসাবে যাও ছোট হাতের অক্ষর বিরোধিতা. জানার জন্য? 386 00:27:51,020 --> 00:27:52,760 হাঁ. কোনো উদ্বেগ. 387 00:27:54,900 --> 00:27:58,990 আমি একটি চিঠি, যে অর্থে পুরোপুরি না যাও 6 যোগ করা সম্পর্কে একটি বিট সায়ীদ 388 00:27:58,990 --> 00:28:05,500 ছাড়া যখন আমরা বুঝতে পারি যে এই ধরনের অক্ষর 389 00:28:05,500 --> 00:28:08,920 হয় পূর্ণসংখ্যা সঙ্গে বিনিমেয় ধরনের. 390 00:28:08,920 --> 00:28:11,250 আমরা কি করব তা হল আমরা ব্যবহার অন্তর্নিহিত কাস্টিং ধরনের. 391 00:28:11,250 --> 00:28:18,100 আমরা ঢালাই মধ্যে একটু পরে যেখানে আপনি একটি মান নিতে নেভিগেশন এড়িয়ে যান এবং আপনার একটি ভিন্ন ধরনের মধ্যে এটি চালু করব 392 00:28:18,100 --> 00:28:20,440 তুলনায় মূলত এটি ছিল. 393 00:28:20,440 --> 00:28:25,910 কিন্তু এই pset সঙ্গে আমরা সক্ষম ধরনের অদলবদল অক্ষর ব্যবহার করা হবে 394 00:28:25,910 --> 00:28:30,880 এবং তাদের সংশ্লিষ্ট পূর্ণসংখ্যা মান. 395 00:28:30,880 --> 00:28:35,140 তাই আপনি যদি কেবল আপনি শুধু একক উদ্ধৃতি চিহ্ন দিয়ে বাঁধা একটি অক্ষর, 396 00:28:35,140 --> 00:28:40,390 তারপর আপনি এটি দিয়ে পূর্ণসংখ্যার সঙ্গে কাজ, একটি পূর্ণসংখ্যা হিসাবে এটি মোকাবেলা করতে সক্ষম হবেন. 397 00:28:40,390 --> 00:28:48,040 তাই মূলধন সি 67 সাথে সম্পর্কিত. ছোট হাতের চ 102 সাথে সম্পর্কিত. 398 00:28:48,040 --> 00:28:51,480 আবার, যদি আপনি জানতে চান এই মানগুলি আপনার ASCII টেবিল এ, চেহারা. 399 00:28:51,480 --> 00:28:56,160 সুতরাং এর কিভাবে আপনি যোগ বিয়োগ করতে পারেন এবং কিছু উদাহরণের মধ্যে চলুন, 400 00:28:56,160 --> 00:29:03,130 কিভাবে আপনি প্রকৃতপক্ষে এই অক্ষর দিয়ে সত্যিই কাজ করতে পারেন, অদলবদল করে তাদের ব্যবহার. 401 00:29:03,870 --> 00:29:11,350 আমি যে ASCIIMath একটি পূর্ণসংখ্যা একটি অক্ষর যোগ নিরূপণ করা যাচ্ছে না 402 00:29:11,350 --> 00:29:17,590 এবং তারপর পরিসমাপ্তি অক্ষর হিসেবে পরিসমাপ্তি হওয়া ASCII মান প্রদর্শন করা হয়. 403 00:29:17,590 --> 00:29:22,290 এবং এখানে আমি তাই বলছে করছি - এই অংশ we'll সঙ্গে চুক্তি করে পরে - 404 00:29:22,290 --> 00:29:29,100 কিন্তু মূলত, আমি যে ব্যবহারকারী চালানো ASCIIMath বলে সহ একটি কি উচিত না এই বলে, 405 00:29:29,100 --> 00:29:30,880 এবং আমি যে কী নম্বর হবে বলছে করছি 406 00:29:30,880 --> 00:29:34,600 যা দিয়ে আমরা এই অক্ষর যুক্ত চলুন. 407 00:29:34,600 --> 00:29:38,560 তাই এখানে লক্ষ্য করা যে যেহেতু আমি একটি কী দাবি করছি, 408 00:29:38,560 --> 00:29:40,590 যেহেতু আমি যে তারা সম্পর্কে 1 জিনিস দেবার দাবী করছি না, 409 00:29:40,590 --> 00:29:45,600 আমি শুধুমাত্র. / Asciimath এবং একটি কী গ্রহণ করতে চান. 410 00:29:45,600 --> 00:29:49,330 আমি যে argc সমান 2 যাও দাবি যাচ্ছি. 411 00:29:49,330 --> 00:29:54,360 এটি যদি না থাকে, তাহলে আমি 1 এবং ফিরে প্রোগ্রাম থেকে প্রস্থান করা যাচ্ছে না. 412 00:29:55,070 --> 00:29:58,540 সুতরাং আমি কি প্রথম কমান্ড লাইন আর্গুমেন্ট ব্যবহার করা হচ্ছে না বলছে করছি, 413 00:29:58,540 --> 00:30:05,080 এটি দ্বিতীয় এক হবে, এবং এর হিসাবে আপনি এখানে দেখতে, 414 00:30:05,080 --> 00:30:11,790 আমি একটি পূর্ণসংখ্যা মধ্যে যে ঘুরিয়ে যাচ্ছি. 415 00:30:15,740 --> 00:30:19,230 তারপর আমি একটা অক্ষর যাও: r সেট করা যাচ্ছে না. 416 00:30:19,230 --> 00:30:23,970 উল্লেখ্য, পরিবর্তনশীল chr ধরণ আসলে একটি পূর্ণসংখ্যা. 417 00:30:23,970 --> 00:30:30,480 উপায় যে আমি একটি পূর্ণসংখ্যা হিসাবে আর ব্যবহার করতে পারবেন এই একক উদ্ধৃতি চিহ্ন সঙ্গে এটি encasing হয়. 418 00:30:33,850 --> 00:30:40,560 আমাদের printf বিবৃতিতে তাই যেখানে আমরা একটি অক্ষরের জন্য একটি স্থানধারক ব্যাক 419 00:30:40,560 --> 00:30:43,590 এবং তারপর একটি পূর্ণসংখ্যা জন্য একটি স্থানধারক, 420 00:30:43,590 --> 00:30:49,450 অক্ষর দ্বারা chr, প্রতিনিধিত্ব এবং পূর্ণসংখ্যা হয় কি না. 421 00:30:49,450 --> 00:30:54,320 এবং তারপর আমরা ফলে একসাথে 2 যোগ চলুন. 422 00:30:54,320 --> 00:30:58,420 তাই আমরা কিছু যোগ করতে যাচ্ছে 'যাহা কি করছি, 423 00:30:58,420 --> 00:31:03,520 এবং তারপর আমরা যে ফলাফল মুদ্রণ চলুন. 424 00:31:06,210 --> 00:31:14,220 সুতরাং আসুন asciimath করা. এটা তারিখের উপর নির্ভর করে, তাই আসুন শুধু asciimath চালানো. 425 00:31:14,220 --> 00:31:18,290 ওহ, কিন্তু দেখুন, এটি একটি কারণ আমরা আসলে কী দিতে না না কিছু না. 426 00:31:18,290 --> 00:31:23,850 সুতরাং যখন এটা 1, আমাদের প্রধান ফাংশন ফিরে আসেন, এটা আমাদের ফিরে ফিরে. 427 00:31:23,850 --> 00:31:29,250 অতএব আসুন একটি কি 'র মধ্যে পাস. কেউ আমাকে একটি নম্বর দিতে. >> [ছাত্রদের] 4. 428 00:31:29,250 --> 00:31:30,920 4. ঠিক আছে. 429 00:31:30,920 --> 00:31:39,280 সুতরাং আমাদের আর 4 বনাম, 118 এর ASCII মান যা অনুরূপ দিতে হবে বৃদ্ধি. 430 00:31:39,280 --> 00:31:43,880 আমি তখন এটি ধরনের অনুভূতি যে - 431 00:31:43,880 --> 00:31:51,250 বাস্তবিক, আপনি আমি, জিজ্ঞাসা, তখন আপনি কি ASCII r এর মান যদি r + 4 118 মনে করতে পারেন? 432 00:31:53,070 --> 00:31:55,470 তারপর হাঁ, r হয় 114. 433 00:31:55,470 --> 00:32:03,010 তাই আপনি যদি ASCII টেবিল তারপর চেহারা, নিঃসন্দেহে, আপনি যে r 114 প্রতিনিধিত্ব করেন দেখতে পাবেন. 434 00:32:03,010 --> 00:32:08,610 তাই এখন আমরা জানি যে আমরা পূর্ণসংখ্যার অক্ষর যুক্ত করতে পারেন, এই সহজ মনে হচ্ছে চমত্কার. 435 00:32:08,610 --> 00:32:12,740 আমরা শুধুমাত্র আপনার স্ট্রিং এর উপর বারবার মত একটি উদাহরণ আমরা আগে দেখেছি যাচ্ছে. 436 00:32:12,740 --> 00:32:17,170 আমরা যদি একটি চিঠি চেক করব. 437 00:32:17,170 --> 00:32:20,420 যদি তা না হয়, তাহলে আমরা যাহা কি দ্বারা এটি নামান করব. 438 00:32:20,420 --> 00:32:23,650 চমত্কার সহজ, ছাড়া আপনি যখন এই পেতে চাই, 439 00:32:23,650 --> 00:32:32,140 আপনি দেখতে যে z ', 122 দ্বারা প্রতিনিধিত্ব তারপর, একটি ভিন্ন অক্ষর দিতে হবে. 440 00:32:32,140 --> 00:32:37,770 আমরা আসলে আমাদের বর্ণমালার মধ্যে রাখতে চান, ঠিক? 441 00:32:37,770 --> 00:32:43,180 তাই আমরা মোড়কে কাছাকাছি ধরনের কিছু চিত্র উপায় আউট করা দরকার. 442 00:32:43,180 --> 00:32:47,190 যখন আপনার কাছে পৌঁছাতে অক্ষরটি এবং আপনি একটি নির্দিষ্ট সংখ্যক দ্বারা বৃদ্ধি করতে চান, 443 00:32:47,190 --> 00:32:51,230 আপনি অতিক্রম হওয়া ASCII বর্ণমালা বিভাগে যেতে চান না; 444 00:32:51,230 --> 00:32:54,140 আপনি এ যাও মোড়ানো সব উপায় ফেরত চাই 445 00:32:54,140 --> 00:32:58,550 মনে রাখা কিন্তু আপনি এখনও ক্ষেত্রে সংরক্ষণের. 446 00:32:58,550 --> 00:33:00,980 যাতে চিঠি বুদ্ধিমান চিহ্ন হতে পারে না 447 00:33:00,980 --> 00:33:05,290 চিহ্ন ঠিক মত পরিবর্তন করা হবে হিসাবে ভাল হয় যাচ্ছে না. 448 00:33:05,290 --> 00:33:08,170 শেষ pset ইন স্পষ্টভাবে আপনি না প্রয়োজন, 449 00:33:08,170 --> 00:33:14,310 কিন্তু একটি বিকল্প মডুলাস ফাংশন ব্যবহার করে আপনার অর্থগৃধ্নু pset বাস্তবায়ন ছিল. 450 00:33:14,310 --> 00:33:17,230 কিন্তু এখন আসলে আমরা মডুলাস ব্যবহার করতে হবে সেটি হচ্ছে, 451 00:33:17,230 --> 00:33:19,900 তাই আসুন শুধু এই একটি সামান্য বিট ঝালিয়ে নেওয়া. 452 00:33:19,900 --> 00:33:26,920 মূলত, যখন আপনি এক্স modulo y, ও যে দেয় y দ্বারা বিভক্ত x বাকি আছে. 453 00:33:26,920 --> 00:33:30,930 এখানে কিছু উদাহরণ এখানে. আমাদের সাথে আছে 15% 27. 454 00:33:30,930 --> 00:33:36,200 মূলত, যখন আপনি 27 থেকে ছাড়া পেয়ে নেতিবাচক 15 বিয়োগ করা সম্ভব হিসাবে অনেকবার 455 00:33:36,200 --> 00:33:39,060 তারপর আপনি 12 বাম কাটান. 456 00:33:39,060 --> 00:33:44,650 যাতে মত ধরনের গণিত প্রেক্ষাপটে, কিন্তু কিভাবে আসলে আমরা এই ব্যবহার করতে পারেন? 457 00:33:44,650 --> 00:33:47,100 এটি আমাদের wrapover জন্য উপযোগী হতে যাচ্ছে. 458 00:33:47,100 --> 00:33:55,420 এই জন্য, এর যাক সেটা আমি 3 দলের মধ্যে বিভক্ত করা আপনার সব জিজ্ঞাসা. 459 00:33:55,420 --> 00:33:58,010 কখনও কখনও আপনার গ্রুপ এবং যে ভালো কিছু করি. 460 00:33:58,010 --> 00:34:01,320 আমি বলবার বলেন, "ঠিক আছে, আমি আপনাকে সব চান 3 বিভক্ত করা হবে." 461 00:34:01,320 --> 00:34:04,240 কিভাবে যে কি হতে পারে? 462 00:34:04,240 --> 00:34:06,810 [শ্রবণাতীত ছাত্র প্রতিক্রিয়া] হ্যাঁ, ঠিক. বন্ধ গণনা. ঠিক আছে. 463 00:34:06,810 --> 00:34:10,260 এর আসলে যে কি করা যাক. আপনি কি শুরু করতে চান? 464 00:34:10,260 --> 00:34:13,810 [ছাত্র গণনা বন্ধ] 1, 2, 3, 4. 465 00:34:13,810 --> 00:34:16,620 কিন্তু মনে রাখবেন ... >> [ছাত্রদের] ওহ, দুঃখিত. 466 00:34:16,620 --> 00:34:18,730 এটা সত্যিই একটি ভাল পয়েন্ট. 467 00:34:18,730 --> 00:34:24,130 আপনি 4 বলেন, কিন্তু আমরা আসলে আপনি 1 বলতে চাই কারণ আমরা শুধু 3 গ্রুপ করতে চান. 468 00:34:24,130 --> 00:34:30,159 অতএব, কি - না, এটা সত্যিই একটি ভাল উদাহরণ কারণ সেটা কিভাবে 1 আপনি বলতে পারে? 469 00:34:30,159 --> 00:34:33,370 4 এবং 1 এর মধ্যে সম্পর্ক কি? 470 00:34:33,370 --> 00:34:36,760 আচ্ছা, 4 mod 3 1. 471 00:34:36,760 --> 00:34:41,460 তাই আপনি যদি অবিরত, আপনি 2 হবে. 472 00:34:41,460 --> 00:34:44,540 সুতরাং আমরা 1, 2, 3, 1, 2 আছে. 473 00:34:44,540 --> 00:34:49,420 আবার, আপনি আসলে 5 ম ব্যক্তি হন. আপনি কিভাবে যাও 2 পরিবর্তে 5 বলে জানেন? 474 00:34:49,420 --> 00:34:53,760 আপনি বলতে 5 mod 3 2. 475 00:34:53,760 --> 00:34:59,100 আমি কতগুলি 3 দলের উপর ছেড়ে দেওয়া হয় তা দেখতে চান, তাহলে যা আদেশ am I. 476 00:34:59,100 --> 00:35:02,860 এবং তাই যদি আমরা সমগ্র রুম বরাবর অব্যাহত, 477 00:35:02,860 --> 00:35:07,760 তারপর আমরা যে সবসময় আমরা আসলে করছি নিজেদেরকে mod ফাংশন প্রয়োগের দেখতে হবে 478 00:35:07,760 --> 00:35:09,990 যাও ধরনের বন্ধ গণনা. 479 00:35:09,990 --> 00:35:14,490 সে কিভাবে আপনি modulo ব্যবহার হতে পারে বাস্তব উদাহরণ আরো ধরনের 480 00:35:14,490 --> 00:35:17,960 কারণ আমি নিশ্চিত আমাদের সম্ভবত যে প্রক্রিয়ার মাধ্যমে সর্বস্বান্ত 481 00:35:17,960 --> 00:35:19,630 যেখানে আমরা গণনা বন্ধ করিয়েছি. 482 00:35:19,630 --> 00:35:21,840 Modulo উপর কোন প্রশ্ন? 483 00:35:21,840 --> 00:35:25,360 এই ধারণার বুঝতে অত্যন্ত গুরুত্বপূর্ণ হবে, 484 00:35:25,360 --> 00:35:28,640 তাই আমি নিশ্চিত আপনি না বুঝতে করতে চাই. 485 00:35:28,640 --> 00:35:34,660 [ছাত্রদের] যদি কোন বাকি আছে, এটি প্রকৃত সংখ্যা দেয় আপনি? 486 00:35:34,660 --> 00:35:40,430 যদি তাদের প্রথম 3 এক এটি কাজ করে, তা হবে তাদের দেওয়া কি আসলে তারা ছিল, 487 00:35:40,430 --> 00:35:43,310 অথবা এটা তাদের দেওয়া হবে [শ্রবণাতীত] >> এটা একটা ভাল প্রশ্ন. 488 00:35:43,310 --> 00:35:48,750 যখন modulo জন্য কোন বাকি আছে - তাই বলে আপনি 6 mod 3 আছে - 489 00:35:48,750 --> 00:35:52,340 আসলে আপনি দেয় ফিরে 0. 490 00:35:53,670 --> 00:35:57,290 আমরা একটু পরে সম্পর্কে কথা বলতে পারবেন. 491 00:35:58,810 --> 00:36:07,720 উদাহরণস্বরূপ ওহ হ্যাঁ,, 3 য় ব্যক্তি - 3 mod 3 আসলে 0 কিন্তু তিনি বলেন, 3. 492 00:36:07,720 --> 00:36:14,900 যাতে একটি অভ্যন্তরীণ ছিটকিনি মত ধরনের উদাহরণস্বরূপ,, 493 00:36:14,900 --> 00:36:17,620 একদম ঠিক মত, যদি তারপর mod 0 হয় আমি 3 য় ব্যক্তি হতে চলেছি. 494 00:36:17,620 --> 00:36:22,740 কিন্তু আমরা কিভাবে আমরা কি 0 পরে সাথে মোকাবিলা করতে চাইবেন ধরনের মধ্যে পাবেন. 495 00:36:22,740 --> 00:36:32,750 তাই এখন আমরা একরকম ডান চিঠি যাও জেড ম্যাপিং একটি উপায় আছে. 496 00:36:32,750 --> 00:36:34,920 তাই এখন আমরা এই উদাহরণ দিয়ে চলে গেছে করেছি, 497 00:36:34,920 --> 00:36:37,880 আমরা কিভাবে সিজার ধরনের কাজ করতে পারে. 498 00:36:37,880 --> 00:36:42,640 আপনি 2 alphabets দেখুন এবং তারপর আপনি দেখতে তাদের নাড়াচাড়া. 499 00:36:42,640 --> 00:36:44,430 সুতরাং আসুন এবং চেষ্টা সূত্র নিরিখে যে প্রকাশ. 500 00:36:44,430 --> 00:36:46,940 এই সূত্র আপনি প্রকৃতপক্ষে বৈশিষ্ট দেওয়া, 501 00:36:46,940 --> 00:36:52,070 কিন্তু বর্ণন এর let এর কি মানে প্রতিটি পরিবর্তনশীল মাধ্যমে ধরনের. 502 00:36:52,070 --> 00:36:55,000 আমাদের পৌঁছে দেওয়া ciphertext হবে. 503 00:36:55,000 --> 00:36:58,300 তাই এই বলে যে ciphertext এর ith অক্ষর 504 00:36:58,300 --> 00:37:02,500 প্লেইন এর ith অক্ষরে মিলা যাচ্ছে. 505 00:37:02,500 --> 00:37:08,130 যে বিষয়টি যুক্তিযুক্ত কারণ আমরা চাই সবসময় আপ জিনিষ এই আবরণের করা হবে. 506 00:37:08,130 --> 00:37:13,480 সুতরাং ciphertext প্লাস ট, যা আমাদের কী ith অক্ষর হতে যাচ্ছে - 507 00:37:13,480 --> 00:37:17,230 যে অর্থে তোলে - এবং তারপর আমরা এই mod 26 আছে. 508 00:37:17,230 --> 00:37:19,860 ফিরে মনে রাখবেন, যখন আমরা জেড ছিল 509 00:37:19,860 --> 00:37:24,190 আমরা চরিত্র মধ্যে পেতে, না চাই তাই আমরা একে Mod চেয়েছিলেন 510 00:37:24,190 --> 00:37:26,540 মোড়ানো ও বর্ণমালা কাছাকাছি ধরনের. 511 00:37:26,540 --> 00:37:33,430 অক্ষরটি পরে আপনি একটি যেতে হবে, খ, গ, ঘ, যতক্ষণ না আপনি সঠিক সংখ্যা না. 512 00:37:33,430 --> 00:37:44,690 যাতে আমরা জানতে পারি যে অক্ষরটি, যদি + 6, চ আমাদের দিতে কারণ অক্ষরটি পরে আসে একটি, খ, গ, ঘ, ঙ, চ করবে. 513 00:37:44,690 --> 00:37:52,530 সুতরাং আসুন আমরা স্মরণ নিশ্চিত জানি যে অক্ষরটি + 6 চ আমাদের দিতে হবে. 514 00:37:52,530 --> 00:38:03,530 ASCII মান ইন, z-হল 122 এবং চ হয় 102. 515 00:38:03,530 --> 00:38:10,570 তাই আমরা আমাদের সিজার সূত্র তৈরি করার একটি উপায় আছে খুঁজে দিতে আমাদের 102 516 00:38:10,570 --> 00:38:13,590 পরে 122 সালে গ্রহণ. 517 00:38:13,590 --> 00:38:19,550 তাই আপনি যদি আমরা এই সূত্র, ('z' + 6) 26%, যে আসলে দেয় 24 আপনি আবেদন 518 00:38:19,550 --> 00:38:25,980 কারণ 122 @ 6 হয় 128; 128% 26 24 বাকি দেয় আপনি. 519 00:38:25,980 --> 00:38:29,140 কিন্তু যে সত্যিই চ মানে না. এটা স্পষ্টভাবে 102 হইনি. 520 00:38:29,140 --> 00:38:33,590 এটা এছাড়াও বর্ণমালার মধ্যে 6 চিঠি না. 521 00:38:33,590 --> 00:38:41,550 তাই অবশ্যই, আমরা এই অল্প tweaking কিছু উপায় আছে প্রয়োজন. 522 00:38:42,970 --> 00:38:51,340 নিয়মিত বর্ণমালার ভাষায়, আমরা জানি যে, z-হয় 26th চিঠি এবং চ হয় 6. 523 00:38:51,340 --> 00:38:55,460 কিন্তু আমরা কম্পিউটার বিজ্ঞান মধ্যে করছি, যাতে আমরা সূচক যাও 0 চলুন. 524 00:38:55,460 --> 00:39:00,690 আমি তখন পরিবর্তে z-26 নম্বর হচ্ছে, আমরা এর সংখ্যা 25 বলে যাচ্ছেন 525 00:39:00,690 --> 00:39:02,630 একটি কারণ হল 0. 526 00:39:02,630 --> 00:39:04,770 তাই এখন আসুন এই সূত্র প্রযোজ্য. 527 00:39:04,770 --> 00:39:11,710 আমাদের সাথে আছে 25 + z-6 এর প্রতিনিধিত্ব, যা দেয় 31 আপনি. 528 00:39:11,710 --> 00:39:15,790 এবং 31 26 mod দেয় একটি অবশিষ্টাংশ হিসাবে আপনি 5. 529 00:39:15,790 --> 00:39:20,500 এটা একেবারে ঠিক না কারণ আমরা জানি যে চ হয় বর্ণমালার মধ্যে 5 ম চিঠি. 530 00:39:20,500 --> 00:39:26,400 কিন্তু এটা, ডান চ না? এটা এখনও 102 নয়. 531 00:39:26,400 --> 00:39:32,730 আমি তখন এই pset জন্য একটি চ্যালেঞ্জ সম্পর্কে জানতে চেষ্টা করা হবে 532 00:39:32,730 --> 00:39:36,910 মধ্যে এই ASCII মান এবং বর্ণানুক্রমিক সূচী মধ্যে রূপান্তরিত করা. 533 00:39:36,910 --> 00:39:40,280 মূলত, আপনি কি করতে চাইবেন, আপনি ASCII মান সঙ্গে শুরু করতে চান, 534 00:39:40,280 --> 00:39:45,390 কিন্তু তাহলে একরকম একটি বর্ণানুক্রমিক সূচী মধ্যে যে অনুবাদ করতে চান 535 00:39:45,390 --> 00:39:52,610 তারপর কি চিঠি তা নিরূপণ - মূলত, কি তার বর্ণানুক্রমিক সূচী হয় 536 00:39:52,610 --> 00:39:57,660 গোল্লা চরিত্র - তারপর যে ফিরে যাও ASCII মান অনুবাদ. 537 00:39:57,660 --> 00:40:04,870 তাই আপনি যদি আপনার ASCII টেবিল পিটান আউট করে, এবং চেষ্টা মধ্যে সম্পর্ক খুঁজে, বলে, 102 এবং 5 538 00:40:04,870 --> 00:40:10,440 অথবা 122 এবং 25. 539 00:40:12,140 --> 00:40:15,690 আমরা কমান্ড লাইন আর্গুমেন্ট থেকে আমাদের অর্জিত কী, আমরা প্লেইন অর্জিত করেছি, 540 00:40:15,690 --> 00:40:17,520 আমরা তা করেছি enciphered. 541 00:40:17,520 --> 00:40:19,820 এখন আমরা সব কাজ বাকি আছে এটা মুদ্রণ. 542 00:40:19,820 --> 00:40:22,040 আমরা বিভিন্ন উপায়ে একটি দম্পতি এই যেত না. 543 00:40:22,040 --> 00:40:24,570 আমরা কি করতে পারে প্রকৃতপক্ষে হিসাবে আমরা বরাবর যেতে মুদ্রণ. 544 00:40:24,570 --> 00:40:28,250 হিসাবে আমরা স্ট্রিং মধ্যে পুনরুক্তি অক্ষর উপর, 545 00:40:28,250 --> 00:40:31,660 আমরা শুধু শুধু সঠিক মুদ্রণ তারপর যখন আমরা গণনা করতে পারে নি. 546 00:40:31,660 --> 00:40:36,030 অন্যথা, আপনি স্বয়ং একটি অ্যারের মধ্যে এটি সংরক্ষণ করতে পারে এবং অক্ষরের একটি অ্যারে আছে 547 00:40:36,030 --> 00:40:39,280 এবং যে সমগ্র অ্যারের ওভার শেষে এবং বারবার তা প্রিন্ট আউট. 548 00:40:39,280 --> 00:40:40,980 সুতরাং আপনি যে জন্য বিকল্প একটি দম্পতি আছে. 549 00:40:40,980 --> 00:40:47,280 এবং মনে রাখবেন, যে% গ একটি অক্ষর মুদ্রণ জন্য প্লেসহোল্ডার হবে. 550 00:40:47,280 --> 00:40:50,420 তাই সেখানে আমরা সিজার আছে, এবং এখন আমরা Vigenere যান, 551 00:40:50,420 --> 00:40:57,580 যা সিজার অনুরূপ কিন্তু শুধুমাত্র সামান্য আরো জটিল. 552 00:40:57,580 --> 00:41:03,310 তাই মূলত সঙ্গে Vigenere আপনি একটি কীওয়ার্ড মধ্যে পার করা চলুন. 553 00:41:03,310 --> 00:41:06,510 সুতরাং পরিবর্তে একটি নম্বর, আপনি একটি স্ট্রিং আছে চলুন, 554 00:41:06,510 --> 00:41:09,200 এবং যাতে আপনার অভিব্যক্তি হিসাবে কাজ করে যাচ্ছে. 555 00:41:09,200 --> 00:41:14,440 চলিত হিসাবে তারপর, আপনি স্ট্রিং এর জন্য ব্যবহারকারী থেকে একটি প্রম্পট পেতে যাচ্ছেন 556 00:41:14,440 --> 00:41:19,050 এবং তারপর এটি সঙ্কেতাক্ষরে লিখা এবং তারপর তাদের ciphertext ফেরৎ পাঠান. 557 00:41:19,050 --> 00:41:24,650 সুতরাং আমি আগেই বলেছি, এর পরিবর্তে একটি নির্দিষ্ট সংখ্যা দ্বারা নাড়াচাড়া ছাড়া সিজার অনুরূপ,, 558 00:41:24,650 --> 00:41:30,620 নম্বর প্রকৃতপক্ষে থেকে অক্ষর অক্ষর প্রতি সময়ে পরিবর্তন করতে যাচ্ছেন. 559 00:41:30,620 --> 00:41:34,890 যে প্রকৃত সংখ্যা যাও নামান প্রতিনিধিত্ব করেন, এটি কীবোর্ড অক্ষর দ্বারা প্রতিনিধিত্ব করে. 560 00:41:34,890 --> 00:41:43,150 তাই আপনি যদি একটি একটি উদাহরণস্বরূপ স্থানান্তর, এ লিখুন, তারপর, যে 0 এর স্থানান্তরন মিলা চাই. 561 00:41:43,150 --> 00:41:45,900 সুতরাং এর আবার ফিরে বর্ণানুক্রমিক সূচী যাও. 562 00:41:45,900 --> 00:41:49,100 যদি আপনি যে আমরা আসলে ASCII মান সঙ্গে লেনদেন করছেন দেখেন কি সহায়ক হতে পারে 563 00:41:49,100 --> 00:41:51,790 সেইসাথে অক্ষর, যেমন বর্ণানুক্রমিক সূচী, 564 00:41:51,790 --> 00:41:58,020 হয়তো বা আপনার নিজস্ব ASCII টেবিল 0 বর্ণানুক্রমিক 25 মাধ্যমে সূচক দেখায় না, 565 00:41:58,020 --> 00:42:03,750 যাতে একটি z-র মাধ্যমে, এবং ASCII মান আপনার সম্পর্কে কোন ধরনের দেখতে পারেন 566 00:42:03,750 --> 00:42:07,020 এবং আউট স্কেচ এবং চেষ্টা এবং কিছু নিদর্শন খুঁজে পাওয়া. 567 00:42:07,020 --> 00:42:11,010 একইভাবে, আপনি যদি নির্দিষ্ট সময়ে চ ইনস্ট্যান্স দ্বারা নড়ন ছিল - 568 00:42:11,010 --> 00:42:21,110 এবং এই হয় বা ছোট হাতের অক্ষর ব্যবহার য়ের বড়হাতের অক্ষর ছোটহাতের চ - তারপর যে 5 মিলা চাই. 569 00:42:21,110 --> 00:42:24,180 আমরা ভাল এতদূর? 570 00:42:25,770 --> 00:42:30,050 Vigenere জন্য একটি সূত্র কিছুটা আলাদা. 571 00:42:30,050 --> 00:42:32,960 মূলত, আপনি দেখতে যে এটা সিজার মত, 572 00:42:32,960 --> 00:42:37,390 পরিবর্তে শুধুমাত্র ট ছাড়া আমরা ঞ ট সূচক আছে. 573 00:42:37,390 --> 00:42:44,810 উল্লেখ্য, কারণ আমরা মূলত ব্যবহার আমি করছি না, অভিব্যক্তি দৈর্ঘ্যের 574 00:42:44,810 --> 00:42:49,850 আমাদের ciphertext দৈর্ঘ্যের অগত্যা না. 575 00:42:49,850 --> 00:42:56,130 এই একটু পরিষ্কার যখন আমরা একটি উদাহরণ যে আমি একটি বিট আছে পরে দেখতে হবে. 576 00:42:56,130 --> 00:43:03,160 মূলত, যদি আপনি ohai একটি অভিব্যক্তি সঙ্গে আপনার প্রোগ্রাম চালানো, 577 00:43:03,160 --> 00:43:08,560 তারপর তার মানে যে প্রতিটি সময়, ohai আপনার স্থানান্তর করা হচ্ছে. 578 00:43:08,560 --> 00:43:11,060 সুতরাং এটা নির্ভর কি অবস্থা আপনার অভিব্যক্তি আছে, 579 00:43:11,060 --> 00:43:15,800 আপনি যে পরিমাণ দ্বারা আপনার নির্দিষ্ট ciphertext অক্ষর নামান চলুন. 580 00:43:15,800 --> 00:43:19,630 শুধু সিজার ভালো, আবার, আমরা নিশ্চিত যে আমরা জিনিস ক্যাপিটালাইজেশন বাঁচাইয়া রাখা করতে চাই 581 00:43:19,630 --> 00:43:22,900 এবং আমরা শুধু সঙ্কেতাক্ষরে লিখা চিঠি অক্ষর অথবা শূণ্যস্থান, হইনি. 582 00:43:22,900 --> 00:43:26,330 সুতরাং সিজার ফাংশন যে আপনার ব্যবহার করা হয়ে থাকতে পারে পিছনে তাকান, 583 00:43:26,330 --> 00:43:32,570 উপায় যে আপনি কিভাবে সিদ্ধান্ত জিনিষ, নামান এবং আপনার প্রোগ্রাম এখানে প্রযোজ্য. 584 00:43:32,570 --> 00:43:35,260 তাই এর এই ছকা যাক. 585 00:43:35,260 --> 00:43:39,680 আমরা একটি প্লেইন যে আমরা ব্যবহারকারীদের থেকে GetString থেকে অর্জিত করেছি আছে 586 00:43:39,680 --> 00:43:44,090 এই বলে ... CS50 হয়! 587 00:43:44,090 --> 00:43:47,090 তারপর আমরা ohai একটি অভিব্যক্তি আছে. 588 00:43:47,090 --> 00:43:50,930 প্রথম 4 টি অক্ষর সহজ হয় চমত্কার. 589 00:43:50,930 --> 00:43:55,580 আমরা জানি যে T যাও ণ দ্বারা স্থানান্তরিত করা হবে, 590 00:43:55,580 --> 00:44:01,990 তারপর জ যাও জ দ্বারা স্থানান্তরিত করা হবে, আমি একটি দ্বারা স্থানান্তরিত করা হবে. 591 00:44:01,990 --> 00:44:04,610 এখানে আপনি দেখতে পাবেন যে একটি 0 প্রতিনিধিত্ব করে, 592 00:44:04,610 --> 00:44:11,940 অতএব শেষের মান আসলে ঠিক আগের মতই আছে চিঠি. 593 00:44:11,940 --> 00:44:15,250 তারপর গুলি তোমার দ্বারা স্থানান্তরিত হয়. 594 00:44:15,250 --> 00:44:19,370 কিন্তু তারপরে আপনি এই সময়সীমার এখানে আছে. 595 00:44:19,370 --> 00:44:25,960 আমরা যে, তারপর আমরা এটির দ্বারা কিছু পরিবর্তন করবেন না সঙ্কেতাক্ষরে লিখা না চান 596 00:44:25,960 --> 00:44:31,280 এবং শুধুমাত্র সময়ের অপরিবর্তিত প্রিন্ট আউট. 597 00:44:31,280 --> 00:44:38,020 [ছাত্রদের] আমি কিভাবে জানতে পারেন যে এই দ্বারা অপসারিত হয় না বুঝতে - কোথায় আপনি কি - >> ওহ, দুঃখিত. 598 00:44:38,020 --> 00:44:41,620 এখানে উপরের যে আপনি কমান্ড লাইন আর্গুমেন্ট ohai এখানে দেখুন, 599 00:44:41,620 --> 00:44:43,740 যে অভিব্যক্তি হতে যাচ্ছে. 600 00:44:43,740 --> 00:44:49,550 তাই মূলত, আপনি অভিব্যক্তি অক্ষর উপর সাইকেল করছি. 601 00:44:49,550 --> 00:44:52,020 [ছাত্রদের] সুতরাং ণ একই নাড়াচাড়া করা হবে - 602 00:44:52,020 --> 00:44:56,260 তাই ণ একটি বর্ণমালা বিশেষ সংখ্যা অনুরূপ. 603 00:44:56,260 --> 00:44:58,400 [ছাত্রদের] ডান. কিন্তু আপনি যেখানে থাকেন CS50 অংশ পেতে থেকে? 604 00:44:58,400 --> 00:45:02,540 ওহ. যে GetString যেখানে আপনি, ভালো হন নাই "সম্পর্কে যাও সঙ্কেতাক্ষরে লিখা একটি স্ট্রিং দিন." 605 00:45:02,540 --> 00:45:07,510 [ছাত্রদের] তারা আপনাকে দ্বারা নামান যে যুক্তি দিতে যাচ্ছেন 606 00:45:07,510 --> 00:45:09,380 এবং তারপর আপনি আপনার প্রথম পংক্তি জন্য জিজ্ঞাসা করব. >> হ্যাঁ. 607 00:45:09,380 --> 00:45:12,440 সুতরাং যখন তারা প্রোগ্রাম চালানো, তারা অভিব্যক্তি অন্তর্ভুক্ত চলুন 608 00:45:12,440 --> 00:45:14,740 তাদের মধ্যে কমান্ড লাইন আর্গুমেন্ট যখন তারা এটি চালানোর জন্য. 609 00:45:14,740 --> 00:45:19,740 তারপরে আপনি যে আসলে তারা দিয়েছি 1 আপনি পরীক্ষা না এবং আরো করেছি, না কম, 610 00:45:19,740 --> 00:45:23,750 তারপর আপনি স্ট্রিং এর জন্য তাদের অনুরোধ জানানো চলুন, অর্থাৎ, "সম্পর্কে একটি স্ট্রিং দিন." 611 00:45:23,750 --> 00:45:27,630 তাই যে যেখানে এই ক্ষেত্রে তারা আপনাকে এই দিয়েছি ... CS50 হয়! 612 00:45:27,630 --> 00:45:32,090 তখন আপনি যে ব্যবহার এবং ohai এবং ব্যবহার করার জন্য বারবার চলুন. 613 00:45:32,090 --> 00:45:38,200 যে এখানে আমরা সময়সীমার এনক্রিপ্ট করার মাধ্যমে এড়ানো বিজ্ঞপ্তি, 614 00:45:38,200 --> 00:45:51,660 কিন্তু ohai, পরের এক জন্য আমাদের অবস্থানের পরিপ্রেক্ষিতে আমরা ণ ব্যবহৃত. 615 00:45:51,660 --> 00:45:54,990 এটি এই ক্ষেত্রে এর একটু কঠিন কারণ যে 4 দেখতে, 616 00:45:54,990 --> 00:45:57,710 তাই আসুন একটু অবিরত. আমার সাথে এখানে শুধু বিদ্ধ করা. 617 00:45:57,710 --> 00:46:02,960 তারপর আমরা তোমার এবং গুলি, যা ণ এবং জ দ্বারা এর পরে যথাক্রমে অনুবাদ করা আছে. 618 00:46:02,960 --> 00:46:09,370 তারপর আমরা একটা জায়গা আছে, এবং অতএব আমরা জানি যে আমরা শূণ্যস্থান সঙ্কেতাক্ষরে লিখা যাচ্ছে না. 619 00:46:09,370 --> 00:46:18,930 কিন্তু যে বিজ্ঞপ্তি পরিবর্তে এই স্পট মধ্যে যাওয়া একটি অধিকার এখানে, 620 00:46:18,930 --> 00:46:28,330 আমরা একটি দ্বারা এনক্রিপ্ট করছি - এখানে ডান - আমি আপনি যদি দেখতে পারেন যে আমি জানি না. 621 00:46:28,330 --> 00:46:33,710 সুতরাং আপনি আসলে পূর্বাহ্নে নির্ধারিত, আর না বলতে চান, ণ এখানে যায়, জ এখানে যায়, 622 00:46:33,710 --> 00:46:39,200 একটি এখানে যায়, আমি এখানে যায়, ছ, জ, একটি i, o, জ, একটি, তোমার. আপনি যে করবেন না. 623 00:46:39,200 --> 00:46:43,760 আপনি কেবল অভিব্যক্তি মধ্যে আপনার অবস্থান নামান 624 00:46:43,760 --> 00:46:51,020 যখন আপনি কি জানেন যে আপনি আসলে চলুন একটা চিঠি আসল এনক্রিপ্ট করা হবে. 625 00:46:51,020 --> 00:46:53,920 কি ধরণের জানার জন্য? 626 00:46:53,920 --> 00:46:55,800 ঠিক আছে. 627 00:46:56,490 --> 00:46:58,500 তাই কিছু কিছু অনুস্মারক. 628 00:46:58,500 --> 00:47:03,760 আপনি কি নিশ্চিত যে আপনি কেবলমাত্র আপনার অভিব্যক্তি পরবর্তী অক্ষর যাও আগাম করতে চাই 629 00:47:03,760 --> 00:47:06,390 যদি আপনার মধ্যে প্লেইন অক্ষর একটি অক্ষর. 630 00:47:06,390 --> 00:47:09,120 তাই বলে আমরা ণ করেন. 631 00:47:09,120 --> 00:47:19,310 আমরা নোটিশ পরবর্তী অক্ষর, তোমার মধ্যে প্লেইন সূচক হয়, উদাহরণস্বরূপ, এটি একটি সংখ্যা,. 632 00:47:19,310 --> 00:47:31,630 তারপর আমরা, আগাম না ঞ, আমাদের অভিব্যক্তি জন্য সূচক না হওয়া পর্যন্ত আমরা অন্য চিঠি পৌঁছানোর. 633 00:47:31,630 --> 00:47:36,230 আবার, তবে আপনাকে অভিব্যক্তি শুরুতে নিশ্চিত করুন যে আপনি wraparound করতে চাই 634 00:47:36,230 --> 00:47:37,770 যখন আপনি এটি শেষে করছি. 635 00:47:37,770 --> 00:47:42,030 আপনি যদি দেখেন এখানে আমরা তোমার এ করছি, পরের এক ণ করা আছে. 636 00:47:42,030 --> 00:47:47,690 সুতরাং আপনি আপনার অভিব্যক্তি শুরুতে হচ্ছে সক্ষম wraparound যাও কিছু উপায় খুঁজতে চান 637 00:47:47,690 --> 00:47:49,470 প্রত্যেক সময় যে আপনি শেষ পৌঁছানোর. 638 00:47:49,470 --> 00:47:55,040 তাই আবার, কি অপারেটর ধরনের হয় মোড়কে প্রায় জন্য যে ক্ষেত্রে দরকারী? 639 00:47:56,630 --> 00:47:59,840 উদাহরণ বন্ধ মতো বেড়ে চলেছে. 640 00:47:59,840 --> 00:48:03,710 [ছাত্রদের] সাইন শতাংশ. >> হ্যাঁ, সাইন শতাংশ, যা modulo. 641 00:48:03,710 --> 00:48:11,250 সুতরাং এখানে modulo উপকারে আপনি যখন আপনার ohai মধ্যে মোড়ানো সূচক উপর চান আসতে হবে. 642 00:48:11,250 --> 00:48:17,700 এবং শুধুমাত্র একটি দ্রুত ইঙ্গিত: একটি বিট বেড়ে চলেছে বন্ধ মত অভিব্যক্তি উপর মোড়কে মনে করার চেষ্টা করুন, 643 00:48:17,700 --> 00:48:23,590 যেখানে যদি গ্রুপ 3, 4 র্থ ব্যক্তি আছে, 644 00:48:23,590 --> 00:48:30,610 তাদের সংখ্যা যে তারা বলেন ছিল 4 mod 3, যা ছিল 1. 645 00:48:30,610 --> 00:48:32,880 তাই চেষ্টা করুন এবং যে উপায় মনে করে. 646 00:48:34,770 --> 00:48:42,740 সূত্র হিসাবে আপনি দেখেছি, যেখানে আপনি ci এবং তারপর পাই আছে কিন্তু তারপর Kj, 647 00:48:42,740 --> 00:48:44,700 আপনি কি নিশ্চিত যে আপনি ঐ ট্র্যাক রাখতে করতে চাই. 648 00:48:44,700 --> 00:48:47,580 আপনি এটি আমি কল করার প্রয়োজন হবে না, আপনি এটা ঞ কল করার প্রয়োজন হবে না, 649 00:48:47,580 --> 00:48:53,270 কিন্তু আপনি কি নিশ্চিত যে আপনি অবস্থান যে আপনি এর মধ্যে আপনার প্লেইন এ ট্র্যাক রাখতে করতে চাই 650 00:48:53,270 --> 00:48:55,790 পাশাপাশি অবস্থান যে আপনি আপনার অভিব্যক্তি করেন 651 00:48:55,790 --> 00:48:59,840 কারণ যারা একই হতে অগত্যা যাওয়া হয় না. 652 00:48:59,840 --> 00:49:06,400 নেই কেবল অভিব্যক্তি আছে - এটি একটি প্লেইন আপনার থেকে সম্পূর্ণ আলাদা দ্বারা হতে পারে. 653 00:49:06,400 --> 00:49:09,140 এছাড়াও, আপনার প্লেইন, সংখ্যা ও অক্ষর আছে, 654 00:49:09,140 --> 00:49:14,450 তাই এটা পুরোপুরি আপ একসঙ্গে মেলে যাচ্ছে না. হ্যাঁ. 655 00:49:14,450 --> 00:49:19,280 [ছাত্রদের] কোন ফাংশন ক্ষেত্রে পরিবর্তন? 656 00:49:19,280 --> 00:49:24,530 একটি মূলধন আপনাকে পরিবর্তন করতে পারেন? >> হ্যাঁ, অবশ্যই আছে. 657 00:49:24,530 --> 00:49:27,890 আপনি চেক করতে পারেন - এটা আমি এর toupper, 1 শব্দ সব বিশ্বাস করি. 658 00:49:30,650 --> 00:49:36,310 কিন্তু আপনি যখন জিনিষ এবং সাইফার পাঠ্য সংরক্ষণ করে রাখার চেষ্টা করছেন, 659 00:49:36,310 --> 00:49:39,350 এটি সেরা মূলত পৃথক মামলা আছে. 660 00:49:39,350 --> 00:49:42,040 যদি এটি একটি য়ের বড়হাতের অক্ষর ছোটহাতের, তাহলে আপনি এই দ্বারা নামান চান 661 00:49:42,040 --> 00:49:46,460 কারণ আপনার সূত্র, যখন আপনি ফিরে তাকান কিভাবে আমরা আছে যেতে ধরনের 662 00:49:46,460 --> 00:49:50,900 অদলবদল করে এর মধ্যেকার বিভিন্ন প্রতিনিধিত্বমূলক ASCII উপায় 663 00:49:50,900 --> 00:49:55,020 এবং প্রকৃত বর্ণানুক্রমিক সূচী, আমরা নিশ্চিত করতে চাই 664 00:49:55,020 --> 00:50:01,850 going to প্যাটার্ন কিছু যে আপনি ব্যবহার করতে যাচ্ছেন করা আছে এর. 665 00:50:01,850 --> 00:50:04,580 প্যাটার্ন আরেকটা নোট, আসলে. 666 00:50:04,580 --> 00:50:07,250 আপনি স্পষ্টভাবে সংখ্যার সাথে ডিল করা চলুন. 667 00:50:07,250 --> 00:50:11,280 ম্যাজিক সংখ্যা ব্যবহার করার চেষ্টা করুন, যা শৈলী একটি উদাহরণ. 668 00:50:11,280 --> 00:50:18,470 তাই বলে আপনার প্রতি দ্বারা পছন্দ সময় স্থানান্তর কিছু করতে চান - 669 00:50:18,470 --> 00:50:22,400 ঠিক আছে, তাই ইঙ্গিতটি, অন্য ভক্ষক হয় যখন আপনি কিছু নাড়াচাড়া করা চলুন 670 00:50:22,400 --> 00:50:26,310 একটি নির্দিষ্ট পরিমাণ দ্বারা, একটি প্রকৃত সংখ্যা দ্বারা যে হইনি উপস্থাপিত চেষ্টা 671 00:50:26,310 --> 00:50:32,810 বরং এবং চেষ্টা করুন যদি আপনি ASCII মান, যা আরো ইন্দ্রিয় ধরনের করতে হবে ব্যবহার করতে পারেন. 672 00:50:32,810 --> 00:50:35,470 অন্য একটি নোট: যেহেতু আমরা সূত্রে সঙ্গে আচরণ করছেন, 673 00:50:35,470 --> 00:50:41,200 যদিও আপনার TF ধরনের কি করা প্যাটার্ন আপনি ব্যবহার হতে পারে, 674 00:50:41,200 --> 00:50:44,430 আপনার মতামত ধরনের মধ্যে সেরা যুক্তিবিজ্ঞান, ব্যাখ্যা চাই, 675 00:50:44,430 --> 00:50:51,880 "কারণ আমি এই প্যাটার্ন ব্যবহার করছি ..." এবং ধরনের প্যাটার্ন ব্যাখ্যা succinctly আপনার মন্তব্য. 676 00:50:54,090 --> 00:50:58,990 [এই ছিল walkthrough 2] যদি হয় অন্য কোন প্রশ্ন নেই তারপর, আমি একটু বিট জন্য শুধু এখানে থাকবো. 677 00:50:58,990 --> 00:51:04,370 ক্রিপ্টো ও আসার জন্য ধন্যবাদ: আপনার pset 2 সাথে সৌভাগ্য কামনা করছি. 678 00:51:06,070 --> 00:51:08,620 [ছাত্রদের] ধন্যবাদ. >> ধন্যবাদ. 679 00:51:09,220 --> 00:51:10,800 [মিডিয়া অফলাইন ইন্ট্রো]