[Powered by Google Translate] [Walkthrough - সমস্যা সেট 2]
[Zamyla Chan - হার্ভার্ড বিশ্ববিদ্যালয়]
[এটি CS50. CS50.TV]
ঠিক আছে. হ্যালো, প্রত্যেককে, Walkthrough 2 যাও এবং স্বাগত জানাই.
প্রথমত, আমি pset 1 ধ্বংস করার জন্য আপনাকে অভিনন্দন জানাচ্ছি চান.
আমি জানি যে আপনি কিছু জন্য আরেকটু শক্ত হয়ে থাকতে পারে,
হয়েছে আপনার প্রথম কম্পিউটার প্রোগ্রাম যা আপনি লিখেছেন থাকতে পারে,
কিন্তু শুধু এই শেষে যে, মনে রাখবেন যখন আপনি সেমেস্ত্র শেষে পিছনে তাকান,
আপনি pset 1 এ এবং আপনাকে বলবে "আরে, আমি কাজ করতে পারে যা 5 মিনিট." করব সন্ধান করব
তাই এবং জানি যে এই শেষে আপনি স্পষ্টভাবে pset 1 বেশ সহজ পাবেন বিশ্বাস.
কিন্তু এটি এখন জন্য একটা বিশাল সংসাধন, এবং কাজ শুরু করার জন্য অভিনন্দন.
এখন এছাড়াও, একটি দ্রুত নোট আগে আমরা walkthrough মাংস ভাগ পেতে.
আমি একটি দ্রুত নোট করতে চাই যে কখনও কখনও আমি যথেষ্ট সময় থাকবে না
এগিয়ে যান সময় প্রত্যেক সমস্যা সেট করার উপায় একক মাধ্যমে যেতে
এবং শুধু বাস্তবায়নের পরিবর্তে 1 বা 2 ধরনের উপর হয়তো ফোকাস,
উপায় যে আপনি এই কাজ করতে পারে.
কিন্তু যে যে আপনি সেটা অন্য কোনো উপায় থেকে নিষিদ্ধ করা হয় বলে মনে হয় না.
প্রায়ই পর্যন্ত সঙ্গে কম্পিউটার বিজ্ঞান হিসাবে,, জিনিসগুলি এর অনেক উপায় আছে,
এবং স্পষ্টভাবে তা সমাধানের বিভিন্ন টাইপ তুলনায় আমি উপস্থিত থাকতে পারে ব্যবহার করতে দ্বিধা বোধ করবেন না.
[2 pset: ক্রিপ্টো - Zamyla Chan - zamyla@cs50.net]
[Pset2 - 0. প্রশ্ন একটি অনুচ্ছেদ - 1. সিজার - 2. Vigenere]
ঠিক আছে. সুতরাং সমস্যা 2 সেট: ক্রিপ্টো একটি মজাদার এক.
প্রতি pset সঙ্গে আবার, আপনি প্রশ্নগুলির একটি অধ্যায় সাথে শুরু করব
যে আপনার বিভাগে আপনার নির্ধারিত শিক্ষণ সহকর্মী পরিচালিত করা হচ্ছে.
আমরা এইসব মাধ্যমে walkthrough উপর যেতে যাচ্ছে না,
কিন্তু তারা স্পষ্টভাবে আপনি pset সম্পূর্ণ করতে সাহায্য করবে.
সুতরাং সমস্যা সেটের প্রথম ভাগে সিজার.
সিজার তাই কেউ একটি পূর্ণসংখ্যা সঙ্গে কি আপনি পাস হবে,
এবং আপনার লেখার একটা স্ট্রিং যে তারা আপনাকে প্রদান হওয়া তথ্য এনক্রিপ্ট করা
এবং তাদেরকে ফেরত আনতে আপনাকে একটি এনক্রিপ্ট জিনিস.
যদি কেউ একটি ক্রিসমাস গল্প দেখেছেন, যে সেখানে একটি উদাহরণ আছে.
তারপর সমস্যা সেট দ্বিতীয় ভাগে Vigenere,
যা আরো উন্নত এনক্রিপশন টেকনিক.
এবং আমরা টেক্সট এক টুকরা সঙ্কেতাক্ষরে লিখা চলুন,
পরিবর্তে শুধুমাত্র একটি পূর্ণসংখ্যা ছাড়া, আসলে আমরা একে সঙ্কেতাক্ষরে লিখা করছি যাচ্ছে
সঙ্গে একটি অভিব্যক্তি যে ব্যবহারকারী আমাদের দেওয়া হবে.
ঠিক আছে, তাই টুলবাক্স আজকের প্রথম হাতিয়ার আসলে যাওয়া হয় প্রয়োগ আপডেট করা হবে.
আলোচনা বোর্ডে আমরা জিনিস মত দেখতে, "কেন কাজ করে না?" হবে
"কেন? জমা আছে 50 কাজ করে না"
এবং প্রায়ই সমাধান আসলে শুধুমাত্র আপনার প্রয়োগ আপডেট.
এবং তাই আপনি যদি শুধুমাত্র একটি যন্ত্র আপনার উবুন্টু জন্য yum-y মধ্যে টার্মিনাল উইন্ডোতে চালাতে -
যে একটি পতাকা বলছে হ্যাঁ, সবকিছু আপডেট - আপডেট,
তারপর আপনার যন্ত্র যদি প্রয়োজন হতে আপডেট করতে হবে.
এবং এটি যদি আপনি ইতিমধ্যে প্রয়োগ সাম্প্রতিকতম সংস্করণ আছে আঘাত না.
তারপর এটা বলতে কোন নতুন আপডেট উপলব্ধ হবে এবং আপনি কাজ বরাবর অবিরত করতে হবে.
কিন্তু এটা প্রতিটি সময় যে আপনি প্রয়োগ খুলুন এমনকি চালানো ভাল
কারণ আমরা এখনও খুব -
সরঞ্জামের মধ্যে এটি নির্ধারণ - কখনও যদি আমরা একটি বাগ সংশোধন করা হয়ে উঠা.
তাই নিশ্চিত করুন যে আপনি প্রয়োগ সাম্প্রতিকতম সংস্করণ আছে
এবং চালানোর যে সেখানে আপডেট.
ঠিক আছে. সুতরাং যেহেতু আমরা চিঠি দিয়ে এবং আচরণ পরিবর্তন, করছি জিনিষ enciphering,
আমরা সত্যিই আমাদের ASCII লেখচিত্রের সঙ্গে ভাল বন্ধু হওয়ার চান চলুন.
অনলাইন আছে অনেক বেশী, আপনি যদি পান. হয়তো আপনার নিজের এমনকি.
মূলত, প্রতি অক্ষর এবং সংখ্যা প্রতি এবং প্রত্যেক অক্ষর
একটি নম্বর এর সাথে জড়িত আছে,
এবং তাই এর প্রকৃত চিঠি পাশাপাশি তাদের ASCII মান দেখতে ভাল.
যে স্পষ্টভাবে সমস্যা সেটে আপনাকে সাহায্য করবে.
একটা জিনিষ যে সত্যিই এই সমস্যা সেটে সম্পর্কে সাহায্য প্রকৃতপক্ষে এটি মুদ্রণ ছিল,
এবং হিসাবে আমি মাধ্যমে চালু ছিল, আসলে আমি আঁকা হবে,
, লিখুন "যদি এই সেখানে যেতে থাকে তাহলে, ..."
এটা কোন ধরনের এবং আঁকা এটি বাড়ান, আপনার ASCII টেবিলের সাথে ভাল বন্ধু হওয়ার.
তারপর আমরা আমাদের নিষ্পত্তি কয়েক অন্যান্য সরঞ্জাম আছে.
এই সময় পরিবর্তে প্রকৃতপক্ষে তাদের ইনপুট সব জন্য হলে ব্যবহারকারীকে
আমরা একটি সমন্বয় করতে যাচ্ছেন.
আমরা কিছু ইনপুট জন্য তাদের অনুরোধ জানানো চলুন,
কিন্তু আমরা শুধু কমান্ড লাইন আর্গুমেন্ট ব্যবহার করছি না.
সুতরাং যখন তারা তাদের প্রোগ্রাম চালানো সাধারণত, আপনি বলুন. / হ্যালো, উদাহরণস্বরূপ,
যদি আপনার প্রোগ্রাম ছিল hello.c.
কিন্তু এই সময় পরিবর্তে শুধুমাত্র বলছে যে, তারা শব্দ, আর্গুমেন্ট পরে লাগাতে পারেন.
এবং আমরা ব্যবহার যাচ্ছে যাই হোক না কেন তারা আমাদের তাদের মধ্যে পাস ইনপুট হিসাবে হিসাবে ভাল করছেন,
পূর্ণসংখ্যা জন্য শুধু প্ররোচনা বহুদূরে তাই চলন্ত কিন্তু কমান্ড লাইন আর্গুমেন্ট ব্যবহার করে.
এবং তারপর আমরা অ্যারে এবং স্ট্রিং, যা আমরা অনেক ভাল হিসাবে ব্যবহার করা হবে ঢোকা করব.
এখানে মাত্র 1 মিনি ASCII চার্ট একটি উদাহরণ.
আমি যেমন বলেছি, প্রতি অক্ষর সংখ্যা একটি অনুরূপ,
এবং যাতে সঙ্গে পরিচিত হন. এটা কাজে লেগে যাবে.
এবং পরে যখন আমরা কিছু শুরু ASCIIMath সংখ্যার সঙ্গে আচরণ করছে -
যোগ, তাদের subtracting - তারপর স্পষ্টভাবে এই চার্ট জন্য ভাল.
তাই এখানে একটি সিজার সাইফার একটি উদাহরণ - কিছু যে আপনার সঙ্গে থাকতে পারেন খেলেছে.
এটা শুধুমাত্র একটা চাকা. মূলত, একটি বাইরের বর্ণমালা আছে এবং তারপর একটি অভ্যন্তরীণ বর্ণমালা আছে.
সুতরাং এখানে ডান হয় সিজার সাইফার, কিন্তু সঙ্গে 0 কী একটি উদাহরণ.
মূলত, একটি একটি সঙ্গে সংযুক্ত করা হয়, বি বি সাথে সংযুক্ত করা হয়, সমস্ত আপ জেড উপায়
কিন্তু তারপর আমরা বলতে চেয়েছিলেন উদাহরণস্বরূপ 3 কী,.
তারপর আমরা ভেতরের চাকা ঘোরাতে যাতে একটি এখন ডি, ইত্যাদি দিয়ে সাজায় হবে
তাই এই মূলত এটা কি আমরা করতে যাচ্ছেন.
আমরা, আছে একটি চাকা না কিন্তু আমরা কি করতে যাচ্ছেন আমাদের প্রোগ্রাম হয়েছে
যে ধরনের সঙ্গে আমাদের বরাবর একটি নির্দিষ্ট সংখ্যার পরিমাণ বর্ণমালা নামান.
সুতরাং হিসাবে আমি আগে বলেন, আমরা কমান্ড লাইন আর্গুমেন্ট সাথে ডিল করা চলুন
পাশাপাশি একটি পূর্ণসংখ্যা হিসাবে পেয়ে.
তাই উপায় যে একজন ব্যবহারকারী আপনার সিজার প্রোগ্রাম চালানো হবে বলে মনে হয়. / রোমান সম্রাটদের পদবী
এবং তারপর যা পরে একটি নম্বর লিখে.
এবং যে কী নম্বর, স্থানান্তর প্রতিনিধিত্ব করে,
কতবার আপনার সিজার সাইফার ভেতরের চাকা আবর্তিত করা চলুন.
এবং যাতে আপনি দেখতে এখানে একটি উদাহরণ.
যদি আমরা আমাদের সিজার সাইফার একটি যাও এল থেকে চিঠি প্রবেশ করানো,
তাহলে হে মাধ্যমে ডি ইনপুট কারণ যে প্রতি চিঠি 3 বার উপর স্থানান্তরিত করা হবে,
ঠিক মত চাকা যে আমি আপনাকে দেখিয়েছি উদাহরণ.
উদাহরণস্বরূপ, তখন যদি আপনার লেখা,, এটি CS50!
তারপর এটি অক্ষর সব সরাতে হবে.
এবং যে একটি উভয় সিজার এবং Vigenere গুরুত্বপূর্ণ বিষয়
যে কোনো অ অক্ষর থামিয়া উপর চলুন.
সুতরাং কোনো শূণ্যস্থান, অক্ষর, ইত্যাদি, সংখ্যা, আমরা তাদের একই রাখা চলুন.
আমরা শুধুমাত্র সেটি এই ক্ষেত্রে অক্ষর নামান যাচ্ছে.
সুতরাং হিসাবে আপনি চাকা দেখতে পাচ্ছেন, আমরা কেবল অক্ষর উপলব্ধ আমাদের আছে,
তাই আমরা শুধুমাত্র চিঠি এবং নামান অক্ষর এনক্রিপ্ট করতে চান.
প্রথম জিনিস না, তাই আপনি দেখেছি যে সিজার জন্য সমস্যা ব্যবহার 2 সেট
যাও সিজার এবং তারপর চালানোর একটি সংখ্যা লিখুন যখন আপনি টার্মিনালে এটি চালানো হয়.
তাই আমরা যা করার মতলব যে কি এবং এটি অ্যাক্সেস পেতে হয়.
এবং আমরা একরকম এটি দ্বিতীয় কমান্ড লাইন আর্গুমেন্ট হতে যাচ্ছে তা দেখতে চান.
প্রথম এক যাও. / রোমান সম্রাটদের পদবী হবে, এবং পরবর্তী এক নম্বর কী হতে যাচ্ছে.
তাই আগে আমরা int প্রধান (অকার্যকর) আমাদের সি প্রোগ্রাম আরম্ভ করে.
আমরা ফিরে ছুলা একটি অল্প স্তর যাও চলুন
এবং আসলে দেখে যে পরিবর্তে আমাদের প্রধান ফাংশন অকার্যকর কথা প্রসঙ্গে
আমরা 2 পরামিতিসহ আসলে আচরণ করছেন.
আমরা কোন int নামে argc আছে এবং তারপর স্ট্রিং একটি অ্যারে বলা argv.
সুতরাং argc একটি পূর্ণসংখ্যা,
এবং এটি আপনার প্রোগ্রামের পাস আর্গুমেন্টের সংখ্যা উপস্থাপন করে.
এবং তারপর argv আসলে পাস আর্গুমেন্ট তালিকা.
আর্গুমেন্ট হল সমস্ত স্ট্রিং, এবং তাই argv প্রতিনিধিত্ব করে একটি অ্যারের, স্ট্রিং একটি তালিকা.
চলুন অ্যারে একটি সামান্য বিট সম্পর্কে কথা বলুন.
অ্যারেগুলির হয় মূলত একটি নতুন ডাটা স্ট্রাকচার.
আমরা ints আছে, আমরা দ্বিগুণ, আমরা স্ট্রিং আছে, এবং এখন আমরা অ্যারে আছে.
অ্যারেগুলির হয় ডাটা স্ট্রাকচার একই ধরণের একাধিক মান ধরে রাখতে পারেন,
তাই মূলত:, যাই হোক না কেন আপনি টাইপ করতে চান তা একটি তালিকা.
মূলত, যদি আপনি সব 1 পরিবর্তনশীল মধ্যে পূর্ণসংখ্যার একটি তালিকা চেয়েছে,
তারপর আপনি একটি নতুন পরিবর্তনশীল টাইপ int-অ্যারের যে ছিল তৈরি করবে.
সুতরাং অ্যারে হয় শূন্য সূচিবদ্ধ, অর্থাত যে অ্যারের প্রথম উপাদান ইনডেক্স 0 এ.
যদি অ্যারের মধ্যে এই উদাহরণ হিসাবে দৈর্ঘ্য 4, হয় তাহলে, আপনার সর্বশেষ উপাদান সূচক 3 হতে চাই,
যা 4 - 1.
সুতরাং অ্যারে নির্মাণ, আপনি ভালো কিছু করতে চাই.
বলুন আপনি একটা ডাবল অ্যারে চেয়েছিলেন.
এই ধরনের কোনো তথ্য টাইপ জন্য যায় যদিও,.
তাই বলে আপনি একটা ডাবল অ্যারে চান. বলুন আপনি এটি ডাকবাক্স কল করতে চান.
আপনি যেমন অন্য কোন ডবল আরম্ভ করবে,
আপনার নাম ডবল এবং তারপর বলে, কিন্তু এই সময় আমরা বর্গাকার বন্ধনী করা হবে,
এবং তারপর সংখ্যা হবে অ্যারের দ্বারা থাকবে.
যে অ্যারে কখনো আমরা দ্বারা পরিবর্তন করতে পারবেন না উল্লেখ্য,
তাই আপনি সর্বদাই এবং সংজ্ঞায়িত কতগুলি বাক্সে চয়ন আছে,
কত মান আপনার অ্যারের রাখা যাচ্ছে না.
সুতরাং আপনার অ্যারের মধ্যে বিভিন্ন মান নির্ধারণ করেন, তাহলে আপনি এই নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে যাচ্ছেন,
হিসাবে আপনি স্লাইডে দেখুন.
আপনি আছে ডাকবাক্স 0 সূচক 1.2 যাও সেট হবে,
ডাকবাক্স 2.4 সূচক 1 সেট, ইত্যাদি
তাই এখন যে আমরা একটি বিট অ্যারে পর্যালোচনা করেছি, যাক এর argc এবং argv ফিরে যান.
আমরা জানি যে argv এখন হয় স্ট্রিং একটি অ্যারে.
সুতরাং যখন একটি ব্যবহারকারী পাস - বলে একটা প্রোগ্রাম চালনা করছেন -
তারা বলে. / হ্যালো ডেভিড Malan,
ইতিমধ্যে জন্য আপনি আসলে কি argc এবং argv সাথে থাকেন না আসা পর্যন্ত কি প্রোগ্রাম করবেন.
সুতরাং আপনি যে সম্পর্কে চিন্তা করার প্রয়োজন হবে না.
এই ক্ষেত্রে Argc 3 কারণ এটি 3 স্বতন্ত্র শূণ্যস্থান দ্বারা পৃথক শব্দ সম্পর্কে সূচিত করা হবে.
এবং তারপর, তাই এই ইনস্ট্যান্স অ্যারের, প্রথম সূচক. / হ্যালো হতে চাই,
পরের এক ডেভিড, পরের এক Malan.
কেউ কি সরাসরি দেখুন কি argv মধ্যে সম্পর্ক,
অ্যারে, এবং argc হয়?
হাঁ. আমরা যে ভাগ args.c. মধ্যে একটি উদাহরণ পাবেন
চলুন আমরা যদি 2 মধ্যে সম্পর্ক সুবিধা গ্রহণ করতে পারেন.
এখানে আপনি প্রয়োগ যে পারে ডিফল্ট অ্যাপ্লিকেশন
যাও. গ ফাইল খুলুন মাঝে মাঝে Emacs.
কিন্তু আমরা gedit মোকাবেলা করতে চান, কি আপনি করতে পারেন আপনার অধিকার আপনার সি ফাইলের নামের উপর ক্লিক করতে পারেন,
প্রোপার্টি যান, এর মাধ্যমে খুলুন, এবং তারপর gedit, ডিফল্ট হিসাবে সেট করুন চয়ন,
এবং এখন আপনি gedit প্রোগ্রাম পরিবর্তে Emacs খোলা উচিত.
পারফেক্ট.
তাই এখানে আমি একটি প্রোগ্রাম যা আমি প্রতিটি কমান্ড লাইন আর্গুমেন্ট প্রিন্ট আউট করতে চান আছে.
তাই যাই হোক না কেন ব্যবহারকারী ইনপুট, আমি মূলত এটি ফেরত তাদের একটি নতুন লাইন ফেরত চাইবেন.
তাই এর একটি কাঠামোর যে আমরা কিছু পুনরুক্তি উপর ব্যবহার করতে পারেন -
কিছু যে আপনি সম্ভবত আপনার pset 1 ব্যবহৃত?
আপনি যদি একটি জিনিষ সেট নম্বর দিয়ে যেতে চান? >> লুপ জন্য [ছাত্রদের].
জন্য লুপ. ঠিক. সুতরাং যাক লুপ এর সাথে এর শুরু.
আমরা int i = 0 জন্য আছে. চলুন শুরু করা যাক শুধু একটি প্রারম্ভিক মান পরিবর্তনশীল এর সাথে শুরু হয়.
আমি একটা সেট জন্য শর্ত এবং তারপর ছেড়ে তোমার + + ', সেখানে কিছু করার যাচ্ছে বলে যাচ্ছি.
ঠিক আছে.
সুতরাং argv চিন্তা ফিরে যাও, যদি argv হয় প্রোগ্রাম আর্গুমেন্ট প্রেরণ মধ্যে তালিকা
এবং argc হয় আর্গুমেন্ট প্রোগ্রামে নম্বর,
তারপর তার মানে argc মূলত argv দৈর্ঘ্য, ডান,
কারণ যাচ্ছে argc মান হিসাবে অনেক আর্গুমেন্ট হিসাবে করা আছে.
তাই আপনি যদি আমরা argv মধ্যে বারবার প্রতিটি উপাদান বেশী চান,
আমরা প্রতিটি সময় argv দেওয়া সূচিতে পরিবর্তনশীল অ্যাক্সেস চান চলুন.
যে এই সঙ্গে, প্রতিনিধিত্ব অধিকার করা যাবে?
এখানে পরিবর্তনশীল এই ইনস্ট্যান্সের মধ্যে নির্দিষ্ট স্ট্রিং উপস্থাপন
কারণ এটি একটি স্ট্রিং অ্যারে - যে প্রদত্ত সূচিতে বিশেষ পংক্তি.
এই ক্ষেত্রে আমরা কি করে যেতে চাই, আমরা এটা মুদ্রণ করতে চান, তাই আসুন printf বলে.
এবং এখন argv একটি স্ট্রিং, তাই আমরা সেখানে যে প্লেসহোল্ডার লাগাতে চান.
আমরা এটা ভাল চেহারা করতে নতুন লাইন চান.
তাই আমরা এখানে একটি জন্য লুপ আছে. আমরা এখনও পর্যন্ত কোনো শর্ত নয়.
তাই তোমার 0 আরম্ভ, এবং তারপর প্রত্যেক সময় এটা প্রদত্ত স্ট্রিং মুদ্রণ যাচ্ছে
এ যে অ্যারের মধ্যে নির্দিষ্ট সূচক.
সুতরাং যখন আমরা যাও মুদ্রণ অ্যারের মধ্যে উপাদানগুলো থামাতে চান?
যখন আমরা সমাপ্ত করেছি, ডান? যখন আমরা অ্যারের শেষ পৌঁছেছেন.
সুতরাং আমরা অ্যারের দ্বারা অতীত অতিক্রম করতে না চান,
এবং ইতিমধ্যে আমরা জানি যে আমরা সক্রিয়ভাবে আসলে কি জানতে argv দৈর্ঘ্য করার প্রয়োজন হবে না
কারণ এটা আমাদের জন্য, দেওয়া এবং কি যে এর? Argc. ঠিক.
তাই আমরা এই বার প্রক্রিয়া argc নম্বর কাজ করতে চান.
আমি ডান ডিরেক্টরির মধ্যে নই.
ঠিক আছে.
এখন আসুন ARGS করা. কোন ত্রুটি, যা মহান.
তাই আসুন শুধু ARGS চালানো.
না কি এই আমাদের ফিরে যাচ্ছে? এটা ঠিক এর এটি ফিরিয়ে মুদ্রণ যাচ্ছে.
"আপনি এই প্রোগ্রামের ইনপুট ARGS; আমি তা দিতে আপনি ফিরে যাচ্ছি."
সুতরাং আসুন আমরা বলে যাও তারপর ARGS বলতে foo বিন্যাস বার করতে চান.
আমি তখন এটা সেটা ছাপে আমাদের পিছান. ঠিক আছে?
সুতরাং কিভাবে আপনি argc এবং argv ব্যবহার করতে পারেন একটি উদাহরণ আছে
যে argc বুদ্ধিমান argv দৈর্ঘ্যের প্রতিনিধিত্ব করে.
নিশ্চিত করুন যে আপনি কি একটি অ্যারে এক্সেস কখনও অ্যারের দৈর্ঘ্য অতিক্রম না
কারণ স্পষ্টভাবে সি আপনি এ চিত্কার করা.
আপনি কিছু নামক একটি সেগমেন্টেশন ফল্ট পাবেন,
যা হয়, মূলত বলছে আপনি কি কিছু করার চেষ্টা করছেন মজা না
যা বিদ্যমান নেই, আপনি পড়েন না.
তাই নিশ্চিত করতে, এবং বিশেষ করে শূন্য ইন্ডেক্স সঙ্গে, আমরা না করতে চান -
উদাহরণস্বরূপ যাচ্ছে, যদি আমরা দৈর্ঘ্য 4 শ্রেণীবিন্যাস আছে,
যে অ্যারের সূচক 4 কারণ আমরা 0 থেকে আরম্ভ হয় শূন্য সূচিতে, বিদ্যমান নেই.
এটা জন্য loops ভালো হয়ে দ্বিতীয় প্রকৃতি যখন আমরা 0 এ শুরু হবে.
সে যে কথা মনে রাখবেন.
আপনি কখনও একটি অ্যারের আপনার নাগালের বাইরে এর সূচী অ্যাক্সেস করতে না চান.
তাই এখন আমরা কিভাবে আমরা ধরনের এক্সেস করতে পারেন দেখতে পাবেন
কমান্ড লাইন আর্গুমেন্ট গৃহীত হয় যে ইন
কিন্তু হিসাবে আপনি স্ট্রিং দেখেছি, argv আসলে একটি স্ট্রিং অ্যারে.
সুতরাং এটি প্রকৃত এখনো, একটি পূর্ণসংখ্যা পূর্ণসংখ্যার না কিন্তু আমরা মোকাবেলা সিজার চাই.
সৌভাগ্য যে, একটি ফাংশন আমাদের জন্য তৈরি যে আসলে একটি পূর্ণসংখ্যা স্ট্রিং এর রূপান্তর করতে হয়.
এছাড়াও এখানে আমরা ব্যবহারকারীর ইনপুট সঙ্গে যেখানে আমরা তাদের অনুরোধ করছেন কারবারী না
কী জন্য এখানে ইনপুট জন্য, তাই আমরা আসলে এবং reprompt না বলতে পারে,
"ওহ, আমাকে আরেকটা পূর্ণসংখ্যা দিতে, বলে, যদি এটি কোন বৈধ নয়."
কিন্তু আমরা এখনও সঠিক ব্যবহারের জন্য পরীক্ষা করার প্রয়োজন নেই.
সিজার ইন তারা শুধুমাত্র 1 নম্বর মধ্যে পাস করতে অনুমোদিত,
এবং তাই তারা. / রোমান সম্রাটদের পদবী চালানোর পরে আছে এবং তারা আপনাকে একটি নম্বর দিতে.
সুতরাং argc একটি নির্দিষ্ট নম্বর হতে হয়েছে.
কি নম্বর যে যদি তারা আপনাকে. / রোমান সম্রাটদের পদবী এবং তারপর একটি পাস কী হবে?
Argc কি? >> [ছাত্রদের] 2. >> দুই. ঠিক.
সুতরাং আপনি নিশ্চিত যে argc 2 করতে চাই.
অন্যথায় আপনি মূলত যাও প্রোগ্রাম চালানো প্রত্যাখ্যান করা.
এটি প্রধান ইন এর একটি ফাংশন যে int প্রধান,
অতএব ভাল একটি সফল প্রোগ্রাম শেষে অনুশীলন রিটার্ন 0 সর্বদা আমরা.
তাই যদি, বলে, তারা দিতে 3 কমান্ড লাইন আর্গুমেন্ট পরিবর্তে আপনি 2
অথবা আপনাকে উদাহরণস্বরূপ 1, তারপর, আপনি যে জন্য চেক করতে চাইবেন কি কি করবেন তা
এবং তারপর 1 বলছে, না ফিরে, আমি এই প্রোগ্রামের সাথে এগিয়ে যেতে পারবেন না.
[ছাত্রদের] পর্যন্ত আপনার লেখা একটি স্থান হতে পারে না. >> সম্পর্কে ঘটায় দুঃখিত?
[ছাত্রদের] হতে টেকস্টটি আপনি এনক্রিপ্ট করার চেষ্টা করছেন তার মধ্যে একটি স্থান পর্যন্ত করতে পারে না.
আহ!
টেক্সট যে আমরা এনক্রিপ্ট করার চেষ্টা করছেন তার ভাষায়, আসলে যে আসে পরে
যখন আমরা যে টেক্সট প্রদান করা.
সুতরাং অধিকার এখন আমরা শুধু কমান্ড আর্গুমেন্ট হিসাবে গ্রহণ করছি প্রকৃত সংখ্যা,
সিজার এনক্রিপশনের জন্য প্রকৃত স্থানান্তর.
[ছাত্রদের] আপনি কেন প্রয়োজন মাত্র 1 2 argc বিপরীতে? এর স্পষ্টভাবে পর্যন্ত 1 নম্বর.
রাইট. কারণ আমরা argc জন্য 2 প্রয়োজন পরিবর্তে 1
যখন আপনি একটি প্রোগ্রাম চালাতে এবং বলতে কারণ. / রোমান সম্রাটদের পদবী অথবা. / হ্যালো,
যে আসলে একটা কমান্ড লাইন আর্গুমেন্ট হিসাবে গণ্য.
আমি তখন ইতিমধ্যে যে সময় লাগে 1 আপ এবং অতএব আমরা 1 অতিরিক্ত inputting করছি.
সুতরাং আপনি কমান্ড লাইন আর্গুমেন্ট একটি পংক্তি আসলে inputting করছি.
সিজার জন্য কি আপনি কাজ করতে চান, আমরা একটি পূর্ণসংখ্যা মোকাবেলা করতে চান,
তাই আপনার এই atoi ফাংশন ব্যবহার করতে পারেন.
এবং মূলত, আপনি এটি একটি স্ট্রিং পাস করে তাহলে আপনি ফিরে ফিরে পূর্ণসংখ্যা হবে
যদি একটি পূর্ণসংখ্যা মধ্যে স্ট্রিং করা সম্ভব.
এখন যখন আমরা যে ভালো printf বা GetString, জিনিষ সঙ্গে লেনদেন করছেন মনে রাখবেন,
আমরা যে লাইব্রেরি নির্দিষ্ট আমাদের অন্তর্ভুক্ত.
তাই শুরুতে আমরা একটি হ্যাশ ট্যাগ যা মত স্ট্যান্ডার্ড ইনপুট / আউটপুট,. জ, কিছু দিয়ে শুরু করুন.
ওয়েল, atoi যারা লাইব্রেরির মধ্যে এক হয় না,
তাই আমরা কি করতে হবে তা হচ্ছে আমরা যে লাইব্রেরি জন্য অধিকার অন্তর্ভুক্ত আছে.
সুতরাং Walkthrough 1 যেখানে আমি ম্যানুয়াল ফাংশন আলোচনা যাও প্রত্যাহার.
আপনি টার্মিনালে মানুষের টাইপ করুন এবং তারপর একটি ফাংশন নামের দ্বারা অনুসৃত.
এবং যাতে তার ব্যবহারের সম্পূর্ণ তালিকা দেখাবে আনতে হবে,
কিন্তু সেইসাথে এটি আপ যা গ্রন্থাগারের যে জন্যে আনা হবে.
তাই আমি যে আপনি atoi সঙ্গে ম্যানুয়াল ফাংশন ব্যবহার ছেড়ে দেব
এবং জিনিসটা যা গ্রন্থাগারের আপনি যাও যাও যাও atoi ফাংশন ব্যবহার করতে পারবেন না অন্তর্ভুক্ত করা প্রয়োজন.
সুতরাং আমরা কি পেয়েছেন এবং এখন এটি প্লেইন টেক্সট পেয়ে আসে,
এবং তাই আসলে যা ব্যবহারকারীর ইনপুট হবে যেখানে আপনাকে অনুরোধ জানানো যাচ্ছে.
আমরা GetInt এবং GetFloat মোকাবেলা, এবং যাতে একই শিরা মধ্যে
আমরা GetString সাথে ডিল করা চলুন.
কিন্তু এই ক্ষেত্রে আমরা কোনো চেষ্টা না করার বা না করার প্রয়োজন loops চেক যাও.
GetString স্পষ্টভাবে দিতে একটি স্ট্রিং আমাদের হবে,
এবং আমরা যাই হোক না কেন ব্যবহারকারী আমাদের দেয় এনক্রিপ্ট করতে যাচ্ছেন.
সুতরাং আপনি যে এইসব ব্যবহারকারী ইনপুট করা স্ট্রিং সমস্ত সঠিক ধারনা করতে পারি.
গ্রেট.
তাই একবার তারপর আপনি কি পেয়েছেন এবং একবার আপনি টেক্সট পেয়েছেন,
এখন কি বাকি এর হয় আপনি প্লেইন সঙ্কেতাক্ষরে লিখা আছে.
শুধু ভাষা উপর দ্রুত আবরণ, প্লেইন হল কি ব্যবহারকারী আপনাকে দেয়,
এবং ciphertext কি তাদের ফেরত.
স্ট্রিং, তাই আসলে চিঠির মাধ্যমে চিঠি যেতে সক্ষম করা
কারণ আমরা প্রতি চিঠি নামান আছে,
আমরা যে স্ট্রিং বুঝতে, যদি আমরা ফিরে স্তর ছুলা ধরনের,
আমরা দেখতে যে তারা শুধু সত্যিই অক্ষরের একটি তালিকা.
অন্য পরে আসে.
এবং তাই আমরা অ্যারে হিসাবে স্ট্রিং আচরণ কারণ তাদের অক্ষরের অ্যারে পারেন.
তাই বলে আপনি একটি স্ট্রিং নামে লেখা আছে,
এবং যে পরিবর্তনশীল টেক্সট মধ্যে এটি CS50 সংরক্ষিত হয়.
তারপর ইনডেক্স 0 টেক্সট একটি মূলধন T হবে, সূচক 1 জ, ইত্যাদি হতে পারে
এবং তারপরে সঙ্গে অ্যারে, এ args.c মধ্যে argc উদাহরণস্বরূপ,
আমরা দেখেছি যে আমরা একটি অ্যারের পুনরুক্তি করা ছিল
এবং তাই আমরা তোমার থেকে = 0 পর্যন্ত বারবার করা হয় যতক্ষণ না তোমার দ্বারা তুলনায় কম ছিল.
সুতরাং আমরা figuring কি আমাদের স্ট্রিং দৈর্ঘ্য কিছু উপায় প্রয়োজন
আমরা যদি এটা উপর বারবার যাও চলুন.
ভাগ্যক্রমে আবার, যদিও পরে CS50 হয় সেখানে আমাদের জন্য একটি ফাংশন আছে,
আপনি স্পষ্টভাবে করা এবং বাস্তবায়ন আপনার নিজস্ব ফাংশন করতে পারবেন
যে একটি স্ট্রিং এর দৈর্ঘ্য নিরূপণ করতে পারেন.
কিন্তু এখন জন্য আমরা স্ট্রিং দ্বারা, তাই strlen ব্যবহার চলুন.
আপনি একটি স্ট্রিং পাস, এবং তারপর এটি কোন int যে আপনার স্ট্রিং এর দৈর্ঘ্য উপস্থাপন প্রত্যাবর্তন করতে হবে.
যাক কিভাবে আমরা স্ট্রিং এর মধ্যে বারবার প্রতিটি অক্ষর উপর সক্ষম হতে পারে একটি উদাহরণ তাকান
এবং সেই সাথে কিছু একটা করুন.
আমরা কি করে যেতে চাই হয় স্ট্রিং প্রতিটি অক্ষর পুনরুক্তি উপর,
আমরা কি করতে হয় আমরা 1 দ্বারা মুদ্রণ প্রতিটি অক্ষর 1 ফিরে
আমরা এটা ছাড়া কিছু পরের যোগ করুন.
সুতরাং যাক লুপ এর সাথে এর শুরু. Int i = 0.
আমরা অবস্থার জন্য স্থান ছেড়ে যাচ্ছেন.
আমরা বারবার করতে চান না হওয়া পর্যন্ত আমরা স্ট্রিং এর শেষে পৌঁছানোর, ডান?
আমি তখন কি ফাংশন দেয় স্ট্রিং এর দৈর্ঘ্য আমাদের?
[শ্রবণাতীত ছাত্র প্রতিক্রিয়া]
যে কমান্ড লাইন আর্গুমেন্ট দ্বারা.
কিন্তু আমরা একটি ফাংশন যে দেয় string এর দ্বারা আমাদের জন্য একটি পংক্তি ব্যবহার করতে চান.
যাতে স্ট্রিং এর দৈর্ঘ্য.
এবং তারপর, তাই আপনি এটা স্ট্রিং এর মধ্যে পাস করতে হবে.
এটা কি স্ট্রিং এটি দৈর্ঘ্যের নিরূপণ করা প্রয়োজন প্রয়োজন.
এই ক্ষেত্রে তারপর সুতরাং আমরা স্ট্রিং গুলি সঙ্গে লেনদেন করছেন.
গ্রেট.
আমি তখন কি আমরা যেতে চাই, এর printf যাক.
এখন, আমরা অক্ষরের সাথে মোকাবিলা করতে চান. আমরা প্রতিটি অক্ষর প্রিন্ট আউট করতে চান.
যখন এটি একটি float প্রিন্ট আউট করতে চান, আপনি% চ প্লেসহোল্ডার ভালো ব্যবহার করবে.
কোন int সঙ্গে আপনি% d ব্যবহার করেন.
এবং একটি অক্ষর দিয়ে তাই একভাবে, আপনি আমাকে একটা অক্ষর মুদ্রণ করা যাচ্ছে না বলে% গ ব্যবহার
যে একটি পরিবর্তনশীল ভিতরে সঞ্চিত.
সুতরাং আমরা এই আছে, এবং এর একটি এটি সেই সময়ের এবং একটি স্থান যোগ করা যাক.
কোন অক্ষর আমরা ব্যবহার করছেন?
আমরা যাহা অক্ষর ব্যবহার করা হবে আমরা এই পংক্তি এ করছি চলুন.
তখন আমরা স্ট্রিং সঙ্গে কিছু ব্যবহার করা যাচ্ছেন,
কিন্তু আমরা চাই সেখানে নির্দিষ্ট অক্ষর অ্যাক্সেস করা হবে.
তাই আপনি যদি একটি স্ট্রিং শুধুমাত্র একটি অ্যারের তারপর, কিভাবে আমরা অ্যারে উপাদান অ্যাকসেস?
আমরা যারা বর্গাকার বন্ধনী আছে, এবং তারপর আমরা সেখানে সূচক করা.
সুতরাং আমরা বর্গাকার বন্ধনী আছে. এই ক্ষেত্রে আমাদের সূচক আমরা শুধু আমি ব্যবহার করতে পারেন. ঠিক.
তাই আমরা এখানে আমরা একটি অক্ষর একটি বিন্দু এবং একটি স্থান অনুসরণ মুদ্রণ করা চলুন বলছে,
এবং যে চরিত্র আমাদের স্ট্রিং গুলি মধ্যে ith চিঠি হবে.
আমি শুধু যে সংরক্ষণ করতে যাচ্ছে. ঠিক আছে.
এখন আমি স্ট্রিং দ্বারা চালানো যাচ্ছে না.
সুতরাং আমরা একটি স্ট্রিং নামক omg ছিল এবং এখন এটি এমনকি আরো ব্যাখ্যা করা হচ্ছে.
একইভাবে, আমি কি বলতে আমরা আসলে ব্যবহারকারী থেকে একটি পংক্তি পেতে চান.
কিভাবে এই আমরা কি হতে পারে?
পূর্বে, কিভাবে আমরা কোন int পাইনি?
আমরা GetInt বলেন, ডান? কিন্তু এই int-এ হয় না, তাই এর GetString যাক.
যাক স্ট্রিং এর দৈর্ঘ্য করা. এখানে আমরা একটি নির্দিষ্ট প্রম্পটে লিখুন না.
তাই আমি জানি না.
আমি এখানে আমার নাম প্রকাশ করা যাচ্ছে এবং অতএব আমি ঐ জিনিস এক করতে পারি না
যেখানে আমি প্রতি যে ভালো চিঠি বা কিছু জন্য একটি শব্দ নির্ধারণ করুন. কুল.
যাতে স্ট্রিং এর দৈর্ঘ্য.
সুতরাং আমরা সিজার যাও ফিরে এসেছি.
আমরা কিভাবে আমরা একটি স্ট্রিং উপর বারবার উপর কয়েক সরঞ্জাম আছে,
কিভাবে আমরা প্রতিটি উপাদান অ্যাক্সেস.
তাই এখন আমরা প্রোগ্রাম পেতে পারেন.
হিসাবে আমি আগে, এ ASCII টেবিল, আপনার বন্ধু, উল্লেখ
আপনি যে সংখ্যাগুলি প্রতি চিঠি সাথে দেখতে যাচ্ছেন.
তাই আমাদের এখানে বলতে প্লেইন হল আমি হতবুদ্ধি!
তারপর এইসব অক্ষর প্রতিটি একটি সংখ্যা এবং এর সাথে জড়িত আছে ASCII মান হবে,
এমনকি ঊর্ধকমা, এমনকি স্থান, এমনকি বিস্ময়বোধক চিহ্ন,
তাই আপনার মন যে রাখতে চাইবেন.
সুতরাং আমাদের কি বলে যে ব্যবহারকারী তাদের কমান্ড লাইন আর্গুমেন্ট অন্তর্ভুক্ত হয় 6.
প্রথম চিঠি, যা আমি, যা 73 দ্বারা প্রতিনিধিত্ব করা হবে, তার মানে,
আপনি তাদের কাছে যাই হোক না কেন চিঠি 73 + 6 ASCII মান দ্বারা প্রতিনিধিত্ব করা হয় ফিরে আসতে চান.
এই ক্ষেত্রে যে 79 হবে.
এখন আমরা পরবর্তী অক্ষর যেতে চান.
সুতরাং সূচক 1 প্লেইন এর পরের ঊর্ধকমা হবে.
কিন্তু মনে রাখবেন আমরা শুধুমাত্র অক্ষর সঙ্কেতাক্ষরে লিখা চাই.
তাই আমরা নিশ্চিত যে আসলে ঊর্ধকমা একই থাকে করতে চাই,
যে যাই হোক না কেন আমরা 39 থেকে 45 পরিবর্তন না হয়.
আমরা একটি ঊর্ধকমা হিসাবে এটি রাখতে চান.
তাই আমরা শুধুমাত্র অক্ষর সঙ্কেতাক্ষরে লিখা মনে রাখতে চান
কারণ আমরা অন্যান্য চিহ্ন সমস্ত আমাদের প্রোগ্রামে যাও অপরিবর্তিত থাকবে চান.
আরেকটি বিষয় যে আমরা চান ক্যাপিটালাইজেশন সংরক্ষিত করা হয়.
সুতরাং যখন আপনি একটি য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর আছে, এটি একটি য়ের বড়হাতের অক্ষর ছোটহাতের হিসেবে থাকতে হবে.
Lowercases ছোট হাতের অক্ষর ব্যবহার হিসাবে থাকতে হবে.
তাই কিছু দরকারী ফাংশন শুধুমাত্র enciphering অক্ষর মোকাবেলা করতে পারবেন
এবং জিনিস ক্যাপিটালাইজেশন অপরিবর্তিত রাখা
isalpha হয়, isupper, islower ফাংশন.
তাই এই ফাংশন যে ফিরে একটি বুলিয়ান মান.
মূলত, সত্য বা মিথ্যা. এটি একটি য়ের বড়হাতের অক্ষর ছোটহাতের? এই আলফানিউমেরিক?
এটি মূলত একটি চিঠি,.
তাই এখানে কিভাবে আপনি যে ফাংশন ব্যবহার করবে 3 উদাহরণ.
মূলত, আপনি কিনা আপনি যে মান ফাংশন দ্বারা পরীক্ষা করতে পারে সত্য বা মিথ্যা
যে ইনপুটের ভিত্তিতে.
সঙ্কেতাক্ষরে লিখা হয় না কিছু বা এটি অথবা সাইফার নিশ্চিত যে এটা য়ের বড়হাতের অক্ষর ছোটহাতের, ইত্যাদি কাজ করা
[ছাত্রদের] আপনি যারা একটু বেশি এবং কিভাবে আপনি তাদের ব্যবহার ব্যাখ্যা করতে পারি? >> হ্যাঁ, অবশ্যই.
তাই আপনি যদি আমরা ফিরে তাকান, এখানে আমরা একটি মূলধন আমি আছে, ডান?
যাতে আমরা জানতে পারি যে আমি হে যায় কারণ আমি + 6 ও হয়
তবে আমরা নিশ্চিত যে আউটপুট একটি মূলধন ও হতে যাচ্ছে করতে চাই
তাই মূলত, যা আমাদের ইনপুট পরিবর্তন করতে যাচ্ছেন ধরনের.
সুতরাং এটি য়ের বড়হাতের অক্ষর ছোটহাতের বা উপায় যে আমরা তা মোকাবেলা ধরনের পরিবর্তন না হবে.
তখন যদি আমরা সেই বিশেষ সূচক উপর isupper ফাংশান ব্যবহার,
তাই isupper ("আমি"), আমাদের জন্য সত্য যে ফেরৎ, তাই আমরা জানি যে এটা উপরের.
তখন উপর ভিত্তি করে পরে, আমরা একটি ফর্মূলায় যাবেন
আপনি যে ব্যবহার করে সিজার অনেক কিছু নামান করতে হবে,
তাই মূলত তারপর, গিয়ে সামান্য বিভিন্ন সূত্র হতে সেখানে যদি য়ের বড়হাতের অক্ষর ছোটহাতের এর
হিসাবে যাও ছোট হাতের অক্ষর বিরোধিতা. জানার জন্য?
হাঁ. কোনো উদ্বেগ.
আমি একটি চিঠি, যে অর্থে পুরোপুরি না যাও 6 যোগ করা সম্পর্কে একটি বিট সায়ীদ
ছাড়া যখন আমরা বুঝতে পারি যে এই ধরনের অক্ষর
হয় পূর্ণসংখ্যা সঙ্গে বিনিমেয় ধরনের.
আমরা কি করব তা হল আমরা ব্যবহার অন্তর্নিহিত কাস্টিং ধরনের.
আমরা ঢালাই মধ্যে একটু পরে যেখানে আপনি একটি মান নিতে নেভিগেশন এড়িয়ে যান এবং আপনার একটি ভিন্ন ধরনের মধ্যে এটি চালু করব
তুলনায় মূলত এটি ছিল.
কিন্তু এই pset সঙ্গে আমরা সক্ষম ধরনের অদলবদল অক্ষর ব্যবহার করা হবে
এবং তাদের সংশ্লিষ্ট পূর্ণসংখ্যা মান.
তাই আপনি যদি কেবল আপনি শুধু একক উদ্ধৃতি চিহ্ন দিয়ে বাঁধা একটি অক্ষর,
তারপর আপনি এটি দিয়ে পূর্ণসংখ্যার সঙ্গে কাজ, একটি পূর্ণসংখ্যা হিসাবে এটি মোকাবেলা করতে সক্ষম হবেন.
তাই মূলধন সি 67 সাথে সম্পর্কিত. ছোট হাতের চ 102 সাথে সম্পর্কিত.
আবার, যদি আপনি জানতে চান এই মানগুলি আপনার ASCII টেবিল এ, চেহারা.
সুতরাং এর কিভাবে আপনি যোগ বিয়োগ করতে পারেন এবং কিছু উদাহরণের মধ্যে চলুন,
কিভাবে আপনি প্রকৃতপক্ষে এই অক্ষর দিয়ে সত্যিই কাজ করতে পারেন, অদলবদল করে তাদের ব্যবহার.
আমি যে ASCIIMath একটি পূর্ণসংখ্যা একটি অক্ষর যোগ নিরূপণ করা যাচ্ছে না
এবং তারপর পরিসমাপ্তি অক্ষর হিসেবে পরিসমাপ্তি হওয়া ASCII মান প্রদর্শন করা হয়.
এবং এখানে আমি তাই বলছে করছি - এই অংশ we'll সঙ্গে চুক্তি করে পরে -
কিন্তু মূলত, আমি যে ব্যবহারকারী চালানো ASCIIMath বলে সহ একটি কি উচিত না এই বলে,
এবং আমি যে কী নম্বর হবে বলছে করছি
যা দিয়ে আমরা এই অক্ষর যুক্ত চলুন.
তাই এখানে লক্ষ্য করা যে যেহেতু আমি একটি কী দাবি করছি,
যেহেতু আমি যে তারা সম্পর্কে 1 জিনিস দেবার দাবী করছি না,
আমি শুধুমাত্র. / Asciimath এবং একটি কী গ্রহণ করতে চান.
আমি যে argc সমান 2 যাও দাবি যাচ্ছি.
এটি যদি না থাকে, তাহলে আমি 1 এবং ফিরে প্রোগ্রাম থেকে প্রস্থান করা যাচ্ছে না.
সুতরাং আমি কি প্রথম কমান্ড লাইন আর্গুমেন্ট ব্যবহার করা হচ্ছে না বলছে করছি,
এটি দ্বিতীয় এক হবে, এবং এর হিসাবে আপনি এখানে দেখতে,
আমি একটি পূর্ণসংখ্যা মধ্যে যে ঘুরিয়ে যাচ্ছি.
তারপর আমি একটা অক্ষর যাও: r সেট করা যাচ্ছে না.
উল্লেখ্য, পরিবর্তনশীল chr ধরণ আসলে একটি পূর্ণসংখ্যা.
উপায় যে আমি একটি পূর্ণসংখ্যা হিসাবে আর ব্যবহার করতে পারবেন এই একক উদ্ধৃতি চিহ্ন সঙ্গে এটি encasing হয়.
আমাদের printf বিবৃতিতে তাই যেখানে আমরা একটি অক্ষরের জন্য একটি স্থানধারক ব্যাক
এবং তারপর একটি পূর্ণসংখ্যা জন্য একটি স্থানধারক,
অক্ষর দ্বারা chr, প্রতিনিধিত্ব এবং পূর্ণসংখ্যা হয় কি না.
এবং তারপর আমরা ফলে একসাথে 2 যোগ চলুন.
তাই আমরা কিছু যোগ করতে যাচ্ছে 'যাহা কি করছি,
এবং তারপর আমরা যে ফলাফল মুদ্রণ চলুন.
সুতরাং আসুন asciimath করা. এটা তারিখের উপর নির্ভর করে, তাই আসুন শুধু asciimath চালানো.
ওহ, কিন্তু দেখুন, এটি একটি কারণ আমরা আসলে কী দিতে না না কিছু না.
সুতরাং যখন এটা 1, আমাদের প্রধান ফাংশন ফিরে আসেন, এটা আমাদের ফিরে ফিরে.
অতএব আসুন একটি কি 'র মধ্যে পাস. কেউ আমাকে একটি নম্বর দিতে. >> [ছাত্রদের] 4.
4. ঠিক আছে.
সুতরাং আমাদের আর 4 বনাম, 118 এর ASCII মান যা অনুরূপ দিতে হবে বৃদ্ধি.
আমি তখন এটি ধরনের অনুভূতি যে -
বাস্তবিক, আপনি আমি, জিজ্ঞাসা, তখন আপনি কি ASCII r এর মান যদি r + 4 118 মনে করতে পারেন?
তারপর হাঁ, r হয় 114.
তাই আপনি যদি ASCII টেবিল তারপর চেহারা, নিঃসন্দেহে, আপনি যে r 114 প্রতিনিধিত্ব করেন দেখতে পাবেন.
তাই এখন আমরা জানি যে আমরা পূর্ণসংখ্যার অক্ষর যুক্ত করতে পারেন, এই সহজ মনে হচ্ছে চমত্কার.
আমরা শুধুমাত্র আপনার স্ট্রিং এর উপর বারবার মত একটি উদাহরণ আমরা আগে দেখেছি যাচ্ছে.
আমরা যদি একটি চিঠি চেক করব.
যদি তা না হয়, তাহলে আমরা যাহা কি দ্বারা এটি নামান করব.
চমত্কার সহজ, ছাড়া আপনি যখন এই পেতে চাই,
আপনি দেখতে যে z ', 122 দ্বারা প্রতিনিধিত্ব তারপর, একটি ভিন্ন অক্ষর দিতে হবে.
আমরা আসলে আমাদের বর্ণমালার মধ্যে রাখতে চান, ঠিক?
তাই আমরা মোড়কে কাছাকাছি ধরনের কিছু চিত্র উপায় আউট করা দরকার.
যখন আপনার কাছে পৌঁছাতে অক্ষরটি এবং আপনি একটি নির্দিষ্ট সংখ্যক দ্বারা বৃদ্ধি করতে চান,
আপনি অতিক্রম হওয়া ASCII বর্ণমালা বিভাগে যেতে চান না;
আপনি এ যাও মোড়ানো সব উপায় ফেরত চাই
মনে রাখা কিন্তু আপনি এখনও ক্ষেত্রে সংরক্ষণের.
যাতে চিঠি বুদ্ধিমান চিহ্ন হতে পারে না
চিহ্ন ঠিক মত পরিবর্তন করা হবে হিসাবে ভাল হয় যাচ্ছে না.
শেষ pset ইন স্পষ্টভাবে আপনি না প্রয়োজন,
কিন্তু একটি বিকল্প মডুলাস ফাংশন ব্যবহার করে আপনার অর্থগৃধ্নু pset বাস্তবায়ন ছিল.
কিন্তু এখন আসলে আমরা মডুলাস ব্যবহার করতে হবে সেটি হচ্ছে,
তাই আসুন শুধু এই একটি সামান্য বিট ঝালিয়ে নেওয়া.
মূলত, যখন আপনি এক্স modulo y, ও যে দেয় y দ্বারা বিভক্ত x বাকি আছে.
এখানে কিছু উদাহরণ এখানে. আমাদের সাথে আছে 15% 27.
মূলত, যখন আপনি 27 থেকে ছাড়া পেয়ে নেতিবাচক 15 বিয়োগ করা সম্ভব হিসাবে অনেকবার
তারপর আপনি 12 বাম কাটান.
যাতে মত ধরনের গণিত প্রেক্ষাপটে, কিন্তু কিভাবে আসলে আমরা এই ব্যবহার করতে পারেন?
এটি আমাদের wrapover জন্য উপযোগী হতে যাচ্ছে.
এই জন্য, এর যাক সেটা আমি 3 দলের মধ্যে বিভক্ত করা আপনার সব জিজ্ঞাসা.
কখনও কখনও আপনার গ্রুপ এবং যে ভালো কিছু করি.
আমি বলবার বলেন, "ঠিক আছে, আমি আপনাকে সব চান 3 বিভক্ত করা হবে."
কিভাবে যে কি হতে পারে?
[শ্রবণাতীত ছাত্র প্রতিক্রিয়া] হ্যাঁ, ঠিক. বন্ধ গণনা. ঠিক আছে.
এর আসলে যে কি করা যাক. আপনি কি শুরু করতে চান?
[ছাত্র গণনা বন্ধ] 1, 2, 3, 4.
কিন্তু মনে রাখবেন ... >> [ছাত্রদের] ওহ, দুঃখিত.
এটা সত্যিই একটি ভাল পয়েন্ট.
আপনি 4 বলেন, কিন্তু আমরা আসলে আপনি 1 বলতে চাই কারণ আমরা শুধু 3 গ্রুপ করতে চান.
অতএব, কি - না, এটা সত্যিই একটি ভাল উদাহরণ কারণ সেটা কিভাবে 1 আপনি বলতে পারে?
4 এবং 1 এর মধ্যে সম্পর্ক কি?
আচ্ছা, 4 mod 3 1.
তাই আপনি যদি অবিরত, আপনি 2 হবে.
সুতরাং আমরা 1, 2, 3, 1, 2 আছে.
আবার, আপনি আসলে 5 ম ব্যক্তি হন. আপনি কিভাবে যাও 2 পরিবর্তে 5 বলে জানেন?
আপনি বলতে 5 mod 3 2.
আমি কতগুলি 3 দলের উপর ছেড়ে দেওয়া হয় তা দেখতে চান, তাহলে যা আদেশ am I.
এবং তাই যদি আমরা সমগ্র রুম বরাবর অব্যাহত,
তারপর আমরা যে সবসময় আমরা আসলে করছি নিজেদেরকে mod ফাংশন প্রয়োগের দেখতে হবে
যাও ধরনের বন্ধ গণনা.
সে কিভাবে আপনি modulo ব্যবহার হতে পারে বাস্তব উদাহরণ আরো ধরনের
কারণ আমি নিশ্চিত আমাদের সম্ভবত যে প্রক্রিয়ার মাধ্যমে সর্বস্বান্ত
যেখানে আমরা গণনা বন্ধ করিয়েছি.
Modulo উপর কোন প্রশ্ন?
এই ধারণার বুঝতে অত্যন্ত গুরুত্বপূর্ণ হবে,
তাই আমি নিশ্চিত আপনি না বুঝতে করতে চাই.
[ছাত্রদের] যদি কোন বাকি আছে, এটি প্রকৃত সংখ্যা দেয় আপনি?
যদি তাদের প্রথম 3 এক এটি কাজ করে, তা হবে তাদের দেওয়া কি আসলে তারা ছিল,
অথবা এটা তাদের দেওয়া হবে [শ্রবণাতীত] >> এটা একটা ভাল প্রশ্ন.
যখন modulo জন্য কোন বাকি আছে - তাই বলে আপনি 6 mod 3 আছে -
আসলে আপনি দেয় ফিরে 0.
আমরা একটু পরে সম্পর্কে কথা বলতে পারবেন.
উদাহরণস্বরূপ ওহ হ্যাঁ,, 3 য় ব্যক্তি - 3 mod 3 আসলে 0 কিন্তু তিনি বলেন, 3.
যাতে একটি অভ্যন্তরীণ ছিটকিনি মত ধরনের উদাহরণস্বরূপ,,
একদম ঠিক মত, যদি তারপর mod 0 হয় আমি 3 য় ব্যক্তি হতে চলেছি.
কিন্তু আমরা কিভাবে আমরা কি 0 পরে সাথে মোকাবিলা করতে চাইবেন ধরনের মধ্যে পাবেন.
তাই এখন আমরা একরকম ডান চিঠি যাও জেড ম্যাপিং একটি উপায় আছে.
তাই এখন আমরা এই উদাহরণ দিয়ে চলে গেছে করেছি,
আমরা কিভাবে সিজার ধরনের কাজ করতে পারে.
আপনি 2 alphabets দেখুন এবং তারপর আপনি দেখতে তাদের নাড়াচাড়া.
সুতরাং আসুন এবং চেষ্টা সূত্র নিরিখে যে প্রকাশ.
এই সূত্র আপনি প্রকৃতপক্ষে বৈশিষ্ট দেওয়া,
কিন্তু বর্ণন এর let এর কি মানে প্রতিটি পরিবর্তনশীল মাধ্যমে ধরনের.
আমাদের পৌঁছে দেওয়া ciphertext হবে.
তাই এই বলে যে ciphertext এর ith অক্ষর
প্লেইন এর ith অক্ষরে মিলা যাচ্ছে.
যে বিষয়টি যুক্তিযুক্ত কারণ আমরা চাই সবসময় আপ জিনিষ এই আবরণের করা হবে.
সুতরাং ciphertext প্লাস ট, যা আমাদের কী ith অক্ষর হতে যাচ্ছে -
যে অর্থে তোলে - এবং তারপর আমরা এই mod 26 আছে.
ফিরে মনে রাখবেন, যখন আমরা জেড ছিল
আমরা চরিত্র মধ্যে পেতে, না চাই তাই আমরা একে Mod চেয়েছিলেন
মোড়ানো ও বর্ণমালা কাছাকাছি ধরনের.
অক্ষরটি পরে আপনি একটি যেতে হবে, খ, গ, ঘ, যতক্ষণ না আপনি সঠিক সংখ্যা না.
যাতে আমরা জানতে পারি যে অক্ষরটি, যদি + 6, চ আমাদের দিতে কারণ অক্ষরটি পরে আসে একটি, খ, গ, ঘ, ঙ, চ করবে.
সুতরাং আসুন আমরা স্মরণ নিশ্চিত জানি যে অক্ষরটি + 6 চ আমাদের দিতে হবে.
ASCII মান ইন, z-হল 122 এবং চ হয় 102.
তাই আমরা আমাদের সিজার সূত্র তৈরি করার একটি উপায় আছে খুঁজে দিতে আমাদের 102
পরে 122 সালে গ্রহণ.
তাই আপনি যদি আমরা এই সূত্র, ('z' + 6) 26%, যে আসলে দেয় 24 আপনি আবেদন
কারণ 122 @ 6 হয় 128; 128% 26 24 বাকি দেয় আপনি.
কিন্তু যে সত্যিই চ মানে না. এটা স্পষ্টভাবে 102 হইনি.
এটা এছাড়াও বর্ণমালার মধ্যে 6 চিঠি না.
তাই অবশ্যই, আমরা এই অল্প tweaking কিছু উপায় আছে প্রয়োজন.
নিয়মিত বর্ণমালার ভাষায়, আমরা জানি যে, z-হয় 26th চিঠি এবং চ হয় 6.
কিন্তু আমরা কম্পিউটার বিজ্ঞান মধ্যে করছি, যাতে আমরা সূচক যাও 0 চলুন.
আমি তখন পরিবর্তে z-26 নম্বর হচ্ছে, আমরা এর সংখ্যা 25 বলে যাচ্ছেন
একটি কারণ হল 0.
তাই এখন আসুন এই সূত্র প্রযোজ্য.
আমাদের সাথে আছে 25 + z-6 এর প্রতিনিধিত্ব, যা দেয় 31 আপনি.
এবং 31 26 mod দেয় একটি অবশিষ্টাংশ হিসাবে আপনি 5.
এটা একেবারে ঠিক না কারণ আমরা জানি যে চ হয় বর্ণমালার মধ্যে 5 ম চিঠি.
কিন্তু এটা, ডান চ না? এটা এখনও 102 নয়.
আমি তখন এই pset জন্য একটি চ্যালেঞ্জ সম্পর্কে জানতে চেষ্টা করা হবে
মধ্যে এই ASCII মান এবং বর্ণানুক্রমিক সূচী মধ্যে রূপান্তরিত করা.
মূলত, আপনি কি করতে চাইবেন, আপনি ASCII মান সঙ্গে শুরু করতে চান,
কিন্তু তাহলে একরকম একটি বর্ণানুক্রমিক সূচী মধ্যে যে অনুবাদ করতে চান
তারপর কি চিঠি তা নিরূপণ - মূলত, কি তার বর্ণানুক্রমিক সূচী হয়
গোল্লা চরিত্র - তারপর যে ফিরে যাও ASCII মান অনুবাদ.
তাই আপনি যদি আপনার ASCII টেবিল পিটান আউট করে, এবং চেষ্টা মধ্যে সম্পর্ক খুঁজে, বলে, 102 এবং 5
অথবা 122 এবং 25.
আমরা কমান্ড লাইন আর্গুমেন্ট থেকে আমাদের অর্জিত কী, আমরা প্লেইন অর্জিত করেছি,
আমরা তা করেছি enciphered.
এখন আমরা সব কাজ বাকি আছে এটা মুদ্রণ.
আমরা বিভিন্ন উপায়ে একটি দম্পতি এই যেত না.
আমরা কি করতে পারে প্রকৃতপক্ষে হিসাবে আমরা বরাবর যেতে মুদ্রণ.
হিসাবে আমরা স্ট্রিং মধ্যে পুনরুক্তি অক্ষর উপর,
আমরা শুধু শুধু সঠিক মুদ্রণ তারপর যখন আমরা গণনা করতে পারে নি.
অন্যথা, আপনি স্বয়ং একটি অ্যারের মধ্যে এটি সংরক্ষণ করতে পারে এবং অক্ষরের একটি অ্যারে আছে
এবং যে সমগ্র অ্যারের ওভার শেষে এবং বারবার তা প্রিন্ট আউট.
সুতরাং আপনি যে জন্য বিকল্প একটি দম্পতি আছে.
এবং মনে রাখবেন, যে% গ একটি অক্ষর মুদ্রণ জন্য প্লেসহোল্ডার হবে.
তাই সেখানে আমরা সিজার আছে, এবং এখন আমরা Vigenere যান,
যা সিজার অনুরূপ কিন্তু শুধুমাত্র সামান্য আরো জটিল.
তাই মূলত সঙ্গে Vigenere আপনি একটি কীওয়ার্ড মধ্যে পার করা চলুন.
সুতরাং পরিবর্তে একটি নম্বর, আপনি একটি স্ট্রিং আছে চলুন,
এবং যাতে আপনার অভিব্যক্তি হিসাবে কাজ করে যাচ্ছে.
চলিত হিসাবে তারপর, আপনি স্ট্রিং এর জন্য ব্যবহারকারী থেকে একটি প্রম্পট পেতে যাচ্ছেন
এবং তারপর এটি সঙ্কেতাক্ষরে লিখা এবং তারপর তাদের ciphertext ফেরৎ পাঠান.
সুতরাং আমি আগেই বলেছি, এর পরিবর্তে একটি নির্দিষ্ট সংখ্যা দ্বারা নাড়াচাড়া ছাড়া সিজার অনুরূপ,,
নম্বর প্রকৃতপক্ষে থেকে অক্ষর অক্ষর প্রতি সময়ে পরিবর্তন করতে যাচ্ছেন.
যে প্রকৃত সংখ্যা যাও নামান প্রতিনিধিত্ব করেন, এটি কীবোর্ড অক্ষর দ্বারা প্রতিনিধিত্ব করে.
তাই আপনি যদি একটি একটি উদাহরণস্বরূপ স্থানান্তর, এ লিখুন, তারপর, যে 0 এর স্থানান্তরন মিলা চাই.
সুতরাং এর আবার ফিরে বর্ণানুক্রমিক সূচী যাও.
যদি আপনি যে আমরা আসলে ASCII মান সঙ্গে লেনদেন করছেন দেখেন কি সহায়ক হতে পারে
সেইসাথে অক্ষর, যেমন বর্ণানুক্রমিক সূচী,
হয়তো বা আপনার নিজস্ব ASCII টেবিল 0 বর্ণানুক্রমিক 25 মাধ্যমে সূচক দেখায় না,
যাতে একটি z-র মাধ্যমে, এবং ASCII মান আপনার সম্পর্কে কোন ধরনের দেখতে পারেন
এবং আউট স্কেচ এবং চেষ্টা এবং কিছু নিদর্শন খুঁজে পাওয়া.
একইভাবে, আপনি যদি নির্দিষ্ট সময়ে চ ইনস্ট্যান্স দ্বারা নড়ন ছিল -
এবং এই হয় বা ছোট হাতের অক্ষর ব্যবহার য়ের বড়হাতের অক্ষর ছোটহাতের চ - তারপর যে 5 মিলা চাই.
আমরা ভাল এতদূর?
Vigenere জন্য একটি সূত্র কিছুটা আলাদা.
মূলত, আপনি দেখতে যে এটা সিজার মত,
পরিবর্তে শুধুমাত্র ট ছাড়া আমরা ঞ ট সূচক আছে.
উল্লেখ্য, কারণ আমরা মূলত ব্যবহার আমি করছি না, অভিব্যক্তি দৈর্ঘ্যের
আমাদের ciphertext দৈর্ঘ্যের অগত্যা না.
এই একটু পরিষ্কার যখন আমরা একটি উদাহরণ যে আমি একটি বিট আছে পরে দেখতে হবে.
মূলত, যদি আপনি ohai একটি অভিব্যক্তি সঙ্গে আপনার প্রোগ্রাম চালানো,
তারপর তার মানে যে প্রতিটি সময়, ohai আপনার স্থানান্তর করা হচ্ছে.
সুতরাং এটা নির্ভর কি অবস্থা আপনার অভিব্যক্তি আছে,
আপনি যে পরিমাণ দ্বারা আপনার নির্দিষ্ট ciphertext অক্ষর নামান চলুন.
শুধু সিজার ভালো, আবার, আমরা নিশ্চিত যে আমরা জিনিস ক্যাপিটালাইজেশন বাঁচাইয়া রাখা করতে চাই
এবং আমরা শুধু সঙ্কেতাক্ষরে লিখা চিঠি অক্ষর অথবা শূণ্যস্থান, হইনি.
সুতরাং সিজার ফাংশন যে আপনার ব্যবহার করা হয়ে থাকতে পারে পিছনে তাকান,
উপায় যে আপনি কিভাবে সিদ্ধান্ত জিনিষ, নামান এবং আপনার প্রোগ্রাম এখানে প্রযোজ্য.
তাই এর এই ছকা যাক.
আমরা একটি প্লেইন যে আমরা ব্যবহারকারীদের থেকে GetString থেকে অর্জিত করেছি আছে
এই বলে ... CS50 হয়!
তারপর আমরা ohai একটি অভিব্যক্তি আছে.
প্রথম 4 টি অক্ষর সহজ হয় চমত্কার.
আমরা জানি যে T যাও ণ দ্বারা স্থানান্তরিত করা হবে,
তারপর জ যাও জ দ্বারা স্থানান্তরিত করা হবে, আমি একটি দ্বারা স্থানান্তরিত করা হবে.
এখানে আপনি দেখতে পাবেন যে একটি 0 প্রতিনিধিত্ব করে,
অতএব শেষের মান আসলে ঠিক আগের মতই আছে চিঠি.
তারপর গুলি তোমার দ্বারা স্থানান্তরিত হয়.
কিন্তু তারপরে আপনি এই সময়সীমার এখানে আছে.
আমরা যে, তারপর আমরা এটির দ্বারা কিছু পরিবর্তন করবেন না সঙ্কেতাক্ষরে লিখা না চান
এবং শুধুমাত্র সময়ের অপরিবর্তিত প্রিন্ট আউট.
[ছাত্রদের] আমি কিভাবে জানতে পারেন যে এই দ্বারা অপসারিত হয় না বুঝতে - কোথায় আপনি কি - >> ওহ, দুঃখিত.
এখানে উপরের যে আপনি কমান্ড লাইন আর্গুমেন্ট ohai এখানে দেখুন,
যে অভিব্যক্তি হতে যাচ্ছে.
তাই মূলত, আপনি অভিব্যক্তি অক্ষর উপর সাইকেল করছি.
[ছাত্রদের] সুতরাং ণ একই নাড়াচাড়া করা হবে -
তাই ণ একটি বর্ণমালা বিশেষ সংখ্যা অনুরূপ.
[ছাত্রদের] ডান. কিন্তু আপনি যেখানে থাকেন CS50 অংশ পেতে থেকে?
ওহ. যে GetString যেখানে আপনি, ভালো হন নাই "সম্পর্কে যাও সঙ্কেতাক্ষরে লিখা একটি স্ট্রিং দিন."
[ছাত্রদের] তারা আপনাকে দ্বারা নামান যে যুক্তি দিতে যাচ্ছেন
এবং তারপর আপনি আপনার প্রথম পংক্তি জন্য জিজ্ঞাসা করব. >> হ্যাঁ.
সুতরাং যখন তারা প্রোগ্রাম চালানো, তারা অভিব্যক্তি অন্তর্ভুক্ত চলুন
তাদের মধ্যে কমান্ড লাইন আর্গুমেন্ট যখন তারা এটি চালানোর জন্য.
তারপরে আপনি যে আসলে তারা দিয়েছি 1 আপনি পরীক্ষা না এবং আরো করেছি, না কম,
তারপর আপনি স্ট্রিং এর জন্য তাদের অনুরোধ জানানো চলুন, অর্থাৎ, "সম্পর্কে একটি স্ট্রিং দিন."
তাই যে যেখানে এই ক্ষেত্রে তারা আপনাকে এই দিয়েছি ... CS50 হয়!
তখন আপনি যে ব্যবহার এবং ohai এবং ব্যবহার করার জন্য বারবার চলুন.
যে এখানে আমরা সময়সীমার এনক্রিপ্ট করার মাধ্যমে এড়ানো বিজ্ঞপ্তি,
কিন্তু ohai, পরের এক জন্য আমাদের অবস্থানের পরিপ্রেক্ষিতে আমরা ণ ব্যবহৃত.
এটি এই ক্ষেত্রে এর একটু কঠিন কারণ যে 4 দেখতে,
তাই আসুন একটু অবিরত. আমার সাথে এখানে শুধু বিদ্ধ করা.
তারপর আমরা তোমার এবং গুলি, যা ণ এবং জ দ্বারা এর পরে যথাক্রমে অনুবাদ করা আছে.
তারপর আমরা একটা জায়গা আছে, এবং অতএব আমরা জানি যে আমরা শূণ্যস্থান সঙ্কেতাক্ষরে লিখা যাচ্ছে না.
কিন্তু যে বিজ্ঞপ্তি পরিবর্তে এই স্পট মধ্যে যাওয়া একটি অধিকার এখানে,
আমরা একটি দ্বারা এনক্রিপ্ট করছি - এখানে ডান - আমি আপনি যদি দেখতে পারেন যে আমি জানি না.
সুতরাং আপনি আসলে পূর্বাহ্নে নির্ধারিত, আর না বলতে চান, ণ এখানে যায়, জ এখানে যায়,
একটি এখানে যায়, আমি এখানে যায়, ছ, জ, একটি i, o, জ, একটি, তোমার. আপনি যে করবেন না.
আপনি কেবল অভিব্যক্তি মধ্যে আপনার অবস্থান নামান
যখন আপনি কি জানেন যে আপনি আসলে চলুন একটা চিঠি আসল এনক্রিপ্ট করা হবে.
কি ধরণের জানার জন্য?
ঠিক আছে.
তাই কিছু কিছু অনুস্মারক.
আপনি কি নিশ্চিত যে আপনি কেবলমাত্র আপনার অভিব্যক্তি পরবর্তী অক্ষর যাও আগাম করতে চাই
যদি আপনার মধ্যে প্লেইন অক্ষর একটি অক্ষর.
তাই বলে আমরা ণ করেন.
আমরা নোটিশ পরবর্তী অক্ষর, তোমার মধ্যে প্লেইন সূচক হয়, উদাহরণস্বরূপ, এটি একটি সংখ্যা,.
তারপর আমরা, আগাম না ঞ, আমাদের অভিব্যক্তি জন্য সূচক না হওয়া পর্যন্ত আমরা অন্য চিঠি পৌঁছানোর.
আবার, তবে আপনাকে অভিব্যক্তি শুরুতে নিশ্চিত করুন যে আপনি wraparound করতে চাই
যখন আপনি এটি শেষে করছি.
আপনি যদি দেখেন এখানে আমরা তোমার এ করছি, পরের এক ণ করা আছে.
সুতরাং আপনি আপনার অভিব্যক্তি শুরুতে হচ্ছে সক্ষম wraparound যাও কিছু উপায় খুঁজতে চান
প্রত্যেক সময় যে আপনি শেষ পৌঁছানোর.
তাই আবার, কি অপারেটর ধরনের হয় মোড়কে প্রায় জন্য যে ক্ষেত্রে দরকারী?
উদাহরণ বন্ধ মতো বেড়ে চলেছে.
[ছাত্রদের] সাইন শতাংশ. >> হ্যাঁ, সাইন শতাংশ, যা modulo.
সুতরাং এখানে modulo উপকারে আপনি যখন আপনার ohai মধ্যে মোড়ানো সূচক উপর চান আসতে হবে.
এবং শুধুমাত্র একটি দ্রুত ইঙ্গিত: একটি বিট বেড়ে চলেছে বন্ধ মত অভিব্যক্তি উপর মোড়কে মনে করার চেষ্টা করুন,
যেখানে যদি গ্রুপ 3, 4 র্থ ব্যক্তি আছে,
তাদের সংখ্যা যে তারা বলেন ছিল 4 mod 3, যা ছিল 1.
তাই চেষ্টা করুন এবং যে উপায় মনে করে.
সূত্র হিসাবে আপনি দেখেছি, যেখানে আপনি ci এবং তারপর পাই আছে কিন্তু তারপর Kj,
আপনি কি নিশ্চিত যে আপনি ঐ ট্র্যাক রাখতে করতে চাই.
আপনি এটি আমি কল করার প্রয়োজন হবে না, আপনি এটা ঞ কল করার প্রয়োজন হবে না,
কিন্তু আপনি কি নিশ্চিত যে আপনি অবস্থান যে আপনি এর মধ্যে আপনার প্লেইন এ ট্র্যাক রাখতে করতে চাই
পাশাপাশি অবস্থান যে আপনি আপনার অভিব্যক্তি করেন
কারণ যারা একই হতে অগত্যা যাওয়া হয় না.
নেই কেবল অভিব্যক্তি আছে - এটি একটি প্লেইন আপনার থেকে সম্পূর্ণ আলাদা দ্বারা হতে পারে.
এছাড়াও, আপনার প্লেইন, সংখ্যা ও অক্ষর আছে,
তাই এটা পুরোপুরি আপ একসঙ্গে মেলে যাচ্ছে না. হ্যাঁ.
[ছাত্রদের] কোন ফাংশন ক্ষেত্রে পরিবর্তন?
একটি মূলধন আপনাকে পরিবর্তন করতে পারেন? >> হ্যাঁ, অবশ্যই আছে.
আপনি চেক করতে পারেন - এটা আমি এর toupper, 1 শব্দ সব বিশ্বাস করি.
কিন্তু আপনি যখন জিনিষ এবং সাইফার পাঠ্য সংরক্ষণ করে রাখার চেষ্টা করছেন,
এটি সেরা মূলত পৃথক মামলা আছে.
যদি এটি একটি য়ের বড়হাতের অক্ষর ছোটহাতের, তাহলে আপনি এই দ্বারা নামান চান
কারণ আপনার সূত্র, যখন আপনি ফিরে তাকান কিভাবে আমরা আছে যেতে ধরনের
অদলবদল করে এর মধ্যেকার বিভিন্ন প্রতিনিধিত্বমূলক ASCII উপায়
এবং প্রকৃত বর্ণানুক্রমিক সূচী, আমরা নিশ্চিত করতে চাই
going to প্যাটার্ন কিছু যে আপনি ব্যবহার করতে যাচ্ছেন করা আছে এর.
প্যাটার্ন আরেকটা নোট, আসলে.
আপনি স্পষ্টভাবে সংখ্যার সাথে ডিল করা চলুন.
ম্যাজিক সংখ্যা ব্যবহার করার চেষ্টা করুন, যা শৈলী একটি উদাহরণ.
তাই বলে আপনার প্রতি দ্বারা পছন্দ সময় স্থানান্তর কিছু করতে চান -
ঠিক আছে, তাই ইঙ্গিতটি, অন্য ভক্ষক হয় যখন আপনি কিছু নাড়াচাড়া করা চলুন
একটি নির্দিষ্ট পরিমাণ দ্বারা, একটি প্রকৃত সংখ্যা দ্বারা যে হইনি উপস্থাপিত চেষ্টা
বরং এবং চেষ্টা করুন যদি আপনি ASCII মান, যা আরো ইন্দ্রিয় ধরনের করতে হবে ব্যবহার করতে পারেন.
অন্য একটি নোট: যেহেতু আমরা সূত্রে সঙ্গে আচরণ করছেন,
যদিও আপনার TF ধরনের কি করা প্যাটার্ন আপনি ব্যবহার হতে পারে,
আপনার মতামত ধরনের মধ্যে সেরা যুক্তিবিজ্ঞান, ব্যাখ্যা চাই,
"কারণ আমি এই প্যাটার্ন ব্যবহার করছি ..." এবং ধরনের প্যাটার্ন ব্যাখ্যা succinctly আপনার মন্তব্য.
[এই ছিল walkthrough 2] যদি হয় অন্য কোন প্রশ্ন নেই তারপর, আমি একটু বিট জন্য শুধু এখানে থাকবো.
ক্রিপ্টো ও আসার জন্য ধন্যবাদ: আপনার pset 2 সাথে সৌভাগ্য কামনা করছি.
[ছাত্রদের] ধন্যবাদ. >> ধন্যবাদ.
[মিডিয়া অফলাইন ইন্ট্রো]