[সঙ্গীত বাজানো] ডেভিড জে MALAN: ঠিক আছে. এটি CS50, এবং এই 2 সপ্তাহ শেষে. তাই আজ, আমরা চলুন আমাদের বর্ণন অবিরত আমরা জিনিস প্রতিনিধিত্ব কিভাবে hood-- দূরে সরানোর নীচে পূর্ণসংখ্যার মত নম্বর থেকে এবং ফ্লোটিং পয়েন্ট মান এবং স্ট্রিং উপর মনোযোগ নিবদ্ধ করে এবং শেষ পর্যন্ত আরো আকর্ষণীয় প্রোগ্রাম. কিন্তু আমরা একটি কটাক্ষপাত করা হবে ডোমেন নির্দিষ্ট problems-- দম্পতি প্রথম হবে, যা এর ক্রিপ্টোগ্রাফি জড়িত হতে পারে, তথ্য scrambling শিল্প, যা আপনি এখানে উপরে দেখুন রেডিও অনাথ অ্যানি এর একটি ছবি বিগতবত্সর থেকে গোপন সঙ্কেতমোচক রিং. এটি আসলে খুব আদিম ফর্ম এবং cryptopgraphy এর শিশু বান্ধব ফর্ম এই রিং দুই disks-- আছে যদ্দ্বারা এক ভিতরে এবং বাইরে. এবং, যারা এক আপনি যা করতে পারেন আবর্তিত মূলত একটি মত অক্ষর লাইন আপ অন্যান্য অক্ষর দিয়ে Z মাধ্যমে অন্য কথায় এ মাধ্যমে বি মত, আপনি আক্ষরিক বর্ণমালা ঘোরাতে পারে, যার ফলে একটি ম্যাপিং থেকে সঙ্গে উত্ক্রান্ত অক্ষর অক্ষর যে, তাই যদি আপনি একটি গোপন বার্তা পাঠাতে চেয়েছিলেন অ্যানি মত কেউ, আপনি লিখতে পারে তারপর আবর্তিত এবং আপনার বার্তা নিচে অক্ষর, যদ্দ্বারা, আপনি মানে যদি আপনি যদি এর পরিবর্তে বলতে ", একটি" বলতে "বি" আপনি বলে মানে "বি" আপনি যদি এর পরিবর্তে "সি" বলে - বা কিছু কিছু চতুর কিন্তু যে বেশি এবং তারপর, শেষ পর্যন্ত, তাই দীর্ঘ অ্যানি এই সঙ্কেতমোচক আছে রিং, সে বার্তা ডিকোড করতে পারে. এখন, আপনি, আসলে, প্রত্যাহার এই যে হতে পারে একটি খুব বিখ্যাত ফিল্ম ব্যবহৃত হয় যে সময় বিজ্ঞাপন nauseum নাটকগুলি ক্রিসমাস ঋতু. এখানে কটাক্ষপাত করা যাক. Ralphie PARKER: "এটা করা সংক্ষিপ্ত সব পরিচিত এতদ্দ্বারা রালফ পার্কার নিযুক্ত করা হয় যে লিটল অনাথ অ্যানি গোপন সদস্য বৃত্ত এবং সব এনটাইটেল করা হয় সম্মান এবং বেনিফিট তত্প্রতি ঘটছে. " Ralphie পার্কার (বলন): লিটল অনাথ অ্যানি স্বাক্ষর করেন. প্রতিস্বাক্ষরিত, পিয়ের আন্দ্রে! কালিতে. সম্মান এবং বেনিফিট, ইতিমধ্যে নয় বছর বয়সে. [সঙ্গীত বাজানো] [রেডিও অনর্থক] Ralphie PARKER: চলো. এর সঙ্গে এটি পেতে চলুন শুরু করা যাক. আমি যে জ্যাজ প্রয়োজন হবে না পাচারকারীদের এবং জলদস্যু সম্পর্কে. রেডিও ঘোষক: আগামীকাল শুনুন আখেরী সাহসিক জন্য রাতে কালো জলদস্যু জাহাজ এর. এখন, এটা সময় অ্যানি এর জন্য আপনি সদস্যদের জন্য গোপন বার্তা গোপন বৃত্ত. বাচ্চাদের, শুধুমাত্র সদস্যদের মনে রাখবেন, অ্যানি এর গোপন বৃত্ত অ্যানি এর গোপন বার্তা ডিকোড করতে পারে. মনে রাখবেন, অ্যানি আপনার উপর নির্ভর করে. বি 2 আপনার পিন সেট করুন. এখানে বার্তার 12, 11, 2-- Ralphie পার্কার (বলন): আমি আমার প্রথম গোপন বৈঠকে am. রেডিও ঘোষক: --25, 14, 11, 18, 16-- Ralphie পার্কার (বলন): ওহ, পিয়ের মহান ভয়েস আজ রাতের মধ্যে ছিল. আমি যে আজ রাতে এর বলতে পারে বার্তা ছিল সত্যিই গুরুত্বপূর্ণ. রেডিও ঘোষক: --3, 25. যে অ্যানি নিজেকে থেকে একটি বার্তা. যে কেউ বলতে না, মনে রাখবেন. [ঊর্ধ্বশ্বাস] Ralphie পার্কার (বলন): নব্বই সেকেন্ড পরে, আমি শুধুমাত্র রুম ঘর যেখানে নয় একটি ছেলে গোপনীয়তা এবং ডিকোড বসতে পারে. আহ. "বি" [Chuckles] Ralphie পার্কার (বলন): আমি পরের গিয়েছিলাম. "ই" প্রথম শব্দ "হিসেবে" হয়. হ্যাঁ! এটা সহজ ছিল এখন আসছে. "ইউ" [Chuckles] রান্ডি PARKER: হুম,, Ralphie উপর আসা. আমি অতি! Ralphie PARKER: আমি, ডান নিচে মা হবেন. ঘোড়া শোঁ শব্দ. "টি" "ও" "নিশ্চিত করা যাও. "কি" করতে ভুলবেন না "? লিটল অনাথ অ্যানি কি ছিল বলার চেষ্টা? কি "করতে ভুলবেন না"? মাদার: Ralphie, রান্ডি যেতে না করেনি. আপনি আসা আউট দয়া করে হবে? Ralphie PARKER: সমস্ত অধিকার, মা! আমি ডান আউট হবেন! Ralphie পার্কার (বলন): আমি কাছাকাছি এখন পেয়ে ছিল. টান খুবই ভয়ানক ছিল. এটা কি ছিল? গ্রহের ভাগ্য অনিশ্চয়তার মধ্যে থাকা হতে পারে. মাদার: Ralphie, রান্ডি যেতে না হয়! Ralphie PARKER: আমি সঠিক হতে হবে আউট, কান্দা অট্ট আউট জন্য! Ralphie PARKER (বলন): প্রায় নেই! আমার আঙ্গুলের আসেন! আমার মন ছিল একটি ইস্পাত ফাঁদ. প্রতিটি দড়ি আন্দোলিত. এটা প্রায় স্পষ্ট! হ্যাঁ! হ্যাঁ! হ্যাঁ! হ্যাঁ! Ralphie PARKER: "নিশ্চিত করা আপনার Ovaltine পান. " Ovaltine? একটি অপ্রীতিকর বাণিজ্যিক? [সঙ্গীত বাজানো] Ralphie PARKER: গোলাম আজম. [হাস্যময়] ডেভিড জে MALAN: যে তারপর তাই কি ক্রিপ্টোগ্রাফি একটি আভাস আপাততঃ একটি জন্য হতে পারে বিগতবত্সর থেকে পান. সুতরাং একটি দ্রুত ঘোষণার. আপনি এই বিনামূল্যে যদি শুক্রবার 1:15 অপরাহ্ন এবং হবে CS50 জন্য আমাদের সঙ্গে যোগদান করতে চান লাঞ্চ, এখানে এই URL এ নেতা. প্রথম প্রথম স্বাভাবিক হিসাবে পরিবেশন করা, আসা. কিন্তু সময়ের সঙ্গে সঙ্গে, আমরা নিশ্চিত যে করব অংশগ্রহণ চাই সবচেয়ে যে কেউ নির্দিষ্ট সময় নির্ধারণের জিনিস হতে পারে. তাই স্ট্রিং. আমরা Zamyla-- যাদের আছে আপনি এখন সম্ভবত পূরণ করেছি সমস্যা সেট 1 টি, যার নাম এইভাবে উচ্চারিত হয়. এবং আপনি তার নাম টাইপ অনুমান যে একটি কম্পিউটার প্রোগ্রাম GetString মত ব্যবহার করে. উদ্ধার করার জন্য যারা স্ট্রোক, কিভাবে আমরা একটি প্রতিনিধিত্বমূলক সম্পর্কে যান স্ট্রিং, একটি শব্দ, একটি অনুচ্ছেদ, বা এই এখানে মত একাধিক অক্ষর? আমরা প্রায় শেষ সময় বলত ইন্টিজার এবং সমস্যা যে পূর্ণসংখ্যা ওভারফ্লো সঙ্গে উঠা এবং ফ্লোটিং পয়েন্ট মান এবং সমস্যা যে স্পষ্টতা মধ্যে উঠা. স্ট্রিং সঙ্গে, আমরা অন্তত একটি বিট আরো নমনীয়তা আছে strings-- কারণ বাস্তব বিশ্ব মধ্যে একটি সুন্দর অবাধ দৈর্ঘ্য হতে পারে. বেশ ছোট, বেশ দীর্ঘ. কিন্তু তারপর, আমরা চলুন এটি কম্পিউটারের কখনও কখনও করতে পারেন যে মেমরি আউট এবং না এমনকি চালানো একটি বড় যথেষ্ট স্ট্রিং সঞ্চয়. কিন্তু এখন জন্য, এর ঠাহর করা শুরু করা যাক এই বাক্সে কিছু একটি স্ট্রিং এখানে. তাই ছয় যেমন বক্স, প্রতিটি যা একটি অক্ষর বা প্রতিনিধিত্ব করে "গৃহস্থালির কাজ." C-H একটি r-- - তাই "গৃহস্থালি" যে প্রত্যাহার সি বিল্ট ইন ডেটা ধরন এক এবং কি চমৎকার আপনি ব্যবহার করতে পারেন যে ধরণের একটি বিল্ডিং ব্লক হিসাবে, একটি ধাঁধা টুকরা, যদি আপনি হবে, একটি গঠন আমরা চালিয়ে যাব যে তথ্য বড় ধরনের একটি "স্ট্রিং." কল এখন, কি চিন্তা সম্পর্কে দরকারী এই ভাবে স্ট্রিং জিনিষ সম্পর্কে? ওয়েল, এটা আমরা করতে পারেন যে সক্রিয় আউট আসলে এই কাঠামো লিভারেজ আসলে পৃথক অ্যাক্সেস অক্ষর একটি চমত্কার সহজবোধ্য ভাবে. আমি এগিয়ে যান এবং তৈরি করা যাচ্ছে না নামক একটি ফাইল "stringzero.c," আপনি চান যাই হোক না কেন কিন্তু আপনি কল করতে পারেন. এবং অবশ্যই এর ওয়েবসাইটে হয় ইতিমধ্যে আগাম এই যেমন, তাই আপনাকে করতে হবে না সবকিছু টাইপ করুন. এবং আমি এগিয়ে যেতে চলেছি এবং প্রথম int প্রধান অকার্যকর করতে. এবং কয়েক দিনের মধ্যে, আমরা সরাইয়া জ্বালাতন করা শুরু করব এটা কেন কি অকার্যকর এখানে, প্রধান পরের, এবং তাই ঘোষণা Int. কিন্তু এখন জন্য, এগিয়ে আসুন কপি পেস্ট করুন. আমি একটি স্ট্রিং নামক ঘোষণা করা যাচ্ছে না. এবং আমি থেকে ফিরে যাচ্ছি যাই হোক না কেন ব্যবহারকারী ধরনের GetString. এটি একটি সহজ হতে যাচ্ছে প্রোগ্রাম, কোন নির্দেশাবলী, আমি অন্ধভাবে করা যাচ্ছে না ব্যবহারকারী জানেন যে আশা কি এটা সহজ রাখা না. এবং এখন আমি জন্য একটি লুপ আছে যাচ্ছি. এবং আমার জন্য লুপ এর ভিতরে আমি আমি শূন্য পায় কোন int আছে যাচ্ছে. এবং আমি, আবার, মাত্র একটি কনভেনশন বেড়ে চলেছে জন্য একটি সূচক পরিবর্তনশীল, কিন্তু আমি চাই যাই হোক না কেন এই পেরেছিলাম. আমি ভাল than-- কম কাজ করতে যাচ্ছি , Zamyla নাম ছয় অক্ষর দীর্ঘ. আমি হার্ড যাচ্ছি এখন সেখানে কোড যে. এবং তারপর আমি ++. এবং এখন এই তরঙ্গায়িত ভিতরে ধনুর্বন্ধনী আমি printf, কি করতে যাচ্ছি এবং আমি এক প্রিন্ট করতে চান একটি সময়ে অক্ষর. তাই আমি% গ ব্যবহার করতে যাচ্ছি সম্ভবত প্রথম সময়. এবং তারপর আমি প্রতিটি মুদ্রণ করতে চান নিজস্ব লাইন চরিত্র. তাই আমি একটি করা যাচ্ছে না সামান্য ব্যাকস্ল্যাশ n আছে. বন্ধ উদ্ধৃতি. এবং এখন আমি এখানে কিছু করতে চান. আমি প্রিন্ট আউট করতে চান স্ট্রিং নির্দিষ্ট অক্ষর, গুলি, আমি iterating করছি ছয় পর্যন্ত শূন্য থেকে. অন্য কথায়, আমি চাই এর i'th অক্ষর মুদ্রণ. এখন কিভাবে এই আমি কি করতে পারেন? ভাল অনেক বাক্সে মত এখানে এই উপস্থাপনা, ধরনের, বক্সিং এর ধারণা ভেলকি দেখান আপ মধ্যে অক্ষর, আপনি একভাবে তা করতে পারে চিহ্নগুলি সিন্টেক্সের কেবল নির্দিষ্ট করে সি, আমি চরিত্র i'th এর এর প্রিন্ট আউট করতে চান. বর্গাকার বন্ধনী ব্যবহার করে আপনার কম্পিউটার এর কীবোর্ড একটি মার্কিন কীবোর্ড উপর যে সাধারণত আপনার রিটার্ন কি উপরে. তাই এই বেশ অধিকার না এখনো, আপনি লক্ষ্য করে হতে পারে. কিন্তু আমি ধরনের যাচ্ছি অন্ধভাবে এখানে এগিয়ে কামারশালা. এবং আমি স্ট্রিং 0 করতে করতে যাচ্ছি. আমি এই কাজ কিন্তু আগে, এর দেখতে দিন আমরা কিছু সাধারণ ভুল কহা করতে পারেন না. এই কম্পাইল করতে যাচ্ছে? না, আমি জিনিস আভা অনুপস্থিত করছি. লাইব্রেরি আমি শুনেছি. সুতরাং ফাইল হেডার যা আমি এখানে যোগ করতে চান হতে পারে? হ্যাঁ. শ্রোতা: আপনি প্রয়োজন স্ট্যান্ডার্ড ইনপুট / আউটপুট [শ্রবণাতীত] ডেভিড জে MALAN: চমৎকার. তাই আমি স্ট্যান্ডার্ড ইনপুট / আউটপুট প্রয়োজন. জন্য কি উদ্দেশ্য আমি স্ট্যান্ডার্ড ইনপুট / আউটপুট চান? Printf, জন্য. তাই stdio.h অন্তর্ভুক্ত. এবং আপনি আমি যে প্রস্তাব কি কারণে CS50 লাইব্রেরি? স্ট্রিং আছে. সুতরাং আমরা দেখতে পাবেন CS50 এর লাইব্রেরি করছে একটি স্ট্রিং এই ধারণা তৈরি. কিন্তু এখন জন্য, আপনি শুধু মনে করতে পারেন এটি একটি প্রকৃত তথ্য টাইপ. সুতরাং যে একটু পরিষ্কার করা হবে. এবং এখন আমি এগিয়ে যেতে চলেছি এবং প্রকৃতপক্ষে স্ট্রিং 0 করতে না. সংকলিত. তাই ভালো. তাই আমরা করতে পারেন জুম আমাকে ./string0 আরো ঘনিষ্ঠভাবে কি ঘটছে তা দেখতে. লিখুন. টু Z একটি এম ওয়াই এল একটি লিখুন. এবং আমরা, Zamyla নামের প্রিন্ট আউট করেছি. তাই যে বেশ ভাল. তাই এখন এর এগিয়ে যান এবং আবার এই প্রোগ্রাম চালানো, এবং Daven এর পূর্ণ নাম টাইপ করুন. আশ্চর্য, আশ্চর্য. লিখুন. হুম. আমরা Daven এর ছাপা না সঠিকভাবে পূর্ণ নাম. এখন এই সুস্পষ্ট হওয়া উচিত কারণ কি পশ্চাতের দৃশ্য, বাছাই করা, মূঢ় নকশা সিদ্ধান্ত? হ্যাঁ, আমি হার্ড কোডেড আমার লুপ জন্য ছয় ভিতরে. এখন আমি যে কারণ আমি, Zamyla এর নাম জানতাম ছয় অক্ষর হতে যাচ্ছে. কিন্তু এই না একটি সাধারণ সমাধান. এটি সক্রিয় আউট, তাই আমরা পরিবর্তনশীল করতে পারেন একটি স্ট্রিং এর দৈর্ঘ্য চিন্তা strlen একটি ফাংশন বলা কল করে. আবার, ইচ্ছাকৃতভাবে সংক্ষিপ্ত শুধু নামে টাইপ করতে এটি আরও বেশি সুবিধাজনক করা. কিন্তু যে সমার্থক এর একটি স্ট্রিং এর দৈর্ঘ্য পেয়ে. আমি আমার টার্মিনাল ফিরে যেতে চলেছি উইন্ডো এবং কম্পাইলার পুনরায় সঞ্চালন করা হয়. কিন্তু এটা আমার এ yelling এর. পরোক্ষভাবে প্রকাশক লাইব্রেরি ফাংশন ঘোষণা const-- int-স্বাক্ষরবিহীন ধরনের সঙ্গে strlen আমি হারিয়ে গেছি. সম্পূর্ণরূপে. সুতরাং, বিশেষ করে আপনার চোখের উপর চকচকে শুরু ভালো ত্রুটি বার্তা, ফোকাস সঙ্গে সত্যি বলতে প্রথম কয়েক শব্দের উপর. আমরা সমস্যা হয় জানেন লাইন 8, এখানে নির্দেশিত. এবং এটি স্ট্রিং 0.c আছে. পরোক্ষভাবে লাইব্রেরি ফাংশন strlen. সুতরাং যে সাধারণত যাচ্ছে ত্রুটির বার্তা একটি প্যাটার্ন হতে. পরোক্ষভাবে কিছু প্রকাশক. তাই সংক্ষিপ্ত, আমি করলো কি আছে এখানে, 8 লাইন থেকে সম্মান সঙ্গে কাজ করেছেন. হতে পারে কি সমাধান এমনকি হতে আপনি নিজের strlen ব্যবহার ছিল না তাহলে কি হবে? শ্রোতা: একটি ভিন্ন লাইব্রেরী অংশ? ডেভিড জে MALAN: পার্ট বিভিন্ন লাইব্রেরি. এটি ঘোষণা করা হয়, তাই, তাই কথা বলতে. এটা কিছু ফাইল উল্লেখ করা হয় stdio.h এবং cs50.h. তুলনায় অন্যান্য এখন যেখানে এটি সংজ্ঞায়িত করা হয়? যাও সৎ হবে, আপনি হয় ঠিক আছে আপনার মাথার উপরে বন্ধ এই জানি, অথবা আপনি এই Google এবং খুঁজে বের করতে. অথবা এই কি জানেন, আমি CS50 মধ্যে খোলা করেছি টার্মিনাল প্রোগ্রাম, প্রয়োগ, যা শুধু বড়, পূর্ণ পর্দা সংস্করণ কি জন্য gedit উইন্ডোর নীচে আছে. এবং এটি একটি আছে দেখা যাচ্ছে যে বলা একভাবে সংক্ষিপ্ত কমান্ড, আপনি টাইপ যেখানে ম্যানুয়াল, জন্য মানুষ এবং একটি ফাংশন এর নাম, আঘাত লিখুন আপনি মোটামুটি ফিরে পাবেন রহস্যময় ডকুমেন্টেশন. এটা যে সাধারণত শুধুমাত্র পাঠ্য এর এই মত সামান্য কিছু দেখায়. এটি একটি সামান্য অপ্রতিরোধ্য প্রথম নজরে. কিন্তু অকপটে আমি যাচ্ছি আমার চোখের উপর চকচকে দিন এবং শুধুমাত্র অংশ ফোকাস আমি মুহূর্ত জন্য যত্নশীল. এই যা. যা গঠনের দিক দিয়া মনে হচ্ছে কিছু আমি সাথে পরিচিত নই. প্রকৃতপক্ষে man পৃষ্ঠা, তাই কথা বলতে, আপনাকে বলতে হবে কি হেডার একটি ফাংশন ফাইল মত strlen সংজ্ঞায়িত করা হয়. তাই আমি gedit এ ফিরে যান এখন করা যাচ্ছে না. এবং আমি এগিয়ে যান যাচ্ছে এবং এখানে অন্তর্ভুক্ত যোগ করুন এবং ফাইল সংরক্ষণ করুন. আমি সঙ্গে পর্দা পরিষ্কার করা যাচ্ছে না কন্ট্রোল এল আপনি হতাশ হয়েছি. এবং আমি পুনরায় চালানো যাচ্ছে না string.0, এই সময় প্রনয়ন. ./string.0, Zamyla. যে আমাকে যেতে দাও কাজ করলো এগিয়ে এবং ড্যাভেনপোর্ট সঙ্গে এটি পুনরায় আরম্ভ করুন. লিখুন. এবং যে, খুব, কাজ করলো. সুতরাং আমরা এই তুলনায় কিছুটা ভালো করতে পারেন যদিও, আমরা পরিপাটি কিছু শুরু করতে পারেন শুধু একটি সামান্য বিট আপ. এবং আমি আসলে যাচ্ছি এখন অন্য একটি জিনিস পরিচয় করিয়ে দিতে. আমি এগিয়ে যান যাচ্ছে এবং বিভিন্ন ফাইলের মধ্যে এই সংরক্ষণ করুন. এবং আমি কল করা যাচ্ছে না এই ফাইলটি string1.c মাত্র কোড সঙ্গে সামঞ্জস্যপূর্ণ হতে আপনি অনলাইন খুঁজে পেতে সক্ষম হবেন. এবং এর মধ্যে উপর ফোকাস ঠিক একই কোড. এটা আমি করেছি দেখা যাচ্ছে যে গ্রহণ হয়েছে ধরনের মঞ্জুর আসলে আমার ল্যাপটপ যে, এবং ঘুরে, CS50 প্রয়োগ মেমরি অনেক, অনেক আছে র্যাম, স্থান বাইট অনেক যা আমি স্ট্রিং সংরক্ষণ করতে পারেন. কিন্তু বাস্তবতা আমি দীর্ঘ টাইপ করে যথেষ্ট, এবং যথেষ্ট স্ট্রোক, আমি তত্ত্ব ধরনের পারা আরো অক্ষর আমার কম্পিউটার ছাড়া শারীরিকভাবে জন্য মেমরি আছে. এবং এই সমস্যা হয়. অনেক কোন int শুধুমাত্র মত তত্ত্ব, তাই উচ্চ গণনা, আপনি শুধুমাত্র তাই অনেক অক্ষর ঠুসা পারেন আপনার কম্পিউটার এর RAM উপস্থিত না বা র্যান্ডম মধ্যে প্রবেশ স্মৃতি. তাই আমি ভাল কহা ছিল এই সমস্যা, এমনকি এটি একটি বিরল হতে পারে, যদিও কোণ ক্ষেত্রে, তাই কথা বলতে. প্রায়ই যে ঘটবে না, ঘটতে পারে. এটা এবং যদি আমি না কহা এবং এটি জন্য প্রোগ্রাম, আমার প্রোগ্রাম কি কে জানে কি করতে পারে. , যাই হোক না কেন পুনরায় বুট করার, ফ্রিজ স্তব্ধ. কিছু ঘটতে পারে প্রত্যাশিত. সুতরাং আমি কি করতে যাচ্ছি এখন, অত: পর সত্যিই, কখনও অন্ধভাবে আমি আগে এর মত একটি ভেরিয়েবল ব্যবহার ফেরত মান নির্ধারিত হয়েছে GetString মত কিছু অন্যান্য ফাংশন, আমি নিশ্চিত করা যাচ্ছে না যে তার মান বৈধ. তাই আমি পড়া থাকার থেকে শুধুমাত্র জানেন GetString জন্য CS50 এর ডকুমেন্টেশন, যা শেষ পর্যন্ত আমরা এ নির্দেশ করব, যে GetString একটি বিশেষ চিহ্ন প্রদান সব শূন্য, n-ইউ এল এল নামক যদি কিছু গোলমাল, ক্যাপ. তাই সাধারণত, এটি একটি স্ট্রিং প্রদান করে. কিন্তু এটা n-ইউ, L-L-- প্রদান করে অন্যথায় যদি আমরা শেষ পর্যন্ত সত্যিই কি দেখতে পাবেন যে শুধু অর্থ যথাযথভাবে কিছু খারাপ ঘটেছে. এখন এই অনেক শয়তান মত, মানে, আমি, সি এখানে একটি শর্ত পরীক্ষা করতে পারবেন এর সমান শূন্য না করে. আপনি আগে দেখা এই না করেছি তাই, শুধু মানে এই সমান না. তাই এটা বিপরীত , প্রত্যাহার, যা সমান সমান,, একক থেকে ভিন্ন নিয়োগ, যা সমান. এর সমান না, তাই যদি শূন্য, শুধুমাত্র তারপর কি আমি এই লাইন কোড এক্সিকিউট করতে চান. তাই অন্য কথায়, আমি অন্ধভাবে আকর্ষণীয় আগে এবং iterating শুরু এর উপর, এবং চিকিত্সা এটা একটা ক্রম হিসাবে যদিও অক্ষর, আমি প্রথম চেক করা যাচ্ছে না একটি মিনিট অপেক্ষা করুন, স্পষ্টভাবে না হয় এই বিশেষ মান সমান শূন্য? যদি তা না হয়, খারাপ কিছু ঘটতে পারে. এবং এখন জন্য, যে খারাপ জিনিস অনুমান আপনার প্রোগ্রাম ক্র্যাশ মানে কি ঘটছে, এবং আপনি অগত্যা পুনরুদ্ধার করতে পারবেন না. তাই অকপটে, এটা uglier দেখায়. এটা কোন ধরনের এ এক নজরে এখন মাথা খাচ্ছে. কিন্তু এই আরো পরিণত হবে দীর্ঘ আগে পরিচিত. কিন্তু আমি উত্থাপন করা যাচ্ছে না এখন অন্য একটি উন্নতি. যে শুদ্ধি একটি উন্নতি. আমার প্রোগ্রাম, কারণ এখন আরো সঠিক বিরল ক্ষেত্রে যে যথেষ্ট নয় মেমরি , আমি এটা হ্যান্ডেল করা হবে বিদ্যমান, এবং আমি কিছুই করব. আমি অন্তত বিপর্যস্ত হবে না. কিন্তু এখানে এর একটি চূড়ান্ত সংস্করণ না দেওয়া. এবং একটি ফাইল string2.c বলা হয়. আমি যে পেস্ট করা যাচ্ছে না শুধু একটা মুহূর্ত জন্য একই কোড, এবং আমি এই উজ্জ্বল করা যাচ্ছে না শুধু একটা মুহূর্ত জন্য এখানে লাইন, 11,,. এখন বাস্তবতা যে স্মার্ট কম্পাইলার হয় ঝনঝন শব্দ আমাদের জন্য এই ঠিক করতে পারে মত দৃশ্যগুলো পিছনে আমাদের কখনো না জেনে. কিন্তু এই সম্পর্কে চিন্তা করা যাক মৌলিকভাবে একটি সমস্যাযুক্ত নকশা হিসেবে. কোড এই লাইন, অবশ্যই, হয় বলার অপেক্ষা রাখে না, কিছু পরিবর্তনশীল আমি 0 থেকে আরম্ভ. যে বেশ সহজবোধ্য. এবং আবার এই কি বিবৃতি, এখানে, আমি করছেন, ++? আমরা আগে দেখা যায়, কিন্তু আমরা করেছি সত্যিই এটি সম্পর্কে কথা বলতে না. শ্রোতা: আমি বৃদ্ধিশীল. ডেভিড জে MALAN: বৃদ্ধিশীল আমি. এর মাধ্যমে প্রতি পুনরাবৃত্তির তাই এই লুপ, প্রত্যেক চক্র, আপনি এক দ্বারা আমি বৃদ্ধিশীল করছি. সুতরাং এটা বড়, এবং বড় পায়, এবং লুপ শেষ পর্যন্ত বড়. এটা কিভাবে বিনষ্ট করে? আচ্ছা এই মধ্যম আছে আমরা আগে ব্যবহার করেছি যা অবস্থা. আপনি দেখা করেছি পি সেট এগিয়ে যান. কিন্তু এই কথা কি? তাই নিম্নলিখিত লুপ কি দীর্ঘ আমি কি কম হিসাবে? শ্রোতা: স্ট্রিং এর দৈর্ঘ্য. ডেভিড জে MALAN: স্ট্রিং এর দৈর্ঘ্য. সুতরাং এটা বেশ পরিচ্ছন্নভাবে অনুবাদ যে অর্থে ইংরেজি. এখন সমস্যা হয় প্রত্যেক সময় আমি যে তত্ত্ব এই লুপের মাধ্যমে বারবার, আমি এই প্রশ্ন জিজ্ঞাসা করছি. আমি স্ট্রিং দৈর্ঘ্য চেয়ে কম? আমি স্ট্রিং দৈর্ঘ্য চেয়ে কম? এখন আমি প্রতিটি পুনরাবৃত্তির পরিবর্তন করা হয়? এটা হয়. ++ এর কারণ. তাই প্রতি পুনরাবৃত্তির আমি পেয়ে বড় হয়. কিন্তু এর বড় হচ্ছে, অথবা ছোট, বা এ সব পরিবর্তন? নং নকশা পদ, অক্ষ এক তাই বরাবর যা আমরা কোড মূল্যায়নের চেষ্টা বর্গ মধ্যে, এই ধরনের মূঢ় মনে. আপনি আক্ষরিক মত, প্রতি পুনরাবৃত্তির এই লুপ জিজ্ঞাসা আবার একই অভিশাপ প্রশ্ন, এবং আবার, এবং আবার, এবং আক্ষরিক এটা না পরিবর্তন করতে হবে. আমি স্পর্শ করছি না অন্তত যদি এর বিষয়বস্তু পরিবর্তন করার চেষ্টা করছে. তাই আমি এই তুলনায় কিছুটা ভালো করতে পারেন. এবং আমি কি করতে যাচ্ছি না মাত্র এক পরিবর্তনশীল আমি ঘোষণা কিন্তু একটি দ্বিতীয় পরিবর্তনশীল আমি ইচ্ছামত হবে কিন্তু সাধারনত, এন কল. এন সমান বরাদ্দ এর স্ট্রিং দ্বারা. এবং তারপর এখানে উপর, আমি যাচ্ছি তাই, একটি সামান্য চতুর অপ্টিমাইজেশান কি দিনের শেষে, যে কথা বলতে কোন সঠিক বা কোন কম সঠিক আগের চেয়ে. কিন্তু এটি একটি ভাল নকশা. আসলে আমি ব্যবহার করছি যে কম সময়, কম CPU চক্র, তাই একই উত্তর, কথা বলতে প্রশ্ন, কিন্তু মাত্র একবার. যে সাধারণ কোন প্রশ্ন উন্নতি নীতি, একটি প্রোগ্রাম এর দক্ষতা, বলে? হ্যাঁ? শ্রোতা: কেন আপনি কি করতে [শ্রবণাতীত] ব্যবহার? ডেভিড জে MALAN: গুড প্রশ্ন. তাই কেন আমরা শেষ ++ করা না আমি পরিবর্তে আমি শুরুতে? এই ক্ষেত্রে, এটা আছে কোন কার্যকরী প্রভাব. এবং সাধারণভাবে, আমি ঝোঁক postfix অপারেটর ব্যবহার এটি একটি সামান্য আরো স্পষ্ট হিসাবে যাতে অপারেশন ঘটছে যখন. যারা অপরিচিত জন্য, অন্য আছে আপনি ++ আমি কাজ করতে পারে, যেখানে বিবৃতি. এই বৈশিষ্ট্যগুলি হয় এই ক্ষেত্রে সমতুল্য অন্য কিছুই নেই, কারণ যে না incrementation কাছাকাছি. কিন্তু আপনার সাথে আসা আপ করতে পারেন ক্ষেত্রে এবং লাইনের কোড যা যে একটি পার্থক্য তোলে. তাই সাধারণত, আমরা কি না এমনকি এই একটি বিষয়ে কথা বলুন. উন্মুক্তভাবে, এটা আপনার তোলে কোড sexier নেই, এবং সাজানোর বর্ষাতি, এবং কম অক্ষর. কিন্তু বাস্তবতা, এটি একটি অনেক কঠিন হয় আমি আমার মন মোড়ানো এমনকি মনে করি, কখনও কখনও, এটা প্রায়, অপারেশন আদেশ. একটি সরাইয়া হিসাবে, যদি তাই আপনি যদি সত্যিই, এই পছন্দ না এমনকি এই ধরনের ছবি, যদিও এখানে ক্লিক করুন, আপনি করতে পারেন আমি + = 1, যা uglier সংস্করণ postfix না incrementation জন্য একই ধারণা. আমি এই এবং আপনি বলে এটা মজা করা উচিত, কিন্তু আপনি কোড দেখতে আসতে হবে দীর্ঘ আগে সুন্দর কিছু. [হাস্য] ডেভিড জে MALAN: রাইট? হ্যাঁ. মাঝখানে প্রশ্ন. শ্রোতা: আপনি int-n বলতে হবে? ডেভিড জে MALAN: আপনি কি int-n বলতে হবে না. ইতিমধ্যে আমরা কোন int বলেন কারণ, আপনি আবার এটা বলতে হবে না. ধরা n যাও আছে আমি একই ডাটা টাইপ করা. সুতরাং যে এখানে শুধু একটি সুবিধা আছে. হ্যাঁ. শ্রোতা: আপনি উপর যেতে পারি মুদ্রণ অক্ষর গুলি বন্ধনী আমি আবার? ডেভিড জে MALAN: অবশ্যই. সুতরাং% গ, শেষ থেকে প্রত্যাহার সময়, শুধু একটি স্থানধারক. এখানে একটি গৃহস্থালি করা মানে. ব্যাকস্ল্যাশ এন, অবশ্যই, শুধু মানে এখানে একটি লাইন বিরতি রাখা. ঠিক এখন, পাতা, তাই নতুন সিনট্যাক্স এই টুকরা. এবং এই আক্ষরিক দখল, বলছে না স্ট্রিং গুলি বলা হয় এবং পেতে তার i'th চরিত্র, তাই কথা বলতে. এবং আমি i'th চরিত্র বলে রাখা কারণ এই লুপ প্রতিটি পুনরাবৃত্তির আমরা মুদ্রণ হিসাবে যদিও এটা আউট, প্রথম গুলি বন্ধনী 0, একজন প্রোগ্রামার বলতে পারে. তারপর তারপর, বন্ধনী 1 S বন্ধনী 2, তারপর 3, 4. তবে অবশ্যই এটি একটি পরিবর্তনশীল, তাই আমি ঠিক আমি এটি প্রকাশ করে. কী, যদিও, বুঝতে হয়, আপনি না করেছি, বিশেষ করে যদি এই বিশ্বের acclimating হয়েছে প্রোগ্রামিং, যেখানে আমরা সব অতি, শূন্য থেকে গণনা করা বলে মনে হচ্ছে এখন শূন্য থেকে গণনা শুরু. কারণ স্ট্রিং, প্রথম অক্ষর, , Zamyla মধ্যে Z ভালো বা খারাপ জন্য পাঁচ নম্বর শূন্য এ বাস যাচ্ছে. ঠিক আছে, তাই আমাকে আনা যাক এখানে, Zamyla আমাদের ফিরে এবং সত্যিই কি যাচ্ছে দেখতে ফণা নীচে. তাই টাইপ কাস্টিং এই ধারণা আছে. আপনি আসলে থাকতে পারে ইতিমধ্যে এই সঙ্গে অভিনয়, হয়তো হ্যাকার জন্য পি সংস্করণ এক সেট. কিন্তু টাইপ কাস্টিং শুধু বোঝায় সি ক্ষমতা এবং কিছু অন্যান্য ভাষা অন্য এক তথ্য টাইপ রূপান্তর. এখন আমরা কিভাবে এই দেখতে হতে পারে চমত্কার-straightforwardly? সুতরাং, শুরুতে এই, রিকল হয় ইংরেজি বর্ণমালার. এবং কনটেক্সট থেকে প্রত্যাহার ভালো একটি সপ্তাহ আগে হওয়া ASCII হয়. আমেরিকান স্ট্যান্ডার্ড কোড তথ্য বিনিময়ের জন্য. যা শুধু একটি সত্যিই দীর্ঘ পথ অক্ষর থেকে একটি ম্যাপিং বলছে সংখ্যা, এবং নম্বর থেকে অক্ষর. তাই এখানে একটি এম, বিন্দু বিন্দু মাধ্যমে বিন্দু, লাইন আপ, প্রত্যাহার, আপ দশমিক সংখ্যা 65. এবং আমরা কথা বলতে না স্পষ্টভাবে এই সম্পর্কে, কিন্তু নিশ্চয় অনুরূপ আছে ছোট হাতের অক্ষর সংখ্যা. এবং প্রকৃতপক্ষে, আছে. বিশ্বের কিছু বছর করার সিদ্ধান্ত নিয়েছে আগে যে সামান্য একটি, একটি ছোট হাতের অক্ষর, 97 হতে যাচ্ছে. এবং সামান্য খ যাচ্ছে তাই ঘোষণা 98, এবং হবে. এবং অন্য কোন কী জন্য আপনার কীবোর্ড আছে, বিট অনুরূপ একটি প্যাটার্ন হতে যাচ্ছে. বা, equivalently, একটি দশমিক সংখ্যা. তাই হাতের প্রশ্ন, তারপর, আমরা কিভাবে করতে পারেন আসলে ফণা নীচে এই দেখতে? তাই আমি আবার জন্য gedit যেতে উপর করা যাচ্ছে না. বরং টাইপ তুলনায় গোড়া থেকে এই এক, আমি এগিয়ে যান যাচ্ছে এবং শুধু কিছু খুলুন আজ এর কোড থেকে হওয়া ASCII শূন্য বলা হয়. এবং ASCII শূন্য ভালো দেখায়. তাই আসুন এই নিয়ে আমাদের হৃদয় ও মন জয় মোড়ানো যাক. সুতরাং প্রথম, আমি মন্তব্য করেছি যা সুন্দর কোড. এটা আক্ষরিক কারণ কি আশা আমাকে বলছে, য়ের বড়হাতের অক্ষর ছোটহাতের অক্ষর জন্য একটি ম্যাপিং প্রদর্শন. এখন আমি বেশ জানি না আমি কি যে মানে, তাই এর আবিষ্কার করা যাক. ইংরেজি, হয়তো কিছুটা techie ইংরেজি, কি লাইন 18 প্রদর্শিত না আমাদের জন্য কাজ করা? মাত্র 18 লাইন. এটা কি inducing এর? এটা কি এখানে মরা যাচ্ছে? শ্রোতা: একটি লুপ. ডেভিড জে MALAN: একটি লুপ. এবং কিভাবে অনেক বার বারবার যাচ্ছে যে? শ্রোতা: [ভয়েসেস interposing] ছয় বার. ডেভিড জে MALAN: নেই ছয় বার. শ্রোতা: 26 বার. ডেভিড জে MALAN: 26 বার. হ্যাঁ, দুঃখিত. 26 বার. কেন? ওয়েল, এটা একটু অদ্ভুত, কিন্তু আমি 65 থেকে গণনা শুরু করেছি. যা অদ্ভুত, কিন্তু ভুল হয় না. এটা বলতে প্রতি খারাপ না. এবং আমি করছি যে শুধুমাত্র কারণ, এই যেমন, আমি ধরনের anticipating করছি যে মূলধন 65. এখন এই সবচেয়ে মার্জিত উপায় হার্ড কোড ধরনের, এই কাজ করতে গূঢ় মান যে কোন এক কখনও মনে রাখবেন বলে আশা করা হচ্ছে. কিন্তু এখন জন্য, আমি লক্ষ্য করছি 65 প্লাস 26 মাধ্যমে এই পর্যন্ত করছেন. দৃশ্যত আমি চাই না, কারণ আমার মাথার মধ্যে পাটীগণিত কি. তাই আমি কম্পাইলার এটা করতে দেওয়া হবে. কিন্তু তারপর প্রতিটি লুপ উপর, প্রতিটি পুনরাবৃত্তির লুপ, আমি বৃদ্ধিশীল করছি. তাই এখন এই একটি সামান্য রহস্যপূর্ণ. কিন্তু আমরা মৌলিক বিল্ডিং থাকতে হবে যা দিয়ে ব্লক এই বুঝতে. % গ একটি গৃহস্থালি জন্য একটি স্থানধারক. % আমি কোন int জন্য একটি স্থানধারক. এবং এটি দ্বারা এই ব্যবহার দেখা যাচ্ছে যে নতুন বাক্য গঠন, এই বন্ধনীসমন্বিত, তাই কথা বলতে, একটি ডাটা টাইপ, তাই একটি বন্ধনীর ভিতরে, আমি চিকিত্সা কম্পাইলার বাধ্য করতে পারে আমি না একটি পূর্ণসংখ্যা হয়, কিন্তু একটি গৃহস্থালি হিসাবে. যার ফলে আমার চরিত্র দেখাচ্ছে যে সংখ্যা সমতুল্য. এখন নিচে এখানে, এই কোড অনেক সুন্দর অভিন্ন. আমি শুধু করতে চেয়েছিলেন সুপার স্পষ্ট সত্য আমি 97 এ শুরু করছি যে, যা একটি ছোট হাতের অক্ষর. আপ 26 আরো অক্ষর মাধ্যমে. এবং আমি আবার অনুরুপ করছি আমি ঢালাই, তাই কথা বলতে. অথবা টাইপ কাস্টিং আমি, তাই কথা বলতে. একটি গৃহস্থালি কোন int থেকে. তাই শেষ ফলাফল হতে যাচ্ছে, উন্মুক্তভাবে, তথ্য আমরা ইতিমধ্যে জানি. আমি করতে যাচ্ছি ASCII-0 গ বিন্দু না dot--. লক্ষ্য করুন, আপনি সম্ভবত যে ভুল আমি ঘটনাক্রমে করেনি. ASCII-0 না. এখন আমি ./ascii 0 কি করতে যাচ্ছি. আমি জুম, এবং দুর্ভাগ্যবশত হবে এটা পর্দা বন্ধ স্ক্রল যাচ্ছে. কিন্তু আমরা একটি সম্পূর্ণ চার্ট দেখতে 97 একটি মানচিত্র, 98 খ মানচিত্র, এবং আমরা আরও স্ক্রল আপ যদি একটি, অবশ্যই, 65 মানচিত্র. তাই এই বলে যে শুধুমাত্র আমরা কি প্রচার করে থাকেন, এই সমানতা আছে, হয় বাস্তবতা আসলে কেস. তাই এই দ্রুত পরিবর্তন. আমার ASCII-1.c খুলুন. এবং কেমন, এই চতুর বিজ্ঞপ্তি , এই ব্যাখ্যা. এই ASCII-1.c, এবং এই পাগল জিনিস লক্ষ্য করা. এবং সত্যিই এই হৃদয় পায় কি কম্পিউটার করছেন. এমনকি আমরা মানুষের যদিও letters-- পদ গণনা করা হয় না আমি চিন্তা শুরু করবেন না, সমস্ত অধিকার একটি তারপর বো, এবং শারীরিক বস্তু গণনা যারা ব্যবহার. আপনি অবশ্যই আমি চাই বলতে পারেন বলা কিছু পরিবর্তনশীল আরম্ভ সি কিন্তু আমি এই anything-- বলা যেতে পারে তাই সি মূলধন এ সক্রিয়া করা হয় দিনের শেষে, কম্পিউটার কারণ আপনি সংরক্ষণ করছেন কি না, না যত্ন এটি শুধুমাত্র আপনি চান কিভাবে বজায় রাখে যে তথ্য উপস্থাপন. আপনি কম্পিউটার চান কিভাবে বিট যে প্যাটার্ন ব্যাখ্যা? তাই এই কিছু আমি না হয় সাধারণত করছেন সুপারিশ করবে. এটা সত্যিই শুধু একটি উদাহরণ বহন করা যে আপনি একেবারে পারেন একটি গৃহস্থালি একটি পূর্ণসংখ্যা আরম্ভ. কারণ নীচে একটি গৃহস্থালি ফণা, অবশ্যই, 0 থেকে 255 শুধু একটি সংখ্যা. সুতরাং আপনি অবশ্যই করতে পারেন কোন int এর ভিতরে রাখা. এবং কি এই হয় প্রমান আমরা যে এক থেকে রূপান্তর করতে পারেন এখানে, অন্য টাইপ করুন, শেষ পর্যন্ত একই জিনিস মুদ্রণ. এবং সত্য, এই আমি online-- ঠিক করবে এখানে, আবার, এই বলতে বোঝানো হয়. আমার অনলাইন এই পরিষ্কার করা যাক, এবং আমরা করব হিসাবে প্রয়োজন একটি অনলাইন walkthrough মধ্যে দেখুন, কি আছে অভিপ্রেত ছিল. ঠিক আছে. এখন জড়িত তাই শেষ উদাহরণ একটি এবং খ এর এবং তারপর আমরা করব একটি খাঁজ আপ জিনিষ নিতে. একটি এবং বো এর এবং এর সঙ্গে তাই মূলধন গ এর এবং সমানতা উহার, আসুন এখানে, এই উদাহরণ কটাক্ষপাত করা. আরেকটি কোড উদাহরণ. আমরা যে এক খোলা পাবেন ইতিমধ্যে তৈরি, আমরা তাই এটি টাইপ করতে হবে না সব গোড়া থেকে আউট. এবং দলিল বিজ্ঞপ্তি আমরা একাধিক হেডার ব্যবহার করছেন যা মধ্যে ফাইল, আমাদের নতুন বন্ধু, string.h. এখন এই প্রথম এ দেখায়, এক নজরে, একটু রহস্যপূর্ণ. কিন্তু আমরা যুক্তি না পারেন, এর দেখতে দিন এখানে কি ঘটছে মাধ্যমে. প্রথম আমি ব্যবহারকারী থেকে একটি পংক্তি পেতে, এবং আমি একটি পরিবর্তনশীল স্ট্রিং করা বলা হচ্ছে. আগে থেকে কপি পেস্ট. লাইন 22, আমি দৃশ্যত আছি ঠিক কি কি করছেন আমি iterating করছি, একটি মুহূর্ত আগে এর মধ্যে অক্ষর উপর. এবং এখানে নতুন কৌশল ব্যবহার করা হয় স্ট্রিং দৈর্ঘ্য, গৌণ অপ্টিমাইজেশান এন স্ট্রিং দৈর্ঘ্য সংরক্ষণ, বরং আবার strlen কলিং, এবং আবার, এবং আবার. এবং শুধু তোমার n কম যে চেক. এখন এখানে, কিছু পেতে একটু আকর্ষণীয়. কিন্তু এটি শুধু একটি আবেদন এই একই নতুন ধারণা. ইংরেজি না কি আমি প্রতিনিধিত্ব গুলি বন্ধনী? শ্রোতা: প্রতিটি হিসাব চরিত্র [শ্রবণাতীত]. ডেভিড জে MALAN: প্রতিটি অক্ষর হিসাব. এমনকি আরো succinctly, এর বন্ধনী আমি প্রতিনিধিত্ব কি? কি আপনি বলতে. এখানে ঘটনাস্থলেই আপনি না করা. শ্রোতা: Well-- ডেভিড জে MALAN: শব্দ যদি যাই তাই আপনি যদি স্ট্রিং starts-- যা, Zamyla, হয় শ্রোতা: --you মোকাবেলা অক্ষর separately-- ডেভিড জে MALAN: গুড. ঠিক. বর্গাকার বন্ধনী স্বরলিপি আপনি পারবেন প্রতিটি অক্ষর পৃথকভাবে অ্যাক্সেস করতে, তাই এর বন্ধনী 0 হতে যাচ্ছে স্ট্রিং প্রথম অক্ষর. এর বন্ধনী 1 হতে যাচ্ছে তাই ঘোষণা দ্বিতীয়, এবং. তাই প্রশ্ন আমি জিজ্ঞাসা করছি, এখানে, এই অবস্থায় কি? এর বৃহত্তর i'th চরিত্র কম বা তার সমান একটি ছোট হাতের অক্ষর? এবং এই, এখানে, মানে কি ডবল ampersands সঙ্গে? শ্রোতা (একসাথে) এবং. ডেভিড জে MALAN: আর. এই মাত্র সমতুল্য. এবং সি একটি শব্দ নয়, আপনি আছে ব্যবহার, মরণ, এবং চিহ্ন; এম্পারসেন্ড. এবং এই, বিপরীতক্রমে, জিজ্ঞাসা করা হয় অক্ষর i'th এর এর কম বা সমান z-ছোট হাতের অক্ষর? এবং আবার, এখানে যেখানে অন্তর্নিহিত বুঝতে একটি বাস্তবায়ন কম্পিউটার জ্ঞান করে তোলে. আমি যদিও, যে লক্ষ্য করুন বিন্দু বিন্দু বিন্দু আছে উপর, ছোট হাতের মধ্যে z-এর মাধ্যমে একটি ভালো দেখায় আপ 97 থেকে সংলগ্ন মান. এবং য়ের বড়হাতের অক্ষর ছোটহাতের জন্য একই 65 এ শুরু. তাই Takeaway, তারপর, যে, ইংরেজিতে হয় আপনি বর্ণনা করবেন কিভাবে 24 কি করছে লাইন? হ্যাঁ? শ্রোতা: 24 এটি দেখতে পরীক্ষা আছে কিনা প্রতিটি অক্ষর একটি ছোট হাতের অক্ষর ব্যবহার করা হয়. ডেভিড জে MALAN: এটা কিনা পরীক্ষা আছে প্রতিটি অক্ষর একটি ছোট হাতের অক্ষর হয়. তাই, এমনকি আরো succinctly, হয় এর ছোট হাতের অক্ষর i'th চরিত্র? যে আমরা সব কথাটি এখানে প্রকাশ, একটি সামান্য cryptically, কিন্তু শেষ পর্যন্ত বেশ-straightforwardly. অক্ষর ছোট হাতের অক্ষর ব্যবহার i'th এর এর? যদি তাই হয়, এবং এখানে যেখানে জিনিস একটু মন নমন পেতে শুধু একটা মুহূর্ত জন্য, যদি তাই হয়, যান এগিয়ে এবং একটি অক্ষর প্রিন্ট আউট. সুতরাং শুধু এই একটি স্থানধারক, কিন্তু কি চরিত্র? কেন আমি বন্ধনী আমি কাজ করছি বিয়োগ এখানে এই অভিব্যক্তি? আচ্ছা এখানে প্যাটার্ন লক্ষ্য করা. প্রকৃত সংখ্যা আরও অনেক ব্যাপার না. কিন্তু 97 বিজ্ঞপ্তি কিভাবে দূরে দূরে 65 থেকে? শ্রোতা: 32. ডেভিড জে MALAN: 32. কিভাবে দূরে দূরে 66 থেকে 98 করা হয়? শ্রোতা: 32. ডেভিড জে MALAN: বিগ সি থেকে লিটল গ? 32. তাই থেকে 32 হপস আছে অন্য এক চিঠি. তাই অকপটে আমি পারা যে এই সহজ করে. কিন্তু তারপর আমি হার্ড ধরনের কোডিং করছি এই নিম্ন স্তরের বোঝার কোন পাঠক কি কখনও যে বুঝতে হবে. তাই আমি এটা হিসাবে বিশ্বজনীন করা যাচ্ছে না, আমি জানি ছোট হাতের অক্ষর বড় হয়. আমি হাতের অক্ষরে জানি ছোট মান, হাস্যকর ভাবে. কিন্তু এই কার্যকরভাবে সমতুল্য এর বন্ধনী আমি থেকে 32 বিয়োগ বলছে. এই প্রেক্ষাপটে তাই অক্ষর, অক্ষর যদি একটি ছোট হাতের অক্ষর হতে হবে একটি, এবং আমি 32 বিয়োগ, কি যে প্রভাব আছে, গাণিতিকভাবে, একটি ছোট হাতের অক্ষর? শ্রোতা: Capitalizes-- ডেভিড জে MALAN: এটা বড় হাতের অক্ষরে. এবং প্রকৃতপক্ষে, এই কেন আমাদের প্রোগ্রাম শূন্য পুঁজিতে বলা হয়. এই প্রোগ্রামটি হয় একটি অক্ষর বড় হাতের অক্ষরে, যদি এটি চেক পরে প্রকৃতপক্ষে একটি ছোট হাতের অক্ষর. অন্যথা, লাইন 30, আমি যদি কি করবেন এটা আমি যে একটি ছোট হাতের অক্ষর না একটি নির্দিষ্ট সময়ে এখানে ক্লিক করুন লুপ পুনরাবৃত্তির. শুধু এটি প্রিন্ট আউট. তাই কাপড় পরিবর্তন করবেন না যে এমনকি ছোট হাতের অক্ষর না. নিজেকে সীমাবদ্ধ রাখুন সামান্য Z মাধ্যমে সামান্য একটি. এখন এই মোটামুটি রহস্যময় হয়. কিন্তু দিনের শেষে, এই কিভাবে আমরা একবার একটি সময় উপর, হয় কিছু বাস্তবায়ন ছিল. আমি পরিবর্তে পুঁজিতে খুলুন এক, ওহ ভগবান ধন্যবাদ. একটি ফাংশন আছে উপরের বলা যে শুধু কি আমরা সবকিছু একটি মোটামুটি নিম্ন পর্যায়ে. এখন উপরের আকর্ষণীয় এটি একটি ফাইল ঘোষণা করা হয়, কারণ, এবং আপনি শুধুমাত্র এই জানতে চাই ডকুমেন্টেশন চেক করে, বা বর্গ, যেখানে, বলে, বলা হচ্ছে এটি একটি ফাইল নামক ctype.h মধ্যে, বিদ্যমান. তাই এই আমাদের আরেকটি নতুন বন্ধু. এবং উপরের ঠিক আছে যাও তার নাম সুপারিশ কি. আপনি মধ্যে একটি আর্গুমেন্ট হিসাবে, পাস করতে পারেন এই প্রথম বন্ধনী, কিছু চরিত্র. আমি i'th চরিত্র পাস করা যাচ্ছে না আমাদের অভিনব নতুন নোটেশন ব্যবহার করে এর বর্গাকার বন্ধনী জড়িত. এবং একটি অনুমান নিতে, বিনিময়ে কি ঊর্ধ্ব মান দৃশ্যত যাচ্ছে হতে? একটি বড় হাতের অক্ষর. একটি বড় হাতের অক্ষর. তাই আমি একটি ছোট হাতের অক্ষর মধ্যে পাস করে, আশা করছি, উপরের সংজ্ঞা দ্বারা, এটি একটি ফিরে যাচ্ছে অন্যথা য়ের বড়হাতের অক্ষর ছোটহাতের এ, এটি একটি ছোট হাতের অক্ষর না হলে প্রথম স্থান, আমি এটি প্রিন্ট আউট. এবং প্রকৃতপক্ষে, লক্ষ্য এখানে দ্বিতীয় বন্ধু. নেই শুধু উপরের উপস্থিত করার জন্য, কিন্তু, কম, যা আসলে আমার জন্য যে প্রশ্নের উত্তর. এখন এই জিনিস লিখেছে যে কেহ, 10s বছর আগে, আপনি জানেন কি? ঊর্ধ্ব এবং বাস্তবায়িত হয় এই মত কোড ব্যবহার করে কম. কিন্তু আবার, সামঞ্জস্যপূর্ণ দূরে নিষ্কাশিত এই ধারণা, বাছাই করা, নিম্ন স্তর বাস্তবায়ন বিবরণ. এবং মানুষের কাঁধের উপর দাঁড়িয়ে যারা ফাংশন ব্যবহার করে, আমাদের আগে এসেছিলেন উপরের মত এবং কম, যা wonderfully হয় যথেষ্ট চমত্কারভাবে হয় তারা কি বলতে নামে, হয় একটি চমৎকার দৃষ্টান্ত দত্তক গ্রহণ করা. এখন, এটা আমি পড়তে যদি দেখা যাচ্ছে যে জন্য man পৃষ্ঠা, উপরের থেকে বলে, আমি অন্য কিছু শিখতে. তাই মানুষ Toupper. এটি একটি সামান্য অপ্রতিরোধ্য. কিন্তু বিজ্ঞপ্তি, এখানে যে উল্লেখ আছে আমি ব্যবহার করা উচিত যে হেডার ফাইল. একটি সরাইয়া, কারণ এই হিসাবে বিভ্রান্তিকর, ফাংশন আপনি ints পরিবর্তে অক্ষর ব্যবহার ত্রুটি পরীক্ষা কারণে. কিন্তু আমরা সম্ভবত আসবো যে ফিরে ভবিষ্যতে. কিন্তু উপরের পরিবর্তিত, এখানে, বিজ্ঞপ্তি যদি সম্ভব অক্ষর গ বড়হাতের. সুতরাং যে বেশ সহজবোধ্য. এবং এখন এর একটি সামান্য আরো সুনির্দিষ্ট হতে দিন. এর অংশ তাকান ফিরতি মূল্য অধীনে man পৃষ্ঠা. ফিরে মান হয় রূপান্তরিত চিঠি. বা C, যদি রূপান্তর , সম্ভব ছিল না যেখানে গ মূল ইনপুট. যা আমি থেকে, এখানে থেকে জানি ঊর্ধ্ব থেকে যুক্তি. তাই এই Takeaway কি? ফিরে মান হয় রূপান্তরিত চিঠি, বা গ, মূল অক্ষর, যদি রূপান্তর করা সম্ভব ছিল না. কি উন্নতি সেইজন্য আমি করতে পারেন আমার কোড এর নকশা করা? হ্যাঁ? শ্রোতা: আপনি অন্য অপসারণ করতে পারেন. ডেভিড জে MALAN: আমি করতে পারেন অন্য বিবৃতি অপসারণ, এবং শুধুমাত্র অন্য বিবৃতি. শ্রোতা: আপনি [শ্রবণাতীত] অপসারণ করতে পারেন. ডেভিড জে MALAN: আমি করতে পারেন পুরো কাঁটাচামচ অপসারণ রাস্তা, The অন্যথায় যদি পুরাপুরি. তাই প্রকৃতপক্ষে, আমাকে খুলুন এই চূড়ান্ত সংস্করণ, যদি,-2 পুঁজিতে এবং কিভাবে ঠিক বিজ্ঞপ্তি আপনি, সেক্সি, কোড এখন হচ্ছে হবে, যে আমি কিছু থেকে কমে করেছি সাত বা তাই মাত্র চার লাইন, আমি যে উদ্দেশ্যে কার্যকারিতা কেবল উপরের আহ্বান করে, এর বন্ধনী আমি, এবং মুদ্রণ ক্ষণস্থায়ী আউট, স্থানধারক% গ সঙ্গে, যে বিশেষ চরিত্র. এখন তর্কসাপেক্ষ, একটি বাগ আছে, অথবা একটি বাগ অন্তত ঝুঁকি, এই প্রোগ্রাম. তাই শুধু ফিরে আসা আগে Takeaway থেকে, আমি সম্ভবত কি কি করা উচিত এই প্রোগ্রাম এটি আরো জোরালো করা, কোন উপায় আছে যাতে এটা করতে পারেন এমনকি বিরল ক্ষেত্রে, বিপর্যস্ত? শ্রোতা: যদি শূন্য না নিশ্চিত করুন. ডেভিড জে MALAN: যদি শূন্য না নিশ্চিত করুন. সত্যিই তাই, এই সুপার করা সঠিক, আমি ভালো কিছু করতে হবে তারপর শূন্য না হয়, যদি এগিয়ে যান এবং চালানো কোড এই লাইন, যা আমি করতে পারেন, তাহলে যে ভালো ইন্ডেন্ট, এবং তারপর আমার নিকট যুগল রাখা. একসঙ্গে দুটি ধারণা এর tying তাই ভাল. হ্যাঁ? শ্রোতা: আপনি ব্যবহার করা যায়নি একটি পরিবর্তে, যখন লুপ কি? ডেভিড জে MALAN: পারেনি আমি একটি বিক্ষোভ যখন লুপ কি? শ্রোতা: --you নিশ্চিত করতে চাই আপনি আসলে [শ্রবণাতীত] যে. ডেভিড জে MALAN: পারেনি আপনি যদি একটি যখন ব্যবহার? সংক্ষিপ্ত উত্তর, না. আপনি চলেছেন কারণ অন্য কোণ ক্ষেত্রে পরিচয় করিয়ে দিতে. স্ট্রিং শূন্য দৈর্ঘ্য হয়. উদাহরণস্বরূপ, যদি আমি আঘাত কখনও, Zamyla টাইপ না, লিখুন. আমি ফিরে একটি প্রকৃত আপনি হাতে করা যাচ্ছে না স্ট্রিং, আমরা অবশেষে দেখতে পাবেন, যে শূন্য অক্ষর আছে. এটা এখনও একটি পংক্তি, এটা শুধু অতি অল্প. কিন্তু আপনি যখন একটি বিক্ষোভ ব্যবহার করা হলে, আপনি অন্ধভাবে যাচ্ছেন সঙ্গে কিছু করতে চেষ্টা স্ট্রিং সম্মান, এবং কিছুই হতে যাচ্ছে. শ্রোতা: হ্যাঁ, আপনি যদি কি [শ্রবণাতীত] s-- যখন ডেভিড জে MALAN: ওহ আমি দেখতে রাখা ব্যবহারকারী থেকে একটি পংক্তি পেয়ে. তাই সংক্ষিপ্ত উত্তর, আপনি , এবং জালাতন রাখতে পারে তাদের আপনি যে একটি স্ট্রিং দিতে মেমরি মাপসই যথেষ্ট ছোট. একেবারে. আমি না করতে বেছে নেওয়া হয়েছে. তারা আমাকে স্ট্রিং আমি দিতে না চান, আমি প্রস্থান করছি, আমি প্রদান করছি. কিন্তু একেবারে, যে উদ্দেশ্যে, আপনি একেবারে যে কাজ করতে পারে. তাই গ্রন্থাগারের এর হেডার ফাইল যে আমরা এখন এখানে, এই সঙ্গে পরিচিত হন. স্ট্যান্ডার্ড ইনপুট / আউটপুট, cs50.h, string.h, ctype.h, এবং প্রকৃতপক্ষে, অন্যদের আছে. আপনি কিছু আবিষ্কৃত হয়েছে math.h. গণিত লাইব্রেরি কিন্তু আমার, এখন, আপনাকে পরিচয় করিয়ে দেওয়া এই সম্পদ যে CS50 কর্মীরা, ডেভিন, এবং রব, এবং গেব বিশেষ একত্র করা হয়েছে. যে শীঘ্রই লিঙ্ক স্থাপন করবে কোর্স এর ওয়েবসাইট. এটা CS50 রেফারেন্স বলা হচ্ছে. শুধু আপনি একটি দ্রুত দিতে যা অনুসরণ হিসাবে এটি স্বাদ, কাজ করে. আমার reference.cs50.net যান. আপনি বাম হাত দেখতে পাবেন অপ্রতিরোধ্য তালিকা পাশ গ সাথে আসা ফাংশন. কিন্তু আমি মুহূর্ত জন্য, যত্ন করে, strlen ভালো কিছু বিষয়ে, আমি সেখানে এটি টাইপ করতে পারেন. এটা তালিকা নিচে ফিল্টার আমি যত্ন সম্পর্কে ঠিক কি. আমি এটি ক্লিক করা যাচ্ছে না. এবং এখন, বাম আমরা আশা করি দেখতে পাবেন আরো একটি সহজবোধ্য, মানুষের কিভাবে বন্ধুত্বপূর্ণ ব্যাখ্যা এই ফাংশন কাজ করে. একটি স্ট্রিং এর দৈর্ঘ্য প্রদান করে. এখানে একটি সারসংক্ষেপ এখানে, আপনি কিভাবে হেডার ফাইল শর্তাবলী এটি ব্যবহার, এবং কি ফাংশন শর্তাবলী তার আর্গুমেন্ট শর্তাবলী মত দেখায়. এবং তারপর এখানে, আয় একটি স্ট্রিং এর দৈর্ঘ্য. কিন্তু আরো আরামদায়ক আপনি তাদের জন্য, আপনি আসলে, আরো আরামদায়ক ক্লিক করতে পারেন এবং এই বিষয়বস্তু পৃষ্ঠা, এখন, পরিবর্তন করতে হবে কি ডিফল্ট মান হতে আপনি man পৃষ্ঠা ব্যবহার করে পেতে. এবং CS50 অন্য কথায়, রেফারেন্স একটি সরলীকরণ ছাত্রদের জন্য কর্মীদের দ্বারা মানুষ পেজ, এর. বিশেষ করে, যারা কম আরামদায়ক এবং, এর মধ্যে যাতে আপনি মোড়ানো চেষ্টা করতে হবে না আপনার মনের কাছাকাছি, উন্মুক্তভাবে, কিছু মোটামুটি রহস্যপূর্ণ সিনট্যাক্স একদা এবং ডকুমেন্টেশন. যাতে মনে রাখা দিন আসতে. তাই এখানে, আবার, একটি, Zamyla হয়. এখন যে একটি প্রশ্ন জিজ্ঞাসা করুন একটু বেশি মানুষের প্রবেশযোগ্য. যারা হয়েছে চ্যাং ধন্যবাদ, আরো হাতি মুদ্রণ গত কয়েক দিনের জন্য ননস্টপ. আমরা দিতে একটি সুযোগ আছে দূরে তাদের অন্তত এক. আমরা এক স্বেচ্ছাসেবক পেতে পারে পর্দায় আঁকা পর্যন্ত আসতে. এখানে কিভাবে সম্পর্কে? উপর আসা. আপনার নাম কি? ALEX: অ্যালেক্স. ডেভিড জে MALAN: অ্যালেক্স. ঠিক আছে. Alex, উপর আসা. আমরা দেখতে সম্পর্কে আপনার এখানে পর্দায় হস্তাক্ষর. ঠিক আছে, আপনি দেখা করতে চমৎকার. ALEX: দারুন আপনি দেখা. ডেভিড জে MALAN: ঠিক আছে. সুতরাং, সুপার সহজ ব্যায়াম. বার থেকে উচ্চ হয় না আজ একটি হাতি পেতে. আপনি GetString ভূমিকা বাজানো হয়. এবং আমি আপনাকে বলতে যাচ্ছি আপনি অর্জিত করেছি যে পংক্তি. এবং, যদি আপনি অনুমান যে GetString, বলা হয়েছে. এবং মানব, আমার মত, আছে , Zamyla, টু Z একটি এম ওয়াই এল একটি টাইপ. শুধু এগিয়ে যান এবং, Zamyla লিখুন পর্দায় আপনি এটি অর্জিত হয়েছে, যদিও হিসাবে এবং মেমরি কোথাও এটি সংরক্ষণ করা. বিভিন্ন হবে কি জন্য রেখে রুম ঠিক আছে অন্য যে words--, চালু রাখা. [হাস্য] সুতরাং, Zamyla, চমৎকার. তাই এখন অনুমান আপনি যে, GetString, আবার বলা হয়. আর তাই, আমি, আপনি প্রদান কীবোর্ড, অন্য নাম, Belinda সঙ্গে. ঠিক আছে. এবং এখন পরবর্তী সময় GetString হয় বলা হয়, আমি, গেব মত কিছু টাইপ জি একটি বি ই. আপনি সত্যিই গ্রহণ করছেন হৃদয় র্যান্ডম অ্যাক্সেস মেমরি. সবকিছু যা অঙ্কন করা হয় সম্পূর্ণরূপে এলোমেলোভাবে. ঠিক আছে. [হাস্য] ALEX: দুঃখিত আমার হস্তাক্ষর খারাপ. ডেভিড জে MALAN: না, এটা ঠিক আছে. এবং কিভাবে রব, আর হে বি সম্পর্কে. ঠিক আছে. ভাল. তাই আমি আপনাকে চাই কহা না এই ধরনের উপায় জিনিষ খুঁজে রাখা. কিন্তু আমরা এই কাজ করতে পারেন. তাই আপনি যদি ডিম্বপ্রসর সম্পর্কে কিভাবে যান নি মেমরি এই অক্ষর আউট? অন্য কথায়, আমরা মনে করি যদি এই আয়তক্ষেত্রাকার কালো পর্দা একটি প্রতিনিধিত্ব কম্পিউটার এর র্যাম, বা মেমরি. এবং যে উপস্থিত RAM শুধু প্রত্যাহার বাইট আভা, এবং বাইট বিট আভা আছে. এবং বিট একরকম হয় সাধারণত, বাস্তবায়িত কিছু ফর্ম সঙ্গে হার্ডওয়্যার বিদ্যুৎ. সুতরাং যে ধরণের আমরা স্বপ্ন করেছি layering একটি মঞ্জুর জন্য এবং এখন নিতে পারেন. আপনি কিভাবে সম্পর্কে যান নি যেখানে লিখতে সিদ্ধান্ত রব বনাম গেব বনাম , Zamyla বনাম Belinda? ALEX: আমি শুধু তা আপনি আমাকে বলেন যে অর্ডার. ডেভিড জে MALAN: এবং যে সত্য. কিন্তু আপনি কি যেখানে করা পরিচালিত Belinda এর নাম এবং গেব এর নাম? ALEX: কিছুই? ডেভিড জে MALAN: [হাসতে হাসতেই] সুতরাং যে কাজ করে, যে সূক্ষ্ম. তাই কম্পিউটার সামান্য যে তুলনায় আরো সুশৃঙ্খল. তাই আমরা সেখানে থাকার implement-- যখন যখন আসলে আমরা শুধু একটি মুহূর্ত জন্য ভালো কিছু বাস্তবায়ন একটি কম্পিউটার GetString, , Zamyla অনেক সুন্দর পরিপূর্ণ হতে পারে মত আপনি সেখানে, পর্দায় করেনি. এবং লক্ষ্য করা থেকে কি কি এখানে, আলেক্স কি, একটি প্রভেদ ধরনের আছে এই প্রতিটি শব্দের মধ্যে, ডান? আপনি লিখুন না টু Z একটি এম ওয়াই এল একটি বি ই এল আমি-n-D:-এ জি একটি B-- অন্য কথায়, কিছু আছে মনে করা হয়, যা প্রভেদ, বাছাই করা, র্যান্ডম ফাঁক এই বিভিন্ন শব্দের মধ্যে. কিন্তু যে কারণ, ভাল আমরা মানুষের এখন যা করতে পারেন এই যে ঠাহর করা চারটি ভিন্ন স্ট্রিং. এটা ঠিক এক ক্রম না অক্ষর প্রচুর. সুতরাং একটি কম্পিউটার, তাহলে এদিকে, , Zamyla মত একটি স্ট্রিং নিতে পারে, যারা অক্ষর প্রতিটি করা একটি মেমরি বাইট এর ভিতরে. কিন্তু যে নম্বর, অনেক বড় অবশ্যই, ছয় অক্ষরের চেয়ে. উপস্থিত RAM আভা আছে. তাই অত: পর, এই বাক্সে গ্রিড যাচ্ছে কি অ্যালেক্স মাত্র প্রতিনিধিত্ব করতে পর্দা এখানে কি. এবং এখন, অ্যালেক্স, আমরা আপনাকে একটি অফার করতে পারেন নীল বা চ্যাং থেকে একটি কমলা হাতি. ALEX: আমি একটি নীল হাতি নিয়ে যাব. ডেভিড জে MALAN: একটি নীল হাতি. তাই একটি সাধুবাদ বড় বৃত্তাকার, Alex জন্য এখানে, যদি আমরা করতে পারে. [সাধুবাদ] ALEX: আপনাকে ধন্যবাদ. ডেভিড জে MALAN: আপনাকে ধন্যবাদ. তাই Takeaway যে, যদিও প্যাটার্ন ধরনের, এখানে সময়ের সাথে পরিবর্তিত বোর্ডে, এই ছিল বিভিন্ন স্ট্রিং মধ্যে প্রভেদ অ্যালেক্স আমাদের জন্য পেয়েছিলাম. এখন কম্পিউটার, অকপটে, একই জিনিস করতে পারে. তারা ধরনের অকস্মাৎ পারে কোথাও RAM উপস্থিত স্ট্রিং. এখানে, এখানে, এখানে, এখানে নিচে নিচে. তারা ঠিক করতে পারে. কিন্তু, অবশ্যই, যে সম্ভবত না ভাল পরিকল্পনা. রাইট? আমি অ্যালেক্স জিজ্ঞাসা রাখা নাম পেতে, সম্ভবত তিনি চাই হয়তো আপ, এখানে আরো কিছু আরোপ করা এখানে, এখানে, এখানে, অবশেষে এখানে. কিন্তু একটি বিট আরো পরিকল্পনা, অবশ্যই, আমরা আরো পরিচ্ছন্নভাবে জিনিস খুঁজে রাখা হতে পারে. এবং প্রকৃতপক্ষে, যে একটি কম্পিউটার আছে কি. কিন্তু ধরা হয় যদি আমি পেতে পরবর্তী স্ট্রিং , Zamyla কিছু পরে : Belinda মত, আমরা লিখতে পারে যেখানে উত্থাপন এই গ্রিড থেকে সম্মান সঙ্গে খ চিঠি? আপনি কোথায় যেতে হবে? একটি ডানদিকে, একটি নীচের Z, নিচে? আপনার প্রথম সহজাত কি হবে? শ্রোতা: z-নীচে. ডেভিড জে MALAN: তাই z-নীচে. এবং যে চমত্কার সহজবোধ্য, ডান? এটা ঝরঝরে ধরনের, আমরা কি করবেন একটি কীবোর্ড আমরা আঘাত লিখুন যখন, অথবা একটি ইমেল একটি যখন জিনিস বুলেটযুক্ত তালিকা. কিন্তু বাস্তবতা যে কম্পিউটার হয় আরো দক্ষ হতে চেষ্টা করুন, এবং যতটা অবশ্যই ঠুসা সম্ভব হিসাবে উপস্থিত RAM মধ্যে তথ্য, যাতে আপনি কোনো বাইট নষ্ট করবেন না. আপনি নষ্ট করবেন না যাতে কোন পর্দা রিয়েল এস্টেট. এবং সমস্যা যদিও, যে আমরা আক্ষরিক অক্ষর করা বো একটি পরে, কিভাবে আমরা করতে যাচ্ছি , Zamyla নাম যেখানে শেষ জানা এবং Belinda এর নাম শুরু? তাই আপনি শুধু ভাল,, প্রস্তাবিত মানুষের মূলত, কি আঘাত লিখুন. নিচে তা দমন করা. অথবা অ্যালেক্স করেনি, এমনকি হিসাবে মাত্র লেখা শুরু আগের নীচের পরবর্তী নাম, এবং যে নীচে, এবং তারপর এক যে নিচে. যে একটি চাক্ষুষ সূত্র আছে. কম্পিউটার অন্য চাক্ষুষ সূত্র আছে, কিন্তু এটি একটি সামান্য আরো পরিবেষ্টিত. এই ভীতু অক্ষর. সম্ভবত যা ব্যাকস্ল্যাশ 0, ব্যাকস্ল্যাশ এন কথা স্মরণ করিয়ে দেয়, এবং তাই ঘোষণা, এখন. বিশেষ অব্যাহতি সিকোয়েন্স. ব্যাকস্ল্যাশ 0 উপায় একটি সারিতে আটটি শূন্য বিট প্রতিনিধিত্ব. 0000 0000. আপনি যে প্রকাশ পথ না হয় আপনার কীবোর্ড সংখ্যা শূন্য আঘাত, একটি ASCII গৃহস্থালি যে কারণ. এটি একটি সংখ্যা মনে হচ্ছে, কিন্তু একটি দশমিক সংখ্যা আসলে যে বিজ্ঞপ্তি প্রতিনিধিত্ব করে গ্লিফের, বিজ্ঞপ্তি টাইপফেস. এদিকে, ব্যাকস্ল্যাশ শূন্য আক্ষরিক মানে, আমার জন্য এখানে আট শূন্য বাইট করা. তাই এই কিছুটা নির্বিচারে. আমরা কোন প্যাটার্ন ব্যবহার করেছি পারে বিট, কিন্তু বিশ্বের কিছু বছর করার সিদ্ধান্ত নিয়েছে আগে, যে প্রতিনিধিত্ব করতে মেমরির মধ্যে একটি স্ট্রিং এর শেষে, শুধু শূন্য আভা করা. আমরা সনাক্ত করতে পারেন. এখন এর মানে হল যে কোন অক্ষর বর্ণমালা zeros সঙ্গে প্রতিনিধিত্ব করা যাবে. কিন্তু যে, ইতিমধ্যে আমরা দেখা করেছি ঠিক আছে আমরা আপ 97 উপর 65 ব্যবহার করছেন. আমরা কোথাও পাবেন না সব শূন্য থেকে বন্ধ. একটি কম্পিউটার এর মেমরি মধ্যে Belinda তাই আসলে এখানে যেতে হবে. আমি হলুদ এটি টানা করেছি মাত্র এটা আমাদের দৃষ্টি আকর্ষণ করতে. এবং খেয়াল করুন, খুব, এই সম্পূর্ণ নির্বিচারে. আমি একটি গ্রিড হিসাবে এটি টানা করেছি. ভালো লেগেছে, RAM উপস্থিত না কিছু কিছু শারীরিক বস্তু. এটা অগত্যা নেই সারি এবং কলাম, জন্মগতভাবে. এটা ঠিক বাইট আভা পেয়েছিলাম একরকম হার্ডওয়্যার প্রয়োগ. কিন্তু Belinda আমি পরে যদি গেব এর নাম টাইপ, তিনি মেমরি এখানে শেষ করতে যাচ্ছে এবং আমি Daven এর নাম টাইপ করে, উদাহরণস্বরূপ, তিনি এখানে শেষ করা যাচ্ছে. এবং আমি অবিরত করতে পারেন এমনকি আরও নাম লিখুন. দুর্ভাগ্যবশত, আমি চেষ্টা একটি সুপার দীর্ঘ নাম লিখুন, আমি অবশেষে মেমরি রান আউট হতে পারে. যা ক্ষেত্রে, GetString হয় আমরা বলেন, শূন্য ফিরে যাচ্ছে. কিন্তু সৌভাগ্যক্রমে, অন্তত এই চাক্ষুষ মধ্যে এখানে, আমরা খুব যে পর্যন্ত না. এখন কি চমৎকার এই যে কিছু চিকিত্সা সাধারণ ধারণা বাক্সে হচ্ছে সি একটি বৈশিষ্ট্য প্রতিনিধি এবং ভাষার অনেক, একটি অ্যারে হিসাবে পরিচিত. একটি অ্যারের তথ্য অন্য ধরনের. আপনি যদি এটি একটি ডাটা স্ট্রাকচার. সত্যিই এটা অর্থে গঠন, ধরনের, অন্তত একটি বাক্স মত এখানে ক্লিক করুন আপনার মনের চোখে. একটি অ্যারের একটি সংলগ্ন হয় অভিন্ন ধরনের তথ্য ক্রম, ফিরে ফিরে যাও যাও ব্যাক ব্যাক. অন্যান্য সুতরাং একটি পংক্তি, শব্দ, অক্ষর একটি অ্যারে. অক্ষরের একটি অ্যারের. কিন্তু এটি আপনি করতে পারেন সক্রিয় আউট জিনিসপত্র bunches অ্যারে. আসলে, আমরা এমনকি করা যাবে একটি অ্যারের মধ্যে সংখ্যা. ফর্ম সুতরাং যা আমরা শুরু করতে যাচ্ছেন এই তথ্য ঘোষণা একটি অ্যারে হিসাবে পরিচিত গঠন এছাড়াও বর্গাকার বন্ধনী ব্যবহার করতে যাচ্ছে. কিন্তু এই বর্গাকার বন্ধনী যাচ্ছে এই প্রেক্ষাপটে বিভিন্ন অর্থ আছে. এবং এটা হিসাবে অনুসরণ করে দেখুন. আমি খোলা যে ধরুন এখানে একটি নতুন ফাইল. এবং আমি ages.c. হিসাবে এই সংরক্ষণ এবং আমি এখানে আমার ফোল্ডারে এই সংরক্ষণ করব. এবং এখন আমি এগিয়ে যেতে চলেছি এবং কিছু টাইপ করা শুরু মত হল, CS50.h, অন্তর্ভুক্ত stdio.h, হয় প্রধান অকার্যকর int. এবং তারপর এখানে ভিতরে, আমি চাই প্রথম বয়স বলা কোন int আছে. এবং আমি একটি পেতে ব্যবহার করা যাচ্ছে না তার বয়স জন্য ব্যবহারকারী থেকে int. কিন্তু এই প্রোগ্রাম দ্বারা ব্যবহার করা বোঝানো হয় যাই হোক না কেন প্রসঙ্গ জন্য একাধিক মানুষ. আমি মানুষ একটি লাইন পেয়েছেন. তাদের সমস্ত টাইপ করতে হবে তাদের হয়ত কিছু, আমি জানি না জন্য বয়স, প্রতিযোগিতা, বা ঘটনা তারা আগত করেছি. তাই পরবর্তী ব্যক্তি, আমি অন্য পরিবর্তনশীল প্রয়োজন. আমি ঠিক কি কারণ যদি বয়স getInt পায়, যে যাচ্ছে জখম, বা মুছে ফেলা পূর্ববর্তী ব্যক্তির বয়স. সুতরাং যে কোন ভাল. আমার প্রথম প্রবৃত্তি তাই হতে পারে, ওহ, ঠিক আছে, আমি একাধিক মানুষের পেতে চান ages--, এর এই age1 কল কোন int age2 int পায়, int-age3 getInt পায়. এবং এখন আমি ব্যবহার করতে যাচ্ছি এখানে কিছু pseudocode কোড. ঐ সংখ্যার সাথে কিছু করতে. আমরা অন্য দিনের জন্য ছেড়ে দেব কি আমরা, সেখানে কাজ করছেন কারণ আমরা শুধুমাত্র মুহূর্ত জন্য যত্ন age1, age2, age3 সম্পর্কে. দুর্ভাগ্যবশত, আমি একবার এই প্রোগ্রাম কম্পাইল এবং, প্রকৃত ব্যবহারকারীদের সামনে এটা করা মৌলিকভাবে দরিদ্র নকশা কি আমি মনে সিদ্ধান্ত হয়েছে? হ্যাঁ? শ্রোতা: [শ্রবণাতীত] ডেভিড জে MALAN: হ্যাঁ, আমি এমনকি চেষ্টা না করে কত বয়সের চিন্তা করা আমি আসলে যত্ন সম্পর্কে না? আমি এখানে কম তিনটি মানুষ আছে, এবং সেইজন্য কম তিনটি বয়সের, আমি এখনও অন্ধভাবে তিন আশা করছি. ঈশ্বর চার জনের দেখাবে নিষেধ. আমার প্রোগ্রাম ঠিক এমনকি তাদের সমর্থন করবে না. তাই এই দীর্ঘ গল্প সংক্ষিপ্ত, একটি ভাল অভ্যাস নয়. রাইট? আমি মূলত কপি ছিল এবং কোড পেস্ট এবং শুধু tweaking ভেরিয়েবলের নাম. এবং, আমার ঈশ্বর, আপনি ছিল যদি না তিন বয়সের, কিন্তু 10 বা 100, অথবা এমনকি 6,500 আন্ডার, উদাহরণস্বরূপ. এই বিশেষ করা যাচ্ছে না মার্জিত কোড, বা টেকসই. আপনি আছে চলুন প্রোগ্রাম প্রতিটি সময় নতুন করে লেখা মানুষ পরিবর্তন আপনার নম্বর. সুতরাং সৌভাগ্যক্রমে, আমাদের প্রকৃত মধ্যে আজকের জন্য ages.c ফাইল, আমরা আরো একটি চতুর সমাধান আছে. প্রথমত, আমি ধার করা যাচ্ছে না , আমরা কয়েক বার ব্যবহার করেছি গঠন এই পেতে, যখন লুপ না রুমে মানুষের সংখ্যা. আমি আবার, ব্যবহারকারী লাগা করা যাচ্ছে না এবং আবার, সে পর্যন্ত আমাকে দেয় একটি ধনাত্মক পূর্ণসংখ্যা যে n এর মান. আমি ব্যবহার করতে পারে, গত সময় এর ইতিবাচক কোন int পেতে. কিন্তু আমরা যে না বাস্তব জন্য, তাই আমি এগিয়ে গেলেন এবং এই ধারণা প্রয়োগ করছেন. এখন নিচে এখানে, এই নতুন কৌতুক. মন্তব্য হিসাবে লাইন 27 সালে, লাইন 26 সুপারিশ মধ্যে, একটি অ্যারের ঘোষণা, যা সবাই এর বয়স সঞ্চয়. তাই আপনি যদি,, এক int না না পেতে চান দুই ints হয়, কিন্তু ints মধ্যে আভা. বিশেষ করে এন পূর্ণসংখ্যার ছিল, এন পারে 100 হতে পারে, তিনটি, 1000 হতে পারে. বাক্য গঠন, বেশ সহজভাবে, হয় বলুন, আপনি কি ডাটা টাইপ করতে চান? আপনি কল করতে চান না কি মেমরি যে তাল? আপনি গ্রিড কল ​​করতে চান না কি এই যে pictorially মত দেখায়? এবং এখানে বন্ধনী, আপনি বলে আপনি কত বড় অ্যারে হতে চান. তাই আগে, আমি যখন বলেন, বাক্য গঠন, এখানে একটু ভিন্ন আমরা এখনও বর্গাকার বন্ধনী ব্যবহার করছেন, কিন্তু আমি একটি অ্যারের ঘোষণা করছি যখন, এর ভিতরে সংখ্যা বর্গাকার বন্ধনী মানে আপনি কত বড় অ্যারে হতে চান. বিপরীতভাবে, যখন আমরা এর ব্যবহার করা হয়েছে বন্ধনী আমি একটি মুহূর্ত আগে, গুলি, একটি স্ট্রিং, অক্ষর একটি শ্রেণীবিন্যাস, প্রকৃতপক্ষে কিন্তু আপনি একটি ভেরিয়েবল ঘোষণা না করছেন, এখানে এই শব্দ হিসাবে, আপনি কেবল পেয়ে থাকেন একটি নির্দিষ্ট সূচক, একটি নির্দিষ্ট যে অ্যারে থেকে উপাদান. আমরা জানি যে একবার, বাকি এই সহজবোধ্য. আমি প্রথম প্রিন্ট আউট করা যাচ্ছে না নতুন হলে ব্যক্তি সংখ্যা আমি বয়স কি. আমি শুধু ব্যক্তির এক নম্বর বলে কোথায় ব্যক্তি সংখ্যা দুই, ব্যক্তি তিন নম্বর. এবং আমি, গাণিতিক করছি তাই যে মত সাধারণ মানুষ, আমরা এই জন্য এক থেকে গণনা প্রোগ্রাম, এবং না শূন্য থেকে. তারপর আমি GetInt কল, কিন্তু আমি সংরক্ষণ বয়সের মধ্যে উত্তর আমি বন্ধনী. যা অ্যারের মধ্যে i'th বয়স. শেষ সময় যেহেতু আমরা চিকিত্সা করা হয়, তাই , Zamyla এর নামের জন্য চিহ্ন হিসাবে এই বক্স, এবং অন্যদের. এখন, এই বাক্সে প্রতিনিধিত্ব 32 বিট, বা চার বাইট যা আমরা সংরক্ষণ করতে পারেন কোন int, কোন int, কোন int. সব যা, আবার, একই তথ্য টাইপ. এখন আমি কিছু মূর্খ না, সময় পাস, শুধু এই প্রোগ্রাম লেখা ন্যায্যতা প্রতিপাদন করা. এবং তারপর নিচে এখানে, আমি আবার বারবার এখন থেকে একটি বছর বলছে অ্যারের উপর, ব্যক্তি এক নম্বর হবে কিছু বছর বয়সী হতে হবে. এবং যে চিন্তা করা math-- আমি বলতে চাচ্ছি, এই খুব এরিথমেটিক জটিল না হয় আমি শুধু তাদের বয়স এক যোগ করুন. শুধু, আবার, এই প্রকট. শুধু আমি সূচক পারেন হিসাবে একটি স্ট্রিং মধ্যে, S, তাই বয়সের একটি অ্যারের মধ্যে করতে পারেন আমি সূচক, সেখানে যে মত. সুতরাং যেখানে এই আমাদের গ্রহণ করা হবে? সুতরাং আমরা দেখতে হবে, শেষ পর্যন্ত, একটি দিনের মধ্যে কিছু বিষয় আসতে. এক, এই সব সময়, যখন আপনার নিজের প্রোগ্রাম লেখা, মারিও, লোভী, ক্রেডিট মত. আপনি নাম টাইপ করছি প্রোগ্রাম এবং আঘাত লিখুন. এবং তারপর ব্যবহারকারীর ইনপুট পেয়ে. GetString, GetInt সঙ্গে, getLongLong, বা মত. কিন্তু এটা যে সি সমর্থন সক্রিয় আউট কিছু কমান্ড লাইন বলা আমাদের দিন যাচ্ছে, যা আর্গুমেন্ট, আসলে আপনি টাইপ শব্দের যে এ পেতে, জ্বলজ্বলে প্রম্পটে আপনার প্রোগ্রাম এর নামের পরে. , আপনি আসতে দিন, তাই সিজার ভালো কিছু টাইপ করা হতে পারে, বা রোমান সম্রাটদের পদবী তারপরে সংখ্যা 13,. আমরা যে কাজ করে দেখতে হবে. প্রকৃতপক্ষে, কারণ সমস্যা আমরা করছি, দুই সেট আপনাকে পরিচয় করিয়ে দিতে যাচ্ছে সামান্য কিছু করার Ralphie এর কথা স্মরণ করিয়ে দেয় মানচিত্রাঙ্কন বিদ্যা আগে চ্যালেঞ্জ. তথ্য scrambling শিল্প. এই, আসলে, খুব হয় Ralphie কি কথা স্মরণ করিয়ে দেয়. এটি একটি এনক্রিপশন একটি উদাহরণ অ্যালগরিদম, আর O-টি 13 ROT13 বলা হয়. যা কেবল আবর্তিত মানে বর্ণমালা 13 জায়গায় অক্ষর. আপনি যে কি, আপনি এখন দেখতে পাবেন একটি পরিচিত ফ্রেজ, সম্ভবত, কি হয়. কিন্তু উপায় আমরা ব্যবহার করতে যাচ্ছেন এই, শেষ পর্যন্ত, আরো সাধারণভাবে হয়. পি, আদর্শ সংস্করণ, দুই সেট আপনি, সাইফারগুলির একটি দম্পতি বাস্তবায়ন করব সিজার নামক এক, Vigenère নামক এক. তাদের উভয়ের আবর্তনশীল হয় যে সাইফারগুলির, আপনি একরকম একটি ভিন্ন অক্ষর মধ্যে এক চিঠি চালু. এবং সিজার সুপার সহজ. আপনি, আপনি 13 যোগ করুন, এক যোগ বা 26 পর্যন্ত কিছু সংখ্যা. Vigenere যে আছে একটি চিঠি প্রতি ভিত্তিতে. Vigenere তাই, হিসাবে আপনি দেখতে পাবেন বৈশিষ্ট, আরো নিরাপদ. কিন্তু দিনের শেষে কি , আপনি বাস্তবায়ন করা হবে এবং পি দুই সেট আপনি উভয় ব্যবহার করে যে কী হয় এনক্রিপশন ও ডিক্রিপশন জন্য. বাঁক প্রক্রিয়ার কথা উল্লেখ প্লেইন টেক্সট, কিছু মূল বার্তা, গোল্লা টেক্সট, মধ্যে যা কিছু এনক্রিপ্ট করা হয়. এবং তারপর আবার ডিক্রিপ্ট. হ্যাকার সংস্করণ ইন, এদিকে, আপনি হবেন কিছু অনুরূপ সঙ্গে tasked আত্মা, আমরা আপনাকে দেব যেখানে একটি টিপিক্যাল লিনাক্স, বা থেকে একটি ফাইল, ম্যাক, বা ইউনিক্স কম্পিউটার নামক Etsy পুরো রয়েছে, যা পাসওয়ার্ড ব্যবহারকারীর নাম ও পাসওয়ার্ড এর গুচ্ছ. এবং যারা পাসওয়ার্ড সব আছে এনক্রিপ্ট করা, বা কুচি করা হয়েছে, তাই আরো সঠিকভাবে কথা বলতে, আপনি বৈশিষ্ট দেখতে পাবেন. এবং হ্যাকার সংস্করণ চ্যালেঞ্জ হবে এই মত একটি ইনপুট গ্রহণ সঙ্গে আপনি, এবং পাসওয়ার্ড ক্র্যাকিং. যে figuring আউট, কি মানব এর পাসওয়ার্ড আসলে ছিল. প্রকৃতপক্ষে, পাসওয়ার্ড আছে, কারণ সাধারণত পরিষ্কার সংরক্ষিত নয়, এবং সাধারণত পাসওয়ার্ড অনুমান করা কঠিন হবে. যে প্রায়ই কেস না. এবং কি আমি আমরা কি চাই হয় কয়েক মিনিট সঙ্গে শেষ করা একটি বিশেষ এ এক নজরে পাসওয়ার্ড দরিদ্র পছন্দ একটি ফিল্ম থেকে আপনি সস্নেহে প্রত্যাহার করা হতে পারে. যদি না, আপনি ভাড়া নিতে হবে. [ভিডিও প্লেব্যাক] -Helmet, আপনি পামর, কি হচ্ছে? আপনি কি আমার মেয়ের করছেন? পরিচয় করিয়ে আমাকে -Permit উজ্জ্বল তরুণ প্লাস্টিক সার্জন, ডাক্তার ফিলিপ Schlotkin ইচ্ছাশক্তি. সর্বাধিক নাক পেশা মানুষ সমগ্র মহাবিশ্ব এবং Beverly Hills. তোমার মাননীয়. -Nose কাজ? আমি বুঝতে পারছি না. তিনি ইতোমধ্যেই একটি নাক পেশা ছিল. এটা তার মিষ্টি 16 উপস্থিত ছিলেন. কোন, এটা কি আপনি মনে করেন না. এটা অনেক, অনেক খারাপ. আপনি আমাকে দিতে না বায়ু ঢাল যাও সমন্বয়, ডাক্তার Schlotkin ইচ্ছাশক্তি দিতে হবে আপনার মেয়ে তার পুরানো নাক ব্যাক. - [Gasps] Nooooooooooooo. আপনি কোথায় যে পেতে পারি? সব ঠিক আছে. আমি বলতে হবে, বলতে হবে. কোন, ড্যাডি, কোন. আপনি না করা আবশ্যক. -You're অধিকার আমার প্রিয়. আমি আপনার নতুন নাক মিস্ করব. কিন্তু আমি তাদের বলতে হবে না সমন্বয় কোন ব্যাপার কি. ভাল -অত্যন্ত. ডাক্তার Schlotkin, আপনার খারাপ না. -আমার আনন্দ. কোন! অপেক্ষা করুন, অপেক্ষা করুন. আমি বলতে পারবেন. আমি বলতে পারবেন. আমি জানতাম এটা কাজ করবে. সমস্ত অধিকার, আমার এটা দিতে. স্বয়ংক্রিয়ভাবে সমন্বয় করা হয়. এক. এক. দুই. দুই. দুই. তিন. তিন. তিন. চারটি. চারটি. চারটি. -পাঁচ. -পাঁচ. -পাঁচ. সমন্বয় এক -তাই, দুই, তিন, চার, পাঁচ. যে stupidest সংমিশ্রণ আমি আমার জীবনে কখনও শুনতে. যে জিনিস একটি ধরনের গাধা তার লাগেজের উপর থাকবে. , আপনার মাননীয় আপনি ধন্যবাদ. [দূরবর্তী ক্লিক] -আপনি কি করবেন? আমি প্রাচীর বন্ধ. কোন, আপনি না পুরো সিনেমা বন্ধ. আমি পুরো শরীরটাই ভুল বোতাম চাপা. -ওয়েল, এটা করা! সিনেমা ফিরে উপর রাখুন! -হ্যাঁ, স্যার! হ্যাঁ, স্যার. এর, আর্নল্ড যেতে যাক. গ্রেতসেন আসা. আপনি অবশ্যই আমি করব জানি এই জন্য আপনার বিল আছে. -ওয়েল? এটি কি কাজ? রাজা কোথায়? -এটা, কাজ করতেন, স্যার আমরা সমন্বয় আছে. গ্রেট. এখন আমরা প্রতি শেষ নিঃশ্বাস নিতে পারেন গ্রহ Druidia থেকে তাজা বাতাস. সংমিশ্রণ কি? এক, দুই, তিন, চার, পাঁচ. এক, দুই, তিন, চার, পাঁচ? -হ্যাঁ. সরল আশ্চর্যজনক. আমি একই পেয়েছেন আমার লাগেজের উপর সমন্বয়. জন্য Spaceball 1 প্রস্তুত অবিলম্বে প্রস্থান. -হ্যাঁ, স্যার. পরিবর্তন -এবং আমার লাগেজের উপর সমন্বয়. [দরজা বন্ধ শব্দ] [দরজা ঠুং ঠুং শব্দ শিরস্ত্রাণ আঘাত] -Ahh. [END টি ভিডিও প্লেব্যাক] ডেভিড জে MALAN: এটা জন্য এটি এবং CS50, আমরা আগামী সপ্তাহে আপনি দেখতে পাবেন. কথাবার্তা এবং এখন, গভীর Daven Farnham দ্বারা চিন্তা,. DAVEN Farnham: সি কোডিং ভূত আর তাই অনেক কঠিন. printf,, ভূত ছিল মিথ্যা. [হাস্য আর করা]