[সঙ্গীত বাজানো] ডেভিড জে MALAN: ঠিক আছে. এটি CS50, এবং এই দুই সপ্তাহ শুরু হয়. সুতরাং আমাদের একটি বাগ সঙ্গে আজ শুরু করা যাক. একটি বাগ, অবশ্যই, একটি একটি প্রোগ্রাম ভুল, এবং আপনি খুব পাবেন এই ধারণার সঙ্গে পরিচিত আপনি প্রোগ্রাম করেছি যদি আগে. pset0 এবং এখন pset1. কিন্তু এর কিছু বিবেচনা করা যাক প্রথমে একটু সহজ. আমি যে এখানে এই প্রোগ্রাম অগ্রিম একসঙ্গে ছুড়ে ফেলে এবং আমি এই মুদ্রণ উচিত যে দাবি Printf ব্যবহার করে পর্দায় 10 বড়, কিন্তু দৃশ্যত কিছু উপায় বগী. যে স্পেসিফিকেশন দেওয়া যে এটা 10 বড় মুদ্রণ করা উচিত, কিন্তু দৃশ্যত না, কি বাগ দাবি করবে? হ্যাঁ? সুতরাং এটি একটি ত্রুটি দ্বারা একটি বন্ধ, এবং আপনি যে দ্বারা কি বোঝাতে চেয়েছেন? ঠিক আছে. চমৎকার. তাই আমরা উল্লেখ করেছি একটি আমি শূন্য মান শুরু, এবং আমরা 10 একটি n মান উল্লেখ করেছি কিন্তু আমরা চেয়ে বা সমান কম ব্যবহার করেছি. এবং এই কারণে যে দুই অক্ষর এবং শুধুমাত্র এক প্রতীক, একটি গণিতের বই মত, আপনি না হয় প্রকাশ করার একটি উপায় একটি অক্ষর সমতুল্য. সুতরাং যে, কম মানে কিন্তু আপনি শূন্য এ গণনা শুরু, কিন্তু আপনি সমস্ত উপায় গণনা 10 মাধ্যমে এবং সমান, আপনি অবশ্যই যাচ্ছে আছেন মোট 11 জিনিষ গণনা. এবং যাতে আপনি 11 বড় মুদ্রণ চলুন. তাই কি এই জন্য একটি ফিক্স হতে পারে? হ্যাঁ? তাই শুধু কম সমন্বয় বা শুধু চেয়ে কম হতে সমান, এবং সম্ভবত, আমি দাবী আছে, খুব অন্য একটি সমাধান. অন্যথায় আপনি কি কি হতে পারে? হ্যাঁ? তাই এটি 1 equaling শুরু, এবং কম বা সমান কম ছেড়ে. এবং সত্যি আমি দাবি যে, একজন সাধারণ মানুষের জন্য, এই সম্ভবত আরো সহজবোধ্য. 1 এ গণনা শুরু এবং 10 মাধ্যমে গণনা. মূলত আপনি কি বলতে চাইছেন না. কিন্তু বাস্তবতা হল প্রোগ্রামিং, হিসাবে আমরা দেখা করেছি, কম্পিউটার বিজ্ঞানী এবং প্রোগ্রামারদের সাধারণত শূন্য এ গণনা শুরু করবেন. তাই যে একবার জরিমানা আপনি এটি ব্যবহার করতে পারেন. আপনার অবস্থা সাধারণত হবে কম ভালো কিছু করা. তাই কেবল একটি লজিক্যাল ত্রুটি যে আমরা এখন পারা স্থির করা এবং শেষ পর্যন্ত সেটি পুনরায় কম্পাইল এই এবং মাত্র 10 পেতে. ভাল কিভাবে এখানে এই বাগ সম্পর্কে? এখানে, আবার, আমি যে আমি আছে দাবি 10 stars-- মুদ্রণ একটি লক্ষ্য লাইন এই সময় প্রতি এক, কিন্তু এটা না. আমরা প্রস্তাব করার আগে কি ফিক্স এই কি হয়, আমি কম্পাইল ছিল দৃশ্যত প্রিন্ট এবং এই প্রোগ্রাম আপনি মনে করেন চালান? হ্যাঁ? রাশি. তাই সব বড় একই লাইনে আমি শুনতে কি, এবং তারপর নতুন লাইন অক্ষর. তাই এর যে চেষ্টা করুন. তাই বগী-1, লিখুন না, এবং আমি ঝনঝন কমান্ড দেখতে আমরা শেষ সময় সম্পর্কে বললাম যে. ./buggy-1, এবং প্রকৃতপক্ষে আমি সমস্ত 10 বড় দেখতে আমি দাবি, যদিও একই লাইনে আমার স্পেসিফিকেশন উপরে শুধু একটি মন্তব্যে আমি এক প্রতি কি উদ্দেশ্যে যে কোড লাইন. কিন্তু এই অধিকার মনে হচ্ছে. আমি মত এখন লাইন 15 এটা দেখে মনে হচ্ছে তারপর একটি তারকা মুদ্রণ, এবং লাইন 16 আমি মুদ্রণ করছি এটা দেখে মনে হচ্ছে একটি নতুন লাইন অক্ষর, এবং তারা উভয় তাই সংভৃত করছি আমি স্পষ্ট লুপ এর ভিতরে আছি. তাই আমি তারা কাজ করা উচিত নয়, নতুন লাইন, তারকা, নতুন লাইন, তারকা, নতুন লাইন? হ্যাঁ? হ্যাঁ, একটি ভাষা ভিন্ন মত পাইথন, আপনি পরিচিত হন, খাঁজ না কম্পিউটার ব্যাপার. এটা শুধুমাত্র মানুষের কাছে গুরুত্বপূর্ণ. এখানে যেহেতু আমি আবিষ্কার করেছি লাইন তাই 15 এবং সুন্দর দেখায় যে 16--, কিন্তু কম্পিউটার গ্রাহ্য না করে. কম্পিউটার বজায় রাখে আসলে কোঁকড়া ধনুর্বন্ধনী হচ্ছে কোড এই লাইন কাছাকাছি. তাই এটা ঠিক মত clear-- এর Scratch-- কোড যারা দুই লাইন যে মৃত্যুদন্ড কার্যকর করা উচিত. যারা হলুদ ভূত ধাঁধা মত টুকরা আবার এবং আবার এবং আবার. আমি যদি তাই এখন এই পুনরায় সঞ্চালন প্রোগ্রাম ./buggy-2-- এইচএম. আমি এখন একটি ত্রুটি আছে. আমি কি করতে ভুলবেন না? হ্যাঁ, তাই আমি এটা কম্পাইল না. তাই বগী-2 না. কোন ফাইল আমি না, কারণ আসলে দ্বিতীয় সংস্করণ সঙ্কলন. তাই এখন আকর্ষণীয় অঘোষিত 2 না ভেরিয়েবল. আমরা 1 করছেন. এখন বগী-1 টি ./buggy-1 টি এবং তাদের প্রতিটি একই লাইন হয়. এখন একটি ব্যতিক্রম আছে খনি এই অনুমিত দাবি যে আপনি এই তরঙ্গায়িত ধনুর্বন্ধনী প্রয়োজন. যখন আসলে এটা OK-- আপনি করেছি যদি অধ্যায় বা textbooks-- মধ্যে লক্ষ্য কোঁকড়া ধনুর্বন্ধনী বর্জন করতে? হ্যাঁ? ঠিক. শুধুমাত্র এক আছে যখন কোড লাইন যে আপনি সঙ্গে যুক্ত হতে চান আমাদের প্রথম উদাহরণ হিসাবে লুপ. এটা পুরোপুরি বৈধ কোঁকড়া ধনুর্বন্ধনী বর্জন শুধু একটি সুবিধা সাজানোর হিসাবে আপনি কম্পাইলার থেকে. হ্যাঁ? ভাল প্রশ্ন. এটি একটি শৈলী ত্রুটি বিবেচনা করা হবে? আমরা CS50 মধ্যে হিসাবে promote-- হবে শৈলী গাইড, যার জন্য URL টি যে সবসময় pset1-- হয় কোঁকড়া ধনুর্বন্ধনী ব্যবহার করুন. অবশ্যই আপনি প্রোগ্রামিং যদি নতুন হন. বাস্তবতা আমরা পারব না হয় আপনি নিষিদ্ধ যাচ্ছে এই সুবিধা কাজ থেকে. কিন্তু আপনি শুধু পেয়ে থাকেন যদি জিনিস সুইং মধ্যে, একেবারে ঠিক সবসময় কোঁকড়া ব্যবহার আপনি তা পেতে আসে পর্যন্ত ধনুর্বন্ধনী. ভাল প্রশ্ন. ঠিক আছে. যে আমি তখন একটি বাগ ছিল. কিছু মোটামুটি সহজ, অন্তত. এবং এখনো যদি আপনি এই মনে হতে পারে ঠিক আছে, মোটামুটি অপূর্ণাঙ্গ হয়? এই প্রথম সপ্তাহে বাছাই করা ভাষা খুঁজছেন মত, আপনার বাগ তাতে দেখতে. কিন্তু বাস্তবতা এই হয় আসলে প্রতিনিধি কিছু প্রশংসনীয় ভয়ানক সমস্যা যে বাস্তব জগতে দেখা করতে পারেন. সুতরাং আপনি কিছু প্রত্যাহার করা হতে পারে আপনি প্রযুক্তির খবর অনুসরণ করে, হয়তো বা এমনকি ধরা ফেব্রুয়ারি এই বায়ু আপেল ছিল যে এই গত বছরের উভয় iOS মধ্যে একটি ভুল একটি বিট তৈরি অপারেটিং সিস্টেম তাদের ফোন, এবং ম্যাক অপারেটিং সিস্টেম, অপারেটিং সিস্টেম তাদের ডেস্কটপ এবং ল্যাপটপের. এবং আপনি এই যেমন শিরোনাম দেখেছি. এবং তারপরে, আপেল এই বাগ ফিক্স করার অঙ্গীকার, এবং খুব দ্রুত, iOS মধ্যে এটা ঠিক না কিন্তু তারপর শেষ পর্যন্ত ম্যাক অপারেটিং সিস্টেমে এটি সংশোধন করা হয়েছে হিসাবে ভাল. এখন এই শিরোনাম কেউ একা সত্যিই অভ্যন্তরীণ সমস্যা কি ছিল প্রকাশ, কিন্তু বাগ শেষ পর্যন্ত হ্রাস করা হয় SSL-একটি বাগ, নিরাপদ সকেট লেয়ার. এবং দীর্ঘ সংক্ষিপ্ত বিবরণ, এই সফ্টওয়্যার আমাদের ব্রাউজার এবং অন্যান্য সফ্টওয়্যার কি করতে ব্যবহৃত? আমি একটি SSL বলেন যে যদি জড়িত, যখনই আপনি , HTTPS দ্বারা সঙ্গে শুরু হয় যে একটি URL যান তারপর কি SSL-এর সাথে সম্পর্কিত হতে পারে? এনক্রিপশন. তাই আমরা সম্পর্কে কথা বলতে পারবেন কিছুদিনের মধ্যে এই. এনক্রিপশন, শিল্প তথ্য scrambling. কিন্তু দীর্ঘ সংক্ষিপ্ত বিবরণ, আপেল একদা একটি ভুল ছিল আগে এসএসএল তাদের বাস্তবায়ন শেষ পর্যন্ত যে কার্যকরী সফটওয়্যার HTTPS অথবা সর্বোচ্চ মত URL গুলি খুব আছে সংযোগ. যার ফলে যে আপনার সংযোগ সম্ভাব্য পারা রূদ্ধ করা হবে. এবং আপনার সংযোগের ছিল অগত্যা এনক্রিপ্ট না আপনি মধ্যে কিছু খারাপ লোক ছিল আপনি এবং গন্তব্য ওয়েবসাইট যারা এই সুবিধা নিতে কিভাবে জানত. এখন আপেল শেষ পর্যন্ত পোস্ট একটি পরিশেষে এই জন্য ঠিক, এবং বর্ণনা তাদের ফিক্স এই ছিল. নিরাপদ পরিবহন যাচাই করতে ব্যর্থ হয়েছে সংযোগ এর সত্যতা. সমস্যা সুরাহা করা হয় অনুপস্থিত বৈধতা পদক্ষেপ পুনরূদ্ধার. সুতরাং এই একটি খুব হাত তরঙ্গায়িত ব্যাখ্যা কেবল আমরা মাতাল আপ করে বলেন যে. আক্ষরিক এক আছে বগী ছিল যে কোড লাইন তাদের SSL বাস্তবায়ন, এবং আপনি অনলাইন যান এবং এই জন্য অনুসন্ধান আপনি আসলে খুঁজে পেতে পারেন মূল সোর্স কোড. উদাহরণস্বরূপ, এই একটি স্ক্রিন শট হয় শুধু একটি মোটামুটি বড় ফাইল একটি অংশ, কিন্তু এই দৃশ্যত একটি ফাংশন বলা হয় SSL-সাইন সার্ভার কী এক্সচেঞ্জ যাচাই করুন. এবং এটি একটি গুচ্ছ লাগে আর্গুমেন্ট এবং ইনপুট. এবং আমরা ফোকাস করছি যাচ্ছে না সেখানে minutia উপর খুব বেশী, কিন্তু আপনি ভিতরে কোড ফোকাস যদি আসুন ফাংশন যে আগ এর যে জুম. আপনি ইতিমধ্যে সন্দেহ হতে পারে কি ত্রুটি হতে পারে আপনি কোন ধারণা আছে, এমনকি যদি হতে শেষ পর্যন্ত আপনি এ খুঁজছেন তা. একটি ব্যতিক্রম ধরনের আছে এখানে, যা কি হয়? হ্যাঁ, আমি সত্যিই পছন্দ করেন না দুই Goto চেহারা ব্যর্থ হয়. সত্যি, আমি সত্যিই জানি না কি Goto মানে ব্যর্থ, কিন্তু তাদের দুই হচ্ছে ফিরে ফিরে যাও. যে শুধু ধরনের সম্পর্কে rubs বুদ্ধিমত্তা ভুল পথ, এবং আমরা জুম প্রকৃতপক্ষে যদি শুধু যারা লাইন, এই সি তাই অ্যাপল এর কোড অনেক নিজেই সি লিখিত হয়, এবং এই দৃশ্যত সত্যিই equivalent-- হয় না যে বেশ খাঁজ থেকে সংস্করণ, কিন্তু আপনি চিনতে যদি সত্য কোন কোঁকড়া ধনুর্বন্ধনী, আছে কি অ্যাপল সত্যিই দেখায় যে কোড ছিল লিখেছে এই মত. তাই আমি জুম আউট এবং আমি করেছি অর্থে খাঁজ সংশোধন করা হয়েছে যে কোন কোঁকড়া ধনুর্বন্ধনী, যে আছে যদি দ্বিতীয় যান যে হলুদ এর ব্যর্থ কোন ব্যাপার কি চালানো যাচ্ছে. এর সাথে জড়িত না উপরে যদি শর্ত. তাই, এমনকি আবার, যদি আপনি বেশ বুঝতে কি এই সম্ভবত পারে , করছেন কি জানেন এই প্রতিটি যে এই লাইন প্রতিটি conditions-- একটি খুব গুরুত্বপূর্ণ পদক্ষেপ চেক প্রক্রিয়ার মধ্যে আপনার তথ্য সত্য হলে এনক্রিপ্ট করা হবে. তাই এই এক কুঁদন ধাপ, না ভাল ধারণা. কিন্তু আমরা এই আছে, কারণ দ্বিতীয় যান, হলুদ ব্যর্থ এবং কারণ আমরা একবার বাছাই করা হয় aesthetically যেখানে এটি বাম থেকে এটি স্থানান্তর কথাটি মুহূর্তে, কি এই লাইন জন্য মানে দ্বিতীয় যে এতে যান নীচের কোড আপনি মনে হবে ব্যর্থ? এটা সবসময় এড়ানো যাচ্ছে. তাই gotos সাধারণত উপর frowned হয় আমরা সত্যিই মধ্যে যেতে হবে না কারণ, এবং প্রকৃতপক্ষে CS50 মধ্যে আমরা না ঝোঁক এই বিবৃতি যান শেখান, কিন্তু আপনি যান মনে করতে পারেন অর্থ চলতে লাফ হিসাবে ব্যর্থ কিছু কোড অন্যান্য অংশ থেকে. অন্য কথায় উপর তিড়িং লাফ পুরাপুরি এই শেষ লাইন, এবং তাই এই মূঢ় ফলাফল ঠিক যে সহজ ভুল সম্ভবত কেউ একটি ফলাফল অনুলিপি করা ও খুব এক পেস্ট অনেক বার সম্পূর্ণ ছিল যে iOS এবং ম্যাক অপারেটিং সিস্টেম এর নিরাপত্তা আটক প্রবন ছিল বেশ কিছু সময়ের জন্য খারাপ না করে. অ্যাপল পর্যন্ত অবশেষে এই সংশোধন করা হয়েছে. এখন আপনি আসলে কিছু যদি iOS বা ম্যাক অপারেটিং সিস্টেম পুরোনো সংস্করণ চলমান, আপনি gotofail.com যেতে পারে, যা কেউ সেট আপ একটি ওয়েবসাইট মূলত নির্ধারণ programmatically, আপনার কম্পিউটার এখনও অরক্ষিত হয়. এবং অকপটে, যদি এটা হয়, এটি সম্ভবত একটি ভাল ধারণা আপনার ফোন আপডেট করার জন্য বা এই সময়ে আপনার ম্যাক. কিন্তু, শুধু উইল ঠিক কিভাবে এই নিম্ন স্তরের একটি রসাস্বাদন বিবরণ এবং মোটামুটি সহজ ধারণা করতে পারেন সত্যিই সিদ্ধান্ত অনুবাদ এবং সমস্যা যে এই ক্ষেত্রেই মধ্যে affected-- লক্ষ লক্ষ মানুষ. প্রশাসন এখন একটি শব্দ. অনুচ্ছেদ এই আসছে রবিবার শুরু হবে. আপনি একটি ইমেল পাবেন অধ্যায় সম্পর্কে সপ্তাহান্তে, যা বিন্দু resectioning প্রক্রিয়া আপনি করেছি যদি শুরু হবে আপনি এখন আছে বুঝতে কিছু নতুন দ্বন্দ্ব. তাই এই প্রতি বছর ঘটে, এবং আমরা আসা দিনের মধ্যে মিটমাট করা হবে. অফিস hours-- একটি রাখা এখানে এই পরিকল্পনাতে চোখ. এই সপ্তাহে একটি সামান্য বিট পরিবর্তন, বিশেষ করে শুরুর সময় এবং অবস্থান, তাই পরামর্শ না যে অফিসে ঘন্টা শিরোনাম আগে পরের চার রাত কোন. এবং এখন মূল্যায়নের উপর একটি শব্দ, আপনি সমস্যার মধ্যে একটি আকর্ষণীয় বিশেষত হিসাবে এক এবং তার পরেও সেট করে. স্পেসিফিকেশন সুতরাং, এই সাধারণত হয় অক্ষ বরাবর যা আমরা আপনার কাজ নির্ণয় করা. ব্যাপ্তি বোঝায় কি কিছুদূর আপনার কোড কার্যকরী বৈশিষ্ট্য প্রয়োজন আমাদের স্পেসিফিকেশন দ্বারা. অন্য কথায়, কিভাবে অনেক এক টুকরা সেট আপনি দান্ত দিয়া ফুটা করা হয়নি. আপনি এটি একটি তৃতীয় কি, এটি একটি অর্ধেক, এটা 100%. এটা সঠিক না, এমনকি যদি, আপনি কত প্রচেষ্টা না? যে স্তরের ধারন করে তাই প্রচেষ্টা এবং পরিমাণ যা আপনি বিট সমস্যা সেট এর সমস্যা. এই এক Correctness--, থেকে কি পরিমাণ, আপনার কোড সঙ্গে সামঞ্জস্যপূর্ণ আমাদের বিশেষ উল্লেখ এবং বাগ বিনামূল্যে. তাই এটি সঠিকভাবে কাজ করে? আমরা কিছু ইনপুট দিতে, তাহলে এটা আছে আমরা আশা যে আউটপুট দিতে? Design-- এখন এই প্রথম বিশেষ করে গুণগত বেশী, বা মানুষের রায় প্রয়োজন বেশী. আমরা একটি কর্মী আছে কেন এবং প্রকৃতপক্ষে, এই হল তাই অনেক শিক্ষণ ফেলোগণ এবং অবশ্যই সহায়ক. কি পরিমাণ আপনার হয় কোড ভাল লেখা? এবং আবার এই একটি খুব হয় গুণগত মূল্যায়ন যে আপনার সাথে কাজ করবে সপ্তাহের মধ্যে দ্বি গতিপথ আসা. তাই আপনি না যখন শুধুমাত্র সাংখ্যিক স্কোর, কিন্তু একটি লিখিত স্কোর, বা টাইপ মতামত, বা ইংরেজি শব্দের মধ্যে প্রতিক্রিয়া লেখা. যে আমরা আপনি ও ড্রাইভ ব্যবহার করব কি আসলে ভাল লেখা কোড দিকে. এবং বক্তৃতা এবং বিভাগে, আমরা চেষ্টা করব প্রায়ই আমরা can-- হিসাবে out-- নির্দেশ কি একটি প্রোগ্রাম না করে শুধুমাত্র সঠিক এবং বৈশিষ্ট্যগুলি ভাল, কিন্তু ভাল ডিজাইন. সবচেয়ে দক্ষ তা হতে পারে, অথবা হতে পারে এমনকি সবচেয়ে সুন্দর এটা হতে পারে. যা শৈলী আমাদের বাড়ে. স্টাইল শেষ পর্যন্ত একটি নান্দনিক রায়. আপনি ভাল পছন্দ করেছেন আপনার ভেরিয়েবলের জন্য নাম? আপনি সঠিকভাবে আপনার কোড সংভৃত আছে? এটা তাই ভাল চেহারা, এবং না, এটা অন্য মানুষের জন্য সহজ আপনার নিজ নিজ পড়তে তার শুদ্ধি. এখন সাধারণত পাঠ্যক্রম অনুযায়ী, আমরা স্কোর একটি পাঁচ পয়েন্ট স্কেলে এই জিনিস. এবং আমার বিন্দু হোম হাতুড়ি দিন তিন যে প্রকৃতপক্ষে ভাল. খুব দ্রুত ভাবেন না গাণিতিক কাজ শুরু. তারা তিন আউট পেতে কিছু pset জন্য শুদ্ধি পাঁচ এবং তারা জঘন্য মনে করি, আমি 60% যাচ্ছে যা মূলত একটি ডি বা একটি ই হয় যে উপায় না আমরা এই সংখ্যার মনে করি. তিন কি সত্যিই ভাল হয়, এবং আমরা সাধারণত শুরুতে আশা শব্দ আপনি পেয়ে থাকেন তাহলে যে হয়তো three's-- একটি গুচ্ছ একটি দম্পতি মেলা, fours-- একটি দম্পতি বা একটি দম্পতি দুই দুই, fours-- একটি দম্পতি যে শুরু একটি ভাল জায়গা. এবং আমরা একটি এতক্ষণ দেখুন সময়ের উর্ধ্বগামী গ্রহনক্ষত্রের নির্দিষ্ট আবক্র পথ, আপনি একটি বিশেষ ভাল জায়গায় আপনি আছেন. আমরা ব্যবহার সূত্র ওজন জিনিস মূলত পাঠ্যক্রম প্রতি এই, যা শুধু আমরা মানে হল যে শুদ্ধি আরো ওজন দিতে. এটা খুব প্রায়ই শুদ্ধি কারণ যে অধিকাংশ সময় লাগে. এখন আমাকে বিশ্বাস করুন. আপনি অন্তত find-- হবে এক pset-- যে আপনি আপনার সময় 90% ব্যয় সমস্যা 10% কাজ. এবং সব ধরণের কাজ করে এক বা দুই বাগ ছাড়া, এবং যারা বাগ আছে গভীর রাতে আপনি আপ রাখা. যারা বেশী যে সাজান আপনি অব্যাহতি. কিন্তু ঘুমের পরে, বা অফিসে ঘন্টা দোসর বা, অনলাইন প্রশ্ন জিজ্ঞাসা আপনি যে 100% লক্ষ্য পেতে, এবং যে কেন আমরা ওজন সবচেয়ে শুদ্ধতা. একটু কম, ডিজাইন এবং যে চেয়ে সামান্য কম স্টাইল. কিন্তু mind-- শৈলী রাখা সম্ভবত সবচেয়ে সহজ পদ্ধিতি হল এই বন্ধ দান্ত দিয়া ফুটা করা শৈলী গাইড হিসাবে. এবং এখন, আরো একটি গুরুতর একাডেমিক সততা নোট. CS50 এর দু: খজনক পার্থক্য আছে বিজ্ঞাপন বোর্ড বৃহত্তম প্রযোজক হচ্ছে ক্ষেত্রে প্রায় প্রতি বছর ঐতিহাসিক. ছাত্র ঠকাই, কারণ এই না এবং CS50 কোন যাতে অন্য কোন বর্গ তুলনায়, কিন্তু কারণ কাজের প্রকৃতি দ্বারা, এটি ইলেকট্রনিক যে, আমরা তার জন্য তাকান, এবং যে সত্য আসলে আমরা কম্পিউটার বিজ্ঞানী, হয় আমি দুর্ভাগ্যবশত আমরা বলতে পারেন এটি সনাক্ত খুব ভাল. তাই এই বাস্তব পদ মানে কি? তাই, পাঠ্যক্রম প্রতি, অবশ্যই এর দর্শন সত্যিই যুক্তিসঙ্গত হতে ফুটাইয়া কমান না. এই লাইন মধ্যে নেই আপনার নিজের উপর এক এর কাজ করছেন এবং একটি সামান্য বিট পেয়ে একটি বন্ধুর কাছ থেকে যুক্তিসঙ্গত সাহায্য, এবং সরাসরি জন্য যে কাজ করছেন আপনার বন্ধু, বা তাকে বা তার আপনার কোড পাঠানো সে কেবল করতে পারেন যাতে নিতে বা ডান এটা ধার করা. এবং যে লাইন অতিক্রম আমরা বর্গ টানা যে. , পাঠ্যক্রম দেখুন শেষ পর্যন্ত লাইনের জন্য আমরা যুক্তিসঙ্গত হচ্ছে আঁকা যে এবং অযৌক্তিক আচরণ, কিন্তু এটি সত্যিই ফোঁড়া আছে সারাংশ নিচে আপনার কাজ প্রয়োজন শেষ আপনার নিজের হতে হবে. এখন বলেন যে, একটি অনুসন্ধানমূলক আছে. আপনি imagine-- হতে পারে কারণ অফিসে ঘন্টা এবং ভিজ্যুয়াল থেকে এবং ভিডিও আমরা করেছি দেখানো এইভাবে far-- এবং CS50 প্রকৃতপক্ষে সহযোগীতা হতে বোঝানো হয় এবং হিসাবে সমবায় এবং সামাজিক সম্ভব. সহযোগীতা এটি কঠোর হয়. কিন্তু এই সঙ্গে বলেন যে, অনুসন্ধানমূলক, আপনি পাঠ্যক্রম দেখতে পাবেন, আপনি কিছু সমস্যা হচ্ছে করছি না. আপনি আপনার কোড কিছু বাগ আছে যে আপনি সমাধান করতে পারে না, এটা আপনার জন্য যুক্তিসঙ্গত অন্য কেউ আপনার কোড দেখানোর জন্য. এমনকি ক্লাসে একজন বন্ধু, একজন বন্ধু অফিস সময়ে বসা পরের আপনাকে, বা কর্মীদের একটি সদস্য. কিন্তু তারা আপনাকে তাদের কোড প্রদর্শন না করতে পারে. অন্য কথায়, একটি আপনার question-- উত্তর আমি help-- ওহ, এখানে আমার কোড না হয় হবে. এই কটাক্ষপাত করা এবং কি আপনি এটা থেকে অনুমান. এখন, অবশ্যই আছে, একটি উপায় পরিষ্কারভাবে খেলা আমি আপনাকে দেখাতে হবে, যেখানে এই সিস্টেম একটি প্রশ্ন থাকার আগে আমার কোড. আপনি আমাকে আমার আপনার কোড প্রদর্শন একটি প্রশ্ন হচ্ছে আগে. কিন্তু আবার পাঠ্যক্রম দেখতে এই লাইন যেখানে তীক্ষ্ণ স্বরূপ বিবরণ. এখন শুধু ছবি আঁকা এবং হিসাবে স্বচ্ছভাবে সম্ভব শেয়ার করুন আমরা সাম্প্রতিক বছর হয় যেখানে, এই বিজ্ঞাপন বোর্ড ক্ষেত্রে সংখ্যা যে CS50 ছিল করেনি গত সাত বছর. 14 ক্ষেত্রে এই অধিকাংশ সাম্প্রতিক পতনের সঙ্গে. জড়িত ছাত্র শর্তাবলী, এটা 20 কিছু অদ্ভুত ছাত্র ছিল এই গত পড়ে. 33 একটি শিখর ছিল কিছু বছর আগে ছাত্র. যাদের অনেক দুর্ভাগ্যবশত হয় আর এখানে ক্যাম্পাস. শতকরা হিসাবে জড়িত ছাত্র বর্গ ঐতিহাসিকভাবে 0% থেকে সীমাকৃত হয়েছে বলতে যা শুধুমাত্র 5.3% থেকে, এই বার্ষিক একটি চ্যালেঞ্জ. এবং যে শেষের দিকে, কি আমরা এক বহন করা হয় কাজ করতে চান আমরা শুধু FYI-- এ তুলনা dd-- যে যারা ছাত্রদের একটি সততা যারা সেই অনুযায়ী লাইন অনুসরণ করছেন. আমরা সব বর্তমান তুলনা করতে সমস্ত অতীত মিশন বিরুদ্ধে জমা গত অনেক বছর থেকে. আমরা প্রায় গুগল কিভাবে খুব জানতে এবং কোড ভান্ডার খুঁজে অনলাইন, আলোচনা ফোরাম অনলাইন, কাজের সাইট. একজন ছাত্র এটা খুঁজে পেতে পারেন, আমরা নিশ্চয় করতে পারেন যতটা আমরা দুঃখজনক হিসাবে এটি. তাই কি আপনি পাঠ্যক্রম দেখতে পাবেন যদিও এই খেদ ধারা হয়. আমি অবশ্যই করতে পারেন প্রশংসা করি, এবং আমরা সব আছে কর্মীদের অবশ্যই ভালো কাজ হচ্ছে এই সময়ের, এই এক নিজেই, অবশ্যই এটা যখন মত কি জানেন জীবন আপনি যখন পথ পায় কিছু গভীর রাতে deadline-- না শুধুমাত্র এই বর্গ, কিন্তু আপনি another-- যখন সম্পূর্ণরূপে ক্লান্ত, জোর আউট অতিরিক্ত নম্বর আছে অন্যান্য জিনিস না. আপনি কিছু পয়েন্ট এ করতে হবে অবশ্যই একটি খারাপ, সম্ভবত দেরী জীবন রাতে সিদ্ধান্ত. পাঠ্যক্রম প্রতি সুতরাং, এই ধারা আছে, তৈরীর যেমন যে যদি মধ্যে 72 ঘন্টা কিছু দরিদ্র সিদ্ধান্ত, আপনি এটা আপ মালিক এবং আমার কাছে পৌঁছান এবং অবশ্যই এর শীর্ষ এক এবং আমরা একটি কথোপকথন আছে. আমরা জিনিস হ্যান্ডেল করা হবে অন্ত আশা এটি একটি আরো হয়ে উঠছে শিক্ষার মুহূর্ত বা জীবন পাঠ, এবং সঙ্গে সঙ্গে কিছু না বিশেষ করে প্রচণ্ড গার্গল আপনি এখানে এই চার্ট দেখতে পারে. সুতরাং যে একটি গুরুতর স্বন আছে. আমাদের মাত্র কয়েক জন্য বিরতি দিন যাও টান বিরতি. [সঙ্গীত বাজানো] ডেভিড জে MALAN: ঠিক আছে, তাই কিভাবে যে ছিল একটি segue, জন্য? আজ এর প্রধান বিষয়. যার প্রথম বিমূর্ততা হয়. যা আরেকটি হতে যাচ্ছে যা অকপটে তথ্য, উপস্থাপনা কিভাবে বলছে সত্যিই একটি শুষ্ক পথ আমরা করতে পারেন সমস্যা সমাধান এবং চিন্তা সম্পর্কে যেতে সমস্যা সমাধানে সম্পর্কে? তাই আপনি যদি ভূত দেখা করেছি, এবং আপনি করেছি সি pset1 মধ্যে সম্ভবত ইতিমধ্যে দেখা আপনি না ব্যবহার করতে পারেন ফাংশন, printf, অন্য যে মানুষের মধ্যে গত বছর আপনার জন্য লিখেছেন. এছাড়াও আপনি আপনার নিজস্ব ফাংশন লিখতে পারেন. এবং যদি আপনি না পারে, যদিও pset1 মধ্যে অকপটে সি এই কাজ, এবং আপনি কি সত্যিই লিখতে হবে না আপনার একটি সমস্যার কারণ নিজের ফাংশন এ সম্ভবত daunting, যখন প্রথম আপনি দেখতে পাবেন glance-- শেষ পর্যন্ত সঙ্গে সমাধান করা যেতে পারে কোড না সব যে অনেক লাইন. কিন্তু যে পদ, সঙ্গে বলেন, আপনার নিজস্ব ফাংশন লেখা, দিতে সি বুঝতে পারি যে আপনি এই ক্ষমতা. আমি, আজ এর সোর্স কোড যেতে চলেছি যা ইতিমধ্যে অনলাইন উপলব্ধ এবং আমি এগিয়ে এবং খোলা যেতে চলেছি ফাংশন 0.C একটি প্রোগ্রাম নামক আপ, এবং ফাংশন শূন্য আমরা কিছু বিষয় দেখতে পাবেন. প্রথম লাইন 18 মাধ্যমে 23 আমার প্রধান ফাংশন. এবং এখন আমরা পড়া শুরু করছি আমরা উড়ে লেখা করছি না যে কোড, কিন্তু এর পরিবর্তে আমি অগ্রিম লিখিত করেছি বা একটি সমস্যা সেট যে আপনি থাকার পেতে পারে অগ্রিম লিখিত হয়েছে. একটি ভাল উপায় শুরু অন্য কেউ এর কোড পড়া প্রধান ফাংশন জন্য চেহারা হয়. যে যেখানে এন্ট্রি আউট চিত্র বিন্দু প্রোগ্রাম হয়, এবং তারপর থেকে যুক্তি এটি অনুসরণ করা. তাই এই প্রোগ্রাম দৃশ্যত কপি করে প্রিন্ট একটি কোলন দ্বারা অনুসরণ আপনার নাম. আমরা তখন GetString ব্যবহার CS50 লাইব্রেরি থেকে একটি স্ট্রিং, বা একটি শব্দ বা ফ্রেইজ পেতে কীবোর্ড এ ব্যবহারকারী থেকে. এবং তারপর এই আছে জিনিস এখানে PrintName. এখন PrintName একটি নয় সি দিয়ে আসে যে ফাংশন এটা মান io.h. মধ্যে না এটা cs50.h. মধ্যে না এটি একই ফাইলের মধ্যে বরং না. যদি আমি নিচে স্ক্রল লক্ষ্য করুন একটি বিট লাইন 25 27-- থেকে এটা মন্তব্য শুধু একটি চমত্কার উপায় বড় এবং স্ল্যাশ ব্যবহার করে আপনার কোড. এটি একটি মাল্টি লাইন মন্তব্য, এবং এই মাত্র নীল আমার বিবরণ এই ফাংশন কি আছে. 31 লাইনে 28 কারণ আমি একটি সুপার সহজ ফাংশন লিখিত করেছি যার নাম PrintName হয়. এটা কিভাবে অনেক সময় লাগে আর্গুমেন্ট আপনি বলতে হবে? তাই এক যুক্তি এক আছে কারণ বন্ধনীর ভিতরে তালিকাভুক্ত যুক্তি. যা টাইপ স্ট্রিং. যা PrintName বলতে হয় এই কালো বক্সের মত হয় যে সময় লাগে বা ফাংশন ইনপুট একটি স্ট্রিং হিসেবে. এবং যে স্ট্রিং নাম সুবিধামত নাম হতে হবে. না, না এন, কিন্তু নাম. তাই PrintName কি করবেন না? এটা চমৎকার সহজ. শুধু এক লাইন কোড হিসাবে printf,, কিন্তু দৃশ্যত এটা কপি করে প্রিন্ট আউট "হ্যালো," তাই এবং তাই. কোথায় তাই এবং তাই যুক্তি থেকে আসে. এখন এই এখানে একটি বিশাল নতুনত্ব না. আসলে, আমি যে পারে একটি প্রোগ্রাম গ্রহণ করেছি এক লাইন কোড দিয়ে লেখা হয়েছে এই পর্যন্ত এখানে নির্বাণ দ্বারা, এবং কিছু যাও এটি পরিবর্তন যে ছয় বা সাত বা তাই জড়িত নিচে এখানে কোড এর লাইন সমস্ত উপায়. কিন্তু এটি একটি অনুশীলন করে বিমূর্ততা হিসাবে পরিচিত নীতি. ধরনের একটি নতুন ভেতরে encapsulating একটি নাম আছে যে ফাংশন, এবং আরও ভাল এখনো যে নাম আক্ষরিক এটা কি বলছেন. আমি যে না, printf মানে বিশেষ করে বর্ণনামূলক. আমি একটি তৈরি করতে চান পাজল টুকরা, অথবা আমি যদি একটি ফাংশন তৈরি করতে চান যে, কেউ এর নাম ছাপে এই কাজ সৌন্দর্য যে আমি আসলে করতে পারেন হয় ফাংশন যে একটি নাম দিন যে এটা কি আলোচনা করা হয়েছে. এখন এটি একটি ইনপুট লাগে যে আমি ইচ্ছামত নাম বলা করেছি, কিন্তু যে খুব হয় wonderfully বর্ণনামূলক হয় পরিবর্তে একটি সামান্য আরো হচ্ছে এস আর মত জেনেরিক অকার্যকর, এখন জন্য, শুধু অর্থ এই ফাংশন না যে কিছু আমাকে ফিরে হাতে. এটা GetString মত না যে আক্ষরিক একটি স্ট্রিং আমার হাতে ফেরত ভালো আমরা কাগজের টুকরা সঙ্গে কি আপনার সহপাঠীদের গত সপ্তাহে, বরং এটি শুধু একটি পার্শ্ব প্রতিক্রিয়া আছে. এটা পর্দায় কিছু ছাপে. দিনের শেষে, যদি তাই আমি না করা ফাংশন 0, ./function-0, আমরা এটা আমার নাম জন্য অনুরোধ দেখতে পাবেন. আমি আমার নাম ধরনের ডেভিড টাইপ করুন, এবং এটি. আমি রব সঙ্গে এটা আবার কি যদি, এটা বলে যাচ্ছে "হ্যালো, রব." তাই একটি সহজ ধারণা, কিন্তু সম্ভবত এই মানসিকভাবে থেকে দূরদর্শন আপনার প্রোগ্রাম পেতে যে , একটি সামান্য আরো জটিল এবং আপনি একটি খণ্ড লিখতে চান কোড এবং কল যে code-- ডাকা কিছু বর্ণনামূলক দ্বারা যে code-- PrintName মত নাম দিন, সি আমাদের এই ক্ষমতা সামর্থ্য আছে. এখানে আরেকটি সহজ উদাহরণ. উদাহরণস্বরূপ, আমি একটি খোলা return.c নামক আজ থেকে ফাইল, আমি এখানে সম্পন্ন করেছি বিজ্ঞপ্তি. এই প্রধান ফাংশন অধিকাংশ printf. আমি প্রথম ইচ্ছামত আরম্ভ সংখ্যা 2 নামক এক্স পরিবর্তনশীল. আমি তারপর এক্স এখন "প্রিন্ট আউট % আমি "x এর মান পার. তাই আমি ঠিক কি এটা বলার অপেক্ষা রাখে না. এখন শুধু আমি নির্ভয়ে আছি printf সঙ্গে দাবি. আমি যে মান x এর cubing করছি, এবং আমি একটি ফাংশন কল করে তাই করছেন বলা ঘনক্ষেত্র ক্ষণস্থায়ী যুক্তি হিসাবে x এর মধ্যে, এবং তারপর আউটপুট সংরক্ষণ পরিবর্তনশীল নিজেই, এক্স. তাই আমি x এর মান clobbering করছি. আমি অগ্রাহ্য করছি x এর মান যাই হোক না কেন কলিং ফলাফল এই ঘনক্ষেত্র ফাংশন. এবং তারপর আমি কিছু প্রিন্ট আউট তুলতুলে জিনিস এখানে আমি কি বলছে. আমি তখন ঘনক্ষেত্র কি? মৌলিকভাবে কি লক্ষ্য করুন এখানে বিভিন্ন. আমি ফাংশন দিয়েছি আগে একটি নাম. আমি একটি যুক্তি জন্য একটি নাম উল্লেখ করেছি. এটি এন পরিবর্তে নাম বলা হচ্ছে এই সময়, কিন্তু আমি চাই কিছু কল করতে পারে. কিন্তু এই ভিন্ন. বাম থেকে এই জিনিস. পূর্বে এটি কি শব্দ ছিল? ছেলেরা. এখন এটা সম্ভবত কোন int না. তাই সম্ভবত দূরে এর? অকার্যকর তাৎপর্য্য বহন করে যেহেতু ধরণের অনস্তিত্ব, এবং যে ক্ষেত্রে ছিল. PrintName কিছুই ফিরে আসেন. এটা কিছু না, কিন্তু এটা আমাকে হাত না আমি উপর করা হতে পারে যে কিছু একটি সমান চিহ্ন বাম দিকে আমি লাইন 22 সম্পন্ন করেছি এখানে. তাই আমি লাইন 30 মধ্যে বলে, কি সম্ভবত implying যে কি ঘনক্ষেত্র সম্পর্কে আমার জন্য করে? হ্যাঁ? এটি একটি পূর্ণসংখ্যা প্রদান করে. সুতরাং এটি জন্য, আমাকে হাত কাগজ উদাহরণস্বরূপ, একটি টুকরা যা উত্তর লেখা হয়েছে. 2 ঘনাংকিত, বা 3 ঘনাংকিত, বা 4 cubed-- আমি পাস যাই হোক না কেন এবং কিভাবে আমি এই বাস্তবায়ন হয়নি? ওয়েল, শুধু এন এন বার বার এন আমি একটি মান ঘনক্ষেত্র হতে পারে. তাই আবার, সুপার সহজ ধারণা, কিন্তু প্রমাণদায়ক এখন আমরা ফাংশন লিখতে পারেন কিভাবে আসলে আমাদের ফিরে ছিল সুদ হতে পারে যে মান. এর এক শেষ উদাহরণ তাকান এখানে ফাংশন এক বলা হয়. এই উদাহরণে, এটা শুরু হয় আরো আকর্ষক পেতে. সুতরাং ফাংশন এক, এই প্রোগ্রাম বিজ্ঞপ্তি পরিণামে GetPositiveInt নামক একটি ফাংশন কল. GetPositiveInt একটি নয় CS50 লাইব্রেরি ফাংশন, কিন্তু আমরা সিদ্ধান্ত নিয়েছে এটি বিদ্যমান চাই. তাই আমরা পরে ফাইলের মধ্যে নিচে স্ক্রল, আমি রূপায়ণকারী গিয়েছিলাম বিজ্ঞপ্তি ইতিবাচক কোন int পেতে, এবং আমি এটা আরো আকর্ষক বলে এই একটি শালীন কারণ কোড লাইনের সংখ্যা. এটি শুধু একটি নিরীহ না সামান্য খেলনা প্রোগ্রাম. এটা আসলে কিছু ত্রুটি পরীক্ষা পেয়েছিলাম এবং আরো দরকারী কিছু কাজ. আপনি walkthrough দেখা যায় না করেছি তাই আমরা pset1 এমবেড করা আছে যে ভিডিও, এই একটি টাইপ জানি যে অনুরূপ মধ্যে আত্মা সি লুপ, কিছু ভূত ধরণের কাজ করতে পারেন. এবং এই কাজ করতে বলেছেন. এই মুদ্রণ করুন আউট. তারপর এগিয়ে যান এবং n-- পেতে কোন int পেতে এবং n মধ্যে এটি সংরক্ষণ, এবং রাখা এবং আবার এবং এই কাজ আবার এতক্ষণ এন হিসাবে কম হয়. সুতরাং n কম এক হতে যাচ্ছে শুধুমাত্র মানুষের সহযোগী না হলে. সে টাইপ করা হয় 0 বা -1 বা -50 সালে, এই লুপ রাখা যাচ্ছে আবার এবং আবার নির্বাহ. এবং শেষ পর্যন্ত আমি, লক্ষ্য কেবল মূল্য ফেরত. তাই এখন আমরা একটি ফাংশন আছে যে চমৎকার হয়েছে করেছি হবে CS50 মধ্যে বাস্তবায়ন করবে যদি আপনার জন্য cs50.h এবং CS50.c, কিন্তু এখানে আমরা এখন যা করতে পারেন এই নিজেদেরকে বাস্তবায়ন. কিন্তু কিছু কি বিবরণ দুটি মন্তব্য. One-- কেন আমি int ঘোষণা এন, লাইন 29, আপনি কি মনে করেন না পরিবর্তে শুধুমাত্র করছেন এখানে এই, যা সঙ্গে আরও বেশি সঙ্গতিপূর্ণ আমরা গত সপ্তাহে কি? হ্যাঁ? একটি ভাল চিন্তা. তাই আপনি যদি আমরা এটা করা ছিল এখানে, আমরা হিসাবে যদিও এটা আবার এবং আবার ঘোষণা রাখা. এবং তার মধ্যে যে না সমস্যাযুক্ত, জন্মগতভাবে, আমরা শুধুমাত্র প্রয়োজন, কারণ একবার এবং তারপর মান আমরা যে কোনোভাবে একটি নতুন এক পেতে যাচ্ছেন. কিন্তু একটি ভাল চিন্তা. হ্যাঁ? বন্ধ করুন. আমি n উপর ঘোষণা করেছি কারণ লাইন 29 লুপ বাইরে, এটা সারা অ্যাক্সেসযোগ্য এই সমগ্র ফাংশন. অন্যান্য ফাংশন কারণ এন এই কোঁকড়া ভেতরে এখনও এখানে ধনুর্বন্ধনী. নিশ্চিত So--. ঠিক. তাই এই বিন্দু থেকে, এমনকি আরো. আমরা পরিবর্তে ঘোষণা এন অধিকার এখানে লাইন 32, এটা অনুমান কারণ সমস্যাযুক্ত যেখানে অন্য আমি এটি অ্যাক্সেস করতে হবে? লাইন 34, এবং চলতি সহজ নিয়ম আপনি শুধুমাত্র একটি ভেরিয়েবল ব্যবহার করতে পারেন যে সবচেয়ে সাম্প্রতিক কোঁকড়া ধনুর্বন্ধনী ভিতরে যা আপনি বলে ঘোষণা করে. দুর্ভাগ্যবশত, লাইন 34 এক লাইন, খুব দেরি হয়ে গেছে আমি ইতিমধ্যে বন্ধ হয়ে গেছে কারণ লাইন 33 কোঁকড়া বক্রবন্ধনী যে অনুরূপ লাইন 30 কোঁকড়া যুগল. তাই এই বলছে একটি উপায় এই পরিবর্তনশীল int-scoped হয়, তাই শুধুমাত্র ভিতর থেকে কথা বলতে, যারা কোঁকড়া ধনুর্বন্ধনী. এটা শুধু তাদের বাইরে নেই. তাই প্রকৃতপক্ষে, আমি যদি এই ভুল, আমার কোড সংরক্ষণ করতে দিন হিসাবে এটা ভুল লিখিত যাই. আমাকে এগিয়ে যান এবং করতে না দেওয়া ফাংশন 1, এবং বিজ্ঞপ্তি ত্রুটি. অঘোষিত শনাক্তকারী n এর ব্যবহার ডান এখানে, যা লাইন 35, উপর. এবং আমরা যদি উপরে স্ক্রোল আরও অন্য এক. অঘোষিত ব্যবহার লাইন 34 আইডেন্টিফায়ার এন. তাই কম্পাইলার, ঝনঝন শব্দ, এটা যে ঠাহর হয় মাত্র যদিও বিদ্যমান নয় স্পষ্টতই এটা দৃশ্যত আছে. তাই একটি সহজ ফিক্স সেখানে ঘোষণা করা হয়. এখন আমাকে স্ক্রল ফাইল উপরে. কি হিসাবে আপনি এ জাম্প একটু ভিন্ন হচ্ছে স্টাফ থেকে আমরা গত সপ্তাহে দিকে তাকিয়ে? নেই শুধু নাম আমি না, না শুধু আমি কিছু ধারালো উপরে দেওয়া আছে আমি আমি কিছু আছে একটি প্রোটোটাইপ কলিং. এখন যে অতিশয় অনুরূপ কি আমরা শুধু লাইন 27 একটি মুহূর্ত আগে দেখেছি. তাই এর একটি ভিন্ন থেকে অনুমান করা যাক আমি এই কাজ করেছি কেন ত্রুটির বার্তা. আমাকে এগিয়ে যান এবং সেখানে এই লাইন মুছে দিন. এবং তাই আমরা প্রোটোটাইপ সম্পর্কে কিছুই জানেন. এই ফাইলটি পুনর্নির্মাণ. ফাংশন এক না. এবং এখন, অভিশাপ, চার ত্রুটি. প্রথম এক স্ক্রল আপ করা যাক. ফাংশন অন্তর্নিহিত ঘোষণা ইতিবাচক কোন int পেতে C99 মধ্যে অবৈধ. হল C99 মাত্র 1999 মানে ভাষা সংস্করণ আমরা প্রকৃতপক্ষে ব্যবহার করছেন, যা কি সি,. তাই এই কি মানে? ওয়েল সি এবং আরো নির্দিষ্টভাবে সি বেশ মূক প্রোগ্রাম compilers-- হয়. তারা শুধুমাত্র আপনি কি জানেন তাদের বলা, এবং যে গত সপ্তাহ থেকে আসলে বিষয়ভিত্তিক. সমস্যা হল আমি যদি হয় এখানে নাম প্রয়োগ সম্পর্কে, এবং আমি নামক একটি ফাংশন কল লাইন 20 এখানে GetPositiveInt, ফাংশন যে টেকনিক্যালি না কম্পাইলার লাইন 27 সূচিত না হওয়া পর্যন্ত বিদ্যমান. দুর্ভাগ্যবশত, কম্পাইলার উপরে, নিচে, বাম, ডান জিনিস করছেন, এটি দেখা যায় না, কারণ তাই GetPositiveInt বাস্তবায়ন, কিন্তু এটি আপনি চেষ্টা উদ্ধার এখানে এটা ব্যবহার করার জন্য, এটা শুধু চিত্কার bail-- যাচ্ছে একটি ত্রুটি সঙ্গে আপনি সম্ভবত বার্তার রহস্যপূর্ণ, এবং না আসলে ফাইল কম্পাইল. সুতরাং একটি তথাকথিত প্রোটোটাইপ আপ এখানে নিঃসন্দেহে অপ্রয়োজনীয়. আক্ষরিক, আমি এখানে গিয়েছিলাম নিচে এবং আমি কপি এবং এই আটকানো, এবং আমি এটা এখানে আপ. অকার্যকর আরো সঠিক হতে হবে, তাই আমরা করব আক্ষরিক কপি এবং এই সময় এটি পেস্ট করুন. আমি আক্ষরিক কপি এবং এটি আটকানো. সত্যিই শুধু একটি রুটি টুকরা মত. কম্পাইলার একটু খেই. আমি এই আছে কি না জানি না এখনো, কিন্তু আমি আপনি আশাপ্রদ করছি এটা শেষ পর্যন্ত উপস্থিত হবে. এই লাইন কেন এবং যে লাইন 16-- একটি সেমিকোলন দিয়ে শেষ হয়. এটা নকশা দ্বারা অপ্রয়োজনীয় হয়. হ্যাঁ? আপনি আপনার লাইব্রেরি লিঙ্ক না করে থাকেন তাহলে ওহ, ভাল প্রশ্ন the-- করতে. ধারালো হেডার ফাইল যোগের রয়েছে. উচিত প্রায় be-- প্রয়োজন সবসময় খুব শীর্ষে জন্য একটি similar-- জন্য ফাইল ঠিক একই কারণে, হ্যাঁ. সাধারণ কারণ io.h আক্ষরিক একটি লাইন এই মত, কিন্তু শব্দ printf সঙ্গে, এবং তার আর্গুমেন্ট এবং তার রিটার্ন টাইপ সঙ্গে. তাই ধারালো করে আপ অন্তর্ভুক্ত এখানে, আপনি আক্ষরিক করছেন কি আছেন বিষয়বস্তু কপি এবং পেস্ট করা হয় কেউ অন্য উপরে লিখেছেন. যার ফলে আপনার কোড cluing যারা ফাংশন অস্তিত্ব না যে. হ্যাঁ? একেবারে. সুতরাং একটি খুব চতুর এবং সঠিক সমাধান হবে, আপনি জানেন কি? আমি জানি না কি একটি প্রোটোটাইপ, কিন্তু আমি জানি আমি সি ঠিক বুঝতে পারি যে যদি মূক এবং নিচ থেকে উপরে rethinks. ভাল এটা কি চায় তা দিতে. এটা পেস্ট করুন, এর যে কোড কাটা উপরে, এবং এখন নিচে নিচে প্রধান ধাক্কা. এই অত্যন্ত সমস্যার সমাধান হবে. কিন্তু আপনি খুব সহজে সাথে আসতে পারেন বি কল করার প্রয়োজন হবে, যা একটি দৃশ্যকল্প, এবং হয়ত বি এ এই ফিরে কল ইনস্টলেশনের কিছু বলা হয়, এবং আমরা যে ফিরে পাবেন. এবং এটা একটি ভাল হতে পারে না জিনিস, কিন্তু আপনি স্পষ্টভাবে করতে পারেন এই সমাধান বিরতি. আর তাছাড়া, আমি stylistically দাবি, বিশেষ করে যখন আপনার প্রোগ্রাম এই দীর্ঘ এবং এই দীর্ঘ হয়ে, এটা শুধু সুপার সুবিধাজনক উপরের প্রধান করা এটি জিনিস, কারণ অধিকাংশ প্রোগ্রামারদের সম্পর্কে যত্ন করতে যাচ্ছি. এবং তাই এটি একটি সামান্য ক্লিনার, তর্কসাপেক্ষ, এটা উপায় কি আমি মূলত তা একটি প্রোটোটাইপ সঙ্গে এমনকি এটি একটি সামান্য দেখায় যদিও প্রথম নজরে অপ্রয়োজনীয়. হ্যাঁ? দুঃখিত, আপনি জোরে বলতে পারেন? আপনি অবস্থানে সুইচ বাস্তবায়ন এবং প্রোটোটাইপ? সুতরাং যে একটা ভাল প্রশ্ন. যদি আপনি এই নিচে পুনরায় ঘোষণা এখানে, এর কি দেখতে দিন. আমি এই দমন করা, যদি তাই হয় এখানে, আপনি বলছে. ওহ, দুঃখিত. জোরে? এমনকি জোরে. ওহ, ভালো প্রশ্ন. এটি ফাংশন বাতিল করা হবে? আপনি কি জানেন, সব এই বছর পরে, আমি পরে একটি প্রোটোটাইপ করা না আছে. সুতরাং এর ফাংশন-1 করতে করতে যে করছেন পরে. [বিড়বিড়] ডেভিড জে MALAN: ওহ, অপেক্ষা করুন. আমরা এখনও শীর্ষ সবকিছু আপ করা আছে. তাই আমি যদি এখানে এই পর্যন্ত করতে দেওয়া সঠিকভাবে আপনার প্রশ্ন বুঝতে. আমি সহ সবকিছু নির্বাণ করছি প্রধান উপরে প্রোটোটাইপ, কিন্তু আমি প্রোটোটাইপ নির্বাণ করছি বাস্তবায়ন নিচে. আমি এক করা, আমি পেয়ে করছি তাই ফিরে একটি error-- অব্যবহৃত n পরিবর্তনশীল. ওহ, আছে. আপনাকে ধন্যবাদ. এর দেখতে দিন, আমরা এই পরিত্রাণ পেতে. যে, একটি ভিন্ন বাগ তাই এর যে উপেক্ষা করা যাক. সত্যিই দ্রুত এই পুনর্নির্মাণ. ঠিক আছে, তাই তথ্য যুক্তি না ফরম্যাট স্ট্রিং দ্বারা ব্যবহৃত উহু n--, যে কারণ আমি এখানে এই পরিবর্তন. ঠিক আছে, আমরা জানি কি উত্তর চাচ্ছি সব অধিকার যাচ্ছে, আমরা এখানে. আহ, ইতিবাচক জন্য ধন্যবাদ. সমস্ত অধিকার, আমি এই কোড ঠিক করবে after-- এই বিশেষ বাগ উপেক্ষা এই এটি কাজ করে was-- থেকে উত্তর. সুতরাং এটি মুছে ফেলা না আপনি কি ঠিক করেছেন. আমি কম্পাইলার সন্দেহ যেমন একটি উপায় লেখা এটি আপনার প্রোটোটাইপ উপেক্ষা করা হয় শরীরের কারণ, তাই কথা বলতে, ফাংশন ইতিমধ্যে এর উচ্চতর পর্যন্ত প্রয়োগ করা হয়েছে. আমি আসলে পরামর্শ করতে হবে কম্পাইলার ম্যানুয়াল অন্য কোনো আছে যদি বুঝতে সংশ্লেষ, কিন্তু প্রথম নজরে শুধু চেষ্টা এবং পরীক্ষা নিরীক্ষা করে, কোন প্রভাব আছে বলে মনে হয়. ভাল প্রশ্ন. সুতরাং এর এখন এগিয়ে কামারশালা চলন্ত দিন দূরে পার্শ্ব প্রতিক্রিয়া থেকে যা ভালো কিছু করতে যে ফাংশন দৃশ্যত printf সঙ্গে পর্দায়, কিন্তু একটি মান প্রদান করে না. এবং যে ফাংশন রিটার্ন আছে আমরা মত মান ঠিক কয়েক দেখেছি. আমরা ইতিমধ্যে, সুযোগ এই ধারণা দেখেছি এবং আমরা আবার এবং আবার এই দেখতে পাবেন. কিন্তু এখন জন্য, আবার, চলতি রীতি ব্যবহার একটি পরিবর্তনশীল শুধুমাত্র ব্যবহার করা যেতে পারে অতি সম্প্রতি খোলা ভিতরে এবং আমরা বদ্ধ কোঁকড়া ধনুর্বন্ধনী যে বিশেষ উদাহরণ দেখেছি. এবং আপনি হিসাবে নির্দিষ্ট একটি সামর্থ্যের আছে আপনি এই সমস্যার কিছু সমাধান করতে পারে একটি পরিবর্তনশীল বিশ্বব্যাপী নির্বাণ দ্বারা একটি ফাইল খুব শীর্ষে. কিন্তু প্রায় সব ক্ষেত্রেই আমরা যে উপর ভ্রূকুটি হবে, এবং প্রকৃতপক্ষে, এমনকি না যেতে এখন জন্য যে সমাধান মধ্যে. এখন জন্য, Takeaway যে ভেরিয়েবল সুযোগ এই ধারণা আছে. কিন্তু এখন এর অন্য তাকান আসলে খুঁজছেন শুষ্ক উপায় কিছু প্রশংসনীয় আকর্ষণীয় এ বাস্তবায়ন বিবরণ. আমরা কিভাবে তথ্য উপস্থাপন করা হতে পারে. এবং আমরা ইতিমধ্যে এই দিকে তাকিয়ে বর্গ প্রথম সপ্তাহে. বাইনারি এ খুঁজছি, এবং দশমিক নিজেদেরকে স্মারক. কিন্তু সি আছে যে গত সপ্তাহ থেকে প্রত্যাহার বিভিন্ন ধরনের তথ্য এবং কাঁদি আরো, কিন্তু সবচেয়ে দরকারী বেশী এখন জন্য এই হতে পারে. যা ঘটবে একটি গৃহস্থালি, বা অক্ষর, এক বাইট, বা আট বিট মোট হবে. এবং যে আকার যে বলে এর একটি গৃহস্থালি মাত্র এক বাইট. একটি বাইট আট বিট, তাই এই এর মানে হল যে আমরা কিভাবে অনেক অক্ষর উপস্থাপন করতে পারেন. কত অক্ষর বা কীবোর্ড চিহ্ন আমরা এক বাইট বা আট বিট আছে. ফিরে সপ্তাহে শূন্য মনে হয়. আপনি আট বিট আছে, কত মোট মান আপনার সাথে উপস্থাপন করতে পারেন zeros এবং বেশী নিদর্শন? যে বেশী One--. তাই 256 মোট আপনি যদি শূন্য থেকে গণনা শুরু. সুতরাং আপনি আট বিট, তাই আমরা যদি থাকে তাহলে আবার এখানে আমাদের বাইনারি বাল্ব ছিল আমরা যারা লাইট বাল্ব চালু হতে পারে এবং 256 অনন্য নিদর্শন কোনো বন্ধ. এখন এই একটি বিট সমস্যাযুক্ত. ইংরেজি এবং জন্য এত না রোমান্স ভাষা, কিন্তু অবশ্যই আপনাকে পরিচয় করিয়ে দিতে, যখন জন্য উদাহরণস্বরূপ, এশিয়ান ভাষা, যা মত চেয়ে অনেক বেশি চিহ্ন আছে বর্ণমালার 26 অক্ষর. আমরা আসলে প্রয়োজন হতে পারে এক বাইট বেশী. এবং সৌভাগ্যক্রমে মধ্যে সাম্প্রতিক বছর সমাজ আছে ব্যবহার গৃহীত অন্যান্য মান চার্জ প্রতি অধিক এক বাইট. কিন্তু এখন সি, ডিফল্ট জন্য মাত্র এক বাইট বা আট বিট. একটি পূর্ণসংখ্যা এদিকে, চার হয় বাইট, অন্যথায় 32 বিট হিসাবে পরিচিত. যা বৃহত্তম সম্ভব কি মানে সংখ্যা আমরা কোন int সঙ্গে উপস্থাপন করতে পারেন দৃশ্যত? একটি বিলিয়ন. সুতরাং এটি চার বিলিয়ন বা দিতে নিতে হবে. 2 32th ক্ষমতা, আমরা যদি কোন ঋণাত্মক সংখ্যা অনুমান এবং শুধু সব ইতিবাচক ব্যবহার সংখ্যা, এটা চার বিলিয়ন বা দিতে সম্ভাবনার নিতে. একটি float এদিকে, বিভিন্ন ধরনের হয় এটা এখনও একটি সংখ্যা সি ডাটা টাইপ, কিন্তু এটি একটি বাস্তব সংখ্যা. একটি দশমিক বিন্দু সঙ্গে কিছু. এবং এটি সক্রিয় করে যে সি এছাড়াও চার বাইট ব্যবহার ফ্লোটিং পয়েন্ট মান প্রতিনিধিত্ব. দুর্ভাগ্যবশত কত ভাসমান বিন্দু মান বিশ্বের আছে? কত বাস্তব সংখ্যা আছে? একটি অসীম আছে সংখ্যা, এবং জন্য যে বিষয়টি পূর্ণসংখ্যার একটি অসীম সংখ্যা আছে. তাই আমরা ধরনের ইতিমধ্যেই এখানে আমরা একটি গর্ত খনন. যেখানে দৃশ্যত computers-- এ them-- উপর সি অন্তত প্রোগ্রাম শুধুমাত্র হিসাবে হিসাবে উচ্চ গণনা করতে পারেন চার বিলিয়ন, বা দিতে নিতে এবং ফ্লোটিং পয়েন্ট মান শুধুমাত্র দৃশ্যত স্পষ্টতা কিছু নির্দিষ্ট পরিমাণ আছে. শুধু তাই অনেক সংখ্যা পরে তাদের দশমিক পয়েন্ট. কারণ, অবশ্যই, যদি আপনি শুধুমাত্র 32 বিট আছে, আমি মনে করি আমরা সম্পর্কে যেতে চলুন জানি না সম্ভবত বাস্তব সংখ্যার প্রতিনিধিত্বমূলক নিদর্শন বিভিন্ন ধরনের সঙ্গে. কিন্তু নিশ্চয় একটি নির্দিষ্ট আছে যেমন নিদর্শন নম্বর, তাই এখানে খুব,, এই সমস্যাযুক্ত. এখন আমরা সামান্য সমস্যা এড়াতে পারবেন. আপনি একটি float ব্যবহার করবেন না, আপনি একটি ডবল ব্যবহার করতে পারে সি, যা আপনি আট বাইট, যা দেয় শূন্যের পথ আরো সম্ভব নিদর্শন হয় এবং বেশী. কিন্তু যা হয়, এখনও সমাপিকা আপনি যদি সফটওয়্যার লিখতে যদি সমস্যাযুক্ত হতে গ্রাফিক্স জন্য বা অভিনব জন্য গাণিতিক সূত্র. সুতরাং আপনি আসলে চান হতে পারে যে চেয়ে বড় আপ গণনা করা. একটি লম্বা দীর্ঘ stupidly named-- আট বাইট, বা 64 বিট, এবং এই, কোন int হিসাবে দুইবার হিসাবে দীর্ঘ এবং এটি একটি দীর্ঘ পূর্ণসংখ্যা মান জন্য. মজা fact-- কোন int, চার বাইট যদি সাধারণত সি একটি দীর্ঘ কত হবে? এছাড়াও চার বাইট, কিন্তু একটি দীর্ঘ দীর্ঘ আট বাইট, এবং এই ঐতিহাসিক কারণে হয়. কিন্তু এখন Takeaway শুধু যে তথ্য আছে যে একটি কম্পিউটারে মধ্যে প্রতিনিধিত্ব করা বিদ্যুতের সঙ্গে একটি প্রকৃত ডিভাইস, এটি সাধারণত ড্রাইভিং যারা zeros এবং ones-- স্পষ্টতা নির্দিষ্ট পরিমাণে. সুতরাং সমস্যা তারপর কি? ভাল একটা সমস্যা আছে পূর্ণসংখ্যা ওভারফ্লো. নেই শুধু সি, কিন্তু সাধারণ কম্পিউটার. উদাহরণস্বরূপ, এই যদি একটি বাইট মূল্য একটি বিট হয় তাই এই সব আট বিট যদি যা সংখ্যা এক. কি নম্বর এই আমরা অনুমান যদি প্রতিনিধিত্বমূলক এটি বাইনারি সব ইতিবাচক মান? 255, এবং এটি 256 কারণ, না শূন্য সর্বনিম্ন সংখ্যা. তাই 255 সর্বোচ্চ এক, কিন্তু সমস্যা আমি চেয়েছিলেন অনুমান করা হয় যে এই পরিবর্তনশীল বাড়ায় যে আট বিট মোট ব্যবহার করা হয় আমি এটা বাড়ায় করতে চান. ওয়েল আমি যোগ যত তাড়াতাড়ি একটি এগুলো সব এক, আপনি সম্ভবত ঠিক visually-- কল্পনা করতে পারেন decimals-- ব্যবহার করে এক বহন মত কিছু বাম প্রবাহ যাচ্ছে. এবং প্রকৃতপক্ষে, আমি নম্বর যোগ করুন এই এক, কি বাইনারি ঘটবে এটি ফিরে শূন্য উপচে হয়. তাই আপনি যদি শুধুমাত্র কোন int না use-- যদি, কিন্তু একটি একক বাইট পূর্ণসংখ্যা গণনা একটি প্রোগ্রাম, যত তাড়াতাড়ি ডিফল্ট আপনি, 250 পেতে 251, 252, 253, 254, 255-- 0, 255 পরে আসে যা সম্ভবত না কি একটি ব্যবহারকারী আশা করা যাচ্ছে. এখন এদিকে বিন্দু বিশ্বের ভাসমান মধ্যে, আপনি একই সমস্যা আছে. বৃহত্তম সংখ্যা দিয়ে এত না যদিও যে এখনও একটি বিষয়. কিন্তু স্পষ্টতা পরিমাণ আপনি উপস্থাপন করতে পারেন. তাই এর এই উদাহরণ কটাক্ষপাত করা যাক এখানে আজকের উৎস code-- থেকে ভাসা-0.c. এবং এটি একটি সুপার বিজ্ঞপ্তি সহজ প্রোগ্রাম যে দৃশ্যত কি মান প্রিন্ট আউট করা উচিত? আপনি এই মুদ্রণ যাচ্ছে বাজি না কি নতুন বাক্য গঠন একটি বিট আছে, যদিও এখানে? তাই আশা করছি 0.1. তাই এক দশমাংশ এর সমতুল্য আমি 10 দ্বারা বিভক্ত 1 করছি কারণ. আমি উত্তর সংরক্ষণ করছি একটি পরিবর্তনশীল চ বলা হয়. যে পরিবর্তনশীল টাইপ ভাসা, যা আমি শুধু প্রস্তাবিত একটি শব্দ অস্তিত্ব হয়. আমরা আগে এই দেখা যায়, কিন্তু না করেছি এই printf একটি ঝরঝরে উপায় ধরনের কিভাবে অনেক সংখ্যা নির্দিষ্ট করতে আপনি একটি দশমিক বিন্দু পরে দেখতে চাই. তাই এই স্বরলিপি ঠিক মানে এখানে যে একটি স্থানধারক হয়. এটি একটি ফ্লোটিং পয়েন্ট জন্য মান, এবং উহু, উপায় দ্বারা, দশমিক বিন্দু সঙ্গে সঙ্গে তা প্রদর্শন দশমিক বিন্দু পর এক সংখ্যা. সুতরাং যে সংখ্যা উল্লেখযোগ্য সংখ্যা, তাই আপনি চান হতে পারে যে, কথা বলতে. তাই আমাকে এগিয়ে যান এবং কাজ করতে দিন ./float-0, ভাসা 0 না, এবং দৃশ্যত 1 10 দ্বারা বিভক্ত হল 0.0. এখন কেন এই? ভাল আবার, কম্পিউটার গ্রহণ করা হয় আমাকে আক্ষরিক, এবং আমি 1 লেখা এবং আমি 10, লিখিত এবং একটি অনুমান নিতে কি যারা দুই জন্য অধিকৃত ডাটা টাইপ মান? কোন int, এটা টেকনিক্যালি এর একটু ভিন্ন কিছু. এটি সাধারণত একটি দীর্ঘ, কিন্তু এটা শেষ পর্যন্ত একটি অবিচ্ছেদ্য মান. একটি ফ্লোটিং পয়েন্ট মান. যা যে যদি এই বলতে হয় কোন int এবং এই হল কোন int সমস্যা কম্পিউটার যে ক্ষমতা থাকে না এমনকি যে দশমিক বিন্দু সঞ্চয়. আপনি 1 সুতরাং যখন বিভক্ত 10 ইন্টিজার ব্যবহার করে দ্বারা লব এবং উভয় জন্য হর, উত্তর 0.1 হতে হবে. কিন্তু কম্পিউটারে কারণ যারা ইন্টিজার হয় 0.1 কি না জানি না. তাই এটা স্পষ্ট করছে? এটা ঠিক, দূরে নিক্ষেপ এবং আমি শেষ পর্যন্ত কি এইজন্য করছি আমি জোর দেন যে শুধুমাত্র কারণ হল 0.0 printf, আমার এক দশমিক বিন্দু প্রদর্শন. কিন্তু সমস্যা হল যে আপনি যদি একটি পূর্ণসংখ্যা একটি পূর্ণসংখ্যা দ্বারা বিভক্ত, আপনি সংজ্ঞা দ্বারা get-- হবে একটি পূর্ণসংখ্যা সি. এবং তা করা যাচ্ছে না সুন্দর এবং সুবিধামত কিছু পর্যন্ত এটি বৃত্তাকার মত এক আপ বা ডাউন কাছের. এটা অগ্রভাগ ছাঁটিয়া যাচ্ছে দশমিক পর সবকিছু. তাই শুধু intuitively, সম্ভবত একটি ফিক্স কি? এখানে সহজ ফিক্স কি? হ্যাঁ? ঠিক. কেন আমরা শুধু এই আচরণ করবেন না কার্যকরভাবে ফ্লোটিং পয়েন্ট মান ফ্লোট বা টেনিস সেগুলি বাঁক. এবং এখন আমি যদি ফ্লোট-0, অথবা আমি ফ্লোট-1 কম্পাইল করে, যা অভিন্ন ঠিক কি প্রস্তাব করা হয়েছে. এবং এখন আমি ফ্লোট-0, এখন আমি আমার 0.1 পাবেন না. এখন এই আশ্চর্যজনক. কিন্তু এখন আমি কি করতে যাচ্ছি একটু ভিন্ন কিছু. আমি সত্যিই কি দেখতে অদ্ভুত ফণা নীচে যাচ্ছে, এবং আমি এই মুদ্রণ করা যাচ্ছে না আউট 28 দশমিক স্থান. আমি সত্যিই দেখতে চান 0.1000-- একটি infinite-- যে 0.1 পরে [শ্রবণাতীত] 27 শূন্য. ভাল যে যদি এর দেখতে দিন আমি সত্যিই পেতে. ফ্লোট 0 একই ফাইল তৈরি করুন. ./floats-0. এর নাটকীয় উত্তর জুম. এই সময়, আপনি চিন্তা করেছি 10 দ্বারা বিভক্ত 1 10%, অথবা 0.1. এটা না. এ পর্যন্ত হিসাবে কম্পিউটার এর উদ্বিগ্ন. ঠিক আছে why-- এখন, যে সম্পূর্ণ 10 দ্বারা বিভক্ত মিথ্যা 1 0.1. কিন্তু যে হয় না why-- Takeaway আজ. সুতরাং কেন কম্পিউটার, মনে হয় রুমে আমাদের সব ভিন্ন, 1 10 দ্বারা ভাগ যে আসলে যে পাগল মান? দৃশ্যত করছেন কম্পিউটার কি? কি যে? এটা কোনটাই, ওভারফ্লো না. ওভারফ্লো সাধারণত যখন আপনি একটি মান চারপাশে মোড়ানো. এটা অনির্দিষ্টতা এই সমস্যা একটি ফ্লোটিং পয়েন্ট মান আপনি শুধুমাত্র 32 আছে যেখানে হয়তো বা এমনকি 64 বিট. কিন্তু অসীম আছে যদি বাস্তব সংখ্যার সংখ্যা দশমিক পয়েন্ট সংখ্যা এবং সংখ্যার নিশ্চয় তারপরে আপনি তাদের সব প্রতিনিধিত্ব করতে পারে না. তাই কম্পিউটার দেওয়া হয়েছে আমাদের নিকটস্থ ম্যাচ মান যে ব্যবহার করে উপস্থাপন করতে পারেন আমি আসলে চান মান অনেক বিট, যা 0.1. দুর্ভাগ্যবসত, আপনি যদি গণিত করছেন, আরম্ভ অথবা আপনি ভাসমান এই ধরণের জড়িত শুরু গুরুত্বপূর্ণ programs-- মধ্যে বিন্দু মান আর্থিক সফ্টওয়্যার, সামরিক সফ্টওয়্যার কিছু যেখানে উপলব্ধি সম্ভবত বেশ গুরুত্বপূর্ণ. এবং আপনি যোগ শুরু ভালো নম্বর, এবং শুরু যে সফ্টওয়্যার চলমান সত্যিই বড় ইনপুট সঙ্গে বা ঘন্টা বা প্রচুর প্রচুর জন্য বছর দিন বা প্রচুর, এই সব ছোট ছোট সামান্য ভুল নিশ্চয় সময়ের আপ যোগ করতে পারেন. এখন একটি সরাইয়া হিসাবে, আপনি কি কখনও সুপারম্যান 3 বা অফিস স্পেস দেখা এবং আপনি প্রত্যাহার হতে পারে কিভাবে যারা না চুরি তাদের কম্পিউটার থেকে অনেক টাকা ফ্লোটিং পয়েন্ট মান ব্যবহার করে এবং সামান্য যোগ আপ ভাগশেষ আশা, যে সিনেমা এখন আরো ইন্দ্রিয় তোলে. এই তারা কি যে সিনেমা থেকে alluding. আসলে সবচেয়ে যে কোম্পানি তাকান না একটি নির্দিষ্ট পরে দশমিক স্থান, কিন্তু যারা সেন্ট ভগ্নাংশ হয়. সুতরাং আপনি তাদের যোগ শুরু আপনি অনেক টাকা করা শুরু আপনার ব্যাংক একাউন্টে. সুতরাং যে অফিস স্পেস ব্যাখ্যা আছে. এখন দুর্ভাগ্যবশত অতিক্রম অফিস স্পেস আছে, কিছু বৈধভাবে সমস্যাগ্রস্থ এবং উল্লেখযোগ্য প্রভাব এই ধরণের অন্তর্নিহিত নকশা সিদ্ধান্ত, কারণ এবং প্রকৃতপক্ষে এক আমরা অবশ্যই সি ব্যবহার আপনি কি সত্যিই এই স্থল আছে যাতে কম্পিউটার কিভাবে কাজ করে বুঝতে আপ, কিভাবে সফ্টওয়্যার কাজ করে, এবং না মঞ্জুর জন্য কিছু করা. এবং প্রকৃতপক্ষে দুর্ভাগ্যবশত, এমনকি সঙ্গে যে মৌলিক বুঝতে, আমরা মানুষের ভুল. এবং কি আমি ভাগ চাই হয় এই আট মিনিটের ভিডিও এখানে গ্রহণ যা একটি আধুনিক Marvels পর্ব, থেকে কিভাবে যে কাজ উপর একটি শিক্ষাগত শো যে দুটি ছবি রঙে যখন একটি ভ্রান্ত ব্যবহার এবং বোঝার ফ্লোটিং পয়েন্ট মান কিছু গুরুত্বপূর্ণ নেতৃত্বে দু: খজনক ফলাফল. এর কটাক্ষপাত করা যাক. [ভিডিও প্লেব্যাক] আমরা এখন প্রকৌশল "ফিরে আধুনিক Marvels উপর বিপর্যয় ". কম্পিউটার. আমরা সব গ্রহণ করতে আসা করেছি প্রায়ই হতাশাজনক সমস্যা যে them-- বাগ, ভাইরাস সঙ্গে আছে, এবং ছোট থাকার জন্য সফ্টওয়্যার glitches-- সুবিধার জন্য প্রদান. কিন্তু উচ্চ প্রযুক্তির এবং উচ্চ গতি সামরিক এবং স্থান অ্যাপ্লিকেশন প্রোগ্রাম, ক্ষুদ্রতম সমস্যা করতে পারেন দুর্যোগ মধ্যে বিবর্ধিত করা. জুন 4, 1996 তারিখে, বিজ্ঞানীদের প্রস্তুত একটি জনহীন Ariane 5 রকেট আরম্ভ. এটা বৈজ্ঞানিক বহন করেন উপগ্রহ ডিজাইন অবিকল কিভাবে স্থাপন করা পৃথিবীর চৌম্বক ক্ষেত্র মিথস্ক্রিয়া সৌর বায়ু সাথে. রকেট জন্য নির্মিত হয়েছিল ইউরোপিয়ান স্পেস এজেন্সি, এবং তার সুবিধা থেকে উত্ক্ষিপ্ত বন্ধ ফরাসি গায়ানা উপকূলে. মধ্যে প্রায় 37 যাও -এ ফ্লাইট, তারা প্রথম খেয়াল কিছু ভুল হচ্ছে. অগ্রভাগ swiveling ছিল যে একটি উপায় তারা সত্যিই না করা উচিত. ফ্লাইট মধ্যে প্রায় 40, পরিষ্কারভাবে গাড়ী, কষ্ট হয়েছিল, তারা যখন এবং যে সিদ্ধান্ত এটি ধ্বংস করা. পরিসীমা নিরাপত্তা আধিকারিক সঙ্গে অসাধারণ সাহস, বাটন টেপা এটি করতে পারে এবং আগে রকেট blew আপ জননিরাপত্তা একটি বিপত্তি হয়ে. -এই কুমারী ছিল Ariane 5 সমুদ্রযাত্রা, এবং তার ধ্বংসের গ্রহণ কারণ খুঁত লিখুন রকেট এর সফ্টওয়্যার এমবেড করা. উপর -বাছাইযোগ্য সমস্যা এনসাইক্লোপিডিয়া ছিল যে প্রয়োজন একটি সংখ্যা যে ছিল 64 বিট, প্রকাশ এবং তারা রূপান্তর করতে চেয়েছিলেন একটি 16 বিট সংখ্যা এটা. তারা সংখ্যা অধিকৃত খুব বড় হবে না. যে যারা সংখ্যা সবচেয়ে 64 বিট সংখ্যা zeros. তারা ভুল. এক অক্ষমতা সফটওয়্যার প্রোগ্রাম গ্রহণ সংখ্যা দ্বারা সৃষ্ট এক ধরনের অন্য ব্যর্থতার মূলে ছিল. সফটওয়্যার উন্নয়ন হয়ে উঠেছে একটি নতুন প্রযুক্তি খুব ব্যয়বহুল অংশ. Ariane 4 রকেট ছিল খুব সফল হয়েছে. জন্য তৈরি সফটওয়্যার তাই অনেক এটা Ariane 5 ব্যবহার করা হয়. -মৌলিক সমস্যা যে ছিল Ariane 5. Faster--, দ্রুত গতি বৃদ্ধি করা হয় এবং সফ্টওয়্যার এবং যে জন্য দায়ী ছিল না. রকেট ধ্বংস বিপুল আর্থিক দুর্যোগ. সমস্ত কারণে মিনিট সফ্টওয়্যার ত্রুটির. কিন্তু এই প্রথম ছিল না সময় তথ্য রূপান্তর সমস্যা আধুনিক প্রযুক্তি রকেট জর্জরিত ছিল. শুরু 1991 ইন প্রথম উপসাগরীয় যুদ্ধের, প্যাট্রিয়ট মিসাইল একই ধরনের অভিজ্ঞতা একটি নম্বর রূপান্তর সমস্যা. এবং এর ফলে 28 মানুষ, 28 আমেরিকান soldiers-- নিহত হয়, এবং প্রায় শত জন আহত হয়েছে. যখন যা অনুমিত ছিল দেশভক্ত, অন্তর্মুখী Scuds রক্ষা করার জন্য, একটি ক্ষেপণাস্ত্র জ্বালান ব্যর্থ হয়েছে. যখন ইরাক কুয়েত, আক্রমণ করে এবং আমেরিকা প্রথম দিকে 1991 সালে মরুভূমি ঝড় চালু, প্যাট্রিয়ট মিসাইল ব্যাটারী মোতায়েন করা হয়েছে সৌদি আরব ও ইসরাইল রক্ষা ইরাকি ছুটিয়া চলা ক্ষেপণাস্ত্র আক্রমণ থেকে. দেশভক্ত একটি মার্কিন মাঝারি পরিসীমা পৃষ্ঠ থেকে বায়ু সিস্টেম RAYTHEON কোম্পানি দ্বারা উত্পাদিত. দেশভক্ত এর -বাছাইযোগ্য আকার আটককারী নিজেই এটি সম্বন্ধে প্রায় 20 ফুট দীর্ঘ এবং এটি প্রায় 2,000 পাউন্ড weighs. এবং এটি সম্পর্কে একটি টরপেডো বহন আমি এটা প্রায় 150 পাউন্ড মনে করি. এবং টরপেডো নিজেই একটি উচ্চ বিস্ফোরক, যা তাকে প্রায় টুকরা আছে. তাই টরপেডো এর আবরণ হয় একটি ছর্রা ভালো কাজ করার জন্য ডিজাইন করা. -বাছাইযোগ্য মিসাইল বাহিত হয় ধারক প্রতি চার, এবং একটি আধা ট্রেলার দ্বারা পরিবাহিত হয়. -বাছাইযোগ্য দেশভক্ত বিরোধী মিসাইল সিস্টেম এখন অন্তত 20 বছর ফিরে যায়. এটি মূলত ছিল পরিকল্পিত একটি বিমান প্রতিরক্ষা ক্ষেপণাস্ত্র হিসাবে শত্রু বিমান শিকারভূমি নিচে. প্রথম উপসাগরীয় যুদ্ধের মধ্যে যে যুদ্ধ যখন, আর্মি করার জন্য এটি ব্যবহার করতে চেয়েছিলেন Scuds, না এ্যারোপ্লেনের অঙ্কুর ডাউন. ইরাকি বিমান বাহিনী ছিল একটি সমস্যা, তাই অনেক না, কিন্তু আর্মি Scuds সম্পর্কে চিন্তিত ছিলাম. এবং তাই তারা করার চেষ্টা দেশভক্ত আপগ্রেড করতে পারবেন. একটি শত্রু -Intercepting মাপক 5 এ ভ্রমণ ক্ষেপণাস্ত্র যথেষ্ট প্রতিদ্বন্দ্বিতা করা যাচ্ছে. কিন্তু যখন দেশভক্ত সেবা মধ্যে rushed ছিল, সেনাবাহিনী অবগত ছিল না একটি ইরাকি পরিবর্ধনের যে তাদের Scuds তৈরি প্রায় এটা অসম্ভব. -কি ঘটেছে Scuds যে আসছে ছিল অস্থির ছিল. তারা wobbly ছিল. এই জন্য কারণ Iraqis-- ছিল 600 কিলোমিটার আউট পেতে একটি 300 কিলোমিটার পরিসীমা missile-- এর , সামনে টরপেডো আউট ওজন গ্রহণ এবং টরপেডো হালকা করা. তাই এখন দেশভক্ত আসতে চেষ্টা ছুটিয়া চলা এ, সময়ের এবং সবচেয়ে অপ্রতিরোধ্য অধিকাংশ সময়ের এটা শুধু ছুটিয়া চলা দ্বারা উড়ে আসা হবে. দেশভক্ত সিস্টেম অপারেটরদের -একবার , দেশভক্ত প্রতীত তার টার্গেট মিস তারা দেশভক্ত এর টরপেডো detonated এটা যদি সম্ভব হতাহতের ঘটনা এড়ানোর জন্য মাটিতে পড়া করার অনুমতি দেওয়া হয়. সরল অধিকাংশ মানুষ দেখেছি কি ছিল হিসাবে আকাশে বড় fireballs, এবং অনেকেই ভুল বুঝে ভাবেন ছুটিয়া চলা warheads এর বিবৃতি. রাত skies, Patriots ইন -যদিও সফলভাবে ধ্বংস করা হবে Scuds, Dhahran এ হতে পারে তার কর্মক্ষমতা সম্পর্কে কোন ভুল. সেখানে দেশভক্ত এর রাডার সিস্টেম একটি অন্তর্মুখী ছুটিয়া চলা হারিয়ে ট্র্যাক এবং কারণে চালু না একটি সফ্টওয়্যার খুঁত. এটা প্রথম আবিষ্কৃত যারা ইজরায়েলের ছিল আর সিস্টেম ছিল, অধিক সময় অমিল ওঠে. দরুন এমবেডেড একটি ঘড়ি কম্পিউটার সিস্টেম এর মধ্যে. -ওপর দুই সপ্তাহ আগে দাহরান এ বিয়োগান্ত নাটক, ইজরায়েলের রিপোর্ট প্রতিরক্ষা দপ্তর যে সিস্টেম সময় হারিয়ে ছিল. প্রায় আট ঘণ্টা পর চলমান, তারা লক্ষ্য সিস্টেমের হয়ে উঠছে যে লক্ষণীয়ভাবে কম সঠিক. প্রতিরক্ষা দপ্তর দ্বারা প্রতিক্রিয়া প্যাট্রিয়ট ব্যাটারি সব বলার সিস্টেম ছেড়ে চলে যেতে না একটি দীর্ঘ সময়ের জন্য. তারা একটি দীর্ঘ সময় ছিল বলেন না. 8 ঘন্টা, 10 ঘন্টা, হাজার হাজার ঘন্টা. কেউ জানত. -বাছাইযোগ্য প্যাট্রিয়ট ব্যাটারি ব্যারাকে এ সংস্থিত দাহরান এবং তার দ্বিধান্বিত অভ্যন্তরীণ এ ঘড়ি 100 ঘন্টার জন্য হয়েছে ফেব্রুয়ারি 25 রাত. -এটা একটি নির্ভুলতা সময় অনুসরণ করা একটি দ্বিতীয় একটি দশম সম্পর্কে. একটি দ্বিতীয় এখন একটি দশম একটি আকর্ষণীয় সংখ্যা এটি প্রকাশ করা যাবে না, কারণ ঠিক বাইনারি যা এটা ঠিক প্রকাশ করা যাবে না মানে কোনো আধুনিক ডিজিটাল কম্পিউটার. এটা বিশ্বাস করা কঠিন কিন্তু একটি উদাহরণ হিসাবে এই ব্যবহার. এর এক নম্বর তৃতীয় নিতে. এক তৃতীয়াংশ হতে পারে না ঠিক দশমিক প্রকাশ. এক তৃতীয়াংশ 0,333 হয় অনন্ত জন্য যাওয়া. সঙ্গে যে কি কোন উপায় আছে একটি দশমিক পরম সঠিকতা. যে সমস্যা ঠিক ধরনের যে দেশভক্ত মধ্যে ঘটেছে. আর সিস্টেম চলে, খারাপ সময় ত্রুটি হয়ে ওঠে. অপারেশন 100 ঘন্টা পরে, সময় সময় মাত্র এক তৃতীয়াংশ ছিল একটি দ্বিতীয়. কিন্তু একটি লক্ষ্য শর্তাবলী মাপক 5 এ ভ্রমণ ক্ষেপণাস্ত্র, এটি একটি ট্র্যাকিং ফলে 600 মিটার ত্রুটি. এটি একটি মারাত্মক ত্রুটি হবে Dhahran এ সৈন্যদের জন্য. একটি দ্রুতগামী মেঘ প্রবর্তন ছিল -কি ঘটেছে প্রাথমিক সতর্কতা উপগ্রহ দ্বারা সনাক্ত করা, এবং তারা একটি ছুটিয়া চলা আসছে ছিল তাদের সাধারণ দিক. যেখানে ছিল আসছে এটা তারা জানেন না. এটা রাডার এখন পর্যন্ত ছিল দেশভক্ত সিস্টেম কম্পোনেন্ট Dhahran রক্ষা এবং সনাক্ত রাখা আগত শত্রু ক্ষেপণাস্ত্র ট্র্যাক. স্বয়ংক্রিয়ভাবে রাডার খুব স্মার্ট ছিল. এটা আসলে ট্র্যাক করবে ছুটিয়া চলা অবস্থান এবং তারপর যেখানে ভবিষ্যদ্বাণী করা এটা সম্ভবত হবে পরবর্তী সময় রাডার একটি পালস পাঠানো আউট. যে পরিসীমা গেট বলা ছিল. দেশভক্ত একবার চয়ন করুন তারপর যথেষ্ট সময় আছে করার সিদ্ধান্ত নেয় ফিরে যান এবং পরবর্তী পরীক্ষা পাস এই বস্তু সনাক্ত করার জন্য পাঁচ এটা ফিরে যায়. তাই এটা ভুল ফিরে গিয়েছিলাম যখন জায়গা, এটা তাহলে কোন বস্তু দেখতে পায়. এবং এটা কোন বস্তু ছিল যে সিদ্ধান্ত নেয়. একটি মিথ্যা সনাক্তকরণ ছিল এবং এটি ট্র্যাক ড্রপ. স্বয়ংক্রিয়ভাবে অন্তর্মুখী ছুটিয়া চলা অদৃশ্য রাডার পর্দা থেকে, এবং সেকেন্ডের পরে, এটি ব্যারাকে মধ্যে slammed. ছুটিয়া চলা 28 নিহত. এটা গত এক বহিস্কার করা হয় প্রথম উপসাগরীয় যুদ্ধের সময়. ঘটনাবহুল, আপডেট সফ্টওয়্যার পরের দিন ভোর এসেছে. সফ্টওয়্যার ত্রুটি ছিল হয়েছে সংশোধন করা হয়েছে, বন্ধের অস্থির এক অধ্যায় প্যাট্রিয়ট মিসাইল এর ইতিহাস. [END টি ভিডিও প্লেব্যাক] ডেভিড জে MALAN: এটা CS50 জন্য এটি. আমরা বুধবার আপনি দেখতে পাবেন. [সঙ্গীত বাজানো]