Zamyla Chan: অভিনন্দন আপনার সমাপ্তি সি প্রোগ্রাম প্রথম দম্পতি. আমি জানি যে আপনার প্রথম আক্রমণ করে সি সিনট্যাক্স daunting হতে পারে. কিন্তু আমি শেষে, আপনাকে আশ্বাস অবশ্যই, আপনি তাকান করতে পারবেন প্রথম বরাদ্দকরণ দম্পতি এবং মিনিটের মধ্যে তাদের পূরণ করুন. আপনি এখন আরও বেশি পরিচিত পেয়ে থাকেন যে সিনট্যাক্স সঙ্গে, এর সিজার পেতে যাক. সিজার ইন ব্যবহারকারী জমা হবে একটি কমান্ড লাইন হিসাবে পূর্ণসংখ্যা কী যুক্তি, তারপর একটি প্লেইন লিখুন প্রম্পটে টেক্সট বার্তা. প্রোগ্রাম encipher হবে টেক্সট এবং প্রিন্ট তাদের ciphertext পাঠান. সিজার জন্য enciphering বেশ সহজ. তাদের মধ্যে, প্রতিটি অক্ষর নামান কী দ্বারা প্লেইন টেক্সট. ফলস্বরূপ, এটি এর বেশ অনিরাপদ. কিন্তু বাস্তবায়নের সিজার পরিচয় করিয়ে দিতে হবে আমাদের ASCIIMath এবং অ্যারের তথ্য স্ট্রাকচার. আমরা আরো জটিল পাবেন পরে সাইফারগুলির. 2 একটি সিজার কী, একটি লেটার প্লেইন টেক্সট দ্বারা প্রতিনিধিত্ব করা হবে ciphertext মধ্যে অক্ষর সি কারণ সি এ বি পর দুটি অক্ষর হবে না দিকে ই দ্বারা D এবং C দ্বারা প্রতিনিধিত্ব বর্ণমালার শেষ, ওয়াট জেড কিন্তু ওয়াই দ্বারা y, ও X দ্বারা প্রতিনিধিত্ব সুতরাং, এটা পরে দুটি অক্ষর থাকে না সাইফারগুলির বর্ণমালা কাছাকাছি গোপন. প্লেইন টেক্সট ওয়াই এইভাবে দ্বারা প্রতিনিধিত্ব করা হয় মে বি দ্বারা ciphertext একটি, ও z ভালো সিজার Cypher দেখতে সাহায্য একটি ধারাবাহিক বর্ণমালার চাকা. তাদের টেক্সট, ইউজার encipher যাও দুটি আর্গুমেন্ট প্রবেশ করবে - কমান্ড লাইন মধ্যে . / সিজার একটি কী দ্বারা অনুসরণ. সর্বদা হিসাবে, আমরা ব্যবহারকারীদের বিশ্বাস করতে পারবেন না সম্পূর্ণ যে ইনপুট লিখুন আমাদের প্রোগ্রামের জন্য অর্থে. সুতরাং আমরা তাদের যাচাই করতে হবে কমান্ড লাইন ইনপুট. পরিবর্তে int প্রধান অকার্যকর ব্যবহার করে, আমরা int প্রধান, int-argc, স্ট্রিং argv ব্যবহার করে. পূর্ণসংখ্যা পরিবর্তনশীল argc প্রতিনিধিত্ব করে মধ্যে পাস আর্গুমেন্টের সংখ্যা কমান্ড লাইন থেকে. এবং argv একটি অ্যারে, অথবা মনে করি আর্গুমেন্ট তালিকা ইন পাস সুতরাং সিজার জন্য, আমরা কিভাবে যাচাই করবেন না ব্যবহারকারীর ইনপুট? ওয়েল, তারা শুধুমাত্র প্রবেশ করা উচিত দুটি কমান্ড লাইন আর্গুমেন্ট - . / সিজার এবং একটি চাবি. Argc 2 হয় না, তাই যে এর মানে হল যে তারা হয় একটি মূল এবং কেবল ভুলে গেছি প্রবেশ. / সিজার, অথবা তারা একাধিক কি প্রবেশ. এই ক্ষেত্রে, তাহলে আপনি পাবেন নির্দেশাবলীর প্রিন্ট করতে চান এবং প্রোগ্রাম ত্যাগ করুন. তারা আবার চেষ্টা করতে হবে কমান্ড লাইন থেকে. কিন্তু argc 2, এমনকি যদি আপনি পাবেন পরীক্ষা প্রয়োজন কিনা তারা আপনাকে অবশ্যই একটি বৈধ কী দিতে. সিজার জন্য, আপনি একটি পূর্ণসংখ্যা করতে হবে. কিন্তু argv স্ট্রিং একটি অ্যারে. আপনি কিভাবে এই কী অ্যাক্সেস করবেন? অ্যারে সময়ে দ্রুত চেহারা - একাধিক রাখা ডাটা স্ট্রাকচার একই ডাটা টাইপ মান. দাখিলা, অর্থাত শূন্য ইন্ডেক্স যে প্রথম উপাদান সূচক শূন্য হয় এবং শেষ উপাদান ইনডেক্স আকারের হয় মাপ সংখ্যা বিয়োগ 1, অ্যারের মধ্যে উপাদান. আমি একটি নতুন স্ট্রিং অ্যারের ডাকবাক্স ঘোষিত যদি দৈর্ঘ্য 3, দৃশ্যত, এটা ভালো দেখায়. স্ট্রিং জন্য তিনটি পাত্রে , পাশাপাশি. কোনো উপাদান অ্যাক্সেস করতে, আপনাকে নাম টাইপ করুন অ্যারের এবং তারপর নির্দেশ বর্গাকার বন্ধনী মধ্যে সূচী. এখানে, আমি প্রতিটি একটি মান নির্ধারণ করছি আমি সাথে করতে হবে, ঠিক যেমন উপাদান, অন্যান্য স্ট্রিং পরিবর্তনশীল. সুতরাং আমাদের কমান্ড লাইন আর্গুমেন্ট অ্যাক্সেস করার জন্য, আমরা কি সব অ্যাক্সেসের হয় argv অ্যারের ডান উপাদান. ব্যবহারকারী. / Blastoff টিম উল্লিখিত হলে টার্মিনাল মধ্যে রকেট, argv 0 would হতে. / blastoff. argv টিম হতে পারে, এবং হবে arg2 রকেট হবে. আমরা আমাদের কী অ্যাক্সেস করতে পারে এখন যে, আমরা এখনও করতে হবে এটি সঠিক নিশ্চিত. আমরা একটি পূর্ণসংখ্যা মধ্যে এটি রূপান্তর করতে হবে. কিন্তু আমরা ঠিক মত নিক্ষেপ করতে পারবে না আমরা পূর্বে সম্পন্ন করেছি. সৌভাগ্য যে, একটি করার জন্য Y ফাংশন যত্ন নেয় আমাদের জন্য এই এবং এমনকি 0 ফেরৎ স্ট্রিং পরিবর্তন করা যাবে না, যদি একটি পূর্ণসংখ্যা মধ্যে. এটি বলা, যদিও, আপনার উপরে ব্যবহারকারী কেন আপনি না করবে না প্রোগ্রাম এগিয়ে যাওয়া যাক. একটি ওয়াই একটি ফলাফল সঞ্চয় করুন পূর্ণসংখ্যা, এবং সেখানে আপনি আপনার কী আছে. পরবর্তী অংশ সহজ. তাদের প্লেইন টেক্সট জন্য ব্যবহারকারীকে অনুরোধ জানানো হয় যা ডাটা টাইপ স্ট্রিং হতে হবে. সৌভাগ্য যে আমাদের জন্য, সমস্ত ব্যবহারকারীর ইনপুট স্ট্রিং বৈধ হয় না. আমরা সব প্রয়োজনীয় ইনপুট আছে এখন যে ব্যবহারকারীর কাছ থেকে, এটা আমাদের জন্য সময় তাদের বার্তা encipher. সিজার ধারণা সহজ বুঝতে যথেষ্ট. কিন্তু কিভাবে আপনার কম্পিউটারে জানেন যা অক্ষর একে অপরের পরে আসা? ASCII টেবিল আসে অংশে যেখানে এখানে প্রত্যেক অক্ষর একটি পূর্ণসংখ্যা আছে নম্বর এর সাথে জড়িত. মূলধন একটি 65 হয়. ক্যাপিটাল বি 66 হয়. একটি 97 হয় ছোট হাতের অক্ষর. ছোট হাতের অক্ষর ব্যবহার বো 98 হয়. কিন্তু অক্ষর সীমাবদ্ধ নয় শুধু বর্ণানুক্রমিক নম্বর. উদাহরণস্বরূপ, @ চিহ্ন হওয়া ASCII সংখ্যা 64 হয়. পুরো স্ট্রিং সঙ্গে লেনদেন করার আগে, এর জাহির করা যাক আমরা ঠিক নামান আছে এক অক্ষর. ভাল, আমরা শুধুমাত্র প্রকৃত নামান চান প্লেইন টেক্সট অক্ষর, না অক্ষর বা সংখ্যা. আমরা করতে চাইবেন যাতে প্রথম জিনিস চেক চরিত্রের কিনা হয় বর্ণমালা. ফাংশন isalpha জন্য এই আছে আমাদের এবং একটি বুলিয়ান ফেরৎ - অক্ষর যদি সত্য, একটি চিঠি অন্যথায় যদি মিথ্যা. দুই অন্যান্য দরকারী ফাংশন isupper এবং islower সঙ্গে স্বশাসিত নাম. তারা সত্য ফিরে যদি দেওয়া চরিত্র , য়ের বড়হাতের অক্ষর ছোটহাতের অথবা ছোট হাতের অক্ষর ব্যবহার করা হয় যথাক্রমে. তারা Booleans যেহেতু, তারা শর্ত হিসাবে ব্যবহার করার জন্য দরকারী. Isalpha সত্য ফেরৎ, তাহলে আপনার প্রয়োজন হবে কী দ্বারা যে চরিত্র নামান. তাই এর ASCIIMath খোলা যাক এবং কিছু হওয়া ASCII গণিত না. ব্যবহারের ব্যবহারের অনুরূপ সিজার জন্য একটি কী লাগে কমান্ড লাইন থেকে. আমি ASCIIMath 5 চালানো, এটি যোগ হচ্ছে 5 একটি, আমাকে অক্ষর চ দান এবং হওয়া ASCII মান প্রদর্শন. সুতরাং এর প্রোগ্রাম কটাক্ষপাত করা যাক. আপনার অধিকার এখানে, কেন, আশ্চর্য হতে পারে এটা যখন অক্ষর, একটি পূর্ণসংখ্যা পরিষ্কারভাবে, ভাল, একটি চিঠি. এটি সক্রিয় আউট যে অক্ষর এবং পূর্ণসংখ্যার বিনিমেয় হয়. একটি একক মধ্যে অক্ষর বসিয়ে উদ্ধৃতি চিহ্ন, পূর্ণসংখ্যা সংরক্ষণ করতে পারেন মূলধন হওয়া ASCII মান এ যদিও, সতর্ক থাকুন. আপনি একা কাপড় প্রয়োজন. একক উদ্ধৃতি চিহ্ন ছাড়া, কম্পাইলার একটি পরিবর্তনশীল জন্য দেখাবে A, এবং না চরিত্রের নামে. তারপর আমি সংরক্ষণকারী, চিঠি এবং একটি কী যোগ করুন int-ভেরিয়েবল ফলে সমষ্টি. ফলে ডাটা টাইপ হয়, যদিও পূর্ণসংখ্যা, আমার printf, বিবৃতি ব্যবহার করে অক্ষরের জন্য% গ স্থানধারক. তাই প্রোগ্রাম চরিত্র ছাপে পূর্ণসংখ্যা ফলে সঙ্গে যুক্ত. এবং আমরা পূর্ণসংখ্যা মুদ্রিত দেখাও ফর্ম সেইসাথে% ঘ ব্যবহার করে, আমরা দেখতে সংখ্যা হিসাবে ভাল. তাই এখন আপনি দেখতে পারেন যে আমরা অক্ষর আচরণ ইন্টিজার, এবং তদ্বিপরীত. ASCIIMath কয়েক আউট পরীক্ষা চলুন শুরু করা যাক একটি কী হিসাবে ব্যবহার করে আরও 25 বার. আমরা অক্ষর z-র পেতে. এখন আমরা 26 করার চেষ্টা করুন. আমরা একটি চিঠি পেতে চাই, কিন্তু আছে এর পরিবর্তে আমরা একটি বাম বন্ধনী পেতে. তাই অবশ্যই, শুধু যোগ চিঠি কি দেবে না. আমরা মোড়ানো একটি সূত্র জিনিসটা প্রয়োজন বর্ণমালা কাছাকাছি, চাই আমাদের শুরুতে যেমন করেনি. সিজার এর জন্য একটি সূত্র শিফ্ট হল নিম্নরূপঃ. সি পি প্লাস ট modulo 26 সমান. Modulo একটি দরকারী মনে রাখবেন যে, আমাদের বাকি যে দেয় অপারেশন অন্য এক নম্বর বিভাজক না. এর প্লেইন এই সূত্র প্রযোজ্য চলুন শুরু করা যাক 2 একটি কী 'র লেখা চিঠি. Y এর হওয়া ASCII মান, যা 89 আমাদের 91 modulo 26, দেয় যা 13 সমান - স্পষ্টভাবে না হওয়া ASCII মান একটি, যা 67 হয়. এখন আমার সম্পর্কে হাস্যরস এবং থেকে দূরে সরানো একটি বর্ণানুক্রমিক সূচী যাও ASCII মান একটি শূন্য হয় এবং z, 25 যেখানে Y-24, যার অর্থ. 24 প্লাস 2, modulo 6,, আমাদের 26 দেয় যা modulo 26, 0, একটি বর্ণানুক্রমিক সূচী. তাই এই সূত্র প্রযোজ্য বলে মনে হয় বর্ণানুক্রমিক চিঠি সূচী ও তার হওয়া ASCII মান. কিন্তু আপনি ASCII মান সঙ্গে শুরু. এবং ciphertext অক্ষর মুদ্রণ, যদি আপনি তার হওয়া ASCII মান প্রয়োজন হবে. এটা চিন্তা করার জন্য, তারপর, আপনার উপরে পিছনে সুইচ কিভাবে. একবার আপনি সঠিক সূত্র চিন্তা একটি অক্ষর জন্য, সমস্ত আপনাকে যা করতে হবে প্রতি একই সূত্র প্রয়োগ করা হয় প্লেইন টেক্সট মধ্যে চিঠি - যে অক্ষর বর্ণানুক্রমিক, শুধুমাত্র যদি অবশ্যই. এবং যদি আপনি সংরক্ষণ করার প্রয়োজন মনে রাখবেন মামলা, ঊর্ধ্ব বা নিম্ন, যে যেখানে isUpper এবং isLower ফাংশন উল্লিখিত আগে উপকারে আসবে. আপনি দুটি সূত্র থাকতে পারে - য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর জন্য এক এবং ছোট হাতের অক্ষর এক. সুতরাং isUpper একটি isLower আপনাকে সাহায্য করবে আবেদন করতে হবে সূত্র যা নির্ধারণ. আপনি কিভাবে প্রতি আপনার সূত্র প্রযোজ্য না একটি স্ট্রিং একক চরিত্র? ওয়েল, একটি স্ট্রিং শুধুমাত্র একটি হল অক্ষরের অ্যারে. তাই আপনি যদি প্রতিটি অক্ষর দ্বারা অ্যাক্সেস করতে পারেন প্রতিটি অক্ষর উপর গোষ্ঠীবদ্ধ লুপ জন্য একটি মধ্যে পংক্তি. লুপ জন্য আপনার অবস্থার জন্য, স্ট্রিং জন্য ফাংশন strlen, দৈর্ঘ্য, উপকারে আসবে. এটা ইনপুট হিসেবে একটি পংক্তি প্রদর্শন করা হয় এবং যে স্ট্রিং এর দৈর্ঘ্য ধার্য করা হয়. ডান লাইব্রেরি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত করুন স্ট্রিং দৈর্ঘ্য ফাংশন ব্যবহার করার জন্য. এবং সেখানে আপনি আপনার ciphertext আছে. আমার সম্পর্কে নাম Zamyla হয়. এবং [ভাষী কোড].