স্পিকার 1: ঠিক আছে. ফিরে আসার জন্য স্বাগতম. এটি CS50 সপ্তাহ দুই, এবং আমরা এ পর্যন্ত কিন্তু ফাংশন ব্যবহার করা হয়েছে মঞ্জুর জন্য মূলত তাদের নিয়ে যাওয়া হয়. আমরা যা printf, ব্যবহার করেছি মুদ্রণ পার্শ্ব প্রতিক্রিয়া পর্দায় জিনিষ. আমরা পেতে-int-এ ব্যবহার করেছি, ভাসা পেতে. কিন্তু আপনি আসলে তৈরি করতে কি কি করতে চান তাহলে আপনার নিজস্ব ফাংশন, কিছু হিসাবে যদি আপনার আগে থেকেই শুরু হতে পারে সমস্যা সেট এক, যদিও জন্য কঠোরভাবে প্রয়োজন হয় না? ভাল, যে এর এগিয়ে যান এবং পরিদর্শন করা যাক শুধু জন্য ব্যবহারকারীকে জিজ্ঞাসা সমস্যা তাদের নাম ও প্রিন্টিং কিছু পর্দা, কিন্তু কিছু খুঁজে বিবেচনার চেষ্টা আমরা করেছি যে commonality এর এ পর্যন্ত আমাদের কোড দেখা. সুতরাং যে আমি নিম্নলিখিত মানে. আমি এগিয়ে যান এবং তৈরি করতে যাচ্ছি একটি নতুন প্রোগ্রাম, শুধু কল এটা স্বাভাবিক হিসাবে hello.c. আমি এগিয়ে যান এবং নিজেকে দিতে যাচ্ছি শীর্ষে স্ট্যান্ডার্ড io.h অন্তর্ভুক্ত. আমি নিজেকে দিতে যাচ্ছি preemptively CS50 লাইব্রেরি যাতে আমি কম্পাইলার দ্বারা এ yelled না. এবং এখন আমি এগিয়ে যান যাচ্ছে না এবং কোন int, প্রধান, অকার্যকর ঘোষণা করা. আমি চাই যেখানে এবং তারপর এখানে, এই হল কার্যকারিতা আউটসোর্স শুরু আমি যে কিছু অন্যান্য ফাংশন লিখতে যাচ্ছি কিন্তু যে না বর্তমানে বিদ্যমান. উদাহরণস্বরূপ, আমি চেয়েছিলাম যে অনুমান করা আমার সম্পর্কে করতে পারবেন যে একটি ফাংশন লিখুন হ্যালো, কমা প্রিন্ট আউট, এবং তারপর কিছু ব্যবহারকারীর নাম. Printf, কি অব্যাহত বদলে হ্যালো,% s এর, এটা যদি চমৎকার হবে না নামক একটি ফাংশন ঠিক ছিল printf, কিন্তু মুদ্রণ নাম না? তাই অন্য কথায়, আমি সক্ষম হতে চান একটু আছে একটি প্রোগ্রাম যা লিখুন ভালো কিছু. প্রথমত, আমি printf, বলতে যাচ্ছি আপনার নাম, যার ফলে ব্যবহারকারী প্ররোচনা আমি তারপর আমাকে তার নাম দিন, এবং পরিচিত স্ট্রিং গুলি ব্যবহার করা যাচ্ছে একটি স্ট্রিং ঘোষণা. আমাকে টাইপ স্ট্রিং এর একটি পরিবর্তনশীল দিন যে এটা গুলি কল, এবং দোকান স্ট্রিং পেতে কলিং এর ফলে. কিন্তু এখন গত সপ্তাহের মধ্যে, আমি হবে কিছুটা tediously সম্পন্ন হ্যালো,% S / N. এবং অন্য কথায়, আমরা এই দেখা করেছি বার যেমন একটি গুচ্ছ, এবং এটা একটি শুধু একটা আছে, কারণ যেমন তুচ্ছ কোড লাইন, তাই এটা সত্যিই একটি নয় বড় চুক্তি করে আবার লিখে রাখা. কিন্তু অনুমান করা যে কোড এই লাইন আসলে একটি বোঝা হয়ে ওঠে, এবং হয় এটা কোড একটি লাইন না কিন্তু এটি 10 ​​এর কোড লাইন এখন থেকে কয়েক সপ্তাহ, এবং আপনি শুধু ক্লান্ত পেয়ে থাকেন কপি এবং পেস্ট বা একই কোড পুনরায় টাইপ. এটি পরিবর্তে করছেন চমৎকার হবে না printf, হ্যালো,% s-এবং তাই ঘোষণা, ঠিক ছিল, যদি এটি চমৎকার হবে না মুদ্রণ নাম যে নামে একটি ফাংশন একটি যুক্তি লাগে - অন্য কথায়, এটি ইনপুট নেয় - এবং তারপর সেমিকোলন. সুতরাং যে ফাংশন, এটা না হবে যে অস্তিত্ব যদি সুন্দর হতে? তারপর আমি চিন্তা করতে হবে না printf, কি, কি% s এবং সব যে এই জটিলতার সব যে আকর্ষণীয়. তারা উপযোগী. সুতরাং মুদ্রণ নাম, দুর্ভাগ্যবশত,, ছিল না 40 প্লাস বছর আগে কিছু আবিষ্কার করেন. কোন এক তা লিখুন চিন্তা. কিন্তু যে একটি থাকার সৌন্দর্য এর ঠিক মত প্রোগ্রামিং ভাষা, শয়তান যদি আপনি তাই, কাস্টম ব্লক নির্ধারণ করতে পারবেন সি এবং সবচেয়ে যে কোন ভাষায়, আপনি যা করতে পারেন আপনার নিজস্ব বৈশিষ্ট্য নির্ধারণ করতে পারবেন, আপনি আপনার নিজস্ব ফাংশন সংজ্ঞায়িত. আমরা প্রধান দ্বারা পেতে সুতরাং যদিও স্বয়ংক্রিয়ভাবে বিনামূল্যে জন্য, আমরা ঘোষণা করতে পারেন আমাদের নিজস্ব ফাংশন. তাই আমি এখানে কিছু স্থান ফাঁকা করতে যাচ্ছি আপ উপরে, এবং আমি ডিক্লেয়ার করতে যাচ্ছি আমার লুক যাচ্ছে নিজস্ব ফাংশন একটু প্রথম অদ্ভুত কিন্তু আমরা আসবো ফিরে এই আগে দীর্ঘ. আমি যার ফলে, শূন্যতা বলতে যাচ্ছি এই ফাংশন ইঙ্গিত আছে কিছু একটি পার্শ্ব প্রতিক্রিয়া আছে, কিন্তু এটা আমাকে কিছু ফেরত দেয় না অথবা কোন int পেতে একই ভাবে নিজেই আছে স্ট্রিং পেতে. এবং আমি এই ফাংশন দিতে যাচ্ছি মুদ্রণ নাম নাম, এবং আমি যাচ্ছি এই লোক নিতে যাচ্ছে না উল্লেখ একটি স্ট্রিং, এবং আমি যে কল করা যাচ্ছে না স্ট্রিং নাম. আমি এটা আমি চাই কিছু কল, কিন্তু হতে পারে আমি আমার কোড স্ব দলিল হতে চান. অন্য কথায়, আপনি যদি এক হয় এই ফাইলটি খুলুন এবং পড়া, আপনি হতে পারে যে নাম থেকে আবিষ্কার সাজানোর এটা খেলা অনুমিত এর কি ভূমিকা ইনপুট. এবং এখন যে নীচে, আমি খুলতে যাচ্ছি কোঁকড়া বক্রবন্ধনী এবং বদ্ধ কোঁকড়া বক্রবন্ধনী, এবং তাই আমি একই অনুসরণ করেছেন তা লক্ষ্য করা লাইন সাত মাধ্যমে চারটি নেভিগেশন প্যাটার্ন আমি একটি ভাল সপ্তাহে প্লাস জন্য নিম্নলিখিত আসছি এখন লাইন নয়, এবং বলে, এর মধ্যে মূল রচনা, যা 14. অন্য কথায়, নাম প্রিন্ট অন্য ফাংশন. এখন, কম্পাইলার জানা যাচ্ছে না স্বয়ংক্রিয়ভাবে এই জিনিস কল আমি আক্ষরিক এটা আবিষ্কার, কারণ কিন্তু এটি প্রধান কল এখনও জানতে হবে স্বয়ংক্রিয়ভাবে, এবং তারপর অবশ্যই মধ্যে লাইন 13, আমি আমার নিজের ফাংশন আহ্বান করছি. এবং কারণ আমি ঘোষণা করেছি যে ফাংশন আপ মুখ্য আগে লাইন চার উপর, এই কম্পাইলার শেখান যাচ্ছে কি কোট, unquote, "মুদ্রণ নাম" মানে এটা কি করা উচিত. তাই আমি এটি একটি নতুন কাস্টম দেবার সাজানোর আছি ভূত,, বলার প্রেক্ষিতে অবরোধ করুন. তাই এখানে, আমি যে খুব সাধারণ লাগাতে পারেন আমি রাখা কোড বা পুনরাবৃত্ত প্যাটার্ন বর্গ মধ্যে লেখা printf, % S-হ্যালো,% S / N, "- আমি এখানে রাখতে কি করতে চান? এস? তাই আমি এই প্রেক্ষাপটে নাম লাগাতে চান. তাই এখানে একটি বৈপরীত্য একটি বিট বিজ্ঞপ্তি. আমি আমার নিজের ফাংশন প্রকাশক কারণ এবং আমি কিছুটা ইচ্ছামত বলা আছে এটি সম্পর্কে নাম মুদ্রণ, এবং আমি করেছি এব w বন্ধনী ববহার উল্লিখিত যে এই ফাংশন এক যুক্তি, টাইপ লাগে যা একটি স্ট্রিং - যাতে এটি একটি শব্দ বা শব্দগুচ্ছ বা কিছু যে মত - এবং আমি যে, যে যুক্তি নাম আহ্বান করছি এর শুধু পরিবর্তনশীল মানে সুযোগ, তাই কথা বলতে, নাম. এস শুধুমাত্র দুই মধ্যে বিদ্যমান কোঁকড়া ধনুর্বন্ধনী, অবশ্যই? সত্যিই ঠিক লাইন 10 মত মাধ্যমে ওয়েল 14, তাই শুধু সোমবার মত ব্যবহার করতে পারবেন না এস, কিন্তু কি আমি কি করতে পারি পাস হয় মুদ্রণ নামের মধ্যে এস. মুদ্রণ নাম ঠিক তাই তা দিতে হবে উপনাম, একটি প্রতিশব্দ, একটি ডাকনাম, এটা নামে ডাকা, এবং এখন এই লাইন মধ্যে এটি ব্যবহার করে. তাই এখন জুম আউট, আমাকে এই সংরক্ষণ করতে দিন. আমাকে এগিয়ে যান এবং হ্যালো করা যাক. দেখতে ভালো. কোনো ত্রুটি থুতু না. . / লিখুন হ্যালো. আমার নাম কি? ডেভিড. এবং ডেভিড হ্যালো. সুতরাং যে সব উত্তেজনাপূর্ণ না, কিন্তু ঠিক এখন মনে হয়. আপনি এখন যে একই উপাদান আছে আমরা ভূত করেনি আমাদের নিজস্ব ফাংশন করতে. কিন্তু একটি gotcha একটি বিট আছে. আমি সত্যিই চিন্তা ছিল না যে ধরুন এই আসলে মাধ্যমে এবং আমি ছাড়া সত্যিই এটি সম্পর্কে চিন্তা লিখেছেন এখানে ফাংশন নিচে. পুরোপুরি যুক্তিসঙ্গত এর মতো অনুভূত হয়. ভূত কোন ধারণা নেই আপনার স্ক্রিপ্টের মধ্যে অবস্থান. আপনি এক, এখানে, এখানে এক আপ আপ করা যায়নি এক আপ এখানে, এবং এটা শুরু হতে পারে না থাকলে একটু নোংরা চেহারা এটা সুন্দরভাবে আউট রাখা, কিন্তু এটা না শারীরিকভাবে স্ক্রিপ্ট যেখানে ব্যাপার পর্দায় ছিল. দুর্ভাগ্যবশত সি - এবং এই অসদৃশ হয় জাভা এবং পাইথন মত ভাষা এবং আপনি পরিচিত হতে পারে অন্যদের দুর্ভাগ্যবশত সি, যাতে আছে - সঙ্গে ঘড়ি কি কারণ ব্যাপার এখন ঘটতে যাচ্ছে. যাচ্ছে ডিফল্ট ফাংশন চালানো, অবশ্যই, প্রধান হয়. মুখ্য নেভিগেশন মুদ্রণ নাম কল করতে যাচ্ছে লাইন আট, কিন্তু দুর্ভাগ্যবশত, কম্পাইলার এমনকি যে মুদ্রণ নাম জানি না হবে এটি লাইন 11 পায়, যতক্ষণ না বিদ্যমান যা দুর্ভাগ্যবশত হয় খুব দেরী হতে যাচ্ছে. তাই হ্যালো করতে এর কাজের জন্য. এবং এখন অভিশাপ, দুটি ত্রুটি উৎপন্ন. তাই এখন আমাকে খুব আপ স্ক্রল যাক প্রথমত, আমরা সবসময় না, এবং উচিত এটা আমার এ yelling এর বিজ্ঞপ্তি যে, ফাংশন "অন্তর্নিহিত ঘোষণা নাম প্রিন্ট করা হবে. " সুতরাং আমরা এই বার্তাটি আগে দেখা করেছি, ফাংশন অন্তর্নিহিত ঘোষণা. যখন আমরা ভুল যে ধরনের দেখা যায়? আমি একটি লাইব্রেরি অন্তর্ভুক্ত হল না যখন. আমি ভুলে গেছি cs50.h এবং যদি আমি পেতে চাই স্ট্রিং পেতে বা int-পেতে জন্য এ yelled. কিন্তু এই ক্ষেত্রে, এই ফাংশন প্রিন্ট নাম ঠিক আছে, একটি লাইব্রেরি নয়? তাই, এই ফাইলের আক্ষরিক এর কি সত্যিই সমস্যা? ওয়েল দুর্ভাগ্যবশত সি, এটি প্রদর্শিত হয় তাই অবিশ্বাস্যভাবে আক্ষরিক যে যদি আপনি মুদ্রণ নামের নামক একটি ফাংশন চান বিদ্যমান, আপনি হয় বাস্তবায়ন করতে হবে আপনার খুব উপরের যে ফাংশন এটি কোড অর্ধবৃত্ত অ্যাক্সেসযোগ্য যাতে ফাংশন, কিন্তু সত্যি, যে হয়ে খুব দ্রুত পঙ্কিল. ব্যক্তিগতভাবে, আমি প্রথম প্রধান নির্বাণ না তারপর, এটা খুব কি এই স্পষ্ট কারণ প্রোগ্রাম প্রথম নজরে আছে. এবং প্লাস, আপনি অদ্ভুত কোণার মধ্যে পেতে পারেন এক্স কল চায় যেখানে ক্ষেত্রে Y কিন্তু Y আপনি যদি X শুধু কল হতে পারে শারীরিকভাবে আসলে এক করা যাবে না অন্যান্য উপরে. কিন্তু এটা আমরা সি পারে সক্রিয় আউট খুব সহজভাবে এই সমস্যার সমাধানের. আমি স্থান সামান্য বিট করা যাচ্ছে না এখানে আপ, এবং আমি ঠিক করতে যাচ্ছি preemptively, যদিও কিছুটা redundantly, শেখান যাচ্ছে একটি ফাংশন অস্তিত্ব আছে যে কম্পাইলার মুদ্রণ নাম বলা, এটি একটি স্ট্রিং লাগে এবং আমি ফোন করতে যাচ্ছি এটি সেমিকোলন নাম. এখন, লাইন চার এই তাই যা আমরা আগে দেখা যায় না, একটি ডিক্লারেশন একটি ফাংশন মুদ্রণ নাম, কিন্তু এটা মাত্র এই ফাংশন যে প্রতিশ্রুতি অবশেষে অবশেষে সংজ্ঞায়িত করা বাস্তবায়িত হবে. এটি এখন আমি একা চলে যাবে, কারণ এখন এই সংজ্ঞা, শেষ মাইল বাস্তবায়ন, সাজানোর এই বাস্তবায়ন বিশেষ ফাংশন. তাই অকপটে এটা মূঢ়, এটা, বিরক্তিকর কিন্তু এই C, উপায়, এবং এটা এটা খুবই আক্ষরিক প্রদর্শিত হয় কারণ এবং, একটি কম্পিউটার উন্মুক্তভাবে উচিত হিসাবে, শুধুমাত্র আপনি এটি বলতে না ঠিক কি না, এবং তাই ক্রমবিন্যাসের গুরুত্বপূর্ণ. তাই মন যে রাখতে এবং আবার, শুরু প্যাটার্নের পুনরাবৃত্তি বিজ্ঞপ্তি. আপনি না থাকলে অডস, আপনি হয় ইতিমধ্যে, বার্তা সম্মুখীন শুরু ভালো যে প্রথম নজরে মনে হয় সম্পূর্ণ রহস্যপূর্ণ, কিন্তু আপনি কি শুরু করতে হলে মত এই শব্দ কি জন্য সন্ধান একটি "অন্তর্নিহিত ঘোষণা," উল্লেখ এই ক্ষেত্রে ফাংশন - সত্যি, আপনি কখনো কখনো এমনকি সামান্য সবুজ পাবেন যেখানে আপনি বলে যে গাজর প্রতীক সমস্যা সম্ভবত - আপনি মাধ্যমে আপনার উপায় কাজ শুরু করতে পারেন কোনো অদেখা ত্রুটির বার্তা. লেখার উপর কোন প্রশ্ন আপনার এই ভাবে নিজের ফাংশন? একটি যে কিছু করতে চলুন শুরু করা যাক একটু বেশি আকর্ষক. আছে কিছু যে ঠিক নয়, বরং মুদ্রন একটি পার্শ্ব প্রতিক্রিয়া, আমাকে যেতে দিন এগিয়ে যান এবং একটি নতুন ফাইল সংরক্ষণ করুন, এবং আমরা করব এটা, যদিও এই positive.c কল একটু ভিন্ন হতে যাচ্ছে শেষ সময় বনাম. এবং এই সময়, আমি আবার নতুন করে চালু করতে চান শেষ সময় এর positive.C উদাহরণ, যা ব্যবহারকারী দিতে বাধ্য করা হয় আমার সম্পর্কে একটি ইতিবাচক পূর্ণসংখ্যা. কিন্তু আমি কোন int শেষ সময় পেতে ব্যবহার ছিল. ছিল এটা চমৎকার করা হবে না একটি ফাংশন ইতিবাচক int-পেতে বলা আমি এই আউটসোর্স করতে পারে আপনি কার্যকারিতা টুকরা? এখানে পার্থক্য হল আমরা করব তাই ইতিবাচক int-পেতে বাস্তবায়ন, কিন্তু আছে অসদৃশ একটি পার্শ্ব প্রতিক্রিয়া ছিল, যা মুদ্রণ নাম - তা মত আমার কিছু ফিরে না একটি সংখ্যা বা একটি স্ট্রিং - ইতিবাচক কোন int, অবশ্যই, যাচ্ছে না পাওয়া আশা, একটি পজিটিভ int-এ ফিরে. তাই এই কাজ করতে দিন. Cs50.h অন্তর্ভুক্ত করুন, মান io.h. অন্তর্ভুক্ত করুন প্রধান অকার্যকর INT. এবং এখন এখানে, আমি এগিয়ে যান যাচ্ছে না যাক এর কোন int বলে, এন কল, সমান ইতিবাচক int-পেতে. এবং ঠিক মত int-এ ইতিমধ্যেই বিদ্যমান পাবেন স্টাফ এটা লিখেছিলেন, কারণ, আমি যাচ্ছি পেতে যে মুহূর্তে অনুমান ইতিবাচক int-এ বিদ্যমান, এবং এখন আমি যাচ্ছি এগিয়ে যান এবং printf, বলতে, % i টি / এন "আর, এন জন্য ধন্যবাদ. আমি এই প্রোগ্রাম কম্পাইল তাই এখন যদি, কি আমার টার্মিনালে ঘটতে যাচ্ছে পর্দার নীচের অংশে উইন্ডো? আমি সম্ভবত যে পেতে যাচ্ছি আগের মতই ত্রুটি. তাই এর এই চেষ্টা করা যাক. ইতিবাচক করুন. এবং আবার, অন্তর্নিহিত ঘোষণা ফাংশন, ইতিবাচক int-পেতে. সুতরাং আমরা এই সমাধান করতে পারে উপায়ে একটি দম্পতি. আমি শুধু এটা সহজ রাখা যাচ্ছে না এখানে নিলাম আমার ঘোষণা করা এবং পান ইতিবাচক int-এ. আমি তথাকথিত স্বাক্ষর প্রয়োজন. স্বাক্ষর শুধু বোঝায় এর নন্দনতত্ব যাও প্রোগ্রামের প্রথম লাইন. তাই ইতিবাচক পাওয়া উচিত রিটার্ন int-এ? সুতরাং কোন int. আমি মনে মনে বলতে চাচ্ছি, এটা ফেরত দিতে হবে ইতিবাচক int-ভালো কিছু, কিন্তু যে বিদ্যমান নয়. আমরা দেখা যায় না করেছি যে আমাদের তথ্য মধ্যে ধরনের, তাই আমরা মোকাবেলা করতে হবে আমরা খুব কমই আছে যে তথ্য ধরনের সঙ্গে কাজ করতে. কিন্তু আমরা কোন int এবং শুধুমাত্র ফিরে আসতে পারেন এটি ইতিবাচক হতে হবে বিশ্বাস. বলা হতে যাচ্ছে ইতিবাচক int-পেতে. এবং এখন কিভাবে তার আর্গুমেন্ট সম্পর্কে? এটা কোনো ইনপুট নিতে? এটা কোনো ইনপুট প্রয়োজন? সুতরাং এটা জানা প্রয়োজন হয় না অগ্রিম কিছু. স্ট্রিং, int-না পেতে না পেতে. Printf আছে - এটা কিছু আছে প্রয়োজন ইনপুট সেটিকে পাশ - ও মুদ্রণ নাম কিছু ইনপুট প্রয়োজন, কিন্তু পাওয়া ইতিবাচক কোন int না. তাই আমি স্পষ্টভাবে যাচ্ছি কম্পাইলার অকার্যকর বলুন. অকার্যকর অন্য কিছু অনুপস্থিতি. তাই অকার্যকর মানে কিছুই ভিতরে যাচ্ছে যারা বন্ধনীর, সেমিকোলন. এবং এখন থেকে আমার ফাইল নীচে - এবং পায়ূ আবার, আমি ঠিক হচ্ছে না ধরনের এখানে উপরের মূল নির্বাণ, যা ভাল অনুশীলন এই ভাবে, কারণ আপনি বা অন্য কেউ যে কোনো সময় আপনার ফাইল, প্রর্দশিত কার্যকারিতা অধিকার আছে. আপনি বর্গ এক থেকে আকর্ষণীয় করতে পারেন. তাই এখন আমি এই প্রতিলিপি যাচ্ছি ইতিবাচক int-এ অকার্যকর পেতে, কিন্তু আমি নই এখন একটি সেমিকোলন আঘাত যাচ্ছে. আমি কোঁকড়া ধনুর্বন্ধনী খুলতে যাচ্ছি এবং এখন আমি ধার করতে হবে সোমবার থেকে কিছু ধারনা. আপনি পুনরাহ্বান সুতরাং হিসাবে, আমরা কিছু করেনি নিম্নলিখিত সময় মত কিছু ছিল সত্য. আর আমি কি কি? আমি দিতে চাই কিছু করেনি আমার সম্পর্কে একটি ইতিবাচক পূর্ণসংখ্যা, একটি প্রম্পট এর সামান্য বিট. আমি চাই কোন শব্দ ব্যবহার করতে পারেন. এবং তারপর আমি কি ব্যবহার করেন নি? Int-N, int-পেতে সমান এটা কোনো আর্গুমেন্ট. এবং পার্থক্য লক্ষ্য করা. আপনি ব্যবহার যখন আপনি একটি ফাংশন কল করার সময় একটি ফাংশন, আপনি অকার্যকর করা হবে না. একটি ঘোষণা যখন আপনি শুধুমাত্র যে কি ফাংশন, কম্পাইলার অধ্যাপনা কি এটা আশা করা উচিত. তাই আপনি যদি করা প্রয়োজন হয় না সেখানে নিজেকে বাতিলযোগ্য. এবং এখন আমার অবস্থা কি ছিল? ওয়েল, এন, ইতিবাচক সমান নয় কিন্তু যে শুধু ছদ্ম কোড আছে. সুতরাং কিভাবে আমি আরো পরিচ্ছন্নভাবে এই প্রকাশ করব? তাই কম বা শূন্য সমান. তাই আবার, আপনি কি করতে পারেন বিজ্ঞপ্তি কম বা সমান. এটি পৃথক দুটি যদিও চিহ্ন, আপনি এটা করতে পারেন যেমন আপনার কীবোর্ড. কিন্তু যে একটি বাগ এখনও আছে আমি খুব শেষ সময় পর্যন্ত মাতাল. আমি ডিক্লেয়ার করা আছে - ঠিক. আমি বাইরে N ডিক্লেয়ার করা আছে লুপ. তাই আমি এখানে আপ n করা প্রয়োজন, এবং আমি না এখানে এটি পুনরায় ঘোষণা করতে চান পাছে আমি একটি নতুন পরিবর্তনশীল পেতে. আমি শুধু এখানে একটি মান নির্ধারণ করতে চান. এবং এখন আমি বেশ এখানে সম্পন্ন না. আমাকে এগিয়ে নিজেকে পেতে চলুন শুরু করা যাক এবং আমি কাজ করছি জাহির. ইতিবাচক করুন, এবং এখন একটি নতুন ত্রুটি আছে. কন্ট্রোল শেষে ছুঁয়েছে অ অকার্যকর ফাংশন. এক্সপ্লোর পরিচালনা ত্রুটির বার্তা, কিন্তু যদি আপনি কি ধরনের শব্দের প্রতিটি পৃথক্ আঁশ বাহির করা, এটা সম্ভবত ভুল কি নির্দেশ করে. নিয়ন্ত্রণ করুন. কন্ট্রোল ঠিক করার মানে একটি প্রোগ্রাম অপারেশন. কম্পিউটার নিয়ন্ত্রণ এবং কিছু ভুল হয়েছে. সুতরাং এটা শেষে ছুঁয়েছে একটি অ অকার্যকর ফাংশন. এটা কি ফাংশন দৃশ্যত হয় উল্লেখ? কি ফাংশন অ অকার্যকর? সুতরাং ইতিবাচক কোন int পেতে, এবং একটি সামান্য যে ভাল বিভ্রান্তিকর, এটি অকার্যকর ধরনের. এটা তার জন্য অকার্যকর একটি স্পেসিফিকেশন আছে আর্গুমেন্ট, কিন্তু তার আউটপুট যাচ্ছে টাইপ N হতে. সুতরাং বাম শব্দ রিটার্ন টাইপ তথাকথিত. এখানে ভেতরের শব্দ শূন্য বা আরো আর্গুমেন্ট একটি ফাংশন লাগে. তাই আমি কি করতে হবে কি? আমার কোড এই বিন্দু, লাইন 21 যেখানে এ জ্বলজ্বলে প্রম্পট এখন আমি হয় একটি ইতিবাচক int-ভিতরে আছে N নামক পরিবর্তনশীল. আমি কিভাবে প্রধান এটা ফেরত দিতে পারি? আক্ষরিক. N সেমিকোলন ফিরুন. তাই শুধু হিসাবে Colton এক টুকরা ফিরে ড্রপ দ্বারা আমার কোন উত্তর কাগজ একটু কালো যে কাগজ টুকরা এ যে কি টেবিল বাক্স, কোড, আপনি আক্ষরিক শুধু ফিরে, লিখুন Colton ছিল হিসাবে যদিও N, এবং এটা আমাকে কিছু শারীরিক ফিরে হস্তান্তর. এই ক্ষেত্রে, কি ঘটছে পেতে হয় ইতিবাচক int-এ ফিরে হাতে যাচ্ছে কি সম্ভবতঃ একটি ইতিবাচক এর যাকে পূর্ণসংখ্যা? মান যে কোথায় শেষ হয় না? যে স্কুল, এই পরিবর্তনশীল শেষ পর্যন্ত, এবং তারপর আমরা লাইন নয়টি সাথে এগিয়ে যান. তাই অন্য কথায়, অনুযায়ী অপারেশন, এই প্রোগ্রাম আরম্ভ করা , নির্বাহ, এবং কম্পাইলার বুঝতে ওহ, আপনি গ্রন্থাগারের চান? আমার সম্পর্কে চটপট জোগাড় যে ভিতরে যাই হোক না কেন এর যান. ওহ, আপনি স্ট্যান্ডার্ড IO লাইব্রেরি করতে চান? আমার সম্পর্কে চটপট জোগাড় যে ভিতরে যাই হোক না কেন এর যান. কম্পাইলার নিজেই কি বলে এটি লাইন চার হিট? ওহ, আপনি বাস্তবায়নের অঙ্গীকার ফাংশন ইতিবাচক পেতে বলা হয়, কিন্তু আছে আমরা পরে যে ফিরে পাবেন যারা লাইন বরাবর কিছু. Int প্রধান অকার্যকর শুধু এখানে মানে আমার প্রোগ্রাম নাড়িভুঁড়ি. লাইন সাত শুধু একটি কোঁকড়া বক্রবন্ধনী হয়. লাইন আট দিতে, বাম বলছে না একটি পূর্ণসংখ্যা জন্য 32 বিট, এটা n কল. ডান দিকে, এটা ইতিবাচক int-পেতে বলছে. এখন let এর বিরতি যে গল্প এখন কারণ আমি আমার কার্সার নিচে চলন্ত রাখা না. আমার কার্সার এখন এখানে নিচে যায় কারণ এখন ইতিবাচক int-executes পেতে. Int N ঘোষিত হয়. নিম্নোক্ত কাজ করুন. Printf সম্পর্কে একটি ইতিবাচক পূর্ণসংখ্যা দেয়. , ব্যবহারকারীর কাছ থেকে কোন int পেতে N মধ্যে এটি সংরক্ষণ, এবং হয়ত আবার এবং আবার এই না. এই লুপ এই কোড প্রতাপ যে মানে আবার ভালো আপ চালানো এবং নিচে এবং আবার, কিন্তু ব্যবহারকারী যখন পরিশেষে cooperates এবং আমাকে একটি ইতিবাচক দেয় কোন int, আমি যা সময়ে, লাইন 21 আঘাত নম্বর ফিরে হস্তান্তর, এবং যা এক আমি এখন হাইলাইট করা উচিত? নাইন. কন্ট্রোল, তাই কথা বলতে, ফেরৎ নয়টি লাইনে. ভারপ্রাপ্ত এখন যে লাইন হয়. সুতরাং যে সব ঘটছে হয়েছে কি এই ফণা নীচে সময়, কিন্তু আমরা printf, ভালো ফাংশন ব্যবহার করেছি যখন অথবা এমনকি স্ট্রিং পেতে যে অন্য কেউ আপনার জন্য লেখেন, নিয়ন্ত্রণ হস্তান্তর হচ্ছে বন্ধ কারোর কোড লাইন পাতিপাতি দ্বারা. এটা ঠিক আমরা তা দেখতে এবং আমরা না পারে এর সত্যিই এই তা বর্ণা করতে পারেনি এটা অন্য কিছু এর প্রোগ্রাম কারণ হার্ড ড্রাইভের ফাইল আমাদের unbeknownst. তাই এর আসলে কম্পাইল করা যাক এবং এখন এই রান. ইতিবাচক করুন. অগ্রগতি, যে সঙ্কলন. . / ইতিবাচক. আমার সম্পর্কে একটি ইতিবাচক পূর্ণসংখ্যা দিন. এর কঠিন হতে দিন. 1 নেতিবাচক. জিরো. এটা 50 দিতে. 50 জন্য ধন্যবাদ, এবং তাই নিয়ন্ত্রণ এখন ফিরেছেন. কোনো প্রশ্ন, তারপর, যে? হ্যাঁ? [শ্রবণাতীত]. আবার বলুন. ওহ, ভাল প্রশ্ন. তাই আপনি যদি এখানে একটি সমান্তরাল লক্ষ্য করা হতে পারে আমি উপর কোণার কাটা ধরনের না. লাইন 12, আমি বলার অপেক্ষা রাখে না, ইতিবাচক int-পেতে কোন int ফেরৎ, কিন্তু যে একই দ্বারা যুক্তিবিজ্ঞান, এটা এখন কারণ দাঁড়িয়েছে যে লাইন ছয়, আমি বলার অপেক্ষা রাখে না যে প্রধান আয় কোন int, কিন্তু আমরা কি কখনো আছে আমাদের প্রোগ্রাম কোন ছিল? আমরা উল্লেখ ছিল না এই কি শব্দের ফেরত. তাই এটি অন্তত, সি দেখা যাচ্ছে যে আমরা ব্যবহার করছেন এটা সংস্করণ 1999 সালে তৈরি হয়, টেকনিক্যালি, এই হল স্বয়ংক্রিয়ভাবে আপনার জন্য ঘটছে. যে কোন সময় আপনি একটি প্রোগ্রাম এবং আপনি বাস্তবায়ন , প্রধান নামে একটি ফাংশন বাস্তবায়ন যে ফাংশন দ্বারা শূন্য ফিরে আসবে ডিফল্ট অন্যথায় আপনি বলে না, এবং শূন্য শুধু একটি কনভেনশন হয়. বিশ্বের যার ফলে শূন্য ফেরৎ সব ঠিক যে ইঙ্গিত, কার্যকরভাবে আমাদের রেখে চার বিলিয়ন যেতে পারে যে সম্ভব জিনিষ ভুল যাতে আমরা এক ফিরে, যদি যে এর অর্থ এই যে একটি কোড সূচিত হতে পারে জিনিস ভুল হয়েছে. আমরা যার মানে, দুটি ফিরে পারে এই অন্যান্য জিনিস ভুল হয়েছে. আমরা চার বিলিয়ন ফিরে হতে পারে এই অন্যান্য জিনিস ভুল মানে. এবং আপনি এখন আপনার নিজের সম্পর্কে চিন্তা যদি পিসি বা ম্যাক, আপনি পুনরাহ্বান হতে পারে কখনও কখনও আপনি রহস্যপূর্ণ ত্রুটি বার্তা পেতে আপনি একটি সফটওয়্যার যা থেকে ব্যবহার করে, এবং কখনও কখনও, এটা মানুষের আছে বন্ধুত্বপূর্ণ বর্ণনা, কিন্তু আছে প্রায়ই একটি কোড বা একটি সংখ্যা পর্দায়? এই মন থেকে আসে না যদি, এটা জন্য নজর রাখা. যে সাধারণত কি এই কোড উল্লেখ করা হয়. তারা এবং মাইক্রোসফট ওয়ার্ড মধ্যে অন্তর্ভুক্ত করছি অন্যান্য প্রোগ্রাম, যাতে আপনি একটি ফাইল যদি কোম্পানীর সঙ্গে বাগ রিপোর্ট, আপনি যা করতে পারেন তাদের বলুন, ওহ, আমি ভুল সংখ্যা 45 পেয়েছিলাম. এবং কোম্পানীর কিছু প্রোগ্রামার ফিরে যে চেহারা আপ করতে পারেন তার আমি তৈরি কারণ কোড এবং বলে, ওহ, যে এই বাগ সংশোধন করা হয়েছে এবং যে কেন ব্যবহারকারী এই বার্তা পেয়েছিলাম. কিন্তু সত্যি, এটা শুধু একটা সামান্য এর বিক্ষেপী এবং একটি সামান্য ক্লান্তিকর অন্তত আমাদের উপর যে, শেষ করা প্রথম কয়েকটি প্রোগ্রাম, আমরা করেছি এটি omitting হয়েছে. আপনার কিন্তু এই সব সময় প্রতি এক ফাংশন প্রধান গোপনে এই ছিল লাইন স্বয়ংক্রিয়ভাবে দ্বারা স্বয়ংক্রিয়রূপে যোগ করা আপনি কম্পাইলার, ঠিক দ্বারা কনভেনশন আপনি কিছু সময় বাঁচাতে. [শ্রবণাতীত]. আপনি প্রধান তা অন্তর্ভুক্ত করার প্রয়োজন হবে না. যে সূক্ষ্ম. আপনি যদি এটি অন্তর্ভুক্ত করা প্রয়োজন ভালো একটি ফাংশন রূপায়ণকারী. অন্যথা ফাংশন ফ্ল্যাট কাজ হবে না. কিন্তু প্রধান, এটা প্রয়োজনীয় নয়. সপ্তাহে বা দুই, আমরা শুরু করব যে অভ্যাস মধ্যে একবার আমরা শুরু করতে চাই ত্রুটি বাচক. প্রশ্নের সত্যিই ভাল. উল্লেখ তাই দ্রুত মৌখিক বিরতি যে এই শুক্রবার, আমরা লাঞ্চ থাকার করা সঙ্গে প্রতি SE, কিন্তু আমরা ডিনার থাকার করা হবে ছাত্র এবং কর্মীদের কিছু. আপনি আমাদের সঙ্গে যোগদান করতে চান তাহলে, মনে cs50.net/rsvp যেতে বিনামূল্যে. এই শুক্রবার PM তে পোস্ট করা 6:00. স্থান, হিসাবে সবসময়, সীমিত, কিন্তু আমরা করব একটি প্রায় এই কাজ অব্যাহত সাপ্তাহিক ভিত্তিতে স্থান যদি এই সপ্তাহে রান আউট. সুতরাং আমরা বাম বন্ধ যে cliffhanger সোমবার স্ট্রিং আসলে করতে পারেন যে ছিল মধ্যে ইন্ডেক্স করা যা শুধু আপনি মানে , প্রথম অক্ষরটি পেতে পারেন দ্বিতীয় অক্ষর, তৃতীয় অক্ষর এবং তাই ঘোষণা, আপনি যা করতে পারেন, কারণ কার্যকরভাবে মত একটি পংক্তি মনে হ্যালো, এই ক্ষেত্রে হচ্ছে পাঁচ বাক্সে ভেতরে অক্ষর. এবং আপনি তাদের প্রতিটি সময়ে পেতে পারেন কি বাক্য গঠন করেছিল বক্স সহ আমরা সোমবার পরিচয় করিয়ে দিতে? যারা বর্গাকার বন্ধনী আপনার কীবোর্ড. মাত্র পাঁচ শূন্য যেতে বোঝানো. আমরা শূন্য এ গণনা শুরু, তাই বন্ধনী শূন্য H, বন্ধনী এক ও নিয়মাবলী ই প্রকাশ করে, এবং তাই ঘোষণা. আমরা চলেছি যখন তাই সব সময় "হ্যালো" মধ্যে স্ট্রিং ব্যবহার করে এবং টাইপ এবং "দুনিয়া" এবং অন্যান্য জিনিষ পর্দা, এটি সংরক্ষণ করা হয়েছে ভালো বাক্সে. এবং একটি অনুমান নিতে. প্রতিটি বাক্সে শারীরিকভাবে কি উপস্থাপন না আপনার কম্পিউটার এর ভিতরে? [শ্রবণাতীত]. দুঃখিত? অক্ষর. ক্ষেত্রে অবশ্যই, একটি অক্ষর সুতরাং স্ট্রিং, এবং একটি চরিত্র ঠিক আট বিট বা এক বাইট. সুতরাং আপনি সম্ভবত অন্তত অস্পষ্টভাবে হয় আসলে সাথে পরিচিত যে আপনার কম্পিউটার মেমরি আছে. এটি মেমরি দুই ধরনের অন্তত আছে. এক সংরক্ষণের যেখানে হার্ড ডিস্ক স্থায়ীভাবে উপাদান, এবং যে আপনি সিনেমা থাকতে পারে সাধারণত বড় তাই এবং সঙ্গীত এবং তাই ঘোষণা. তারপর আপনি মেমরি আরেকটি টাইপ আছে উপস্থিত RAM-র, আর একটি এম, র্যান্ডম অ্যাক্সেস বলা স্মৃতি, এবং এই মেমরি টাইপ আপনার কম্পিউটার যখন ব্যবহার করা হয় আপনি ক্ষমতা হারান বা কিন্তু যদি চলমান আপনার ব্যাটারি ডাইস, সঞ্চিত কিছু যে আপনি ক্ষমতা হারান যদি RAM-র মধ্যে disappears এটা না পুরাপুরি কারণ জেদি. আপনি সাধারণত, এই দিন, একটি এটি কোঁচ, হয়তো আরো দুই যোগাড়. এবং উপস্থিত RAM-র গোলমালে এটা অনেক যে হয় হার্ড ডিস্কের চেয়ে অনেক, অনেক দ্রুত অথবা এমনকি কঠিন অবস্থা, এই দিন ড্রাইভ কিন্তু এটা সাধারণত আরো ব্যয়বহুল, তাই আপনি এটি কম আছে. আজকের কথোপকথন সত্যিই বোঝায় তাই উপস্থিত RAM-র, মেমরি যে টাইপ যে শক্তি আছে, যখন শুধুমাত্র বিদ্যমান আপনার কম্পিউটারের মধ্যে প্রতিপালিত হচ্ছে. তাই আপনি যদি এইচ ই, L-, L-হে টাইপ, যখন থেকে Enter কীবোর্ড, এইচ এক যাচ্ছে উপস্থিত RAM-র বাইট, ই মধ্যে যাচ্ছে উপস্থিত RAM-র অন্য বাইট, হল শব্দ বাকি. সুতরাং আমরা করতে পেরেছি কি প্রত্যাহার শেষ সময় কি এই ছিল. আমাকে এগিয়ে যান এবং ফাইল খুলুন আমরা string.c বলা হয়, এবং প্রত্যাহার যে এটি একটি সামান্য লাগছিল যে ভালো কিছু. আমার সম্পর্কে আসলে ফিরে পাকানো এবং পরিবর্তন চলুন শুরু করা যাক এটা ভালো লাগছিল ঠিক কি আপনি s এর স্ট্রিং দৈর্ঘ্য. সুতরাং এখানে প্রোগ্রাম তাকান. আমরা CS50 লাইব্রেরি যাতে অন্তর্ভুক্ত আমরা স্ট্রিং পেতে ব্যবহার করতে পারেন. আমরা মান io.h অন্তর্ভুক্ত তাই আমরা printf, ব্যবহার করতে পারেন. কেন আমরা string.h অন্তর্ভুক্ত ছিল? এই সোমবার নতুন ছিল. সুতরাং আমরা স্ট্রিং দৈর্ঘ্য চেয়েছিলেন. Str Leng. মানুষ, বছর আগে সিদ্ধান্ত এর ঠিক সংক্ষিপ্ত হতে দিন. এর পরিবর্তে এটি "স্ট্রিং দৈর্ঘ্য," কলিং এর যাক এটা "str Leng" কল করা যাক আউট, এবং যাতে যে বিশ্বের চিত্র আমরা string.h সঙ্গে অ্যাক্সেস পান. এই পরিচিত. এই পরিচিত. এই পরিচিত. এই একটু নতুন. লাইন 22 ইঞ্চি - এবং আমরা ফিরে আসবো এই, কিন্তু এখন জানি - এবং আপনি শুধুমাত্র জমিদারি থেকে জানতে চাই নথিপত্রে অথবা যদি পড়া যদি আপনার আগে থেকেই জানত সি - স্ট্রিং কখনও কখনও আপ যৌনসঙ্গম করতে পারেন পেতে. ব্যবহারকারী সত্যিই adversarial অথবা যদি uncooperative এবং তিনি ঠিক কীবোর্ড এ টাইপ করুন অথবা কিছু না কীবোর্ড এ এত ধরনের যে এটা কম্পিউটার এর মেমরি পূর্ণগ্রাস তত্ত্ব, স্ট্রিং ফিরে পেতে পারে একটি আর অন্য কিছু অক্ষরের পংক্তি. এটা নামে একটি বিশেষ মূল্য ফেরত দিতে পারে সমস্ত ক্যাপ, n-U-L--l, এবং এই হল শূন্য শুধু একটি তথাকথিত সেন্টিনেলে মান. এটা প্রকাশ করে যে একটি বিশেষ মান কিছু খারাপ এই ক্ষেত্রে ঘটেছে. এটি একটি স্ট্রিং এর অনুপস্থিতি. সুতরাং, আমি শুধু তাই যে জন্য চেক করছি null দীর্ঘ গল্প সংক্ষিপ্ত, str Leng এবং সি সাথে আসা অন্যান্য কার্যাবলী, যদি তারা একটি স্ট্রিং আশা কিন্তু আপনি তাদের পাস একটি স্ট্রিং অনুপস্থিতি, আপনি পাস হলে তাদের, কম্পিউটার বা প্রোগ্রাম নাল শুধু সরাসরি বিপর্যস্ত হবে. এটি সেটি স্তব্ধ হয়ে যেতে হবে. এটা কিছু ত্রুটির বার্তা তোলা হবে. খারাপ জিনিস ঘটবে. এই এখনও সুতরাং যদিও উত্তমরুপে সংজ্ঞায়িত না - এই সপ্তাহে আরও জানার জন্য অথবা হবে দুই - লাইন 22 সালে, এই মাত্র একটি হল আত্ম আত্মরক্ষামূলক ত্রুটি পরীক্ষা উদাহরণ শুধু ক্ষেত্রে এক সময় বাইরে একটি মিলিয়ন কিছু সময়, গোলমাল অন্তত আমার প্রোগ্রাম বিপর্যস্ত হবে না. গুলি না সুতরাং, যদি কিছু খারাপ সমান আমি লুপ জন্য এই আছে, এবং এই ছিল আমরা অন্য যে ছিল যেখানে বাক্য গঠন নতুন টুকরা. আমি থেকে iterating লুপ জন্য একটি আছে শূন্য গণ দৈর্ঘ্যের উপর. এবং তারপর এখানে, আমি গণ আউট মুদ্রন ছিল বন্ধনী আমি, কিন্তু কেন আমি সব% গ ব্যবহার হয়নি এর পরিবর্তে% s এর একটি আকস্মিক এমনকি গুলি একটি স্ট্রিং যদিও? এটা ঠিক আছে, একটি অক্ষর আছে? এস, একটি স্ট্রিং, কিন্তু গুলি বন্ধনী কিছু আমি শূন্য যেখানে গুলি বন্ধনী আমি অথবা এক অথবা দুই, যে একজন ব্যক্তির স্ট্রিং মধ্যে অক্ষর, এবং তাই জন্য যে printf, অবহিত করা দরকার এটা সত্যিই আশা একটি চরিত্র আছে. এবং তারপর প্রত্যাহার, কি এই কি প্রোগ্রাম আসলে কি? কলাম এটি প্রিন্ট আউট. হাঁ, ঠিক. এটা ঠিক আমি টাইপ যে শব্দ মুদ্রিত একটি কলাম, প্রতি লাইনে একটি অক্ষর. তাই এর এই আবার দেখুন. তাই স্ট্রিং না. ঠিক আছে কম্পাইল. . / পংক্তি. আমার সম্পর্কে এইচ ই, L-, L-হে টাইপ করা যাক, লিখুন, এবং প্রকৃতপক্ষে আমি, প্রতি লাইনে একটি পেতে. তাই আমাকে এখানে একটি অপ্টিমাইজেশান না দেওয়া. আপনি, বিশেষ করে যদি এটা সম্পর্কে যদি মনে করেন আপনি আগে আছে, প্রোগ্রাম করেছি লাইন 24 তর্কসাপেক্ষ একটি অদক্ষতা. অন্য কথায়, এটি অগত্যা না সেরা নকশা. সহজবোধ্য, অন্তত আপনি একবার str Leng কি মনে রাখবেন, কিন্তু এটা সম্ভাব্য মূক কিছু করছেন. যে কি হতে পারে? [শ্রবণাতীত]. যথাযথভাবে. এটা গণ দৈর্ঘ্যের জন্য চেক এর প্রতি একক সময় যদিও এইচ ই, L-, L-হে সবসময় যাচ্ছে পাঁচ অক্ষরের হতে হবে. এই লুপের মাধ্যমে প্রত্যেক সময়, পাঁচটি পরিবর্তন করা হয় না. আমি তোমার বৃদ্ধিশীল, কিন্তু কি হতে পারে প্রত্যেক নেভিগেশন s এর দৈর্ঘ্য হল এই লুপ পুনরাবৃত্তির? এটি পাঁচটি, এটি পাঁচ, এটি পাঁচ, এবং এখনো আমি তবু এই জিজ্ঞাসা করছি আবার এবং আবার এবং আবার প্রশ্ন. এখন অকপটে, কম্পিউটার তাই অভিশাপ হয় দ্রুত, কোন এক একটি নোটিশ যাচ্ছে এই ক্ষেত্রে পার্থক্য, কিন্তু এই ধরনের দরিদ্র নকশা সিদ্ধান্ত করতে পারেন কম্পাইলার নিজেই যদি পর্যন্ত যোগ করতে শুরু আপনার জন্য এই সমাধানের চেষ্টা না করে এটা সাধারণত এ, না হবে প্রয়োগ অন্তত. তাই আমি এই কাজ করতে যাচ্ছি. আমি পরে একটি কমা যোগ করতে যাচ্ছি আমার প্রথম পরিবর্তনশীল, আমি. আমি নিজেকে অন্য দিতে যাচ্ছি পরিবর্তনশীল, ঠিক, এটি আহ্বান N তারপর সংখ্যার জন্য কনভেনশন, এবং আমি স্ট্রিং মান n দায়িত্ব অর্পণ করা যাচ্ছে s এর দৈর্ঘ্য. এবং তারপর আমি পরিবর্তন করতে যাচ্ছি আমার অবস্থা কি হবে? আমি আমার অবস্থার পরিবর্তন করতে যাচ্ছি তোমার দর্শন লগ N চেয়ে কম হয়, যখন আপনি. সুতরাং এখন, আমি কতবার am s এর দ্বারা পরীক্ষণ? একবার, কিন্তু এটা বিরুদ্ধে আমি চেক ঠিক N আবার এবং আবার যারা এখন, কারণ মান আসলে পরিবর্তন করা হয় না. এখনই এখন জন্য, শুধু জানি যে আপনি যে কোনো সময় একটি ফাংশন কল, একটি বিট আছে আপনি নিরুত্সাহিত করার ওভারহেড, যথেষ্ট নয় সত্যিই থেকে কখনও ফাংশন ব্যবহার, কিন্তু আছে কোড একটি লাইন আছে অবশ্যই যখন যে চাই - এবং লাইন পাবেন আগে দীর্ঘ আরও বেশি আকর্ষণীয় - যেখানে যদি মনে করেন আপনি একটি সুযোগ আছে, আমি এই কোড টাইপ করুন কতগুলি সময়ে এটি চালানো হবে? আপনি সময়ের দেখতে শুরু করব আপনার প্রোগ্রাম কর্মক্ষমতা করতে পারেন প্রকৃতপক্ষে পরিবর্তন করুন. বস্তুত, সমস্যা এক সেট করে আমরা করেছি বছর কাজ গত জড়িত আপনার কাছ থেকে প্রত্যাহার করা হতে পারে, যেমন রূপায়ণকারী শুন্য সপ্তাহ, একটি বানান পরীক্ষক, কিন্তু একটি সমর্থনের জন্য পরিকল্পিত যে পরীক্ষক বানান একটি 150,000 অভিধান প্লাস আমরা আপনাকে বলছি যে দেত্তয়া শব্দ. আপনি কোড লিখতে হবে যা লোড উপস্থিত RAM-র মধ্যে যারা শব্দ, তাই মধ্যে আমরা চাই বাক্সে পর্দায় একটি মুহূর্ত দেখেছি যদি আপনি আগে, এবং তারপর যত দ্রুত করতে পারেন, আপনি একটি উত্তর দিতে সক্ষম হতে হবে ফর্ম প্রশ্ন, এই শব্দ misspelled? এই শব্দ misspelled হয়? এই শব্দ misspelled হয়? এবং আমরা করেছি যে মত কিছু বছরে সম্পন্ন অতীত, সেটিকে পরিণত হয় একটি নির্বাচন মধ্যে ঐচ্ছিক ভিত্তিতে, একটি নেভিগেশন যদ্যপি অসুস্থ প্রতিযোগিতা, যদ্দ্বারা কম RAM ও কম ব্যবহার ছাত্র যারা সময়, কম CPU-র চক্র, শেষ পর্যন্ত একটু উপরে সাড়া জাগানো নেতা বোর্ড অথবা আমরা উপর করা যে র্যাংকিং আমরা করেছি কোর্স এর হোমপেজে গত বছর কাজ. তাই আবার, তা সম্পূর্ণই ঐচ্ছিক, কিন্তু এই নকশা সুযোগ কথা একবার এগিয়ে আমরা শুরু হয় এর মধ্যে কিছু উপরে ভবন মৌলিক বিল্ডিং ব্লক. সুতরাং আমার জন্য এই চিত্রটি ফিরে যান শুধু একটা মুহূর্ত এবং সামান্য প্রকাশ কিছু আরও অনেক কিছু. এই সত্যিই একটি স্ট্রিং, এবং আমরা গ্রহণ করেছি কয়েক লাইব্রেরি সুবিধা, যা আছে প্রমিত io.h - Printf. Printf, অন্যান্য বিষয়ের মধ্যে. int-পেতে এবং স্ট্রিং পেতে যা cs50.h, এবং তাই ঘোষণা, string.h, যা str Leng ছিল. অন্য কোনো আছে খুঁজে কিন্তু এটি সক্রিয় করে. সত্যি, প্রচুর এবং হেডার এর প্রচুর আছে ফাংশন ডিক্লেয়ার যে ফাইল লাইব্রেরির জন্য, কিন্তু এই ctype.h হয় আসলে কিছুটা হতে যাচ্ছে আমি যাচ্ছি, কারণ সুবিধাজনক এগিয়ে যান এবং এক বাস্তবায়ন এখানে অন্যান্য প্রোগ্রাম. আমাকে এগিয়ে যান এবং কিছু খুলুন চলুন শুরু করা যাক আমি বলা অগ্রিম লিখেছে capitalize.c, এবং এর দেওয়া কিভাবে এই কাজ করে এ চেহারা. আমি এই সংস্করণ, ব্যবহার করছি যে বিজ্ঞপ্তি এটি তিনটি পরিচিত ফাইল. লাইন 18, আমি যে বিজ্ঞপ্তি লেখার একটা লাইন পেয়ে. লাইন 21 বিজ্ঞপ্তি, আমি দাবি করছি যে নিম্নলিখিত কোড যাচ্ছে ব্যবহারকারী টাইপ যাই হোক না কেন, গুলি পুঁজিতে , এবং কিভাবে আমি যে কাজ করছি? ওয়েল, আমি গ্রহণ করছি - পাঠ শেষ সময় থেকে আমি শিখেছি - আমি এবং N প্রকাশক এবং iterating করছি স্ট্রিং অক্ষর ওভার. এবং তারপর এই ব্লক কি 27 এর মাধ্যমে লাইন 24 সালে কোড layman এর পরিপ্রেক্ষিতে করছেন? ফিরে অক্ষর ছোট হাতের অক্ষর. যথাযথভাবে. যদি গুলি বন্ধনী আমি - তাই যদি আমি-তম s এর চরিত্র, যা একটি নির্দিষ্ট স্ট্রিং গৃহস্থালি, তার চেয়ে অনেক বেশী হয় বা সমান একটি ছোট হাতের অক্ষর এবং আপনি - যে ডবল ampersand প্রত্যাহার বোঝান এবং - এবং একই চরিত্র, গুলি বন্ধনী আমি হয় z-র ছোট হাতের অক্ষর থেকে কম বা সমান, এটি একটি একটি বা একটি বো বা একটি C অথবা এর মানে হল যে বিন্দু, বিন্দু, বিন্দু, অথবা যার মানে একটি Z, এটা ছোট হাতের অক্ষর ব্যবহার হয়. আমি যে ক্ষেত্রে কি করতে চান? ওয়েল, আমি কিছুটা এটা করতে পারেন cryptically, কিন্তু আছে এর বাদে এই আঁশ বাহির করা যাক. আমি printf, কল যাচ্ছি,% গ ছাপে আমি এই রিপ্রিন্ট করতে চান, কারণ পর্দায় অক্ষর. আমি তখন গুলি বন্ধনী আমি নিতে যাচ্ছি আমি-তম গুলি অক্ষর, এবং তারপর, কেন আমি এখানে এই সামান্য কৌতুক করছেন একটি বিয়োগ মূলধন একটি ছোট হাতের অক্ষর? যে দিতে কি যাচ্ছে আমার সম্পর্কে, সাধারণভাবে বলতে? [শ্রবণাতীত]. যথাযথভাবে. আমি সত্যিই মনে রাখবেন না - মূলধনের এ জন্য 65 সত্যিই আমি না ছিল একটি ছোট হাতের অক্ষর কি মনে রাখবেন, কিন্তু কোন ব্যাপার. কম্পিউটার জানে না. তাই বলে, একটি বিয়োগ ছোট হাতের অক্ষর রাজধানীর একটি, এটি হতে অদ্ভুত অন্য এক গৃহস্থালি subtracting, কিন্তু আছে ফণা নীচে চিহ্ন কি? তারা শুধু সংখ্যার করছি. যারা সংখ্যা যাই হোক না কেন, তাই কম্পিউটার এটা মনে রাখা যাক মানুষের বরং আমার চেয়ে. তাই একটি একটি বিয়োগ মূলধন ছোট হাতের অক্ষর আমাকে একটা পার্থক্য দিতে যাচ্ছে. এটা 32 হতে হবে, এবং যে হবে ছোট হাতের অক্ষর ব্যবহার বো এবং মূলধন বি জন্য কেস এবং তাই ঘোষণা. এটা সৌভাগ্যক্রমে, সামঞ্জস্যপূর্ণ থাকে. আমি মূলত বলছে, তাই গ্রহণ করা অক্ষর ছোট হাতের অক্ষর, যে বন্ধ বিয়োগ মান পার্থক্য, এবং যে কার্যকরভাবে পরিবর্তন গুলি বন্ধনী থেকে য়ের বড়হাতের অক্ষর ছোটহাতের, অবশ্যই, আপনি ছোট হাতের অক্ষর, আমার সত্যিই মনে করেন না করেও বা মনে রাখবেন, যারা কি ছিল যখন আট সম্পর্কে আমরা কথা বললাম সংখ্যা স্বেচ্ছাসেবকদের মঞ্চে এসেছেন? এটা না এখন এদিকে, অন্য মধ্যে, যদি নির্ধারিত একটি ছোট হাতের অক্ষর লাইন 24 দ্বারা, এটা আউট প্রিন্ট করা হবে. আমি কেবল স্পর্শ করতে চান ছিল যে অক্ষরগুলি দেখছেন সেগুলি আসলে মূলত ছোট হাতের অক্ষর. তাই এর এই দেখুন. পুঁজিতে করুন. সংকলিত, ঠিক আছে. . / পুঁজিতে. আমার এইচ ই, L-, L-হে টাইপ করা যাক ছোট হাতের মধ্যে লিখুন. এবং এটি পরিবর্তিত হয় যে বিজ্ঞপ্তি য়ের বড়হাতের অক্ষর ছোটহাতের মধ্যে. আমার সাথে আবার এই করুক না একটি ভিন্ন শব্দ. কিভাবে: D-একটি-ভী-i-D: সম্পর্কে প্রথম ডি সঙ্গে একটি নামের মূলধনী সাধারণত হয়? লেখো. এটি এখনও সঠিক লক্ষ্য করুন. এটা ঠিক যে প্রথম ডি অপরিবর্তিত outputted অন্যথায় যে গঠন মাধ্যমে. সুতরাং একটি, তারপর, মনে রাখা এখানে জিনিষ দম্পতি. আপনি কি কখনো দুই থেকে চেক করতে চান, তাহলে এক, একযোগে শর্ত, আপনি যা করতে পারেন এবং তাদের আমরা পূর্বাভাস একসঙ্গে হিসেবে. আপনি এই পদ্ধতিতে অক্ষরের সাথে তুলনা করতে পারেন এবং কার্যকরভাবে অক্ষর হিসেবে বিবেচনা সংখ্যা, কিন্তু সত্যি, এই এত জঘন্য হয় রহস্যপূর্ণ আমি মনে রাখা যাচ্ছে না করছি গোড়া থেকে এই সঙ্গে আসা পর্যন্ত কিভাবে বেশ জন্য এটি মাধ্যমে যুক্তি ছাড়াই সময় একটি বিট. এটি চমৎকার হয়েছে না করেন তাহলে কেউ বাইরে বলা একটি ফাংশন আছে লিখেছে যে বা সত্য আমার জন্য উত্তর দিতে পারে অর্ধবৃত্ত মিথ্যা, এই অক্ষর ছোট হাতের অক্ষর ব্যবহার করা হয়? ওয়েল সৌভাগ্যক্রমে, কেহ লেখেন ctype.h ঠিক তেমনি কাজ. আমাকে এখানে আপ যান এবং C জন্য ctype যোগ চলুন শুরু করা যাক ধরনের, এবং এখন আমাকে এখানে নিচে যান এবং এই লাইন নিম্নরূপ পুনর্লিখন. এটা বলা হয় তাই আপনি যদি কম হয়, আমি দাবি, গুলি বন্ধনী আমি তারপর, আমি মুছে দিতে যাচ্ছি পুরাপুরি এই দুই লাইন. তাই এখন অন্য কেউ, আমি আশা করছি, লিখেছে নামক একটি ফাংশন কম, এবং এটা তারা করেনি এবং তারা ঘোষণা করিয়া আউট এটি ctype.h ভিতরে. এবং এখন আমি লাইন 27 ছেড়ে যাচ্ছি একা, আমি লাইন 31 ছেড়ে যাচ্ছি একা, কিন্তু আমি করেছি কত বিজ্ঞপ্তি আমার কোড tightened আপ. এটা এখন আরও পরিষ্কার হয়. এটি মাধ্যমে নজর কম কঠিন এখন ফাংশন, উপরন্তু, কারণ তাই wonderfully এটা শুধু নামে এটা বলছেন কি না. তাই এখন আমি এই সংরক্ষণ করতে যাচ্ছি. আমি জুম আউট যাচ্ছি. এবং আপনি হতে পারে শুধু ভূত হিসেবে Booleans, বুলিয়ান মান সত্য বা মিথ্যা, যে ঠিক কি হয় কার্যকরভাবে আয় কম. আমার সম্পর্কে কম্পাইল করা যাক. আমার সম্পর্কে পুনরায় চালানো যাক. এবং এখন, এর আবার চেষ্টা করুন এইচ ই, L-, L-হে লেখো. যে বেশ ভাল. এবং এটি আবার চেষ্টা করুন, আমি নিশ্চিত করুন কিছু আপ যৌনসঙ্গম করা হয়নি. যে পাশাপাশি মূলধনী হয়. কিন্তু এই যথেষ্ট ভাল হয় না, কারণ আমি যাচ্ছি না করছি যে অন্যান্য জিনিস সত্যিই আমি এটা কাজ না করলে মনে রাখবেন সাবধানে নেভিগেশন বলে, কাগজ হয় এই অভিশাপ লাইন. সেখানে যদি এটি চমৎকার হবে না উপরের বলা একটি ফাংশন? ওয়েল সেখানে দেখা যাচ্ছে সেইসাথে ctype.h হয়. আমি এগিয়ে যান এবং টাইপ করা যাচ্ছে না - আমার সম্পর্কে যে লাইন ফিরিয়ে আনা যাক. পরিবর্তে এই এখানে, আমাকে এগিয়ে যান এবং বলে,% গ খেলোয়াড়রা এই ফাংশন কলিং ফলাফল গুলি আমি-তম অক্ষর নেভিগেশন উপরের. এবং এখন এটা পেয়ে নোটিশ একটু সামঞ্জস্যপূর্ণ. আমি কিভাবে অনেক ট্র্যাক রাখা আছে আমি খোলা এবং বন্ধ করেছি প্রথম বন্ধনী. তাই এখন এটি এমনকি ক্লিনার এর. এখন এই প্রোগ্রাম ভাল পেয়ে হয় এটা, কারণ ভাল তর্কসাপেক্ষ পরিকল্পিত অনেক, অনেক বেশি পাঠযোগ্য কিন্তু এটা কোন এর সঠিক চলুন শুরু করা যাক. পুঁজিতে করুন. . / পুঁজিতে. এইচ ই, L-, L-হে. চলুন শুরু করা যাক, আবার এটি চালানোর জন্য : D-একটি-ভী-i-d. ঠিক আছে, তাই আমরা এখনও করছি আকৃতি প্রশংসনীয় ভাল. কিন্তু এখন আপনি উপরের. আমি আরও একটি আছে উত্থাপন পরিশোধন আমরা যে হবে করা হতে পারে সত্যিই আঁট পারে যে, সত্যিই চমৎকার এই কোড আপ এবং সত্যিই আমাদের পাঁচটি দিতে উদাহরণস্বরূপ নকশা জন্য পাঁচ, আউট. পরিত্রাণ পেতে চমৎকার হবে কি? ওয়েল, সম্পর্কে কিভাবে অভিশাপ দীর্ঘ এই ব্লক বর্ণন কোড সহজ কিছু করতে ঠিক. এখনই একটি সরাইয়া, আপনি হতে পারে যেমন এই গত সুপার বিভাগে দেখা ছুটির দিন, আপনি কঠোরভাবে প্রয়োজন নেই কোঁকড়া ধনুর্বন্ধনী আপনি শুধু এক আছে আমরা প্রস্তাব, যদিও কোড লাইন, এটা অনেক তোলে যাতে তাদের পালন ভূত এর U-আকারের মত, আরো পরিষ্কার ব্লক, শাখার ভিতরে কি আছে. ফুলকা আপনি কিন্তু যদি এটি চমৎকার হবে না তার ইনপুট দেওয়া হলে তা পরিণত যদি এটি না বড়হাতের, এবং কি হবে বিপরীত ক্ষেত্রে বিস্ময়কর হতে হলে ইতিমধ্যে এটি য়ের বড়হাতের অক্ষর ছোটহাতের এর? শুধু মাধ্যমে এটি পাস এবং একা এটা ছেড়ে. তাই হয়ত এটা যে আছে. আমি চেষ্টা এবং শুধু আশা করতে পারে এটা, কিন্তু আমাকে যে অন্য একটি জিনিস পরিচয় করিয়ে দিতে. পরিবর্তে এই বিল্ট ইন টার্মিনাল ব্যবহার করে উইন্ডোর নিচে এখানে, পুনরাহ্বান যে এই বর্গাকার কালো আইকন আপনি একটি দেয় আমি পূর্ণ করতে পারেন যে বড় টার্মিনাল উইন্ডোর আমি চাই যদি বাছাই? সুতরাং তারা ধরণের অদ্ভুত করছি সক্রিয় আউট নামে, কিন্তু বলা হয় এই জিনিস আছে man পৃষ্ঠা, ম্যানুয়াল পেজ, সংক্ষেপে মানুষ, এবং আমি এই দ্বারা অ্যাক্সেস করতে পারেন টাইপ মানুষ - আমি কি টাইপ করতে চান? উপরের মানুষ. একটি আছে যদি বিদ্যমান এবং এখন লক্ষ্য করা মধ্যে, কম্পিউটার এর ভিতরে কাজ এই ক্ষেত্রে মাত্র, যা প্রয়োগ, অপারেটিং সিস্টেম লিনাক্স, এটা যাচ্ছে আমার একটি কিছুটা রহস্যপূর্ণ সেট দিতে আউটপুট, কিন্তু আপনি সময় ওভার পাবেন যে এটা সবসময় কাছাকাছি ফরম্যাট করা হয় একই তাই আপনি এটি ব্যবহার করতে শুরু করুন. উপরের করতে উপরের লক্ষ্য করুন, এবং দৃশ্যত একই ডকুমেন্টেশন কম জন্য. এটা কিছু কাটা ছিল যার লিখেছে কোণ এবং একটি পৃষ্ঠা এটি সব করা. এই জিনিস 'উদ্দেশ্য মধ্যে জীবনের একটি রূপান্তর হয় ঊর্ধ্ব বা ছোট হাতের অক্ষর ব্যবহার থেকে চিঠি. Man পৃষ্ঠা, সারমর্ম অধীনে যে বিজ্ঞপ্তি আমি কি ফাইল সম্পর্কে শিক্ষাদান করা হয় এই জিনিস ব্যবহার করার জন্য অন্তর্ভুক্ত. এটা আমার এই জন্য স্বাক্ষর প্রদান এর ফাংশন, তাদের উভয়ের, এমনকি আমরা এই মুহূর্তে শুধুমাত্র যদিও এক যত্নশীল. এখানে এখন একটি বিবরণ. উপরের করার অক্ষর পরিবর্তিত সম্ভব হলে C বড়হাতের. এখনও শিক্ষামূলক, কিন্তু আমাকে না এখন, ফিরতি মূল্য অধীনে জিনিস বর্ণন যে ফিরে হস্তান্তর করে. তাই ফেরত মূল্য যে রূপান্তরিত চিঠি বা C যদি রূপান্তর করা সম্ভব ছিল না. সি কি? মূল চরিত্র. মূল চরিত্র এবং আমরা জানি দ্বারা, আবার, আপনি আপ যাচ্ছে যে সারসংক্ষেপ, এবং যে কেহ এই লিখেছে ফাংশন ঠিক সিদ্ধান্ত নিয়েছে যে ইনপুট আপনি উপরের এবং পর্দার নীচের অংশে শুধু ইচ্ছামত গ বলা হবে. তারা অধিকাংশ কিছু বলা হতে পারে তারা চান, কিন্তু তারা এটা রাখা গ সহজ নয়. তাই আমি man পৃষ্ঠা আলোচনা করেছি. এই বাক্য আমার সম্পর্কে reassures যে যদি এটি একটি ছোট হাতের অক্ষর না, এটা শুধু যা C, আমাকে দিতে যাচ্ছে আমি পরিত্রাণ পেতে পারেন, যার অর্থ হল নিখুঁত, আমার অন্য অবস্থা. তাই আমাকে gedit ফিরে যান, এবং এখন আমাকে শুধু এই কাজ করা যাক. আমি আমার printf, বিবৃতি কপি করতে যাচ্ছি. আমি এগিয়ে এবং ডান ভিতরে যেতে যাচ্ছি লুপ মুদ্রণ জন্য যে আউট, এবং পেতে কনস্ট্রাক্ট যদি এখন এই পুরো পরিত্রাণ. একটি খারাপ ধারণা ছিল না, এবং এটি খুব ছিল অনেক সঠিক ও সঙ্গে সামঞ্জস্যপূর্ণ আমরা প্রচারিত করেছি সবকিছু, কিন্তু ঠিক করার প্রয়োজন নেই. যত তাড়াতাড়ি আপনি কিছু গ্রন্থাগারের বুঝতে হিসাবে ফাংশন অন্য যে কেউ বিদ্যমান লেখেন, হয়তো বা আপনাকে অন্য কোথাও লিখেছিলেন ফাইল, সত্যিই আপনি এটি ব্যবহার করতে পারেন কোড আপ আঁট করা শুরু. এবং আমি ভাল শৈলী ভালো জিনিস বলে যখন, এই ব্যক্তির নামে যে হয় পূর্বে ঊর্ধ্ব, অথবা কাজ নিম্ন wonderfully দরকারী কারণ তারা খুব বর্ণনামূলক না. আপনি আপনার ফাংশন কল করতে চান না যা x এবং y ও z, অনেক, অনেক কম অর্থ. যে সিরিজের উপর কোন প্রশ্ন উন্নত? তাই এক বলতে যথেষ্ট takeaways এমনকি আপনার নিজের সমস্যা হয় সেট - হয়তো সমস্যা সেট এক, কিন্তু আছে অবশ্যই পি এমনকি দুটি এবং অনওয়ার্ড নির্ধারণ তারা সঠিক যখন অপরিহার্যভাবে না তারা ঠিক নিখুঁত মানে কোনো বিশেষ বা সুগঠিত. যে অন্যান্য অক্ষ এর চিন্তা করতে শুরু করুন. তাই এটি আপনার একটি স্ট্রিং ভিতরে ছিল যদি আপনি একটি আছে কম্পিউটার এর মেমরি, কিন্তু যদি এইচ ই, L-, L-হে মত অক্ষরের আভা উপস্থিত RAM-র ভিতর, এবং অনুমান করা আপনি আপনার প্রোগ্রামের মধ্যে স্ট্রিং পেতে কল যেমন আপনি যে একাধিক বার আপনি তারপর, একবার স্ট্রিং পেতে কল আবার স্ট্রিং পেতে কল. ওয়েল, কি যাচ্ছে সময়ের ঘটবে? অন্য কথায়, আপনি একটি লাইন আছে কিনা ভালো প্রসঙ্গের কোড, যদ্যপি আউট, স্ট্রিং গুলি পায় - এই কাজ করতে দিন. স্ট্রিং নাম স্ট্রিং পেতে সমান. তাই কোড যে লাইন বোঝানো হয় ঠাউর তার নামের জন্য ব্যবহারকারীকে জিজ্ঞাসা. কোড এই পরের লাইন জিজ্ঞাসা বোঝানো হয় তার স্কুলের জন্য ব্যবহারকারী এবং এই পরের লাইন, এবং তাই ঘোষণা. আমরা জিজ্ঞাসা রাখা ধরুন অন্য ব্যবহারকারীর অন্য এবং অন্য পংক্তি. তারা মেমরি থাকার চলুন একই সময়ে. অন্য একটি clobber যাচ্ছে না. স্কুল অন্যান্য মুছে ফেলা হয় না. কিন্তু তারা সব কোথায় করবেন মেমরির মধ্যে শেষ? ভাল, আমরা পর্দায় আঁকা শুরু করেন, আমরা এই জিনিস ব্যবহার করতে পারেন, যা এখানে একটি chalkboard মত, এই কালো হলে আয়তক্ষেত্র আমার কম্পিউটার এর প্রতিনিধিত্ব করে স্মৃতি, আমি ইচ্ছামত শুরু যাচ্ছি সামান্য স্কোয়ার মধ্যে এটা বিভাজক, প্রতিটি প্রতিনিধিত্ব করে যা মেমরি এক বাইট. সত্যি, আপনি উপস্থিত RAM-র একটি গিগাবাইট থাকে তাহলে এই দিন, আপনি একটি বিলিয়ন বাইট আছে আপনার কম্পিউটার মেমরি, তাই এই স্কোয়ার একটি বিলিয়ন. তাই এই বলে, যথেষ্ট স্কেল সত্যিই হয় না. কিন্তু আমরা এই সব অঙ্কন রাখতে পারে পরিষ্কারভাবে স্কোয়ার স্কেল, এবং এই না সম্মিলিতভাবে প্রতিনিধিত্ব করে আমার কম্পিউটার এর মেমরি. এখন আমরা বিন্দু, বিন্দু, বিন্দু ঠিক করব. তাই অন্য কথায়, যখন আমি এখন অনুরোধ পান স্ট্রিং ব্যবহারকারীর আমাকে দিতে স্ট্রিং, কি হবে? যদি "হ্যালো," যে শেষ হয় ব্যবহারকারী ধরনের আপ এইচ ই, L-, L-হে. কিন্তু অনুমান করা ব্যবহারকারী তারপর ধরনের - আসলে, আমি কাজ না করা উচিত হ্যালো আমরা বলছি, কারণ তাদের নাম তাদের. তাই আমি এটা করতে পারেন যদি এর ফিরে যান. তাই আমার নামের জন্য: D-একটি-ভী-আমি-D আমি টাইপ করা হলে, কিন্তু প্রত্যাহার যে দ্বিতীয় লাইন কোড আবার স্ট্রিং পেতে ছিল তাদের স্কুলে পেতে. যে শব্দ কোথায় যে ব্যবহারকারী পরবর্তী যেতে যাচ্ছে এ ধরনের? ওয়েল, হয়ত এটা ঢোকা যাচ্ছে এইচ,-A-r-ভী একটি-r-d. আমি করেছি, যদিও দুই সারি হিসাবে এটি টানা, এই মাত্র আপনার বাইট আভা কম্পিউটারের RAM-র. এখন আমি যদি কারণ একটি সমস্যা এখন আছে এই অত্যন্ত যুক্তিসঙ্গত উপস্থিত RAM-র ব্যবহার কিন্তু সাদাসিধা ভাবে সাজানোর, কি করতে পারেন দৃশ্যত প্রভেদ না? এক শুরু এবং কোথায় কোথায় এক প্রান্ত, ডান? তারা একসাথে blurring ধরনের. সুতরাং এটি কম্পিউটারে সক্রিয় আউট এই কাজ করা হয় না. আমার সম্পর্কে আসলে সময় ফিরে স্ক্রোল চলুন শুরু করা যাক কয়েক অক্ষর, এবং পরিবর্তে হার্ভার্ড এর ব্যবহারকারীর নামের পরে অবিলম্বে যাচ্ছে, ব্যবহারকারী আসলে পিছনে পায় দৃশ্য, একটি বিশেষ অক্ষর দ্বারা সন্নিবেশিত তাকে বা তার জন্য কম্পিউটার. / 0 অন্যথায়, nul অক্ষর হিসেবে পরিচিত annoyingly n-U-এল বলা হয়, না N-U-L--l, কিন্তু আপনি তা / 0 লিখুন. এটা ঠিক সব শূন্য বিট এর মধ্যে একটি চিহ্নিতকারী হয় প্রথম শব্দ মধ্যে যে ব্যবহারকারীর টাইপ করা এবং দ্বিতীয়. হার্ভার্ড আসলে এখন শেষ পর্যন্ত তাই অক্ষরের এই অনুক্রমের হিসাবে এবং আরও একটি / 0. এই জমিদারি তাই অন্য কথায়, দ্বারা সেন্টিনেলে মূল্যবোধ, আট সংলগ্ন শূন্য বিট, আপনি এখন পার্থক্য করতে পারেন অপরের থেকে একটি অক্ষর. সুতরাং "হ্যালো" ছিল কি সব এই সময় আসলে, একটি / 0 "হ্যালো" এবং এদিকে, সেখানে বল খুব ভাল বেশ বিট অধিক RAM হতে কম্পিউটার এর ভিতর. আমাকে এখন অন্য একটি জিনিস করতে চলুন শুরু করা যাক. এটি সক্রিয় আউট যে এই স্কোয়ার সব আমরা, তারা, হ্যাঁ, অঙ্কন করা হয়েছে স্ট্রিং, কিন্তু আরো সাধারণভাবে, এই জিনিস অ্যারে. একটি অ্যারের শুধু মেমরি একটি খণ্ড হয় যে ফিরে ফিরে ফিরে যাও শয্যাশায়ী এবং আপনি সাধারণত উপায় দ্বারা একটি অ্যারের ব্যবহার এই বর্গাকার বন্ধনী স্বরলিপি না. সুতরাং আমরা এই বেশ বিট দেখতে যাচ্ছেন সময়ের সাথে, কিন্তু আমাকে এগিয়ে যান এবং খুলুন, এটা বয়সের কল করা যাক. এবং আমরা কি করতে পারি বিজ্ঞপ্তি এই একই ঠাট, একটু এখানে বিট আরো সিনট্যাক্স. তাই এই প্রোগ্রাম লাইন 17 - আসলে, আমার প্রথম প্রোগ্রাম চালানো যাক তাই আমরা এই জিনিস আছে তা দেখতে পারেন. আমার বয়সের করতে কল চলুন শুরু করা যাক এই প্রোগ্রাম কম্পাইল. . / বয়সের. রুমে কতজন লোক আছে? এটি তিনটি কল করুন. প্রথম ব্যক্তি বয়স? 18, 19, এবং 20. এবং এখন কিছুটা ridiculously, শুধু আমি একটি প্রোগ্রাম যে বয়সের যারা করেছেন তিনটি লেগেছে. সুতরাং একটি সুযোগ পরিষ্কারভাবে আছে এখানে কিছু মজার গাণিতিক জন্য. সৌভাগ্যক্রমে, গণিত সঠিক. 18 গিয়েছিলাম, 19 19 গিয়েছিলাম 20 এবং তাই ঘোষণা. কিন্তু কি সত্যিই করা বোঝানো হচ্ছে অর্থবোধক এখানে আমরা সংরক্ষণ করছেন কিভাবে যারা তিন মানুষের বয়সের. আমার সম্পর্কে কি এ জুম করা যাক এখানে হচ্ছে. সুতরাং প্রথম, এই প্রথম কয়েক লাইন উচিত বেশ পরিচিত পাওয়ার. আমি জন্য ব্যবহারকারীকে অনুরোধ করছি রুমে মানুষের সংখ্যা. তারপর আমি int-এ ব্যবহার করে পেতে এবং কাজ করছি সময় আবার এবং আবার এবং আবার এই না. আমরা আগে যে প্যাটার্ন দেখা যায়, কিন্তু করেছি লাইন 27 নতুন এবং আসলে বেশ হয় দরকারী, এবং পরিণত হবে ক্রমবর্ধমান দরকারী. কি লাইন 27 ভিন্ন যে বিজ্ঞপ্তি আমি একটা ঘোষণা করা প্রদর্শিত হয় বলা বয়সের int, কিন্তু অপেক্ষা করুন. এটি শুধু int-বয়সের না. এই বর্গাকার বন্ধনী আছে, যার ভিতরে n করা হয়. এই প্রেক্ষাপটে তাই বন্ধনী N, না কিন্তু এখানে একটি printf, বিবৃতি ভিতরে এই একমাত্র লাইন 27 সালে, এই লাইন আমাকে N ints দিতে বলছে, প্রতিটি যা টাইপ int-এ হল. তাই এই, যে, তাই কথা বলতে, একটি বালতি হয় এই ক্ষেত্রে, তিনটি ইন্টিজার ফিরে পিঠে পিঠে যাতে আমি কার্যকরভাবে তিনটি ভেরিয়েবল আছে. বিকল্প হতে পরিষ্কার, এই হবে. আমি চেয়েছি যদি প্রথম শিক্ষার্থীর বয়স, আমি এই কাজ করতে পারে. আমি চেয়েছি যদি দ্বিতীয় ছাত্র বয়স আমি এই কাজ করতে পারে. আমি চেয়েছি যদি তৃতীয় ছাত্র বয়স, আমি এই কাজ করতে পারে. এবং মানা ঈশ্বর আমাদের সকলের প্রয়োজন এই রুমে বয়স - আমি বলতে চাচ্ছি, এই কপি অনেকটা একটি নরক হয়, আবার এবং আবার এবং আবার পেস্ট করুন. এবং প্লাস একবার আমি, এই প্রোগ্রাম কম্পাইল অন্য মোট ছাত্র, খুঁজে ওভার মধ্যে পদচারনা যদি যে দরজা, এখন থেকে আমার নম্বর ভেরিয়েবল ভুল. তাই কি একটি অ্যারে সম্পর্কে চমৎকার হয় আপনি নিজেকে অনুভব করতে শুরু যত তাড়াতাড়ি কপি এবং পেস্ট, শ্রেষ্ঠতা যে হয় না ভাল পদক্ষেপ. একটি অ্যারের সম্ভাব্য পরিবর্তনশীল. আমি অগ্রিম কিভাবে অনেক মানুষের না জানি না , রুম হতে যাচ্ছে কিন্তু আমি তাদের n প্রয়োজন জানি, এবং আমি করব সময় আসে যখন N জিনিসটা. কোড এই লাইন এখন মানে, আমাকে দিতে ভালো দেখায় যে মেমরি খণ্ড যেখানে পর্দায় বাক্সে সংখ্যা N উপর সম্পূর্ণরূপে নির্ভরশীল যে ব্যবহারকারী ইন টাইপ তাই এখন এই প্রোগ্রাম বাকি হয় আমরা কি আসলে প্রশংসনীয় অনুরূপ শুধু অক্ষরের সাথে করেছিল. আমি লুপ জন্য একটি আছে বিজ্ঞপ্তি লাইন 30 শুরু. আমি অ্যারের পেতে তাই ডান পরে, আমি Y N উপর শূন্য আপ সমান থেকে বারবার. আমি এই শিক্ষামূলক printf, আছে বার্তা বলছে, আমার বয়স দিতে ব্যক্তির #% আমি, তাই এক নম্বর, দুই নম্বর, সংখ্যা তিনটি. এবং আমি এটা কেন করবেন? সত্যি, মানুষের এক থেকে গণনা করতে পছন্দ কম্পিউটার বিজ্ঞানীরা যেহেতু আপ, আপ নেভিগেশন শূন্য. কম্পিউটার বিজ্ঞানীরা যাচ্ছে না এই ধরনের প্রোগ্রাম ব্যবহার করার জন্য, তাই আমরা শুধু গণনা শুরু করতে যাচ্ছে স্বাভাবিক মানুষের মতো এক সময়ে. এবং এখন লাইন 33, সামান্য বিজ্ঞপ্তি বাক্য গঠন বিভিন্ন টুকরা. টাইপ যে পরিবর্তনশীল আমি-তম বয়স অ্যারের একটি int-পেতে যাচ্ছে. এবং এখন সর্বশেষে, এই মাত্র হয় এখানে গাণিতিক নিচে. আমি দাবি করতে একটি পৃথক লুপ করার সিদ্ধান্ত নিয়েছে কিছু সময় এই এখন পাস, এবং পৃথক লুপ, এই লাইন চালানো. , ব্যক্তি আমি এখন থেকে এক বছর হতে হবে বছর বয়সী, কিন্তু এই লক্ষ্য করা হয় না তোমার পরিবর্তনশীল. এটি এখন% int-এ জন্য আমি. প্রথম স্থানধারক হিসাবে বিজ্ঞপ্তি, আমি আমি প্লাস 1 প্লাগ, তাই আমরা একটি ভালো গণনা স্বাভাবিক ব্যক্তি. এবং তারপর তাদের বয়স মান জন্য, জন্য তোমার দর্শন লগ বছর বয়সী, আমি বয়সের বন্ধনী নিতে আমি - কেন আমি এখানে এক প্লাস করছেন? তারা শুধু বয়সী. এটি প্রোগ্রামের আমার মূঢ় পছন্দ. তারা শুধু এক বছরের বয়সী. আমি কোনো সংখ্যা যে টাইপ করতে পারে আমি আসলে সেখানে চান. তাই কি আসলে এর সব এখানে প্রাসঙ্গিকতা? আচ্ছা, আমাকে আসলে ফিরে স্ক্রল যাক এখানে ওভার এবং একটি ছবি আঁকা এগিয়ে মিথ্যা কি. আমরা আমাদের পরবর্তী সঙ্গে কাজ করা হবে কি সমস্যা সেট দুই dabbling হয় ক্রিপ্টোগ্রাফি বিশ্বের. তাই এই অক্ষর একটি স্ট্রিং, যাতে একটি একাধিক অক্ষর ক্রম, এবং কি এই বলে? অনলাইন সংস্করণে না স্লাইড. তাই আমি একটি, এই সমান দাবি করে যে অনেক বছর থেকে মূঢ় বিজ্ঞাপন আগে আসলে প্রত্যাহার হতে পারে তার আর এক. তাই এই এনক্রিপশন একটি উদাহরণ অথবা ক্রিপ্টোগ্রাফি. আপনি চাইলে এটি দেখা যাচ্ছে যে আসলে তথ্য বা শেয়ার পাঠান নিরাপদভাবে কেউ সাথে তথ্য ভালো একটি বার্তা চাই, আপনি যা করতে পারেন অক্ষর হামাগুড়ি দিয়া আরোহণ. কিন্তু সাধারণত, শব্দ হয় এলোমেলোভাবে scrambled না. তারা কিছু উপায় permuted বা পরিবর্তন করছি কিছু উপায়ে, যাতে - ওহো. যে পরবর্তী সময় একটি মজার ভক্ষক হয়. সুতরাং আপনি দৃশ্যত কি ম্যাপ করতে পারেন যে লাইন আপ বি লক্ষ্য হে ক্যাপিটালাইজেশন জিনিস. আপাতদৃষ্টিতে কিছু ই হয়ে যায়. দৃশ্যত: এফ এইচ ই কিছু, S-ইউ-r-ই হয়ে যায়. তাই এটি একটি ম্যাপিং আছে সক্রিয় আউট, এবং এই ক্ষেত্রে একটি চমত্কার মূঢ় আছে কেউ এটা মূর্ত আউট যদি ম্যাপিং? এই কিছু বলা হয় না হাজা 13, 13 ঘোরান. এটা এনক্রিপশনের stupidest হয় প্রক্রিয়া এটা আক্ষরিক মাত্র কারণ , অক্ষর প্রতি এক থেকে 13 যোগ অর্থে মূঢ় যে আপনি শুধু যদি আপনার হাত নেভিগেশন বিনামূল্যে সময় একটি বিট আছে এবং একটা পেন্সিল, অথবা আপনি এটা মনে করেন আপনার মাথায় মাধ্যমে, আপনি চেষ্টা করে দেখতে পারেন সব সম্ভব সংযোজন - এক, দুই, তিন, বিন্দু, মাত্র বিন্দু, বিন্দু, 25 গোটা বর্ণমালার ঘুরান, এবং অবশেষে, আপনি চিন্তা করব কি এই বার্তা. আপনি ভালো কিছু করেনি তাই আপনি যদি আপনার বার্তা ক্ষণস্থায়ী গ্রেড স্কুল প্রিয় বন্ধু, আপনার গ্রেড স্কুল যদি শিক্ষক শুধু পড়বেন বার্তা ও নরপশু, সমাধান জোরপূর্বক আপনি অর্জিত হতে পারে যে একটি উত্তর. এখন অবশ্যই, বাস্তব জগতে, ক্রিপ্টোগ্রাফি আরো পরিশীলিত হয়. এটি একটি থেকে টেক্সট একটি স্নিপেট হয় ব্যবহারকারীর নাম এবং আছে যে কম্পিউটার সিস্টেম পাসওয়ার্ডগুলি, প্রায় আমাদের সব কাজ, এবং এই কি আপনার পাসওয়ার্ড প্রতাপ হয় আপনার হার্ড সঞ্চিত যদি মত চেহারা কিন্তু এনক্রিপ্ট করে ড্রাইভ. এই অক্ষর শুধু একটি ঘূর্ণন নয় একটি বি এবং B এই সি হল আরো অনেক পরিশীলিত, কিন্তু এটি ব্যবহার করে সাধারণত গোপন কী হিসাবে পরিচিত এর কি ক্রিপ্টোগ্রাফি. এই ছবি নিম্নলিখিত বলে কয়েক আইকন সঙ্গে গল্প. বাম, আমরা কি আছে আমরা প্লেইন টেক্সট ফোন করবো. ক্রিপ্টোগ্রাফি, প্লেইন বিশ্বের টেক্সট শুধু মূল বার্তা ইংরেজি বা ফরাসি লেখা অথবা সবটা কোনো ভাষা. আপনি এটি এনক্রিপ্ট করতে চান, আমরা পাস করব এটি pictorially একটি padlock মাধ্যমে, তাই এলগরিদম কিছু ধরনের, কিছু ফাংশন কেউ লিখেছে বা প্রোগ্রাম অক্ষর আশা যে scrambles আরো complicatedly আর মাত্র 13 যোগ তাদের প্রতিটি আপনি. আপনি যে প্রক্রিয়া খুঁজে পেতে কি মাঝখানে আছে cyphertext বলা হয়. একটি সেক্সি শব্দের সুতরাং ধরনের. এটা ঠিক এটি এনক্রিপ্ট করা মানে প্লেইন টেক্সট এর সংস্করণ. এবং আপনি যে একই গোপন আছে যদি, 13 বা বিয়োগ 13, আপনাকে করতে পারবেন যে মত ডিক্রিপ্ট একটি বার্তা. সুতরাং সমস্যা বিষয়ের মধ্যে, দুই সেট করুন আপনি হ্যাকার যদি করব সংস্করণ, আপনি কোড লিখতে হবে figuring আউট, এই পাসওয়ার্ডগুলি ফাটল কি তারা এবং কিভাবে তারা আমরা যদিও এনক্রিপ্ট করা, আপনি একটি বিট দিতে পথ বরাবর নির্দেশের. মানক সংস্করণ, আমরা পরিচয় করিয়ে সাইফারগুলির একটি দম্পতি, এনক্রিপশন প্রক্রিয়া, একটি সিজার, এক বলা Vigenère বলা হয়, যে এখনও একটি পরিণত হয় যেখানে আবর্তনশীল সাইফারগুলির কিছু, বি কিছু হয়ে যায়, কিন্তু আছে আপনি programmatically এটি কি আছে প্রকৃতপক্ষে একটি গোপন থাকবে, কারণ সাধারণত একটি নম্বর যা জড়িত কী বা একটি শব্দ যে শুধুমাত্র প্রেরকের এবং এই প্রাপক বার্তা বুঝতে হবে. এখন, এই আসলে সমগ্র আদর্শের আছে বাস্তব জগতে. এই উদাহরণস্বরূপ, সামান্য অনাথ হয় অ্যানি এর গোপন সঙ্কেতমোচক রিং, এবং আপনি আসলে এই বাস্তবায়ন করতে পারে আবর্তনশীল সাইফারগুলির - একটা কিছু হয়ে যায়, বি হয়ে কিছু - চাকার একটি দম্পতি সঙ্গে, বাইরে এক, ভেতরের এক যেমন যে আপনি চাকা ঘোরাতে বা যদি রিং, আপনি আসলে এই লম্বা লাইনে দাড়িয়ে যাবে বিভিন্ন বর্ণ দিয়ে অক্ষর, একটি গোপন কোড পেয়ে. তাই আজকের জন্য cliffhanger হিসাবে, আমি কি আমি কি চাই একটি বিট প্রত্যাবর্তন যে আপনি টিভি চালু হলে ডিসেম্বর 24, আপনি দেখতে পারেন জন্য সিনেমা বিজ্ঞাপন nauseum একটি সারিতে 24 ঘন্টা. কিন্তু আজকের জন্য, আমি এখানে খুলুন করব এবং আমাদের একটি মাত্র দুই মিনিটের দিতে pedagogically প্রাসঙ্গিক ক্রিসমাস গল্প Ralphie নামক একটি সামান্য সহকর্মী সঙ্গে. [ভিডিও প্লেব্যাক] -এটি সমস্ত এবং রকমারি যে পরিচিত রালফ পার্কার এতদ্দ্বারা নিযুক্ত করা হয় একটি লিটল অনাথ অ্যানি গোপন সদস্য বৃত্ত ও সমস্ত এনটাইটেল করা হয় সম্মান এবং বেনিফিট তত্প্রতি ঘটছে. , লিটল অনাথ অ্যানি-স্বাক্ষর করেন. কালিতে, পিয়ের আন্দ্রে প্রতিস্বাক্ষরিত. সম্মান এবং বেনিফিট ইতিমধ্যে নয় বছর বয়সে. [রেডিও shouting] চলো, এটা দিয়ে করা যাক. আমি সব যে জ্যাজ প্রয়োজন হয় না চোরা কারবার এবং জলদস্যু. জন্য আগামীকাল রাতের শুনুন কালো আখেরী দু: সাহসিক কাজ জলদসু্য জাহাজ. এখন, এটা অ্যানি এর সিক্রেট জন্য সময় আপনি সদস্যদের জন্য পাঠান গোপন বৃত্ত. , বাচ্চাদের মনে রাখুন. অ্যানি এর গোপন বৃত্ত সদস্যদেরই কেবলমাত্র অ্যানি এর গোপন বার্তা ডিকোড করতে পারে. মনে রাখবেন, অ্যানি আপনার উপর নির্ভর করে না. B2 আপনার পিন সেট করুন. এখানে বার্তা. 12, 11, 2 - আমি আমার প্রথম গোপন বৈঠকে am. -25, 14, 11, 18, 16 - -Pierre মহান ভয়েস আজ রাতের মধ্যে ছিল. আমি যে আজ রাতে এর বার্তা বলতে পারে সত্যিই গুরুত্বপূর্ণ. -3, 25. যে অ্যানি নিজেকে থেকে একটি বার্তা আছে. মনে রাখবেন, যে কেউ বলতে না. -90 যাও পরে, আমি শুধুমাত্র রুম আছি ঘর যেখানে নয় একটি ছেলে গোপনীয়তা এবং ডিকোড বসতে পারে. Aha, বি আমি পরের গিয়েছিলাম. ই প্রথম শব্দটি হল "হতে" হয়. এস এখন এটা সহজ আসছে. U. 25. যে আর এর , Ralphie অন আসা. আমি যেতে gotta. -I'll ডান ডাউন Ma-হতে. Gee whiz. -টি. মন্ত্রণালয় করতে ভুলবেন না. কি করতে ভুলবেন না? লিটল অনাথ কী ছিল অ্যানি বলার চেষ্টা করছেন? কি করতে ভুলবেন না? -Ralphie, রান্ডি যেতে না করেনি. আপনি খসা দয়া করে হবে? সব ঠিক আছে, MA. আমি ডান আউট হবেন. আমি কাছাকাছি এখন পেয়ে ছিল. টান ভয়ানক ছিল. এটা কি ছিল? গ্রহের ভাগ্য পারে ভারসাম্য স্তব্ধ হয়ে যেতে পারে. -Ralphie, রান্ডি এর gotta যান. -I'll জন্য ডান হত্তয়া অট্ট চিৎকার করে কাঁদতে. -প্রায় নেই. আমার আঙ্গুলের flew. আমার মন একটি ইস্পাত ফাঁদ ছিল. প্রত্যেক pore vibrated. এটা প্রায় স্পষ্ট ছিল না. হ্যাঁ, হ্যাঁ, হ্যাঁ, হ্যাঁ, হ্যাঁ. আপনার Ovaltine পান করতে ভুলবেন না, না. Ovaltine? একটি crummy বাণিজ্যিক? গোলাম আজম. [END টি ভিডিও প্লেব্যাক] স্পিকার 1: এটি CS50, এবং যে সমস্যা সেট দুই হবে. পরের সপ্তাহে দেখা হবে. স্পিকার 2: পরবর্তী সময়ে এবং CS50, এটি হয়. স্পিকার: 1 আমরা না আছে সুতরাং এক বিষয় এইভাবে অনেক দূরে দিকে তাকিয়ে ফাংশন পয়েন্টার যে. এখন, একটি ফাংশন পয়েন্টার ঠিক একটি সর্বজনীন ঠিকানা কিন্তু অনেক ভালো ফাংশন, - একটি পুত্র -