ডগ লয়েড: ঠিক আছে. তাই এখন আমি কি একটি মোকাবেলা যাক সত্যিই বড় বিষয়, ফাংশন. এ পর্যন্ত কোর্সে সব আমরা লেখার করছি যে প্রোগ্রাম প্রধান ভেতরে লেখা হয়েছে. তারা বেশ সহজ প্রোগ্রাম করছি. আপনি এই সব আছে প্রয়োজন হবে না শাখা এবং কিছু ঘটছে. আমরা শুধু এটা সব ফিট করতে পারে প্রধান ভেতরে এবং এটা ভয়ঙ্কর অপ্রতিরোধ্য পাবেন না. কিন্তু অবশ্যই যায় এবং আপনি প্রোগ্রাম বিকাশ শুরু স্বাধীনভাবে, তারা সম্ভবত যাচ্ছেন 10 তুলনায় অনেক বেশি পেতে শুরু বা 15 লাইন. আপনি শত শত বা হাজার হাজার পেতে পারে বা দশ কোড লাইনের হাজার হাজার. আর এটা সত্যিই না একটি চিন্তার যে পাগল. যেমন, এটি সম্ভবত একটি ভাল ধারণা না প্রধান ভেতরে সবকিছু রাখা. এটা এটি একটু কঠিন পেতে পারেন আপনি কি যদি আপনি তা করতে হলে যা খুঁজছেন. সৌভাগ্যবসত, সি যদিও, এবং প্রায় কাছাকাছি প্রত্যেক অন্যান্য প্রোগ্রামিং ভাষা যে সাথে কাজ করতে পারে, পারবেন আমাদের ফাংশন লিখতে. আর আমি শুধু যাচ্ছি সরাইয়া এখানে একটি দ্রুত নিতে ফাংশন যে উল্লেখ করার কম্পিউটার বিজ্ঞানের এক এলাকা. আর আপনি তাদের অনেক বেশি দেখতে পাবেন কোর্স চলাকালে বিভিন্ন পয়েন্ট এবং আপনি কি অবিরত যদি. কোথায় অনেক আছে একই শব্দ জন্য প্রতিশব্দ. সুতরাং আমরা ফাংশান কল. কিন্তু আপনি তাদের শুনতে পারে পদ্ধতি হিসেবে উল্লেখ করা হয়েছে, বা পদ্ধতি, বিশেষ করে, আপনি করেছি কখনও কোন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং সম্পন্ন before-- এবং চিন্তা করবেন না আপনি না, না আছে একটি বড় deal-- কিন্তু এ নিরীক্ষা ভিত্তিক প্রত্যেক প্রায়শই বলা হয় পদ্ধতি. কখনো কখনো তারা সাবরুটিনের বলা করছি. কিন্তু তারা সবাই পড়ুন একই মৌলিক ধারণা. এর যে ধারণা তা দেখতে চলুন শুরু করা যাক. একটি ফাংশন কি? ওয়েল একটি ফাংশন সত্যিই হয় একটি কালো বাক্স ছাড়া আর কিছুই. শূন্য একটি সেট আছে যে একটি কালো বাক্স আরো ইনপুট এবং একটি একক আউটপুট বা. সুতরাং উদাহরণস্বরূপ, এই একটি ফাংশন হতে পারে. এই func নামক একটি ফাংশন. শেষ পর্যন্ত তিন ইনপুট একটি, বি, সি এবং লাগে. আর যে কালো বক্সের ভিতরে, আমরা এটা ঠিক কি না জানি না, কিন্তু এটা ইনপুট প্রক্রিয়াকরণ কিছু উপায় এবং তারপর এটি এই ক্ষেত্রে একটি একক আউটপুট, z- র দেয়. এখন এটি একটি সামান্য করতে কম বিমূর্ত, আমরা আমরা যে হয়তো বলতে পারে নামক একটি ফাংশন আছে যে তিনটি ইনপুট একটি, বি লাগে যোগ, এবং সি এবং কিছু উপায় আউটপুট প্রক্রিয়াকরণ কালো বাক্স ভিতরে একটি একক আউটপুট উত্পাদন. এই ক্ষেত্রে, যদি তাই যোগ 3, 6, এবং 7 লাগে. কোথাও ভিতরে ফাংশন যোগ করুন, আমরা আশা তাদের একসঙ্গে যোগ করা আউটপুট, উত্পাদন যা 3 প্লাস 6 প্লাস 7 বা 16 হয়. একইভাবে, আপনি নামক একটি ফাংশন আছে দুই ইনপুট, A এবং B লাগে যে Mult, কিছু উপায় যেমন তাদের প্রসেস যে ফাংশন আউটপুট দুই ইনপুট পণ্য. দুই ইনপুট একসঙ্গে গুন. 4 ও 5, Mult মধ্যে পাস হচ্ছে কিছু আমরা আশা আউটপুট ঘটবে 20. কেন আমরা তা একটি কালো বাক্স কল? আচ্ছা আমরা লেখা হয় না, যদি , নিজেদেরকে ফাংশন, যা আমরা বেশ একটু পর্যন্ত CS50 কাজ করেছি. আমরা, উদাহরণস্বরূপ, মুদ্রণ চ দেখা করেছি, যা আমরা লিখুন না যে একটি ফাংশন নিজেদেরকে কিন্তু আমরা সব সময় ব্যবহার না. আমরা লেখা না হয় ফাংশন নিজেদেরকে, এটা কিভাবে আমরা সত্যিই জানা প্রয়োজন না আসলে ফণা অধীন বাস্তবায়িত. সুতরাং উদাহরণস্বরূপ কালো বাক্স আমি শুধু, গুণ জন্য আপনাকে দেখিয়েছি একটি mult, বি হতে পারে defined-- এবং এই মাত্র কিছু pseudocode মধ্যে হতে পারে আউটপুট একটি বার বি হিসাবে সংজ্ঞায়িত. যে অর্থে, ঠিক আছে. আমরা একটি ফাংশন বলা থাকে দুই ইনপুট নেয় যে Mult. আমরা আশা করতে চাই আউটপুট would যে হতে দুটি ইনপুট, একসঙ্গে গুন একটি বার বি. কিন্তু Mult এছাড়াও হতে পারে এই মত বাস্তবায়িত, আমরা একটি পাল্টা পরিবর্তনশীল আছে 0 থেকে Mult ভেতরে সেট করতে পারেন. এবং তারপর আমরা এই প্রক্রিয়া পুনরাবৃত্তি বি বার কাউন্টার করার জন্য একটি যোগ করুন. উদাহরণস্বরূপ, আমরা দ্বারা 3A সংখ্যাবৃদ্ধি 5b আমরা 0 পাল্টা সেট বলতে পারে, পাঁচবার পুনরাবৃত্তি কাউন্টার 3 যোগ করুন. সুতরাং আমরা 0 এ শুরু এবং তারপর আমরা কি এই পাঁচবার 3, 6, 9, 12, 15. এটা একই ফলাফল. আমরা এখনও পেতে 3 বার 5 শুধু বাস্তবায়ন ভিন্ন. যে আমরা মানে কি আমরা একটি কালো বাক্স বলতে যখন. এটা শুধু আমরা সত্যিই যত্নশীল না মানে এটা ফণা অধীন বাস্তবায়িত কিভাবে যতদিন আউটপুট আমরা আশা কি হিসাবে. আসলে, যে চুক্তির অংশ বিশেষ, ফাংশন ব্যবহার অন্যদের লিখতে যে ফাংশন. আচরণ সবসময় যাচ্ছে অনির্দেশ্য, সাধারণত করা ফাংশনের নাম উপর ভিত্তি করে. এটা সত্যিই যে কেন গুরুত্বপূর্ণ আপনি ফাংশন লিখতে হলে অথবা যখন অন্য মানুষের লিখুন আপনি ব্যবহার করতে পারে যে ফাংশন, যারা ফাংশন আছে স্পষ্ট, অপেক্ষাকৃত সুস্পষ্ট নাম, এবং তথ্যসমৃদ্ধ হয়. যা অবশ্যই কেস মুদ্রণ চ মত ফাংশন জন্য. তাই কেন আমরা ফাংশন ব্যবহার করব? ওয়েল আমি আমরা লিখুন, তার আগে বলেন প্রধান জিনিস ভিতরে আমাদের কোড সব সত্যিই কষ্টকর পেতে পারেন এবং সত্যিই জটিল. কার্যাবলী আমাদের ক্ষমতা অনুমতি কিছু সংগঠিত এবং বিরতি পর্যন্ত একটি অত্যন্ত জটিল সমস্যার মধ্যে অনেক সামলানো সাব যন্ত্রাংশ. অনুষ্ঠানও আমাদের অনুমতি কোডিং প্রক্রিয়া সহজতর. এটি একটি 10 ​​ডিবাগ করার জন্য একটি অনেক সহজ একটি 100 লাইন বনাম লাইন ফাংশন ফাংশন বা 1,000 লাইন ফাংশন. আমরা শুধুমাত্র ডিবাগ করার থাকে একটি সময়ে ছোট টুকরা, অথবা, সময়ে ছোট টুকরা লিখুন এটা যে প্রোগ্রামিং অভিজ্ঞতা তোলে অনেক ভালো. যে কেউ আমার কথা বিশ্বাস করো. সর্বশেষে, আমরা ফাংশন লিখতে চান, যারা বিভিন্ন অংশের পুনরায় ব্যবহার করতে পারেন. কার্যাবলী পুনর্ব্যবহৃত হতে পারে. তারা ব্যবহার করা যেতে পারে এক প্রোগ্রাম বা অন্য. আপনি ইতিমধ্যে লিখিত করেছি ফাংশন, সব আপনি যে প্রোগ্রাম বলতে না করার প্রয়োজন যেখানে যে ফাংশন এটি. আমরা পুনর্ব্যাবহার ও ব্যবহার করছি 40 বছরেরও বেশি সময় ধরে F প্রিন্ট করা হবে. কিন্তু এটি শুধুমাত্র এক সময় লিখিত ছিল. বেশ দরকারী, ঠিক আছে. ঠিক আছে. সুতরাং ফাংশন মহান. আমরা জানি যে. এখন এর তাদের লেখা শুরু করা যাক. এর পেয়ে শুরু করা যাক তাদের আমাদের প্রোগ্রামের মধ্যে. যাতে প্রথমে যে কাজ করতে আমরা কি জিনিস ফাংশন ডিক্লেয়ার হয়. আপনি যদি একটি ফাংশন ডিক্লেয়ার কি আপনি মূলত করছেন কম্পাইলার কহন হয়, আরে, আপনি জানেন ঠিক তাই, আমি লেখা হতে যাচ্ছি পরবর্তী একটি ফাংশন এবং এখানে এটা অনুরূপ যাচ্ছে কি. এই জন্য কারণ কম্পাইলার পারেন কারণ যদি কিছু অদ্ভুত কিছু তারা চিহ্ন একটি সেট দেখতে তারা সাথে পরিচিত না হন, যে. তাই আমরা ঠিক কম্পাইলার একটি দিতে মাথা, আমি একটি ফাংশন তৈরি করছি এবং এটা এই কাজ করতে যাচ্ছে. ফাংশন ঘোষণা সাধারণত যদি আপনি একটি উপায় আপনার কোড সংগঠিত করছেন অন্যদের করতে সক্ষম হবে যে বুঝতে এবং ব্যবহার করতে, আপনি সাধারণত সব লাগাতে চান আপনার ফাংশন ঘোষণা আপনার কোড খুব শীর্ষে, ডান আপনি এমনকি প্রধান লেখা শুরু করার আগে. এবং সুবিধামত আছে একটি খুব স্ট্যান্ডার্ড ফর্ম প্রতি ফাংশন ঘোষণা অনুসরণ করে. তারা সব কাছাকাছি এই মত চেহারা. তিনটি অংশ একটি ফাংশন আছে ঘোষণা, রিটার্ন টাইপ, নাম, এবং যুক্তি তালিকা. এখন রিটার্ন টাইপ কি ধরনের পরিবর্তনশীল ফাংশন আউটপুট হবে. সুতরাং উদাহরণস্বরূপ, যদি আমরা ফিরে একটি মনে দুই গুন করার আগে মিনিট সংখ্যার ফাংশন, আমরা যদি তা আশা না আমরা একটি পূর্ণসংখ্যা দ্বারা একটি পূর্ণসংখ্যা সংখ্যাবৃদ্ধি আউটপুট হবে সম্ভবত একটি পূর্ণসংখ্যা, ঠিক আছে. গুন দুটি পূর্ণসংখ্যার একসঙ্গে, আপনি একটি পূর্ণসংখ্যা পেতে. যে রিটার্ন টাইপ তাই ফাংশন কোন int হবে. নাম কি আপনি চান আপনার ফাংশন কল. এটি সম্ভবত অন্তত গুরুত্বপূর্ণ ফাংশন ঘোষণা অংশ, কার্যকারিতা পদ. কিন্তু আসলে সম্ভবত এক সবচেয়ে গুরুত্বপূর্ণ অংশ শর্তাবলী ফাংশন ঘোষণা বুদ্ধিমান ফাংশন আসলে কি আছে. আপনি আপনার ফাংশন f বা গ্রাম নাম যদি বা H বা রহস্য বা যে ভালো কিছু, আপনি সম্ভবত পেতে যাচ্ছেন একটু চেষ্টা আপ হোঁচট খেয়েছি যারা ফাংশন কি মনে রাখা. তাই এটা গুরুত্বপূর্ণ আপনার ফাংশন এর অর্থপূর্ণ নাম. সর্বশেষে, যুক্তি তালিকা কমা দিয়ে পৃথক করা তালিকা আপনার ফাংশন সব ইনপুট, যার প্রতিটি একটি টাইপ এবং একটি নাম আছে. তাই না শুধুমাত্র আপনি এটি আছে না পরিবর্তনশীল কি ধরনের উল্লেখ কাজ করবে আউটপুট, এছাড়াও আপনি নির্দিষ্ট করতে চান কি ধরনের এবং ভেরিয়েবল ধরনের ফাংশন ইনপুট হিসাবে গ্রহণ করা হবে. সুতরাং আসুন এখানে একটি উদাহরণ না দেওয়া. এর মাত্র কটাক্ষপাত করা যাক আরো একটি কংক্রিট এক সময়ে. তাই এখানে একটি ফাংশন এর একটি উদাহরণ একটি ফাংশন জন্য ঘোষণা করে একসঙ্গে দুটি পূর্ণসংখ্যার যোগ হবে. দুটি পূর্ণসংখ্যার যোগফল যাচ্ছে একটি পূর্ণসংখ্যা, পাশাপাশি হতে আমরা ঠিক যেমন আলোচনা. আর তাই রিটার্ন টাইপ, এখানে সবুজ, int হতে হবে. যে শুধু দুটি ints যোগ আমাদেরকে বলে যে দিনের শেষে, যাচ্ছে, আউটপুট, বা এটি ফিরিয়ে থুতু আমাদের কাছে, একটি পূর্ণসংখ্যা. এই ফাংশন আমরা কি দেওয়া এটি একটি অর্থপূর্ণ নাম দিতে চান. দুটি ints মনে করো উপযুক্ত বিবেচনা আমরা ইনপুট হিসেবে দুটি পূর্ণসংখ্যার গ্রহণ করছেন এবং আশা তাদের একসঙ্গে যোগ. এটা একটা কষ্টকর একটি বিট হতে পারে নাম এবং অকপটে এই ফাংশন সম্ভবত প্রয়োজন হয় না আমরা উপরন্তু যেহেতু অপারেটর, আপনার কাছ থেকে প্রত্যাহার হলে আমাদের পূর্বে অপারেটরদের আলোচনা. কিন্তু এর মাত্র খাতিরে বলা যাক এই ফাংশন দরকারী যে যুক্তি এবং তাই আমরা এটা দুটি ints যোগ ডাকবো. সর্বশেষে, এই ফাংশন দুটি ইনপুট নেয়. যার প্রতিটি একটি পূর্ণসংখ্যা. সুতরাং আমরা এই কমা আছে ইনপুট বিচ্ছিন্ন তালিকা. এখন আমরা সাধারণত চান তাদের প্রতিটি একটি নাম দিতে তারা ব্যবহার করা যেতে পারে, যাতে ফাংশন মধ্যে. নাম ভয়ঙ্কর গুরুত্বপূর্ণ নয়. এই ক্ষেত্রে, আমরা অগত্যা না সংযুক্ত তাদের কোনো অর্থ আছে. তাই আমরা শুধু একটি এবং বো কল করতে পারেন. যে সম্পূর্ণই সূক্ষ্ম. তবে, আপনি এটি একটি পরিস্থিতির মধ্যে নিজেকে যেখানে ভেরিয়েবল নাম আসলে গুরুত্বপূর্ণ হতে পারে, আপনি তাদের সাথে যোগাযোগ করে চাইতে পারেন A এবং B ছাড়া অন্য কিছু তাদের আরো কিছু দিতে প্রতীকী অর্থবহ. কিন্তু এই ক্ষেত্রে, আমরা সত্যিই না ফাংশন সম্পর্কে অন্য কিছু জানেন. আমরা শুধু দুটি পূর্ণসংখ্যার যোগ করতে চান. তাই আমরা ঠিক ডাকবো যারা পূর্ণসংখ্যার একটি এবং খ. যে এক উদাহরণ. আপনি একটি দ্বিতীয় নিতে না কেন এই একটি বিষয়ে মনে, কিভাবে আপনি একটি ফাংশন লিখতে হবে একটি ফাংশন জন্য ঘোষণা করে দুই পয়েন্ট সংখ্যার ভাসমান বংশ বিস্তার করেন? আপনি কি একটি মনে করবেন না ফ্লোটিং পয়েন্ট সংখ্যা? এই ফাংশন would ঘোষণা মত চেহারা? আমি আসলে আপনি ভিডিও বিরতি সুপারিশ এখানে আপনি প্রয়োজন কত সময় লাগবে. কি এই সম্পর্কে চিন্তা করুন ফাংশন ঘোষণা হবে? রিটার্ন টাইপ কি হবে? একটি অর্থপূর্ণ নাম কি হবে? ইনপুট কি হবে? সুতরাং কেন আপনি এখানে ভিডিও বিরতি না এবং লিখুন আপ একটি ফাংশন ঘোষণা সংখ্যাবৃদ্ধি হবে যে একটি ফাংশন জন্য একসঙ্গে দুই ফ্লোটিং পয়েন্ট সংখ্যা. আশা রাখি, আপনি ভিডিও বিরাম. তাই এর একটি উদাহরণ কটাক্ষপাত করা যাক একটি সম্ভাব্য ঘোষণার. Mult দুই reals, ভাসা ভাসা ভাসা Y X. দুটি পণ্য পয়েন্ট সংখ্যা ভাসমান, যা প্রত্যাহার হয় আমরা বাস্তব সংখ্যার উপস্থাপন বা সি দশমিক মান সঙ্গে নম্বর, একটি ফ্লোটিং পয়েন্ট সংখ্যা হতে যাচ্ছে. আপনি একটি গুন করা একটি দশমিক দ্বারা দশমিক, আপনি সম্ভবত একটি দশমিক পেতে যাচ্ছেন. আপনি এটি একটি প্রাসঙ্গিক নাম দিতে চান. দুই reals গুন উত্তম বলে মনে হয়. কিন্তু যদি সত্যিই আপনি এটা বলতে পেরেছিলাম Mult দুই ফ্লোট, বা Mult ফ্লোট. এটা যতদিন যে ভালো কিছু, কিছু প্রকৃত অর্থ দিয়েছে তা এই কালো বাক্সে করতে যাচ্ছে. এবং আবার, এই ক্ষেত্রে, আমরা কি না কোনো অর্থ সংযুক্ত আছে বলে মনে হচ্ছে নাম আমরা পার করছি ভেরিয়েবল, তাই আমরা শুধু তাদের x এবং y কল. আপনি কিছু তাদের সাথে যোগাযোগ করে এখন যদি অন্য যে সম্পূর্ণই সূক্ষ্ম. আসলে, আপনি না হলে এই ঘোষণার পরিবর্তে পরিবর্তে দ্বিগুণ ব্যবহার আপনার যদি মনে থাকে এর, floats টেনিস একটি ভিন্ন হয় পথ থেকে আরো স্পষ্ট বাস্তব সংখ্যার উল্লেখ বা পয়েন্ট ভেরিয়েবল ভাসমান. যে খুব সম্পূর্ণই সূক্ষ্ম. হয় যারা এক জরিমানা করা হবে. আসলে, বেশ কিছু আছে বিভিন্ন সমন্বয় উপায়ে এই ফাংশন ডিক্লেয়ার করতে. কিন্তু এই দুটি প্রশংসনীয় ভাল বেশী হয়. আমরা দারুণ একটি ফাংশন ঘোষণা করেছি. আমরা কি এটা কম্পাইলার বলেছি আমরা কি করছেন করা চলুন হয়. এখন আমি কি আসলে যে ফাংশন লিখতে দিন. এর এটি একটি সংজ্ঞা দিতে যাক, তাই যে কালো বক্সের ভিতরে আন্দাজের আচরণ ঘটছে. আসলে, আমরা দুটি বাস্তব গুণকারক একসঙ্গে নম্বর, বা যোগ সংখ্যা একসাথে, বা যাই হোক না কেন করছেন যে আমরা কি আমাদের ফাংশন জিজ্ঞাসা. আসলে তাই, এর চেষ্টা এবং সংজ্ঞায়িত করা যাক দুই reals সংখ্যাবৃদ্ধি যা আমরা শুধু একটি দ্বিতীয় আগে সম্পর্কে বললাম. এখন শুরু একটি ফাংশন সংজ্ঞা প্রায় হুবহু একই দেখায় একটি ফাংশন ঘোষণা হিসেবে. আমি এখানে দুইটাই আছে. উপরের ফাংশন ঘোষণা হয়, টাইপ, নাম, কমা দিয়ে পৃথক যুক্তি তালিকায়, সেমিকোলন. সেমিকোলন যে ইঙ্গিত একটি ফাংশন যে ঘোষণা হয়. ফাংশন শুরুতে সংজ্ঞা প্রায় হুবহু দেখায় একই, প্রকার, নাম, কমা দিয়ে পৃথক করা যুক্তি তালিকা, কোন সেমিকোলন, কোঁকড়া বক্রবন্ধনী খুলুন. খোলা কোঁকড়া বক্রবন্ধনী, ঠিক যেমন আমরা প্রধান সঙ্গে কাজ করছি আমরা এখন যে মানে সংজ্ঞায়িত শুরু কি কালো বক্সের ভিতরে এরকম আমরা Mult দুই reals কল করার সিদ্ধান্ত নিয়েছে করেছি. এখানে তা বাস্তবায়ন করার একটি উপায়. আমরা একটি নতুন ঘোষণা পারে, বলতে পারে টাইপ ভাসা পণ্য নামক পরিবর্তনশীল এবং যে পরিবর্তনশীল ধার্য x এর মান বার Y করতে. এবং তারপর পণ্য আসতে. রিটার্ন এখানে এর অর্থ কি. ওয়েল রিটার্ন উপায় আমরা যে কিভাবে ইঙ্গিত আমরা আউটপুট হঠা পার করছি. সুতরাং হিসাবে একই, কিছু ফিরে, এই কালো বাক্সের আউটপুট. কিভাবে আপনি এটা করবেন সুতরাং যে. এখানে তা বাস্তবায়ন করার জন্য অন্য উপায়. আমরা শুধু y X বার আসতে পারে. X একটি float হয়. Y একটি float হয়. বার X সুতরাং Y একটি ভাসা হয়. আমরা এমনকি প্রয়োজন হবে না অন্য পরিবর্তনশীল তৈরি. সুতরাং যে অন্যভাবে এর সঠিক একই কালো বাক্স বাস্তবায়ন. এখন কিছু সময় দিন, আবার ভিডিও বিরতি, এবং, দুটি ints যোগ চেষ্টা এবং সংজ্ঞায়িত যা অন্যান্য ফাংশন যে আমরা একটি মুহূর্ত আগে সম্পর্কে বললাম. এখানে আবার, আমি ফাংশন রেখেছি ঘোষণা, এবং তাই সেমিকোলন, এবং একটি খোলা কোঁকড়া বক্রবন্ধনী এবং একটি বদ্ধ কুঞ্চিত আমরা পূরণ যেখানে বক্রবন্ধনী ইঙ্গিত বিষয়বস্তু, দুটি ints যোগ আমরা বিশেষ নির্ধারণ যাতে কালো বাক্সের ভিতর আচরণ. তাই ভিডিও বিরতি. আর যতটা সময় লাগবে আপনি চেষ্টা এবং উল্লেখ করা প্রয়োজন একটি বাস্তবায়ন দুটি ints যোগ, যেমন যে ফাংশন একটি মান আউটপুট যখন, এটা আসলে, আছে, রিটার্ন দুই ইনপুট এর সমষ্টি. তাই শুধু পূর্ববর্তী উদাহরণটি, বিভিন্নরূপে আছে আপনি বাস্তবায়ন করতে পারে যে দুটি ints যোগ করুন. এখানে এক. এখানে কমলা আমি করেছি শুধু কিছু comments-- ছিল আমি শুধু কিছু যোগ করেছি মন্তব্য ইঙ্গিত কি কোড প্রতিটি লাইনে ঘটছে. তাই আমি একটি ভেরিয়েবল ডিক্লেয়ার টাইপ int এর সমষ্টি বলা. আমি সমষ্টি একটি প্লাস বি সমান বলে. আমরা আসলে কি করছেন যে যেখানে কাজ একটি যোগ এবং বো একসাথে. আর আমি সমষ্টি ফিরে. আর যে অর্থে কারণ তোলে সমষ্টি, int- এ টাইপ একটি পরিবর্তনশীল. আর তথ্য এই যে টাইপ কি ফাংশন এটি আউটপুট যাচ্ছে আমাকে বলে? Int. তাই আমি, সমষ্টি ফেরত দিচ্ছি যা একটি পূর্ণসংখ্যা পরিবর্তনশীল. আর যে অর্থে আমরা করেছি কি দেওয়া তোলে ঘোষণা এবং আমাদের ফাংশন পূর্বনির্ধারণ করতে. এখন আপনার কাছে নির্ধারণ করতে পারবেন ফাংশন এই ভাবে, int- যোগফল যে লাফালাফি বি একটি প্লাস সমান step-- প্রথম এবং তারপর, সমষ্টি ফিরে. এখন আপনার কাছে থাকতে পারে এটা, এই ভাবে বাস্তবায়িত যা আমি অত্যন্ত সুপারিশ করবেন না. এই এক জন্য খারাপ শৈলী জিনিস এবং সত্যিই খারাপ নকশা, কিন্তু এটা সত্য, কাজের মধ্যে, আছে. আপনি কোন int যা এই কোড, নিতে হলে খারাপ যোজক বিন্দু গ যোগ, এবং এটি ব্যবহার করুন. এটা আসলে আম্বারা বুঝে একসঙ্গে দুটি পূর্ণসংখ্যার. এটা একটা খুব দরিদ্র বাস্তবায়ন এই বিশেষ আচরণ. কিন্তু এটি কাজ করে. এটা চিত্রিত করা শুধু এখানে আমরা সত্যিই না যে বিন্দু ভিতরে কি যত্ন যতদিন কালো বাক্স, আমরা আশা যে আউটপুট হিসেবে. এটি একটি দুর্বল পরিকল্পিত ব্ল্যাক বক্স. কিন্তু শেষে দিন, এটা আছে এখনও আউটপুট একটি প্লাস বি এর সমষ্টি. ঠিক আছে. সুতরাং আমরা ফাংশন ঘোষণা করেছি. আর আমরা ফাংশন পূর্বনির্ধারণ করে থাকেন. সুতরাং যে সত্যিই ভাল. এখন এর ফাংশন ব্যবহার শুরু করা যাক যে আমরা ঘোষণা করেছি এবং আমরা সংজ্ঞায়িত করেছি. এটা আসলে একটি ফাংশন কল করুন আপনাকে যা করতে হবে সব চমত্কার easy-- উপযুক্ত আর্গুমেন্ট এটি পাস হয়, ডাটা টাইপ এর আর্গুমেন্ট এটা আশা, এবং তারপর ফিরতি ধার্য যে ফাংশন এর মান এবং আপাততঃ অজুহাত ভগবন্ যে ফাংশন ফেরত মান নির্ধারণ সঠিক টাইপ কিছু দিতে. সুতরাং আসুন কটাক্ষপাত আছে যাক একই ফাইলের মধ্যে, এই অনুশীলন বলা যোজক 1 বিন্দু গ, যা আমি আমার CS50 IDE তে আছে. সুতরাং এখানে যোজক 1 ডট গ. শুরুতে আমাকে ছুঁয়ে দেখ আমার রয়েছে, পাউন্ড, অন্তর্ভুক্ত প্রমিত IO, এবং CS50 ডট জ. এবং তারপর আমি আমার ফাংশন ঘোষণা আছে. আমি এই যেখানে আমি কম্পাইলার কহন একটি লেখা যাচ্ছে বলা ফাংশন দুটি ints যোগ করুন. এটা আউটপুট একটি যাচ্ছে পূর্ণসংখ্যা ধরনের পরিবর্তনশীল. যে এই অংশ এখানে ডান কি. এবং তারপর আমি এটা একটি দুটি ইনপুট আছে এবং বি, যা প্রতিটি একটি পূর্ণসংখ্যা. প্রধান ভেতরে, আমি জন্য ব্যবহারকারীকে জিজ্ঞাসা বলার অপেক্ষা রাখে না ইনপুট, আমাকে একটি পূর্ণসংখ্যা দিতে. তাঁরা ভুলতে অনুরোধ করা হবে একটি ফাংশন যা কোন int, যে CS50 লাইব্রেরি অন্তর্ভুক্ত করা হয়. আর যে এ সঞ্চিত X, একটি পূর্ণসংখ্যা পরিবর্তনশীল. তারপর আমরা অন্য একটি পূর্ণসংখ্যা জন্য তাদের অনুরোধ জানানো. আমরা অন্য একটি পূর্ণসংখ্যা পেতে এবং Y মধ্যে যে সংরক্ষণ. এবং তারপর, এখানে লাইন 28, হয় যেখানে আমরা আমাদের ফাংশন কল করা. আমরা int-z সমান বলছে 2, ints এক্স কমা Y যোগ করুন. এই ইন্দ্রিয় তোলে কেন আপনি কি দেখতে পাচ্ছেন? X একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবল এবং Y একটি পূর্ণসংখ্যা টাইপ পরিবর্তনশীল. তাই ভালো. কি আমাদের ফাংশন সঙ্গে যে জানার লাইন 17 ঘোষণা মত দেখাচ্ছে. কমা দিয়ে পৃথক করা ইনপুট তালিকা দুটি পূর্ণসংখ্যার, A এবং B আশা. যে ক্ষেত্রে, আমরা কল করতে পারেন তাদের যাই হোক না কেন আমরা চাই. এটা শুধু দুটি পূর্ণসংখ্যার আশা. এবং এক্স একটি পূর্ণসংখ্যা এবং y একটি পূর্ণসংখ্যা. ওই কাজগুলো. আর আমরা যে ফাংশন যাচ্ছে জানি আউটপুট একটি পূর্ণসংখ্যার পাশাপাশি. আর তাই আমরা সংরক্ষণ করা হয় ফাংশন আউটপুট, একটি পূর্ণসংখ্যা টাইপ, দুটি ints যোগ পরিবর্তনশীল, আমরা Z আহ্বান করছি যা. এবং তারপর আমরা, এর সমষ্টি বলতে পারেন শতাংশ আমি এবং শতাংশ আমি শতাংশ. X, Y এবং Z যথাক্রমে যারা শতাংশ আমি এর মধ্যে ভর্তি. সংজ্ঞা কি দুটি ints অনুরূপ যোগ? এটি বেশ সহজ. এটা বেশী এক আমরা শুধু, একটি দ্বিতীয় আগে দেখেছি int- যোগফল একটি প্লাস বি ফিরে যোগফল সমান. এটা কি কাজ করে? এর ফাইলটি সংরক্ষণ করুন. এবং তারপর নিচে এখানে আমার টার্মিনালে আমি যোজক 1 করতে যাচ্ছি এবং আমি আমার পর্দা পরিষ্কার. আমি জানি, কারণ জুম করতে যাচ্ছি এটি দেখতে একটু কঠিন. সুতরাং আমরা যোজক 1 হিসাবে এই প্রোগ্রাম কম্পাইল. সুতরাং আমরা ডট স্ল্যাশ যোজক 1 নির্বাচন করতে পারবেন. 10 একটি পূর্ণসংখ্যা দিন. 20 আমাকে আরেকটা পূর্ণসংখ্যা দিতে. 10 এবং 20 এর যোগফল 30 হয়. সুতরাং আমরা একটি সফল ফাংশন কল করা হয়. আপনি, নেতিবাচক আবার ফাংশন চালাতে পারেন 10, নেতিবাচক 10 এবং 17 এর 17 সমষ্টি 7. এই ফাংশনটি কাজ. এটা একটা বিরাট সমস্যা আছে আমরা এটা আশা যে. আর তাই আমরা একটি সফল করেছি ফাংশন, সংজ্ঞা, ঘোষণা, এবং একজন সফল ফাংশন কল. দম্পতি বিবিধ ফাংশন সম্পর্কে পয়েন্ট আমরা এই বিভাগে এই উপসংহারে আগে. থেকে প্রত্যাহার করা আমাদের তথ্য ধরনের আলোচনা, পূর্বে, ফাংশন যে কখনও কখনও কোন ইনপুট নিতে পারেন. যদি সেই ক্ষেত্রে, আমরা ফাংশন ডিক্লেয়ার একটি অকার্যকর যুক্তি তালিকায় থাকার হিসাবে. আপনি কি প্রত্যাহার না সবচেয়ে সাধারণ ফাংশন আমরা এ পর্যন্ত লাগে যে দেখা করেছি একটি অকার্যকর আর্গুমেন্ট তালিকা? এটা মেইনের. কখনও কখনও যে ফাংশন প্রত্যাহার আসলে একটি আউটপুট আছে না. যে ক্ষেত্রে, আমরা ফাংশন ডিক্লেয়ার একটি অকার্যকর রিটার্ন টাইপ জমিদারি হিসেবে. এর দ্বারা এই ধারার এই উপসংহারে যাক একটি অনুশীলন সমস্যা মোকাবেলা. সুতরাং এখানে পরিপূর্ণ সমস্যা. আমি আপনাকে একটি ফাংশন লিখতে চান বৈধ ত্রিভুজ বলা হয়. এই ফাংশন কি করা উচিত তিনটি বাস্তব সংখ্যার নিতে হয় যে তিনটি লেন্থ উপস্থাপন তার পরামিতি হিসেবে একটি ত্রিভুজ পক্ষের, বা তার আর্গুমেন্ট, বা তার প্রতিশব্দ অন্য সেট ইনপুট আপনি সম্মুখীন হতে পারে. এই কাজ করা উচিত আউটপুট হয় সত্য বা মিথ্যা তার উপর নির্ভর করে যারা তিন লেন্থ কিনা একটি ত্রিভুজ তৈরি করতে সক্ষম হয়. আপনি ডাটা টাইপ মনে করবেন না যে আমরা সত্য বা মিথ্যা নির্দেশ করতে ব্যবহৃত? এখন আপনি এই কিভাবে বাস্তবায়ন করবেন? ওয়েল একটি দম্পতি আছে জানি ত্রিভুজ সংক্রান্ত নিয়ম যে আসলে জানতে উপযোগী. একটি ত্রিভুজ শুধুমাত্র থাকতে পারে ইতিবাচক দৈর্ঘ্য সঙ্গে পক্ষই. এটা বোধগম্য. আপনি সম্ভবত Duh, বলছে. অন্যান্য বিষয় উল্লেখ্য যদিও, সমষ্টি যে হয় কোনো লেন্থ ত্রিভুজের দুই বাহুর তার চেয়ে অনেক বেশী হতে হয়েছে তৃতীয় প্রান্তের দৈর্ঘ্য. যে আসলে সত্য. আপনি, পক্ষের 1 একটি ত্রিভুজ থাকতে পারে না উদাহরণস্বরূপ 2 এবং 4, 1 প্লাস 2 কারণ 4 থেকে বড় নয়. যাদের তাই নিয়ম আছে নির্ধারণ তিনটি কিনা বা না ইনপুট বোধগম্যভাবে একটি ত্রিভুজ গঠন করতে পারেন. তাই কয়েক মিনিট লাগবে এবং ঘোষণা এবং তারপর নির্ধারণ বৈধ নামক এই ফাংশন ত্রিভুজ, যেমন এটা যে আসলে এখানে নির্দিষ্ট আচরণ করেছে. আউটপুট হবে সত্য যারা তিন পক্ষই যদি একটি ত্রিভুজ গঠিত সক্ষম এবং মিথ্যা অন্যথায় আপনি কি দেখতে প্রস্তুত? এখানে এক বাস্তবায়ন বৈধ ত্রিভুজ. এটা কেবল এক না. পুলিশের সামান্য তারতম্য হতে পারে. কিন্তু এই এক আসলে, আছে, আছে আমরা আশা যে আচরণ. আমরা আমাদের ফাংশন ডিক্লেয়ার খুব উপরে, বৈধ ত্রিভুজ bool X ভাসমান ভাসমান Y z- র ভাসা. তাই আবার, এই ফাংশন তিনটি বাস্তব সংখ্যার লাগে তার আর্গুমেন্ট হিসাবে, ভাসমান বিন্দু মান ভেরিয়েবল, এবং একটি সত্য বা মিথ্যা আউটপুট একটি বুলিয়ান, রিকল যা মান,. রিটার্ন ধরন bool হয় সুতরাং যে কেন. তারপর আমরা ফাংশন নির্ধারণ. আমরা কি প্রথম জিনিস নিশ্চিত করার জন্য পরীক্ষা হল যে পক্ষের সব ইতিবাচক হয়. X কম বা সমান হয়, তাহলে 0 যাও, অথবা Y 0 সমান হলে, অথবা z, কম বা 0 সমান হলে যে সম্ভবত একটি ত্রিভুজ হতে পারবেন না. তারা ইতিবাচক দিকের হবে না. আর তাই আমরা ফিরে আসতে পারেন যে অবস্থায় মিথ্যা. এর পরে, আমরা নিশ্চিত করতে পরীক্ষা যে ইনপুট প্রতি জোড়া তৃতীয় এক তার চেয়ে অনেক বেশী. তাই এক্স প্লাস Y কম হয় z এর চেয়ে বড় বা সমান, বা এক্স প্লাস z- র কম হয় Y কম বা তার সমান, অথবা Y প্লাস z- র যদি কম বা সমান X, যে একটি বৈধ ত্রিভুজ হতে পারবেন না. তাই আমরা আবার ফিরে এলাম. অভিমানী আমরা চেক উভয় পাশ যদিও, তারপর আমরা সত্য ফিরে আসতে পারেন. যারা তিন পক্ষের কারণ returning-- করতে সক্ষম একটি বৈধ ত্রিভুজ তৈরি. এবং যে এটি. আপনি এখন ঘোষণা এবং সংজ্ঞায়িত করেছি. আর আপনি এখন করতে সক্ষম হতে পারে ব্যবহার এবং এই ফাংশন কল. দারূন কাজ. আমি ডগ লয়েড আছি. এই CS50.