[Powered by Google Translate] ডেভিড জে MALAN: ঠিক আছে. এটি CS50, এবং এই দুই সপ্তাহ শেষে. আপনি যদি এই সময় আগামীকাল চারপাশে ক্ষুধার্ত বলে আশা করা, জানি যে আমরা চলুন একটি ছোট গ্রুপ আগামীকাল, বৃহস্পতিবার, 1:15 PM তে পোস্ট হিসাবে আহ্বান যাও. এখানে এখন পর্যন্ত এই URL-এ যদি আপনি উত্তর দিতে চাই. স্থান সীমিত, তাই যদি ফর্ম সময় দ্বারা পূরণ করেনি আপ ক্ষমা দয়া করে আপনি এই পূরণ. অন্য URL যদিও যে সুদ হতে পারে এটি. সে সম্পর্কে একটি মাসের সময়, কোর্স করা উপলব্ধ করা যাচ্ছে edX মাধ্যমে সমস্ত আরো বিস্তৃতভাবে, যা ইন্টারনেটের মাধ্যমে লোকেরা হবে যাও বরাবর অনুসরণ, অবশ্যই বেশ ব্যস্ত সক্রিয়ভাবে, আসলে করতে পারবেন. তারা CS50 অ্যাপ্লায়েন্স এবং CS50 আলোচনা এবং অধিকাংশ ব্যবহার করা হবে বিভিন্ন সফ্টওয়্যার সরঞ্জাম যে ইতিমধ্যে আমরা এই সেমিস্টারে ভর্তি করা হয়েছে ব্যবহার করে. এবং এক উদ্যোগের আমরা একটি পরীক্ষা হিসাবে গ্রহণ এই বছরের চাই ঠিক কত কন্টেন্ট আমরা অন্যান্য ভাষা মধ্যে অনুবাদ করতে পারেন এবং দেখতে হয় লিখিত ভাষা. তাই আপনি যদি এই প্রকল্পে অংশগ্রহণকারী একটি সুদ, যদ্দ্বারা থাকতে পারে আমরা এর জন্য অবশ্যই ইংরেজি প্রতিলিখন এবং সাবটাইটেল প্রদান করবে বক্তৃতা এবং হাফপ্যান্ট এবং সেমিনার ও বিভাগে এবং ভালো - যদি আপনি অনর্গল কথা বলুন অথবা অন্যান্য ভাষা অনর্গল কিছু লিখুন, আমরা কি এই প্রকল্পে আপনার প্রেম রত, যেখানে আপনি এক বা একাধিক গ্রহণ ভিডিও, একটি ভাষা আপনি কি জানেন বেশ ভাল সেগুলি অনুবাদ. আপনার ইন্টারফেসের একটি ধারনা দেবে, এই ওয়েব ভিত্তিক ইউজার ইন্টারফেস আছে যে আমরা ব্যবহার করে যে মূলত ভালো একটি UI 'তে তৈরি করা হবে. এই সম্পর্কে কিছু ছিল অধ্যাপনা হ্যালোইন আগে. এবং ডান কালো হাত আছে পার্শ্ব পরের এইসব সময় স্ট্যাম্প, আপনি বিভিন্ন বিষয় আছে যা আমার মুখ দিয়ে বেরিয়ে আসেন যে দিন দেখতে পাবেন. এটি নীচের এবং তারপর, আপনি কিছু অন্য ভাষায় অনুবাদ করতে সক্ষম হবেন. ঠিক কি ম্যাপিং এই ক্ষেত্রে, ইংরেজি মধ্যে, এবং, স্প্যানিশ ভাষায়,. সুতরাং এটি প্রকৃত একটি খুব ব্যবহারকারী বন্ধুত্বপূর্ণ হাতিয়ার. আপনি এবং কিবোর্ড শর্টকাটের মাধ্যমে গুটিয়ে দ্রুত এগিয়ে খুব সহজেই করতে পারেন. তাই আপনি যদি এই পরীক্ষা অংশ গ্রহণ করতে চান এবং আপনার শব্দ আছে দেখা যায় এবং সেখানে আউট ভাবেন সম্ভাব্য হাজার হাজার পড়তে, দয়া করে মনে করবেন না অংশগ্রহণের বিনামূল্যে. বিড়ালছানা সোমবার থেকে প্রায় এক শব্দ, পাছে এখন আমরা একটি মাত্রাতিরিক্ত পাঠিয়েছে ভয়ের বার্তা. যে হিসাবে অফিসে ঘন্টা এবং সুপারিশ হিসাবে বিভাগে সুপারিশ বুঝতে পারছি, কি কোর্স ডিজাইন খুবই অনেক ছাত্র আছে এবং সহযোগী সমস্যা সেট এবং সমস্যা মাধ্যমে একসঙ্গে কাজ করার কথা বলা. এবং সত্যিই ঠিক লাইন আসে নিচে, আবার, আপনি যে কাজ প্রান্তিকভাবে দাখিল করতে হবে আপনার হওয়া উচিত. এবং তাই, বেশ ভাল - অফিসে ঘন্টার মধ্যে, এটা সম্পূর্ণই স্বাভাবিক - এটি সম্পূর্ণই এর আশা করা যায়, এমনকি - কিছু সাথে চ্যাট করা বন্ধুদের পরের আপনাকে. যদি তিনি কিছু বিষয় সঙ্গে সংগ্রাম করা হয়, এবং আপনার মত থাকেন, ওহ ভাল, যাক আপনি কোড সম্পর্কে কিছু লাইন যে আমি লিখেছি একটি আভাস দিতে. যে সূক্ষ্ম. এটি ঘটে. এবং যে শিক্ষণ প্রক্রিয়ার সঙ্গে খুব সহায়ক, আমি মনে করি. যেখানে লাইন, আবার, পার পরার যখন মাথা হয় ধরণের হেলানো এখানে জন্য সত্যিই অনেক দূরে যাও যে জন্য অথবা মিনিট ঠিক আছে যাও সেখানে একটা আপনার বন্ধুর জন্য অবরোধমুক্ত সুযোগ. এবং অবশ্যই, যখন জিনিষ ইমেল ড্রপবক্স এবং এবং এর মাধ্যমে বিনিময় করতে পারেন ভালো, খুব লাইন আছে. তাই সব উপায়ে, স্বাচ্ছন্দ্য বোধ এবং বন্ধুদের সাথে চ্যাট করতে উত্সাহ বোধ এবং psets এবং আরো সম্পর্কে সহপাঠীদের. এবং শুধু বুঝি যে সত্যিই কি চূড়ান্তভাবে জমা হওয়া উচিত আপনার সৃষ্টিতে এবং না অন্য কারোর পণ্য. সুতরাং ফুটফুটে প্রাণী একই শিরা মধ্যে, আপনি প্রতাপ এই লোক জানেন এখানে. সুতরাং এই একটি বছর আগে থেকে horrifically গোলগাল সিনেমা. যে কেউ এখানে Spaceballs দেখা যায়? ঠিক আছে. তাই একটি ভাল নম্বর এখানে. তাই এই হল আমাদের উপস্থাপক পরিণামে আজ wonderfully একাডেমিক উপায় ক্রিপ্টোগ্রাফি ধারণা. এবং তাই pset 2, যা আসবে জন্য নির্দিষ্ট ডোমেন সমস্যা দেরী আগামীকাল রাত আউট, ক্রিপ্টোগ্রাফি বিশ্বের মধ্যে, যাও আকর্ষণীয় যা এনক্রিপ্ট হয় বা তথ্য scrambling শিল্প. এবং শেষ পর্যন্ত এই নিরাপত্তা বিশ্বের সাথে সম্পর্কিত. এখন নিরাপত্তা সবচেয়ে জন্য আমাদের মোটামুটি জাগতিক মেকানিজম আকারে আসে. আমাদের সমস্ত ব্যবহারকারীর নাম এবং পাসওয়ার্ড আছে. এবং আমাদের খুব খারাপ ব্যবহারকারীর নাম এবং পাসওয়ার্ডের আছে, সম্ভবত. আপনি যদি আপনার পাসওয়ার্ড একাধিক ওয়েবসাইটের জন্য একই, যে সম্ভবত না ভাল ধারণা, হিসাবে আমরা সেমেস্ত্র এর শেষের দিকে আলোচনা করব. কোন রসিকতা - - আপনার উপর যদি আপনার পাসওয়ার্ড একটি স্টিকি নোট করা হয় মনিটর, যে খুব ভাল হয় অগত্যা নকশা কিন্তু বেশ সাধারণ হইনি প্রপঞ্চ. এবং যদি আপনি আপনার পাসওয়ার্ডগুলি এনক্রিপ্ট ক্রিপ্টোগ্রাফি ব্যবহার করছি না, তারা বিশেষত প্রবন. তাই আপনি যদি মনে করেন আপনি সুপার হচ্ছে একটি লুকানো শব্দ না থাকার চতুর করছি আপনার হার্ড ড্রাইভের যে আপনার পাসওয়ার্ডের সব আছে কিন্তু কোথাও নথির এটি একটি ফোল্ডার আছে যে কোন এক অল্পক্ষণের যাও যাচ্ছে, খুব যে একটি খুব হয় না নিরাপদ প্রক্রিয়া. তাই কি pset 2 প্রবর্তন করা হয় ক্রিপ্টোগ্রাফি এই শিল্প এবং তথ্য scrambling যাতে পাসওয়ার্ডগুলি মত জিনিষ সব আরো সুরক্ষিত. সুতরাং হিসাবে একটি খুব অ বাস্তব বিশ্বের সাথে এই খুব বাস্তব সমস্যা প্রেরণা দৃশ্যকল্প, আমাকে আমাদের প্রিয় ক্লিপ কেউ এই থেকে আপনি এখানে ঘটে! চলচ্চিত্র, Spaceballs. [ভিডিও প্লেব্যাক] -শিরস্ত্রাণ, আপনি পামর, কি করছেন? আপনি কি আমার মেয়ের করছেন? সম্পর্কে উজ্জ্বল তরুণ প্লাস্টিক সার্জন, ডঃ ফিলিপ যাও পরিচয় করিয়ে-বৃত্তি অনুমতি পত্র Schlotkin, সর্বশ্রেষ্ঠ সমগ্র মধ্যে নাক পেশা মানুষ মহাবিশ্ব এবং Beverly Hills. তোমার-মাননীয়. -রোস পেশা? আমি বুঝতে পারিনি. তিনি ইতোমধ্যেই একটি নাক পেশা ছিল. এটা ছিল একটা মিষ্টি বর্তমানে 16. -না, এটি কি আপনি মনে করেন না. এটা অনেক এর, অনেক খারাপ. আপনি যদি বায়ু ঢাল যাও সমন্বয় কি না আমার, ডঃ Schlotkin ইচ্ছাশক্তি আপনার মেয়ে ফেরত দিতে তার পুরানো নাক. -না! আপনি কোথায় থাকেন যে পেতে পারি? -সমস্ত অধিকার. আমি বলতে পারবেন. আমি বলতে পারবেন. -না, বাবা, না. আপনি না করা আবশ্যক. -You're অধিকার, ওহে আমার. আমি আপনার নতুন নাক মিস্ করব. কিন্তু আমি তাদের সমন্বয় বলতে কোন ব্যাপার না কি হবে. উত্তমরুপে অতি. ডঃ Schlotkin, আপনার খারাপ না. -আমার পরিতোষ. -না! অপেক্ষা করুন, অপেক্ষা করুন. আমি বলতে পারবেন. আমি বলতে পারবেন. আমি জানতাম এটা কাজ করবে. সমস্ত অধিকার, আমার এটা দিতে. -সংমিশ্রণ এক. এক. এক. -দুটি. -দুটি. -দুটি. তিন- -তিনটি. -তিনটি. চারটি. চারটি. চারটি. পাঁচ- -পাঁচ. -পাঁচ. সুতরাং-সংমিশ্রণ এক, দুই, তিন, চার, পাঁচ. এটা stupidest সংমিশ্রণ আমি কখনও আমার জীবনে শোনা. যে ব্যাপার ধরনের একটি গাধা তার লাগেজের উপর থাকবে. আপনি, আপনার মাননীয়-ধন্যবাদ. -আপনি কি করবেন? আমি পরিণত দেওয়াল তুলে আলাদা করে দেওয়া. -না, আপনি না. আপনি পরিণত পুরো সিনেমা বন্ধ. আমি ভুল বোতাম চাপা থাকা আবশ্যক. -ওয়েল, এটা প্রতিহত করা হয়. সিনেমা ফিরে উপর রাখুন. -হ্যাঁ, স্যার. হ্যাঁ, স্যার. যাক-এর Erna যান,. গ্রেতসেন আসা,. আপনি অবশ্যই জানেন আমি এখনও এই জন্য আপনার বিল হবে. -ওয়েল, এটা কাজ করে নি? কোথায় গেট? -এ কাজ করতেন, স্যার. আমরা সমন্বয় আছে. -গ্রেট. এখন আমরা প্রতিটি গ্রহ Druidia থেকে তাজা হাওয়ার শেষ নি: শ্বাস - প্রশ্বাস নিতে পারে. সংমিশ্রণ কি? এক, দুই, তিন, চার, পাঁচ. এক, দুই, তিন, চার, পাঁচ? -হ্যাঁ. -এটা আশ্চর্যজনক. আমি আমার লটবহর একই সমন্বয় পেয়েছেন. অবিলম্বে প্রস্থান জন্য Spaceball 1 প্রস্তুত. -হ্যাঁ, স্যার. -এবং আমার লাগেজের উপর সমন্বয় পরিবর্তন. -Ow! [END টি ভিডিও প্লেব্যাক] ডেভিড জে MALAN: একটি আশ্চর্যজনক সিনেমা আপনি এখন সব দেখতে পাবেন. সুতরাং এখানে কনটেক্সট হয় যে অসুরক্ষিত তথ্য সহ একটি সুযোগ আসে এটি এবং এনক্রিপ্ট এটা হামাগুড়ি দিয়া আরোহণ. তাই এই উদাহরণস্বরূপ,, একটি এনক্রিপ্ট করা বার্তার একটি উদাহরণ. এই প্রকৃতপক্ষে ইংরেজিতে কিছু বলছে. কিন্তু এটা স্পষ্ট না বিলকুল সুস্পষ্ট. এবং আমরা দুষ্টচক্র আজ সরাইয়া জ্বালাতন করা হবে কি এই গুপ্ত বার্তা এখানে. কিন্তু কম্পিউটারের বাস্তব জগতে, এমনকি যে যে ক্ষমতা ভালো না চেহারা না ইংরেজি বাক্যাংশ হবে. উদাহরণস্বরূপ, এটি কি আপনি একটি প্রমিত লিনাক্স বা ম্যাক বা পারে একটি ফাইল যা একটি সময় উপর একবার ছিল ইউনিক্স পাসওয়ার্ড কম্পিউটার নামক ফাইলটি. আজকাল এটা অন্যান্য জায়গা থেকে সরানো হয়েছে এর. কিন্তু আপনি যদি একটি সিস্টেমে যথাস্থানে চেহারা, না আপনি শুধুমাত্র আপনার দেখতে পাবেন ব্যবহারকারীর নাম অথবা সিস্টেমে অন্যান্য মানুষের যে, কিন্তু আপনি দেখতে পাবেন একটি তাদের মধ্যে এনক্রিপ্ট করা পাসওয়ার্ড সংস্করণ. প্রকৃতপক্ষে, শব্দ আছে সমাধিগৃহ দাড়ায় যে নিম্নলিখিত স্টাফ এনক্রিপ্ট করা হয়. এবং আপাতদৃষ্টিতে র্যান্ডম অক্ষর এবং অক্ষর এবং সংখ্যার এই সিরিজের এবং তাই ঘোষণা শুধুমাত্র সাধারণত কিছু গোপন বুদ্ধিমান হতে পারে decrypted - একটি গোপন শব্দ, একটি গোপন নম্বর. তাই প্রকৃতপক্ষে, পরিণামে boils ক্রিপ্টোগ্রাফি নিচে শিল্প কিছু বিশ্বাস সাজানোর এবং কিছু যে কারোর না বুদ্ধিমান. আমরা একটি বিট আরো বিস্তারিতভাবে এই আজকের অন্বেষণ এবং করব pset আসা যাও. এবং এখন পাস / ব্যর্থ একটি শব্দ. আপনি কিছু হিসাবে তাই বিশেষত, pset 1, যন্ত্রপাতি মধ্যে dived, এবং আছে নিজের জন্য খুব নতুন বিশ্ব, যে বিরক্তির প্রতীত এবং বিহ্বলতায় এবং শুধুমাত্র টেকনিক্যাল সমস্যার সম্মুখীন হতে পারে বলে আশা করা. বিশেষ করে প্রথম pset, যেখানে ঠিক তাই নতুন অনেক আছে, ঠিক পেয়ে ls এবং সিডি এবং সব এই একটি নতুন পরিবেশে গোপনীয় কমান্ডের সাথে পরিচিত. এবং যে প্রকৃত উপাদান এবং নিজেই প্রোগ্রামিং থেকে পৃথক. সুতরাং খুব বেশি উপলব্ধি করা, যা কিছু আছে অফিসে ঘন্টা হিসাবে যে বিদ্যমান সমর্থন গঠন. এই বিভাগে শুরু আগামী রবিবার. তবে সবচেয়ে গুরুত্বপূর্ণভাবে, যদি আপনি ঠিক যে এই বোধ করছি না আপনার জন্য দুনিয়া, বুঝতে পারি যে এটা সত্যিই সময় লাগবে. এবং সুযোগ ছিল এই জন্য এটি আমার জন্য একটি বর্গ গ্রহণের বছর আগে না / পাস বিফল ভাল,, আমি এমনকি চাই না শ্রেণীকক্ষে পাদদেশ সেট. এবং আপনি এই পর্যন্ত পরিবর্তন আপ, বলতে পারেন, পঞ্চম সোমবার অবশ্যই. তাই আপনি যদি এখন উত্তেজিত হন, যে, বরং মাথা কিছু বুঝতে মধ্যে অন্যান্য জলের সম্পূর্ণভাবে অবশ্যই, শুধু / পাস ব্যর্থ পরিবর্তন বিবেচনা করে. আবার, হার্ভার্ড এ আছে সত্যিই এই সংস্কৃতি জিনিস না গ্রহণের এখানে / পাস থেকে সবাই সত্যিই বা অর্জন overachieve চায় ব্যর্থ. কিন্তু অকপটে, এই একটি আউট কিছু করার চেষ্টা করছেন এর বিস্ময়কর ভাবে না বল আপনি পরিচিত হতে. এবং আপনি আপ অধিকাংশ ক্ষেত্রে বেশ জরিমানা করছেন শেষ সম্ভবত, করব অনেক আপনার সারপ্রাইজ. এবং আরো কংক্রিট পদ, আমার মনে / পাস সাধারণত ব্যর্থ আছে, বিশেষত হিসাবে আপনি pset 0, অভিজ্ঞতা আছে যদি আপনি করেছি করা হতে পারে 10 ঘন্টা, 15 ঘন্টা, 25 ঘন্টার মধ্যে কিছু pset - মাত্র এবং আপনি banging করছি প্রাচীর বিরুদ্ধে আপনার মাথা, এবং এটা রাতে পেতে দেরী এর সুপার, কিন্তু আপনি কি 90% এর মত pset গ্রহণ করেছেন, আপনি কি জানেন যে শুধু একটা জিনিস চিন্তা না করতে পারেন - / পাস সত্যিই লাগে ক্লাসের প্রান্ত বন্ধ ভালো, যেখানে আপনি বাছাই করতে পারেন বিফল এর আনন্দের ঠিক আছে বলে, আমি জানি এটা নিখুঁত নয়. কিন্তু আমি এই কাজ আমার মলদ্বার বন্ধ. আমি যেখানে এটা শেষ পর্যন্ত সঙ্গে চমত্কার খুশি. এবং যে পাস জন্য প্রত্যাশা / মেটাতে ব্যর্থ হবে. তাই মন না থাকে. ঠিক আছে. তাই আপনাদের মধ্যে যারা যাও হার্ভার্ড বিশ্ববিদ্যালয়ের ওয়াই ফাই ব্যবহার অসুবিধা আছে জানা যে একটি CS50 SSID আছে, Wi-Fi সংযোগ প্রায় ফ্লোটিং আপনি ভাগ্য ভাল জন্য থাকতে পারে. এটা একটা সামান্য বিদ্রূপাত্মক যে এই জন্য পাসওয়ার্ড - আপনি যদি চেষ্টা করতে চান ভাল গতিশীলতার জন্য এই সংযোগ যাও এবং আমাদের যদি কোন ভাল জানাতে - এক, দুই, তিন, চার, পাঁচ, সব পথ আপ আট আট কারণ হয় পাঁচ তুলনায় বেশী নিরাপদ. তাই আপনি যদি ওয়াই ফাই পাসওয়ার্ড প্রয়োজন CS50 যাও, wirelessly এখানে সংযোগ. এক, দুই, তিন, চার, পাঁচ, ছয়, সাত, আট. এবং CS50 পোস্ট যদি এখনও আপনার সবিরাম সংযোগ বিষয় আছে আলোচনা, এবং ক্ষমতা যে আমরা এই স্থান জানি করা জানাবো. ঠিক আছে. সুতরাং একটি দ্রুত বিশেষত আপনাদের মধ্যে যারা পাখা ছেলেদের বা মেয়েদের জন্য টিজার, সব জিনিষ আপেল. আমি কি কয়েক বছর থেকে খুঁজে বের করা ব্যাকআপ ছিল এখানে এই ফাইলটি, ilock.c, শুধুমাত্র যে ধরনের আরো কংক্রিট এবং আরো জটিল করে তুলতে আরো মৌলিক C-এর কিছু প্রোগ্রাম লেখা আমরা করছি. তাই আমি এই ফাইলটি খোলা পর্যন্ত, ilock.c. এটা আজকের জন্য বক্তৃতা পৃষ্ঠায় উপলব্ধ. বাম দিকে, আপনি একটি কর্ম দীর্ঘ তালিকা দেখুন. তাই সহকর্মী যিনি এই লিখেছেন লেখেন ফাংশন অনেক আপ, শুধুমাত্র প্রধান বেশী. তিনি একটি লাইব্রেরি আভা এখানে ব্যবহৃত. এবং আমরা যদি স্ক্রলিং শুরু মাধ্যমে, এই কি আসলে খুব প্রথম মূল আইফোন জন্য, আমি বিশ্বাস করি, ফাটল. আপনি যখন আসল আইফোন jailbreak চেয়েছিলেন, যা untether অর্থ এটি যেমন AT & T এবং প্রকৃতপক্ষে থেকে এটি বিশেষ সফ্টওয়্যার ইনস্টল এবং অন্যান্য কাজ যে আপেল মানুষ কি না করতে চান - ভাল, কেউ চিন্তা করা ঠিক কিভাবে তারা নিজের কাজে লাগানো যায় নি সময় নেয় সফ্টওয়্যার সংক্রান্ত ত্রুটিগুলি, ভুল, অ্যাপল এর সফ্টওয়্যার বাগ,. এবং এইভাবে ilock.c জন্মগ্রহণ করেন. আপনি যদি একটি কম্পিউটারে এটি কম্পাইল এবং একটি আইফোন যে সম্মুখের এটি ইনস্টল করা আপনার কম্পিউটার যাও, যেমন একটি USB তারের মাধ্যমে সংযুক্ত করা হয়, তাহলে এটি আপনাকে দেবে আপনার আইফোন এবং যাক উপর প্রশাসনিক অথবা root অ্যাকাউন্টের অনুমতিসহ ব্যবহারযোগ্য আপনি খুব চমত্কার যাই হোক না কেন আপনি কি করতে চান. এবং তাই হয়েছে এই চটুল বিড়াল এবং অ্যাপল মধ্যে মাউস খেলা এবং সেখানে এর অনেক কোম্পানীর মত বিশ্বের হিসাবে তারা বিশেষ করে বিশ্রাম,, যাও লক করার চেষ্টা করুন তাদের পণ্যদ্রব্য নিচে যাতে শুধুমাত্র আপনি এটা দিয়ে কি তারা মনস্থ করা করতে পারেন. কিন্তু ধন্যবাদ ভালো লেগেছে যাও এবং নিম্ন স্তরের তাদের বোঝার বিবরণ এবং, এই ক্ষেত্রে, C প্রোগ্রামিং পরিচিত এবং নির্মানের অনেক যে আমরা বাজানো দিয়ে শুরু করেছি, আপনি সত্যিই লিভারেজ সক্ষম এই ভাবে আপনি দেখতে এবং উপযুক্ত অগত্যা কিছু কর্পোরেট সত্তা না হার্ডওয়্যার. সুতরাং উদাহরণস্বরূপ, আমি কোন ধারণা কি এই সব করছে আছে. কিন্তু GetVersion শোনাচ্ছে প্রশংসনীয় সহজবোধ্য. এবং এটা দেখে মনে হচ্ছে এই একটি ফাংশন যে এই ব্যক্তির লিখেছে. একটি আর্গুমেন্ট হিসাবে পূর্ণসংখ্যা কিছু নিয়ে, ফিরে কিছু না কিন্তু এখানে একটি লুপ জন্য এবং একটি প্রদর্শিত হবে লুপ যাও যদি শর্ত, যদি শর্ত, , ভঙ্গ এবং সংস্করণ সংখ্যার সাথে সম্পর্কিত একরকম. যদি আমরা নিচে স্ক্রল - যদিও এই কীওয়ার্ড অনেক নতুন হবে, এবং আছে একটি এখানে কাজ করে পুরো অনেক বেশী এবং আমরা কখনও দেখতে পারে না করেছি দেখেননি সেমিস্টারে অবশ্যই - দিনের শেষে, এটি একই নিয়ম এবং লজিক যে আমরা চলেছি অনুসরণ খেলার সঙ্গে পর্যন্ত. তাই এই পর্যন্ত খুব আপনার আইফোন 3s বা 4s বা শীঘ্রই 5s, এই দিন ফাটল পুরানো, কিন্তু যে এই দুনিয়া থেকে সমস্ত খুব এর প্রাপ্ত জানেন যে আমরা করেছি dived মধ্যে. সুতরাং আসুন আরো একটু সহজ উদাহরণ কটাক্ষপাত করা. এই এক, মাত্র কয়েকটি বাক্য গঠন সঙ্গে পর্যন্ত উষ্ণ এবং এছাড়াও কিছু পেতে অন্যান্য তথ্য টাইপ যে আমরা যে বিষয়ে কথা বললাম আছে কিন্তু সত্যিই দেখা সি না সুতরাং এটি একটি করেছি ফাইল নামক positive1.c. এবং উপরের মন্তব্য প্রতি, ঠিক এই দাবী যে কোনো ব্যবহারকারী প্রদান ধনাত্মক সংখ্যা. এটা কি একটা সময় লুপ, যা ব্যবহারকারী ইন্টারেক্টিভ জন্য চমৎকার একটি উদাহরণ প্রোগ্রাম যেখানে আপনি ব্যবহারকারী যাও কিছু একটা বলা প্রয়োজন. এবং যদি তারা সহযোগিতা করবেন না, তাদের এ আপনি বা চিত্কার তাদের ইনপুট প্রত্যাখ্যান. একটা উদাহরণ হল, আমি 24 এতক্ষণ মাধ্যমে 19 করবেন লাইন চালু হিসাবে ব্যবহারকারী আছে একটি ধনাত্মক সংখ্যা সম্পর্কে দেওয়া হইনি. লাইন 18 এখন এই এখানে বিস্তারিত, কেন আমি এই পুরো উপরে n ঘোষণা looping কনস্ট্রাক্ট হিসাবে ডান পাশে লাইন 22 বিরোধিতা যেখানে আমি আসলে যত্ন পেতে হবে? হাঁ? [শ্রবণাতীত] ডেভিড জে MALAN: হ্যাঁ, তাই সুযোগ রয়েছে এই সমস্যা. এবং অ - বিশেষজ্ঞ এর শব্দটি কি, সুযোগ আছে পড়ুন? হাঁ? [শ্রবণাতীত] ডেভিড জে MALAN: একটু জোরে আপনি কথা বলতে পারি? বক্তা: 1 কোথায় আপনি একটি নির্দিষ্ট পরিবর্তনশীল অ্যাক্সেস করতে পারেন. ডেভিড জে MALAN: পারফেক্ট. যেখানে আপনি একটি নির্দিষ্ট পরিবর্তনশীল অ্যাক্সেস করতে পারেন. এবং সাধারণত, চলতি রীতি পর্যন্ত হয়েছে যে কিছু সুযোগ সাম্প্রতিকতম কোঁকড়া ধনুর্বন্ধনী যে আপনি পাচ্ছি দ্বারা পরিবর্তনশীল সংজ্ঞায়িত করা হয়. এই ক্ষেত্রে এবং তাই, যদি আমি লাইন 22 n প্রকাশক ভুল করে, যে লাইন কাজ করবে. আমি কোন int পেতে, এবং আমি যে লাইন 22 মধ্যে পরিবর্তনশীল n মধ্যে রাখা হবে. কিন্তু কোন কোড লাইন এখন কোন ধারণা আমি কি বিষয়ে কথা বলছি না থাকবে? সুতরাং 25, এবং এটি 24 কে সক্রিয় করে, হিসাবে ভাল, কারণ এই ক্ষেত্রে, তা বাইরে পড়ে এর কোঁকড়া ধনুর্বন্ধনী. তাই শুধু একটি উত্পাত সামান্য বিট কিন্তু কেবল প্রকাশক দ্বারা খুব সহজে সমাধান ফাংশন নিজেই পরিবর্তনশীল বাইরে. এখন পরে আজ আমরা দেখতে পাবেন, আপনি আরও এক ধাপ যেতে পারেন. এমনকি আপনি পেতে একটু অলস পারে - এবং এই সাধারণ করা হয় বাঞ্ছনীয় নয়, - কিন্তু আপনি এমন কি পেতে অলস এবং একটি পরিবর্তনশীল বিশ্বব্যাপী করা যায়নি, তাই কথা বলতে না ভিতর একটি ফাংশন, না ভিতর একটি লুপ, কিন্তু ফাইলটি নিজেই, বাইরে র সমস্ত কর্ম ব্যবহার আপনাকে, লিখিত হিসাবে আমি 15 লাইন এখানে কি করেছি. কিন্তু এই সাধারণত উপর frowned হয়. কিন্তু এটি কখনও কখনও অন্যান্য সমস্যার সমাধান বুঝতে পারছি, হিসাবে আমরা করব অবশেষে দেখতে. তাই এখন জন্য, আমরা ভালো এটা ছেড়ে দেব. কিন্তু এখানে একটা কিছু যদি আমরা এই মাত্র নিজেদের প্রকাশ করতে শুরু পুনর্লিখন করতে পারেন একটু ভিন্নভাবে. তাই এই প্রোগ্রাম, ঠিক পরিষ্কার করা হয় positive1. আমাকে এগিয়ে যেতে এখানে এবং আমার টার্মিনাল উইন্ডোর positive1, লিখুন না. প্রনয়ন, ঠিক আছে. আমি positive1 চালানো লিখুন আঘাত যাচ্ছি. আমি দাবি করছি যে আপনার সম্পর্কে একটি ধনাত্মক পূর্ণসংখ্যা দিতে. আমি -1 বলবো. যে কাজ করে নি. 0, 99, যে কাজ মনে হয়. হয়তো সবচেয়ে কঠোর পরীক্ষা না. কিন্তু অন্তত এটা একটা চমৎকার সদ্বিবেচনা চেক যে মুহূর্তে আমরা ট্র্যাক করছি. সুতরাং এখন আমাকে এগিয়ে যান এবং এই সংস্করণ দুই খুলুন. এবং কি ইতিমধ্যেই বিভিন্ন? সেই একই জিনিস দেখা দেবে. স্পষ্টতই বিভিন্ন সময় এই হিসাবে কি জাম্পিং কিন্তু এর বাইরে? হ্যাঁ, তাই সবুজ এই bool. Gedit সবুজ এই অভিব্যক্তি bool হিসাবে পরিচিত হাইলাইট করা হয়েছে, যা একটি ডাটা টাইপ. এটা সি সব সংস্করণের জন্য নির্মিত না আসতে আপনাকে একটি অন্তর্ভুক্ত করা প্রয়োজন নির্দিষ্ট লাইব্রেরি. আমাদের ক্ষেত্রে, আমি CS50 লাইব্রেরি অন্তর্ভুক্ত যাতে আমরা bool অ্যাক্সেস আছে. কিন্তু লাইন 18, আমরা একটি বুলিয়ান মান এখানে বলা কৃতজ্ঞ করেছেন বলে মনে হচ্ছে. তাই আমি এই কিছু বলা যেতে পারে. কিন্তু আমি এটা বলা ঠিক ধরনের কিছু শব্দার্থিক অর্থ বহন যাও কৃতজ্ঞ. তাই প্রাথমিকভাবে উপর লাইন 18, আমি দৃশ্যত কৃতজ্ঞ না কারণ বুলিয়ান মান কৃতজ্ঞ লাইন 18 মিথ্যা যাও সক্রিয়া করা হয়. এবং তারপর মনে হয় আমি কি লাইন 21 সালে করেছেন এখানে 23 এর মাধ্যমে শুধু আমি করেছি আমার ধরনের লজিক পুনর্লিখিত. সুতরাং কোন বৈশিষ্ট্যগুলি বিভিন্ন. কিন্তু এখন লাইন 22, আমি যদি int-ব্যবহারকারী প্রদান করেনি বড় চেক 0 তারপর, আমি সহজভাবে কৃতজ্ঞ সত্য যাও মান পরিবর্তন. এবং কেন আমি করব না যে? কারণ লাইন 25, দৃশ্যতঃ, আমি একটি পরীক্ষা যাচ্ছি. এই লুপ যখন কৃতজ্ঞ মিথ্যা কি. তাই আমি সংস্করণ এক বিকল্প হিসাবে এই কারণ এটা অন্তত একটি উত্থাপন করা একটু আরও বেশি ধারণাসম্পন্ন, সম্ভবত. এটা একটা সামান্য আরো ইংরেজী ভিত্তির উপরে প্রতিষ্ঠিত. সুতরাং নিম্নলিখিত কাজগুলো যখন আপনি বা যখন কৃতজ্ঞ মিথ্যা কৃতজ্ঞ নয়. এবং এই সময় খুব,, আমি কি ইউজার টাইপ স্মরণ দৃশ্যত না যত্ন কারণ বিজ্ঞপ্তি কোনো চলক n আছে. তাই আসলে, আমি - সামান্য সাদা সেখানে মিথ্যা. কাজের, প্রোগ্রাম একটি বিট বিভিন্ন একবার আমরা ডোবান কারণ এটা আমি কি n হল মনে করছি না. কিন্তু আমি এখানে খুব প্রকট চেয়েছিলেন যে যদিও আমরা GetInt দেখা করেছি এবং একটি সমান সাইন ডান দিকে GetString পর্যন্ত যাতে ব্যবহৃত হচ্ছে আমরা মান, টেকনিক্যালি, যে কঠোরভাবে প্রয়োজন না মনে রাখবেন. যদি কোন কারনের জন্য আপনাকে কেবল মান সংরক্ষণ করতে না যত্ন, আপনি চান মান চেক, লক্ষ্য করা যে, আমরা শুধু GetInt খোলা হিসাবে এই লিখতে পারেন paren, বন্ধ paren. যে ফাংশন এর মান ফিরে যাচ্ছে, হিসাবে আমরা করছি বলছে না. এটা আপনাকে ফেরত দিতে কোন int যাচ্ছে. তাই যদি আপনি মনে মনে এই ঘটনাকেই মনে করি, যখন আমি 99 টাইপ, GetInt 99 নম্বর ফেরৎ. এবং তাই ধারণার, এটা হিসাবে যদিও আমার কোড আসলে ছিল এই. তাই আপনি যদি 99 হয় 0 থেকে প্রকৃতপক্ষে বৃহত্তর তারপর, কৃতজ্ঞ হয়ে ওঠে সত্য. তারপর লাইন 25 বুঝতে খুশি, আমরা কারণ এখন আমি কৃতজ্ঞ কাজ সম্পন্ন হয়. এবং লাইন 26 ইতিবাচক পূর্ণসংখ্যা জন্য, আমরা শুধু বলতে, সৌভাগ্য, যাহা এটা হতে ঘটেছে. এখন এর অসম্মান অন্বিত চিনি এখানে করতে দেওয়া, তাই কথা বলতে. চলুন শুরু করা যাক যদি আমরা এই তৃতীয় এবং চূড়ান্ত ভ্যারিয়েন্স সঙ্গে এই লাইন 25 পরিষ্কার করতে পারেন দেখুন মধ্যে positive3. সুতরাং শুধুমাত্র পার্থক্য এখন কি কোড লাইন লক্ষ্য করা? হ্যাঁ, তাই 25. এবং আমরা এই কৌতুক দেখা সত্যিই করেছি না এখনও. কিন্তু আমরা সোমবার বিস্ময়বোধক বিন্দু, যা কি উল্লেখ করে দেখুন কি? তাই না, বা অস্বীকৃতি. সুতরাং একটি বুলিয়ান মান গ্রহণ এবং তার মান টুসকি. সত্য মিথ্যা হয়ে যায়. মিথ্যা হয়ে ওঠে সত্য. তাই এই, আমি উত্থাপন করা হবে, এমনকি একটি ছোট একটি পথ আরও বেশি ধারণাসম্পন্ন কোড লেখার কারণ এখনও আমি কৃতজ্ঞ মিথ্যা আরম্ভ. আমি এখনও নিম্নলিখিত কাজগুলো. আমি সেট কৃতজ্ঞ সত্য যখন সময় আসে. তবে এখন আপনি কি সত্যিই এই কোড ডানে বামে শব্দগতভাবে অনুবাদ করতে পারেন, যখন হইনি কৃতজ্ঞ. কারণ ঠুং ঠুং শব্দ, অথবা বিস্ময়বোধক বিন্দু, না এর ধারণা হল, তাই সময় না কৃতজ্ঞ. তাই আবার, আমরা কোনো কোনটাই নতুন ধারণা চালু করেন নি. আমরা ফিরে Booleans স্বপ্ন যখন আমরা ভূত সঙ্গে অভিনয় করেছি. কিন্তু এখন বুঝতে পারছি আমরা শুধু আমাদের কোড লেখা শুরু করতে পারেন বিভিন্নভাবে. তাই বিশেষ করে pset1, যদি আপনি কিভাবে চিন্তা আউট সংগ্রাম সাজান কিছু প্রোগ্রাম লিখতে, শ্রেষ্ঠতা কারণ কোনো করা হয় আপনার ভাগ্য আছেন সেখানে যাচ্ছে সমাধান যে আপনি উপর ঘটতে পারে সংখ্যা. উদাহরণস্বরূপ, এই এমনকি প্রোগ্রাম সহজ জন্য মাত্র তিনটি. ঠিক আছে. এবং এখন সোমবার প্রত্যাহার, এই নোট উপর আমরা ফিরে মান বাকি. সুতরাং খুব প্রথমবার জন্য, আমরা একটি প্রোগ্রাম যা প্রধান না ঠিক আছে না লেখেন, এটা নিজস্ব কাস্টম ফাংশন যে আমি এখানে লিখেছে আছে. তাই 34 এর মাধ্যমে লাইন 31 সালে, আমি একটি ঘনক ফাংশন প্রয়োগ করেছি. এটা জটিল না. এটা শুধু এই ক্ষেত্রে একটি বার বার,. কিন্তু কি এটি সম্পর্কে গুরুত্বপূর্ণ হল যে আমি একটা ফর্ম ইনপুট গ্রহণ করছি এবং আমি একটি বার আকারে করছি আউটপুট ফিরে একটি বার. তাই এখন আমি ক্ষমতা আছে, অনেক ভালো যাও আমি একা printf সঙ্গে ব্যবহার, কল ঘনক্ষেত্র ফাংশন কল করে এই ফাংশন. ঘনক্ষেত্র ফাংশন এবং কিছু ইনপুট নেয়. ঘনক্ষেত্র ফাংশন এবং কিছু ফলাফল উত্পন্ন হবে. তাই printf এর বিপরীতে, শুধু কিছু করেছিল. এটি ফিরিয়ে কিছু যে আমরা যত্ন সম্পর্কে না - একটি হিসাবে যদিও, সরাইয়া, এটি একটি মান প্রত্যাবর্তন আছে. আপনি সাধারণত কেবল এটি উপেক্ষা করা. Printf মাত্র কিছু করেছিল. এটি একটি মুদ্রণ পর্দায় পাশ প্রভাব ছিল. বৈসাদৃশ্য এখানে দ্বারা, আমরা ঘনক্ষেত্র ফাংশন আছে, যা আসলে কিছু ফেরৎ. তাই এই সাধারণত হয় - যারা এর সাথে পরিচিত এই জন্য যে এটা একটা মোটামুটি ধারণা সহজবোধ্য. কিন্তু ইনপুট এবং পাবার জন্য যারা ক্ষণস্থায়ী এই ধারণা কম পরিচিত ফিরে আউটপুট, যাক এর মাত্র কিছু সুপার সহজ করার চেষ্টা করুন. না কেউ আরামদায়ক মঞ্চে আসছে সংক্ষিপ্তভাবে আপ? আপনি আরামদায়ক আপনি একটি ক্যামেরা দিয়ে, হতে হিসাবে ভাল আছে. হাঁ. ঠিক আছে, কি আপনার নাম? KEN: Ken. ডেভিড জে MALAN: Ken. সমস্ত অধিকার, Ken. উপর আসা. সুতরাং কেন যাও প্রকারের একটি ফাংশন এখানে হবে. দিন এর এগিয়ে যান এবং এই কাজের জন্য. চলুন একটু অভিনব পেতে. দেখা হওয়ায় খুশী হলাম. স্বাগতম কেন্দ্র পর্যায়ে. ঠিক আছে. আসুন এখানে এই বোতাম আঘাত. ঠিক আছে. তাই এখানে আপনি একটি আধুনিক chalkboard আছে. এবং কি আমি হয় উদাহরণস্বরূপ, প্রধান ফাংশন,. আমি এবং আমার হাতে একটি আইপ্যাড না. আসলে ভাল,, যে না বলতে পারে - আমি কিভাবে কি সত্যিই মনে রাখবেন না. আমি ভাল হস্তাক্ষর সত্যিই নেই. তাই তাই, আমি কি আমার জন্য পর্দায় কিছু প্রিন্ট করতে চান. তাই আমি মূল প্রোগ্রাম হচ্ছে না. এবং আমি আপনাকে আছে যাচ্ছি আমার মুরগির স্ক্র্যাচ মধ্যে লিখে এই বলে এবং তারপর ক্ষণস্থায়ী একটি ইনপুট আপনি. সুতরাং হিসাবে মূর্খ যদিও এই ব্যায়াম হয়, ফাংশন এর ধারণা এবং একটি কলিং ফাংশন এবং ফিরে একটি ফাংশন সত্যিই boils এই ডাউন. আমি প্রধান. আমি ঠিক আছে লিখিত পর্দায় printf ("কিছু"). আমি এই চলমান প্রোগ্রাম করছি. এবং যত তাড়াতাড়ি printf নামক পরার, এটি একটি যুক্তি লাগে - এক অথবা পরামিতি, কখনও কখনও - মধ্যে উদ্ধৃতি চিহ্ন. এখানে যে যুক্তি. আমি কেন নিকট এটি ক্ষণস্থায়ী. এখন তিনি একটি কালো বাক্স যে দৃশ্যত বছর আগে কিছু সংখ্যা লেখা কেবল জানে কিভাবে পর্দায় জিনিষ মুদ্রণ. সুতরাং, চালানো হয়. যে খারাপ না. তাই খুব ভাল. তাই এখন Ken নির্বাহ করার জন্য এটা করা হয়. কিন্তু সে সম্পর্কে কিছু সমর্পন ফিরে প্রয়োজন? সুতরাং আমরা না করেছি দূর পর্যন্ত দেখা যায়. আবার printf, আসলে একটি নম্বর রিটার্ন করে. কিন্তু আমরা এখন জন্য যে কারণ আমরা তা কখনও ব্যবহৃত করেছি উপেক্ষা চলুন. যাতে এর Ken জন্য এটি. এবং তাই এখন বর্তাচ্ছে প্রধান যাও চালানো - প্রধান প্রোগ্রাম নিয়ন্ত্রণ নেয় আবার কোড যে লাইন কারণ, printf, নির্বাহ করার জন্য এটা করা হয়. এবং আমরা আমাদের উপায় নির্বাহ যাই হোক না কেন অন্যান্য লাইন আছে সম্পর্কে যান. ঠিক আছে. তাই এখন যাক এর একটি উদাহরণ চেষ্টা কিছুটা ভিন্ন. এবং এখানে এই সময়, যাক এর প্রথম এখানে পর্দা পরিষ্কার. এবং এই সময়, আমরা cubing ফাংশান করব. কিন্তু এই সময়, আমি একটি আউটপুট মান প্রত্যাশা. তাই আসুন আর দেরী না করে এবং এই কাজের জন্য. তাই এখন আমি কোড একটি লাইন যে আছে x = ঘনক (x). তাই আসলে let's - কোড, রিকল, লাইন ভালো দেখায়. x = ঘনক (x). সুতরাং কিভাবে এই কাজ করে যাচ্ছে? সুতরাং আসুন এগিয়ে যান এবং একটি সাদা পর্দা দিতে আবার আপনি. এবং আমি এখন x এর মান লিখে ফেলা, যা এই মুহুর্তে যাচ্ছি সময়, এর কথা বলা যাক, 2 করা হবে, এটা সহজ রাখা হবে. তাই আমি এক টুকরা কাগজ 2 মূল্যের হবে ডাউন, যা আমার x এর মান. আমি কেন এটা ওদের হাতে. KEN: আমি ঠিক উত্তর লিখুন? ডেভিড জে MALAN: হ্যাঁ, এর ঠিক উত্তর লিখুন না. ঠিক আছে. এবং এখন তিনি ফিরে যাও সম্পর্কে কিছু আছে. সুতরাং - নিখুঁত. Segue চমৎকার. সুতরাং এখন তিনি আমার হাতে ফেরত এই ক্ষেত্রে মান 8,. আমি কি এবং এটি দিয়ে করবেন? আসলে ভাল, এবার এর দেখতে. এই অধিকার পান. Am কি আমি কাজ করতে যাচ্ছি? এখন আমি এই মান গ্রহণ করা এবং প্রকৃতপক্ষে যারা তা সঞ্চয় চলেছি মেমরির মধ্যে একই বিট. কিন্তু বিজ্ঞপ্তি, আমি এখানে কোন ধরনের সংগ্রাম. আমি একটু বিভ্রান্ত, কারণ যেখানে আসলে আমি x এর মান লিখুন? কারণ কি আমি ঠিক করেছি কাজ হয় শারীরিকভাবে হাত Ken কাগজের টুকরা যে মান 2, যা ছিল x ছিল. এবং সত্যিই, যে অবিকল কি ঘটবে. সুতরাং দেখা যাচ্ছে যে আপনি যখন একটি ফাংশন কল, এবং আপনি একটি আর্গুমেন্ট পাস "ওহে দুনিয়া" অথবা আপনি চান একটি আর্গুমেন্ট পাস 2 ভালো সাধারণত,, আপনি যে যুক্তি একটি কপি কথা প্রসঙ্গে. এবং সে হিসাবে আমি wrote 2 নম্বর এখানে নিচে এবং কেন তা হস্তান্তর; যে আবশ্যক মানে আমি এখনও মান 2 একটি কপি আছে কোথাও. কারণ সত্যিই, আমি এখন যে মান 8 অর্জিত ফিরে করেছি, আমি ফিরে যেতে প্রয়োজন উপস্থিত RAM-র এবং প্রকৃতপক্ষে 8 লিখে যেখানে একবার আমি 2 নম্বর ছিল. সুতরাং দৃশ্যত আক্ষরিক কথা প্রসঙ্গে এই ধারণা মনে রাখা মান একটি কপি. Ken তার জিনিস আছে, হাতে ফিরে সম্পর্কে কিছু - এই ক্ষেত্রে, 8 মত একটি মান. এবং তারপর আমি এই মান সঙ্গে কিছু করতে হবে যদি আমি এটি কাছাকাছি রাখতে চান. তাই এই সব সমস্ত অতি দীর্ঘ আগে পরিচিত হতে হবে. আপনাকে ধন্যবাদ এই ডেমো জন্য এখানে এত, Ken. ঠিক আছে. খুব ভাল কাজ করেছেন. সুতরাং আসুন কিভাবে যে চরমভাবে ফাংশন কিছু সাথে সম্পর্কিত দেখুন কলিং যে এখানে আমরা কাজ করছি. তাই আমাকে এগিয়ে যান এবং আমাদের আনা cubing উদাহরণ এখানে ফিরে. এবং লক্ষ্য করা যে যদি আমরা আসলে এই বিষয়ে আরও গ্রহণ শুরু করতে চান, আমরা চলুন যাও যাও যে সংখ্যা x যে হচ্ছে এর পাশ সম্পর্কে সচেতন থাকুন করা আছে এখানে আসলে কি এর ফাংশন মধ্যে পাশ থেকে ভিন্ন. তাই আবার, এই কপি দ্বারা গৃহীত অতি হয়ে যাচ্ছে মাত্র কয়েক মিনিটের মধ্যে সঙ্গত. তাই কিছু কিছু অধিকার যা এখনও পুরোপুরি কাজ না কটাক্ষপাত করা. আমি এগিয়ে যান এবং একটি তৃতীয় বগী উদাহরণ খোলা যাচ্ছে, যা করছি প্রকৃতি দ্বারা ত্রুটিপূর্ণ হয়. এবং এটি buggy3 বলা হয়, এবং এর এটি একটি সোয়াপিং ফাংশন কার্যকরী. তাই আমরা এখানে একটি প্রধান ফাংশন যে x এবং y করেনি ইচ্ছামত যাও সক্রিয়া করা আছে 1 এবং 2 যথাক্রমে,. আমরা GetInt ব্যবহার, কিন্তু আমরা শুধু একটি সহজ ব্যায়াম করার প্রয়োজন হতে পারে. এটা আসলে 1 এবং 2 হিসাবে হার্ড কোড. লাইন 21 এবং 22 ইঞ্চি, আপাতদৃষ্টিতে আমরা x এবং y, লাইন প্রতি একটি প্রিন্ট আউট. লাইন 23 এর পরে,, আমি দাবী আমি এই মান am সোয়াপিং, বিন্দু, বিন্দু, বিন্দু. আমি দৃশ্যত লাইন 24 নামক একটি ফাংশন কল করা swap যে দুটি আর্গুমেন্ট লাগে. এটা সম্পূর্ণই legit জন্য দুটি ফাংশন আর্গুমেন্ট নিতে. আমরা printf ইতিমধ্যে এটা দেখা করেছি. সুতরাং দৃশ্যত: swap-x এবং y লাগে. এবং হিসাবে তার নাম সুপারিশ করে, আমি যে এটা হচ্ছে আশা এই দুটি মান swap. আমি তখন লাইন 25 দাবি, আনা যায়. এবং আমি ধৃষ্টতা অধীন x এবং y যে পুনর্মুদ্রণ তারা প্রকৃতপক্ষে করেছি আনা হয়েছে. কিন্তু যদি আমি আসলে এই প্রোগ্রাম চালানো - আমাকে একটি টার্মিনাল উইন্ডোতে খুলুন. আমাকে buggy3 করা. প্রস্তাবক হিসাবে নাম, এই ভাল শেষ হবে না. কারণ আমি যখন, লিখুন যে x 1 বিজ্ঞপ্তি আঘাত. y হল 2. প্রোগ্রাম শেষে এবং এখনও, তারা এখনও, আসলে, একই. বিক্ষোভের উপর ভিত্তি করে শুধু তাই এখন Ken সঙ্গে, আসলে কি হচ্ছে উপর? ওয়েল, আমি কি এই swap 'র মধ্যে ফাংশন আকর্ষণীয়. এটা অতি অল্প. এটি কেবলমাত্র একটি কোড দীর্ঘ কয়েক লাইন. কিন্তু কি মৌলিক সমস্যার সহজ বিবরণ উপর ভিত্তি করে ছিলো আপ এখানে কেন? কেন ভাঙ্গা হয় ও swap 'র? [শ্রবণাতীত] ঠিক. সুতরাং আমরা একটি কপি যাও, সংরক্ষণকারী পরিবর্তনশীল নিজেই করছি না. অন্য কথায়, দৃশ্যত মাপের swap দুটি আর্গুমেন্ট, কোন int লাগে. এবং ইচ্ছামত বলা এর একটি এবং খ. এবং এখানে, আমি x এবং y, ও যা হল যথাক্রমে 1 এবং 2 সালে পাশ করেছি. কিন্তু আমি আক্ষরিক পার করছি x না. আমি আক্ষরিক করছি ক্ষণস্থায়ী y না. আমি x এর একটি অনুলিপি এবং y একটি কপি করছি ক্ষণস্থায়ী. এটা প্রায় মত হিসাবে যদিও আপনার কপি করা এবং মান swap মধ্যে আটকানো আপনি কি এটা আসলে নিপূণভাবে চান. তাই আপনি যদি এর ক্ষেত্রে, যখন আমি, প্রোগ্রাম আরম্ভ নির্বাহ লাইন 35, তারপর 36 - আমি যখন লাইন 37 পেতে বিবরণ এই সময়ে,, কি একটি মান কি? গল্পের এই পর্যায়ে, লাইন 37, কি একটি এই সময়ে মান? সুতরাং এটি ঠিক করা উচিত 1. রাইট? কারণ এক্স প্রথম আর্গুমেন্ট হিসাবে পাস করা হয়েছিল. এবং এই ফাংশনটি শুধু ইচ্ছামত তার প্রথম যুক্তি আহ্বান করা হয়, একটি. একইভাবে হয় y, ও দ্বিতীয় যুক্তি. এবং এটা ইচ্ছামত এর দ্বিতীয় যুক্তি বো কলিং. এখন আসলে এই বৈপরীত্য মোটামুটি সহজভাবে ব্যাখ্যা করা হয়. সেটা ভাবুন. আমাদের কেউ ব্যক্তি printf লিখেছেন পরিচয়. সুতরাং, নিশ্চয় তিনি কোন ধারণা কি আমাদের ভেরিয়েবল 30 বছর পরে যাচ্ছি আছে আহ্বান করা হবে. তাই হয়েছে কি কল ভেরিয়েবলের মধ্যে একটি পার্থক্য আছে ফাংশন আপনি লেখার এবং আপনি কি ফাংশন আপনি ভেরিয়েবলের মধ্যে কল কলিং বা ব্যবহার করে. তাই অন্য কথায়, আমি x এবং y হিসাবে আমার ভেরিয়েবল আছে না. কিন্তু যদি কারোর জন্য swap ফাংশন লেখা যায়, তাহলে সে অবশ্যই কি আমার ভেরিয়েবল করা হবে বলা যাচ্ছে জানি না. সুতরাং বুঝতে হবে যে এটা কেন আপনি নামের এই দ্বৈত আছে. টেকনিক্যালি, আমি কাকতালীয় এই যেত না. কিন্তু তারা এখনও হিসাবে কপি মধ্যে হস্তান্তর করা হবে. এটা ঠিক করা একটি খাঁটি কাকতালীয় aesthetically যদি যে ব্যক্তি যিনি লিখেছিলেন হবে swap 'র একই নাম ব্যবহার করে. ঠিক আছে. তাই গল্পের এই সময়ে, লাইন 37, একটি হল 1. b হল 2. এবং এখন আমি তাদের অদলবদল এগিয়ে যান. ওয়েল প্রথম সব, আসলে এই সম্পর্কে আরো অনেক কিছু সহজভাবে না দেওয়া. আমি কি ঐ কোড তিন লাইন কাজ ছিল না. আমাকে শুধু এই না. বো একটি পায়. একটি বো পায়. সম্পন্ন হয়েছে. কেন হয় এই ভাঙা যুক্তি,? এটা স্বজ্ঞাত জিনিস ধরনের অধিকার,? সুতরাং একজন হয়ে খ. বো এবং একটা. কিন্তু সমস্যা হল যত তাড়াতাড়ি লাইন 37 executes, কি a ও b মান কি? একই, 1. কারণ আপনি তাই কথা বলতে, clobbered আছে, আপনি বো একটি সমান পরিবর্তন করেছেন. তাই একবার লাইন 37 মৃত্যুদন্ড কার্যকর করা হয়, দারুণ. আপনি এখন এই ফাংশন 1 নম্বর ভিতর দুই কপি আছে. অতএব যখন আপনি লাইন 38 বলতে, একটি বো পায় ভাল,, আপনি ধরনের মাতাল. কারণ আপনি মাত্র 1 যাও 1 নির্ধারণ করছি. আপনি ধরনের করেছি মান সম্পর্কে যত্ন হারিয়ে গেছে. তাই এই মূল সংস্করণে, বিজ্ঞপ্তি আমি কি. আমি পরিবর্তে একটি কোড তৃতীয় লাইনটি ভালো যে তাকিয়ে ছিল. আমি একটি অস্থায়ী ভেরিয়েবল ডিক্লেয়ার - tmp একটি খুব প্রচলিত নাম জন্য একটি অস্থায়ী পরিবর্তনশীল. এটা কোন int কারণ এটা থেকে কি আমি একটি কপি করতে চান মেলে আছে. আমি tmp একটি ভিতর একটি কপি সঞ্চয়. তাই একবার লাইন 37 মৃত্যুদন্ড কার্যকর করেনি, একটি মান - দ্রুত বৈধতা পরীক্ষা - 1. বো মান 2. Tmp এবং মান হয় 1. তাই এখন আমি লাইন 38 চালানো হয়. তাই একবার লাইন 38 executes, একটি বো মূল্যের লাগে. এবং বো ছিল 2. তাই এখন একটি হল 2. তাই গল্পের এই সময়ে, একটি হল 2, b হল 2, এবং tmp হয় 1. তাই এখন যুক্তি, আমরা বো মধ্যে মাত্র চুর্পশব্দ tmp এর মান হতে পারে. এবং আমরা কাজ সম্পন্ন হয়. সুতরাং আমরা যে সমস্যার সমাধান করেছি. দুর্ভাগ্যবশত, যখন আমি এই ফর্ম এই প্রোগ্রাম চালানো, আসলে এটি অদলবদল না কোনো মান. কিন্তু পরিষ্কার হবে, কেন? আমি শুধু একটা মুহূর্ত আগে থেকে লজিক্যাল সমস্যার সমাধান করা. কিন্তু আবার, যদি আমি এই প্রোগ্রামটি চালানোর জন্য, x এবং y শেষে থাকা অপরিবর্তিত প্রোগ্রাম এর মৃত্যুদন্ড. [শ্রবণাতীত] ডেভিড জে MALAN: তাই আমরা কিছু ফিরে আসেন নি. সুতরাং এটা সত্য. কিন্তু এটি সক্রিয় আউট এখানে আছে একটি সমস্যার একটি বিট কারণ দূর পর্যন্ত, শুধুমাত্র জিনিস আমরা ফিরে আসতে পারব এক জিনিস. এবং এই সি একটি সীমাবদ্ধতা আপনি শুধুমাত্র ফিরে সত্যিই এক মান পারেন, সেক্ষেত্রেও, আমি এখানে আটকে ধরনের কারণ আমি এক্স নতুন মূল্য ফেরত দিতে পারে বা ফেরত দিতে পারে y টিপে নতুন মান. কিন্তু আমি উভয় ফেরত চাইবেন. সুতরাং এখানে ফিরে সহজ সমাধান হয় না. কিন্তু মৌলিকভাবে সমস্যা হয় কেন? কি আসলে আমরা আনা? a ও b. কিন্তু a ও b হল কপি x এবং y, যার মানে আমরা ঠিক এই সব কি? কাজ - আমরা মাত্র তিন মিনিটের মত ব্যয় করতে swap সম্পর্কে কথা বলা ফাংশন এবং এই ভেরিয়েবলগুলি সব তিনটি. এবং যে বিচ্ছিন্নতা মধ্যে দারুণ, পুরোপুরি সঠিক. কিন্তু a ও b এর সুযোগ রয়েছে এখানে শুধুমাত্র এই লাইনে হয়. তাই শুধু লুপ জন্য একটি ভালো, আপনি যদি একটি পূর্ণসংখ্যা তোমার ভিতর জন্য ঘোষণা লুপ - একভাবে, একটি ফাংশন যদি আপনি ঘোষণা করছি এবং a ও b ভিতরে যে আপনি লিখিত করেছি, তারা কেবল যে ফাংশন বৈধ ভিতরে. যার অর্থ হিসাবে শীঘ্রই swap হিসাবে নির্বাহ করার জন্য এটা করা হয় এবং আমরা লাইন 24 থেকে যান লাইন 25, এক্স এবং ওয়াই এ সকল পরিবর্তন করা হয়েছে না. আপনি শুধু একটা সময় পুরো অনেক ভেরিয়েবল কপি সোয়াপিং বরবাদ. সুতরাং দেখা যাচ্ছে যে এই সমাধান আসলে অ সুস্পষ্ট. এটা মান প্রত্যাবর্তন বেশ যথেষ্ট না কারণ আমরা করতে পারেন শুধুমাত্র একটি মান প্রত্যাবর্তন. এবং আমি সত্যিই একই সময়ে উভয় x এবং y অদলবদল করতে না চান. তাই আমরা এই ফিরে আসা চলুন. কিন্তু এখন জন্য, বুঝতে পারছি যে বিষয় মৌলিকভাবে সত্য থেকে যে একটি কপি করা হয় এবং খ. এবং তারা তাদের নিজস্ব সুযোগ আছে. ভাল, এর কিছু উপায়ে এই সমস্যার সমাধানের চেষ্টা যাক. সম্পর্কে আসলে স্ক্রল এখানে ফিরে আসুন এবং আপ খুলুন, এর কথা বলা যাক, একটি চতুর্থ বৈকল্পিক এই, buggy4. এবং এই কি সম্পর্কে? এটি একটি অনুরূপ সহজ কিন্তু এ সমস্যা আগে আমরা একটি ছুরিকাঘাত নিতে চেহারা এটি সমাধান. এই প্রোগ্রামটি বৃদ্ধি বলা হয়. এবং দৃশ্যত: এটি 1 যাও লাইন 18 মধ্যে একটি পূর্ণসংখ্যা x এর সূচনা করে. আমি দাবি x হল 1. আমি তারপর বিন্দু, বিন্দু, বিন্দু বৃদ্ধিশীল, দাবি. আমি তারপর বৃদ্ধি কল. লাইন তখন কিন্তু 22 এবং 23, আমি দাবী এটা মান বৃদ্ধি হয়েছে. আমি দাবী x যাই হোক না কেন এটা এখন হয়, 2 সম্ভবতঃ. কিন্তু এই প্রোগ্রামটি বগী. সমস্যা কি? হাঁ? [শ্রবণাতীত] ডেভিড জে MALAN: যথাযথভাবে. তাই এক্স হয়েছে লাইন 18 সুস্পষ্টরূপে ঘোষণা. যে প্রধান এর কোঁকড়া ধনুর্বন্ধনী ভিতরে হয়. সুতরাং এখানে সহজ উত্তর হল যে, ভাল, এক্স এখানে বিদ্যমান. এটি লাইন 32 মধ্যে বিদ্যমান নেই. তাই আসলে এই প্রোগ্রাম এমনকি না কম্পাইল হবে. কম্পাইলার, যখন আমি চেষ্টা এই কোড কম্পাইল করার প্রণালী, এ সম্পর্কে চিত্কার যাচ্ছে সম্পর্কে কিছু অঘোষিত শনাক্তকারী বা যে প্রভাব কিছু. আসলে, আমি কি চেষ্টা করুন. এই buggy4 করা হয়. এটা এখন পর্যন্ত. লাইন 32 অঘোষিত শনাক্তকারী x এর ব্যবহার. এবং প্রকৃতপক্ষে, আমি কি এখানে আরো স্পষ্ট আজ যাতে এই সহায়ক হবে অফিসে ঘন্টা এবং বাড়িতে. উল্লেখ্য, এটি একটি সামান্য cryptically লিখিত. কিন্তু যে ঝনঝন শব্দ আছে আমাদের yelled, বলছে buggy4.c: 32:5, আসলে দরকারী. মানে ত্রুটি অক্ষর স্থান পাঁচ লাইনে 32 হয়. তাই এক, দুই, তিন, চার, পাঁচ. যে সত্য আছে, যেখানে সমস্যা হয়. এবং এও মনে অফিস সময়ে এবং বাড়িতে রেখে, আমি এখানে ভাগ্যবান. আমি এক ভুল আছে. এটা তুলনামূলকভাবে সহজ ফিক্স করা হচ্ছে. কিন্তু আপনি যদি একটি সম্পূর্ণ পর্দা অপ্রতিরোধ্য ত্রুটির বার্তা, আবার সম্পূর্ণ পেতে, শুধু বুঝি যে গভীরতম এক হতে পারে এর লাক্ষণিক সর্বোচ্চ বেশী. সুতরাং সর্বদা উপরে নিচে থেকে আপনার পেছনে তাড়া বাগ ডাউন. কারণ মাত্র একটি ফ্ুলপাছ চেন প্রভাব আপনাকে পরামর্শ হতে পারে সেখানে উপায় সমস্যা আরো বেশী আসলে কি আছে. তাই আমরা কিভাবে এই যদি আমার লক্ষ্য স্থির করা হয় x এর বাড়ায় পারে? ওটা কি? ঠিক আছে. সুতরাং আমরা x বিশ্বব্যাপী করতে পারেন. যাক এর শর্টকাট যে আমি সতর্ক সম্পর্কে আগে নিতে. কিন্তু নরক, আমরা দ্রুত ফিক্স করা প্রয়োজন. তাই আসুন শুধু int x আপ এখানে বলার. যে এক্স বিশ্বব্যাপী তোলে. তাই এখন প্রধান এটি ব্যবহার করেছে. বৃদ্ধি এবং এটি ব্যবহার করেছে. তাই আমাকে এগিয়ে যান এবং এখন এই সঙ্কলন. Buggy4 না, লিখুন. যাও এখন কম্পাইল করা হচ্ছে. চলুন শুরু করা যাক buggy4 চালানোর জন্য, এবং এটা আসলে কাজ মনে হয়. এখন এই হল এই জিনিস এক - হিসাবে আমি বলতে কি, আমি কি হিসাবে না, হিসাবে আমি সম্পন্ন করেছি এখানে. কারণ সাধারণ, আমাদের কর্মসূচী আরো অনেক আকর্ষণীয় পেতে যাচ্ছে এবং হয় এই আর চেয়ে অনেক বেশী. এবং যদি আপনার জীবনের সমস্যার সমাধান শুধু অই, সব করা আপনার ফাইল শীর্ষে ভেরিয়েবল, খুব দ্রুত কাজ পেতে প্রোগ্রাম horrifically পরিচালনা করা কঠিন. সেটা কঠিন নতুন ভেরিয়েবলের নাম মনে আপ. সেটা কঠিন কি পরিবর্তনশীল কি করছে বুঝতে. সাধারণভাবে তাই, এই একটা ভালো সমাধান নয়. তাই এর এই কি ভালো দিন. আমরা এখানে একটি গ্লোবাল ভেরিয়েবল ব্যবহার করতে চান না. আমি এক্স বাড়াতে চান. সুতরাং অবশ্যই আমি পারা - দিনের শেষে, এটি একটি নিরীহ বিবরণ ধরনের কারণ আমরা এই কাজের জন্য. কিন্তু যদি আমি যে অপারেটর সম্পর্কে, কি বা জানি না আমি অনুমতি দেওয়া হয় নি প্রধান নিজেই তা পরিবর্তন, কিভাবে অন্য উপর আমি এখানে কেন, এই বাস্তবায়ন হতে পারে সময়? যাও ঘনক্ষেত্র কিন্তু বাড়ায় না আমি কিভাবে এখানে এই জিনিস পরিবর্তন? হাঁ. [শ্রবণাতীত] ডেভিড জে MALAN: ঠিক আছে, ভাল. সুতরাং কেন আমি x এর মধ্যে না পাশ? এবং তারপর বরং এটা ফেরত, কেন আমি শুধু x + 1 টি রিটার্ন করবেন না? এখন, একটি দম্পতি আরো জিনিষ এখানে পরিবর্তন আছে. আমি ঠিক দিকে যাচ্ছে না. আমি আর কী করতে হবে না যাও খামচি? অন্য কেউ. হাঁ? [শ্রবণাতীত] ডেভিড জে MALAN: আমি বর্ধন ফেরত টাইপ পরিবর্তন প্রয়োজন কারণ এটি না বাতিলযোগ্য এর. অকার্যকর মানে কিছুই ফিরে হচ্ছে. কিন্তু এখন স্পষ্ট, এটা. তাই এই চাহিদাগুলি যাও যাও যাই হোক না কেন সঙ্গে সামঞ্জস্যপূর্ণ হবে int পরিবর্তন আমি আসলে ফিরে করছি. এখন অন্য কোন কিছু এখনও বগী এখানে. হাঁ? [শ্রবণাতীত] ডেভিড জে MALAN: আমি বাড়ায় x এর প্রয়োজন? [শ্রবণাতীত] ডেভিড জে MALAN: আহ, তাই আমি এক্স পাস প্রয়োজন. আমি এখানে এই প্রয়োজন. প্রোটোটাইপ সুতরাং, আমি এই পর্যন্ত এখানে পরিবর্তন আছে. সুতরাং এই একটি int-এ পরিণত হয়েছে. এই হয়ে আছে - হুম. আমি আসলে একটি বাগ আছে এখানে নিচে. যাক এই প্রথম এক ফিক্স. এই আসলে কি করা উচিত? সুতরাং কোন int কিছু করা না হয়. এটা x হতে পারে. কিন্তু অকপটে, যদি আপনি আপনার ভেরিয়েবল x সব কলিং, এটি পেতে যাচ্ছে কম পরিষ্কার যা যা. তাই আসুন শুধু ইচ্ছামত একটি ভিন্ন আমার জন্য নামকরণের প্রচল চয়ন সাহায্যকারী ফাংশন, ফাংশন আমি লিখছি না. আমরা এটি একটি ফোন করবো. অথবা আমরা এটা বলতে পেরেছিলাম - এর দেওয়া কল তা এমনকি আরো স্পষ্ট হতে even_number. আমি তখন যাও যাই হোক না কেন নম্বর হল প্লাস 1 ফিরে আছে. এবং এখন আমি অন্য একটি জিনিস আপ পরিবর্তন আছে এখানে এবং এক অন্যান্য বিষয় এখানে. কি করে আমি লাইন 21 প্রথম পরিবর্তন আছে? আমি এক্স এটি দায়িত্ব অর্পণ করা আছে. তাই আমি ঠিক বৃদ্ধি x কল করতে পারবেন না. আমি উপর x এর মান পরিবর্তন করে উত্তর মনে রাখা প্রয়োজন বাম দিকে. এবং যদিও x বর্তমান বাম এবং ডান, যা সম্পূর্ণই সূক্ষ্ম কারণ ডান দিকে প্রথম মৃত্যুদন্ড কার্যকর পরার বাঁদিকের মধ্যে plopped পরার হাত জিনিস, এই ক্ষেত্রে এক্স. এবং সর্বশেষে, তাহলে এই একটি সহজ ফিক্স এখন. এই মাত্র সুসংগত হওয়া আবশ্যক কি নীচের ডাউন. আন্তর্জাতিক নম্বর. ঠিক আছে. তাই একটি একটি সত্যিই মূঢ় ফাংশন জন্য পরিবর্তন আভা. কিন্তু যে আমরা ক্রমবর্ধমান করতে চাইবেন প্রতিনিধি. সুতরাং buggy4 করা. আমি কোথাও মাতাল করেছি. ওহ আমার ঈশ্বর. পাঁচ মধ্যে ভুল,, চাই একটা ছয় লাইন প্রোগ্রাম. তাই লাইন 18 এর ভুল, চরিত্র 5? ঠিক আছে. আমি এই int-ডিক্লেয়ার আছে. ঠিক আছে. সুতরাং আসুন একটি অন্যান্য ত্রুটি আভা দেখতে,. হায় ভগবান. 19, 18, 21. কিন্তু আবার, আমি কি শুধু পর্দা পরিষ্কার - কন্ট্রোল এখানে এল - এবং পুনরায় রান ঝনঝন. তাই পাঁচটি সমস্যা আসলে ঠিক যে এক. তাই এখন এর buggy4 চালানো যাক, লিখুন. Whew. x এর মান বৃদ্ধি করেনি সঠিকভাবে হয়েছে. ঠিক আছে. কিভাবে নম্বর বাড়ায় উপর কোন প্রশ্ন? হাঁ? স্পিকার 2: কেন এটা যে আপনাকে কেবল সংখ্যা x পরিবর্তনশীল পালটাতে পারেন নাম এবং এটি কি করব জানি আপনি কি বোঝাতে চেয়েছেন? ডেভিড জে MALAN: গুড প্রশ্ন. কিভাবে এটি যে আমি শুধু সংখ্যা x এবং পরিবর্তন করতে পারেন প্রোগ্রাম জানতে হবে অবিলম্বে? তাই আবার করে, এই বিমূর্ততা হিসাবে মনে করি. সুতরাং যদি আমি প্রধান এবং কেন হয় ক্রমবর্ধমান উন্মুক্তভাবে,, আমি না কি যত্ন কল কি কেন তার রহমান. আমি কি তিনি কল কিছু যে তার বাস্তবায়ন না আছে না যত্ন এই কার্যকারিতা. সুতরাং এটি একটি বাস্তবায়ন বিশদ যে আমি, প্রধান, না যত্নের আছে. এবং শুধু তাই এটি পরিবর্তন ফাংশন ধারাবাহিকভাবে ভিতর, সংখ্যা এখানে এবং সংখ্যা, এই সব এটি লাগে তাই যতদিন আমি recompile. এটা ধরণের যদি আপনি মনে করতে চান - আমাদের বহু ড্রাইভার এর সঙ্গে আপনি যারা, লাইসেন্সের যে, চালিত অথবা আপনি যদি আরও একটি গাড়ীর করেছি চালিত করেছেন - আমাদের অধিকাংশ কোন ধারণা কিভাবে একটি গাড়ী ফণা নীচে কাজ করে. এবং আক্ষরিক, যদি আপনি খুলুন ফণা, আমাদের অধিকাংশ আপ - নিজেকে অন্তর্ভুক্ত - হয় সত্যিই কি আমরা এ খুঁজছেন তা জানা যাচ্ছে না. যেমন আপনি এখন এই অধিকার ভালো স্টাফ সঙ্গে মনে হতে পারে ধরনের. কিন্তু আমরা কিভাবে কাজ করে গাড়ির যত্ন আছে সত্যিই না. আমরা যত্ন না কি rods এবং pistons ভেতরে ও সব তারের আসলে গাড়ী করছে. তাই আপনি কল পিস্টন মত কিছু না ব্যাপার না এখানে এই ক্ষেত্রে. একই ধারণা. হাঁ? [শ্রবণাতীত] ডেভিড জে MALAN: যদি আগে ছিল পরিবর্তনশীল XA মুহুর্তে আরো ব্যবহার আপনি, প্রোগ্রামার সর্বত্র তাদের পরিবর্তন, থাকবে. অথবা আপনি আক্ষরিক ফাইল, মেনু, না পারে এবং তারপর / খুঁজুন প্রতিস্থাপন করুন, যে ভালো কিছু. কিন্তু আপনি নিজে তা পরিবর্তন করতে যাচ্ছি. আপনি সামঞ্জস্যপূর্ণ হতে হবে. [শ্রবণাতীত] ডেভিড জে MALAN: এখানে একটি বিশেষ মত অর্ডার? যদি এই ছিল আরেকটি নম্বর int? হাঁ. তাই অর্ডার বিষয়ে যখন আপনি ফাংশন আহ্বান করা হয়. সুতরাং যদি আমি বর্ধন কলিং এখানে কিছু কিছু কমা সঙ্গে ছিল, একটি সরাসরি ম্যাপিং আছে. প্রথম পরিবর্তনশীল, যাহা বলা এর, প্রথম একটি কপি হয় এখানে যুক্তি উপর. দুঃখিত, এই একটি লঘুবন্ধনী উচিত নয়. দ্বিতীয় এক সঙ্গে যুক্তি লাইন আপ. তাই অর্ডার, হ্যাঁ, বিষয়গুলি. ঠিক আছে. দুঃখিত আমি সেখানে পেতে দীর্ঘ পথ গ্রহণ করেন. অন্য প্রশ্ন? ঠিক আছে. তাই আসুন আমরা যদি কি আসলে যাচ্ছে না আঁকা একটা ছবি দেখতে পারেন এখানে ফণা তল, তাই কথা বলতে. সুতরাং এই একটি আয়তক্ষেত্র যে আপনার কম্পিউটার এর মেমরি প্রতিনিধিত্ব করতে পারে. সুতরাং এমনকি আপনি যদি কোন ধারণা কিভাবে কাজ করে বা মেমরি কিভাবে উপস্থিত RAM-র কাজ আছে, কমপক্ষে অনুমান করা হয় যে আপনি এটি bunches এই দিন আছে. আপনি এটা জায়গা পেয়েছেন. আপনি এটা গিগাবাইট পেয়েছেন. এবং আমরা শুন্য সপ্তাহ থেকে জানি যে একটি বাইট ঠিক কি? 8 বিট. রাইট, যাতে 8 শূণ্যসমূহ এবং বেশী. তাই আপনি যদি আপনার কম্পিউটারের RAM-র একটি কোঁচ, উপস্থিত RAM-র দুটি যোগাড় হয়েছে এই দিন, আপনি একটি আছে মেমরি বা 2 বিলিয়ন বিলিয়ন বাইট, বা প্রায় 8 বিলিয়ন ডলার বা 16 বিলিয়ন ভিতরে আপনার কম্পিউটারের বিট. এখন একটু পশমতুল্য Willy উদাহরণ অসদৃশ, এটি চৌম্বকীয় কণা না সাধারণত আর. ল্যাপটপের মধ্যে ধীরে, অন্তত, এটা কঠিন রাষ্ট্র ড্রাইভ, SSDs, যে শুধুমাত্র কোনো অংশ চলন্ত. এটা সকল ইলেকট্রনিক. এটা সব খানে বিদ্যুত ভিত্তি করে. সুতরাং, মনে হয় যদিও এই আয়তক্ষেত্র শুধুমাত্র একটি বা দুটি প্রতিনিধিত্বমূলক হিসাবে, গিগাবাইট মেমরি যে আপনি আছে. এটা মেমরির একটি খণ্ড. এখন কম্পিউটার বিজ্ঞান বিশ্বের পার্টিশন বন্ধ অংশ বাছাই করা হয়েছে মেমরি বিভিন্ন জিনিষ না. সুতরাং উদাহরণস্বরূপ, যদি এটি আপনার কম্পিউটারের RAM-র - হিসাবে প্রস্তাব আয়তক্ষেত্র আছে - সক্রিয় কনভেনশন দ্বারা যে আউট, আপনার RAM-র শীর্ষে, তাই সাথে কথা বলতে, সাধারণত কি একটি টেক্সট অংশ বলা হয়. সেগুলো হল শূণ্যসমূহ এবং বেশী যে আপনি কম্পাইল করা আছে. সুতরাং যখন আমরা ফণা নীচে কি a.out হয় দিকে তাকিয়ে করেছি, সব শূণ্যসমূহ এবং বেশী - আপনি যখন একটি প্রোগ্রাম চালানো, যারা শূণ্যসমূহ এবং বেশী আপনার হার্ড থেকে লোড হয় কিছু বলা উপস্থিত RAM-র মধ্যে ড্রাইভ. এবং উপস্থিত RAM-র মধ্যে, তারা শীর্ষে রাখা করছি. এখন বেলা, আপনি অন্যান্য জিনিস আছে. সক্রিয়া তথ্য, uninitialized তথ্য. যারা মেমরি দুটি swaths গ্লোবাল ভেরিয়েবল পড়ুন, যা আপনি প্রায়ই ব্যবহার করেন না. তবে কখনও কখনও যদি আপনি না, তারা শেষ পর্যন্ত সেখানে হিসাবে ভাল. তারপর অন্য কিছু উপাদান আছে. এনভায়রনমেন্ট ভেরিয়েবলের মান, যা আমরা অনেক সময় ব্যয় হবে না. কিন্তু তারপর দুটি গুরুত্বপূর্ণ বিষয় আছে যা এই জুড়ে ফিরে আসা হবে সেমিস্টারে, এবং গাদা গাদা. তাই আপনার কম্পিউটার এর মেমরি সবচেয়ে যখন জন্য একটি প্রোগ্রাম সংরক্ষিত কিছু স্ট্যাকের নামক এবং কিছু গাদা বলা. এবং আমরা গাদা সম্পর্কে আজকের কথা বলতে, করছি না কিন্তু চালু করবেন স্ট্যাকের সম্পর্কে কথা বলুন. এবং স্ট্যাকে ভোজনশালা মত মিনতি চাক্ষুষ আপ বোঝানো হয় মাথের হাউস মধ্যে খাবার ট্রে, অথবা যেখানেই যাও আপনি ঘটবে, যেখানে ভোজনশালা কর্মীরা তাদের প্রতিদিন পরিষ্কার. তারা গাদা আপ উপর থেকে মেঝে পর্যন্ত. এবং একইভাবে মেমরি, একটি উপর কিছু নির্বাণ এই ধারণা আছে , গাদা একটি স্ট্যাক কিছু নির্বাণ, একটি স্ট্যাক কিছু নির্বাণ. আমরা কি এবং এই দ্বারা মানে? ওয়েল, আমি কি এর মধ্যে শুধুমাত্র এই ছবি নীচে অর্ধেক উপর জুম আপনার কম্পিউটার এর, উপস্থিত RAM-র জন্য, নিম্নলিখিত উপস্থাপিত. এটা পরিনত হয় যে যখন আপনি a.out মত একটি প্রোগ্রাম চালানো বা হ্যালো, যাই হোক না কেন প্রোগ্রাম যে আপনি লিখিত করেছি, আবার, যারা শূণ্যসমূহ এবং বেশী আপনার হার্ড ডিস্ক থেকে লোড করা হয় - যা দীর্ঘমেয়াদী স্টোরেজ, সেখানে থাকে, এমনকি যখন আপনি বৈঠাচালনা প্লাগ - উপস্থিত RAM-র মধ্যে লোড করা হবে. উপস্থিত RAM-র একটি হার্ড ড্রাইভ তুলনায় দ্রুততর. এটি হার্ড ড্রাইভের চেয়ে কম. কিন্তু যেখানে প্রোগ্রাম বাস যখন আপনি তাদের চালাচ্ছেন. তাই ডবল আপনি একটি Mac বা একটি পিসিতে একটি প্রোগ্রাম ক্লিক করুন - এটা থেকে লোড এর উপস্থিত RAM-র মধ্যে হার্ড ড্রাইভ. যত তাড়াতাড়ি এটা RAM-র মধ্যে লোড এর, শূণ্যসমূহ এবং বেশী উপায় শীর্ষে যান, তথাকথিত টেক্সট সেগমেন্ট. কিন্তু তারপর যত তাড়াতাড়ি আসলে আপনার প্রোগ্রাম আরম্ভ চলমান, প্রধান ফাংশন বলা হয়. এবং প্রধান, হিসাবে আমরা দেখা করেছি প্রায়ই, স্থানীয় ভেরিয়েবল আছে. এবং এটি ints এবং স্ট্রিং এবং অক্ষর এবং ভালো হয়েছে. তাই আপনি যদি আপনার প্রোগ্রাম যে আপনি লিখিত আছে বা প্রোগ্রাম যা আপনার আছে ডবল ক্লিক প্রধান ভেতরে কিছু ভেরিয়েবলগুলি ব্যবহার করা হয়, তারা এ পর্যন্ত শেষ মেমরি আপনার স্ট্যাকের নীচে, তাই কথা বলতে. এখন আরো concretely কি, আসলে এর মানে কি? এই মাত্র মানে হল যে যদি আমরা জিনিষ নম্বর চালু ছিল - যদি আমরা আপনার কম্পিউটারে উপস্থিত RAM-র মাপ, বাইট হিসাবে নম্বর চালু ছিল, নোটিশ এই বাইট শূন্য সংখ্যা হতে পারে. এই বাইট নম্বর এক, দুই, তিন, চার, পাঁচ, ছয়, সব হতে পারে উপায় আপ না - 2 বিলিয়ন সমস্ত উপায় আপ সেখানে উপরে হবে. তাই অন্য কথায়, যখন উপস্থিত RAM-র বা মেমরি সম্পর্কে আমরা বাইট নিরিখে কথা বলুন, এটা ঠিক এর মানে হল যে কেউ কি প্রতিটি যাও নম্বর সিদ্ধান্ত নিয়েছে মেমরি যারা অংশ. সুতরাং যখন আপনি কোন int জন্য 32 বিট প্রয়োজন, অথবা আপনি একটি গৃহস্থালি জন্য 8 বিট, যেখানে প্রয়োজন তারা যা মেমরির মধ্যে শেষ? ভাল ধারণার দিক থেকে, শুধুমাত্র তারা এই নীচের অংশে শেষ জিনিস স্ট্যাকের বলা. কিন্তু কি এখন আকর্ষণীয় হয় যখন প্রধান একটি ফাংশন কল. একটি ফাংশন বলা foo বিন্যাস, শুধু একটি অবাধ নাম ধরুন. মেমরি এই স্ট্যাকের নীচে কি হয় মূল হয়. Foo এখন প্রধান উপরে মেমরি রাখা হয়. সুতরাং কোনো স্থানীয় ভেরিয়েবল যে foo বিন্যাস শেষ ধারণার উপরে ধরণের করেনি আপ প্রধান করে. যদি foo বিন্যাস ফাংশন কল অন্য নামক বার, যারা ভেরিয়েবল আপ এখানে শেষ. যদি বার অন্য কিছু এখানে, এখানে, এখানে কল. তাই এর একটি প্রোগ্রাম সম্পর্কে আকর্ষণীয় হয় যে হিসাবে আপনি ফাংশন কল, এবং সেই হিসাবে ফাংশন ফাংশন কল, এবং সেই হিসাবে ফাংশন ফাংশন কল, আপনি নির্মাণ মেমরির মধ্যে কর্ম এই স্ট্যাকের আপ. এবং শুধুমাত্র একবার একটি ফাংশন আয় আপনি যে স্মৃতি ফিরে পেতে শুরু. সুতরাং সহজতম উপায় মেমরির একটি কম্পিউটার প্রোগ্রাম চালানোর আউট এক যাও ফাংশন যে ফিরে না লিখুন. সুতরাং উদাহরণস্বরূপ, যাক এর সঙ্গে একটি হিসাবে অনেক প্রকট ইচ্ছাকৃতভাবে বগী প্রোগ্রাম. আমাকে এগিয়ে যান এবং না # , int প্রধান (অকার্যকর) অন্তর্ভুক্ত. এবং আমি করতে যাচ্ছি যখন (2> 1), যা সম্ভবত হইনি কখনও হবে আমাদের পরিবর্তন করুন. এবং আমাকে এখন এগিয়ে যান এবং printf না. বাস্তবিক, যে কম চাক্ষুষরূপে আকর্ষণীয় হতে যাচ্ছে. এর এই করুক না. জন্য int-(i = 0; i> এ 0). চলুন শুরু করা যাক এই ভুল না, আমি +. এবং এর এখানে printf না. চলুন কি আমি প্রচারক ছিল অভ্যাস. চলুন একটি পদ্ধতি আছে. অকার্যকর কোরাস, এবং আমরা তোমার int-বলবো. এবং তারপর আমি, printf বলতে চলেছি - উহু, আসুন এই আরো আকর্ষণীয় করে তুলতে. চলুন আসলে এ সব মুদ্রণ কিছু না. এর ঠিক এই করুক না. কোরাস: (i). ঠিক আছে. তাই এই বগী কারণ কেন? আমি এই করছি অভাবপূরণ হিসাবে আমি কি কারণ প্রোগ্রাম আসলে কিছু না স্বার্থ. কিন্তু যে উদ্দেশ্য না. লক্ষ্য হল একটি প্রোগ্রাম যার প্রধান ফাংশন কি, দৃশ্যতঃ আছে লিখতে হয়? নিজেই কল করুন. এবং প্রকৃতপক্ষে, আমরা লুপ প্রয়োজন নেই. চলুন শুরু করা যাক এমনকি এই ঠিক তাই অজটিল হিসাবে সত্যিই দেখিতে না হারান যাও মৌলিক বাগ. মুখ্য কল কিছু sing ধুয়া ধুয়া. তারপর আমি কিছু মূঢ় করেছেন, এবং আমি ধুয়া ধুয়া কল ছিল কারণ আমি অধিকৃত অন্য কাউকে হয়তো এটা বাস্তবায়ন হচ্ছে. এবং এখন এই এখনও সঙ্কলন করা যাচ্ছে না. আমি কি করতে হবে কি? আমি প্রোটোটাইপ প্রয়োজন, মনে রাখবেন. আমি আপ আছে এখানে অকার্যকর ধুয়া (int-ঝ) প্রয়োজন;. সুতরাং এখন, যদি আমি কি এখানে নিচে - প্রকৃতপক্ষে, আমি কি বড় উইন্ডো ব্যবহার. চলুন এগিয়ে যান এবং কোরাস করা. চলুন এগিয়ে যান এবং কোরাস করা. অসনাক্ত ঘোষক আমি ব্যবহার. ওহ, যে ছিল মূঢ়. আমরা যুক্তি প্রয়োজন হয় না. এর ঠিক এই করুক না. চান আমরা এই ভাবে শুরু হয়. এটা হয়েছে একটি সহজ প্রোগ্রাম লিখতে হবে. তাই সেখানে. এখন আমি কি আমার টার্মিনাল উইন্ডোর, পুনরায় রান ঝনঝন শব্দ নিয়ে যান. এবং আমরা এখানে. এটা ছিল সত্যিই দ্রুত. ঠিক আসলে কি ঘটেছে, যদিও? অবশ্য, এখন আমি মুদ্রণ লাইন যুক্ত করতে হবে, তাই আমরা দেখতে পারেন. তাই printf সম্পর্কে বলা যাক, আসুন বলতে, আমি এখানে আছি. ঠিক আছে, কোন ভেরিয়েবল, আমরা যে মত ছেড়ে দেব. আমাকে পুনরায় চালনা করুন. সম্পর্কে পুনরায় রান ধুয়া যাক. এবং চলো. বর্তা. একটি সরাইয়া হিসাবে, কারণ এখনও তা করেনি ক্র্যাশ না? সেগমেন্টেশন ফল্ট সুপার ফাস্ট আগে ঘটেছে. [শ্রবণাতীত] ডেভিড জে MALAN: যথাযথভাবে. সুতরাং মুদ্রণ সময় লাগে. এটা কম্পিউটার এর পক্ষ থেকে আরো কাজ নেয়. এবং এটা আছে. সেগমেন্টেশন ফল্ট. তাই লক্ষ্য করা ঠিক কিভাবে দ্রুত প্রোগ্রাম সঞ্চালন করা হয়. আপনি যদি কিছু, সুপার ফাস্ট মুদ্রণ করছি না. কিন্তু আমরা এখনও এই সেগমেন্টেশন ফল্ট না কারণ কি ছিল? হ্যাঁ, যদি আপনি কিভাবে আপনার কম্পিউটার এর মেমোরি আউট পাড়া হল, এই চিন্তা যাও প্রধান হতে হবে. কিন্তু এখানে - এর দেওয়া ঠিক এই কোরাস, কল এবং এর যাক এই ধুয়া কল. এবং এখন যদি আমি আমার নন্দনতত্ব অধিকার না, শুধু এই ধুয়া বলতে হবে, কোরাস, কোরাস, কোরাস, কোরাস, কোরাস, কোরাস, বিজ্ঞাপন nauseum. এবং অবশেষে, কি ঘটতে যাচ্ছে? যদি আক্ষরিক বড় ছবি হল এই, ঠিক কি ধারণার দিক থেকে? স্ট্যাকের overruns গাদা. বা তার থেকেও খারাপ, তাহলে টেক্সট সেগমেন্ট সহ সবকিছু,, যা পদদলিত করা শূণ্যসমূহ এবং বেশী যে আপনার প্রোগ্রাম প্রতিনিধিত্বকারী. সংক্ষেপে, এই শুধু সুপার, সুপার খারাপ. রাইট? তোমার প্রোগ্রাম নিয়ন্ত্রণ করেনি spiraled আউট. আপনি পথ আরো মেমরি বেশী কারণ আপনি একটি মূঢ় সমস্ত উদ্দেশ্যে ব্যবহার করছেন এই ক্ষেত্রে ভুল. অথবা এই ক্ষেত্রে, একটি খুব ভেবেচিন্তে কাজ ফাংশন নিজেই কলিং. এখন এই সব খারাপ হয় না. নিজেদের কলিং কার্যাবলী আসলে মহান ক্ষমতা আছে আপনি যখন এটি সঠিকভাবে ব্যবহার. আমি এখানে সঠিকভাবে ব্যবহৃত এটি নি. তাই এই সকল খারাপ হয় না. কিন্তু এটা সত্য যে আমি নিজেকে থামাতে কলিং আসলে কখনও একটি মৌলিক দুর্বলতা এখানে এই প্রোগ্রাম. তাই যেখানে আমরা এই সমস্ত সাথে যাচ্ছে? ভাল, কি সত্যিই এর ঘটছে? যখন আমি বর্ধন ফাংশন কল, ভালো আমরা যারা উদাহরণ মধ্যে কাজ হয়েছে, 1 আমি যে আমি পাস ইনের মত একটি মান আছে আমি এক নম্বর একটি কপি পাস. সুতরাং নিম্নলিখিত ঘটবে. সুতরাং আসুন বৃদ্ধি উদাহরণ ঢোকা. এবং এখানে ডান উপর এই লোক. সুতরাং তা এখানে আসলে এর ঘটছে. যখন আমি বর্ধন বলা হয়, এবং আমি x এর মধ্যে পাস pictorially, কি এখানে হচ্ছে এই - যদি আমি 1 এর মান এখানে সংরক্ষিত আছে, এবং আমি আসলে বৃদ্ধি কল, যা এখন বলা হয় ধুয়া - হাঁ, যে সম্পর্কে নিক্ষেপ এখানে বন্ধ. তাই আসুন এই বৃদ্ধি কল. এবং আমরা কি এই পরের ফাংশন করা যাচ্ছে না. তাই আসলে কী ঘটছে এখানে প্রধান কোথাও, আমি একটা তাল আছে মেমরি যা সংখ্যা 1 সংরক্ষণ করা হয়. আমি যখন কল বৃদ্ধি, আমি মেমরি অন্য চাঙ্গড় ব্যবহার করছি, কিন্তু এখন আমি 1 কপি আছে. যখন আমি যে মান বাড়ায়, এই পরিণত 2 - এ লিখিত ভয়ঙ্করভাবে পর্দা এখানে. কিন্তু তারপর, কি বৃদ্ধি আয় হিসাবে ঘটবে যত তাড়াতাড়ি? এই মেমরি শুধুমাত্র অপারেটিং সিস্টেমের হস্তান্তর পরার ফিরে, যার মানে সব আপনি কিছুই দরকারী সম্পন্ন করেছি. এক যে প্রধান হয়েছিল আছে এখনও আসলে আছে. তাই যেখানে আমরা এই সাথে যাচ্ছে? হ্যাঁ, এটি সক্রিয় যে আপনি এই ফিরে ক্রম পশ্চাতে যা মেমরির মধ্যে আছে বাইট যে আপনি স্টাফ করা ইন করতে পারেন এবং এটি সক্রিয় যে ইতিমধ্যে আমরা কিছু যে নির্বাণ অন্তর্গত করেছি দেখা জিনিষ ফেরত যাও ব্যাক ব্যাক ব্যাক যাও. একটি স্ট্রিং এক সপ্তাহ এবং এখন সপ্তাহে দুই উপর ভিত্তি কি? সুতরাং এটি শুধু অক্ষরের একটি সংগ্রহ. সুতরাং দেখা যাচ্ছে, ঠিক যেমন আপনি মেমরি সংখ্যাগুলি লাগাতে পারেন একভাবে, আপনি যা করতে পারেন মেমরির মধ্যে অক্ষর করা. এবং একবার আমরা যা মেমরির মধ্যে আরম্ভ নির্বাণ অক্ষর ফিরে যাও যাও যাও ব্যাক ব্যাক ফিরে, এটি সক্রিয় যে একটি ভালো জিনিস সহজ ব্যবহার লুপ জন্য বা যখন একটি লুপ, আমরা বারবার করতে পারেন - থেকে একটি পংক্তি অক্ষর উপর বাম থেকে ডাইনে - এবং বিভিন্ন অক্ষর সেগুলি সম্পূর্ণভাবে মালিশ করতে শুরু করুন. এ বি বি সি যাতে শেষ পর্যন্ত, আমরা একটি নিতে পারেন হতে পারে হতে পারে ইংরেজি বাক্য যে আসলে ইন্দ্রিয় তোলে এবং তাদের প্রতিটি রূপান্তর চিঠি আমাদের কম্পিউটার এর মাধ্যমে মেমরি হাঁটা দ্বারা একটি সময়ে এক বাকি যাও প্রকৃতপক্ষে এনক্রিপ্ট অধিকার. তাই আমাদের এখানে এর পাঁচ মিনিট বিরতি দেওয়া, এবং যখন আমরা ফিরে আসুন, আমরা করব তথ্য scrambling এই প্রক্রিয়া শুরু. ঠিক আছে. তাই আগে যাও কিছু ক্রিপ্টো মধ্যে আকর্ষণীয় এবং আমরা এইসব জিনিস বলা অ্যারে, যাক সম্পর্কে কোনো প্রশ্ন জন্য বিরতি কারণ আমি মনে সত্যিই আমি ধরনের বলার কিছু যারা বিষয়. সুতরাং এর ঠিক করা যাক এখন যদি আমরা করতে পারেন. তাই আমরা ঠিক ফেরত মান সম্পর্কে বললাম. আমরা আর্গুমেন্ট সম্পর্কে বললাম. এবং আমরা এই ধারণা সম্পর্কে বললাম, যা আমরা ফিরে সপ্তাহের মধ্যে যাবেন এই সারিবদ্ধ আভা মেমরি হিসাবে দেখার, আসা ট্রে, তাই কথা বলতে. আপ উপর নিচ থেকে, যেমন প্রতিটি ট্রে যে স্ট্যাক করা পরার উপস্থাপন একটি ফাংশান বর্তমানে যা হচ্ছে এর নামে. কোন প্রশ্ন? সুতরাং কিভাবে সম্পর্কে - আমাকে একটি প্রশ্ন জিজ্ঞাসা করার চেষ্টা করুন. আমি রাখা ভক্ষক যে, কিন্তু এখন it's - সব you've বালক এর মুখ দেখা যায়. সুতরাং আমরা যে ফিরে পাবেন. তাই আমাকে এখানে একটি প্রশ্ন জিজ্ঞাসা করুন. আমাকে কি এটা আমাদের আগে প্রশ্ন এ কিছু আগে ছিল এই ফিরে অজটিল এবং যে বৃদ্ধি লঘুবন্ধনী খোলা আছে, int-সংখ্যা, বন্ধ লঘুবন্ধনী. কি int-নম্বর প্রতিনিধিত্ব করেন? [শ্রবণাতীত] ডেভিড জে MALAN: একটি যুক্তি. ঠিক আছে, কিন্তু এর কি কোন যুক্তি? [শ্রবণাতীত] ডেভিড জে MALAN: দুঃখিত, কি যে? স্পিকার 3: আপনি কিছু ইন পাস ডেভিড জে MALAN: ঠিক আছে. তাই কিছু যে আপনি পাস ইন এবং আরো সাধারণভাবে, এটি শুধু ইনপুট. আপনি যদি একটি জীবনের ফাংশন এবং যে ফাংশন এর উদ্দেশ্য লেখার না হয় একটু ভিন্ন প্রত্যেক সময় আপনি এটি ব্যবহার করতে কিছু, তাহলে জন্য একমাত্র উপায় যে সত্যিই ঘটতে যাও যাও ইনপুট দিয়ে এটি প্রদান করা মনে হবে যাতে তা যে ইনপুট সঙ্গে কিছু সময় বিভিন্ন প্রতিটি করতে পারেন. তাহলে আপনি দুটি জিনিস যখন একটি ফাংশন ইনপুট নেয় নির্দিষ্ট করতে হবে. আপনি নামের যে আপনি যে ইনপুট দিতে চান বিশুদ্ধরূপে, জন্য নির্দিষ্ট করতে হবে আপনার নিজের সুবিধার যাতে আপনি এটা ফাংশন মধ্যে পাঠাতে পারেন যে আপনি নিজেকে, লেখা হিসাবে আমি 32 লাইন এখানে কি হয়. কিন্তু আপনাকে তার টাইপ কারণ সি একটি প্রোগ্রামিং ভাষা নির্দিষ্ট করতে হবে যে শুধু প্রয়োজন আপনি যদি একটি পরিবর্তনশীল করতে চান, আপনি কম্পিউটার বলতে কি আছে তথ্য টাইপ করুন এটা হয়, বৃহৎ অংশ যাতে এটি কতগুলি বিট জানে যাও যে পরিবর্তনশীল জন্য বরাদ্দ. কারণ এটি ছয় হতে পারে - দুঃখিত, এটি ছয় করা হবে না. এটা 16 হতে পারে. এটা হতে পারে 8. এটা 32, এমনকি 64 হতে পারে. কিন্তু কম্পিউটার জানা প্রয়োজন. এখন বাম দিকে int-বিপরীতে দ্বারা কি, প্রতিনিধিত্ব করে? [শ্রবণাতীত] ডেভিড জে MALAN: কি যে? [শ্রবণাতীত] ডেভিড জে MALAN: ফাংশন টাইপ এবং, আরো নির্দিষ্টভাবে, এর উত্পাদনের টাইপ. রাইট. সুতরাং প্রথম বন্ধনী জিনিস উপস্থাপন করে যেহেতু তার ইনপুট, যদি থাকে, বাম জিনিস থেকে আউটপুট তার প্রতিনিধিত্ব করে. এবং এই ক্ষেত্রে, দৃশ্যত বৃদ্ধি কোন int ফেরৎ. এবং তাই int-এই ফাংশন রিটার্ন টাইপ. কি মানে ফিরে যাও? আক্ষরিক, আপনি ফিরে অভিব্যক্তি ব্যবহার. এবং তারপর যদি আপনার কীওয়ার্ড অধিকার ফিরে হয় একটি পূর্ণসংখ্যা তারপর, যে এটা কি আমরা অঙ্গীকার করেছি প্রকৃতপক্ষে সঙ্গে সামঞ্জস্যপূর্ণ. আপনি ভালো কিছু করা যেত না - হ্যালো, বিশ্ব - কারণ যে একটি স্ট্রিং. সম্ভবত এটি একটি পূর্ণসংখ্যা হয় না. তাই সংক্ষিপ্ত, বোঝা আমাদের সত্যিই হয়, প্রোগ্রামার, হিসাবে নির্দিষ্ট করা আমরা কি ফিরে যাও এবং তারপর এটি আসলে ফিরে যেতে থাকেন. এবং তারপর একটি বাচ্চা আরো পরিষ্কার কনটেক্সট না - আবার তিনি আছে. প্রসঙ্গ - বড় বিস্ময় মাত্র কয়েক মিনিটের মধ্যে আসছে. এখানে প্রসঙ্গ এখন মনে হয় যে আপনার কম্পিউটার এর মেমরি হয় আবার,, একটি গিগাবাইট, দুই গিগাবাইট, যাই হোক না কেন. হয়তো এটা আরো. হয়তো এটা কম. কিন্তু কম্পিউটার বিভিন্ন বিভাগে তার হিসাবে এটি দেখে. কিছু হারিয়ে যায় সেখানে. অন্য কিছু যায় উঠে আসে. বিভিন্ন উপাদান মধ্যম যায়. এবং আজ, আমরা এই গল্প বলার শুরু. কিন্তু আমরা এই সময়ের যাও ফিরে পাবেন. এখন জন্য, মেমরি শুধুমাত্র টুকরা আমরা সত্যিই যত্নশীল হয় টেক্সট সেগমেন্ট কারণ শুধু যে শূণ্যসমূহ এবং বেশী উপস্থাপন যে ঝনঝন outputted করেনি. সুতরাং যখন আপনি a.out ভালো কীবোর্ড এ একটি কমান্ড চালানোর জন্য, অথবা আপনি ডবল ম্যাক অপারেটিং সিস্টেম বা উইন্ডোজ উপর একটি আইকন ক্লিক করুন, আপনার প্রোগ্রাম আপনার হার্ড থেকে লোড এর উপস্থিত RAM-র পুঁতা. এবং এটি আপনার কম্পিউটারের RAM-র শীর্ষে, তাই কথা বলতে plopped এর. এখন এদিকে, হিসাবে আপনার প্রোগ্রাম আরম্ভ চলমান এবং প্রধান বলা পরার প্রোগ্রাম আপনাকে লেখেন বা প্রোগ্রাম মাইক্রোসফট বা আপেল লিখেছে, তার কোন স্থানীয় ভেরিয়েবল আপনার কম্পিউটার এর মেমরি নীচে শেষ আপ ডাউন আছে. কিন্তু যদি অন্য প্রধান ফাংশন কল যে নিজেই ভেরিয়েবল বা আছে আর্গুমেন্ট, তারা এটি উপরে শেষ পর্যন্ত. এবং যদি কিছু ফাংশন কল যে, তারা এটা উপরের শেষ, উপরের, উপরের. এবং শুধুমাত্র একবার একটি ফাংশন নির্বাহ ট্রে এর স্ট্যাকের যায়, এটি করা সম্ভব সাথে কথা বলতে, নিম্ন এবং নিম্ন পেতে শুরু. এবং এই কি তাহলে সংক্ষেপে মধ্যে,, ব্যাখ্যা করে কেন, যখন আপনি কল ঘনক - অথবা আপনি বৃদ্ধি কল - আপনি মূল্যের একটি কপি কথা প্রসঙ্গে করছি. এবং কি যে pictorially মানে হল যে আপনি আক্ষরিক করছি লেখা মেমরি অন্য অংশে সংখ্যা 1, পরিবর্তন যে 1 ক্ষেত্রে 2, বর্ধন - অথবা একটি 8, ঘনক ক্ষেত্রে - এবং ঐ দূরে ছুঁড়ে মেমরি বৃদ্ধি বা ঘনক্ষেত্র হিসাবে হিসাবে শীঘ্রই ফাংশন আয়. প্রশ্ন. [শ্রবণাতীত] ডেভিড জে MALAN: কোথায় - গ্লোবাল ভেরিয়েবল কি এর মধ্যে সংরক্ষণ করা হয় বর্তমানে বলা সক্রিয়া তথ্য বা uninitialized তথ্য. পার্থক্য হচ্ছে, যদি আপনি একটি বিশ্বব্যাপী পরিবর্তনশীল আছে, এবং আপনি এটি দায়িত্ব অর্পণ করা অবিলম্বে সমান সাইন সঙ্গে একটি মান, তা শেষ শীর্ষে উঠে আসে. এবং আপনি যদি শুধুমাত্র কোন মান int x সেমিকোলন বলে, এটা শেষ হবে সামান্য আপ সহজভাবে প্রচল উপস্থিত RAM-র দ্বারা কম. অন্য প্রশ্ন. ঠিক আছে. তাই এই ছবি ফিরে হিসাবে আমরা কি করতে পারি সঙ্গে আরো শক্তিশালী হবে সঙ্গে কম্পিউটার. কিন্তু এখন জন্য, এর ক্রিপ্টোগ্রাফি, একটি নির্দিষ্ট ধরনের একটি সংক্ষিপ্ত ভূমিকা আছে যাক ক্রিপ্টোগ্রাফি যে কিন্তু সমাধানের জন্য বিশ্বের সকল সমস্যার সমাধান না তাদের মধ্যে কিছু. এখানে এই ক্ষেত্রে, আমরা কিছু বলা গোপন কি ক্রিপ্টোগ্রাফি আছে. এবং গোপন কি ক্রিপ্টোগ্রাফি, নাম হিসাবে সুপারিশ, নিরাপত্তা রূপটি থেকে একটি গোপন. সুতরাং উদাহরণস্বরূপ, যদি আপনি গ্রেড স্কুলে ফিরে এসেছি এবং আপনি একটি ক্ষণস্থায়ী করছি সামান্য গোপন ছেলে বা মেয়ে আপনাকে নিষ্পেষণ হয় প্রেমপত্র - যদি আপনি শ্রোতার মাধ্যমে যে পাস চেয়েছিলেন, সম্ভবত আপনি না লিখতে হবে বরং, আপনি; যেমন ইংরেজিতে একটি নোট বা যাই হোক না কেন আপনার স্থানীয় ভাষা এটি এনক্রিপ্ট করতে পারে. অথবা আপনি শুধুমাত্র একটি টেক্সট মেসেজ পাঠাতে তাদের এইসব দিন হতে পারে. কিন্তু আসলে আপনি পাস শ্রেণীকক্ষ জুড়ে একটি নোট তাদের পারে. এবং এই ধরনের একটি উপায় নিরাপদভাবে এই না, যে আপনার বন্ধু এবং শিক্ষক না কি আপনি লেখার না জানি, আপনি একটি মোটামুটি সহজ সঙ্গে আসা পর্যন্ত হতে পারে অ্যালগোরিদম - যদিও তরুণ হতে পারেন - শুধু শব্দের হামাগুড়ি দিয়া আরোহণ. সুতরাং পরিবর্তে একটি লেখা, আপনি বি বি এর পরিবর্তে লিখুন হতে পারে, আপনি লিখতে পারে সি পরিবর্তে সি, ডি আপনি লিখুন, এবং তাই ঘোষণা হতে পারে. অথবা আপনি একটি অক্ষর আরো পরিশীলিত অনুবাদ সাথে আসতে পারেন বিভিন্ন বর্ণের. কিন্তু ধরা হয় যাকে আপনি এই নোট প্রেরণ করছি ছেলে বা মেয়ে প্রয়োজন কিছু জানি. যা কি, সম্ভবত? ভালো লেগেছে, আপনার কি গোপন করা হয়. ভালো লেগেছে, কি হিসেবে এবং Bs এবং Cs এবং Ds মধ্যে যে ম্যাপিং? হয় এটা যোগ করা প্রতিটি অক্ষর থেকে যেতে, তাই কথা বলতে, একটি বি, বি সি যাও? এটা যে তুলনায় আরো জটিল? যাতে আপনি এবং আপনার ভালোবাসার এই গোপন তথ্যের প্রয়োজন আছে. কিন্তু এখানে নিয়মিত 22 ধরনের আছে. যদি এই হয় খুব প্রথমবার মাধ্যমে এই প্রেমপত্র পাঠানোর করছি বর্গ, কিভাবে যে ছেলে বা মেয়ে কি এমনকি গোপন হয় জানা যাচ্ছে? তাই গোপন চাবি ক্রিপ্টো সমস্ত বিশ্বের সমস্যা সমাধানের জন্য না. এবং এর আসলে সেখানে একটি সম্পর্ক যে আমরা ফিরে নিত এর শেষ সেমিস্টারে. একইভাবে, আমাদের কেউ কখনও সম্ভবত পাঠানো একটি - একইভাবে, আমাদের অধিকাংশ কেউ যে ইনস্ট্যান্সের জন্য কাজ করে, না জানি না, Amazon.com. এবং এখনো, সম্ভবত আমাদের অনেক Amazon.com আছে পণ্যদ্রব্য কেনা. এবং আমরা ধরে নিই শেখানো করছি যে এই ই কমার্স লেনদেন নিরাপদ. রাইট? URL-এ সম্ভবত এটির মধ্যে দিয়ে https বলছেন. হয়তো এখন পর্যন্ত এর একটি নিরীহ সামান্য তালা আইকন কোথাও. ক্রিপ্টোগ্রাফি কিছু আপনার ক্রেডিট কার্ডের তথ্য সুরক্ষিত আছে মধ্যে আপনি এবং Amazon.com. এবং এখনো, যদি কিছু গোপন বুদ্ধিমান ক্রিপ্টোগ্রাফি জড়িত থাকে, এবং আমি এখনো না ইসলাম কাউকে, জানতে এবং আমি অবশ্যই ব্যবস্থা করেছি কোন ধরনের না ইসলাম কারো সঙ্গে গোপন, কিভাবে আমার কম্পিউটারে বা আমার ব্রাউজার এই করছে? ওয়েল, সক্রিয় আউট ক্রিপ্টোগ্রাফি অন্যান্য সম্পূর্ণভাবে ধরনের সমাধান আছে যে সমস্যা. কিন্তু আজকের জন্য, আমরা একটি সহজ, যেখানে আপনি ব্যবস্থা করতে পারে এ মনোনিবেশ করব প্লাস বা 1 হিসেবে এবং মত ম্যাপিং Bs মধ্যে কিছু কিছু গোপন জানা আগাম,. এবং সাধারণত ক্রিপ্টোগ্রাফি প্রক্রিয়ার এই যায়. আপনি কিছু প্লেইন টেক্সট, বাম এখানে দেখানো আছে. আপনি এলগরিদম বা পদ্ধতির কিছু মাধ্যমে এটি চালানোর জন্য এটি এনক্রিপ্ট. হতে পারে যে শুধু একটি হয়ে বি, বি, সি হয়ে তারপর আপনার সাথে শেষ টেক্সট সাইফার. ইতিমধ্যে একবার, আপনার ভালোবাসার গোপন নোট পায়, তাহলে সে ঠিক করেছে তারপর ডিক্রিপ্ট এটি সাধারণত যে অ্যালগরিদম reversing তাই হিসাবে পেতে দ্বারা প্লেইন টেক্সট ব্যাক. এখন এই শারীরিক সমগ্র আদর্শের আছে. উদাহরণস্বরূপ, এই সামান্য একটি গোপন সঙ্কেতমোচক রিং. এবং এই অর্থে যে এখানে আছে দুটি dials মধ্যে একটি আংটি. এই জিনিস বাইরে পরিধি অন করুন, Z মাধ্যমে একটি চিঠি আছে, যদিও তারা র্যান্ডম ক্রম করছি. এবং ভেতরের, এর আসলে কোন কিছু যেমন যে এই সংখ্যার সাথে, রিং, আপনি ভিতরে না বাইরে কিন্তু ধরনের করার সমপন্থী চালু করতে পারেন বর্ণ দিয়ে সংখ্যা. এবং ক্লিপ আপনি দেখুন - এর মধ্যে কয়েকটি আপনাকে দেখা যায় 24/7 করা হতে পারে কাছাকাছি একটি সিনেমা নামক একটি ক্রিসমাস গল্প থেকে ক্রিসমাসের মৌসুমে. আপনি যে সামান্য Ralphie ছিল তাই কি সামান্য অনাথ চিত্র আউট অধীর দেখতে পাবেন অ্যানি এর গোপন বার্তা ছিল যে তার মধ্যে আদানপ্রদান হয়েছে, আমি মনে করি, একটি সিরিয়াল বাক্স উপর সাংখ্যিক বার্তাগুলির গঠন করে. এবং আপনি কি সব সামান্য কার্ড পরিপ্রেক্ষিতে যে স্তূপাকার ছিল খাদ্যশস্য মধ্যে বাক্স. আপনি সেগুলি ইন মেইল ​​ছিল আপনি গোপন সঙ্কেতমোচক রিং ফিরে পেতে ছিল, যাতে অবশেষে আপনি চিন্তা করতে পারেন কি ম্যাপিং অক্ষর এবং সংখ্যার মধ্যে, বা চিঠি এবং চিঠি. তাই আমি আপনাকে এই একটি ক্রিসমাস গল্প থেকে ছোট ক্লিপ দিতে pset 2 প্রেরণা এবং আমাদের একটি মুহূর্ত আলোচনা, অ্যারে, ২. তাই আমরা এখানে Ralphie আছে. [ভিডিও প্লেব্যাক] -করা সব এবং কতিপয় এটি পরিচিত যে এতদ্দ্বারা রালফ পার্কার নিযুক্ত করা হয় লিটল অনাথ অ্যানি গোপন বৃত্ত সদস্য এবং সকল এনটাইটেল করা হয় সম্মান এবং বেনিফিট তত্প্রতি ঘটছে. -স্বাক্ষরিত, লিটল অনাথ অ্যানি. প্রতিস্বাক্ষরিত, পিয়ের আন্দ্রে! ইন কালি! সম্মান এবং ইতিমধ্যে নয় বছর বয়সে বেনিফিট,. চলো, সঙ্গে এটি পেতে এর যাক. আমি সব smugglers এবং জলদস্যু সম্পর্কে যে জ্যাজ প্রয়োজন হয় না. ব্ল্যাক এর আখেরী সাহসিক জন্য আগামীকাল রাতের শুনুন জলদসু্য জাহাজ. এখন এটা আপনাকে সদস্যদের জন্য অ্যানি এর গোপন বার্তা জন্য সময় ও বৃত্ত. মনে রাখবেন, বাচ্চারা, অ্যানি এর গোপন বৃত্ত সদস্যদেরই কেবলমাত্র ডিকোড করতে পারে অ্যানি এর গোপন বার্তা. মনে রাখবেন, অ্যানি আপনার উপর নির্ভর করে না. B2 আপনার পিন সেট করুন. এখানে বার্তা. 12, 11 - আমি আমার প্রথম গোপন বৈঠকে am. -14, 11, 18, 16 - -পিয়ের মহান ভয়েস আজ রাতের মধ্যে ছিল. আমি যে আজ রাতে এর বার্তা ছিল সত্যিই গুরুত্বপূর্ণ বলতে পারে. -3, 25. এটা অ্যানি নিজেকে থেকে একটি বার্তা. মনে রাখবেন, যে কেউ বলতে না. -90 সেকেন্ড পরে, আমি বাড়িতে শুধুমাত্র রুম আছি যেখানে নয় একটি ছেলে গোপনীয়তা এবং ডিকোড বসতে পারে. অই, আমি বি পরের গিয়েছিলাম. ই প্রথম শব্দটি হল হতে. এস এটা সহজ ছিল এখন আসছে. U. -ওহ, চলো Ralphie,. আমি যাই না. -I'll ডান ডাউন হতে, মা. -Gee শোঁ শব্দ. -টি, ও নিশ্চিত করা. কি হবে? কী ছিল লিটল অনাথ অ্যানি বলার চেষ্টা করছেন? কি হবে? -Ralphie! রান্ডি যেতে না করেনি. দয়া করে আপনি কি বাইরে আসতে হবে? -সমস্ত অধিকার, মা. আমি ডান আউট হবেন. -কাছাকাছি আমি এখন পেয়ে ছিল. টান খুবই ভয়ানক ছিল. এটা কি ছিল? গ্রহের ভাগ্য অনিশ্চয়তার মধ্যে সময় স্তব্ধ হতে পারে. -Ralphie! রান্ডি যেতে না হয়. -I'll ক্রন্দিত অট্ট আউট জন্য ডান আউট,. -Gee, প্রায় নেই. আমার আঙ্গুলের আসেন. আমার মন ছিল একটি ইস্পাত ফাঁদ. প্রতিটি দড়ি আন্দোলিত. এটা প্রায় স্পষ্ট. হ্যাঁ, হ্যাঁ, হ্যাঁ, হ্যাঁ. আপনার Ovaltine পান-নিশ্চিত করা. Ovaltine? একটি অপ্রীতিকর বাণিজ্যিক? গোলাম আজম. [END টি ভিডিও প্লেব্যাক] ডেভিড জে MALAN: তাই সেখানে আমরা ক্রিপ্টোগ্রাফি আছে. কিভাবে একটি কম্পিউটার যাতে আমরা রূপায়ণকারী সম্পর্কে বা যেতে পারেন ভালো জিনিস প্রতিনিধিত্বমূলক? ভাল, আমরা আমাদের নিজেদের মত প্রকাশের একটি সামান্য flexibly তুলনায় আরো একটি উপায় প্রয়োজন আমাদের ভেরিয়েবল পর্যন্ত করে নিতে পারে. আমরা ints করেছি ছিল. আমরা অক্ষর আছে. আমরা floats এবং টেনিস এবং কয়েক অন্যদের করেছি ছিল. কিন্তু হল মেমরি পৃথক টুকরা যে আমাদের কি সত্যিই করার অনুমতি দেয় না শব্দ এবং বাক্য ও বাক্যাংশ ভালো জিনিস প্রকাশ. বস্তুত, আমরা বিষয়গুলো নামক স্ট্রিং করেছি. কিন্তু আমরা যে এই প্রতিশ্রুতি সত্যিই ঠিক CS50 মধ্যে একটি সরলীকরণ গ্রন্থাগারের যে আমরা ছুলা ফিরে যাও ইচ্ছুক করছি. তাই আসুন এখানে যে কি শুরু. আমাকে এগিয়ে যান এবং একটি ফাইল খুলুন - এই ফাইলের সব স্বাভাবিক অনলাইন হিসাবে নেওয়া হয়েছে - নামক একটি সমস্যা সম্পর্কহীন স্ট্রিং সমস্যা সমাধানের array.c কিন্তু যে রঙে একটি কিভাবে আমরা কিছু ব্যবহার হতে পারে এখানে ছবি একটি অ্যারে বলা. একটি অ্যারের একটি ডাটা টাইপ. এটা পরিবর্তনশীল একটি প্রকারের টাইপ,, যে একাধিক ক্ষুদ্রতর তথ্য প্রকারের এর ভিতরে ফিরে যাও যাও ব্যাক ব্যাক ব্যাক যাও. সুতরাং উদাহরণস্বরূপ, যদি আমরা একটু প্রোগ্রাম যা আপনাকে লিখতে চান, আপনার 50 মত একটি কোর্স যে দুটি quizzes, আপনি খুব সহজেই করতে পারে গড় উপহাস এই প্রোগ্রাম লিখুন - এমনকি গত সপ্তাহে এর কিছু উপাদান প্রদান উপর ভিত্তি করে - দ্বারা GetInt এবং ভেরিয়েবল ব্যবহার করে একটি দম্পতি. আন্তর্জাতিক quiz1, int-quiz2, এবং এটি বেশ সহজবোধ্য. এটা হয়তো এর 10, কোড, সর্বোচ্চ 20 লাইন, একটি প্রোগ্রাম যা জিজ্ঞেস বাস্তবায়ন দুই ব্যঙ্গ স্কোর তারপর ব্যবহারকারী এবং তাদের যুক্ত করে তাদের গড় নির্ণয় একসঙ্গে দুই দ্বারা, বিভাজক, তারপর ফলাফল এবং মুদ্রণ. আমরা সম্ভবত না যে পরে চমত্কার নির্দ্ধিধায় এখন পারে মিনিট কিছু সংখ্যা. কিন্তু সমস্যা হল অনুমান যে 50 তিনটি ছিল ক্যুইজ বা চার. ধরুন আপনি যে একটি শ্রেণী ছিল যে জন্য একই প্রোগ্রাম ব্যবহার করতে চেয়েছিলেন সাপ্তাহিক ক্যুইজ. একটি বর্গ যে সাপ্তাহিক ক্যুইজ সম্পর্কে চিন্তা করেনি. যদি একটি সেমিস্টারে মধ্যে 16 বা তাই সপ্তাহের মত আছে এখন, আপনি 16 ভেরিয়েবল আছে - int-quiz1, int-quiz2, int-quiz3, int-quiz4. যত তাড়াতাড়ি আপনি শুরু এই অতিরেক এইজন্য, এই কপি পেস্ট কোড, এটা আপনি চান একটি ভাল উপায় ছিল না শুরু করা উচিত. এবং সৌভাগ্যক্রমে অ্যারে এর কারণ,, আছে. তাই এর এই না দেওয়া. প্রথমত, আমাকে একটি খুব সহজ বিষয় যে আমরা এ পর্যন্ত ব্যবহার করেছি না পরিচয় করিয়ে, কিন্তু আপনি কোড তা মাঝে মাঝে দেখতে পাবেন. এটা কি সাধারণভাবে এর নামক একটি ধ্রুবক. এটা অর্থে যে এই মান পরিবর্তন না একটি ধ্রুবক. মানুষের রীতিনীতি যখন একটি ধ্রুবক সৃষ্টি সমস্ত মূলধন ব্যবহার করা হয় অক্ষর, ঠিক তাই যে সত্যিই এটি আপনার কোড মধ্যে ঘোরা আউট. # এবং বিশেষ অভিব্যক্তি যে আপনি সি ব্যবহার সংজ্ঞায়িত করা হয়. সুতরাং # যদি আপনি বলে, একটি স্থান নির্ধারণ করুন তারপর, তারপর আপনি যে শব্দ জন্য ব্যবহার করতে চান ধ্রুব এর নাম, তারপর ধ্রুব এবং মান. বিজ্ঞপ্তি সুতরাং, এই একটি পরিবর্তনশীল কিছু বরাদ্দ থেকে ভিন্ন. সাইন কোন উল্লেখ আছে. কোন সেমিকোলন আছে. এটি কি একটি preprocessor ডিরেক্টিভের হিসাবে সাধারণত এর পরিচিত, কিন্তু আরো উপর যে অন্য সময়. এখন, এই সৃষ্টি একটি অপরিবর্তনীয় মান বলা হয় যার প্রকৃত কুইজ সাংখ্যিক মান 2. সুতরাং আপনি যে কোন জায়গায় দেখতে কুইজ, কুইজ এই ফাইলটি জুড়ে, কুইজ, যে শুধুমাত্র সংখ্যা 2. এখন, আমি যদি প্রধান এ এখন দেখুন, আমি কিভাবে এই কাজ করে দেখুন. প্রথম দিকে এটি দেখায় একটু রহস্যপূর্ণ. কিন্তু এক সপ্তাহ থেকে সকল উপাদান. বাংলাদেশের জন্য ব্যবহারকারীকে জিজ্ঞাসা করুন. কিভাবে আমরা এই কাজ করে? ওয়েল, লাইন 22 - এই সত্যিই সরস অংশ - আমি একটি float, কিন্তু শুধুমাত্র একটি একক float ডিক্লেয়ার. আমি, বরং প্রকাশক ফ্লোটিং পয়েন্ট মান একটি অ্যারের করছি,. যে পরিবর্তনশীল করা হবে নামক বাংলাদেশের, যাও হিসাবে এখানে উহ্য যাচ্ছে. কিন্তু তারপর নতুন বাক্য গঠন শুধুমাত্র টুকরা এই বর্গাকার বন্ধনী, সত্য যে আমি বাংলাদেশের float এবং তারপর খোলা বন্ধনী এবং তারপর একটি নম্বর বলেন করেছি. নোটিশ, যদি এই একটি ধ্রুবক, এটা ভালো আমরা এই করেছেন. এর মানে হল অঁ্যা কম্পিউটার, সম্পর্কে দুটি floats দিতে, এবং এর সম্মিলিতভাবে যাক কল তাদের বাংলাদেশের. এই একটি ভালো আরো অনেক ক্লান্তিকর প্রক্রিয়া বিপরীতে হয়. Grade1, ভাসা ভাসা grade2, এবং তাই ঘোষণা. আমি একটি অ্যারের আমাদের এই ধারণা প্রয়োগ করা যাবে কিন্তু অনেক কম অগোছালভাবে, এ এমনভাবে যে আমরা এক লাইন কোড লিখতে পরিবর্তে, বলতে পারেন, একটি 16 16 সপ্তাহে সেমিস্টারে. আমি হার্ড কোড 2 কারণ যদি আপনি এই বিষয়ে এখন মনে করতে চান না যুক্তি - আগামী বছরের ঠাউর 3 CS50 পরিবর্তন পরিবর্তে ক্যুইজ. এবং আমি 2 নম্বর এখানে ছিল. আমি 2 নম্বর এখানে ছিল. আমি 2 নম্বর এখানে ছিল. আমি 2 নম্বর এখানে ছিল. তা খুব ক্লান্তিকর এবং খুব সহজ পর্যন্ত যৌনসঙ্গম এবং ঘটনাক্রমে পরিবর্তন 3 এক মান এবং কিছু 2 অন্যান্য মান মিস্. তাই আমি পরিবর্তে বিমূর্ত এই চলে যাচ্ছে এবং এই ধ্রুবক ব্যবহার করছি যে, তার নাম সুপারিশ কখনও পরিবর্তন,. এবং এখন, কোন ব্যাপার আছে কিনা আমরা বিভিন্ন ক্যুইজ এই বছর বা পরের, আমি শুধুমাত্র একটি স্থানে, আপ পরিবর্তন শীর্ষে আছে এখানে. তাই যে সমস্ত ধ্রুবক হয়. এদিকে, নতুন ধারণাগত বৈশিষ্ট্য হল একটি অ্যারের যে. সুতরাং বর্গাকার বন্ধনী দিন অনেক floats সম্পর্কে এবং সম্পর্কে সম্মিলিতভাবে দেয় তাদের বাংলাদেশের এখানে কল. তাই এখন আমি কি আমি কি করতে যাচ্ছি দেখতে. এখানে লাইন 24 একটি লুপ এর জন্য শুরুতে. এই সত্যিই কিছুই অভিনব. এটা ঠিক এর ক্যুইজ ব্যবহার পরিবর্তে একটি হার্ড কোড নম্বর. কিন্তু কিছুই বুদ্ধিমত্তা শেষ সপ্তাহ থেকে বিভিন্ন আছে. এটি শুধুমাত্র printf. তাই printf ("ব্যঙ্গ% ঘ সংখ্যা% d") কারণ আমি সম্পর্কে উপহাস দিতে প্রিন্ট আউট করতে চান এক নম্বর দুই এবং তারপর দু দুটি. তাই এই বিশুদ্ধরূপে একটি নান্দনিক বিষয়. কিন্তু আকর্ষণীয় অংশ এখন লাইন 27 হয়. যাতে দুই স্থানধারক এক একটি ভাসমান পয়েন্ট সঙ্গে পূরণ মান, আবার আপনি বর্গাকার বন্ধনী ব্যবহার করুন. এই ক্ষেত্রে, আমি তোমার ব্যবহার করছি কারণ এই লুপ জন্য তোমার equaling সঙ্গে শুরু হয়েছে কি মান, দৃশ্যতঃ? 0. তাই এই লুপ প্রথম পুনরাবৃত্তির উপর, এটা যেন আমি এই কোড লেখেন. কিন্তু এই লুপ দ্বিতীয় পুনরাবৃত্তির উপর, এটা যেন আমি আমার এই কোড লেখেন. কিন্তু এটা সত্য যে আমি একটি ভেরিয়েবল ব্যবহার করা হয় নিখুঁত কারণ, হিসাবে নাম দাড়ায়, তা প্রত্যেক পুনরাবৃত্তির তার মান এর তারতম্য. তাই আমি একটি সময়ে ভর্তি এক স্পট এই অ্যারে করছি. কি এই অ্যারে কেমন হয়েছে? ভাল, কারণ আমি এই সুপার পর্দায় সহজ আয়তক্ষেত্র এখানে সৃষ্টি এই কারণে আগে ছিল. একটি অ্যারের শুধুমাত্র মেমরি চাঙ্গড় মেমরি অন্য চাঙ্গড় অনুসরণ, অনুসরণ মেমরি অন্য চাঙ্গড় দ্বারা, এবং তাই ঘোষণা. সুতরাং এখানে এই ক্ষেত্রে যদি আমার অ্যারের আকার 2 হয়,, আমি সব করে করা হবে আমার ব্যঙ্গ স্কোর টাইপ এখানে, চাই. আমি এই এক 100 পেয়েছিলাম. এবং তারপর আমি এই এক একটা 99 পেয়েছিলাম. তারপরে এই মেমরি ব্যবহার করা যেতে পারে না কারণ শুধুমাত্র আমি জিজ্ঞাসা করেছি আকার 2 একটি অ্যারের জন্য কম্পিউটার. যারা এখনও স্কোয়ার আছে. রাইট? আপনি এখনও উপস্থিত RAM-র দুই গিগাবাইট আছে, এমনকি আপনি যদি শুধুমাত্র করছি দুই floats চাওয়ার জন্য. সুতরাং অ্যারে পিছনে ধারণা হয় যে শুধু কম্পিউটার মেমরি চাঙ্গড় লাগে এবং তারপর ছোট টুকরা apportions ফিরে যাও যাও যাও ব্যাক ব্যাক ব্যাক. তাই যে সমস্ত একটি অ্যারের হয়. এটা একটা মেমরি সংলগ্ন খণ্ড, ভিতর যা আপনি জিনিষ লাগাতে পারেন. এখন এই তারপর না কিছু কিছু বিরক্তিকর পাটীগণিত কি ঘটবে. যদি আমি এখানে স্ক্রল ডাউন, এই হল যেখানে আমি তারপর অ্যারের উপর বারবার. আমি সব অ্যারের মধ্যে মান সঙ্কলন সঙ্গে আসা পর্যন্ত. এবং তারপর আমি এখানে বৃত্তাকার ফাংশন ব্যবহার করার জন্য আসলে না quizzes দ্বারা বিভক্ত যোগফল. কিন্তু আমাকে যে এ জন্য এখন যথেষ্ট গাণিতিক ধরণের হিসাবে আমার হাত ঢেউ. কিন্তু শেষ পর্যন্ত যে সব সম্পর্কে জন্য করছে একটি গড় কম্পিউটিং হয়. তাই প্রথম প্লাস ব্যঙ্গ দ্বিতীয় ব্যঙ্গ, 2 দ্বারা বিভক্ত, তারপর এবং মুদ্রণ কোন int হিসাবে এটি. কিন্তু এখন let এর একটি পৃথক উদাহরণে বলা string1 রূপান্তর, যা একই ছবি ব্যবহার করে কিন্তু স্ট্রিং রঙে. আমাকে এগিয়ে যান এবং শুধু একটা মুহূর্ত জন্য এই সহজ করে. এবং এখন জন্য ক্ষমা খাঁজ. এই উদাহরণ লাইন 19 নোটিশ, আমি ব্যবহারকারী থেকে একটি পংক্তি পেতে. কিন্তু লক্ষ্য করা কি আমি পরের লাইনে করছি 22 অনওয়ার্ড করছেন. আমি তোমার থেকে আসলে করছি iterating আপ - এবং এই একটি নতুন কৌতুক - strlen, স্ট্রিং দ্বারা. এটি একটি ফাংশন সি সাথে যে যদি আপনি এটি একটি পংক্তি প্রেরণ করার জন্য, এটা বলে আপনি স্ট্রিং কতগুলি অক্ষর. এই যা. আসলে এটা strlen পরিবর্তে স্ট্রিং দৈর্ঘ্য মাত্র কারণ এটা আরো পরিবেষ্টিত. 30 বছর আগে, মানুষ জিনিষ হিসাবে succinctly হিসাবে সম্ভাব্য পছন্দ লিখুন. সুতরাং আমরা যে কনভেনশন রাখা এখানে করেছি. আমি + মানে শুধুমাত্র প্রতিটি পুনরাবৃত্তিতে তোমার বাড়ায়. এবং এখন এই, নোটিশ যা সত্যিই আকর্ষণীয়. তাই লাইন 24 সালে, আমি কম্পিউটার বলতে, সম্পর্কে একটি চরিত্র দিতে, আট বিট, এবং এটি গ কল. কিন্তু কি ডান দিকে বলছে এই হয়? ইন ইংরেজি কি, যে প্রতিনিধিত্ব না? [শ্রবণাতীত] ডেভিড জে MALAN: যথাযথভাবে. সম্পর্কে অ্যারের মধ্যে প্রথম অক্ষর দিন. অথবা আরো সাধারণভাবে, সম্পর্কে অ্যারের মধ্যে তোমার-তম অক্ষর দিন. এবং এটা গুরুত্বপূর্ণ এখন বুঝতে পারি যে কম্পিউটার বিজ্ঞানীরা হিসাবে, আমরা আসলে করছি 0 থেকে বেড়ে চলেছে. আপনি এখন নেই বিচক্ষণতা না এই কাজ শুরু. এখন আপনার কম্পিউটার এর প্রত্যাশা অনুযায়ী আচরণ করা হবে এবং শূন্য থেকে গণনা কারণ [0] প্রথম হতে চলেছে একটি স্ট্রিং মধ্যে চরিত্র. [1] দ্বিতীয় হবে. [2] তৃতীয়, এবং তাই ঘোষণা করা হয়. এই প্রোগ্রাম তাই, যদি আমি এটা কম্পাইল - এই হল আবার,, string1. সুতরাং string1 করা. এবং এখন আমি আমার টার্মিনাল উইন্ডোর string1 চালানো. এটা ইনপুট জন্য অপেক্ষা করছে, তাই আমি, অর্থাৎ, ডেভিড টাইপ যাচ্ছি না. লিখুন. এবং এখন এটি সমস্ত ভিন্ন পংক্তিতে DAVID ছাপে কারণ বিজ্ঞপ্তি আমি কি করছি. আমি একটি সময়ে করছি একটি অক্ষর মুদ্রণ. এখন আমরা বিস্তারিত মধ্যে যেতে হবে এই না আজ. কিন্তু আমি এই চেক আগে এক মুহুর্ত এখানে মোছা. এটি সক্রিয় করে যদি ব্যবহারকারী, উন্মার্গগামী adversarial, ঠিক হয় বা বিভ্রান্ত, আপনি আসলে কিছু দৈর্ঘ্যের একটি স্ট্রিং দিতে ব্যর্থ হতে পারে. যদি আপনি কীবোর্ডের কী ভুল আঘাত, আপনাকে দিতে পারে কোন স্ট্রিং এ সব. অথবা যদি আপনি দূষিত, আপনি একটি একটি গিগাবাইট এর মূল্য মধ্যে পেস্ট করার চেষ্টা করতে পারেন রচনা যাও এই স্ট্রিং পূরণ করুন. এবং যদি কম্পিউটার মেমরি রান আউট, এটি সক্রিয় করে যে আমরা চলুন এই বিশেষ মান নামক নাল ফিরে পেতে. তাই এখন জন্য, শুধু জানি যে এই বিশেষ মান নাল বলা আছে যে আমাদের যখন আমরা মেমরি ফুরিয়েছে অন্যান্য বিষয়ের মধ্যে, চেক করার অনুমতি দেবে. কিন্তু যদি আমি খুলুন এখন string2, এখানে একটি পার্থক্য লক্ষ্য করা. এক পার্থক্য লক্ষ্য করুন এখানে string2 সঙ্গে. String2 সঙ্গে, লুপ জন্য এই একটি সামান্য ভিন্ন. আমাকে nulls যাতে আমরা যারা অন্য সময় সম্পর্কে কথা বলতে পারেন মুছে দিন. কিন্তু কি লুপ জন্য এই সময় সম্পর্কে বিভিন্ন? এবং আমি পূর্ববর্তী উদাহরণে ফিরে যেতে পারেন. যাতে এর দুটি সংস্করণ. এই সংস্করণে এক. এক, দুই, এক দুই. সুতরাং strlen কল করা হয় যেখানে? এটি প্রথম অংশ জন্য লুপ আছে. কেন আমি এই হিসাবে কোন চিন্তা করছি? হাঁ. [শ্রবণাতীত] ডেভিড জে MALAN: সুতরাং আমরা প্রতি একক সময় ফাংশন কল করবেন না. ঠিক. জন্য loops থেকে প্রত্যাহার করা যে তারা সুপার সহজ একবার আপনি ধরণের বুঝতে হবে যে এটা আরম্ভের, শর্ত, এবং আপডেট. সমস্যা হল প্রতি শর্ত উপর ঘটবে লুপ এর পুনরাবৃত্তি. এই উদাহরণে, তাই এখানে এবং, কি হয় আসলে আমার খারাপ যে, এই হল আমার অবস্থা? আপনি strlen করছি আবার কলিং এবং আবার এবং আবার. কিন্তু একবার DAVID আমি টাইপ করেছি, স্ট্রিং এর দৈর্ঘ্য হল পাঁচটি. এবং এটি লুপ প্রতি পুনরাবৃত্তির কারণে পরিবর্তন হচ্ছে না স্ট্রিং এখনও হল D-A-ভী-D:-আমি. তাই এই কি একটা হয়ে যাচ্ছে এ ইঙ্গিত ক্রমবর্ধমানভাবে গুরুত্বপূর্ণ একটি ধারণা নকশা সিদ্ধান্ত হিসাবে পরিচিত, যেখানে - না না ঠিক কম্পিউটার অপ্রয়োজনীয় কাজ করা. এখন শুধু হিসাবে একটি pset 2, pset 2 ছিঁচকে মানক সংস্করণে মধ্যে পূর্বরূপ আপনাকে আসলে কিছু সাইফারগুলির নম্বর, কিছু বাস্তবায়ন চ্যালেঞ্জ যাচ্ছে এনক্রিপশন অ্যালগোরিদম সংখ্যা, যাতে আপনি পারেন উভয় এনক্রিপ্ট ও ডিক্রিপ্ট করা গোপন অনেক এক Ralphie মত বার্তা, সেখানে সঙ্কেতমুক্ত. Pset 2 হ্যাকার সংস্করণে, আমরা যাও একটু আরো চলুন. আমরা একটি প্রকৃত কম্পিউটার সিস্টেমের মধ্যে একটি রয়েছে থেকে করছি আপনি একটি ফাইল হাতে যাচ্ছে ব্যবহারকারীর নাম এবং প্রকৃত পাসওয়ার্ডগুলি এনক্রিপ্ট আভা, এবং চ্যালেঞ্জ জন্য হ্যাকার সংস্করণে যারা পাসওয়ার্ডগুলি এবং চিত্রে ফাটল হবে কি ক্রিপ্টোগ্রাফি বা কি গোপন যাও আসলে ব্যবহৃত হয় যারা পাসওয়ার্ডগুলি উৎপন্ন. এবং আমরা একটি নতুন বৈশিষ্ট্য ব্যবহার করে এখানে সি যে আমি দেব দ্বারা এই কাজ করতে যাচ্ছেন আপনি শুধু একটি ডেমো, কমান্ড লাইন আর্গুমেন্ট হিসাবে পরিচিত. সুতরাং দেখা যাচ্ছে, হিসাবে আপনি কিছু অধ্যায় বা পাঠ্যবই পারে আছে দেখা যায়, প্রধান যাও বন্ধনীর মধ্যে অকার্যকর হতে থাকে সবসময় না. এটি সক্রিয় আউট দুটি আর্গুমেন্ট সহ যে প্রধান এছাড়াও ভালো করা যাবে,, argc এবং argv, যেখানে argc হয় শব্দের সংখ্যা যে আপনি পরে টাইপ করুন আপনার কমান্ড লাইন প্রোগ্রাম এর নাম. এবং argv হয় মূল শব্দ. এবং হিসাবে বর্গাকার বন্ধনী প্রস্তাব আছে, argv দৃশ্যত একটি অ্যারে. এটা মেমরির মধ্যে একটি স্ট্রিং পরে একটি পংক্তি স্ট্রিং এর পরে যাচ্ছে. তাই কি আমরা করতে পারা যাচ্ছে, pset 2 দিয়ে শুরু করছেন, হয় ভালো কিছু. যদি আমি argv1 করা, যা একটি উদাহরণ আমরা সোমবার ফিরে যাও, এবং করব চালানোর এটা লক্ষ্য করা যে এটা এখনও কিছু করতে না বলে মনে হচ্ছে. এটা নিজস্ব ছাপে নাম আউট. কিন্তু যদি আমি বলে বিদায় বর্গ, যে বিজ্ঞপ্তি দৃশ্যত এই প্রোগ্রাম iterates উপর শব্দের প্রম্পটে টাইপ করা হয়েছে প্রতিটি. এবং যার দ্বারা আমরা এমন এক শব্দ যা আছে ব্যবহারকারী যাও এক্সেস লাভ করা প্রম্পটে টাইপ পরিবর্তন প্রধান, এই সপ্তাহান্তে শুরু হয় int থেকে, প্রধান (অকার্যকর) প্রধান (argc, argv) int যাও. এবং এইভাবে কমান্ড লাইন আর্গুমেন্ট জন্মগ্রহণ করা হবে. এবং একবার যখন আপনি এই সময়ে পেতে সত্যিই বাস্তববুদ্ধিসম্পন্ন, আপনি লিখতে সক্ষম হবেন সত্যিই trippy এই যেমন এখানে একটি প্রোগ্রাম, যা উপরে যায় এবং অতিক্রম কার্যকারিতা আমরা কিছু দূর পর্যন্ত কাজ করেছি, কিন্তু বেশ শক্তিশালী. সুতরাং আমরা এই সঙ্গে এই পর্দায় ছেড়ে দেব. এবং আমরা সোমবার আপনি দেখতে পাবেন.