ফাংশনগুলির পরিবর্তে সাবরুটাইনগুলি দিয়ে শুরু করুন । তাদের বলুন যে একটি প্রোগ্রাম হ'ল নির্দেশাবলীর একটি তালিকা, কম্পিউটারকে কীভাবে কিছু করতে হয় তা জানানোর একটি রেসিপি । এবং এটি যে একের পর এক নির্দেশ কার্যকর করা হচ্ছে (সমান্তরালভাবে কিছু পদক্ষেপ করার সম্ভাবনা সহ তবে পরে সে সম্পর্কে আরও কিছু)।
কিছু কাজগুলি বেশ সাধারণ এবং পুনরাবৃত্তিযোগ্য, তাই এটি আমাদের পক্ষে সর্বদা বার বার লিখতে হত, তবে এটি ভয়াবহ হবে so তাই আমরা কেবলমাত্র সেগুলি একবার লিখি এবং এটি থেকে একটি "ছোট প্রোগ্রাম" তৈরি করি - একটি সাব্রোটাইন , যা পুনরায় ব্যবহার করা যেতে পারে প্রোগ্রাম অন্যান্য অংশ। এটি একাধিকবার কার্যকর করতে সক্ষম হওয়ার জন্য, আমরা আমাদের প্রোগ্রামে এটি একটি অর্থপূর্ণ নাম দিই । এবং তখন আমরা সেই নামটি ব্যবহার করতে পারি যখন আমরা এই "ছোট প্রোগ্রাম "টিকে একটি বড় অংশ হিসাবে চালিত করতে চাই, সেই নামটি দিয়ে কল করে।
কলিং একটি সাবরুটিন মত হল একটি দৈত্য তলব কে জানে কিভাবে যে কাজটি করে নাম যে দৈত্য করুন। সুতরাং যখন আমরা আমাদের প্রোগ্রামে সেই নির্দিষ্ট কাজটি করতে চাই, আমরা "আরগোথ নামক অসুরকে ডাকি" লিখি, এবং ভূতটি আমাদের কাজটি করার নির্দেশ দেয় যেমনটি তার কাজটি করে এবং তখন চলে যায় এবং আমরা আমাদের চালিয়ে যেতে পারি কাজ।
কখনও কখনও রাক্ষসকে কিছু অতিরিক্ত তথ্যের প্রয়োজন হয় যা ছাড়া সে সিদ্ধান্ত নিতে পারে না কোনটি কার্য সম্পাদন করতে হবে, বা আমরা সত্যই তার কাছ থেকে কী চাই। যেমন যদি দৈত্য একটি দুর্গ গড়ে তুলতে অনুমিত হয়, সে কি জানে করার প্রয়োজন হতে পারে যেখানে তিনি তা, অথবা নির্মাণের অনুমিত হয় কিভাবে বড় এরাই, ইত্যাদি আর্গুমেন্ট , দৈত্য প্রেরণ ... আমি বলতে চাচ্ছি সাবরুটিন, যা এখন হয়ে parametrized ।
পরামিতি হ'ল তথ্যগুলির টুকরা যা অনুপস্থিত, তবে প্রয়োজনীয় কাজটি করার জন্য। তারা সাবরুটাইন সামান্য কিছু দ্বারা কী করতে পারে তা পরিবর্তন করে। এগুলি রেসিপিটিতে ফাঁকা স্লটের মতো যা এটিকে কার্যকর করার আগে পূরণ করতে হবে।
অন্যদিকে আর্গুমেন্টগুলি হ'ল আসল তথ্য (মান) যা আমরা এই পরামিতিগুলির জন্য সরবরাহ করি।
সমান্তরাল সম্পাদন হিসাবে, আমরা এটি এইভাবে চিন্তা করতে পারি: প্রোগ্রামটি চালাচ্ছে এমন কোনও ব্যক্তি (বা কিছু ) সর্বদা থাকে ( নির্দেশাবলীর তালিকা)। এটি হয় অন্য একজন মানুষ (আপনি কি জানেন যে "কম্পিউটার" একবার এমন ব্যক্তির নাম ছিল যা গণনা করছিল?), বা একটি যন্ত্র। একটি প্রোগ্রাম কেবল নির্দেশাবলীর একটি তালিকা, এটি নিজের কাজ করে না। অবশ্যই কেউ বা কিছু আছে যিনি গণনা প্রক্রিয়া করবেন(তালিকা থেকে এই ক্রিয়াগুলি সম্পাদন করুন)। এবং কখনও কখনও এই ক্রিয়াগুলি সমান্তরালভাবে করা যেতে পারে - আমরা তালিকার অনুলিপি বেশ কয়েকটি লোককে বিতরণ করতে পারি এবং তাদের প্রত্যেককে তালিকা থেকে আলাদা আলাদা কাজ করতে পারি, যতক্ষণ না তারা একে অপরকে বাধা দেয় না বা ডন ' কারও কারও কাজের ফলাফলের জন্য অপেক্ষা করতে হবে না। এটি আপনার পক্ষে মাল্টিথ্রেডিং ;)
ফাংশন এবং সাবরুটাইনগুলির মধ্যে পার্থক্য হিসাবে ( পদ্ধতিগুলিও বলা হয় ) সাধারণ পার্থক্যটি হ'ল একটি ফাংশন একটি নির্দিষ্ট মান গণনা করার জন্য বলা হয় যা এটি কার্যকর করার ফলস্বরূপ ফিরে আসে, যখন পদ্ধতিগুলি কেবল মজাদার জন্য কার্যকর করা হয়;) একে তাদের "পার্শ্ব প্রতিক্রিয়া" - কেবলমাত্র তালিকা থেকে সম্পাদিত ক্রিয়াকলাপের জন্য।
তবে যদি প্রথমে কোনও প্রক্রিয়া বা ফাংশন কল করার ফলে কিছুটা সমস্যা হয় তবে আপনি আরেকটি শব্দ ব্যবহার করতে পারেন যা একসময় জনপ্রিয় ছিল: জাম্পিং । একজন সাবউটিনে ঝাঁপিয়ে পড়তে পারে, যার অর্থ আপনি এখনই যা যা করছেন তা কার্যকর করা এবং তালিকার অন্য কোনও জায়গায় (বা অন্য কোনও তালিকায়) "সাব্প্রোটিন" - এর কাজগুলি সম্পাদনের জন্য থামাতে পারেন। তারপরে, আপনি যখন শেষ করবেন, আপনি "পিছনে ফিরে" - অর্থ্যাৎ আপনি যে জায়গায় বাধা পেয়েছিলেন সেই জায়গায় ফিরে আসেন, যাতে আপনি আপনার আগের কাজটি চালিয়ে যেতে পারেন। কলিং এবং জাম্পিংয়ের মধ্যে পার্থক্য হ'ল আপনি এখন রাক্ষস।
হিসাবে পদ্ধতি কেউ এখানে উল্লেখ করা হয়েছে, বা সত্য যে কিছু কিছু ভাষায় "ফাংশন নেই, শুধুমাত্র পদ্ধতি" - যে বেশ সঠিক নয়, কারণ পদ্ধতি হয় ফাংশন! - তাদের মধ্যে একটি বিশেষ ধরণের : এগুলি এমন ক্রিয়াকলাপ যা কোনও বস্তুর অভ্যন্তরে আবদ্ধ কিছু তথ্য পুনরুদ্ধার করতে বা সেগুলিতে পরিচালনা করতে ব্যবহৃত হয়। এগুলি একটি "সেই ডেটাগুলিতে অপারেটিংয়ের পদ্ধতি"। নামটি অবজেক্ট-ভিত্তিক দৃষ্টান্ত থেকে এসেছে যেখানে ডেটা সংযুক্ত বস্তুগুলির সাথে যুক্ত এবং সরাসরি পরিচালনা করা যায় না, কেবলমাত্র "পদ্ধতি" নামক বিশেষ ফাংশন দ্বারা।
একটি পদ্ধতি অন্য নির্দিষ্ট উপায়ে বিশেষ: এটি কোন নির্দিষ্ট অবজেক্টের ("এই" অবজেক্ট) অপারেট করার / কল করার কথা তা জানতে হবে। এজন্য পদ্ধতিগুলি সাধারণত একটি অতিরিক্ত লুকানো প্যারামিটার দ্বারা অলঙ্কৃত হয় যা এটির ("এই" পয়েন্টার) নামে অভিহিত বস্তুর তথ্য সংরক্ষণ করে। এটি ফাংশনটিকে যেভাবে বলা হচ্ছে তাকে জটিল করে তোলে তবে এটি একটি "বাস্তবায়ন বিশদ" যা কোনও প্রোগ্রামারকে বেশি বিরক্ত করা উচিত নয়, যতক্ষণ না তিনি জানেন যে তিনি কী করছেন।