[সঙ্গীত বাজাচ্ছি] ডেভিড জে MALAN: ঠিক আছে, এই CS50. এবং এই সপ্তাহে এক. তাই শূন্য সপ্তাহে যে শেষ সময় প্রত্যাহার, আমরা গণনীয় চিন্তা উপর দৃষ্টি নিবদ্ধ করা. আর আমরা যে থেকে রূপান্তর ভূত, একটি গ্রাফিকাল প্রোগ্রামিং আমাদের বন্ধুদের কাছ থেকে ভাষা এমআইটি মিডিয়া ল্যাব এ. আর ভূত সঙ্গে, আমরা অন্বেষণ হয়নি ফাংশন মত ধারনা, এবং শর্ত, এবং loops, এবং ভেরিয়েবল, এবং এমনকি ঘটনা, এবং থ্রেড, এবং আরো অনেক কিছু. আর আজ আমরা চলুন সেই ধারণা ব্যবহার করা চালিয়ে, এবং সত্যিই তাদের জন্য গ্রহণ মঞ্জুর, কিন্তু তাদের অনুবাদ C. এখন নামে পরিচিত অন্য ভাষায়, সি একটি অধিক প্রথাগত ভাষা. এটা কম স্তর ভাষা, যদি আপনি হবে. এটা বিশুদ্ধরূপে পাঠগত এর. আর তাই প্রথম নজরে, এটা সব বরং রহস্যপূর্ণ চেহারা যাচ্ছে যদি আপনি আগে কখনও প্রোগ্রাম করেছি. আমরা আছে চলুন সেমি-কোলন, এবং প্রথম বন্ধনী, এবং কোঁকড়া ধনুর্বন্ধনী, এবং আরো অনেক কিছু. কিন্তু বুঝতে পারছি যে, এমনকি যদিও সিনট্যাক্স সম্পর্কে একটু অপরিচিত দেখুন আপনি অধিকাংশ, অতীত দেখতে. এবং ধারনা দেখতে চেষ্টা যে হয়, প্রকৃতপক্ষে, পরিচিত, কারণ সপ্তাহে এখানে এক কি আমরা, কি তুলনা হয় শুরু করব প্রাথমিকভাবে, সি বনাম ভূত সুতরাং, উদাহরণস্বরূপ, পুনরাহ্বান যে যখন আমরা বাস্তবায়িত আমাদের প্রোগ্রামের প্রথম শেষবার, আমরা একটি ব্লক তাকিয়ে ছিল সামান্য কিছু আপাততঃ যখন মত সবুজ পতাকা ক্লিক করুন, এবং তারপর আমরা ছিল কেউ যদি তা নিচের বা আরো পাজল টুকরা, এই ক্ষেত্রে, হ্যালো দুনিয়া বলে. তাই প্রকৃতপক্ষে, ভূত, যখন আমি যে সবুজ পতাকা ক্লিক করুন আমার প্রোগ্রাম চালানোর জন্য, তাই কথা বলতে, এই হল ব্লক করে মৃত্যুদন্ড কার্যকর, বা রান. আর, বিশেষভাবে, ভূত বলল, হ্যালো, দুনিয়া. এখন, আমি নির্দিষ্ট করতে পারতেন এখানে ভিন্ন শব্দ. কিন্তু আমরা দেখতে পাবেন যে, প্রকৃতপক্ষে, অনেক এই blocks-- এবং প্রকৃতপক্ষে, সি অনেক functions-- হতে পারে parametrized বা কাস্টমাইজড ভিন্ন কিছু করার. আসলে, আমরা যদি সি রূপান্তর করতে, এখন চাই, এই ভূত প্রোগ্রাম এই অন্যান্য ভাষায়, আমরা একটি লিখতে যাচ্ছেন ভালো সামান্য কিছু. এটা ঠিক যে, কিছু অচেনা সেখানে সিনট্যাক্স সম্ভবত, কোন int, এবং প্রথম বন্ধনী, এবং অকার্যকর. যদিও আপনি would কিন্তু এমনকি printf-- মনে হয় এটা শুধু প্রিন্ট হবে. তবে মুদ্রণ অর্থ মুদ্রণ , ফরম্যাট হিসাবে আমরা শীঘ্রই দেখতে পাবেন. এই আক্ষরিক প্রিন্ট করা হবে পর্দা থেকে যাই হোক না কেন সেই প্রথম বন্ধনী ভিতরে হয়, যা অবশ্যই এই ক্ষেত্রে, হ্যালো দুনিয়া. কিন্তু আপনি কিছু অন্যান্য বিজ্ঞপ্তি পাবেন সিনট্যাক্স, কিছু উদ্ধৃতি, যে শেষে প্রথম বন্ধনী, সেমিকোলন এবং মত. তাই সেখানে ওভারহেড একটি বিট, তাই কথা বলতে, উভয় ধারণাগতভাবে এবং সিনট্যাক্স, আমরা যাচ্ছি যে দীর্ঘ আগে স্মরণ আছে. কিন্তু বুঝতে পারছি যে অনুশীলন সঙ্গে, এই আপনি এ তিড়িং লাফ শুরু হবে. আসলে, যে এক ফোকাস ফাংশন এই ক্ষেত্রে specifically--, হ্যালো দুনিয়া বলে. তাই বলে ফাংশন. হ্যালো ওয়ার্ল্ড তার পরামিতি, বা যুক্তি, তার স্বনির্ধারণ. সি ও সমানতা শুধু এখানে এই এক লাইন হতে যাচ্ছে, যেখানে printf, সমতূল্য, বলে ডবল উদ্ধৃত পংক্তি, হ্যালো বিশ্বের, সমতূল্য অবশ্যই, কি সেখানে সাদা বাক্সে যাও. আর ব্যাকস্ল্যাশ এন, যদিও একটু অদ্ভুত এবং স্ক্র্যাচ থেকে অনুপস্থিত, কেবল প্রভাব আমরা করব আছে যাচ্ছে একটি কম্পিউটার দেখতে, আমার ম্যাক বা পিসি মত, শুধু চলন্ত পরবর্তী লাইন কার্সার. এটা আঘাত মত আপনার কীবোর্ড থেকে Enter. সুতরাং আমরা যে আবার আগে দীর্ঘ দেখতে পাবেন. কিন্তু প্রথম, এর এই সময়ে কটাক্ষপাত করা যাক যখন loops ক্ষেত্রে অন্য একটি উদাহরণ. আমরা শেষ সময় এই চিরকালের লুপ ছিল, যা ধাঁধা টুকরা একটি সিরিজ ছিল যে কিছু আক্ষরিক করেনি এই ক্ষেত্রে forever--, বলে, ওহে দুনিয়া, ওহে দুনিয়া, ওহে দুনিয়া, ওহে দুনিয়া. সুতরাং এটা নকশা দ্বারা অসীম লুপ. সি, আমরা এই বাস্তবায়ন করতে চান তাহলে একই ধারণা, আমরা কেবল এই কাজ করতে পারে. যদিও সত্য, printf, হ্যালো এখন world-- যখন শুধু শব্দার্থগতভাবে ধরনের এরকম ধারণা মনের পর্দায় ভেসে ওঠে কিছু আবার, এবং আবার, এবং আবার, এবং জন্য কতদিন? আচ্ছা, true-- রিকল যে সত্য শুধু এ অথবা এক হয়. আর সত্য, অবশ্যই, সবসময় সত্য. সুতরাং এটি একটি অর্থহীন ধরনের বিবৃতি সত্য বলতে. কিন্তু প্রকৃতপক্ষে, এই ইচ্ছাকৃত, কারণ যদি সত্য শুধু সবসময় সত্য, চেয়ে সত্য যখন শুধু বোঝা যায়, একটু যদি পরোক্ষভাবে, যে কোডের নিম্নলিখিত পংক্তিগুলি যারা কোঁকড়া ধনুর্বন্ধনী মধ্যে মধ্যে শুধু আবার, এবং আবার চালানো উচিত, এবং আবার, এবং আসলে আপনি থামাতে না. কিন্তু আপনি চান না আপনার লুপ আমরা যেমন বন্ধ করতে, মত কিছু শেষ সময় কি এই, পুনরাবৃত্তি নিম্নলিখিত 50 বার সি আমরা কি সঙ্গে একই কাজ করতে পারেন শব্দ লুপ জন্য একটি আহ্বান যখন, কিন্তু জন্য হচ্ছে না. এবং তারপর আমরা, এখানে কিছু নতুন সিনট্যাক্স আছে int- সঙ্গে আমি 0 আমি 50 কম সমান, i ++. আর আমরা যে ফিরে আসবো. কিন্তু এই সহজভাবে হয় কিভাবে আমরা ভূত ব্লক সেট অনুবাদ কোডের সি লাইন একটি সেট. এদিকে, ভেরিয়েবল বিবেচনা. এবং, আসলে, আমরা শুধু একটি মুহূর্ত আগে এক দেখেছি. আর ভূত ক্ষেত্রে, যদি আমরা একটি পরিবর্তনশীল নামক তোমার ঘোষণা করতে চেয়েছিলেন আমি পূর্ণসংখ্যা হচ্ছে, শুধু একটি সংখ্যা, এবং আমরা কিছু মান এটা সেট করতে চান, আমরা এই কমলা ব্যবহার করতে হবে ব্লক এখানে আমি 0 সেট. আর আমরা আজ দেখতে পাবেন এবং তার পরেও, শুধু গত সপ্তাহে মত, প্রোগ্রামারদের প্রায় সবসময় না শূন্য থেকে গণনা শুরু, সত্যিই কনভেনশন দ্বারা. কিন্তু এছাড়াও রিকল থেকে কারণ বাইনারি আমাদের আলোচনার, ক্ষুদ্রতম সংখ্যা আপনি যা করতে পারেন বিট কোন সংখ্যা সঙ্গে চিত্রিত মাত্র ২0 নিজেই হতে যাচ্ছে. আর তাই আমরা সাধারণত শুরু করব 0 এমনকি আমাদের ভেরিয়েবল আরম্ভ. আর সি, একই কাজ করতে আমরা int বলে যাচ্ছেন পূর্ণসংখ্যা জন্য, আমি শুধু কনভেনশন দ্বারা. আমি এই পরিবর্তনশীল বলা যেতে পারে কিছু আমি চাই, শুধু ভূত মত. এবং তারপর 0 সমান শুধু নির্ধারণ ডান থেকে মান 0 এবং এটা পরিবর্তনশীল মধ্যে রাখে, বা স্টোরেজ ধারক আছে, বাম থেকে. আর সেমিকোলন হিসেবে আমরা see-- করব এবং আমরা এই already-- কয়েক দেখা করেছি শুধু চিন্তার শেষ মানে. অন্য কিছু করতে এগিয়ে যান লাইন অনুসরণ উপর. এখন, কি বুলিয়ান এক্সপ্রেশন? পুনরাহ্বান যে ভূত, এই এক্সপ্রেশন ছিল হয় সত্য যে অথবা false-- প্রশ্ন, সত্যিই, সত্য বা মিথ্যা হয় যে. তাই শয়তান এর ক্ষেত্রে, আমরা প্রতাপ এই মত একটি সহজ প্রশ্ন জিজ্ঞাসা, আমি 50 এর চেয়ে কম? তাই আমি আবার, একটি পূর্ণসংখ্যা. হয়তো আমরা এটি ব্যবহার করছেন একটি ভূত প্রোগ্রামে একটি স্কোর ট্র্যাক রাখতে অথবা যে ভালো কিছু. তাই এই সিনট্যাক্স এখানে ভূত মানে, আমি 50 এর চেয়ে কম? ওয়েল, সৌভাগ্যক্রমে, কিছু হয় সি আর অনুবাদ করার সহজ, এই আমরা কেবল আমি কম বলতে হবে 50, পরিচিত চাবি ব্যবহার আপনার কীবোর্ড উপর. এদিকে, যদি আপনি করতে চেয়েছিলেন আরও কিছু সাধারণ বলে, মত, ভাল, xy হয় যেখানে প্রতিটি চেয়ে কম হয় x এবং y এর নিজেদের ভেরিয়েবল? আমরা একই জিনিস করতে পারেন সি, এতক্ষণ আমরা করেছি যেমন এই ভেরিয়েবল ইতিমধ্যে তৈরি. এবং আমরা কিভাবে দেখতে পাবেন দীর্ঘ আগে যে না. আমরা কেবল xy হয় তার চেয়ে কম বলতে হবে. সুতরাং আপনি শুরু করছেন কিছু মিল দেখতে. এবং যারা ভাবেন যিনি ভূত অবশ্যই ছিল এই মৌলিক ধারণা কিছু দ্বারা অনুপ্রাণিত. এবং আপনি এই ধরনের দেখতে পাবেন অনেক languages-- সিনট্যাক্স না শুধু ভূত, না শুধু সি, কিন্তু পাইথন, এবং জাভাস্ক্রিপ্ট, এবং এখনও অন্য ভাষায়. এর অন্য একটি কনস্ট্রাক্ট বিবেচনা করি সি থেকে, একটি শর্ত ধারণা, কিছু শর্তসাপেক্ষে করছেন. যদি কিছু সত্য, এই না. যদি অন্য কিছু সত্য হল যে, না. এটা প্রোগ্রামিং সাজানোর রাস্তা একটি কাঁটাচামচ এর সমতুল্য. হতে পারে এটি একটি দ্বিপথ কাঁটাচামচ এর, ত্রিমুখী কাঁটাচামচ, বা তার বেশি. আর ভূত, আমরা থাকতে পারে এই মত কিছু দেখা. তাই এই এক একটি বড় এক. কিন্তু আপেক্ষিক বিবেচনা যুক্তিবিজ্ঞান সরলতা. যদি xy হয় তার চেয়ে কম হয়, তাহলে বলতে x কম y তুলনায়, অন্যথায় যদি xy হয় তার চেয়ে অনেক বেশী, তারপর বলে xy হয় তার চেয়ে অনেক বেশী. এবং তারপর, যুক্তি, যদি আপনি স্ক্র্যাচ ফিরে মনে অথবা শুধু আপনার নিজের মানবিক অনুভূতি, ভাল, xy হয় তার চেয়ে বড় নয়, তাহলে এক্স y কম না হয়, তাহলে অবশ্যই হয় xy হয় সমান হতে যাচ্ছে. তাই এই ক্ষেত্রে, পাখির দ্বারা সেই ভূত ব্লকে, আমরা তিন অর্জন করতে পারেন রাস্তা উপায় কাঁটাচামচ? এদিকে, আমরা করতে চান তাহলে তর্কসাপেক্ষ না যে সি, এটা অন্তত একটি সামান্য simpler-- দেখায় একবার আপনি বাক্য গঠন সাথে পরিচিত পেতে. যদি xy হয় তার চেয়ে কম হয়, printf, xy হয় তার চেয়ে কম হয়. অন্যথায় যদি xy হয় তার চেয়ে অনেক বেশী, printf, xy হয় তার চেয়ে অনেক বেশী. অন্য printf এক্স, y-- এবং সমান আবার, সঙ্গীদের ব্যাকস্ল্যাশ তাৎপর্যহীন সেই নতুন লাইনের জন্য যাতে করে আপনি আসলে প্রোগ্রাম এই ধরনের দৌড়ে এটা শুধু সরাতে হবে আপনার কার্সার পরিণামে পর্দা এর পরের লাইন. এখন এদিকে স্ক্র্যাচ অন্যান্য ছিল আরো পরিশীলিত বৈশিষ্ট্য, শুধুমাত্র যা কিছু আমরা করতে যাচ্ছেন প্রাথমিকভাবে সি বিশ্বের উপর সরানো তাঁদের মধ্যে একজন ছিলেন ভূত একটি তালিকা বলা. আর এই একটি বিশেষ ছিল ভেরিয়েবল-এর টাইপ করে মঞ্জুরিপ্রাপ্ত একাধিক জিনিষ সংরক্ষণ করতে এটা ফিরে, ব্যাক, ব্যাক, ব্যাক. সি, এটা নেই তালিকা, কোনটাই, কিন্তু কিছু আরো সাধারণভাবে আছে অ্যারে বলা, যদিও আমরা করব ফিরে আসা পরে এই সেমিস্টারে কিছু খুঁজছেন একটি তালিকা, বা সত্যিই একটি লিঙ্ক তালিকা বলা. কিন্তু এখন, নিকটস্থ জন্য আমাদের জন্য সি সমমানের কিছু হতে যাচ্ছে একটি অ্যারে বলা. আর একটি অ্যারের কেবল একটি নয় পরিবর্তনশীল এর বিশেষ ধরনের যে আপনি ডাটা সংরক্ষণ করতে সক্ষম হবেন ফিরে, ফিরে, ফিরে ফিরে যাও. এবং প্রকৃতপক্ষে, ভূত, আমরা অ্যাক্সেস করতে চেয়েছিলেন যদি একটি অ্যারের প্রথম উপাদান বা একটি তালিকার এবং আমি এটা কল চলেছি, প্রচলিত রীতি অনুযায়ী, argv হয়, যুক্তি দ্বারা ভেক্টর, কিন্তু আরো যে অনেক আগেই. আমি প্রথম উপাদান এ পেতে চান ভূত জগতে argv, আপনি আসলে সাধারণত না 1 থেকে গণনা শুরু. এবং তাই আমি argv এর আইটেমটি 1 পেতে পারে. যে শুধু কিভাবে এমআইটি বাস্তবায়িত তালিকার ধারণা. কিন্তু সি, আমি যাচ্ছি আরও সহজভাবে বলতে, argv হয়, যা আবার নাম আমার তালিকার বা পরিষ্কার করা, একটি অ্যারের. আর আমি চাই যদি প্রথম উপাদান, আমি যাচ্ছি বর্গাকার বন্ধনী ব্যবহার করতে, আপনাকে যা প্রায়ই একটি কীবোর্ড আওতায় ব্যবহৃত হতে পারে না. কিন্তু 0 মানে, আমাকে প্রথম পেতে. তাই অনুষ্ঠানে এবং যেমন সময় পাস, আমরা যাচ্ছি এই dichotomies দেখতে শুরু করার ভূত এবং সি মধ্যে, যদ্দ্বারা স্ক্র্যাচ একটি ব্যবহার. আমরা সি এখানে 0 ব্যবহার করুন. কিন্তু আপনি দ্রুত দেখতে পাবেন একবার আপনি বুঝতে প্রতিটি ভাষার ভিত্তি করে সব কিছু যখন আরও পেতে শুরু অনুশীলন এবং অনুশীলনের মাধ্যমে পরিচিত. সুতরাং আসুন আসলে একটি প্রোগ্রাম এখন দেখা যাক. এখানে আমাদের সি প্রথম হইবে সম্পূর্ণ প্রোগ্রামের জন্য সোর্স কোড. এবং প্রোগ্রাম আমরা চলুন বিবেচনার জন্য প্রস্তাব এক যে সমতুল্য হয় যে আগে স্ক্র্যাচ টুকরা. এখানে তাই, আমরা কি আছে তর্কসাপেক্ষ সহজ সি প্রোগ্রাম আপনি যে লিখতে পারেন আসলে কিছু নেই. এখন, আমরা অতীত পর্যবেক্ষণ করব, এখন জন্য, অন্তর্ভুক্ত করা হয়েছে, প্রমিত io.h, এবং এই অ্যাঙ্গেল বন্ধনী, এবং কোন int, এবং অকার্যকর, এবং কোঁকড়া ধনুর্বন্ধনী, এবং মত. আর এর ঠিক ফোকাস কি, অন্তত, intuitively, ইতিমধ্যে আপনি এ তিড়িং লাফ পারে. বস্তুত, মূল, আমি না অগত্যা কি জানেন এটা কি, যখন যে কিন্তু ভূত মত অনেক ছিল সবুজ পতাকা ধাঁধা টুকরা ক্লিক, তাই একটি প্রোগ্রামিং ভাষা হিসেবে সি আছে কোডের একটি প্রধান টুকরা আছে ডিফল্ট দ্বারা মৃত্যুদন্ড কার্যকর করা হয়. এবং প্রকৃতপক্ষে, এটা আক্ষরিক নামক প্রধান হতে যাচ্ছে. সুতরাং প্রধান একটি ফাংশন. এবং এটি একটি বিশেষ ফাংশন যে বিদ্যমান আছে সি যখন আপনি একটি প্রোগ্রাম চালানো যে, এটা যে দ্বারা পরিচালিত পরার মূল ডিফল্ট. স্ক্র্যাচ জগতে, এটা সাধারণত যখন সবুজ পতাকা ছিল ক্লিক ডিফল্ট দ্বারা পরিচালিত ফেরার যে. এদিকে, আমরা আগে এই দেখা করেছি, printf বা মুদ্রণ ফরম্যাট, যে একটি ফাংশন যে সঙ্গে আসে হতে যাচ্ছে সি, অন্যদের আভা সঙ্গে বরাবর, সময় এবং সময় থেকে যে ইচ্ছার আবার, যাতে ঠিক করতে হিসাবে তার নাম প্রস্তাব দেওয়া হয়, কিছু প্রিন্ট করা হবে. আমরা কী মুদ্রণ করতে চান? আচ্ছা, আমরা দেখতে পাবেন পরিক্ষেপ অক্ষর দ্বারা these-- হ্যালো ওয়ার্ল্ড মত, ডবল উদ্ধৃতির মধ্যে ব্যাকস্ল্যাশ এন, আমরা ঠিক printf, বলতে পারেন পর্দায় কি প্রিন্ট করতে. কিন্তু যাতে করতে যে, আমরা দুর্ভাগ্যবশত কিছু যে নেওয়া প্রয়োজন ইতিমধ্যে আমাদের মানুষের রহস্যপূর্ণ, কিন্তু অন্তত এটা কিছুটা পাঠযোগ্য ধারালো অন্তর্ভুক্ত, প্রমিত io.h, int, প্রধান, শূন্যতা, printf ঐন্দ্রজালিক সব incantations আমরা শুধু পর্দায় দেখেছি. কিন্তু আমরা আসলে আছে এখনো আরো রহস্যময় যান. আমরা প্রথম কোড অনুবাদ করার প্রয়োজন আমরা মেশিন কোড লিখুন. আর গত সপ্তাহ থেকে প্রত্যাহার করে মেশিন, অন্তত বেশী আমরা এখানে জানি, দিন শেষে মাত্র zeros এবং বেশী বুঝতে. আমার ঈশ্বর, এই লেখার জন্য যদি আমরা ছিল zeros এবং আসলে প্রোগ্রাম বেশী, এটা খুব, খুব দ্রুত হবে কিছু আউট মজা নিতে. কিন্তু এটি সক্রিয় আউট, গত সপ্তাহে প্রতি, যে zeros এবং বেশী এইসব নিদর্শন শুধু বিশেষ অর্থ আছে. নির্দিষ্ট প্রেক্ষাপটে, তারা সংখ্যায় অর্থ হতে পারে. কিছু প্রেক্ষিতে, তারা এর অর্থ হতে পারে অক্ষর, বা রং, বা কোন সংখ্যা সেখানে উপর অন্যান্য অ্যাবস্ট্রাকশন এর. কিন্তু ঠিক যেমন আপনার কম্পিউটারে হয়েছে একটি সিপিইউ, সেন্ট্রাল প্রসেসিং ইউনিট, অথবা আপনার কম্পিউটার এর ভিতর ঘিলু. এটি সাধারণত ইন্টেলের ভিতরে, যে কারণ সবচেয়ে বড় কোম্পানি এক যে কম্পিউটারের জন্য সিপিইউ নির্মিত হয়. আচ্ছা, ইন্টেল CPU- র এবং অন্যদের কেবল আগাম সিদ্ধান্ত নিয়েছে যে শূন্য নির্দিষ্ট প্যাটার্নের এবং বেশী নির্দিষ্ট কিছু বুঝাইবে. zeros এবং বেশী নির্দিষ্ট প্যাটার্নের হবে মানে, পর্দা এই মুদ্রণ, বা এই দুটি সংখ্যার যোগ, বা এই দুটি সংখ্যার বিয়োগ, বা থেকে তথ্য এই টুকরা সরাতে আমার কম্পিউটার এর মেমরি এখানে ওভার, বা অন্য খুব কম স্তরের কোন সংখ্যা, কিন্তু শেষ পর্যন্ত দরকারী, অপারেশন. কিন্তু সৌভাগ্যক্রমে, আমরা মানুষের যাচ্ছে না বিস্তারিত এই মাত্রা জানা প্রয়োজন. বস্তুত, শুধু, শেষবারের মত যেখানে আমরা আবার, এবং আবার, এবং আবার আনমনা, খুব কম স্তর থেকে ভবন zeros এবং বেশী মত আদিম উচ্চস্তরের ধারণার সংখ্যা, এবং অক্ষর মত, এবং রং, এবং আরো অনেক কিছু, তাই আমরা প্রোগ্রামার হিসেবে করতে পারেন কাঁধের উপর দাঁড়ানো অন্যদের যারা আমাদের আগে এসেছেন এবং সফ্টওয়্যার যে অন্য ব্যবহার মানুষ us-- আগে লিখেছি যথা প্রোগ্রাম কম্পাইলার বলা. সি একটি ভাষা যে সাধারণত কম্পাইল করা হয়, যা থেকে রূপান্তরিত অর্থ মেশিন কোডে সোর্স কোড. বিশেষ করে, এর মানে কি হয় যে আপনি আপনার সোর্স পেয়েছেন কোড যে আপনি নিজেকে আমরা যত তাড়াতাড়ি লিখুন, পর্দায় মাত্র কয়েক মিনিটের মধ্যে হবে, এবং আপনি এটা রুপান্তর করতে চান পরিণামে মেশিনে code-- যারা zeros এবং বেশী যে শুধুমাত্র আপনার ম্যাক বা আপনার পিসি understands-- আপনি একটি প্রথম পেয়েছেন যেমন যে সোর্স কোড ফিড একটি বিশেষ ইনপুট প্রোগ্রাম একটি কম্পাইলার বলা, আউটপুট যা আমরা দেখতে পাবে মেশিন কোড. এবং প্রকৃতপক্ষে, আমরা শেষ সময় সায়ীদ সম্পর্কে, সত্যিই, দিনের শেষে, সমস্যা সমাধান. আপনি ইনপুট পেয়েছেন. এবং আপনি আউটপুট পেয়েছেন. আর তুমি কিছু পেয়েছেন মাঝখানে অ্যালগরিদম. আলগোরিদিম নিশ্চয় হতে পারে সফ্টওয়্যার বাস্তবায়িত, আমরা pseudocode গত সপ্তাহে দেখেছি এবং আমরা প্রকৃত কোড দিয়ে দেখতে পাবেন যেমন এই সপ্তাহ. আর তাই একটি কম্পাইলার সত্যিই ঠিক ভিতরে আলগোরিদিম একটি সেট আছে এটা জানি যে কিভাবে বিশেষ কীওয়ার্ড রূপান্তর, প্রধান, এবং printf মত, এবং অন্যদের যে আমরা শুধু শূন্য নিদর্শনের মধ্যে দেখেছি এবং ওগুলো যে ইন্টেল ভিতরে এবং অন্যান্য CPU- র আসলে বুঝতে পারে. তাহলে আমরা এটা কিভাবে করব? আমরা একটি কম্পাইলার কোথায় পেতে পারি? আমাদের মধ্যে অধিকাংশই এখানে একটি Mac বা একটা পিসি আছে. এবং আপনি ম্যাক OS চালাচ্ছেন, বা উইন্ডোজ, বা লিনাক্স, বা সোলারিস, বা অন্য কোন সংখ্যা অপারেটিং সিস্টেম. এবং প্রকৃতপক্ষে, আমরা পারা ওয়েব সম্মুখের বাইরে যেতে এবং একটি কম্পাইলার ডাউনলোড আপনার ম্যাক বা আপনার পিসি জন্য আপনার নির্দিষ্ট অপারেটিং সিস্টেমের জন্য. কিন্তু আমরা সব থাকবে বিভিন্ন পেজ, তাই কথা বলতে. আমরা সামান্য চাই বিভিন্ন কনফিগারেশন. আর কিছু সব একই কাজ করবে না. এবং প্রকৃতপক্ষে, এই দিন আমাদের অনেক ব্যবহার করবেন না যে শুধুমাত্র আমাদের ল্যাপটপের উপর সঞ্চালিত হয় সফ্টওয়্যার. পরিবর্তে, আমরা কিছু ব্যবহার একটি ব্রাউজার মত যে আমাদের একসেস করতে পারবেন ওয়েব ভিত্তিক মেঘের মধ্যে অ্যাপ্লিকেশন. এবং একদল পরবর্তীদের এই সেমিস্টারে, আমরা ঠিক যে কি করতে হবে. আমরা অ্যাপ্লিকেশন লিখতে হবে বা সফ্টওয়্যার code-- ব্যবহারের সি, কিন্তু পাইথন মত অন্যান্য ভাষায় এবং জাভাস্ক্রিপ্ট যে মেঘ চালানো. আর নিজেদেরকে এটা করতে হলে, আমরা সেমিস্টারে সময় আসলে একটি মেঘ ভিত্তিক ব্যবহার করবে এবং CS50 আইডিই হিসাবে পরিচিত পরিবেশ. এই একটি ওয়েব ভিত্তিক প্রোগ্রামিং হয় পরিবেশ, বা সমন্বিত উন্নয়ন পরিবেশ, IDE, যে কিছু উপরে নির্মিত ওপেন সোর্স সফটওয়্যার মেঘ 9 নামক. আর আমরা কিছু প্রাতিষ্ঠানিক করেছি এটি simplifications নির্দিষ্ট কিছু বৈশিষ্ট্য লুকাতে তাই প্রথম সপ্তাহ যে আমরা প্রয়োজন হবে না, যা পরে আপনি যা করতে পারেন তাদের প্রকাশ এবং কি সবচেয়ে কিছু আপনি পরিবেশের সঙ্গে চান. আর এটা আমাদের খুব পারবেন, করতে, নির্দিষ্ট সফ্টওয়্যার প্রাক ইনস্টল করুন. একটি তথাকথিত এবং CS50 মত থিংস লাইব্রেরি, যা আমরা শীঘ্রই দেখতে পাবেন কিছু সঙ্গে সি আমাদের উপলব্ধ অতিরিক্ত কার্যকারিতা. তাই আপনি যদি যান যদি করতে, পরিণামে, CS50.io, আপনি লগ ইন করার অনুরোধ জানানো হবে এবং একবার আপনি এবং তৈরি বিনামূল্যে জন্য একটি অ্যাকাউন্ট, আপনি একটি অ্যাক্সেস করতে সক্ষম হতে হবে এনভায়রনমেন্ট বেশ ভালো দেখায়. এখন, এই ডিফল্ট মোডে রয়েছে. সবকিছু সুন্দর এবং পর্দায় উজ্জ্বল. আমাদের অনেকেই একটা অভ্যাস আছে এবং CS50 টুকরা যে কাজ বেশ নিশুতি মধ্যে. তাই আপনি কিছু করতে পছন্দ হতে পারে রাত্রি মোড পরিণত, তাই কথা বলতে. কিন্তু, শেষ পর্যন্ত, আপনি কি করছেন এবং CS50 আইডিই মধ্যে দেখতে যাচ্ছেন তিনটি স্বতন্ত্র areas-- হয় বাম যেখানে একটি এলাকা আপনার ফাইলের মধ্যে হতে যাচ্ছে মেঘ, উপরের ডানদিকে একটি এলাকা যেখানে আপনার কোড সম্পাদনাযোগ্য হতে যাচ্ছে. আপনি খুলতে সক্ষম হবেন কোনো প্রোগ্রাম জন্য পৃথক ট্যাব আপনি এই সেমিস্টারে ভিতরে লিখতে যে যে উপরের ডান দিকের কোণায় অবস্থিত এর. তারপর সবচেয়ে arcanely, এবং এখনো জোরে, এই জিনিস হতে যাচ্ছে একটি টার্মিনাল উইন্ডো হিসাবে পরিচিত নীচে. এটি একটি পুরানো স্কুল কমান্ড লাইন ইন্টারফেস, বা CLI, যে দেয় আপনি কমান্ড এক্সিকিউট করার এই ক্ষেত্রে কম্পিউটারে, cloud-- কম্পিউটার আপনার কোড কম্পাইল করার মত কাজগুলি করতে সোর্স কোড থেকে মেশিন কোডে, আপনার প্রোগ্রাম চালানোর জন্য, বা শুরু করার জন্য আপনার ওয়েব সার্ভার, অথবা আপনার ডাটাবেস অ্যাক্সেস করতে, এবং অন্যান্য কৌশলের কোন সংখ্যা যে আমরা দীর্ঘ আগে ব্যবহার করতে শুরু করব. কিন্তু সেখানে পেতে, আমরা করছি আসলে আছে যাচ্ছে অনলাইন যান এবং খেলা শুরু করতে. আর এটা করতে হলে, প্রথম দিন মূল সঙ্গে tinkering শুরু, এবং একটি প্রধান অংশ অনুগ্রহ করে লিখুন. আর এর যে ফাংশন ব্যবহার করা যাক printf, যা আমরা আগে ব্যবহার করা, সহজভাবে কিছু বলতে. তাই এখানে আমি CS50 আইডিই এর ভিতরে ইতিমধ্যে আছি. আমি অগ্রিম লগইন করেছি. আমি পূর্ণ উইন্ডো আবরিত. আর তাই, শেষ পর্যন্ত, আপনি খুব আসার সমস্যা অনুরূপ পদক্ষেপ অনুসরণ করবে অনলাইন ডকুমেন্টেশন প্রদান করবে. তাই আপনি সম্পর্কে চিন্তা করতে হবে না যে একটু টেকনিক্যাল পদক্ষেপ শুষে আমি আজ এখানে না যে. কিন্তু আপনি এই মত একটি স্ক্রীন পাবেন. আমি রাতের মোডে ঘটতে হবে. এবং আপনি সবকিছু রাঙান পারেন রাত মোড নিষ্ক্রিয় দ্বারা আপ. আর শেষে দিন, আপনি দেখতে যাচ্ছেন ফাইল areas-- এই তিনটি প্রধান বাঁদিকে উপস্থিত ব্রাউজার, টপ আপ কোড ট্যাব, এবং নীচে টার্মিনাল উইন্ডোর. আমাকে এগিয়ে যান এবং আমার প্রথম প্রোগ্রাম লিখতে. আমি, preemptively ফাইলে যান যাচ্ছি সংরক্ষণ করুন, এবং hello.c হিসাবে আমার ফাইলটি সংরক্ষণ করুন. প্রকৃতপক্ষে, কনভেনশন দ্বারা, যে কোন প্রোগ্রাম আমরা লেখা যে সি ভাষায় লেখা কিছু নামকরণ করা উচিত বিন্দু গ কনভেনশন দ্বারা. তাই আমি এটি hello.c নাম যাচ্ছি, কারণ আমি শুধু বিশ্বের হ্যালো বলতে চাই. এখন আমি জুম যাচ্ছি আউট এবং Save এ ক্লিক করুন. আর একটা জিনিসই আমি এখানে আছে এখন একটি ট্যাব যা আমি কোড লেখা শুরু করতে পারেন. এই সঙ্কলন করা যাচ্ছে. এই কিছুই মানে. এমনকি যদি আমি রূপান্তরিত zeros এবং বেশী এই, CPU- র কোন আছে যাচ্ছে ধারণা প্রায় কী হচ্ছে. কিন্তু আমি যদি লাইন লিখতে যে মেলে না সঙ্গে সি এর conventions-- সি হচ্ছে, আবার, এই সিনট্যাক্স সঙ্গে language-- মত এই printf, হ্যালো world-- এবং আমি করেছি সঙ্গে আরামদায়ক অর্জিত সময়ের এই করছেন. তাই আমি আমি তৈরি মনে করি না কোন বানান ও অন্যান্য ত্রুটি. কিন্তু বিচ্ছিন্নভাবে, খুব প্রথম সময় আপনি এই কাজ করতে, আপনি হবে. আর আমি কি করতে যাচ্ছি খুব প্রতাপ ভাল আপনি প্রথম সময় কাজ করে না. এবং যে পুরোপুরি ঠিক আছে, কারণ এখন আপনি শুধু নবীনতা একটা পুরো অনেক দেখতে পারে, কিন্তু সময়ের সাথে একবার আপনি পরিচিত পেতে এই পরিবেশের সঙ্গে, এবং এই ভাষা, এবং অন্যদের, আপনি কিছু দেখতে শুরু করব যে হয় সঠিক বা ভুল. এবং এই কি শিক্ষণ ফেলোগণ এবং অবশ্যই সহায়ক হয়, সময়ের এত বেশি ভাল পেতে আপনার কোডে ভুল বা বাগ spotting. কিন্তু আমি যে দাবি আছে এই কোডের কোন বাগ আছে. তাই আমি এখন এই প্রোগ্রাম চালাতে চান. এখন আমার নিজের ম্যাক বা পিসি, আমি আছি ডবল ক্লিক আইকন অভ্যাস যখন আমি কিছু প্রোগ্রাম চালাতে চান. কিন্তু যে মডেল এখানে নেই. এই পরিবেশে, যা এবং CS50 আইডিই হয়. আমরা একটি অপারেটিং ব্যবহার করছে সিস্টেম লিনাক্স বলা. লিনাক্স অন্য কথা স্মরণ করিয়ে দেয় অপারেটিং সিস্টেম, সাধারণভাবে পরিচিত ইউনিক্স হিসাবে. আর লিনাক্স বিশেষ করে জন্য পরিচিত একটি কমান্ড লাইন পরিবেশে, CLI হচ্ছে. এখন, আমরা একটি নির্দিষ্ট ব্যবহার করছেন Linux- র গন্ধ উবুন্টু নামে. আর উবুন্টু কেবল একটি নয় Linux- র নির্দিষ্ট সংস্করণ. কিন্তু এই লিনাক্স এর এই দিন আসলে না গ্রাফিক্যাল ইউজার ইন্টারফেস সঙ্গে আসা. আর এক ঘটতে এখানে ব্যবহার করা ওয়েব-ভিত্তিক. তাই এই এমনকি একটি চেহারা হতে পারে কিছু থেকে একটু ভিন্ন আপনি নিজেকে থাকতে পারে দেখা বা অতীতে চালানোর. তাই আমি এগিয়ে যেতে চলেছি এখন এবং নিচের কাজগুলো. আমি এই ফাইলটি hello.c হিসাবে সংরক্ষণ করেছি. আমি এগিয়ে যান যাচ্ছি এবং টাইপ clanghello.c ঝনঝন তাই সি ভাষার জন্য একটি কম্পাইলার হয়. এটি প্রাক ইনস্টল করা হয়েছে এবং CS50 IDE তে. এবং আপনি একেবারে বিনামূল্যে ডাউনলোড করতে পারেন এবং আপনার নিজস্ব Mac বা PC তে এই ইনস্টল করুন. কিন্তু, আবার, আপনি সব হবে না প্রাক কনফিগারেশন আপনার জন্য কাজ. তাই এখন জন্য, আমি শুধু আছি clanghello.c চালানো যাচ্ছে. আর এখন এই সিনট্যাক্স লক্ষ্য এখানে অবশেষে হবে উপলব্ধি মানে হচ্ছে আমি একটি আছি ফোল্ডার বা ডিরেক্টরি কর্মস্থান বলা. এই ডলার চিহ্ন শুধু প্রচল অর্থ জন্য, আপনার কমান্ড টাইপ করুন. এটা কি একটি প্রম্পট বলা হচ্ছে, শুধু কনভেনশন দ্বারা ডলার চিহ্ন. আর আমি যদি এখন এগিয়ে যান এবং ক্লিক করুন লিখুন, কিছুই ঘটেছে বলে মনে হয়. কিন্তু যে আসলে একটা ভাল জিনিস. কম যে ঘটবে আপনার পর্দা, তত বেশি আপনার কোড সঠিক হতে হয়, অন্তত সিনট্যাক্স. সুতরাং যদি আমি এই চালাতে চান প্রোগ্রাম, এখন আমি কি করব? ওয়েল, দেখা যাচ্ছে যে কনভেনশন দ্বারা ডিফল্ট নাম প্রোগ্রামের জন্য যখন আপনি একটি নির্দিষ্ট না নামের জন্য আপনার প্রোগ্রাম ঠিক a.out হয় হয়. আর এই সিনট্যাক্স খুব, আপনি যা করবেন সামনে দীর্ঘ সঙ্গে পরিচিত পেতে. ডট স্ল্যাশ মানে, হেই, এবং CS50 IDE একটি প্রোগ্রাম নামক a.out চালানো যে আমার বর্তমান ডিরেক্টরির ভিতরে. যে বিন্দু বর্তমান ডিরেক্টরি মানে. আর আমরা কি অন্য ধরনের সিকোয়েন্স দেখতে পাবেন অক্ষরের দীর্ঘ আগে মানে. তাই আমরা এখানে যান, লিখুন, হ্যালো দুনিয়া. এবং আপনি বিজ্ঞপ্তি পাবেন যে কি ঘটেছে? নেই শুধু এটা হ্যালো দুনিয়া প্রিন্ট হয়নি. এটি সরানো পরবর্তী লাইন কার্সার. এবং কেন যে ছিল? কোড যে আমরা আগে কি লিখেছেন জিয়া কী ছিল যে নিশ্চিত যে কার্সার would পরের লাইনে যেতে? একটি সম্পর্কে মজার জিনিস কম্পিউটার এটা শুধুমাত্র যাচ্ছে আক্ষরিক কি করতে হবে তা আপনি এখান থেকে কি বলছি. সুতরাং আপনি হ্যালো printf থেকে এটা বলতে যদি, কমা, স্থান, বিশ্বের, বন্ধ মূল্যউদ্ধৃতি, এটা কেবল আক্ষরিক যাচ্ছে যারা অক্ষর প্রিন্ট করতে. কিন্তু আমি এই বিশেষ চরিত্র ছিল শেষ, রিকল, ব্যাকস্ল্যাশ এন এ. এবং যে কি নিশ্চিত হচ্ছে যে চরিত্র গেলেন পর্দা এর পরের লাইন. আসলে, আমাকে যেতে এবং এই কাজের জন্য. আমাকে এগিয়ে যান এবং এই মুছে দিন. এখন, যে লক্ষ্য আমার পর্দার উপরের আছে একটি সামান্য লাল আলো ট্যাব ইঙ্গিত, হেই, আপনি আপনার ফাইল সংরক্ষণ করা করেছি. তাই আমি নিয়ন্ত্রণ সঙ্গে এগিয়ে যেতে চলেছি এস বা কমান্ড এস, ফাইলটি সংরক্ষণ করুন. এখন এটি একটি মুহূর্ত সবুজ জন্য গিয়েছিলাম goes--. আর এখন এটা ফিরে এসেছে শুধু একটি ঘনিষ্ঠ আইকন হচ্ছে. আমি এখন আবার clanghello.c চালানোর প্রয়োজন হলে, Enter, বিন্দু স্ল্যাশ, a.out হয়, লিখুন, আপনি দেখতে পাবেন যে এটি এখনও কাজ. কিন্তু এটা তর্কসাপেক্ষ একটু বগী. ঠিক এখন, আমার প্রম্পট কর্মক্ষেত্র, এবং তারপর যে ডলার চিহ্ন এবং তারপর আমার প্রকৃত প্রম্পট সব একই লাইনে আছে. তাই এই অবশ্যই একটি নান্দনিক বাগ, এমনকি যদি এটা সত্যিই একটি লজিক্যাল বাগ নয়. তাই আমি আমি কি পূর্বাবস্থা যাচ্ছি. আমি a.out হয় পুন: প্রকাশ করা যাচ্ছে না. বিজ্ঞপ্তি আমি জুড়েছি newline অক্ষর ফিরে. আমি ফাইল সংরক্ষণ করেছি. তাই আমি, a.out হয় পুন: প্রকাশ করা যাচ্ছে না and-- শালা, একটি বাগ, একটি বাগ অর্থাত ভুল. তাই বাগ যদিও হয় আমি এন সেখানে ব্যাকস্ল্যাশ যোগ, পুনরায় উদ্ধার, প্রোগ্রাম পুনরায় দৌড়ে, আচরণ একই ছিল. কেন যে হতে পারে? আমি একটি পদক্ষেপ, অধিকার অনুপস্থিত করছি? যে কী পদক্ষেপ আগে আপনি যে ছিল যখন আপনি আপনার সোর্স কোড পরিবর্তন চাচ্ছি, এটি সক্রিয় আউট এছাড়াও চালানোর এটা কম্পাইলার মাধ্যমে আবার যাতে আপনি নতুন মেশিন কোড পেতে. আর মেশিন কোড, zeros এবং বেশী, প্রায় অভিন্ন হতে যাচ্ছে কিন্তু পুরোপুরি তাই না, কারণ আমরা প্রয়োজন, অবশ্যই, যে নতুন লাইন. তাই এই সমাধানের জন্য, আমি প্রয়োজন যাচ্ছি clanghello.c পুন: প্রকাশ, লিখুন, বিন্দু স্ল্যাশ, a.out হয়. আর এখন, ওহে দুনিয়া ফিরে আমি যেখানে আশা করা এটা হতে. তাই এই সব জরিমানা ও উত্তম. কিন্তু a.out একটি জন্য একটি প্রশংসনীয় মূঢ় নাম প্রোগ্রাম, যদিও এটা ঘটবে, ঐতিহাসিক কারণে, সমাবেশ আউটপুট অর্থ ডিফল্ট. কিন্তু আমাকে এগিয়ে যান এখানে দিন এবং এই ভিন্নভাবে না. আমি আমার হ্যালো ওয়ার্ল্ড প্রোগ্রাম চাই আসলে হ্যালো বলা যেতে. তাই আপনি যদি এটি একটি আইকন ছিল আমার ডেস্কটপ, এটা a.out করা হবে না. এটা হ্যালো বলে অভিহিত করা হবে. তাই এই কাজ করতে, এটি সক্রিয় আউট যে ঝনঝন, অনেক প্রোগ্রাম মত, কমান্ড লাইন আর্গুমেন্ট সমর্থন, বা পতাকা, বা সুইচ, কেবল তার আচরণ প্রভাবিত যা. বিশেষভাবে, ঝনঝন একটি ড্যাশ ণ সমর্থন পতাকা, যা পরে একটি দ্বিতীয় শব্দ লাগে. এই ক্ষেত্রে, আমি ইচ্ছামত হবে, কিন্তু যুক্তিসঙ্গতভাবে, হ্যালো এটি কল. কিন্তু আমি কিছু বলতে পেরেছিলাম আমি চাই, a.out হয়, ব্যতীত যা বরং পয়েন্ট ছাড়াও হবে. এবং তারপর মাত্র নাম উল্লেখ ফাইলের আমি কম্পাইল করতে চাও. তাই এখন এমনকি শুরুতে যদিও কমান্ড আমি এখনও ঝনঝন আছে, কমান্ডের শেষে আমি এখনও ফাইলের নাম আছে, আমি এখন এই কমান্ড লাইন আছে যুক্তিতর্ক, এই পতাকার যে বলছে, ওহ, উপায় দ্বারা, আউটপুট-ণ, একটি ফাইল হ্যালো বলা, না ডিফল্ট a.out হয়. সুতরাং এখন, কিছুই লিখুন যদি আমি আঘাত ঘটেছে বলে মনে হয়. আর এখনো, এখন আমি বিন্দু স্ল্যাশ হ্যালো কি করতে পারেন. সুতরাং এটি একই প্রোগ্রাম. zeros এবং বেশী হয় দিনের শেষে অভিন্ন. কিন্তু তারা দুজন আছেন বিভিন্ন files-- a.out হয়, যা প্রথম সংস্করণ এবং শুধু মূর্খতাপূর্ণভাবে নামে, এবং এখন হ্যালো, যা অনেক বেশি একটি প্রোগ্রামের জন্য আরো আকর্ষক নাম. কিন্তু সত্যি বলতে, আমি আছি এই আবার মনে রাখা যাচ্ছে, এবং আবার, এবং আবার. এবং, আসলে, যেমন আমরা লিখতে আরো জটিল প্রোগ্রাম, কমান্ড তুমি লিখতে হবে যাচ্ছে এমনকি পেতে যাচ্ছি আরো এখনও জটিল. তাই চিন্তা করবেন না. এটা পরিনত হয় যে মানুষের আগে আমাদের তারাও উপলব্ধি করেছেন ঠিক এই একই সমস্যা. তারাও থাকার ভোগ করা হয়নি মোটামুটি লম্বা, রহস্যময় কমান্ড টাইপ করুন, ঘাঁটান তাদের মনে. আর তাই আমাদের সামনে মানুষের করেছেন অন্যান্য প্রোগ্রাম এটি সহজ করতে আপনার সফ্টওয়্যার কম্পাইল করার. এবং প্রকৃতপক্ষে, এই ধরনের একটি প্রোগ্রাম বলা হয়. তাই আমি এগিয়ে যান এবং এই কাজ করতে যাচ্ছি. আমি সবকিছু পূর্বাবস্থা যাচ্ছি আমি শুধু নিম্নলিখিত ভাবে করেনি. আমার নির্মিত LS টাইপ করা যাক. আর তুমি কিনা তিন বিজ্ঞপ্তি পাবেন জিনিস a.out হয়, এবং একটি তারকা, হ্যালো এবং একটি তারকা, এবং, hello.c. আশা করছি, এই উচিত একটু স্বজ্ঞাত হতে, যতটুকু আগে সেখানে ছিল এই কর্মক্ষেত্র কিছুই. কিছুই যে আমি ছিল; সৃষ্টি না হওয়া পর্যন্ত আমরা ক্লাস শুরু. আর আমি hello.c সৃষ্টি. আমি তারপর এটা কম্পাইল, এবং এটা a.out নামে. এবং তারপর আমি এটা আবার সামান্য কম্পাইল ভিন্নভাবে এবং এটা হ্যালো বলা. তাই আমি এই ডিরেক্টরির মধ্যে তিনটি ফাইল আছে, এই ফোল্ডারে কর্মস্থান নামক. এখন, আমি দেখতে যেমন ভাল করতে যদি আমি আসলে জুম আউট. তাহলে আমি এখানে জুম আউট এবং যে উপরে ডানপাশে দেখুন কোণ, বাম প্রতিজ্ঞা করেছিলেন আপনার স্ক্রিনের দিকে সবসময় আপনাকে দেখাতে যাচ্ছে কি আপনার অ্যাকাউন্টে, কি এবং CS50 আইডিই এর ভিতরে. সেখানে তিনটি ফাইল আছে. তাই আমি a.out হয় পরিত্রাণ পেতে এবং হ্যালো চান. এবং হিসাবে আপনি প্রতাপ intuitively, কল্পনা, আপনি নিয়ন্ত্রণ ক্লিক বাছাই পারে বা ঠিক এই বাটনে ক্লিক করুন. আর এই সামান্য মেনু pops আপ. আপনি ফাইল ডাউনলোড করতে পারেন, চালানোর এটা, এটা পূর্বরূপ রিফ্রেশ, নামান্তর, বা কি না. আর আমি শুধু মুছতে পারবে, এবং এটা দূরে যেতে হবে. কিন্তু এর একটি কমান্ডের সাথে কিছু করতে দিন এখন জন্য লাইন, যাতে আরামদায়ক পেতে এই সঙ্গে, এবং নিচের কাজগুলো. আমি এগিয়ে যান এবং অপসারণ যাচ্ছি আক্ষরিক rma.out টাইপ করে a.out হয়. এটি সক্রিয় আউট, জন্য কমান্ড অপসারণ বা কিছু মুছে ফেলার, অপসারণ বা মুছে ফেলতে পারবেন না. এটা আরো succinctly আরএম শুধু সংরক্ষণ করতে, আপনি কিছু কীস্ট্রোক করে এন্টার চাপুন. এখন আমরা কিছুটা হতে যাচ্ছেন cryptically নিয়মিত ফাইল a.out হয় মুছে ফেলুন. আমি সত্যিই কি একটি জানি না অনিয়মিত ফাইল এখনো হবে. কিন্তু আমি এটা মুছে ফেলার জন্য চাও. তাই আমি হ্যাঁ জন্য Y টাইপ করতে যাচ্ছি. অথবা আমি এটা খুঁজে টাইপ করে এন্টার চাপুন পারে. এবং, আবার, কিছুই ঘটবে বলে মনে হয়. কিন্তু যে, একটি ভাল জিনিস সাধারণত. যদি আমি এই সময় ls ব্যবহার, আমি কি করে দেখতে পেত! আশা করা যায়, শুধু হ্যালো এবং, hello.c. এখন, একটি সরাইয়া হিসাবে, আপনি যা করবেন এই তারকা তারকাচিহ্ন লক্ষ্য, যে আমার প্রোগ্রাম শেষে পায়. এবং তারা সবুজ দেখাছে. যে ঠিক CS50 আইডিই এর উপায় আসলে তোমাদের cluing এর যে সোর্স কোড না. যে একটি এক্সিকিউটেবল, একটি runnable এর প্রোগ্রাম যে আপনি আসলে চালাতে পারেন ডট স্ল্যাশ করছেন, এবং তারপর এটা নাম. এখন, আমাকে এগিয়ে যান এবং মুছে ফেলুন এই, RM হ্যালো, লিখুন, নিয়মিত অপসারণ হ্যালো দায়ের, হ্যাঁ. এবং এখন যদি আমি ls ব্যবহার, আমরা ফিরে, hello.c করতে চলেছেন. মুছে দিতে না করার চেষ্টা করুন আপনার আসল সোর্স কোড. যদিও বৈশিষ্ট্য এবং CS50 আইডিই যেখানে পাতাটা আপনি আপনার সংস্করণ ইতিহাস দিয়ে যেতে পারেন এবং সময় আবার গুটিয়ে যদি আপনি দূর্ঘটনাক্রমে কিছু মুছতে, মনোযোগী হতে না এই অনুরোধ জানানো yes অথবা no অনুযায়ী, আপনি আসলে কি করতে চান কি. আর যদি আমি ওপরে উঠে যাই কোণায় বাম এখানে, সব যে অবশেষ hello.c. তাই সেখানে এর bunches এর অন্যান্য কমান্ডের যে আপনি লিনাক্স জগতে নির্বাহ করতে পারেন, যা এক আবার, করুন, হয়. আর আমরা করতে যাচ্ছেন আমার প্রোগ্রামটি এখন নিম্নরূপ. পরিবর্তে ঝনঝন করছেন, পরিবর্তে ঝনঝন- ণ করছেন, আমি কেবল যাচ্ছি আক্ষরিক টাইপ, হ্যালো করতে. এবং এখন লক্ষ্য, আমি আছি hello.c টাইপ করতে না. আমি হ্যালো করতে টাইপ করছি. এবং এই প্রোগ্রামটি করুন যে এবং CS50 আইডিই, এবং আরো সঙ্গে আসে সাধারণত Linux- র সাথে, একটি প্রোগ্রাম যে একটি প্রোগ্রাম নামক হ্যালো করতে যাচ্ছে. এবং এটা অনুমান করা কনভেনশন দ্বারা যাচ্ছে যে যদি এই প্রোগ্রাম তৈরি করা যেতে পারে, এটা একটি উৎস থেকে তৈরি হতে যাচ্ছে কোড ফাইল বিন্দু গ মধ্যে বিভক্তি, hello.c,. সুতরাং এখন, নোটিশ লিখুন যদি আমি আঘাত করে কমান্ড মৃত্যুদন্ড কার্যকর করা হয় যে আসলে এমনকি দীর্ঘতর আগের চেয়ে আগে. এবং যে কারণ আমরা করেছি কনফিগার এবং CS50 আইডিই আছে কিছু অতিরিক্ত যে সালে নির্মিত বৈশিষ্ট্য আমরা এখনও প্রয়োজন হবে না, কিন্তু শীঘ্রই হবে. কিন্তু কী জিনিস উপলব্ধি করা এখন আমি একটি হ্যালো প্রোগ্রাম আছে. যদি আমি আবার ls টাইপ করুন, আমি হ্যালো একটি প্রোগ্রাম আছে. এবং আমি এটা দিয়ে চালাতে পারেন ডট a.out হয় স্ল্যাশ, কোন, কারণ এই পুরো পয়েন্ট ব্যায়াম ডট স্ল্যাশ হ্যালো ছিল. এবং এখন আমি আমার হ্যালো ওয়ার্ল্ড প্রোগ্রাম আছে. সুতরাং সামনে এগুনোর, আমরা প্রায় সবসময় ঠিক করছি আমাদের প্রোগ্রাম কম্পাইল যাচ্ছে কমান্ড ব্যবহার করে. এবং তারপর আমরা তাদের চালানো চলুন ডট স্ল্যাশ, এবং প্রোগ্রাম এর নাম. কিন্তু বুঝতে পারছি না কি জন্যে করছে আপনি, এটা নিজেই একটি কম্পাইলার নয়. এটা শুধু একটি সুবিধার্থে প্রোগ্রাম যে জানে কিভাবে একটি কম্পাইলার ট্রিগার তাই চালানোর যে আপনি নিজেকে এটি ব্যবহার করতে পারেন. কি অন্যান্য কমান্ডের মধ্যে উপস্থিত লিনাক্স, এবং ঘুরে এবং CS50 IDE তে? আমরা খুব শীঘ্রই দেখতে পাবেন যে আছে একটি CD কমান্ড, ডিরেক্টরি পরিবর্তন. এই কমান্ডের সাহায্যে আপনি মধ্যে পারবেন আপনার কমান্ড লাইন ইন্টারফেস অগ্রসর, এবং ফিরে, এবং বিভিন্ন ফোল্ডার পূর্ণপ্রকাশিত আপনার মাউস ব্যবহার না করে. নির্মিত LS আমরা দেখেছি, যা তালিকা ঘোরা বর্তমান ডিরেক্টরির মধ্যে ফাইল. এর Dir করুন, আপনি যা করতে পারেন সম্ভবত অনুমান করা শুরু এইসব কি now-- ডিরেক্টরির করতে চাচ্ছি, আপনি একটি ফোল্ডার তৈরি করতে চান তাহলে. সরানোর জন্য আরএম, আরএম জন্য Dir ডিরেক্টরিতে এবং এই অপসারণ, আবার, কমান্ড লাইন আপনি কি এর সমকক্ষও আপনার মাউস সঙ্গে CS50 আইডিই না পারে. কিন্তু আপনি শীঘ্রই খুঁজে পাবেন যে কখনও কখনও এটি শুধু অনেক দ্রুত করতে একটি কীবোর্ড সঙ্গে কিছু, এবং শেষ পর্যন্ত অনেক বেশি শক্তিশালী. কিন্তু এটা তর্ক যে কঠিন কিছু আমরা এতদূর কাজ করছি সব যে শক্তিশালী, যখন সব আমরা যেটা বলছে করছি, হ্যালো দুনিয়া. এবং, আসলে, আমি হার্ডকোডেড কথাগুলো আমার প্রোগ্রামে হ্যালো দুনিয়া. কোন গতিশীলতা এখনো নেই. স্ক্র্যাচ মাত্রার একটি আদেশ ছিল আরো আকর্ষণীয় গত সপ্তাহে. তাই সেখানে যাক. এর দ্বারা যে দিকে একটি পদক্ষেপ গ্রহণ করা এই ফাংশন কিছু উপায়. তাই না শুধুমাত্র সি printf সঙ্গে আসে, এবং অন্যান্য কার্যাবলী এর bunches কিছু যা আমরা দেখতে পাবেন সময়ের সাথে, তাই নয় কি ডান আউট এটা যে সব সহজ করতে ব্যবহারকারীর ইনপুট পেয়ে ফটকের. বস্তুত, দুর্বলতা এক সি এর মত প্রত্যেক, এবং এমনকি জাভা এবং এখনো অন্যদের, এটা না যে হয় এটা সহজ শুধু ভালো জিনিস পেতে করা ব্যবহারকারী, বা স্ট্রিং, শব্দ থেকে ইন্টিজার, ও শব্দসমষ্টি, মত একা কিছু দিন ফ্লোটিং পয়েন্ট মান, বা বাস্তব সংখ্যার দশমিক পয়েন্ট, এবং সত্যিই সঙ্গে দীর্ঘ নম্বর, যেমন আমরা শীঘ্রই দেখতে পাবেন. তাই এখানে ফাংশন এই তালিকা, এই অন্যান্য স্ক্র্যাচ পাজল টুকরা মত আমরা CS50 প্রাক- ইনস্টল করা আছে যে আইডিই যে আমরা কয়েক সপ্তাহের জন্য ব্যবহার করব প্রকারের প্রশিক্ষণ কায়দা করে, এবং যেমন অবশেষে তাদের খুলে, এবং দেখুন ফণা, সম্ভবত, এ তলদেশে কিভাবে এই জিনিস বাস্তবায়িত হয়. কিন্তু এই কাজ করতে, আসুন আসলে একটি প্রোগ্রাম লিখতে. আমাকে এখন এগিয়ে যাই. আমি একটি নতুন তৈরি করতে যাচ্ছি এই সামান্য প্লাস এ ক্লিক করে ফাইল, এবং নতুন ফাইল-এ ক্লিক করলে. আমি এই পরবর্তী সংরক্ষণ করতে যাচ্ছি যেমন, এর কথা বলা যাক এক, string.c, কারণ আমি স্ট্রিং সঙ্গে খেলতে চাই. আর সি স্ট্রিং শুধু অক্ষরের একটি ক্রম. তাই এখন আসুন এগিয়ে যান এবং নিচের কাজগুলো. অন্তর্ভুক্ত করুন মান IO.h-- এবং এটি সক্রিয় আউট প্রমিত IO, আইও মাত্র ইনপুট এবং আউটপুট মানে. সুতরাং দেখা যাচ্ছে যে এখানে এই লাইন কি printf ব্যবহার করতে আমাদের প্রতিবেশী হয়. Printf, অবশ্যই, আউটপুট উৎপন্ন. তাই যাতে printf ব্যবহার করার জন্য যে, এটি সক্রিয় আউট আপনি কোড এই লাইন আছে আপনার ফাইলটি শীর্ষে. এবং আমরা ফিরে আসবো কি যে সত্যিই দীর্ঘ আগে মানে. এটা পরিনত হয় যে এ কোন সি প্রোগ্রাম লিখি, আমি শুরু করতে পেয়েছেন কোড যে ভালো দেখায়. এবং আপনি CS50 আইডিই মনোযোগ এবং করব অন্যান্য ইন্টিগ্রেটেড ডেভেলপমেন্ট এটা মত পরিবেশের যেমন যথাসাধ্য চেষ্টা করতে যাচ্ছি তারা আপনার চিন্তার শেষ করতে পারবেন না. আসলে, একটি মুহূর্ত আগে যদি আমি পূর্বাবস্থায় ফিরিয়ে আনতে আমি কি না, আমি আঘাত লিখুন. আমি তারপর খোলা কোঁকড়া আঘাত বক্রবন্ধনী, আবার এন্টার চাপুন. আর এটা আমার চিন্তার শেষ. এটা আমার কাছে একটা নতুন লাইন দিয়েছে, কোন কম সংভৃত সুন্দর রচনাশৈলীসংক্রান্ত কারণে আমরা দেখতে পাবেন. এবং তারপর এটি স্বয়ংক্রিয়ভাবে আমাকে দিয়েছে কোঁকড়া বক্রবন্ধনী যে আমার চিন্তার শেষ. এখন, এটা সবসময় না অনুমান আপনি কি করতে চান. কিন্তু বৃহৎ অংশ, এটা আছে আপনি কিছু keystrokes সংরক্ষণ. সুতরাং একটি মুহূর্ত আগে, আমরা এই প্রোগ্রাম দৌড়ে হ্যালো, দুনিয়া, এবং তারপর এটি কম্পাইল, এবং তারপর এটা দৌড়ে. কিন্তু সেখানে কোন গতিশীলতা এসেছে. তাহলে কি আমরা চেয়েছিলাম ভিন্ন কিছু? আচ্ছা, যদি আমি আসলে চেয়েছিলাম ব্যবহারকারী থেকে একটি পংক্তি পেতে? আমি একটি ধাঁধা টুকরা ব্যবহার করতে যাচ্ছি ঠিক বলা that-- স্ট্রিং পেতে. সি পরিনত হয় যে কাজ যখন আপনি চান না একটি ধাঁধা টুকরা ইনপুট প্রদান, বা আরো একটি ফাংশন সঠিকভাবে, আপনি আক্ষরিক শুধু খোলা বন্ধনী না, বন্ধ করুন প্রথম বন্ধনী. সুতরাং এটা যেন সেখানে নেই কোন সাদা বাক্সে টাইপ করুন. বলতে ব্লক আগে একটু সাদা বক্স ছিল. আমরা এখন যে সাদা বক্স আছে না. কিন্তু যখন আমি স্ট্রিং পেতে কল, আমি ফলে কোথাও লাগাতে চান. তাই সি একটি খুব সাধারণ দৃষ্টান্ত হয় একটি ফাংশন, পেতে স্ট্রিং মত এখানে কল, এবং তারপর তার রিটার্ন মান সংরক্ষণ. এটা ফল এর তার কিছু প্রচেষ্টা. আর কি প্রোগ্রামিং তনমথাণ, সি ভূত বা এখন কিনা, যে আমরা আসলে কিছু সঞ্চয় করতে ব্যবহার করতে পারেন? এটা ঠিক একটি পরিবর্তনশীল নামক? আর ভূত, আমরা সত্যিই না গ্রাহ্য কি ভেরিয়েবল যাচ্ছিলেন. কিন্তু এই ক্ষেত্রে, আমরা আসলে কি. আমি স্ট্রিং বলতে যাচ্ছি. এবং তারপর আমি কল করতে পারেনি এই কিছু আমি চাই. আমি এটা কল যাচ্ছি নাম, স্ট্রিং পেতে পায়. আর এখন তুমি এমনকি যদি এই একটি সামান্য নতুন, উল্লেখ্য, আমি কিছু বিস্তারিত উদাসীন করছি. আমি একটি সেমিকোলন ভুলে যাচ্ছি. আমি এই চিন্তার শেষ করতে হবে. তাই আমি আমার কার্সরটিকে যাচ্ছি, এবং সেখানে সেমিকোলন আঘাত. আর আমি শুধু কি করেছ? কোড এই লাইন ইন, মুহূর্তে সংখ্যা 5, আমি কোন ইনপুট সঙ্গে স্ট্রিং পেতে আহ্বান করছি. সুতরাং কোন সামান্য সাদা বাক্সের মতো সংরক্ষণ ব্লক রয়েছে. আমি শুধু বলছি, হেই, কম্পিউটার, আমাকে একটি স্ট্রিং পেতে. সমান চিহ্ন সত্যিই নয় একটি সমান চিহ্ন, কোনটাই. এটা নিয়োগ এর অপারেটর, যার মানে, হেই, কম্পিউটার, মূল্য স্থানান্তর বাম হাতে ডান থেকে. এবং যারা বামদিকে, আমি নিম্নলিখিত আছে. আরে, কম্পিউটার, আমাকে একটি স্ট্রিং দিতে অক্ষরের একটি ক্রম. আহবান স্ট্রিং নাম. এবং আমি এমনকি এটা নাম কল করতে হবে না. আমি এটা বলতে পেরেছিলাম, সাধারনত, এস মত কিছু, অনেক মত আমরা করতাম পরিবর্তনশীল আমি কল. কিন্তু এখন আমি এটা দিয়ে কিছু করতে হবে. এটা প্রশংসনীয় মূঢ় হবে এই কোড কম্পাইল করার প্রণালী চেষ্টা, চলমান এই প্রোগ্রাম, যদিও আমি একটি স্ট্রিং পেয়ে করছি, কারণ এটা এখনও ঠিক হ্যালো বলে বিশ্বের যাচ্ছে. কিন্তু আমি এই পরিবর্তন করতে চান না. আমি এই কথা বলছো না কেন? শতাংশ গুলি, কমা গুলি. আর এই এখনও একটি সামান্য রহস্যপূর্ণ. তাই আমাকে আমার ভেরিয়েবল আরো স্পষ্ট করা যাক. আমাকে এই পরিবর্তনশীল নাম নাম যাক. আর যদি এর দেখতে আমরা জ্বালাতন করা যাবে না পৃথক্ কি এখানে ঘটছে. তাই লাইন পাঁচটি, আমি একটি স্ট্রিং পেয়ে. আর আমি যে স্ট্রিং সংরক্ষণকারী করছি, যাই হোক না কেন ব্যবহারকারী টাইপ করা হয়েছে তার কীবোর্ড এ, একটি পরিবর্তনশীল নাম বলা. এবং দেখা যাচ্ছে যে printf, শুধু নেই ডবল এক আর্গুমেন্ট গ্রহণ কোট, ডবল কোট এক ইনপুট. এটা দুই, বা তিন, বা তার বেশি, যেমন নিতে পারেন যে দ্বিতীয়, তৃতীয় বা, বা চতুর্থ, সব ভেরিয়েবলের নাম হয়, অথবা বিশেষভাবে মূল্যবান বলে, যে আপনি মধ্যে চলা করতে চান, পরিবর্তনশীল, কোট যে পংক্তি. অন্য কথায়, কি এই সঙ্গে ভুল হবে? যদি আমি শুধু বলেন, হ্যালো নাম, ব্যাকস্ল্যাশ এন, আমার ফাইল সংরক্ষণ করা, আমার কোড কম্পাইল, এবং এই দৌড়ে, কী ঘটবে? এটা শুধু বলে যাচ্ছে, হ্যালো নাম, আক্ষরিক এন-এ-এম-ই, যা মূঢ় ধরনের কারণ হয় এটা জগৎ থেকে আলাদা কোন ব্যাপার. তাই কোট আসলে কিছুই নয় কি আক্ষরিক মুদ্রিত পরার. সুতরাং যদি আমি করাতে চাই একটি স্থানধারক আছে, আমি আসলে ব্যবহার করতে হবে কিছু বিশেষ সিনট্যাক্স. এবং এটি সক্রিয় আউট যদি আপনি পড়তে printf ফাংশন ডকুমেন্টেশন, এটা আপনাকে বলতে হবে যে আপনি শতাংশ গুলি ব্যবহার করা হলে, আপনি একটি মূল্য নিম্নরূপ প্রতিস্থাপন করতে পারেন. যে পরে একটি কমা পরে ডবল কোট, আপনি কেবল নাম লিখতে পরিবর্তনশীল যে আপনি চান যে বিন্যাসে মধ্যে চলা কোড, বা বিন্যাস নির্দিষ্টকারী স্ট্রিং জন্য শতাংশ গুলি. এবং এখন আমি আমার ফাইল সংরক্ষণ করেছি যদি, আমি আমার টার্মিনাল থেকে ঢলা. আমি স্ট্রিং টাইপ করতে, কারণ, আবার, এই নাম ফাইল যে আমি সামনে বেছে string.c হয়. তাই আমি স্ট্রিং করুন, লিখুন বলতে যাচ্ছি. ওহ আমার ধার্মিকতা, সব তাকান ভুল আমরা ইতিমধ্যে করেছি. আর এই হচ্ছে ÑÑ কি, এই সত্যিই হয় একটি ছয়, সাত লাইন প্রোগ্রামের মত? তাই এই হল যেখানে এটা খুব করতে পারেন হয় দ্রুত অপ্রতিরোধ্য পেতে. এই টার্মিনাল উইন্ডোতে হয়েছে এখন শুধু সময় গিলে ত্রুটির বার্তা একটি বিশাল সংখ্যা. নিশ্চয়, আমি আরো ত্রুটি নেই আমি চেয়ে বার্তা লাইনের কোড আছে. তাই কি ঘটছে? আচ্ছা, ভাল কৌশল আপনি যে কোন সময় করতে অপ্রতিরোধ্য সম্মুখীন না যে মত এরর এর তালিকা, স্ক্রোল করা হয়, কমান্ড জন্য চেহারা আপনি শুধু দৌড়ে, যা আমার ক্ষেত্রে স্ট্রিং করা হয়. কি করেনি করাতে তাকান, এবং যে যে দীর্ঘ ঝনঝন কমান্ড, কোন বড় চুক্তি. কিন্তু লাল খারাপ. সবুজ হওয়ার চেষ্টা করছে মৃদু এবং সহায়ক. কিন্তু এটি এখনও খারাপ, এই ক্ষেত্রে. কিন্তু যেখানে এটা খারাপ? String.c, লাইন পাঁচটি অক্ষর পাঁচটি. সুতরাং এই মাত্র সাধারণ রীতিনীতি. কিছু কোলন কিছু মানে লাইন সংখ্যা এবং অক্ষর সংখ্যা. ত্রুটি, অঘোষিত ব্যবহার আইডেন্টিফায়ার স্ট্রিং. আপনি মান বুঝিয়েছিলেন? সুতরাং, দুর্ভাগ্যবশত, ঝনঝন সহায়ক হতে চেষ্টা করছে. কিন্তু এটা ভুল, এই ক্ষেত্রে. না, ঝনঝন শব্দ, আমি প্রমিত IO চাইনি. আমি লাইন এক বোঝানো যে, হ্যাঁ. কিন্তু লাইন পাঁচটি এখানে এই এক. আর ঝনঝন না বুঝতে এস-টি-আর-আমি-এন-জি. এটা একটা অঘোষিত শনাক্তকারী, একটি হচ্ছে শব্দ এটা ঠিক আগে কখনো দেখেনি. এবং যে কারণ সি, ভাষা আছে আমরা কোড লেখার অধিকার এখন, ভেরিয়েবল স্ট্রিং বলা নেই. এটা না করে তাহলে ডিফল্ট, সমর্থন দ্বারা কিছু একটি স্ট্রিং বলা. যে একটি CS50 টুকরা অপভাষা, কিন্তু খুব প্রচলিত. নিম্নরূপ কিন্তু আমি এই ঠিক করতে পারবো. আমি কোড একটি লাইন যোগ করুন এই প্রোগ্রামের উপরে, CS50.h, যা অন্য ফাইল অন্তর্ভুক্ত কোথাও এবং CS50 আইডিই এর ভিতরে, কোথাও হার্ড-ড্রাইভের, তাই কথা বলতে, উবুন্টু অপারেটিং সিস্টেমের যে আমি চলমান করছি, যে ফাইল যে হয় অপারেটিং শেখান যাচ্ছে সিস্টেম কি একটি পংক্তি, ঠিক প্রমিত io.h মত ফাইল অপারেটিং সিস্টেম যে কি printf, তা শেখান যাচ্ছে. প্রকৃতপক্ষে, আমরা অর্জিত হবে একটি খুব অনুরূপ বার্তা যদি আই মান বিষয়টি স্বীকার করেছেন Io.h এবং printf ব্যবহার করার চেষ্টা করে. তাই আমি এগিয়ে এবং শুধু যেতে যাচ্ছি কন্ট্রোল এল নিতে আমার পর্দা পরিষ্কার. অথবা আপনি স্পষ্ট টাইপ করতে পারেন এবং এটা হবে শুধু টার্মিনাল উইন্ডোতে পরিষ্কার. কিন্তু আপনি এখনও সময় স্ক্রোল করতে পারবেন. আমি স্ট্রিং করা পুন: প্রকাশ করা যাচ্ছে না. আমার আঙ্গুলের এই সময় অতিক্রম করেছিল, লিখুন. হায় খোদা, এটা কাজ করে. এটা আমার একটি দীর্ঘ রহস্যপূর্ণ কমান্ড দেখায় যে কি ঝনঝন মাধ্যমে উত্পন্ন করা হয়, কিন্তু কোন ত্রুটির বার্তা. তাই বুঝতে পারি, যদিও আপনি সম্পূর্ণরূপে পেতে পারে সঙ্গে উদ্বেল ত্রুটির বার্তা সংখ্যা, এটা শুধু এই বিরক্তিকর ক্যাসকেডিং হতে পারে প্রভাব, যেখানে ঝনঝন বোঝে না এক জিনিস, যা তারপর তার মানে পরবর্তী শব্দের বোঝে না, বা পরের লাইন. আর তাই এটি শুধু আপনার কোডে গলগ্রহ হয়ে যায়. কিন্তু ফিক্স সহজ হতে পারে. তাই সবসময় ফোকাস আউটপুট খুব প্রথম লাইন. আর যদি তুমি না কর এটা বুঝতে, শুধু চেহারা কিওয়ার্ড জন্য যে হতে পারে সংকেত সনাক্ত করুন, এবং লাইন সংখ্যা, এবং চরিত্র, যেখানে যে ভুল হতে পারে. এখন আমাকে এগিয়ে যান এবং টাইপ যাক ডট স্ল্যাশ, স্ট্রিং, লিখুন. হুঁ, এটা কিছু বলছে না হ্যালো. কেন? ওয়েল, পুনরাহ্বান, যেখানে এটা চলছে? এটা সম্ভবত মুহূর্তে আটকে একটি লুপ, যদি আপনি হবে, লাইন ছয় উপর, নকশা দ্বারা স্ট্রিং পান কারণ, CS50 কর্মীদের দ্বারা লিখিত, আক্ষরিক শুধু বসতে বোঝানো হয় সেখানে অপেক্ষা, এবং অপেক্ষা, এবং একটি স্ট্রিং জন্য অপেক্ষা. সকল আমরা স্ট্রিং দ্বারা অর্থ মানুষের ইনপুট. তাই আপনি কি জানেন? আমাকে এগিয়ে যাই. আর মাত্র একটি বাতিক উপর, আমাকে আমার নাম, ডেভিড টাইপ, লিখুন. এখন আমি আরো একটি গতিশীল প্রোগ্রাম আছে. এটা বললেন, হ্যালো ডেভিড. যদি আমি এগিয়ে যান এবং আবার এই চালানো, আমাকে বলতে Zamila নাম চেষ্টা, লিখুন. এবং এখন আমরা একটি গতিশীল প্রোগ্রাম আছে. আমি হার্ড বিশ্বের কোডেড নি. আমি হার্ড কোডেড নি নাম, বা ডেভিড, বা Zamila. এখন এটা প্রোগ্রাম মত অনেক বেশি আমরা জানি, যেখানে তা ইনপুট নিতে, এটা কিছুটা ভিন্ন আউটপুট উৎপন্ন. এখন, এই ভাল নয় ব্যবহারকারীর অভিজ্ঞতা, বা ইউএক্স. আমি প্রোগ্রাম চালানো. আমি জানি না আমি কি অনুমিত করছি না, যদি আমি আসলে তাকান সোর্স কোড বা স্মরণ. সুতরাং আসুন ব্যবহারকারী করা যাক কিছুটা ভালো অভিজ্ঞতা কিছু সহজ সঙ্গে. আমাকে এই ফিরে যাওয়া যাক প্রোগ্রাম, এবং সহজভাবে printf বলে. এবং আমাকে এগিয়ে যান এবং বলে নাম, কোলন দিন, এবং একটি স্থান, এবং তারপর একটি সেমিকোলন. এবং শুধু kicks জন্য, কোন নেতিবাচক প্রতিক্রিয়া এন. আর যে ইচ্ছাকৃত ব্যাপার, কারণ আমি চাই না প্রম্পট পরের লাইন সরাতে. আমি পরিবর্তে, এই না চান, স্ট্রিং করা নতুন মেশিনে আমার কোড কম্পাইল কোড ডট স্ট্রিং কাট. আহ, এই অনেক বেশি সুন্দর. এখন আমি আসলে কি জানেন কম্পিউটার আমাকে, না এটি একটি নাম দিতে চায়. তাই আমি এগিয়ে যান এবং টাইপ করতে যাচ্ছি রব এ, রব লিখুন, এবং হ্যালো. তাই, বুঝতে পারছি, এই এখনও, শেষে দিন, শুধুমাত্র একটি নয়টি লাইন প্রোগ্রাম. কিন্তু আমরা এই শিশুর পদক্ষেপ গ্রহণ করেছি. আমরা এক লাইন লিখেছে, যাদের সাথে আমরা পরিচিত, printf হ্যালো দুনিয়া ছিল. এরপর আমরা যে একটি সামান্য বিট ফেরানো হয়েছে. এবং আমরা আসলে স্ট্রিং পেতে ব্যবহার. এবং আমরা একটি পরিবর্তনশীল মধ্যে যে মান ক্ষতিগ্রস্থ. এবং তারপর আমরা এগিয়ে যান এবং উন্নত এটি একটি তৃতীয় লাইন দিয়ে আরও. এবং এই প্রক্রিয়া পুনরাবৃত্ত সফ্টওয়্যার লেখা সত্যিই চাবিকাঠি. CS50 মধ্যে, এবং সাধারণভাবে জীবনের, আপনি সাধারণত, নিচে বসে থাকলে চলবে না মনের মধ্যে একটি প্রোগ্রাম আছে, এবং লেখার চেষ্টা সব একবারে পুরো ফালতু জিনিস. এটা অবশ্যম্ভাবী, পথ স্থাপিত হবে আরও বেশি ত্রুটি আমরা চেয়ে নিজেদেরকে এখানে দেখেছি. এমনকি আমি, আজও, ক্রমাগত অন্যান্য মূঢ় ভুল করা, আসলে কঠিন ভুল আছে জিনিসটা কঠিন যে. তবে আপনি যদি আরো ভুল আরো করতে হবে লাইনের কোড আপনি একবারে সব অনুগ্রহ করে লিখুন. আর তাই এই অনুশীলন, কোড একটি সামান্য বিট লিখুন যে আপনি সাচ্ছন্দ্য, কম্পাইল এটা, এটি চালানোর আরো সাধারণভাবে এটি পরীক্ষা, তারপর on-- সরাতে তাই ঠিক মত আমরা রাখা layering এবং গত সপ্তাহে layering, কিছু থেকে বিল্ডিং খুব আরো জটিল কিছু করার সহজ, এখানে একই কাজ. বসতে না, এবং চেষ্টা একটি সম্পূর্ণ সমস্যা, অনুগ্রহ করে লিখুন. আসলে এইসব শিশুর পদক্ষেপ গ্রহণ. এখন, স্ট্রিং সব না হয় নিজেদের কাছে দরকারী. আমরা আসলে চাই, আদর্শভাবে, মত আমাদের টুলকিট অন্য কিছু আছে. সুতরাং আসুন আসলে ঠিক করি. আমাকে এখন এগিয়ে যান এবং পিটান যাক কিছুটা ভিন্ন প্রোগ্রাম. এবং আমরা পূর্ণসংখ্যা জন্য, এই int.c ডাকবো. আমি যাচ্ছি, একইভাবে, CS550.h অন্তর্ভুক্ত. আমি প্রমিত IO অন্তর্ভুক্ত করতে যাচ্ছি. এবং যে বেশ সাধারণ হতে যাচ্ছে এই প্রথম শ্রেণীর কয়েক দিনের মধ্যে. আমি প্রস্তুত করতে যাচ্ছি নিজেকে একটি প্রধান ফাংশন সঙ্গে. আর এখন এর পরিবর্তে একটি স্ট্রিং পেয়ে, এর এগিয়ে যান এবং কোন int পেতে দিন. স্বীকার করে নেওয়াই ভালো আমি কল করা যাক, এবং এটি পেতে কল কোন int, ডান বন্ধনী, সেমিকোলন. এখন চলো করি এটা দিয়ে কিছু printf,. এর মত কিছু বলতে দাও হ্যালো, ব্যাকস্ল্যাশ এন, কমা আমি. তাই আমি প্রায় কাছাকাছি অনুকারী করছি কি আমি শুধু একটা মুহূর্ত আগে করেনি. আমি একটি স্থানধারক এখানে আছে. আমি আমি এখানে কমা আছে, কারণ আমি চাই আমি যে প্লেসহোল্ডার মধ্যে চলা. সুতরাং আসুন এগিয়ে যান এবং চেষ্টা করি এই প্রোগ্রামটি কম্পাইল করার প্রণালী. ফাইল int.c. বলা হয় তাই আমি বলতে int-করতে, প্রবেশ করতে যাচ্ছি. হায় খোদা, কিন্তু কোন বড় চুক্তি, ডান? একটা ভুল. সেখানে একটি অন্বিত ভুল এখানে যেমন যে প্রোগ্রাম করতে পারবেন না int.c, লাইন ভিতরে কম্পাইল করা সাত অক্ষর 27, ত্রুটি বিন্যাস নির্দিষ্ট টাইপ গৃহস্থালির কাজ তারকা, যাই হোক না কেন যে হয়. কিন্তু যুক্তি টাইপ int হয়. তাই এখানে খুব, আমরা না চাচ্ছি যাচ্ছেন যদিও আজ উপাদানের একটি অনেক আছে, আমরা সঙ্গে আপনি অভিভূত চলুন একেবারে সি প্রতিটি বৈশিষ্ট্য, এবং প্রোগ্রামিং আরো সাধারণভাবে, শুধু এই প্রথম কয়েক সপ্তাহের মধ্যে. তাই সেখানে প্রায়ই হতে যাচ্ছে অপভাষা যা দিয়ে আপনি পরিচিত নও. এবং, আসলে, গৃহস্থালি তারকা কিছু হয় আমরা ফিরে আসতে যাচ্ছেন এক সপ্তাহ বা দুই এর সময়. কিন্তু এখন জন্য, আসুন যদি আমরা করতে পারেন দেখুন শব্দ যে পরিচিত পার্স. Formats-- তাই আমরা বিন্যাস শোনা সুনির্দিষ্টভাবে উল্লেখ করা হয়, বিন্যাস কোড সামনে. যে পরিচিত. Type-- কিন্তু যুক্তি টাইপ int- * আছে. একটি মিনিট অপেক্ষা করুন, আমি কোন int হয়. হয়তো শতাংশ গুলি আসলে কিছু সংজ্ঞায়িত অর্থ রয়েছে. এবং প্রকৃতপক্ষে, এটা আছে. একটি পূর্ণসংখ্যা, যদি আপনি চান তাহলে এটা প্রতিকল্প printf, আপনি আসলে একটি ব্যবহার করতে হবে বিভিন্ন বিন্যাস সুনির্দিষ্টভাবে উল্লেখ করা হয়. আর আপনি এই জানি না যদি না কেউ, তোমাকে বলেছিলাম অথবা আপনি এটা আগে সম্পন্ন করেছে. কিন্তু শতাংশ আমি কি সাধারণভাবে ব্যবহার করা যেতে পারে একটি পূর্ণসংখ্যা মধ্যে প্লাগিং জন্য printf মধ্যে. এছাড়াও আপনি শতাংশ ব্যবহার করতে পারেন একটি দশমিক পূর্ণসংখ্যা জন্য ঘ. কিন্তু আমি এখানে চমৎকার এবং সহজ হয়. তাই আমরা যে সঙ্গে যাবেন. এখন আমাকে এগিয়ে যান এবং পুন: প্রকাশ করা কোন int, লিখুন. যে ভালো, কোন ত্রুটি. ডট int-- ঠিক আছে, খারাপ ব্যবহারকারীর অভিজ্ঞতা স্ল্যাশ, কারণ আমি না বলেছি কি করো. কিন্তু যে সূক্ষ্ম. আমি দ্রুত সংক্রামক করছি. আর এখন আমাকে এগিয়ে যান এবং ডেভিড, ঠিক আছে, Zamila, রব টাইপ. ঠিক আছে, তাই এই একটি ভাল জিনিস. এই সময়, আমি একটি ফাংশন ব্যবহার করছি, একটি ধাঁধা টুকরা পেতে int- বলা. আর এটা out-- সক্রিয় এবং আমরা করব term-- এই পরে দেখুন CS50 কর্মীদের বাস্তবায়ন করেছে এমনভাবে স্ট্রিং পেতে এটি শুধুমাত্র শারীরিকভাবে হবে আপনার জন্য একটি স্ট্রিং পেতে. এটা int- পেতে বাস্তবায়ন করেছে এমনভাবে যে এটা শুধুমাত্র হবে আপনার জন্য একটি পূর্ণসংখ্যা পেতে. আর যদি আপনি, মানব, সহযোগিতা না, এটা আক্ষরিক শুধু যাচ্ছে , পুনরায় চেষ্টা পুনরায় চেষ্টা, পুনরায় চেষ্টা বলে, আক্ষরিক সেখানে বসা looping, যতক্ষণ না আপনি কিছু ঐন্দ্রজালিক নম্বর দিয়ে বাধিত, 50, এবং হ্যালো 50 মত. বা আমরা এই আবার চালানো এবং 42 টাইপ, হ্যালো 42. আর তাই পেতে int- ফাংশনের যে ধাঁধা টুকরা ভিতরে যথেষ্ট যুক্তি নেই, যথেষ্ট চিন্তার, জিনিসটা, একটি শব্দ কি? আর একটি সংখ্যা কি? শুধু গ্রহণ, পরিণামে, সংখ্যা. সুতরাং দেখা যাচ্ছে এই যে সব যে ভাবপূর্ণ নয়. যতদূর. সুতরাং, ইয়ে, শেষবার আমরা প্রশংসনীয় দ্রুত গেলেন বাস্তবায়ন গেম, এবং অ্যানিমেশন মধ্যে, এবং ভূত শৈল্পিক কাজ. এবং এখানে, আমরা বিষয়বস্তু হচ্ছে ওহে দুনিয়া, এবং হ্যালো 50. এটা সব যে দীপক নয়. এবং প্রকৃতপক্ষে, এই প্রথম বেশ কিছু উদাহরণ কিছু সময় লাগবে হুজুগ আপ ঢালু থেকে. কিন্তু আমরা আরও অনেক কিছু আছে আসলে এখন নিয়ন্ত্রণ. এবং আমরা চলুন খুব দ্রুত layering শুরু এই মৌলিক প্রিমিটিভের উপরে. কিন্তু প্রথম, এর কিছু বুঝতে কি সীমাবদ্ধতা আছে. আসলে, কিছু এক ভূত সহজে না দেখুন আমাদের কি করা যাক সত্যিই ফণা নীচে, এবং কি একটি বোঝা কম্পিউটার, হয় এটা করতে পারেন কি, এবং তার সীমাবদ্ধতা কি হয়. এবং প্রকৃতপক্ষে, যে অভাব বোঝার, সম্ভাব্য, দীর্ঘমেয়াদী আমাদের নিজস্ব mistakes-- লেখা হতে পারে না বাগ, অনিরাপদ সফ্টওয়্যার লেখার যে কোনোভাবে হ্যাক. সুতরাং এর দিকে কিছু পদক্ষেপ গ্রহণ করুক এই একটি সামান্য আরো ভাল করে বুঝতে , উপায় বলে, নিম্নলিখিত উদাহরণে. আমি এগিয়ে যান এবং বাস্তবায়ন করতে যাচ্ছি বাস্তব দ্রুত একটি প্রোগ্রাম যোজক বলা. ভালো লেগেছে, এর কিছু নম্বর একসঙ্গে যোগ করা যাক. আর আমি কিছু কোণে কোড যাচ্ছি এখানে, এবং মাত্র কপি এবং পেস্ট করুন যেখানে আমি অনেক আগে থেকেই আছেন, ঠিক তাই আমরা যত তাড়াতাড়ি যাচ্ছে পেতে পারেন. এখন তাই আমি মৌলিক সূত্রপাত পেয়েছেন যোজক নামক একটি প্রোগ্রাম. আর এর এগিয়ে যান এবং এই কাজের জন্য. আমি এগিয়ে যান যাচ্ছি এবং বলে, intx int- পেতে পায়. এবং আপনি কি জানেন? এর একটি ভাল ব্যবহারকারীর অভিজ্ঞতা করা যাক. তাই আসুন শুধু বলতে x, এবং কার্যকরভাবে দিন ব্যবহারকারীকে অনুরোধ জানানো আমাদের এক্স দিতে. তারপর আমাকে এগিয়ে যান এবং বলে, printf, দিন কিভাবে সম্পর্কে y, এই সময় আশা ব্যবহারকারী থেকে দুটি মান. তারপর আসুন শুধু এগিয়ে যান এবং বলে, printf x এবং y এর সমষ্টি. এবং এখন আমি শতাংশ গুলি করতে চাই না. আমি শতাংশ আমি কাজ করতে চান, ব্যাকস্ল্যাশ এন, এবং তারপর সমষ্টি মূল্য চলা. তাই আমি এই কাজ সম্পর্কে কিভাবে যেতে পারেন? তুমি কি জান? আমি কিভাবে ভেরিয়েবল ব্যবহার করতে জানেন. আমাকে শুধু একটি নতুন এক, int-z ঘোষণা করা যাক. আর আমি এখানে একটি অনুমান নিতে যাচ্ছি. যদি এই মধ্যে সমান চিহ্ন আছে ভাষা, হয়তো আমি এক্স প্লাস Y. ঠিক কি করতে পারেন, তাই আমি শেষ হিসাবে আমার দীর্ঘ একটি সেমিকোলন দিয়ে চিন্তা? এখন আমি এখানে ফিরে নিচে যেতে পারেন, z- র মধ্যে চলা, একটি সেমিকোলন দিয়ে এই চিন্তার শেষ. এবং এর এখন দেখুন, এই যদি দিন লাইন এক্স ক্রমের int- পেতে হয়. ওয়াই int- পেতে হয়. X এবং y যোগ মান সংরক্ষণ z-- তাই, আবার, সমান চিহ্ন স্মরণ সমান নয়. এটা ডান থেকে বাম নিয়োগ এর. আর এর যে সমষ্টি প্রিন্ট আউট করা যাক x এবং y এর আক্ষরিক z- র নয়, কিন্তু z এর ভিতরে কি আছে. সুতরাং আসুন যোজক তৈরী করি - চমৎকার, কোন ভুল এই সময়. ডট স্ল্যাশ যোজক লিখুন, এক্স 1 হতে যাচ্ছে. ওয়াই 2 হতে যাচ্ছে. এবং x এবং y এর সমষ্টি 3. সুতরাং যে সব জরিমানা এবং ভাল. সুতরাং আপনি যে গণিত কল্পনা করা হবে এই মত একটি প্রোগ্রাম কাজ করা উচিত. কিন্তু আপনি কি জানেন? এই পরিবর্তনশীল, লাইন 12, এমনকি প্রয়োজনীয়? আপনি অভ্যাস পেতে প্রয়োজন হবে না শুধু ভেরিয়েবল কিছু সংরক্ষণকারী শুধু কারণ আপনি যা করতে পারেন. এবং, আসলে, এটা সাধারণভাবে সুবিবেচিত খারাপ নকশা আপনি একটি পরিবর্তনশীল তৈরি হয়, তাহলে বলা এই ক্ষেত্রে z- র, এটা কিছু সংরক্ষণকারী এবং তারপর অবিলম্বে এটি ব্যবহার করে, কিন্তু কখনও আবার. কেন কিছু একটা নাম দিতে z- র মত যদি আপনি আক্ষরিক করছি ব্যবহার করার জন্য যে যাচ্ছে জিনিস শুধুমাত্র একবার, এবং তাই যেখানে আপনার তৈরি করা নিকটবর্ত প্রথম স্থানে, কোড লাইনের পরিপ্রেক্ষিতে তাই বন্ধ? তাই আপনি কি জানেন? এটা পরিনত হয় যে সি চমত্কার নমনীয়. আমি আসলে করতে চান প্লাগ-ইন মান এখানে, আমি একটি নতুন ভেরিয়েবল ডিক্লেয়ার করার প্রয়োজন হবে না. আমি শুধু প্লাগ ইন এক্স পারে প্লাস Y, কারণ সি বুঝতে পাটিগণিত, এবং গাণিতিক অপারেটর. তাই আমি সহজভাবে বলতে পারেন, এই গণিত, এক্স প্লাস Y., যাই হোক না কেন সেই মান, প্লাগ ফলে স্ট্রিং মধ্যে পূর্ণসংখ্যা. তাই এই হতে পারে, যদিও শুধুমাত্র এক লাইন খাটো, একটি ভাল ডিজাইন, একটি ভাল প্রোগ্রাম, কারণ সেখানে কম কোড, তাই কম আমার বোঝার জন্য. এবং এটি শুধু ক্লিনার এর, আমরা নই যতটা হিসাবে নতুন শব্দ উপস্থাপক, নতুন প্রতীক, z- র মত, যদিও তারা সত্যিই না একটি উদ্দেশ্য অনেক পরিবেশন করা. দুর্ভাগ্যবশত, গণিত নয় সব যে নির্ভরযোগ্য মাঝে মাঝে. এর এগিয়ে যান এবং এই কাজের জন্য. আমি এগিয়ে যেতে চলেছি এখন এবং নিচের কাজগুলো. এর printf, শতকরা আমি, প্লাস শতাংশ করা যাক আমি, শতাংশ আমি, ব্যাকস্ল্যাশ এন হইবে. আমি আপাততঃ xyx প্লাস Y. করতে যাচ্ছি. তাই আমি ঠিক পুনর্লিখন করতে যাচ্ছি এই সামান্য এখানে ভিন্নভাবে. আমাকে শুধু একটি দ্রুত বৈধতা চেক করা যাক. আবার, আসুন এগিয়ে নিজেদেরকে না যাক. যোজক, বিন্দু স্ল্যাশ যোজক করুন. এক্স 1, y 2, 1 প্লাস 2 3 হয়. তাই ভালো. কিন্তু এখন এই ফাঁদে ফেলা যাক একটি বিট, এবং একটি নতুন ফাইল তৈরি করুন. আমি এই এক কল চলেছি, বলছি, আপনি ints ইন্টিজার জন্য বহুবচন. আমাকে শুরু যেখানে আমি একটি মুহূর্ত আগে ছিলাম. কিন্তু এখন এর কয়েকটি লাইন কাজ করতে দিন. আমাকে এগিয়ে যান এবং নিচের কাজগুলো করা যাক, printf, শতকরা আমি, বিয়োগ শতাংশ আমি, শতাংশ আমি, কমা এক্স, কমা yx বিয়োগ Y হয়. তাই আমি একটু কাজ করছি সেখানে বিভিন্ন গণিত. এর আরেকটা করি. সুতরাং শতাংশ আমি বার শতাংশ আমি শতাংশ আমি, ব্যাকস্ল্যাশ এন হয়. এর প্লাগ-ইন x, y, ও এক্স বার Y যাক. আমরা উপর তারকাচিহ্ন ব্যবহার করব বার জন্য আপনার কম্পিউটার. আপনি এক্স ব্যবহার করবেন না. x হল এখানে একটি পরিবর্তনশীল নাম. আপনি গুণন জন্য তারকা ব্যবহার করুন. এর আরও একটি অনুষ্ঠান করুক না. Printf শতাংশ আমি, বিভক্ত শতাংশ আমি দ্বারা, শতাংশ আমি হয় ব্যাকস্ল্যাশ এন. XY y-- দ্বারা বিভক্ত তাই আপনি সি ফরোয়ার্ড স্ল্যাশ ব্যবহার বিভাজন করতে. আর অপর এক কাজ করা যাক. শতাংশ আমি বাকি, বিভক্ত শতাংশ আমি দ্বারা, শতাংশ আমি হয়. xy-- এবং এখন বাকি কি ওভার বাকি নেই. আপনি একটি বিভাজক চেষ্টা একটি লব মধ্যে হর, কত ওভার বাকি নেই যে আপনি খুঁজে ভাগ করতে পারে না? আসলে তা নয়, অগত্যা, একটি প্রতীক আমরা এই জন্য গ্রেড স্কুলে ব্যবহার করেছি. কিন্তু সি আপনি বলে এক্স modulo y, যেখানে এই context-- মধ্যে এই শতকরা চিহ্ন confusingly যখন আপনি ভিতরে আছেন ডবল কোট, printf, শতকরা ভিতরে বিন্যাস সুনির্দিষ্টভাবে উল্লেখ করা হয় হিসাবে ব্যবহার করা হয়. আপনি বাইরে শতাংশ ব্যবহার করেন যে একটি গাণিতিক অভিব্যক্তি, এটা মডুলার জন্য মডুলো অপারেটর আমাদের উদ্দেশ্য arithmetic-- এখানে, মানে, কি x এর বাকি y দ্বারা বিভক্ত? সুতরাং x y দ্বারা বিভক্ত x স্ল্যাশ Y হয়. y দ্বারা বিভক্ত x বাকি কী? এটা, মুড ওয়াই এক্স এর একজন প্রোগ্রামার হিসেবে বলব. সুতরাং যদি আমি কোন ভুল এখানে তৈরি, আমাকে এগিয়ে যান এবং ints, বহুবচন, যুক্ততা, এবং বিন্দু স্ল্যাশ আপনি ints. আর এর দিন এবং এগিয়ে যান না, স্বীকার করে বলে, 1, 10 দিন. ঠিক আছে, 1 টি প্লাস 10 11, চেক হয়. 1 বিয়োগ 10 নেতিবাচক 9, চেক. 1 বার 10 10 চেক হয়. 1 10 হচ্ছে ÑÑ দ্বারা বিভক্ত ঠিক আছে, আমরা লাফালাফি করব যে এক. 1 এর বাকি 10 দ্বারা বিভক্ত 1. এটাই সঠিক. কিন্তু এখানে আছে একটি বাগ. তাই এক আমি রাখা আমার হস্তান্তরের, সঠিক না. আমি বলতে চাচ্ছি, এটা 0 পাসে হবে. 1 10 দ্বারা বিভক্ত, আপনি কি জানেন, আমরা হন তাহলে কিছু কোণ কাটা, নিশ্চিত করুন, এটা শূন্য. কিন্তু এটা সত্যিই 1/10 হতে হবে, 0.1, বা 0.10, 0,1000, বা তাই ঘোষণা. এটা সত্যিই শূন্য করা উচিত হবে না. ওয়েল, দেখা যাচ্ছে যে কম্পিউটার আক্ষরিক করছেন আমরা কি এটা বলেছেন. আমরা y দ্বারা বিভক্ত x মত গণিত করছেন. এবং উভয় x এবং y, লাইন প্রতি কোডের আগে পূর্ণসংখ্যা. তাছাড়া, লাইন 15, আমরা printf, আরে, printf, প্লাগ-ইন কহন একটি পূর্ণসংখ্যা, প্লাগ-ইন একটি পূর্ণসংখ্যা, প্লাগ-ইন একটি integer-- বিশেষভাবে এক্স, এবং তারপর y, ও তারপর এক্স y দ্বারা বিভক্ত. x এবং y আপনি ints হয়. আমরা সেখানে ভাল আছেন. কিন্তু কি এক্স এক্স দ্বারা ভাগ করা হয়? এক্স বিভক্ত দ্বারা Y করা উচিত, গাণিতিকভাবে, 1/10, বা 0.1, যা একটি বাস্তব সংখ্যা, একটি বাস্তব সংখ্যা থাকার সম্ভাব্য, একটি দশমিক বিন্দু. এটি একটি পূর্ণসংখ্যা নয়. কিন্তু কি নিকটস্থ হয় 1/10, বা 0.1 থেকে পূর্ণসংখ্যা? হ্যা, এটা কোন ধরনের শূন্য. 0.1 এই অনেক ভালো হয়. এবং 1 এই অনেক হয়. তাই 1/10 কাছাকাছি 0 তুলনায় এটি এক হয়. তাই কি সি আমাদের জন্য কাজ করছে ধরনের কারণ আমরা তা চাচ্ছি জানান যে পূর্ণসংখ্যা ছিন্ন হয়. এটা মান, যা আবার নিচ্ছে 0,1000 ভালো কিছু হতে অনুমিত, 0 এবং তাই ঘোষণা. আর সবকিছু ছিন্ন হচ্ছে দশমিক বিন্দু পরে যাতে এই সব কাপড়, কারণ এটা না একটি পূর্ণসংখ্যা এর ধারণা মধ্যে মাপসই করা হবে, যা শুধু নেতিবাচক 1, 0, 1 মত একটি সংখ্যা হয়, আপ এবং ডাউন, এটা সবকিছু দূরে ছোঁড়ার কারণ আপনি দশমিক বিন্দু পরে একটি দশমিক বিন্দু মাপসই করা যাবে না সংজ্ঞা দ্বারা একটি পূর্ণসংখ্যা. সুতরাং এখানে উত্তরটি শূন্য. তাই কিভাবে আমরা এই ঠিক করব? আমরা সব একসঙ্গে অন্য সমাধান প্রয়োজন. এবং আমরা এই নিম্নরূপ করতে পারেন. আমাকে এগিয়ে যান এবং একটি নতুন তৈরি করুন ফাইল, এই এক floats.c বলা. আর এখানে তা সংরক্ষণ করুন একই ডিরেক্টরির, float.c. এবং আমাকে এগিয়ে যান এবং কপি করা আগে থেকে যে কিছু কোড. কিন্তু এর পরিবর্তে পেয়ে কোন int, এই কাজ করতে দিন. আমাকে একটা ফ্লোটিং পয়েন্ট মান দিন এক্স নামক. যেখানে একটি ফ্লোটিং পয়েন্ট মান ঠিক আক্ষরিক হয় একটি ফ্লোটিং পয়েন্ট সঙ্গে কিছু. এটা, বাঁদিকে সরানো ডান করতে পারেন. এটা একটি বাস্তব সংখ্যা. আর আমাকে না ডাকুক int- পেতে, কিন্তু ভাসা পেতে, এছাড়াও মেনু মধ্যে যা ছিল C250 লাইব্রেরিতে অপশনের. y এর একটি float পরিবর্তন করা যাক. তাই এই ভাসা পেতে হয়ে. এবং এখন, আমরা চাই না আপনি ints চলা করতে চান. এটি সক্রিয় আউট আমরা শতাংশ ব্যবহার করতে হবে ভাসা জন্য চ, ভাসা জন্য শতাংশ চ, এবং এখন এটি সংরক্ষণ. আর এখন, আঙ্গুলের পার করা ফ্লোট, চমৎকার, বিন্দু স্ল্যাশ ভাসে. এক্স এক 1. Y হতে যাচ্ছে 10 আবার হতে যাচ্ছে. আর সুন্দর, ঠিক আছে আমার বরাবর সঠিক. আমি আরও আশা ছিল, কিন্তু আমি এটা লিখতে ভুলে গেছি. সুতরাং এর যান এবং এই লজিক্যাল ত্রুটি ঠিক করি. এর এগিয়ে যান এবং নিচের দখল করুক. আমরা অল্পমাত্র কপি এবং পেস্ট করব. আমি মাইনাস বলতে যাচ্ছি. আমি বার বলতে যাচ্ছি. আমি বিভক্ত বলতে যাচ্ছি. আমি মডুলো করতে যাচ্ছি না, যা যেমন সঙ্গত এখানে নয় চ দ্বারা বিভক্ত, এবং বার plus-- ঠিক আছে, এই আবার কি যাক. করুন ফ্লোট, বিন্দু স্ল্যাশ ভাসে, এবং 1, 10, and-- সুন্দর, কোন, ঠিক আছে. তাই আমি বুঝিয়ে বলো. তাই এই খুব সাধারণ কম্পিউটার বিজ্ঞান মধ্যে এই মত মূঢ় ভুল করা. প্রাতিষ্ঠানিক উদ্দেশ্য পূরণকল্পে, কি আমি সত্যিই করতে চেয়েছিলেন বিজ্ঞান এখানে আমূল পরিবর্তন করে প্লাস, বিয়োগ করা, বার, এবং আপনি হিসাবে বিভক্ত করা হয়, আশা এই ব্যায়াম করার সময় খেয়াল. তাই এখন এই পুনরায় কম্পাইল করা যাক প্রোগ্রাম, বিন্দু স্ল্যাশ ভাসে না. আর তৃতীয় বারের মতো আসুন যদি তা দেখতে আমার প্রত্যাশা পূরণ. 1, 10, লিখুন ঠিক আছে, হ্যা, 1.000, 10.000 দ্বারা বিভক্ত, 0,100000 হয়. এবং এটি সক্রিয় আউট আমরা নিয়ন্ত্রণ করতে পারেন কিভাবে অনেক সংখ্যার ঐ দশমিক পয়েন্ট পরে হয়. আমরা আসলে হবে. আমরা যে ফিরে আসবো. কিন্তু এখন, আসলে, গণিত সঠিক. সুতরাং, আবার, কি takeaway এখানে আছে? এটি সক্রিয় আউট সি, আছে না শুধু strings-- এবং বাস্তবিকই, সেখানে, সত্যিই হয় না, কারণ আমরা CS50 লাইব্রেরি সঙ্গীদের যোগ করুন. কিন্তু সেখানে শুধু আপনি ints না হয়. এছাড়াও floats আছে. এবং এটি অন্যান্য তথ্য একটি গুচ্ছ সক্রিয় আউট ধরনের যে, আমরা অনেক আগেই ব্যবহার করব. দেখা যাচ্ছে আপনি একটি একক চান অক্ষর, অক্ষর এর একটি পংক্তি, আপনি শুধুমাত্র একটি গৃহস্থালি ব্যবহার করতে পারেন. দেখা যাচ্ছে যে, যদি আপনি একটি bool চান, একটি বুলিয়ান মান, সত্য বা মিথ্যা শুধুমাত্র CS50 লাইব্রেরি ধন্যবাদ, আমরা করেছি পাশাপাশি সি bool, ডাটা টাইপ যোগ করা হয়েছে. কিন্তু এটি উপস্থাপন করছে অন্যান্য অনেক ভাষার পাশাপাশি. আর এটা যে আপনি মাঝে মাঝে দেখা যাচ্ছে বড় সংখ্যার তারপর ডিফল্ট দ্বারা আসা প্রয়োজন ints এবং floats সঙ্গে. এবং, আসলে, একটি ডবল একটি সংখ্যা যে না 32 বিট, কিন্তু 64 বিট ব্যবহার করে. এবং একটি দীর্ঘ দীর্ঘ একটি সংখ্যা যে না 32 বিট কিন্তু 64 বিট ব্যবহার করে, যথাক্রমে, ফ্লোটিং পয়েন্ট জন্য মূল্যবোধ ও ইন্টিজার, যথাক্রমে. তাই আসুন এখন আসলে দিন এই পদক্ষেপ দেখতে. আমি এখানে এগিয়ে যান যাচ্ছি এবং অন্য একটি প্রোগ্রাম পিটান. এখানে, আমি এগিয়ে যেতে চলেছি এবং cs50.h. অন্তর্ভুক্ত না আর আমাকে যেতে দাও, প্রমিত io.h. অন্তর্ভুক্ত আর তুমি কিছু বিজ্ঞপ্তি পাবেন ভীতু এখানে ঘটছে. এটা কিছু কোডিং রঙ না একই পথ হিসেবে এটা আগের মতোই. এবং এটি সক্রিয় আউট, যে কারণে আমি এর একটি ফাইলের নাম জিনিস দাওনি. আমি এই এক কল যাচ্ছি sizeof.c, এবং আঘাত সংরক্ষণ করুন. আর তা লক্ষ্য করা আমার খুব ঘটবে যে কালো পরিপ্রেক্ষিত বিরুদ্ধে সাদা কোড. এখন, অন্তত আছে সেখানে কিছু রক্তবর্ণ. আর এটা সিনট্যাক্স হাইলাইট হয়. এটা এ কারণে যে, বেশ সহজভাবে, আমি করেছি আইডিই কি ধরনের ফাইল জানান এটা একটি নাম দিয়ে, আর বিশেষভাবে একটি ফাইল এক্সটেনশন. এখন, এগিয়ে যান এবং এই কাজের জন্য. আমি এগিয়ে এবং খুব যেতে যাচ্ছি কেবল নিম্নলিখিত bool, প্রিন্ট আউট শতাংশ এল ইউ হয়. আমরা ফিরে আসবো মাত্র কয়েক মিনিটের মধ্যে যে. এবং তারপর আমি যাচ্ছি একটি bool মুদ্রণ আকার. এবং এখন, শুধু সংরক্ষণ করতে নিজেকে কিছু সময়, আমি আছি একটি পুরো করতে যাচ্ছেন একবারে এই গুচ্ছ. আর, বিশেষ করে, আমি যাচ্ছি একটি গৃহস্থালি এবং গৃহস্থালি এই পরিবর্তন. এই এক, আমি পরিবর্তন করা যাচ্ছে না একটি ডবল এবং একটি দ্বিগুণ. এই এক, আমি পরিবর্তন করা যাচ্ছে না একটি float এবং একটি float. এই এক, আমি যাচ্ছি কোন int এবং কোন int পরিবর্তন. আর এই এক, আমি যাচ্ছি একটি দীর্ঘ দীর্ঘ পরিবর্তন করতে. এবং এটা এখনও নিচ্ছে একটি দীর্ঘ সময়, দীর্ঘ দীর্ঘ. এবং তারপর, সর্বশেষে, আমি দিয়েছিলাম নিজেকে এক অনেকগুলি, স্ট্রিং. এটি সক্রিয় আউট সি, যে আছে বিশেষ অপারেটর বলা যে এর আকার আক্ষরিক এর যখন চালানো যাচ্ছে, আমাদের মাপ বলুন এই ভেরিয়েবল প্রতিটি. আর এই একটি উপায় হল, এখন, আমরা ফিরে সংযোগ করতে পারেন গত সপ্তাহে আলোচনায় তথ্য ও প্রতিনিধিত্বের. আমাকে এগিয়ে যান এবং কম্পাইল করা যাক ডট স্ল্যাশ আকার আকার. এবং আসুন দেখুন. এটা সি যে সক্রিয় আউট, বিশেষভাবে এবং CS50 আইডিই তে, বিশেষভাবে উপর অপারেটিং সিস্টেম উবুন্টু, যা একটি 64-বিট অপারেটিং হয় এই ক্ষেত্রে সিস্টেম, একটি bool যাচ্ছে স্থান এক বাইট ব্যবহার. যে কিভাবে আকার মাপা হয়, না বিট, কিন্তু বাইটে. এবং যে প্রত্যাহার এক বাইট আট বিট. সুতরাং একটি bool, এমনকি আপনি যদিও 0 বা 1 টেকনিক্যালি শুধুমাত্র প্রয়োজন, এটা একটু অযথা এর আমরা এটা কিভাবে প্রয়োগ করেছি. এটা আসলে একটি পুরো ব্যবহার করা যাচ্ছে না byte-- তাই সব zeros, হয়তো হয় সব বেশী, বা যে ভালো কিছু, বা শুধু এক 1 আট বিট মধ্যে. একটি গৃহস্থালি, এদিকে, একটি অক্ষর জন্য ব্যবহৃত গত সপ্তাহে প্রতি একটি ASCII অক্ষর মত, এক চরিত্র হতে যাচ্ছে. এবং যে আমাদের ধারণা দিয়ে synchs এটা বেশী 256 bits-- হচ্ছে বরং, এটা কোন হচ্ছে synchs আপ আর চেয়ে 8 বিট, যা আমাদের যেমন অনেক 256 হিসাবে মান দেয়. একটি ডবল যাচ্ছে 8 বাইট বা 64 বিট হতে. একটি float 4. কোন int 4. একটি দীর্ঘ, দীর্ঘ 8. আর একটি পংক্তি 8. কিন্তু যে সম্পর্কে চিন্তা করবেন না. আমরা যে স্তর ছুলা চলুন. এটি সক্রিয় আউট, স্ট্রিং পারেন 8 বাইট চেয়ে দীর্ঘতর হতে. এবং প্রকৃতপক্ষে, আমরা লিখিত করেছি ইতিমধ্যে স্ট্রিং, ওহে দুনিয়া, 8 বাইট চেয়ে বেশি. কিন্তু আমরা ফিরে আসবো মাত্র কয়েক মিনিটের মধ্যে যে. কিন্তু নিতে দূরে এখানে নিম্নলিখিত হয়. কোন কম্পিউটার শুধুমাত্র একটি সসীম হয়েছে মেমরি এবং স্থান পরিমাণ. আপনি শুধুমাত্র তাই অনেক সংরক্ষণ করতে পারেন আপনার Mac বা PC তে ফাইল. আপনি শুধুমাত্র তাই অনেক প্রোগ্রাম সংরক্ষণ করতে পারেন উপস্থিত RAM- র একবার চলমান, অগত্যা, এমনকি ভার্চুয়াল মেমরির, কারণ আপনি উপস্থিত RAM- র একটি সসীম পরিমাণ আছে. আর মাত্র যদি picture-- থেকে আপনি একটি ল্যাপটপ কখনোই খুলিনি বা অতিরিক্ত মেমরি আদেশ একটি কম্পিউটার, আপনি জানি না হতে পারে আপনার কম্পিউটার এর ভিতর কিছু যে দেখে মনে হচ্ছে একটু ভালো. সুতরাং এই মাত্র একটি সাধারণ নামে কোম্পানি গুরুত্বপূর্ণ যে কম্পিউটারের জন্য র্যাম নির্মিত হয়. আর র্যাম যেখানে প্রোগ্রাম হয় বাস যখন তারা চালাচ্ছেন. তাই প্রত্যেক Mac বা PC, যখন আপনি দ্বিগুণ একটি প্রোগ্রাম ক্লিক করুন, এবং এটি আপ প্রর্দশিত হবে, এবং এটা কিছু ওয়ার্ড ডকুমেন্ট খোলে অথবা যে ভালো কিছু, এটা সঞ্চয় করে সাময়িকরূপে উপস্থিত RAM- র, কারণ র্যাম দ্রুততর আপনার হার্ড ডিস্ক চেয়ে, অথবা আপনার কঠিন রাষ্ট্র ডিস্ক. তাই এটি শুধু যেখানে প্রোগ্রাম যেতে বাস থেকে যখন তারা চালাচ্ছেন, অথবা যখন ফাইল ব্যবহার করা হচ্ছে. তাই আপনি কিছু যে চেহারা আছে আপনার ল্যাপটপ এর এই ভিতরে মত, অথবা সামান্য বড় কিছু আপনার ডেস্কটপের ভিতরে. কিন্তু কী আপনি শুধুমাত্র একটি আছে হয় এইসব জিনিস সসীম সংখ্যা. সেখানে শুধুমাত্র একটি সসীম পরিমাণ হার্ডওয়্যার এই ডেস্কের উপর বসে ডান এখানে. সুতরাং, নিশ্চয় আমরা সঞ্চয় করতে পারবেন না অসীম দীর্ঘ নম্বর. আর এখনো, আপনি ফিরে মনে হয় গ্রেড স্কুল, কত ডিজিটের পারেন আপনি সঠিক আছে একটি দশমিক বিন্দু? যে বিষয়টি জন্য, কত ডিজিটের পারেন আপনি একটি দশমিক বিন্দু বাম আছে? সত্যিই, অসীম অনেক. এখন, আমরা মানুষেরা শুধু প্রতাপ জানি মিলিয়ন উচ্চারণ কিভাবে, এবং বিলিয়ন, ট্রিলিয়ন, এবং কোয়াড্রিলিয়ন, এবং দশ লক্ষের পঞ্চঘাত. আমি সীমা ঠেলাঠেলি করছি আমার understanding-- বা my-- আমি বুঝতে সংখ্যা, কিন্তু আমার সংখ্যার উচ্চারণ. কিন্তু তারা সঙ্গে অসীম বড় পেতে পারেন বাঁদিকে অসীম অনেক ডিজিটের অথবা একটি দশমিক বিন্দুর ডানে. কিন্তু শুধুমাত্র কম্পিউটার একটি আছে মেমরি সসীম পরিমাণ, ট্রানজিস্টর একটি সসীম সংখ্যা, একটি লাইট বাল্ব ভিতরে সসীম সংখ্যা. তাই কি হবে যখন আপনি স্থান রান আউট? অন্য কথায়, আপনি যদি ফিরে গত সপ্তাহে মনে যখন আমরা সংখ্যা সম্পর্কে সায়ীদ নিজেদের, বাইনারি প্রতিনিধিত্ব করা হচ্ছে অনুমান করা হয় যে আমরা পেয়েছেন এই 8-বিট মান এখানে. আর আমরা সাত 1 এবং এক 0 আছে. আর যে অনুমান আমরা চাই এই মান 1 যোগ. এই সত্যিই একটি বড় সংখ্যা এখনই. এই 254 হয়, যদি আমার মনে গত সপ্তাহে ডান থেকে গণিত. কিন্তু যদি তা আমি পরিবর্তন যে একটি 1 ডানদিকের 0 থেকে? পুরো নম্বর, এর অবশ্যই, আট 1 এর হয়ে. তাই আমরা এখনও ভাল আছেন. এবং যে সম্ভবত প্রতিনিধিত্ব 255, যদিও প্রসঙ্গের উপর নির্ভর করে এটা আসলে প্রতিনিধিত্ব করতে পারে একটি ঋণাত্মক সংখ্যা. কিন্তু যে সময় অন্য আরও অনেক কিছু. এই মতানুযায়ী মত এটি সম্পর্কে যেমন উচ্চ হিসাবে আমি গণনা করতে পারেন. এখন, এটা মাত্র 8 বিট. আর আমার ম্যাক, নিশ্চয়, উপায় আছে বেশি মেমরি 8 বিট. কিন্তু এটা সসীম আছে. তাই একই যুক্তি প্রযোজ্য, এমনকি যদি আমরা পর্দায় এদেরকেই বেশি আছে. কিন্তু কি হবে যদি তুমি এই সংখ্যা 255 সংরক্ষণকারী এবং আপনি 1 বিট উচ্চ গণনা করতে চান? আপনি 255 থেকে 256 থেকে যেতে চাই. সমস্যা, অবশ্যই, যে যদি আপনি শূন্য গত সপ্তাহে মত এ গণনা শুরু, আপনি যেমন উচ্চ গণনা করতে পারবে না 256 যেমন, একা 257 দিন, একা 258 দিন, কারণ মি কি যখন আপনি একটি 1 যোগ করতে চান? আপনি পুরানো গ্রেড স্কুল করতে হলে পদ্ধতি, আপনি একটি 1 এখানে করা, এবং তারপর 1 প্লাস 1 2, কিন্তু যে সত্যিই একটি শূন্য, আপনি 1 বহন, 1 বহন, 1 বহন. এই সমস্ত জিনিস, এই 1 এর, শূন্য থেকে যান. আর আপনি গুটান, হ্যাঁ, কেউ যেমন বাম দিকে একটি 1, নির্দিষ্ট. কিন্তু সবকিছু আপনি যা করতে পারেন আসলে দেখতে এবং মেমরির মধ্যে মাপসই মাত্র আট 0, যা বলতে হয় কিছু সময়ে যদি আপনি একটি কম্পিউটার, যথেষ্ট উচ্চ আপ গণনা চেষ্টা, আপনি আছেন চারপাশে মোড়ানো যাচ্ছে, মনে হবে, শূন্য, হয়তো বা এমনকি নেতিবাচক সংখ্যা, যা শূন্য চেয়েও কম হয়. এবং আমরা এই ধরনের দেখতে পারেন. আমাকে এগিয়ে যান এবং লিখতে শুরু করা যাক একটি বাস্তব দ্রুত এখানে প্রোগ্রাম. আমাকে এগিয়ে যান এবং লিখতে শুরু করা যাক একটি প্রোগ্রাম ওভারফ্লো বলা. Cs50.h অন্তর্ভুক্ত অন্তর্ভুক্ত মান IO.h-- উহু, আমি সত্যিই আমার সিনট্যাক্স হাইলাইটিং মিস. সুতরাং আসুন overflow.c হিসাবে এই সংরক্ষণ করতে দিন. আর এখন int প্রধান void-- এবং দীর্ঘ আগে, আমরা করব কেন ব্যাখ্যা ফিরে আসা আমরা int প্রধান অকার্যকর লেখা রাখা. কিন্তু এখন জন্য, এর ঠিক করতে দিন এটা, এটা করার জন্য মঞ্জুর. এর নিজের কোন int দিই, এবং 0 আরম্ভ. তৎকালীন int জন্য করা যাক আমি শূন্য পেতে আসলে, এর একটি অসীম লুপ করতে দিন এবং দেখুন সেখানে কি ঘটছে. যদিও সত্য, তারপর এর এন আউট প্রিন্ট করা যাক শতাংশ আমি, ব্যাকস্ল্যাশ এন, প্লাগ-ইন এন. কিন্তু, এখন, এর এন পায় এন প্লাস 1 কি যাক. তাই অন্য কথায়, প্রতিটি এই অসীম লুপ পুনরাবৃত্তির, এর n এর মান নিয়ে যাক; এবং এটি 1, যোগ এবং তারপর বাম থেকে এন ফিরে ফলাফল সংরক্ষণ. এবং, আসলে, আমরা সিনট্যাক্স দেখা করেছি সামান্য এই মত, সংক্ষেপে. একটি শীতল কৌতুক পরিবর্তে এই সব লেখা নিয়ে, আপনি আসলে কি বলতে পারেন একটি এন প্লাস 1 সমান. অথবা আপনি সত্যিই অভিনব হতে চান, আপনি বলতে পারেন এন প্লাস প্লাস সেমিকোলন. কিন্তু এই শেষোক্ত দু'জন নির্ভরযোগ্য হয় কি আমরা অন্বিত চিনি কল চাই প্রথম জিনিস জন্য. প্রথম জিনিস, আরো স্পষ্ট হয় সম্পূর্ণই সূক্ষ্ম, সম্পূর্ণই সঠিক. কিন্তু এই বেশি প্রচলিত, আমি বলবো. তাই আমরা শুধু একটা মুহূর্ত জন্য এই কাজ করব. চলুন শুরু করা যাক এখন ওভারফ্লো, যা শোনাচ্ছে বরং অশুভ, বিন্দু স্ল্যাশ ওভারফ্লো. চলুন দেখা যাক, এন বেশ বড় হয়ে যাচ্ছে. কিন্তু let এর মনে, কত বড় এন পেতে পারেন? এন int হয়. আমরা এর আকার সঙ্গে একটি মুহূর্ত আগে দেখেছি উদাহরণস্বরূপ কোন int চার বাইট. আমরা গত সপ্তাহে থেকে জানি, চার বাইট 32 বিট, কারণ 8 বার 4 যে 32 এর. যে 4 বিলিয়ন হতে যাচ্ছে. আর আমরা 800,000 আপ হয়. এই চিরকালের নিতে যাচ্ছে যেমন আমি সম্ভবত পারেন হিসাবে উচ্চ গণনা. তাই আমি এগিয়ে যেতে চলেছি যেমন আপনি আগে দীর্ঘ বালকটিকে এবং কন্ট্রোল সি উন্মুক্তভাবে আঘাত, কন্ট্রোল সি, অনেক, যেখানে কন্ট্রোল সি সাধারণভাবে মানে বাতিল. দুর্ভাগ্যবশত, এই কারণ মেঘের মধ্যে চলমান, কখনও কখনও মেঘ এত কাপড় খুঁজে spitting, এত আউটপুট, এটা যাচ্ছে আমার ইনপুট জন্য একটু সময় নিতে মেঘ পেতে. সুতরাং যদিও আমি আঘাত কন্ট্রোল সি কয়েক সেকেন্ড আগে, এই স্পষ্টভাবে পার্শ্ব একটি অসীম লুপ এর প্রভাব. তাই এই ক্ষেত্রে, আমরা করছি যে হতে ছেড়ে যাচ্ছে. আর আমরা অন্য যোগ চলুন এখানে ওভার টার্মিনাল উইন্ডোর প্লাস, যা অবশ্যই না দিয়ে যে মত, যেহেতু এটি এখনও চিন্তা. আর এর এগিয়ে যান এবং হউক একটু বেশি যুক্তিসঙ্গত. আমি এগিয়ে যান এবং কাজ করতে যাচ্ছি এই শুধুমাত্র finitely অনেকবার. লুপ জন্য একটি ব্যবহার করা যাক, যা আমি আগে ইঙ্গিতেই সেটা স্পষ্ট. চল এটা করি. আমাকে অন্য পরিবর্তনশীল int তোমার পায় 0 দাও. আমি কম, স্বীকার করে বলে, 64 i ++ যাক. আর এখন আমাকে এগিয়ে এবং মুদ্রণ যাই আউট এন শতাংশ আমি, এন কমা. এবং তারপর n-- এই এখনও চিরকালের নিতে যাচ্ছে. চল এটা করি. এন পায় এন বার 2. অথবা আমরা অভিনব হতে পারে এবং বার সমান 2 না. কিন্তু এর মাত্র এন বলা যাক নিজেই সমান, বার 2. অন্য কথায়, এই প্রোগ্রামের নতুন সংস্করণ, আমি চিরকাল অপেক্ষা করতে চাই না 800,000 মত 4 বিলিয়ন থেকে. এর মাত্র সঙ্গে এই তরা যাক. আসলে প্রতিটি সময় দ্বিগুণ এন যাক. যা, রিকল, দ্বিগুনের হয় অবশ্যই, হচ্ছে এর বিপরীত. আর গত সপ্তাহে যেহেতু আমরা আছে কিছু আবার, এবং আবার, এবং আবার, সুপার ফাস্ট, দ্বিগুনের নিশ্চয় হবে সবচেয়ে বড় সম্ভাব্য 1 থেকে আমাদের পেতে মান যে আমরা কোন int সঙ্গে গণনা করতে পারেন. সুতরাং এর ঠিক এই কাজের জন্য. আর আমরা অনেক আগেই এই ফিরে আসবো. কিন্তু এই, আবার, ঠিক মত হয় ভূত পুনরাবৃত্ত ব্লক. এবং আপনি দীর্ঘ আগে এই ব্যবহার করব. এই মাত্র শূন্য থেকে গণনা মানে থেকে, কিন্তু সমান নয়, 64 পর্যন্ত. এবং এই প্রতিটি পুনরাবৃত্তির উপর লুপ, শুধু আমি বৃদ্ধিশীল রাখতে. সুতরাং i ++ - এবং এই সাধারণ কনস্ট্রাক্ট লাইনে 7 শুধু একটি সুপার সাধারণ উপায় এর কিছু লাইন পুনরাবৃত্তি কোড, বার কিছু সংখ্যা. যা লাইনের কোড? এই কোঁকড়া ধনুর্বন্ধনী, আপনি যেমন এখন থেকে উত্পন্ন হতে পারে, মানে, নিম্নলিখিত কাজগুলো. এটা ভূত ভালো, যখন এটা হলুদ অবরোধগুলি এবং অন্যান্য রং তজ্জাতীয় আলিঙ্গন বা অন্যান্য ব্লক আলিঙ্গন. এটাই সেই কোঁকড়া নেই ধনুর্বন্ধনী এখানে করছেন. সুতরাং যদি আমি আমার সিনট্যাক্স পেয়েছিলাম আপনি ডানে সি মানে গাজর প্রতীক দেখতে পারেন যে কতবার আমি ছিলাম এই সমস্যা সমাধানের চেষ্টা করা. সুতরাং আসুন যে এক পরিত্রাণ পেতে যাক পুরাপুরি, এবং যে উইন্ডোটি বন্ধ করুন. এবং আমরা নতুন এক ব্যবহার করব. ওভারফ্লো, বিন্দু স্ল্যাশ করুন ওভারফ্লো, লিখুন, সব ঠিক আছে, এটা প্রথমে খারাপ দেখায়. কিন্তু এর সময় ফিরে স্ক্রল যাক, কারণ আমি এই 64 বার করেনি. আর প্রথমবারের মতো লক্ষ্য, এন 1. দ্বিতীয় সময়, n হল 2, তারপর 4, তারপর 8, তারপর 16. আর এটা মনে হচ্ছে যে যত তাড়াতাড়ি আমি মোটামুটিভাবে 1 বিলিয়ন পেতে যদি আমি এটা আবার দ্বিগুণ, যে আমাকে 2 বিলিয়ন দিতে হবে. কিন্তু এটি সক্রিয় আউট, এটা শিখর ডানে. আর তাই এটি আসলে উপচে 1 বিলিয়ন থেকে কোন int নেতিবাচক প্রায় 2 বিলিয়ন, কারণ একটি পূর্ণসংখ্যা, সংখ্যার আমরা অসদৃশ গত সপ্তাহে অভিমানী হয়, ইতিবাচক ও নেতিবাচক উভয় হতে পারে বাস্তবতা এবং একটি কম্পিউটারে. এবং যারা তাই অন্তত এক বিট কার্যকরভাবে চুরি হয়. সুতরাং আমরা সত্যিই শুধুমাত্র 31 বিট আছে, বা 2 বিলিয়ন সম্ভাব্য মান. কিন্তু এখন জন্য, takeaway বেশ হয় সহজভাবে, যাই হোক না কেন এই সংখ্যা এবং যাই হোক না কেন গণিত, হয় কিছু খারাপ অবশেষে ঘটবে, কারণ শেষ পর্যন্ত আপনি করার চেষ্টা করছেন বিট এক অনেকবার স্থানপরিবর্তন. এবং আপনি কার্যকরভাবে সব থেকে যেতে 1 এর হয়তো সব 0, বা হয়তো শুধু অন্য কিছু প্যাটার্ন এটা যে পরিষ্কারভাবে, প্রসঙ্গের উপর নির্ভর করে, একটি ঋণাত্মক সংখ্যা হিসাবে ব্যাখ্যা করা যেতে পারে. আর তাই এটি সর্বোচ্চ আমি মনে হবে এই বিশেষ প্রোগ্রাম গণনা করতে শুধুমাত্র প্রায় 1 বিলিয়ন. কিন্তু এখানে একটি আংশিক সমাধান. তুমি কি জান? আমাকে একটি থেকে পরিবর্তন করা যাক একটি দীর্ঘ দীর্ঘ int. এবং আমাকে এগিয়ে যান এখানে দিন এবং কথাই আমি আছে যাচ্ছি একটি স্বাক্ষরবিহীন দীর্ঘ এই পরিবর্তন. অথবা, দেখা যাক, আমি মনে রাখবেন কখনোই. এর এগিয়ে যান এবং ওভারফ্লো করা যাক. না, এটা নয়, lld, আপনাকে ধন্যবাদ. তাই কখনও কখনও ঝনঝন সহায়ক হতে পারে. আমি কি বিন্যাস স্মরণ করা হয়নি সুনির্দিষ্টভাবে উল্লেখ করা হয় একটি দীর্ঘ দীর্ঘ জন্য ছিল. কিন্তু, প্রকৃতপক্ষে, ঝনঝন আমাকে বলেছিলেন. সবুজ, ভাল কিছু হয় এখনও আপনি একটি ভুল মানে. এটা অনুমান করা হচ্ছে যে আমি lld বোঝানো. সুতরাং, আমার লাগবে উপদেশ দিন একটি দীর্ঘ দীর্ঘ দশমিক সংখ্যা, যে সংরক্ষণ করুন. আর আমাকে পুন: প্রকাশ করা বিন্দু যাক, ওভারফ্লো স্ল্যাশ, লিখুন. আর এখন কি শীতল এই হল. যদি আমি সময় ফিরে স্ক্রল, আমরা এখনও শুরু একই place-- এ গণনা 1, 2, 4, 8, 16. লক্ষ্য করুন, আমরা পেতে সব উপায় আপ 1 বিলিয়ন. কিন্তু তারপর আমরা নিরাপদে 2 বিলিয়ন পেতে. তারপর আমরা 4 বিলিয়ন পেতে, তারপর 8 বিলিয়ন, 17 বিলিয়ন. এবং আমরা বেশী সংখ্যায় যাবো, আর উচ্চতর থেকে উচ্চতর. অবশেষে, এই খুব, বিরতি. অবশেষে, একটি দীর্ঘ দীর্ঘ সঙ্গে, যা 64 বিট মান, না হয় একটি 32 বিট মান, যদি আপনি গণনা খুব বেশী, আপনার চারপাশের 0 মোড়ানো. এবং এই ক্ষেত্রে, আমরা ঘটতে একটি ঋণাত্মক সংখ্যা দিয়ে শেষ. তাই এই একটা সমস্যা. এবং এটি সক্রিয় আউট এই যে সমস্যা সব যে রহস্যময় নয়. যদিও আমি ইচ্ছাকৃতভাবে করেছি এই ভুলের সঙ্গে এটা অস্বীকার, এটি সক্রিয় আউট আমরা এটা কোন ধরনের সব দেখতে আমাদের কিংবা আমাদের অন্তত কিছু কাছাকাছি না. তাই লেগো থেকে Star Wars, যদি আপনি কি খেলা খেলেছি, এটি সক্রিয় আউট আপনি কাছাকাছি যেতে পারেন লেগো বিশ্বের জিনিষ আপ ভঙ্গ, এবং কয়েন সংগ্রহ করা, মূলত. আর আপনি কি কখনও অভিনয় করেছি এই গেমটি উপায় খুব বেশী সময়, এই অজ্ঞাত ব্যক্তি হিসেবে এখানে করেনি, মোট সংখ্যা কয়েন যে আপনি সংগ্রহ করতে পারেন মনে হবে, 4 বিলিয়ন, হয়. এখন, সঙ্গে এটা আসলে গোলাকার হচ্ছে. তাই লেগো করার চেষ্টা ছিল কিছু ব্যবহারকারী বন্ধুত্বপূর্ণ রাখা. তারা এটা ঠিক করার জন্য কি করা হয়নি 2 32 ক্ষমতা, গত সপ্তাহে প্রতি. কিন্তু 4 বিলিয়ন একটা কারণ রয়েছে. মনে হচ্ছে, এই তথ্যের উপর ভিত্তি করে, যে লেগো, এবং কোম্পানী যে , এই প্রকৃত সফটওয়্যার তৈরি করার সিদ্ধান্ত নিয়েছে যে কয়েন সর্বোচ্চ নম্বর ব্যবহারকারী জমা হতে পারে হয়, প্রকৃতপক্ষে, 4 বিলিয়ন, তারা তাদের কোড মনোনীত কারণ একটি দীর্ঘ দীর্ঘ ব্যবহার করার জন্য, দৃশ্যতঃ কিন্তু শুধু একটি পূর্ণসংখ্যা, একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা, শুধুমাত্র একটি ধনাত্মক পূর্ণসংখ্যা, যার সর্বোচ্চ মান যে মোটামুটিভাবে হয়. আচ্ছা, এখানে আরেকটি মজার এক. খেলা সভ্যতায় তাই, যা আপনি কিছু পরিচিত হতে পারে, সঙ্গে এটা যে বছর আগে সেখানে দেখা যাচ্ছে এই গেমটি যদ্দ্বারা একটি বাগ ছিল যদি আপনি ভূমিকা পালন খেলা গান্ধীর, তাকে এর পরিবর্তে খুব শান্তিবাদী হচ্ছে, পরিবর্তে অবিশ্বাস্যভাবে ছিল, অবিশ্বাস্যভাবে আক্রমনাত্মক, কিছু পরিস্থিতিতে. বিশেষ করে, পথ যে সভ্যতা কাজ হল যে যদি আপনি, প্লেয়ার, গণতন্ত্র অবলম্বন আপনার হামলাদারিতা স্কোর পায় দুই, তাই বিয়োগ দ্বারা decremented বিয়োগ, এবং তারপর মাইনাস মাইনাস. তাই তোমার থেকে 2 বিয়োগ আপনার প্রকৃত iterating. দুর্ভোগ্যজনকভাবে আপনার iterating হলে প্রাথমিকভাবে 1, এবং আপনি 2 এটা থেকে বিয়োগ করা গণতন্ত্র গ্রহণ পর গান্ধী যেমন এখানে প্রতাপ , করেছ কারণ সে খুব passive-- ছিল হামলাদারিতা স্কেলে 1. কিন্তু যদি সে গণতন্ত্র গ্রহণ, তারপর তিনি 1 থেকে নেতিবাচক 1 যায়. দুর্ভাগ্যবশত, তারা স্বাক্ষরবিহীন সংখ্যার ব্যবহার, যার মানে তারা এমনকি নেতিবাচক চিকিত্সা সংখ্যার হিসাবে যদিও তারা ইতিবাচক ছিল. এবং দেখা যাচ্ছে যে নেতিবাচক 1 ইতিবাচক সমতুল্য, টিপিক্যাল কম্পিউটার প্রোগ্রাম, 255 হয়. তাই আপনি যদি গান্ধী গ্রহণ গণতন্ত্র, এবং সেইজন্য হয়েছে তার হামলাদারিতা স্কোর কমে যায়, এটা আসলে 255 এর কাছাকাছি ছুয়ে এবং তাকে সবচেয়ে তোলে খেলা আক্রমনাত্মক চরিত্র. তাই আপনি যদি এই আপ Google করতে পারেন. আর এটা ছিল প্রকৃতপক্ষে, একটি আপতিক প্রোগ্রামিং বাগ, কিন্তু যে বেশ লেখার বিদ্যা থেকেই. যে সব মজার এবং বুদ্ধিমান. আরো ভয়ানক যখন প্রকৃত হয় বাস্তব বিশ্বের ডিভাইস, এবং গেম না, এই একই বাগ আছে. আসলে, ঠিক এক বছর আগে একটি নিবন্ধ আসেন বোয়িং 787 ড্রিমলাইনার সম্পর্কে জানতে. প্রথমে নিবন্ধ এক নজরে একটু রহস্যময় সার্চ. কিন্তু এটা বলা এই, একটি সফ্টওয়্যার বোয়িং এর দূর্বলতা নতুন 787 ড্রিমলাইনার জেট হয়েছে সম্ভাব্য পাইলটদের কারণ নিয়ন্ত্রণ হারান বিমান, সম্ভবত মধ্য ফ্লাইট মধ্যে, এফএএ কর্মকর্তারা সম্প্রতি সতর্ক এয়ারলাইন্সে. এটা সংকল্প ছিল যে একটি মডেল 787 বিমান চালিত হয়েছে একটানা জন্য 248 দিন সব পর্যায়ক্রমে বর্তমান হারাতে পারেন, এসি, বৈদ্যুতিক জেনারেটরের কারণে ক্ষমতা নিয়ন্ত্রণ ইউনিট, GCUs, একযোগে গিয়ে নিরাপদ মোড ব্যর্থ. এটা আমাকে হারানোর ধরনের. কিন্তু মেমো বিবৃত, ঠিক আছে, এখন আমি যে পেয়েছিলাম, শর্ত একটি সফটওয়্যার দ্বারা সৃষ্ট হয়েছিল অভ্যন্তরীণ মোকাবেলায় জেনারেটরের নিয়ন্ত্রণ ইউনিট পর ওভারফ্লো হবে ক্রমাগত ক্ষমতার 248 দিন. আমরা এই জারি করা হয় ক্ষয় রোধ করার লক্ষ্য সব এসি বৈদ্যুতিক ক্ষমতা, যা হতে পারে বিমান নিয়ন্ত্রণ হারানো মধ্যে. তাই, আক্ষরিক কিছু পূর্ণসংখ্যা, অথবা কিছু সমতুল্য ডাটা টাইপ, সফটওয়্যার ব্যবহার করা হচ্ছে একটি প্রকৃত বিমান যে যদি আপনি আপনার বিমান রাখা দীর্ঘ যথেষ্ট, যা দৃশ্যত উপর কেস হতে পারে যদি আপনি শুধু চালাচ্ছেন তাদের ক্রমাগত এবং কখনও প্লাগ থেকে খুলে আপনার বিমান, এটা মনে হয়, অথবা লেট তার ব্যাটারি মরা, শেষ পর্যন্ত গণনা করা হবে, এবং আপ, এবং আপ, এবং আপ, এবং আপ, এবং আপ. আর, প্রকৃতি দ্বারা, একটি মেমরি সসীম পরিমাণ , ওভারফ্লো হবে ফিরে ঘূর্ণায়মান শূন্য বা কিছু নেতিবাচক মান, যার একটি পার্শ্ব প্রতিক্রিয়া প্রচন্ড বাস্তবতা সমতল প্রয়োজন হতে পারে পুনরায় বুট করার পরে করা, কার্যকরীভাবে, অথবা, আরও খারাপ পড়া পারে, এটা উড়ে যাওয়া হিসাবে. সুতরাং সমস্যা এই ধরনের আমাদের সাথে এখনও হয়, even-- এই একটি 2015 নিবন্ধটি ছিল, সব আরো ভয়ানক আপনি অগত্যা না যখন , বুঝতে প্রশংসা, বা কহা ত্রুটি ঐ ধরণের. সুতরাং এটা অন্য একটি ব্যাপার দেখা যাচ্ছে তথ্য উপস্থাপনা সম্পর্কে খারাপ জিনিস. এটা পরিনত হয় যে এমনকি ফ্লোট হয় ধরনের ত্রুটিপূর্ণ, কারণ ফ্লোট, খুব, আমি প্রস্তাব করা হয় 32 বিট, বা হয়তো 64 আপনি একটি ডবল ব্যবহার করে. কিন্তু যে এখনও সমাপিকা. এবং ধরা হয় যে, যদি আপনি করতে পারেন সংখ্যার একটি অসীম সংখ্যা করা দশমিক বিন্দু পরে, কোন উপায় আছে তুমি সব সম্ভব উপস্থাপন করতে পারেন সংখ্যা যে আমরা পড়ানো হয় গ্রেড স্কুল বিশ্বের উপস্থিত হতে পারে. একটি কম্পিউটার, মূলত, হয়েছে ঐ সংখ্যার একটি উপসেট নির্বাচন সঠিকভাবে উপস্থাপন করার. এখন কম্পিউটারটি বন্ধ করতে বৃত্তাকার হয়তো একটি সামান্য বিট, এবং প্রায় স্টোরে আপনি অনুমতি দিতে পারেন কোন সংখ্যা আপনি সম্ভবত চাইবেন. কিন্তু শুধু intuitively, যদি বিট একটি সসীম সংখ্যা আছে, আপনি শুধুমাত্র তাদের স্থানপরিবর্তন পারেন তাই অনেক সসীম উপায়ে. তাই আপনি সম্ভবত পারেন না একটি সসীম সংখ্যা ব্যবহার বিট বিন্যাস এর, zeros এবং বেশী নিদর্শন, অসীম প্রতিনিধিত্বকারী সংখ্যার সংখ্যা, যা কম্পিউটারের কিনা তার পরামর্শ খুব ভাল আমাদের কাছে মিথ্যা কখনও কখনও হতে. বস্তুত, এই কাজ করতে দিন. আমাকে এবং CS50 আইডিই ফিরে যাওয়া যাক. আমাকে এগিয়ে যান এবং একটি ক্ষুদ্র প্রোগ্রাম তৈরি যে দেখানোর জন্য অনির্দিষ্টতা ডেকে কম্পিউটার, হয় প্রকৃতপক্ষে, যথাযথ নয় এমন. এবং আমাকে এগিয়ে যান এবং দিয়ে শুরু করা যাক সামনে থেকে যে কিছু কোড, এবং এখন শুধু নিচের কাজগুলো. আমাকে এগিয়ে যান এবং printf, শতাংশ করা যাক চ, ব্যাকস্ল্যাশ এন, 1 10 দ্বারা বিভক্ত. অন্য কথায়, এর গভীরে ডুব দিন 1/10, মত 1 এবং 10 দ্বারা বিভক্ত. নিশ্চয়, একটি কম্পিউটার 1/10 উপস্থাপন করতে পারেন. সুতরাং আসুন এগিয়ে যান এবং অনির্দিষ্টতা করা যাক. দেখা যাক. বিন্যাস ডবল টাইপ নির্দিষ্ট করে. কিন্তু যুক্তি টাইপ int- * আছে. হচ্ছেটা কি? ওহ, আকর্ষণীয়, তাই এটি একটি ব্যাপার পাঠ সামনে থেকে শিখেছি. আমি বলছি, হেই, কম্পিউটার প্রদর্শনী আমাকে শতাংশ চ সঙ্গে একটি float. কিন্তু আমি এটা 2 আপনি ints দিচ্ছি. সুতরাং দেখা যাচ্ছে, আমি ঠিক করতে পারবো উপায়ে একটি দম্পতি মধ্যে এই. আমি শুধু 1.0 মধ্যে একটি চালু করতে পারে, এবং 10 10.0 মধ্যে, যা would, প্রকৃতপক্ষে, রূপান্তর প্রভাব আছে floats-- সেগুলি এখনও আশা একই সংখ্যা. অথবা এটি সক্রিয় আছে কিছু আউট আমরা আবার দীর্ঘ আগে দেখতে পাবেন. সংখ্যায় নিক্ষেপ পারে. আপনি, এই বন্ধনীসমন্বিত ব্যবহার করতে পারেন অভিব্যক্তি, আপনি বলতে পারেন, হেই, কম্পিউটার, এই নিতে 10, যা আমি জানি কোন int হয়. কিন্তু এটা কেমন আচরণ, দয়া করে, যেন এটি একটি float এর. কিন্তু এই অকারণে জটিল মতানুযায়ী. আজ আমাদের উদ্দেশ্য পূরণকল্পে, এর ঠিক আক্ষরিক দিন তাদের বিন্দু মান ভাসমান করা একটি দশমিক বিন্দু, এই মত দিয়ে. আমাকে এগিয়ে যান এবং পুন: প্রকাশ করা, অনির্দিষ্টতা, ভাল, বিন্দু স্ল্যাশ অনির্দিষ্টতা, লিখুন. ঠিক আছে, আমরা ভাল খুঁজছি. 1, 10 দ্বারা বিভক্ত অনুযায়ী আমার ম্যাক এখানে, প্রকৃতপক্ষে, 0.100000 হয়. এখন, আমি গ্রেড স্কুলে সেখানে শেখানো হয় 0 এর একটি অসীম সংখ্যা হতে হবে. সুতরাং এর মধ্যে অন্তত চেষ্টা করা যাক যারা কিছু দেখতে. এটা পরিনত হয় যে printf, একটি সামান্য কল্পনাকারী এখনও চেয়ে আমরা ব্যবহার করছি. এটি সক্রিয় আউট আপনি উল্লেখ করতে হবে না শুধু শতাংশ চ, অথবা শুধু শতাংশ আমি. আপনি আসলে নির্দিষ্ট করতে পারেন কিছু নিয়ন্ত্রণ এখানে অপশন. বিশেষ করে, আমি যাচ্ছি বলে, আরে, printf আসলে আমাকে 10 দশমিক পয়েন্ট দেন. সুতরাং এটি একটি সামান্য অদ্ভুত দেখায়. কিন্তু আপনি বলতে শতাংশ, বিন্দু, কত নম্বর আপনি পরে দেখতে চাই দশমিক বিন্দু, এবং তারপর চ ফ্ল্যাট জন্য মাত্র, কারণ যে কি ডকুমেন্টেশন বলছেন. আমাকে এগিয়ে যান এবং যে সংরক্ষণ করুন. এবং খুব বিজ্ঞপ্তি, আমি হচ্ছি কিছু পুনরায় টাইপ ক্লান্ত. তাই আমি ঠিক স্থাপনের করছি এবং নিচে এখানে আমার চাবি উপর তীর. আমি আপ আঘাত, তাহলে আপনি কমান্ড সব দেখতে পারেন যে আমি তৈরি, বা ভুল করেছেন. আর আমি এখন এগিয়ে যান যাচ্ছি এবং আসলে যে ব্যবহার করবেন, দৃশ্যত. করুন অনির্দিষ্টতা, বিন্দু তাই imprecision-- স্ল্যাশ কি আমি শেখানো হয় গ্রেড স্কুল আউট পরীক্ষা করা হবে. এমনকি যদি আমি এটা 10 দশমিক মুদ্রণ এটি স্থান, প্রকৃতপক্ষে, 0,10000 হয়. কিন্তু আপনি কি জানেন? এর একটু লোভী হওয়া যাক. এর কথা বলা, মত যাক, আমাকে 55 দেন দশমিক পর স্থানটিকে চিহ্নিত করে. চলুন শুরু করা যাক সত্যিই এই নিতে একটি ঘূর্ণন জন্য আউট প্রোগ্রাম. আমাকে না দিয়ে এটা পুনর্নির্মাণ করা যাক অনির্দিষ্টতা, বিন্দু স্ল্যাশ, অনির্দিষ্টতা. আর এখানে আমরা যেতে. আপনার শৈশব মিথ্যা ছিল. দৃশ্যত, 1 10 দ্বারা বিভক্ত প্রকৃতপক্ষে 0.100000000000000005551115123-- কি হচ্ছে? আচ্ছা, এটি সক্রিয় আউট, যদি আপনি যে ধরনের পর্যন্ত যথেষ্ট অন্তর্নিহিত মধ্যে চক্ষু মেলিয়া এই উপস্থাপনা সংখ্যা, এটা আসলে না ঠিক 1/10, বা 0.1 এবং শূন্য অসীম সংখ্যা. এখন, কেন এমন হল? আচ্ছা, এমনকি যদিও এই একটি সহজ আমাদের মানুষের সংখ্যা, 1, 10 দ্বারা বিভক্ত এটি এখনও অসীম অনেক এক সংখ্যার আমরা আপ মনে হতে পারে যে. কিন্তু শুধুমাত্র একটি কম্পিউটার উপস্থাপন করতে পারেন finitely অনেক তাই নম্বর. আর তাই, কার্যকরভাবে, কি কম্পিউটার দেখানো হয় আমাদের তার নিকটতম হয় নম্বরে পড়তা আমরা বিশ্বাস করতে 1/10 চাই, অথবা সত্যিই 0,10000 সীমাহীনভাবে. বরং, যদিও, এই হল যেমন যেমন পেতে পারেন ঘনিষ্ঠ. আর যদি তোমরা দেখুন ফণা নীচে, আমরা এখানে খুঁজছেন দ্বারা হিসাবে দশমিক পর 55 ডিজিটের, আসলে আমরা যে বাস্তবতা দেখতে. এখন একটি সরাইয়া হিসাবে, যদি আপনি করেছি কি movie-- দেখা আপনি অধিকাংশ সম্ভবত haven't-- কিন্তু সুপারম্যান 3 কিছু বছর আগে, রিচার্ড PRYOR মূলত এই leveraged তার কোম্পানির মধ্যে বাস্তবতা অনেক চুরি করা ভগ্নাংশ এবং পেনিসমূহ ভগ্নাংশ, কারণ company-- আমি প্রত্যাহার হিসাবে, এটা while-- মূলত ছিল একটি হয়েছে দূরে কিছু নিক্ষেপ মাপসই করা হয়নি যে সেন্ট ধারণা মধ্যে. কিন্তু আপনি পর্যন্ত যোগ করতে হলে এই সব অতি ক্ষুদ্র, অতি ক্ষুদ্র, ক্ষুদ্র আবার নম্বর, এবং আবার, এবং আবার, আপনি যেমন পারেন, তার ক্ষেত্রে, অর্থের একটি ভাল পরিমাণ করা. সেই ধারণা দ্বারা ripped বন্ধ ছিল আরো সাম্প্রতিক, কিন্তু এখনও পুরোনো সিনেমা, অফিস স্পেস ডেকে যেখানে যে সিনেমা বলছি, একই জিনিস করেনি এটা মাতাল আপ সম্পূর্ণরূপে, অত্যধিক উপায় সঙ্গে শেষ পর্যন্ত তাদের ব্যাংক একাউন্টে টাকা. এটা সব খুব সন্দেহজনক ছিল. কিন্তু দিনের শেষে, অনির্দিষ্টতা সব আমাদের চারপাশে হয়. আর যে, খুব, হতে পারে যদি প্রচন্ড. এটা পরিনত হয় যে সুপারম্যান 3 এবং অফিস স্পেস সরাইয়া, সেখানে কিছু খুব বাস্তব হতে পারে বিশ্বের গার্গল যথাযথ নয় এমন বাস্তবতার এর তথ্য উপস্থাপনা এমনকি আমরা মানুষের এই দিন অগত্যা না সেইসাথে আমরা উচিত বুঝতে, অথবা হিসাবে প্রায়ই হিসাবে আমরা মনে রাখবেন. এবং প্রকৃতপক্ষে, নিম্নলিখিত ক্লিপ কিছু খুব বাস্তব বিশ্বের কটাক্ষপাত থেকে কি যদি আপনি এরকম গার্গল অনির্দিষ্টতা প্রশংসা না করে সংখ্যা প্রতিনিধিত্ব ঘটতে পারে. [ভিডিও প্লেব্যাক] -Computers, আমরা সব স্বীকার করতে এসেছ প্রায়ই হতাশাজনক সমস্যা them-- বাগ সঙ্গে যেতে, ভাইরাস, সফ্টওয়্যার এবং glitches, ছোট মূল্য পরিশোধ করার জন্য সুবিধার জন্য. কিন্তু উচ্চ প্রযুক্তির এবং উচ্চ গতি সামরিক এবং স্থান অ্যাপ্লিকেশন প্রোগ্রাম, ক্ষুদ্রতম সমস্যা পারেন দুর্যোগ মধ্যে বিবর্ধিত করা. জুন 4th, 1996 তারিখে, বিজ্ঞানীদের প্রস্তুত একটি জনহীন Ariane 5 রকেট আরম্ভ করার জন্য. এটা বৈজ্ঞানিক বহন করেন উপগ্রহ ডিজাইন অবিকল কিভাবে প্রতিষ্ঠা করা পৃথিবীর চৌম্বক ক্ষেত্র মিথস্ক্রিয়া সৌর বায়ু সাথে. রকেট জন্য নির্মিত হয়েছিল ইউরোপিয়ান স্পেস এজেন্সি এবং তার সুবিধা থেকে উত্ক্ষিপ্ত বন্ধ ফরাসি গায়ানা উপকূলে. মধ্যে প্রায় 37 সেকেন্ড -এ ফ্লাইট, তারা প্রথম খেয়াল কিছু ভুল ছিল. অগ্রভাগ মধ্যে swiveling হয়েছে একটি উপায় তারা সত্যিই না করা উচিত. ফ্লাইট মধ্যে 40 সেকেন্ড প্রায়, পরিষ্কারভাবে, গাড়ির বিপদে পড়লেন. আর যখন তারা গঠিত একটি সিদ্ধান্ত এটি ধ্বংস করা. পরিসীমা নিরাপত্তা কর্মকর্তা, সঙ্গে অসাধারণ সাহস, বাটন টেপা, , রকেট উড়িয়ে সামনে এটা পারা জননিরাপত্তা একটি বিপত্তি হয়ে. -এই প্রথম ছিল Ariane 5 সমুদ্রযাত্রা. ও তার ধ্বংসের গ্রহণ একটি ত্রুটি কারণে স্থান রকেট এর সফ্টওয়্যার এমবেড. -Ariane সমস্যার ছিল সেখানে একটি সংখ্যা ছিল যে প্রকাশ করার 64 বিট প্রয়োজন. এবং তারা রূপান্তর চেয়েছিলেন একটি 16 বিট সংখ্যা এটি. তারা ধরেই নিয়েছিল, সংখ্যা কখনোই যাচ্ছিল , খুব বড় হবে সেই অধিকাংশই ছিল একটি 64 বিট সংখ্যা ডিজিটের শূন্যর ছিল. তারা ভুল ছিল. এক স্বয়ংক্রিয়ভাবে অক্ষমতা সফ্টওয়্যার প্রোগ্রাম গ্রহণ করতে সংখ্যা ধরনের দ্বারা উত্পন্ন আরেকটি ব্যর্থতার মূলে ছিল. সফটওয়্যার উন্নয়ন হয়ে উঠেছে একটি নতুন প্রযুক্তির খুব ব্যয়বহুল অংশ. Ariane তে রকেট খুব হয়েছে সফল, তাই সফ্টওয়্যার অনেক সৃষ্টি এটি ছিল জন্য Ariane 5 ব্যবহৃত. স্বয়ংক্রিয়ভাবে মৌলিক সমস্যা যে Ariane ছিল 5, দ্রুত ছিল দ্রুত ত্বরিত. সফ্টওয়্যার এবং না ছিল যে জন্য দায়ী. রকেট ধ্বংস বিপুল আর্থিক দুর্যোগ ছিল, সব একটি মিনিট সফ্টওয়্যার ত্রুটির কারণে. কিন্তু এই প্রথম ছিল না সময় তথ্য রূপান্তর সমস্যা আধুনিক প্রযুক্তি রকেট জর্জরিত ছিল. বিলিয়ে 1991, শুরুর সঙ্গে প্রথম উপসাগরীয় যুদ্ধের, প্যাট্রিয়ট ক্ষেপণাস্ত্র একই ধরনের অভিজ্ঞতা নম্বর রূপান্তর সমস্যা. এবং এর ফলে, 28 মানুষ, 28 আমেরিকান সৈন্য, হত্যা করা হয়েছে, এবং সম্পর্কে 100 জন আহত হয়েছে যখন দেশভক্ত, যা অনুমিত ছিল অন্তর্মুখী Scuds রক্ষা করার জন্য, একটি ক্ষেপণাস্ত্র জ্বালান ব্যর্থ হয়েছে. -When ইরাক কুয়েত, আক্রমণ করে এবং আমেরিকা গোড়ার দিকে 1991 মরুভূমি ঝড় চালু, প্যাট্রিয়ট মিসাইল ব্যাটারি মোতায়েন করা হয়েছে সৌদি আরব ও ইসরাইল রক্ষা করার জন্য ইরাকের স্কাড ক্ষেপণাস্ত্র হামলা থেকে. দেশভক্ত একটি মার্কিন মাঝারি পরিসীমা বায়ু সিস্টেম পৃষ্ঠ, শিল্পজাত RAYTHEON কোম্পানি দ্বারা. প্যাট্রিয়ট আটককারী স্বয়ংক্রিয়ভাবে আকার নিজেই সম্বন্ধে প্রায় 20 ফুট দীর্ঘ. এবং এটি প্রায় 2,000 পাউন্ড weighs. এবং এটা সম্পর্কে একটি টরপেডো বহন আমার মনে হয় এটা প্রায় 150 পাউন্ড. এবং টরপেডো নিজেই একটি উচ্চ বিস্ফোরক, যা এটি প্রায় টুকরা. টরপেডো এর আবরণ হল ছর্রা ভালো কাজ করার জন্য ডিজাইন করা. স্বয়ংক্রিয়ভাবে মিসাইল বহন করছে ধারক প্রতি চার, এবং একটি আধা ট্রেলার দ্বারা পরিবাহিত হয়. স্বয়ংক্রিয়ভাবে দেশভক্ত বিরোধী মিসাইল সিস্টেম অন্তত 20 বছর এখন ফিরে যায়. এটা মূলত পরিকল্পনা করা হয়েছিল একটি বিমান প্রতিরক্ষা ক্ষেপণাস্ত্র হিসাবে নিচে শত্রু এ্যারোপ্লেনের অঙ্কুর. প্রথম উপসাগরীয় যুদ্ধে, যখন যে যুদ্ধ বরাবর এসেছেন, আর্মি করার জন্য এটি ব্যবহার করতে চেয়েছিলেন নিচে Scuds, না এ্যারোপ্লেনের অঙ্কুর. ইরাকি এয়ার ফোর্স ছিল একটি সমস্যা, তাই অনেক না. কিন্তু আর্মি Scuds সম্পর্কে চিন্তিত ছিলাম. তাই তারা চেষ্টা করে দেশভক্ত আপগ্রেড. শত্রু -Intercepting ক্ষেপণাস্ত্র মাপক 5 এ ভ্রমণ যথেষ্ট চ্যালেঞ্জিং হতে যাচ্ছিলেন. কিন্তু যখন দেশভক্ত সেবা মধ্যে rushed ছিল, সেনাবাহিনীর একটি সচেতন ছিল না ইরাকি পরিবর্ধনের যে তৈরি তাদের Scuds প্রায় অসম্ভব আঘাত. -কি ঘটেছে Scuds যে আসছে ছিল অস্থির. তারা wobbling হয়. এই জন্য কারণ ছিল ইরাকী অনুক্রমে, 600 কিলোমিটার পেতে একটি 300 কিলোমিটার বাইরে পরিসীমা ক্ষেপণাস্ত্র, ওজন গ্রহণ সামনে টরপেডো আউট. তারা warhead লাইটার প্রণীত. তাই এখন দেশভক্ত হয় ছুটিয়া চলা এ আসার চেষ্টা করছেন. আর বেশির ভাগ সময়ে, সময় অপ্রতিরোধ্য সংখ্যাগুরু, এটা শুধু ছুটিয়া চলা দ্বারা উড়ে আসা হবে. একবার দেশভক্ত সিস্টেম অপারেটরদের দেশভক্ত প্রতীত তার টার্গেট মিস, তারা দেশভক্ত এর টরপেডো detonated যদি এটা সম্ভব হতাহতের ঘটনা এড়াতে মাটিতে পড়ে যেতে অনুমতি প্রদান করা হয়. অধিকাংশ মানুষ কি দেখে -যে ছিল, আকাশে ঐ বড় fireballs, এবং যেমন অনেকেই ভুল বুঝে ভাবেন স্কাড ক্ষেপণাস্ত্র এর বিবৃতি. রাতে -Although আকাশ, প্যাট্রিয়টস হাজির সাফল্যের সাথে ব্যবহার করা থেকে Scuds অন্তক, Dhahran এ, কোন ভুল হতে পারে তার কর্মক্ষমতা সম্পর্কে. দেশভক্ত এর রাডার সিস্টেম একটি অন্তর্মুখী ছুটিয়া চলা ট্র্যাক হারিয়ে ফেলেন, এবং কারণে চালু একটি সফ্টওয়্যার খুঁত. এটা প্রথম আবিষ্কৃত যারা ইজরায়েলের ছিল যে আর সিস্টেম ছিল, বৃহত্তর সময় অমিল হয়ে ওঠে, অথবা একটি ঘড়ি এমবেডেড কারণে কম্পিউটার সিস্টেম এর মধ্যে. -About দুই সপ্তাহ আগে দাহরান এ বিয়োগান্ত নাটক, ইজরায়েলের রিপোর্ট প্রতিরক্ষা মন্ত্রক যে সিস্টেমের সময় হারানো ছিল. প্রায় আট ঘণ্টা বা চলমান পরে, তারা সিস্টেম যে খেয়াল লক্ষণীয়ভাবে কম হয়ে উঠছে সঠিক ছিল. প্রতিরক্ষা মন্ত্রক দ্বারা প্রতিক্রিয়া প্যাট্রিয়ট ব্যাটারি সমস্ত কহন সিস্টেম ছেড়ে চলে যেতে না একটি দীর্ঘ সময়ের জন্য. তারা বলল কি একটি দীর্ঘ সময় কখনো was-- আট ঘন্টা, 10 ঘন্টা, 1,000 ঘন্টা. কেউ জানতো. স্বয়ংক্রিয়ভাবে প্যাট্রিয়ট ব্যাটারি ব্যারাকে এ সংস্থিত দাহরান এবং তার দ্বিধান্বিত অভ্যন্তরীণ এ ঘড়ি 100 ঘন্টার উপর হয়েছে ফেব্রুয়ারি 25th রাতে. -এটা একটি নির্ভুলতা সময় অনুসরণ করা একটি সেকেন্ডের দশ ভাগের এক ভাগ সম্পর্কে. এখন, এক সেকেন্ডের দশ ভাগের এক ভাগ একটি আকর্ষণীয় নম্বর, কারণ এটা প্রকাশ করা যাবে না বাইনারি ঠিক, যা এটা ঠিক প্রকাশ করা যাবে না মানে কোনো আধুনিক ডিজিটাল কম্পিউটার. এটা বিশ্বাস করা কঠিন. কিন্তু একটি উদাহরণ হিসাবে ব্যবহার. এর সংখ্যা এক তৃতীয়াংশ যাক. এক তৃতীয়াংশ হতে পারে না ঠিক দশমিক প্রকাশ. এক তৃতীয়াংশ 0,333 হয় অনন্ত জন্য যাওয়া. সঙ্গে যে কি কোন উপায় নেই দশমিক পরম সঠিকতা. যে ঠিক সমস্যা ধরনের যে দেশভক্ত ঘটেছে. আর সিস্টেম, দৌড়ে খারাপ সময় ত্রুটি হয়ে ওঠে. অপারেশন 100 ঘন্টা -After, সময় সময় মাত্র এক তৃতীয়াংশ এক সেকেন্ডের. কিন্তু একটি লক্ষ্য করে শর্তাদি ক্ষেপণাস্ত্র মাপক 5 এ ভ্রমণ, এটা একটি ট্র্যাকিং ফলাফল 600 মিটার ত্রুটি. এটা একটা মারাত্মক ভুল হবে কি সৈন্যদের জন্য ঘটেছে একটি Scud প্রবর্তন করে স্মরণীয় হয়ে আছেন গোড়ার দিকে সতর্কতা উপগ্রহ দ্বারা সনাক্ত এবং তারা জানত য়ে ছুটিয়া চলা ছিল তাদের সাধারণ দিক আসছে. তারা জানেন না যেখানে এটা আসছিলেন. -এটা এখন রাডার ছিল আপ দেশভক্ত সিস্টেম কম্পোনেন্ট রক্ষার দাহরান সনাক্ত এবং রাখা আগত শত্রু ক্ষেপণাস্ত্র ট্র্যাক. স্বয়ংক্রিয়ভাবে রাডার খুব স্মার্ট ছিল. এটা আসলে ট্র্যাক করবে ছুটিয়া চলা অবস্থান, এবং তারপর ভবিষ্যদ্বাণী যেখানে এটা সম্ভবত পরবর্তী সময় রাডার পাঠানো হবে একটি আউট কেবল শাক-সব্জি. যে একটি পরিসীমা গেট বলা ছিল. -Then, একবার দেশভক্ত সিদ্ধান্ত নেয় যথেষ্ট সময় হয়েছে ফিরে যান এবং পরবর্তী পরীক্ষা প্রেরণ এই শনাক্ত বস্তুর জন্য অবস্থান, এটা ফিরে যায়. অনন্তর যখন তা অদৃশ্য হয়ে ফিরে গেলেন জায়গা, এটা তাহলে কোন বস্তু দেখেন. আর এটা করার সিদ্ধান্ত নেয় যে সেখানে বস্তু, এটি একটি মিথ্যা সনাক্তকরণ, এবং ট্র্যাক ড্রপ. স্বয়ংক্রিয়ভাবে অন্তর্মুখী ছুটিয়া চলা অদৃশ্য রাডার স্ক্রিন থেকে. যাও এবং পরে, এটা ব্যারাকে মধ্যে slammed. ছুটিয়া চলা 28 নিহত, এবং শেষ পরিবর্তন হয়েছিল এক প্রথম উপসাগরীয় যুদ্ধের সময় বহিস্কার. ঘটনাবহুল, আপডেট সফ্টওয়্যার পরের দিন আগত Dhahran এ. সফ্টওয়্যার খুঁত ছিল হয়েছে সংশোধন করা হয়েছে, বন্ধের অস্থির এক অধ্যায়ের প্যাট্রিয়ট ক্ষেপণাস্ত্র ইতিহাস. [ভিডিও প্লেব্যাক] ডেভিড জে MALAN: সুতরাং এই সব হয় বলতে ওভারফ্লো এই সমস্যা যে এবং অনির্দিষ্টতা সব খুব বাস্তব হয়. তাই কিভাবে আমরা এখানে কি পেতে পারি? আমরা ঠিক printf সম্পর্কে কথা বলা শুরু করেন. আবার, এই যে ফাংশন পর্দায় কিছু ছাপে, এবং আমরা তারপরে চালু কয়েক অন্যান্য কার্যাবলী তথাকথিত CS50 এর লাইব্রেরি থেকে. এবং আমরা চালিয়ে যাব যথাসময়ে এসব দেখতে. আর আমরা, বিশেষ করে, স্ট্রিং, ব্যবহৃত এবং int- পেতে, এবং এখন ভাসা পেতে, এবং এখনো অন্যদের এখনও আমরা সম্মুখীন হবে এবং নিজেদেরকে দীর্ঘ আগে ব্যবহার করুন. কিন্তু অনুষ্ঠানে, আছে আমরা ইতিমধ্যে একটি প্রয়োজন দেখা কি যারা ফাংশন হাত ফিরে সঞ্চয় করতে? তারা আমাদের পিছনে একটি স্ট্রিং হাতে, বা কোন int, বা একটি float. এবং কখনও কখনও আমরা যে লাগাতে হবে স্ট্রিং, বা কোন int, বা ভাসা, কোথাও. আর ঐ জিনিষ সংরক্ষণ করতে, শুধু প্রত্যাহার ভূত মত, আমরা ভেরিয়েবল আছে. কিন্তু ভূত অসদৃশ, সি আমরা প্রকৃত ধরনের আছে variables-- তথ্য ধরনের, আরো সাধারণভাবে তাদের মধ্যে, একটি পংক্তি, কোন int, একটি ভাসা, এবং এই অন্যদের এখনও. আর তাই যখন আমরা সি ভেরিয়েবল ডিক্লেয়ার, আমরা আমাদের তথ্য ধরনের ঘোষণা করতে হবে. এইটি এমন কিছু বিষয় নয় আমরা করব সেমিস্টারে পরে যা করতে হবে যেমন আমরা অন্য ভাষায় রূপান্তর. কিন্তু এখন জন্য, আমরা প্রয়োজন আগাম অবরোহী করতে, কম্পিউটার কি ধরনের ব্যাখ্যা পরিবর্তনশীল এর আমরা এটা আমাদের দিতে চান. এখন এদিকে, প্রিন্ট করতে ডেটা প্রকার ঐ ধরণের, আমরা বলতে printf থেকে কি আশা আছে. আর আমরা স্ট্রিং জন্য শতাংশ গুলি দেখেছি, এবং পূর্ণসংখ্যার জন্য শতাংশ আমি, এবং কয়েক ইতিমধ্যে অন্যদের. আর সেই কেবল প্রয়োজনীয়তা আছে চাক্ষুষ উপস্থাপনা জন্য যে তথ্য. এবং এই প্রতিটি আসলে হতে পারে parametrized বা কোনোভাবে tweaked, আপনি নিয়ন্ত্রণ আরও করতে চান তাহলে আউটপুট ধরণ যে আপনি পেতে. এবং, আসলে, এটা জানতে না যে শুধুমাত্র সক্রিয় সেখানে একটি নতুন লাইন জন্য ব্যাকস্ল্যাশ এন হয়. সেখানে অন্য কিছু ব্যাকস্ল্যাশ নামক একটি গাড়ি ফেরত, জন্য R যা একটি থেকে আরো সদৃশ পুরানো স্কুল টাইপরাইটার, এবং উইন্ডোজ অনেক বছর জন্য ব্যবহৃত. সেখানে ট্যাব জন্য ব্যাকস্ল্যাশ T 'র. দেখা যাচ্ছে যে, যদি আপনি করতে চান একটি স্ট্রিং এর ভিতরে ডবল কোট, রিকল যে আমরা ব্যবহার করেছি ডবল উদ্ধৃতি ডবল বাম এবং ডান উপর উদ্ধৃতি এ পর্যন্ত আমাদের স্ট্রিং শেষ. যে জিনিস গুলান মনে হবে. আপনি একটি ডবল উদ্ধৃতি লাগাতে চান তাহলে একটি স্ট্রিং এবং প্রকৃতপক্ষে মাঝখানে, এটি দেখতে বিভ্রান্তিকর. এবং যাতে আপনি অব্যাহতি আছে, তাই কথা বলতে, কিছু সঙ্গে একটি ডবল উদ্ধৃতি মত, আক্ষরিক, ডবল উদ্ধৃতি ব্যাকস্ল্যাশ. এবং আরো কিছু এখনও. আর আমরা যারা আরো দেখতে পাবেন দীর্ঘ আগে প্রকৃত ব্যবহারের মধ্যে. তাই আসুন এখন থেকে রূপান্তরটি দিন তথ্য, এবং উপস্থাপনা, এবং গাণিতিক অপারেটর, সব যা আমাদের কিছু ভবন দিয়েছেন যা দিয়ে ব্লক খেলতে. কিন্তু এখন এর আসলে দেত্তয়া আমাদের শব্দভান্ডার বাকি আমরা ইতিমধ্যে ছিল যে ভূত সঙ্গে গত সপ্তাহে অন্য কিছু কটাক্ষপাত গ্রহণ দ্বারা সি এ নির্মান না তাদের সব. কিন্তু ধারনা আমরা করছি সম্পর্কে সত্যিই শুধু দেখতে থেকে অনুবাদ জোর দেওয়া এক ভাষা, ভূত, অন্যজনকে সি এবং সময়ের সাথে আমরা তুলে নেব আমাদের টুলকিট জন্য আরও টুল, তাই কথা বলতে, সিনট্যাক্স. এবং প্রকৃতপক্ষে, আপনি যে ধারনা দেখতে পাবেন এখন বরং গত সপ্তাহ থেকে পরিচিত. তাই এই কাজ করতে দিন. এর এগিয়ে যান এবং একটি প্রোগ্রাম পিটান যাক যে আসলে কিছু এক্সপ্রেশন ব্যবহার করে, একটি বুলিয়ান অভিব্যক্তি. আমাকে এগিয়ে যেতে এখানে আসুন এবং একটি নতুন ফাইল তৈরি করুন. আমি এই condition.c ডাকবো. আমাকে এগিয়ে যান এবং CS50 লাইব্রেরি অন্তর্ভুক্ত. এবং আমাকে এগিয়ে যান এবং অন্তর্ভুক্ত যাক আমাদের ফাংশন জন্য মান io.h, এবং printf, এবং আরো যথাক্রমে. আমাকে নিজে থেকে যে boilerplate, দিই int প্রধান অকার্যকর, যার ব্যাখ্যা আমরা করব ভবিষ্যতে ফিরে আসা. এখন আমাকে এগিয়ে যান এবং দেত্তয়া নিজেকে পেতে int- মাধ্যমে কোন int. তারপর আমাকে এগিয়ে যান এবং এই কাজের জন্য. আমি বলতে চাই যদি আমি যাক less-- হয় ইতিবাচক, নেতিবাচক মধ্যে পার্থক্য, বা শূন্য মান. সুতরাং যদি আমি শূন্য চেয়ে কম হয়, আমাকে শুধু এই প্রোগ্রাম শুধু বলতে আছে, নেতিবাচক, ব্যাকস্ল্যাশ এন, আর যদি আমি শূন্য তার চেয়ে অনেক বেশী. এখন আমি, অবশ্যই, বলতে যাচ্ছি printf ইতিবাচক, ব্যাকস্ল্যাশ এন. এবং তারপর অন্য আমি পারবোই if--. যদি তোমার 0 সমান আমি যেত না. কিন্তু আমি এ উপার্জন করা চাই অন্তত এক ইতিমধ্যে ভুল. পুনরাহ্বান যে সমান চিহ্ন নেই সমান নয়, আমরা মানুষেরা জানি. কিন্তু এটা নিয়োগ অপারেটর. আর আমরা 0 নিতে চাই না ডান এবং আমি বাম থেকে এটা করা. তাই এই বিভ্রান্তি এড়ানোর জন্য, অথবা সম্ভবত সমান অপব্যবহার সাইন, মানুষের কিছু বছর আগে সিদ্ধান্ত নিয়েছে যে অনেক প্রোগ্রামিং ভাষায় আপনি সমতার জন্য চেক করতে চান, যখন বাম এবং ডান মধ্যে, আপনি আসলে ব্যবহার সমান সমান. তাই আপনি যদি সমান দুইবার সাইন আঘাত. আপনি ডান দিক থেকে নির্ধারণ করতে চান যখন বাম, আপনি একটি একক সমান চিহ্ন ব্যবহার করুন. সুতরাং আমরা আপাততঃ আর কাজ করতে পারে যদি আমি সমান শূন্য সমান. আমি তারপর যেতে পারেনি আমার কোঁকড়া ধনুর্বন্ধনী খুলুন, এবং বলে, printf, 0, ব্যাকস্ল্যাশ এন, সম্পন্ন. কিন্তু কিভাবে এই স্মরণ রাস্তা কাটাচামচ কাজ করতে পারেন. এবং, সত্যিই, মাত্র যুক্তিবিজ্ঞান চিন্তা. আমি একটি সংখ্যা. এটি একটি পূর্ণসংখ্যা বিশেষভাবে রয়েছে. এবং তার মানে এটা কম হতে যাচ্ছে 0, 0, 0 বা তার চেয়ে অনেক বেশী চেয়ে. তাই এই ধরনের উহ্য ডিফল্ট ক্ষেত্রে. আর তাই আমরা ঠিক মত করতে পারে ভূত, অন্যথায় যদি সঙ্গে প্রয়োগ এবং শুধু অন্য বলছি. কথাটি, যদি আপনি প্রোগ্রামার আছে শুধু জানি যা তিন বালতি পরিস্থিতি, প্রথম fall-- পারেন দ্বিতীয়, তৃতীয় বা এই না case-- মধ্যে অতিরিক্ত স্পষ্টতা যোগ বিরক্ত এবং সেখানে অতিরিক্ত লজিক. শুধু সঙ্গে এগিয়ে যান ডিফল্ট ক্ষেত্রে অন্য এখানে. এখন, আসুন এগিয়ে যান এই সংরক্ষণ পরে, অবস্থার বিন্দু conditions-- স্ল্যাশ না একটি মহান ইউজার ইন্টারফেস, কারণ আমি প্ররোচনা করছি না ব্যবহারকারী, যেমন আমি আগেই বলেছি. কিন্তু যে সূক্ষ্ম. আমরা এটা সহজ রাখা করব. এর সংখ্যা 42 চেষ্টা করা যাক. আর যে ইতিবাচক. নম্বর চেষ্টা করা যাক নেতিবাচক 42, নেতিবাচক. এর মান 0 চেষ্টা করা যাক. এবং প্রকৃতপক্ষে, এটি কাজ করে. এখন, আপনি সামনে সমস্যার সঙ্গে দেখতে পাবেন দীর্ঘ, টেস্টিং কিছু তিনবার, সম্ভবত যথেষ্ট নয়. আপনি সম্ভবত কিছু পরীক্ষা করতে চান যত বড় সংখ্যা, কিছু ছোট সংখ্যা, কিছু কোণ ক্ষেত্রে, যেমন আমরা তাদের বর্ণনা আসবো. একটি কিন্তু এখন জন্য, এই হল খুবই সহজ প্রোগ্রাম. আর আমি পুরোপুরি নিশ্চিত নই, যুক্তি, এটা তিনটি মামলায় পড়ে যে. এবং প্রকৃতপক্ষে, এমনকি আমরা যদিও মাত্র সম্ভাব্য মূল্যবান উপর দৃষ্টি নিবদ্ধ করা অনির্দিষ্টতা এবং ওভারফ্লো, এ বাস্তবতা যেখানে CS50 এর সমস্যার অনেক, আমরা চিন্তা যাচ্ছে না সম্পর্কে, সব সময়, ওভারফ্লো ঐ বিষয় এবং অনির্দিষ্টতা, কারণ, আসলে, সি, এটা আসলে সব না যে ঐ জিনিস এড়ানো সহজ. আপনি আপ গণনা করতে চান বড়, বড়, বড়, এটি সক্রিয় আউট আপনি কৌশল আছে ব্যবহার করতে পারেন, প্রায়ই কিছু বলা জড়িত লাইব্রেরী কোড সংগ্রহ করে অন্যান্য মানুষ লিখেছিলেন যে আপনি ব্যবহার করতে পারেন, মত ও অন্যান্য ভাষায় জাভা এবং অন্যদের, আসলে এটা অনেক সহজ করতে এমনকি উচ্চ গণনা করতে. সুতরাং এটা সত্যিই এই বিপদ কিছু হয় ভাষা আপনি ব্যবহার একটি ফাংশন. এবং আগামী সপ্তাহের মধ্যে, আমরা করব দেখুন কিভাবে বিপজ্জনক সি সত্যিই যদি আপনি এটি সঠিকভাবে ব্যবহার না হতে পারে. কিন্তু সেখান থেকে, এবং সঙ্গে পাইথন এবং জাভাস্ক্রিপ্ট, হবে আমরা কিছু অতিরিক্ত নিরাপত্তা স্তর, এবং সেই ঝুঁকি কম রান. তাই আসুন একটু বেশি আমাদের প্রোগ্রামে আকর্ষণীয় যুক্তিবিজ্ঞান. তাই আমাকে এগিয়ে যান এবং তৈরি করা যাক একটি প্রোগ্রাম লজিক্যাল বলা ঠিক তাই আমি কিছু সঙ্গে খেলা করতে পারেন প্রকৃত যুক্তিবিজ্ঞান, logical.c. আমি শুধু কপি এবং কিছু পেস্ট করব আগে তাই থেকে কোড আমি ফিরে পেতে এই চমৎকার শুরুর বিন্দুতে. আমাকে অনুমতি দিন এই সময় গৃহস্থালি সি আমি নই এটা সি এর একটি নাম দিতে হবে এটা প্রচলিত শুধু কারণ, ব্যবহারকারী থেকে একটি চরিত্র পেতে. আর এর মত জাহির করা যাক আমি অংশ বাস্তবায়ন করছি যে RM প্রোগ্রাম, Remove যে আগে প্রোগ্রাম ব্যবহারকারীকে অনুরোধ জানানো একটি ফাইল মুছে ফেলার জন্য. আমরা কিভাবে এই কাজ করতে পারে? আমি বলতে চাই, যদি C সমান সমান, উদ্ধতি মূল্যউদ্ধৃতি, Y, তারপর আমি অনুমান করা যাচ্ছে না ব্যবহারকারী হ্যাঁ মনোনীত করেছেন যে. আমি শুধু হ্যা প্রিন্ট চলেছি. এটা আসলে লেখা ছিল অপসারণ প্রোগ্রাম, আমরা ফাইল দূর করতে পারে কোডের আরো লাইন. কিন্তু আমরা এটা সহজ রাখা করব. অন্যথায় যদি গ সমান n-- সমান এবং এখন এখানে, আমি বলতে যাচ্ছি, ব্যবহারকারীর কোন বোঝানো হবে. এবং তারপর অন্য, আপনি কি জানেন? আমি কি আর জানি না ব্যবহারকারী টাইপ করা যাচ্ছে. তাই আমি ঠিক করে বলতে যাচ্ছি একটি ত্রুটি, যাই হোক না কেন সে আসলে টাইপ. সুতরাং এখানে কি ঘটছে? একটা মৌলিক পার্থক্য নেই আমি অতীতে যা করেছি বনাম. ডাবল কোট, ডবল কোট, ডবল কোট, এবং, এখনো, একক উদ্ধৃতি, একক উদ্ধৃতি. এটা সি সক্রিয় আউট, যে যখন আপনি একটি স্ট্রিং লিখতে চান, আপনি ডবল কোট ব্যবহার করতে, আমরা করেছি, ঠিক যেমন printf সঙ্গে এই সব সময় ব্যবহার করা হয়েছে. কিন্তু আপনি শুধু একটি সঙ্গে মোকাবেলা করতে চান তাহলে একক চরিত্র, একটি তথাকথিত গৃহস্থালির কাজ, তারপর আপনি আসলে একক উদ্ধৃতি চিহ্ন ব্যবহার. তোমাদের মধ্যে যারা প্রোগ্রাম করেছি আগে, আপনি নাও থাকতে পারে এই সম্পর্কে চিন্তা ছিল নির্দিষ্ট ভাষায় পার্থক্য. সি, এটা কোন ব্যাপার. আর তাই যখন আমি একটি গৃহস্থালি পেতে এবং আমি চাই সমান ব্যবহার করে গৃহস্থালি তুলনা ওয়াই বা n মত কিছু অক্ষর সমান, আমি না, প্রকৃতপক্ষে, একক উদ্ধৃতি আছে প্রয়োজন. এখন, এগিয়ে যান এবং এই কাজের জন্য. এর এগিয়ে যান এবং করতে না দেওয়া লজিক্যাল ডট লজিক্যাল কাট. এবং এখন আমি অনুরোধ জানানো হচ্ছে না. সুতরাং, সম্ভবতঃ, একটি ভাল ব্যবহারকারীর অভিজ্ঞতা আসলে আমাকে বলতে হবে কি এখানে কাজ করতে. কিন্তু আমি যাচ্ছি শুধু অন্ধভাবে চমৎকার ওকে হ্যাঁ জন্য, y বলে. এর আবার এটি চালানো যাক, এন কোন জন্য, চমৎকার. কিছু মানুষ আমি জানি মত ধরা যাক, আমার ক্যাপস লক কী খুব প্রায়ই সব হয়. তাই আমি ভুল না রাজধানী ওয়াই, লিখুন. ঠিক আছে, এটা ঠিক কি আমি আশা করছি না. প্রকৃতপক্ষে, কম্পিউটার আক্ষরিক কি করছে আমি এটা বলেন do-- জন্য পরীক্ষা ছোট হাতের y এবং ছোট হাতের অক্ষর ব্যবহার এন. এই ভাল মত মনে হয় না ব্যবহারকারীর অভিজ্ঞতা, যদিও. আমার জন্য জিজ্ঞাসা করা যাক এবং গ্রহণ হয় লোয়ার কেসটি বা বড় হাতের অক্ষরে. সুতরাং দেখা যাচ্ছে, আপনি চাইতে পারেন ভূত ভালো কিছু বলতে, আক্ষরিক বা সি সমান মত রাজধানী একক উদ্ধৃত Y সমান. দেখা যাচ্ছে, সি নেই এই আক্ষরিক শব্দ বা. কিন্তু এটা দুটি উল্লম্ব বার আছে. আপনি সাধারণত Shift ধরে আছে আপনি একটি মার্কিন কীবোর্ড ব্যবহার করছেন, এবং উল্লম্ব বার আঘাত আপনার আগমন কী উপরে কী. কিন্তু এই উল্লম্ব দণ্ড উলম্ব বার অর্থ বা. তাহলে, এর বিপরীতে, আমরা চেয়েছিলাম বলতে এবং ভূত মত, থেকে, আমরা এম্পারসেন্ড ampersand না পারে. যে কোন যৌক্তিক অর্থে এখানে নির্মিত হয়, কারণ একটি মানুষই না পারা টাইপ করেছেন উভয় y এবং ছোট হাতের অক্ষর ব্যবহার Y এবং একই চরিত্র হিসাবে মূলধন ওয়াই. তাই বা কি আমরা এখানে অভিপ্রায়. তাই আমি উভয় স্থানে এই না হলে অথবা গ সমান সমান রাজধানী এন, এখন পুন: প্রকাশ করা, লজিক্যাল করাতে, লজিক্যাল পুন: প্রকাশ করা. এখন, আমি Y টাইপ করতে পারেন. এবং আমি এটা আবার কি করতে পারেন সঙ্গে রাজধানী ওয়াই, বা রাজধানী এন আমি অতিরিক্ত যোগ করতে পারে এখনো সমন্বয়. সুতরাং এই একটি লজিক্যাল যেমন এখন যতটা প্রোগ্রাম আমি কথাটি চেক করছি এই মান বা এই মান. আর আমি করতে হবে না, অগত্যা, আরো দুটি Ifs নতুবা Ifs সঙ্গে আসা পর্যন্ত. আমি আসলে কিছু একত্রিত করতে পারেন এই পথ একসঙ্গে সম্পর্কিত যুক্তিবিজ্ঞান. তাই এই ভাল হবে কেবল চেয়ে পরিকল্পিত বলছে, যদি C লোয়ার কেসটি Y সমান, আর প্রিন্ট হ্যাঁ, যদি গ সমান মূলধন ওয়াই, আর প্রিন্ট হ্যাঁ, যদি গ সমান অন্য কথায় lower--, আপনি করতে হবে না আরো এবং আরো শাখা. আপনি সমতুল্য কিছু একত্রিত করতে পারেন কথাটি শাখা, এই পথ হিসেবে. তাই আসুন শুধু এক সময়ে কটাক্ষপাত করা যাক চূড়ান্ত উপাদান, এক চূড়ান্ত কনস্ট্রাক্ট, যে সি পারবেন. এবং আমরা ফিরে আসবো অন্যদের এখনও ভবিষ্যতে. এবং তারপর আমরা খুঁজছি দ্বারা সিদ্ধান্তে আসা করব code-- না শুদ্ধি এ কোড পেয়ে work-- কিন্তু নকশা কোডের, এবং সেই বীজ বপন তাড়াতাড়ি. তাই আমাকে এগিয়ে যান এবং এখানে একটি নতুন ফাইল খুলুন. তুমি কি জান? আমি পুনরায় বাস্তবায়ন করতে যাচ্ছি একই প্রোগ্রাম, কিন্তু একটি ভিন্ন কনস্ট্রাক্ট ব্যবহার. তাই আমাকে দ্রুত যাক নিজেকে দিতে প্রবেশাধিকার, CS50.h অন্তর্ভুক্ত করা CS50 লাইব্রেরি জন্য, printf জন্য প্রমিত io.h. আমার int প্রধান অকার্যকর দাও. এবং তারপর এখানে উপর, যাক আমাকে এগিয়ে যান এবং এই কাজের জন্য. চর গ, গৃহস্থালির কাজ পেতে পায় ঠিক আগে মত. আমি একটি নতুন কনস্ট্রাক্ট ব্যবহার করতে যাচ্ছি now-- সুইচ, কি চরিত্রের উপর? তাই সুইচ ধরনের মত হল একটি ট্রেন ট্র্যাক সুইচিং. অথবা, সত্যিই, এটা কোন ধরনের হয় একটি অন্যথায় যদি, অন্যথায় যদি যদি, কিন্তু কিছুটা ভিন্নভাবে লিখিত. একটি সুইচ ভালো দেখায়. আপনি সুইচ আছে, এবং তারপর কি অক্ষর বা সংখ্যা আপনি তাকান করতে চান, তারপর কিছু কোঁকড়া ধনুর্বন্ধনী চাই ভূত, শুধু এই জিনিস না বলে. এবং তারপর আপনি বিভিন্ন মামলা রয়েছে. আপনি যদি এবং অন্যথায় ব্যবহার করবেন না. আপনি আক্ষরিক শব্দ ক্ষেত্রে ব্যবহার. আর আপনি এই মত কিছু বলতে হবে. সুতরাং একটি ছোট হাতের y এর ক্ষেত্রে, অথবা একটি মূলধন ওয়াই এর ক্ষেত্রে, এগিয়ে যান এবং হ্যাঁ প্রিন্ট আউট. এবং তারপর সুইচ আউট বিরতি. এটাই. সম্পন্ন করা হয়েছে. অন্যথায় যদি, তাই কথা বলতে, লোয়ার কেসটি এন, বা রাজধানী এন, তারপর এগিয়ে যান এবং মুদ্রণ বাইরে কোন, এবং তারপর বিরতি. Else-- এবং এই ধরনের হয় ডিফল্ট ক্ষেত্রে indeed-- printf, ত্রুটি এবং শুধু ভাল পরিমাপ জন্য, যদিও কথাটি এই বিরতি প্রয়োজন নেই কারণ আমরা শেষে করছি যাহাই হউক না কেন সুইচ, আমি এখন সুইচ ভঙ্গ আউট করছি. তাই এই সামান্য ভিন্ন দেখায়. কিন্তু, যুক্তি, এটা আসলে সমতুল্য. আর আপনি কেন ব্যবহার করবেন অন্য এক? কখনও কখনও, শুধু ব্যক্তিগত অভিরুচি, কখনও কখনও নন্দনতত্ব, যদি আমি এই কটাক্ষ এখন, কিছু আছে জন্য বলেন করা এই কোড পাঠযোগ্যতা. আমি বলতে চাচ্ছি, আসলে এই যে কিছু মনে করবেন না কোড রুমে আমাদের অনেক নতুন. কিন্তু এটা শুধু ধরনের চমত্কার হয়. আপনি ছোট হাতের Y, রাজধানী ওয়াই দেখুন, লোয়ার কেসটি এন, রাজধানী এন ডিফল্ট, এটা শুধু ধরনের জাম্প একটি উপায়ে আপনি এ যে, তর্কসাপেক্ষ, হয়তো পূর্ববর্তী উদাহরণে Ifs, এবং উল্লম্ব বার সঙ্গে, এবং অন্য Ifs, নাও থাকতে পারে. তাই এই ব্যক্তিগত সত্যিই একটি ব্যাপার পছন্দ, সত্যিই, বা পাঠযোগ্যতা, কোডের. কিন্তু কার্যকারিতা পদ, আমার দিন এগিয়ে যান এবং একটি সুইচ, বিন্দু স্ল্যাশ করা সুইচ, এবং এখন ছোটহাতের Y টাইপ, রাজধানী ওয়াই, ছোট হাতের অক্ষর ব্যবহার এন, রাজধানী এন, ডেভিড, পুনরায় চেষ্টা করুন যে কারণ না একটি একক চরিত্র. হিসাবে প্রত্যাশিত, এক্স, ত্রুটি করা যাক. আর, logically-- এবং এই কিছু হয় আমি general-- এমনকি উৎসাহিত করবে যদিও আমরা শুধুমাত্র প্রারম্ভিক করছি এই বৈশিষ্ট্য কিছু পৃষ্ঠের. এবং এটা সুস্পষ্ট নাও হতে পারে যখন আপনি নিজের কীবোর্ড এ বসতে, কিভাবে কাজ করে? এই এখন কী করবেন? থাকার বিষয়ে সুন্দর জিনিস একটি ল্যাপটপ, অথবা ডেস্কটপ বা অ্যাক্সেস একটি কম্পাইলার দিয়ে একটি কম্পিউটারে, এবং এই মত একটি কোড এডিটর সঙ্গে, আপনি প্রায় সবসময় এই উত্তর দিতে পারেন হয় শুধু চেষ্টা করে নিজের জন্য প্রশ্ন. উদাহরণস্বরূপ, যদি অলঙ্কৃত হাতের প্রশ্ন ছিল, কি হবে যদি আপনি ভুলে আপনার বিরতি বিবৃতি? কোনটি আসলে একটি খুব সাধারণ জিনিস, কারণ তো মনে হচ্ছে না মত আপনি সত্যিই তাদের প্রয়োজন. তারা সত্যিই সম্পন্ন না আপনার একটি প্রথম বন্ধনী বা কোঁকড়া মত চিন্তা বক্রবন্ধনী আছে. আসুন এগিয়ে যান এবং কোড কম্পাইল এবং দেখুন. তাই সুইচ, বিন্দু স্ল্যাশ সুইচ করতে. নিম্ন ক্ষেত্রে টাইপ করা যাক Y, উপরের কেস, লিখুন. তাই আমি Y টাইপ. প্রোগ্রাম বলেন, হ্যাঁ, ত্রুটি, যেন এটা তার মন পরিবর্তন হয়. কিন্তু এটা কোন ধরনের ছিল, কারণ সেখানে কি ঘটছে একটি সুইচ সঙ্গে প্রথম ক্ষেত্রে যে ম্যাচ মূলত মানে, হেই কম্পিউটার, নীচে সব কোড এক্সিকিউট. আর যদি আপনি তাদেরকে বলেন না বিরতি, বা বিরতি না বলে, বা বিরতি না বলে, কম্পিউটার পেশা যাচ্ছে ঐ লাইনের সব মাধ্যমে এবং যতক্ষণ না তাদের সব চালানো এটা যে কোঁকড়া বক্রবন্ধনী পায়. তাই ব্রেক, হয় প্রকৃতপক্ষে, প্রয়োজনীয়. কিন্তু একটি takeaway এখানে, যখন হয় সন্দেহ থাকলে, কিছু চেষ্টা করুন. হয়তো আপনার কোড প্রথম রক্ষা, অথবা এটি একটি অতিরিক্ত ফাইলের মধ্যে সংরক্ষণ যদি আপনার সম্পর্কে সত্যিই উদ্বিগ্ন হন আপ সেনাবিভাগে মেসে খাবার এবং সুস্থ থাকার কাজ যে আপনি জানেন করার অনুমতি নেই. কিন্তু কিছু করার চেষ্টা. আর ভয় পাবেন না, সম্ভবত, কম্পিউটার কি হতে পারে তা নিয়ে, অথবা আপনি কিছু বিরতি হতে পারে. আপনি সবসময় ফিরে আসতে পারবেন কিছু আগের সংস্করণে. সুতরাং আসুন খুঁজছেন দ্বারা শেষ দিন কোড নকশা এ. আমরা লিখতে এখন এই ক্ষমতা আছে শর্ত, এবং লেখ, loops, এবং ভেরিয়েবল, এবং কল ফাংশন. সুতরাং, উন্মুক্তভাবে, আমরা ধরনের এ ফিরে এসেছি যেখানে আমরা ভূত সঙ্গে এক সপ্তাহ আগে ছিল, একটি কম বাধ্যকারী পাঠগত যদ্যপি স্ক্র্যাচ চেয়ে পরিবেশ পারবেন. কিন্তু লক্ষ্য করা আমরা কিভাবে দ্রুত অর্জিত করেছি যে শব্দভান্ডার, এমনকি যদি এটা মধ্যে ডুবা একটু সময় নিতে যাচ্ছে, যাতে আমরা এখন এই শব্দভান্ডার ব্যবহার করতে পারেন আরও আকর্ষণীয় প্রোগ্রাম লিখতে. আর এর একটি শিশুর পদক্ষেপ গ্রহণ করা যে দিকে নিম্নরূপ. আমাকে এগিয়ে যান এবং এখানে একটি নতুন ফাইল তৈরি করুন. আমি এই ফোন করতে যাচ্ছি prototype.c, এবং পরিচয় করিয়ে প্রথমবার জন্য, ক্ষমতা আপনার নিজস্ব ফাংশন করতে. তোমাদের মধ্যে কেউ কেউ থাকতে পারে ভূত সঙ্গে এই কাজ, যেখানে আপনি তৈরি করতে পারেন আপনার ভূত নিজস্ব ব্লক, এবং তারপর তাদের জায়গা টেনে যেখানেই আপনি সি চাই আর সবচেয়ে প্রোগ্রামিং ভাষায়, আপনি ঠিক করতে পারবেন that-- আপনার নিজস্ব ফাংশন করতে, যদি তারা ইতিমধ্যে অস্তিত্ব নেই. সুতরাং, উদাহরণস্বরূপ, আমাকে এগিয়ে যান এবং, CS50.h অন্তর্ভুক্ত, এবং অন্তর্ভুক্ত প্রমিত io.h, int প্রধান অকার্যকর. এবং এখন আমরা একটি আছে যেতে প্রস্তুত স্থানধারক. আমি মুদ্রণ জিনিষ রাখতে আজ মানুষ এর নাম মত. আর যে like-- মতানুযায়ী সুন্দর হবে না যদি সেখানে একটি ফাংশন মুদ্রণ নাম বলা ছিল? আমি printf ব্যবহার করতে হবে না. আমি স্মরণ করতে হবে না সব বিন্যাস কোড. কেন না আমি, বা কেন না, আমার সামনে কেউ করেনি একটি ফাংশন বলা মুদ্রণ তৈরি নাম, যে কিছু নাম দেওয়া, কেবল এটা কপি করে প্রিন্ট আউট? অন্য কথায়, যদি আমি বলি, আরে, কম্পিউটার, সম্পর্কে একটি স্ট্রিং দিতে যেমন জন্য ব্যবহারকারীকে জিজ্ঞাসা করে, CS50 এর পেতে স্ট্রিং ফাংশন মাধ্যমে. আরে, কম্পিউটার, যে স্ট্রিং করা বাম দিকের মধ্যে পরিবর্তনশীল, এবং এটি গুলি কল. এবং তারপর, হেই কম্পিউটার, এগিয়ে যান এবং প্রিন্ট করা হবে ব্যক্তির নাম, কাজ. এখন, এটা চমৎকার হবে, কারণ এই প্রোগ্রাম, যথাযোগ্যভাবে নামে, আমাকে বলে কি এটা অনুমিত এর ঐ ফাংশন এর নাম দ্বারা. আমাকে যেতে এবং প্রোটোটাইপ করা, লিখুন. এবং, দুর্ভাগ্যবশত, এই উড়ে আসা যাচ্ছে না. Prototype.c, লাইন 7, চরিত্র 5, ত্রুটি, অন্তর্নিহিত ঘোষণা ফাংশন মুদ্রণ নামের C99, C99 অবৈধ সি এর একটি সংস্করণ অর্থ যে 1999 সালে বেরিয়ে আসেন. এখানেই শেষ. তাই আমি জানি না কি এই সব এখনো মানে. কিন্তু আমি লাল ত্রুটি চিহ্নিত করতে পারি. যে বেশ সুস্পষ্ট. আর এটা মনে হয় যে এখানে সবুজ চরিত্র, ইস্যু মুদ্রণ নাম দিয়ে খোলা বন্ধ গুলি, বন্ধ paren, সেমিকোলন. কিন্তু এর অন্তর্নিহিত ঘোষণা ফাংশন আমরা সংক্ষিপ্তভাবে আগে হয় নি. ' এর মানে হল, কেবল, যে ঝনঝন জানে না আমি কি বলতে চাচ্ছি. আমি একটি শব্দভান্ডার শব্দ ব্যবহার করেছি এটা যে কখনো বা দেখা করার আগে আপনাকে শেখানো হয়েছে. আর তাই আমি এটা শেখাতে হবে এই ফাংশন মানে কি. তাই আমি এগিয়ে যান এবং যে কাজ করতে যাচ্ছি. আমি এগিয়ে যান এবং বাস্তবায়ন করতে যাচ্ছি আমার নিজের ফাংশন বলা প্রিন্ট নাম. এবং আমি বলতে নিম্নরূপ যাচ্ছি, যে এটা এই printf, হ্যালো, শতাংশ করে গুলি, ব্যাকস্ল্যাশ এন, নাম, সেমিকোলন. তাই আমি ঠিক কি আমল করেছ? সুতরাং দেখা যাচ্ছে, এর আপনার নিজস্ব ফাংশন বাস্তবায়ন, আমরা ধরনের কিছু ধার প্রধান হিসেবে একই কাঠামো আমরা এইমাত্র যে গ্রহণ মঞ্জুর, এবং আমি জানি শুধু কপি এবং প্রায় কাছাকাছি কি পেস্ট আমি অতীতে লেখা হয়েছে করেছি. কিন্তু প্যাটার্ন এখানে লক্ষ্য. Int, প্রধান, শূন্যতা, আমরা সরাইয়া জ্বালাতন করা হবে দীর্ঘ আগে যে আসলে মানে. কিন্তু আজকের জন্য, শুধু সাদৃশ্য লক্ষ্য. অকার্যকর, মুদ্রণ নাম, স্ট্রিং নাম, তাই আছে একটি রক্তবর্ণ কীওয়ার্ডটি যা আমরা শুরু করতে যাচ্ছেন একটি রিটার্ন টাইপ কলিং, এর নাম ফাংশন, এবং তারপর ইনপুট. সুতরাং, আসলে, আমরা চুয়ান পারেন গত সপ্তাহে মত এই ধরনের যেমন, এই নাম অথবা কোড আমরা করছি অ্যালগরিদম লিখতে যাচ্ছে অ্যালগরিদম অন্তর্নিহিত আমরা কোড লিখতে যাচ্ছেন. এই তার ইনপুট. এই তার আউটপুট. এই ফাংশনটি, মুদ্রণ নাম, হয় নাম বলা একটি স্ট্রিং নিতে পরিকল্পিত, বা যাই হোক না কেন, ইনপুট হিসাবে, এবং তারপর অকার্যকর. এটা কিছু ফেরত না, মত স্ট্রিং পেতে বা কোন int পায়. সুতরাং এটা আমাকে কিছু ফিরে হাতে যাচ্ছে. এটা শুধু একটা আছে যাচ্ছে পার্শ্ব প্রতিক্রিয়া, তাই কথা বলতে, একজন ব্যক্তির নাম মুদ্রণ. তাই লক্ষ্য করা, লাইন 7, আমি মুদ্রণ নাম কল করতে পারেন. লাইন 10, আমি নির্ধারণ করতে পারবেন অথবা মুদ্রণ নাম বাস্তবায়ন. কিন্তু দুর্ভাগ্যবশত, যে না যথেষ্ট. আমাকে এগিয়ে যান এবং সংরক্ষণ পরে এই কম্পাইল. দাঁড়ান, এখন, আমি এটা করেছি খারাপ, এটা মনে হবে. সুতরাং অন্তর্নিহিত ঘোষণা ফাংশন মুদ্রণ নাম অবৈধ. এবং, আবার, সেখানে আরো ভুল. কিন্তু আমি আগে সতর্ক করে, য়েমন আপনার সাথে উদ্বেল পেতে হলে, অথবা একটু দু: খিত অনেক দেখতে ত্রুটি, প্রথমে শুধুমাত্র ফোকাস শুধু প্রাথমিকভাবে, কারণ এটা হতে পারে একটি ক্যাসকেডিং প্রভাব ফেলেছে. তাই সি, বা ঝনঝন আরো নির্দিষ্টভাবে, এখনও মুদ্রণ নাম স্বীকার করে না. এবং যে কারণ ঝনঝন করে, নকশা দ্বারা, ধরনের বোবা. এটা শুধু তুমি কি এটা করতে বলবেন. এবং এটা শুধুমাত্র অনুক্রমে তাই আছে যা আপনি কি এটা বলতে. তাই আমি লাইন চার মূল সংজ্ঞায়িত করেছেন, মত আমরা বেশ প্রায়ই কাজ করছি. আমি লাইন 10 মুদ্রণ নাম সংজ্ঞায়িত করেছি. কিন্তু আমি ব্যবহার করার চেষ্টা করছি লাইন সাত মুদ্রণ নাম. এটা খুব শীঘ্রই, এখনো বিদ্যমান নেই এর. তাই আমি চালাক হতে পারে, এবং মত হতে, ঠিক আছে, তাই আসুন শুধু বরাবর খেলা যাক, এবং মুদ্রণ নাম উপরে উঠানো এখানে, এবং পুনরায় কম্পাইল. হে ভগবান. এটা কাজ করেছে. এটা ঐটার মতই সহজ ছিল. কিন্তু যুক্তি ঠিক নয়. আপনি ঝনঝন শিক্ষা দিতে হবে তা প্রথম ফাংশন নির্ধারণ করে হয়. তারপর আপনি এটি ব্যবহার করতে পারেন. কিন্তু অকপটে, এই মতানুযায়ী একটি পিচ্ছিল ঢাল মত. তাই প্রত্যেক সময় আমি চালাতে একটি সমস্যার মধ্যে, আমি শুধু আছি হাইলাইট এবং কোড কপি যাচ্ছে আমি লিখেছি, এটা কেটে এখানে তা পেস্ট করুন. এবং নিশ্চয় আমরা পারা কিছু পরিস্থিতিতে মাথা খাটিয়ে কিছু যেখানে এক ফাংশন প্রতাপ আরেকটি কল দিতে হবে. আর আপনি শুধু যে করা যাবে না প্রত্যেক অন্যান্য উপরের ফাংশন. সুতরাং সেখানে এর সক্রিয় আউট একটি ভাল সমাধান. আমরা এই হতে চলে যাবে. এবং অকপটে, এটা সাধারণত সুন্দর, এবং সুবিধাজনক, এবং ভাল ডিজাইন প্রধান প্রথম রাখা, কারণ, আবার, ঠিক মত যখন সবুজ পতাকা ক্লিক প্রধান, যে ফাংশন যে ডিফল্ট দ্বারা মৃত্যুদন্ড কার্যকর করা হয়. তাই আপনি যদি পাশাপাশি রাখা পারে এটা ফাইল উপরের যাতে আপনি বা কোনো যখন অন্যান্য মানুষের ফাইলের দিকে দেখায় আপনি জানেন কি ঘটছে শুধু প্রধান প্রথম পড়া. সুতরাং দেখা যাচ্ছে, আমরা ঝনঝন বলতে পারেন সক্রিয়ভাবে, হেই, ঝনঝন শব্দ, লাইন চার, আমি বাস্তবায়ন করতে অঙ্গীকার একটি ফাংশন বলা প্রিন্ট নাম যে একটি স্ট্রিং বলা নাম নেয় ইনপুট, এবং আয় কিছুই, অকার্যকর হিসেবে. এবং আমি প্রায় পাবেন এটা পরে বাস্তবায়ন. এখানে মুখ্য আসে. প্রধান এখন লাইনে 9 ব্যবহার করতে পারেন প্রিন্ট নাম কারণ ঝনঝন যে বিশ্বাসই, অবশেষে, এটা সংজ্ঞা সম্মুখীন হবে প্রিন্ট নাম বাস্তবায়ন. তাই আমার ফাইল সংরক্ষণ পর দিন আমাকে এগিয়ে যান এবং প্রোটোটাইপ করা, এই সময় ভাল দেখায়. ডট স্ল্যাশ, প্রোটোটাইপ, আমাকে এগিয়ে যান এবং একটি নাম টাইপ করুন. ডেভিড, হ্যালো ডেভিড, Zamila, হ্যালো Zamila, এবং প্রকৃতপক্ষে, এখন এটি কাজ করে. সুতরাং উপাদান এখানে যে আমরা করেছি একটি কাস্টম ফাংশন, একটি কাস্টম মত ভূত ব্লক আমরা এটা আহ্বান করছি. কিন্তু শয়তান অসদৃশ যেখানে আপনি যা করতে পারেন শুধু এটি তৈরি এবং এটি ব্যবহার করা শুরু করুন, এখন আমরা একটি থাকতে হবে একটু বেশি গোঁড়া, এবং আসলে ঝনঝন প্রশিক্ষণ ব্যবহার করার জন্য, অথবা এটা প্রত্যাশা করতে পারে. এখন, একটি সরাইয়া, কেন এই সব সময় আছে আমরা শুধু অন্ধভাবে সহ বিশ্বাসের উপর হয়েছে CS50.h, এবং মান io.h সহ? আচ্ছা, এটি সক্রিয় আউট, কয়েক অন্যান্য বিষয়ের মধ্যে, সব যে ঐ ডট জ ফাইল, যা ঘটতে ফাইল করা. তারা তাই কথা বলতে হেডার ফাইল করছি. তারা এখনও সি তে লেখা করছি কিন্তু তারা ফাইল একটি ভিন্ন ধরনের করছি. এখন জন্য, আপনি প্রায় কাছাকাছি অনুমান করতে পারেন সব CS50.h, ভিতরে হয় যে এই মত কিছু এক liners, নয় ফাংশন বলা প্রিন্ট নাম, কিন্তু স্ট্রিং পান, পান ফ্লোট, এবং কয়েক অন্যদের. এবং সেখানে অনুরূপ এগুলির নমুনা হয়, এক liners, মান io.h এর ভিতরে printf,, যা এখন জন্য আমার নিজের নাম মুদ্রণ করুন ফাংশন. তাই অন্য কথায়, এই পুরো সময় আমরা করেছি শুধু অন্ধভাবে অনুলিপি করা ও পেস্ট এই অন্তর্ভুক্ত অন্তর্ভুক্ত যে, কি হতে যাচ্ছে? ঐ দ্বার শুধু ধরনের হয় কি ফাংশান হিসেবে ঝনঝন শব্দ হয়, প্রকৃতপক্ষে, বাস্তবায়ন, শুধু বিভিন্ন ফাইল অন্যত্র অন্যত্র সিস্টেমে. সুতরাং আমরা মুদ্রণ নাম বাস্তবায়ন করেছি. এটা এই পার্শ্ব প্রতিক্রিয়া আছে মুদ্রণ পর্দায় কিছু. কিন্তু এটা আসলে না আমাকে কিছু ফিরে হাতে. কিভাবে আমরা সম্পর্কে যান একটি প্রোগ্রাম বাস্তবায়ন করে আমাকে কিছু ফিরে হাতে কী? আচ্ছা, আসুন এই চেষ্টা. আমাকে এগিয়ে যান এবং বাস্তবায়ন শুরু করা যাক একটি ফাইল নামক return.c তাই আমরা কিভাবে কিছু প্রদর্শন করতে পারেন মত স্ট্রিং পান, বা int- পেতে, আসলে ফিরে আসছে ফিরে ব্যবহারকারীকে কিছু. এর এগিয়ে যান এবং int প্রধান অকার্যকর সংজ্ঞায়িত করি. এবং, আবার, ভবিষ্যতে, আমরা করব ব্যাখ্যা কি যে int এবং যে শূন্যতা আসলে কী করছেন. কিন্তু আজকের জন্য, আমরা করব এটি গ্রহণ করা জন্য দেওয়া. আমি এগিয়ে এবং printf যেতে যাচ্ছি একটি ভাল ব্যবহারকারীর অভিজ্ঞতা জন্য, x. এবং তারপর আমি জন্য অপেক্ষা করতে যাচ্ছি ব্যবহারকারী আমাকে পেতে int- সঙ্গে এক্স দিতে. এবং তারপর আমি এগিয়ে যেতে চলেছি এবং বর্গক্ষেত্র x এর প্রিন্ট আউট. সুতরাং যখন আপনি শুধুমাত্র একটি আছে কীবোর্ড, সাধারণভাবে মানুষ সামান্য গাজর ব্যবহার কীবোর্ড উপর প্রতীক ক্ষমতায় প্রতিনিধিত্ব করতে এর, বা এর প্রবক্তা. তাই বর্গ x আমি উপস্থিত. এবং এখন আমি এই কাজ করতে যাচ্ছি. আমি শুধু do-- পারে এক্স কি ছক? এক্স স্কোয়ারড এক্স বার x. আর আমরা করেছিলাম এই কিছু আগে সময় ইতিমধ্যে আজ. এই মত মনে হয় না যে সব অনেক উন্নতি. তুমি কি জান? এর যে ধারণা কিছু লিভারেজ যাক বিমূর্ততা শেষ সময় থেকে. না এটা যদি চমৎকার হবে সেখানে একটি ফাংশন বলা হয় বর্গাকার যে ঠিক তাই করছে? এটা এখনও, শেষে দিন, একই গণিত আছে. কিন্তু আসুন বিমূর্ত দূরে গ্রহণের ধারণা এক নম্বর দ্বারা গুন অন্য, এবং শুধু এটি একটি নাম দিন, মত এই মান বর্গক্ষেত্র. আর, অন্য কথায়, এ সি, এর একটি ফাংশন তৈরি করা যাক বলা বর্গাকার যে ঠিক তাই করছে. এটা বলা বর্গাকার হতে যাচ্ছে. এটা কোন int নিতে যাচ্ছে. এবং আমরা করব ঠিক হবে এন কল, ডিফল্ট দ্বারা. কিন্তু আমরা এটা আমরা চাই কিছু কল করতে পারে. আর সব যাচ্ছে যে না, আক্ষরিক, প্রত্যাবর্তন এন বার ফল. কিন্তু তার কারণ হল, কিছু ফিরে, যা রক্তবর্ণ আমরা করেছি শব্দ হয় আগে কখনো দেখা যায়, আমি, লাইন 11, না শুধু শূন্যতা বলতে পারি এই সময়. অকার্যকর, উদাহরণে আমরা শুধু দেখেছি মুদ্রণ নামের পরিবর্তে, মানে, কিছু কর. কিন্তু আমাকে কিছু ফিরে হাতে না. এই ক্ষেত্রে, আমি চাই না ফিরে যেতে এন বার, বা যাই হোক না কেন যে, যে সংখ্যা. তাই আমি বলতে পারব না, হেই, কম্পিউটার, আমি অকার্যকর কিছুই আসতে. এটা ফেরত দিতে প্রকৃতি দ্বারা, কোন int যাচ্ছে. তাই যে সব যে এখানে উপর যাচ্ছে. ইনপুট বর্গক্ষেত্র থেকে int হতে যাচ্ছে. এবং যাতে আমরা এটি ব্যবহার করতে পারেন, এটা করা হয়েছে একটি নাম আছে, এন এটা আউটপুট যাচ্ছে কোন int যে একটি নাম দরকার নেই. আমরা এটা মূল চলে যাবে, অথবা যে কেহ নয় আমাকে ব্যবহার করে এই নির্দেশটি যদি আমরা মনে রাখতে নিজস্ব পরিবর্তনশীল সঙ্গে চান. এবং, আবার, শুধুমাত্র নতুন এখানে শব্দ ফিরে এসো. আর আমি শুধু কিছু গণিত করছি. তাহলে আমি সত্যিই অপ্রয়োজনীয় হতে চেয়েছিলেন, আমি বলতে পারি কোন int পণ্য পায় এন বার. এবং তারপর আমি ফিরে পণ্য বলতে পারে. কিন্তু, আবার, আমার বিন্দু আগের এই মাত্র না হচ্ছে ভাল design-- মত, কেন একটি নাম, পরিচয় করিয়ে একটি প্রতীক, পণ্যের মত, শুধু অবিলম্বে তা ফেরত দেওয়ার জন্য? এটা একটা সামান্য ক্লিনার এর, একটু কঠিন, তাই কথা বলার জন্য অবশ্য বিনিময়ে এন বার বলে এন, পুরাপুরি এই লাইন পরিত্রাণ পেতে. আর এটা শুধু কম পড়তে কোড, ভুলের জন্য কম সুযোগ. আর এই যদি দেখতে দিন আসলে এখন কাজ করে. এখন, আমি যেতে চলেছি এগিয়ে এবং রিটার্ন করতে. উহ ওহ, ফাংশন এর অন্তর্নিহিত ঘোষণা. আমি এই ভুল করার আগে কোন বড় চুক্তি তৈরি. আমাকে শুধু টাইপ করা যাক, বা উজ্জ্বল কপি, সঠিক একই ফাংশন প্রোটোটাইপ, বা স্বাক্ষর, ফাংশন আপ এখানে এর. অথবা আমি পুরো ফাংশন সরাতে পারে. কিন্তু যে একটু অলস না. সুতরাং আমরা যে কাজ করতে হবে না. এখন, আমার প্রত্যাবর্তন করা যাক আবার, স্ল্যাশ রিটার্ন বিন্দু. এক্স 2. এক্স বর্গ 4. এক্স 3. এক্স বর্গ 9. এবং ফাংশন মনে হয় এখন কাজ করতে হবে. তাই কি পার্থক্য এখানে আছে? আমি একটি ফাংশন যে বর্গক্ষেত্র বলা আছে, এই ক্ষেত্রে, যা আমি একটি ইনপুট রাখা মধ্যে. এরপর আমি একজন আউটপুট ফিরে পেতে. এবং এখনো, পূর্বে, যদি আমি অন্য একটি উদাহরণ খুলুন আগে থেকে, যা prototype.c বলা ছিল, আমি মুদ্রণ নাম, ছিল যা অকার্যকর ফিরে, তাই কথা বলতে, অথবা এটা কিছুই ফিরে এল, আর কেবল একটি পার্শ্ব প্রতিক্রিয়া ছিল. সুতরাং এখানে কি ঘটছে? ওয়েল, ফাংশন বিবেচনা শুধু একটা মুহূর্ত জন্য স্ট্রিং পেতে. আমরা ফাংশন ব্যবহার করছি নিম্নোক্ত উপায়ে স্ট্রিং পেতে. আমরা একটি ফাংশন পেতে ছিল করেছি স্ট্রিং, মত, CS50.h, অন্তর্ভুক্ত প্রমিত io.h, int, প্রধান, শূন্যতা অন্তর্ভুক্ত. এবং তারপর প্রত্যেক সময় আমি করেছি দূর পর্যন্ত পেতে স্ট্রিং বলা, আমি করেছি কিছু মত, স্ট্রিং গুলি স্ট্রিং পেতে পায় কারণ পেতে স্ট্রিং এর এই get.c-- পেতে স্ট্রিং ডাকুক নিজেই একটি স্ট্রিং ফেরৎ যে আমি তারপর পারেন ব্যবহার, এবং বলে, কিরে কোন কমা, শতাংশ গুলি, ব্যাকস্ল্যাশ এন, গুলি. সুতরাং এই একই উদাহরণ, সত্যিই, আমরা আগে ছিল যে. তাই স্ট্রিং একটি মান পেতে. কিন্তু একটি মুহূর্ত আগে, মুদ্রণ স্ট্রিং একটি ভ্যালু রিটার্ন করে না. এটা শুধু একটি পার্শ্ব প্রতিক্রিয়া রয়েছে. তাই এই একটি মৌলিক পার্থক্য নেই. আমরা বিভিন্ন দেখেছি এখন কার্যাবলী ধরনের, যা কিছু ফিরে এসেছি মূল্যবোধ, যা কিছু করবেন না. তাই হয়তো এটা স্ট্রিং, বা কোন int, বা ভাসা না. অথবা হয়ত এটা শুধু অকার্যকর. আর পার্থক্য নেই যে এই ফাংশন যে তথ্য পেতে এবং একটি মান আসলে কিছু টেবিলে ফিরিয়ে আনার, তাই কথা বলতে. সুতরাং আসুন এগিয়ে যান এবং এক চূড়ান্ত সেট তাকান যে একটা ধারনা দেয়, এখন, উদাহরণ কয়েক কিভাবে আমরা যেতে পারি, প্রকৃতপক্ষে, বিমূর্ত ভাল, এবং ভাল, এবং ভাল, বা তার বেশি, এবং আরো, এবং আরো, অনুক্রমে লিখতে, পরিণামে, ভাল কোড. এর এগিয়ে যান, এবং আত্মা মধ্যে দিন ভূত, নিম্নলিখিত কাজগুলো. আমাকে এগিয়ে যান এবং অন্তর্ভুক্ত করা যাক CS50.h, এবং প্রমিত io.h. আমাকে এগিয়ে যান এবং দেত্তয়া নিজেকে কোন int, প্রধান, শূন্যতা. এবং আমাকে এগিয়ে যান, এই cough.c ডাকুক. এবং আমাকে এগিয়ে এবং মাত্র যাই ভূত, কাশি / N প্রিন্ট আউট. আর আমি এই তিন বার করতে চান. তাই আমি আছি, অবশ্যই, শুধু যাচ্ছে কপি এবং তিনবার পেস্ট. আমি এখন করতে যাচ্ছি ডট স্ল্যাশ কাশি কাশি. এর নিজেকে একটু বেশি রুম দিই এখানে লিখুন, কাশি, কফ, কাশি. সেখানে এর স্পষ্টত, ইতিমধ্যে একটি উন্নতির জন্য সুযোগ. আমি কপি এবং আটকানো করেছি আজকে কয়েকটি বার. কিন্তু যে শুধুমাত্র ছিল তাই আমি না যেমন অনেক অক্ষর টাইপ করতে হবে. আমি এখনও বদল কোড যারা লাইন আছে. এই তিন লাইন, অভিন্ন যা অলস মতানুযায়ী এবং বটে, এবং সম্ভবত সঠিক পন্থা নয়. কি উপাদান দিয়ে তাই আমরা এই কোড উন্নত করতে পারে? আমরা কপি এবং পেস্ট কোড করতে হবে না. এবং প্রকৃতপক্ষে, যে কোনো সময় আপনি মনে করেন নিজেকে কপি এবং পেস্ট, এবং এমনকি কোড পরিবর্তন না, মতভেদ আছে একটি ভাল উপায় আছে. এবং প্রকৃতপক্ষে, আছে. আমাকে এগিয়ে যান এবং লুপ জন্য একটি, যদিও সিনট্যাক্স না করি স্বাভাবিকভাবেই এখনও আসে. এই তিনবার না, কেবল নিম্নলিখিত করছেন দ্বারা এবং আমি অনুশীলন থেকে এই জানি ঘটতে. কিন্তু আমরা এখন উদাহরণ একটি সংখ্যা আছে. এবং আপনি অনলাইন দেখতে পাবেন এখনও আরও রেফারেন্স. এই লাইন 6 সিনট্যাক্স যে অনেক ভূত যে পুনরাবৃত্তি মত ব্লক, নিম্নলিখিত তিনবার পুনরাবৃত্তি. এটা এখন জন্য একটু ঐন্দ্রজালিক এর. কিন্তু এই আরো পেতে হবে, এবং আরো পরিচিত. এবং এটি পুনরাবৃত্তি যাচ্ছে লাইন আট তিনবার, যাতে করে আমি পুনরায় কম্পাইল কাশি, ডট স্ল্যাশ কাশি, কাশি, কফ, কাশি. এটা এখনও একই ভাবে কাজ করে. সুতরাং যে সব জরিমানা এবং ভাল. কিন্তু যে খুব আনমনা নয়. এটা পুরোপুরি সঠিক. কিন্তু এটা মত মতানুযায়ী একটি সুযোগ হতে পারে, জগতে যেমন ভূত, স্টার্ট ধরনের যাতে কিছু শব্দার্থবিদ্যা এখানে যোগ করার জন্য আমি শুধু লুপ জন্য কিছু না, এবং একটি ফাংশন যে বলছেন কাশি বা কফ নেই. তুমি কি জান? আমাকে একটি হতে চেষ্টা করি যে চেয়ে সামান্য শীতল, এবং আসলে একটি ফাংশন লিখতে যে কিছু পার্শ্ব প্রতিক্রিয়া আছে, এটা কাশি কল. এবং এটা কোনো ইনপুট নেয় এবং আউটপুট হিসাবে কোন মান. কিন্তু আপনি কি এটা জানেন না? এটা আপাততঃ printf, না, মূল্যউদ্ধৃতি উদ্ধতি, কাশি. আর এখন এখানে, আমি যাচ্ছি এগিয়ে এবং int জন্য যেতে, আমি শূন্য আমি প্লাস প্লাস পায়, আমি কম 3. আমি printf না হলে যা যাচ্ছি তর্কসাপেক্ষ একটি নিম্ন স্তরের বাস্তবায়ন বিস্তারিত. আমি পরোয়া করি না কিভাবে কাশি. আমি শুধু কাশি ফাংশন ব্যবহার করতে চান. আর আমি শুধু কাশি কল যাচ্ছি. এখন, বৈপরীত্য লক্ষ্য. যখন আপনি একটি ফাংশন কল, যদি আপনি এরূপ না করেন এটা ইনপুট, সম্পূর্ণই সূক্ষ্ম দিতে চান. শুধু খোলা paren, বন্ধ না বন্ধ, এবং আপনার কাজ সম্পন্ন হয়. যখন আপনি একটি ফাংশন নির্ধারণ, বা একটি ফাংশন এর প্রোটোটাইপ, ঘোষণা যদি আপনি আগাম জানতে এটা না কোনো আর্গুমেন্ট গ্রহণ করা যাচ্ছে, সেখানে ঐ বন্ধনীর মধ্যে অকার্যকর বলে. এবং যে নির্দিষ্ট করে তোলে যে আপনি ঘটনাক্রমে এটা অপব্যবহার করা হবে না. আমাকে এগিয়ে যান এবং কাশি করা যাক. এবং, অবশ্যই, আমি ভুল করেছি. শালা, যে আছে অন্তর্নিহিত ঘোষণা. কিন্তু যে সূক্ষ্ম. এটি একটি সহজ ফিক্স এর. আমি শুধু প্রোটোটাইপ উচ্চতর পর্যন্ত প্রয়োজন আমার ফাইল তুলনায় আমি আসলে এটা ব্যবহার করছি. তাই এখন আমার কাশি আবার, চমৎকার করা যাক. এখন এটা কাজ করছে. কাশি, কাশি, কফ, কাশি করুন. তাই আপনার মনে হতে পারে যে, আমরা সত্যিই আছেন মাত্র এই সমস্যা প্রকৌশল. এবং প্রকৃতপক্ষে, আমরা হয়. এই একটি ভাল নয় একটি প্রোগ্রাম এর প্রার্থী জন্য মুহূর্তে refactoring, এবং করছেন কি হায়ারারকিকাল পচানি ডেকে যেখানে আপনাকে কিছু কোড নিতে, এবং তারপর আপনি ধরনের ফ্যাক্টর কিছু আউট, তাই তাদের আরো শব্দার্থবিদ্যা আরোপ করা, এবং শেষ পর্যন্ত দীর্ঘমেয়াদী পুনঃব্যবহার. কিন্তু এটা দিকে একটি বিল্ডিং ব্লক আরো পরিশীলিত প্রোগ্রাম যে আমরা শুরু হবে দীর্ঘ আগে যে লেখা আমাদের শব্দভান্ডার করতে সক্ষম হবেন যা দিয়ে ভাল কোড লিখতে. এবং প্রকৃতপক্ষে, আসুন যদি আমরা দেখি এই বিষয়ে আরও সাধারণের বোধগম্য না পারেন. এটা একটা সামান্য খোঁড়া মনে হয় যে আমি, প্রধান, লুপ জন্য এই অভিশাপ সম্পর্কে চিন্তা করতে হবে, এবং আবার এবং আবার কাশি কলিং. কেন আমি শুধু কাশি বলতে পারে না, তিনবার কাশি দয়া করে? অন্য কথায়, আমি কেন পারি না শুধু কাশি এবং এই কাজ করতে ইনপুট দিতে? আমি শুধু কেন বলতে পারবে না, এ প্রধান কাশি তিনবার. আর এখন, এই ধরনের ঐন্দ্রজালিক হয়. এটা এখানে খুব পুনরাবৃত্ত হবে. এবং এটি একটি শিশুর পদক্ষেপ, প্রকৃতপক্ষে. কিন্তু শুধু ক্ষমতা বলে লাইন আট, তিনবার কাশি, এটা ঠিক তাই অনেক বেশি পাঠযোগ্য নয়. এবং, প্লাস, আমি জানতে চাই না বা গ্রাহ্য কিভাবে কাশি বাস্তবায়িত হয়. এবং প্রকৃতপক্ষে, পরে মেয়াদ এবং প্রকল্পের জন্য চূড়ান্ত, আপনার সাথে একটি প্রকল্প মোকাবেলা করে একটি সহপাঠী বা দুই সহপাঠী, আপনি বুঝতে পারবেন যে আপনি চলুন আছে, বা, কাজ ভাগ করতে চান. এবং আপনি সিদ্ধান্ত নিতে চান চলুন আগাম, যারা কি করতে যাচ্ছে, এবং যা টুকরা টুকরা? এবং এটি চমৎকার হবে যদি আপনি, উদাহরণস্বরূপ, মূল লেখার চার্জ সম্পন্ন নিতে. আর তোমার রুমমেটের, বা আপনার অংশীদার আরো সাধারণভাবে, কাশি বাস্তবায়নে যত্ন নেয়. আর এই বিভাজন, এই বিমূর্ততা দেয়াল, অথবা যদি বিমূর্ততা স্তর আপনি হবে, সুপার শক্তিশালী বিশেষত বড় কারণ, আরো জটিল প্রোগ্রাম এবং সিস্টেম, এটা একাধিক ব্যক্তি নির্মাণ করতে পারবেন জিনিস একসঙ্গে, এবং পরিণামে একসঙ্গে তাদের কাজ সেলাই এই ভাবে. কিন্তু, অবশ্যই, আমরা এখন কাশি ঠিক করা প্রয়োজন. আমরা কাশি বলা প্রয়োজন যে, হেই, তুমি কি জানো? আপনি একটি নিতে প্রয়োজন চলুন ইনপুট যাতে বিফল না, কিন্তু কোন int এবং এখন. এর এগিয়ে যান এবং পুরা যাক int-কাশি. আমি শূন্য পায়. আমি কতবার চেয়ে কম হয়. আমি সামনে তিন বলেন. কিন্তু যে আমি কি চাই না. আমি সাধারণীকরণ করা কাশি চান পুনরাবৃত্তিও কোন সংখ্যা সমর্থন. তাই, প্রকৃতপক্ষে, এটি এন যে আমি চাই, যাই হোক না কেন ব্যবহারকারী আমাকে বলে. এখন, আমি এগিয়ে যান এবং বলে মুদ্রণ কাশি পারেন. এবং কোন ব্যাপার কি সংখ্যা ব্যবহারকারী পাস, আমি যে অনেক বার পুনরুক্তি হবে. দিনের শেষে, প্রোগ্রাম অভিন্ন. কিন্তু এই সমস্ত জিনিস লক্ষ্য এমনকি অন্য ফাইল হতে পারে. আমি জানি না মুহূর্ত কিভাবে printf, বাস্তবায়িত হয়. আমি এই মুহূর্তে জানি না কিভাবে পেতে স্ট্রিং, বা কোন int পেতে, বা ভাসা পেতে বাস্তবায়িত হয়. আর আমি চাই না আমার পর্দায় তাদের দেখতে. হিসাবে এটা, আমি ফোকাস করতে শুরু করেছি আমার প্রোগ্রাম, না যারা ফাংশন. তাই প্রকৃতপক্ষে, যত তাড়াতাড়ি আপনি যেমন এই ধরণের কোডগুলোকে আউট ফ্যাক্টরিং শুরু, আমরা এমনকি কাশি সরাতে পারে একটি পৃথক ফাইলে? অন্য কেউ এটা বাস্তবায়ন হতে পারে. এবং আপনি এবং আপনার প্রোগ্রাম পরিণত খুব সুন্দর, এবং খুব পাঠযোগ্য, তর্কসাপেক্ষ, সত্যিই চার লাইন প্রোগ্রাম ঠিক আছে. তাই আসুন এখন এগিয়ে যান এবং আরও একটি পরিবর্তন করতে. লক্ষ করুন যে, আমার প্রোটোটাইপ টপ আপ পরিবর্তন করতে হয়েছে. তাই আমাকে যাতে ঠিক করি আমি চিৎকার করতে না. কাশি করুন, আমাকে কাশি একবার চালানো যাক আরো, এখনও একই জিনিস করছেন. কিন্তু এখন, আমরা একটি আছে এক চূড়ান্ত সংস্করণ জন্য উপাদান. তুমি কি জান? আমি না শুধু কাশি, অগত্যা চান. আমি আরো কিছু সাধারণ করাতে চাই. তাই আপনি কি জানেন? আমি এটা করতে চাই. আমি আছে, অনেক ভূত মত চান , একজন বলে ব্লক, কিন্তু ঠিক না বলতে কিছু সময়ের কিছু সংখ্যা. আমি এটি একটি খুব নির্দিষ্ট স্ট্রিং বলতে চাই. এবং, অতএব, আমি না চাই শুধু কাশি বলে. আমি এটা বলতে চাই যাই হোক না কেন স্ট্রিং পাস হয়. তাই লক্ষ্য করা, আমি সাধারণীকরণ করেছি এই তাই এখন যে বলে সুনাম মত মতানুযায়ী এই জন্য, ভূত, স্ক্র্যাচ অসদৃশ দুটি আর্গুমেন্ট লাগে. এক একটি পংক্তি. এক int হয়. আর আমি তাদের সুইচ করতে পারে. আমি শুধু ধরনের ধারণা মত বলতে স্ট্রিং প্রথম, এবং তারপর কত পরবর্তীদের. অকার্যকর এটি এখনও মানে কিছু ফেরত না. এই মাত্র চাক্ষুষ পাশ হয় প্রভাব, [সঙ্গে মত? জর্ডান,?] yelling একটি মৌখিক পার্শ্ব প্রতিক্রিয়া. এটা এখনও, কিছু এন বার করে আপ 0, কিন্তু এন সমান না. এই n মোট বার মানে. এবং তারপর মাত্র প্রিন্ট আউট যাই হোক না কেন যে পংক্তি. তাই আমি সত্যিই সাধারণীকরণ করেছি কোড এই লাইন. সুতরাং এখন, আমি কিভাবে বাস্তবায়ন করবেন কাশি ফাংশন? আমি অকার্যকর কাশি নির্বাচন করতে পারবেন. এবং আমি এখনও কিভাবে নিতে পারেন অনেক বার আপনি কাশি চাই. কিন্তু আপনি কি জানেন? আমি এখন বলতে পান্ট পারেন. আমি সঙ্গে বলতে কল করতে পারেন শব্দ কাশি, কথা প্রসঙ্গে n. আর আমিও বাস্তবায়ন করতে চান তাহলে, শুধু মজার জন্য, একটি হাঁচি ফাংশন, আমি বার কিছু সংখ্যা হাঁচি পারেন. আর আমি এন পুনঃব্যবহার রাখতে পারবেন না, কারণ এই প্রসঙ্গ বা পরিধি যে মি লক্ষ্য এই ফাংশন মধ্যে শুধুমাত্র বিদ্যমান. এন এই প্রেক্ষাপটে শুধুমাত্র এই ফাংশন এখানে উপস্থিত থাকে. তাই আমরা ফিরে আসবো সুযোগ এই সমস্যা. আর এখানে, আমি শুধু বলতে যাচ্ছি, achoo, এবং তারপর এন বার, সেমিকোলন. এবং এখন, আমি শুধু ধার করা প্রয়োজন এই ফাংশন এখানে আপ স্বাক্ষর. তাই কাশি সঠিক. অকার্যকর হাঁচি এখন সঠিক. আমি এখনও ঠিক বলতে পারে. তাই আমি বলতে বলতে যাচ্ছি স্ট্রিং গুলি, কোন int n, সেমিকোলন. তাই আমি ওভার engineered করেছি এই প্রোগ্রামের বাইরে নরক. আর এই না অগত্যা মানে এই নয় আপনি কি করা উচিত যখন লেখা এমনকি প্রোগ্রামের সহজ. যে স্পষ্টত এর কিছু নিন সত্যিই সহজ, সত্যিই ছোট, এবং এটা পুনরায় বাস্তবায়ন উপায় খুব কোড ব্যবহার. কিন্তু আপনি আসলে দেখতে পাবেন, এবং এ সময়, এই উদাহরণ উপর পিছনে তাকান এবং, ওহ, বুঝতে সেই পদক্ষেপ হয় আমরা, আসলে সাধারণের গ্রহণ কিছু খুঁজে বিবেচনার, দিনের শেষে পর্যন্ত আমার কোড আসলে বেশ যুক্তিসঙ্গত. কারণ যদি আমি তিনটি কাশি করতে চান বার তারপর তিনবার হাঁচি, আমি কেবল এই পুন: প্রকাশ করা যাচ্ছে না প্রোগ্রাম কাশি করা, এবং কাশি চালানোর. আর আমি তিন কাশি আছে এবং তিন হাঁচি. তাই এই একটি মৌলিক দৃষ্টান্ত, যদি আপনি হবে, কিভাবে আমরা সম্পর্কে যেতে পারে জন্য আসলে একটি কর্মসূচি বাস্তবায়ন. কিন্তু আসুন শুধু এখন এটা দেখতে কি আমরা, এই সময় সব কাজ করছি এবং কি চূড়ান্ত টুকরা কিছু এই সহজ কমান্ড পিছনে. দিনের শেষে, আমরা করেছি আমাদের কম্পাইলার হিসাবে ঝনঝন শব্দ ব্যবহার হয়েছে. আমরা উৎস লেখা হয়েছে করেছি কোড, রূপান্তরের মেশিন কোড মধ্যে ঝনঝন মাধ্যমে. আর আমরা শুধু ব্যবহার করছি আমাদের কীস্ট্রোক যাতে সহজতর আমরা স্মরণ করতে হবে না যে ঝনঝন নিজেই ঐ incantations. কিন্তু আসলে করুন করছে? এবং, ঘুরে, কি ঝনঝন আসলে করছেন? এটি সক্রিয় আউট, যদিও আমরা সাদাসিধে করেছে বলছে দ্বারা আজকের আলোচনা, আপনি সোর্স কোড নিতে, যেমন পাস একটি কম্পাইলার, যার সাহায্যে আপনি দেয় ইনপুট মেশিন আউটপুট কোড, সেখানে এর সক্রিয় আউট সেখানে ভিতরে কয়েক বিভিন্ন পদক্ষেপ. ও কম্পাইলেশন ছাতা হতে হবে ধাপের একটি আভা শব্দটি. কিন্তু এর মাত্র জ্বালাতন করা যাক এই আউট সত্যিই দ্রুত. এটা পরিনত হয় যে আমরা কাজ করছি আরো জিনিস প্রত্যেক সময় আমি একটি প্রোগ্রাম চালানো, বা যে সময় আমি আজ একটি প্রোগ্রাম কম্পাইল. তাই প্রাক-প্রক্রিয়াকরণ বোঝায় একটি সি প্রোগ্রাম কিছু আপাততঃ, যেমন আমরা আবার এবং আবার দেখতে পাবেন, যে, এই হ্যাশ চিহ্ন দিয়ে শুরু হয় বা হ্যাশট্যাগ এখানে প্রতীক, অর্থ এটা একটি preprocessor ডিরেক্টিভের এর. এর মানে হল যে, এই ক্ষেত্রে, হেই কম্পিউটার, এই ফাইল দিয়ে কিছু করতে আগে আপনি আসলে আমার নিজের কোড কম্পাইল. এই ক্ষেত্রে, হ্যাশ অন্তর্ভুক্ত, মূলত, বলছে সি এর পথ, হেই কম্পিউটার, বিষয়বস্তু পেতে যেতে CS50.h, এবং তাদের এখানে পেস্ট করুন. আরে কম্পিউটার, পেতে যেতে প্রমিত io.h বিষয়বস্তু যেখানেই যে হয় হার্ড-ড্রাইভ, এটা এখানে পেস্ট করুন. সুতরাং ঐ ব্যাপার ঘটতে প্রাক-প্রক্রিয়াকরণ প্রথম. আর ঝনঝন শব্দ আমাদের জন্য এই সব আছে. এবং এটা যাতে অভিশাপ না দ্রুত, আপনি এমন কি ঘটছে চার স্বতন্ত্র জিনিষ দেখতে. কিন্তু যে ধরনের প্রথম পদক্ষেপ. আসলে কি হবে? আচ্ছা, পরবর্তী কর্মকর্তা পদক্ষেপ কম্পাইল করা হয়. এবং দেখা যাচ্ছে যে একটি প্রোগ্রাম কম্পাইল করার প্রণালী টেকনিক্যালি থেকে যাচ্ছে মানে সোর্স কোড, কাপড় আমরা করেছি হয়েছে কিছু, আজ লেখা সমাবেশ কোড বলা, কিছু যে একটু আলাদা দেখায়. এবং, আসলে, আমরা এই বাস্তব দ্রুত দেখতে পারেন. আমাকে আসলে আমার আইডিই ঢোকা যাক. আমাকে এগিয়ে এবং খোলা hello.c, যাওয়া যাক, যা খুব প্রথম প্রোগ্রাম যা দিয়ে আমরা আজ শুরু. এবং আমাকে এগিয়ে যান এবং ঝনঝন একটি চালানো যাক একটু ভিন্নভাবে, ঝনঝন-গুলি, hello.c যা আসলে যাচ্ছে আমাকে অন্য ফাইল hello.s দিতে. আর আমরা কখনও সম্ভবত হবে আবার কোড এই ধরনের দেখতে. আপনি একটি নিম্ন স্তরের নিতে হলে CS61 মত সিস্টেম বর্গ, আপনি আরো অনেক দেখতে হবে কোড এই ধরনের. কিন্তু এই সমাবেশ ভাষা. এই x86 সমাবেশ ভাষা যে CPU- র যে অন্তর্নিহিত হয় এবং CS50 আইডিই আসলে বুঝতে পারে. এবং রহস্যপূর্ণ এটা মতো দেখুন, এটা কিছু হল কম্পিউটার বেশ বুঝতে পারে. সাব থ, এই একটি বিয়োগ হয়. সেখানে আন্দোলন হচ্ছে. সেখানে কার্যাবলী এখানে ডাকছে, এক্স oring, একটি আন্দোলন, একটি অ্যাড, একটি পপ, একটি ফিরতি. কিছু তো আছে খুব নিম্ন স্তরের নির্দেশাবলীর CPU- র যে বুঝতে পারি যে আমি আগেই ইশারা. যে কি ইন্টেল ইনসাইড হয়. সেখানে নিদর্শন আছে zeros এবং বেশী এইসব arcanely ভাষায় মানচিত্র কিন্তু কিছুটা ভাল নামে, নির্দেশাবলী, তাই কথা বলতে. এমনটাই ঘটবে হয় আপনি আপনার কোড কম্পাইল. আপনি সমাবেশ পেতে এটা বাইরে ভাষা, যা মানে তৃতীয় ধাপ জুটা হয় যে সমাবেশ কোড মধ্যে, শেষ পর্যন্ত, মেশিন code-- zeros এবং বেশী, না টেক্সট যে আমরা শুধু একটা মুহূর্ত আগে দেখেছি. তাই প্রাক প্রক্রিয়াকরণ যে পায় এবং প্রতিস্থাপন করুন, এবং কয়েক অন্যান্য বিষয়. সংকলন আপনার সোর্স লাগে C থেকে কোড, সোর্স কোড আমরা লিখেছিলেন যে, সমাবেশ করতে কোড যে আমরা শুধু দিকে নিয়ে. সমাবেশের যে সমাবেশ লাগে শূন্যর এবং বেশী কোড যে CPU- র সত্যিই হবে দিনের শেষে বুঝতে. আর লিঙ্ক গত ধাপ যে আমাদের জন্য আবার ঘটবে, এত দ্রুত আমরা এমনকি না বিজ্ঞপ্তি বলছেন যে, হেই কম্পিউটার, সব নিতে zeros এবং বেশী দায়ূদের কোড কম্পাইল করার প্রণালী থেকে ফল, এবং এই ক্ষেত্রে তার প্রধান ফাংশন. আর হেই কম্পিউটার, পেতে যেতে zeros এবং বেশী সব যে CS50 কর্মীরা লিখেছে CS50 লাইব্রেরি ভিতরে. দাউদের সঙ্গে ঐ মেশান. আর হেই কম্পিউটার, সব zeros পেতে যেতে এবং অন্য কারো বছর লিখেছিলেন যে ওগুলো আগে printf জন্য. এবং ঐ যোগ গোটা ব্যাপারটাই, যাতে আমরা করেছি আমার zeros এবং বেশী, পেয়েছিলাম CS50 কর্মীদের এর zeros এবং বেশী, printf, zeros এবং বেশী, এবং অন্য কিছু আমরা ব্যবহার করছি. তারা সব এক মধ্যে একসঙ্গে মিলিত করুন প্রোগ্রাম নামক এই ক্ষেত্রে, হ্যালো. শুধু তাই অত: পর, আমরা জিতবোই শব্দ কম্পাইল করার. আর আমরা হালকাভাবে নেবে যে যখন আমরা বলছি, তোমাদের প্রোগ্রাম কম্পাইল, তাহলে এর অর্থ হল, হেই প্রাক প্রক্রিয়াজাতকরণ না, একত্রিতকরনের, এবং লিঙ্ক. কিন্তু সেখানে আসলে কিছু সরস জিনিস ফণা নীচে সেখানে যাওয়া. আর বিশেষত যদি কৌতুহলী কিছু সময় পেতে, আপনি খোঁচা শুরু করতে পারেন এই নিম্ন স্তরে প্রায়. কিন্তু এখন জন্য, বুঝতে পারি যে আজকের জন্য টেকওযে় মধ্যে হয় বেশ সহজভাবে একটি প্রক্রিয়ার প্রারম্ভে, সঙ্গে আরামদায়ক পেয়ে হ্যালো ওয়ার্ল্ড মত কিছু. প্রকৃতপক্ষে, আমরা আজ যা করলে অধিকাংশ অবশ্যই সুপার ফাস্ট ডুবা করা হবে না. এবং এটা কিছু সময় লাগবে সময়, এবং কিছু অভ্যাস. আর মতভেদ আছে, আপনি বাছাই করতে হবে আপনার কীবোর্ড আঘাত করতে চান বা পর্দা চিত্কার. এবং যে সব ঠিক আছে. যদিও, সম্ভবত করার চেষ্টা করবেন না গ্রন্থাগারে এত না. এবং শেষ পর্যন্ত, আপনি যা করবেন যদিও সক্ষম হবে, শুরু থেকে নিদর্শন দেখে উভয় ভাল কোডে আপনি লিখিত করেছি যে ভুল মধ্যে আপনি তৈরি করেছি যে. এবং বিপুল পরিমাণে প্রক্রিয়া মত একটি TF হয়ে অথবা একটি CA মত হল, আপনি ভাল পেতে শুরু করব এবং ঐ নিদর্শন দেখে ভাল, এবং শুধু আপনার সমাধানে পরিণামে নিজের সমস্যা. এই সময়ের মধ্যে, সেখানে প্রচুর হবে আমাদের আপনি সমর্থন ধার, এবং আপনি পেতে এই মাধ্যমে. এবং লিখতে আপগুলি মধ্যে সব সমস্যার জন্য আপনি মাধ্যমে সূচিত করা হবে কমান্ডের সব আমি অবশ্যই থেকে জানি যে এখন দ্বারা অনুশীলন অনেকটা, কিন্তু চড়েছে পারে এখন জন্য এক এর মাথার উপর. এবং যে সম্পূর্ণই সূক্ষ্ম. কিন্তু, শেষ পর্যন্ত, আপনি যাচ্ছেন নিদর্শন উত্থান দেখতে শুরু করার. আর একবার আপনি সকল অতীত পেতে মূঢ় বিবরণ, প্রথম বন্ধনী মত, এবং কোঁকড়া ধনুর্বন্ধনী, এবং সেমি-কোলন, এবং কাপড়, উন্মুক্তভাবে, এ সব নয় বুদ্ধিমত্তা আকর্ষণীয়. আর এর উদ্দেশ্য নয় কোনো পরিচায়ক বর্গ গ্রহণ. এটা ধারণা যে কোন ব্যাপার করতে যাচ্ছি. এটা হচ্ছে loops, এবং শর্ত, এবং ফাংশন, এবং আরো জোরে বিমূর্ততা, এবং কোডের ফ্যাক্টরিং, এবং ভাল ডিজাইন, এবং ভাল শৈলী, এবং পরিণামে শুদ্ধি আপনার কোড, যে শেষ পর্যন্ত এর সবচেয়ে ব্যাপার যাচ্ছে. তাই পরের সপ্তাহে, আমরা এই নিতে হবে ধারণা যে আমরা প্রথম ভূত দেখেছি এবং এখন অনুবাদ সি আর আমরা শুরু করব প্রথম পরিচয় করিয়ে অবশ্যই এর বাস্তব বিশ্বের ডোমেইন. আমরা নিরাপত্তা জগতে মনোনিবেশ করব এবং আরো নির্দিষ্টভাবে ক্রিপ্টোগ্রাফি, তথ্য scrambling শিল্প. প্রথম মধ্যে আর আপনি সমস্যার নিজেকে তার পরেও লিখতে পাবেন সিনট্যাক্স কিছু সঙ্গে বাজানো এবং কিছু যৌক্তিক সমাধানে সমস্যা, পরিণামে আগে দীর্ঘ, আসলে হামাগুড়ি দিয়া আরোহণ করা হয়, বা এনক্রিপ্ট, এবং শেষ পর্যন্ত তথ্য ডিক্রিপ্ট. এবং সবকিছু আমরা সম্পন্ন করেছি আজ, মোটামুটি কম হবে স্তর, শুধু অনুমতি দিতে যাচ্ছে আমাদের এক, এবং এক নিতে, এবং উপরে দিকে আরো এক ধাপ এখনো সবচেয়ে আকর্ষণীয় কোড লেখা. সুতরাং যে আগামী সপ্তাহে আরও অনেক কিছু. [ভিডিও প্লেব্যাক] -কি তুমি আমার সম্পর্কে বলতে পারেন শেষ সময় আপনি তাকে দেখেছ? -কি আমি সত্যিই বলতে পারেন? আমি বলতে চাচ্ছি, এটা অন্য কোন মত ছিল প্রাক উৎপাদন রিহার্সাল, ছাড়া কিছু ছিল সে বলল খুব শেষ আমার সাথে যে আটকে এ. -এই CS50 ছিল. -যে কেটে প্রত্যেকের, রিহার্সাল উপর মহান কাজ. -যে লাঞ্চ? হ্যা, আপনি এবং আমি করতে পারেন কিছুক্ষনের মধ্যে একটি স্যান্ডউইচ দখল. আমাকে শুধু সঙ্গে জিজ্ঞাসাবাদ করা যাক ডেভিড সত্যিই দ্রুত. ডেভিড? ডেভিড? [END টি প্লেব্যাক]