সাবরুটিন: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
Shafaet (আলোচনা | অবদান)
সম্পাদনা সারাংশ নেই
বিষয়শ্রেণী
১ নং লাইন:
কম্পিউটার বিজ্ঞানে একটি '''সাবরুটিন''' হলো কোডের একটি অংশ যা একটি নির্দিষ্ট কাজ সম্পাদনা করে এবং কোডের অন্যান্য অংশ অপেক্ষা স্বাধীন। একে ফাংশন,রুটিন,[[মেথড(কম্পিউটার বিজ্ঞান)|মেথড]] ইত্যাদিও বলা হয়ে থাকে। সাবরুটিনের সাহায্য জটিল প্রোগ্রামকে ছোট ছোট অংশে বিভক্ত করা যায়। <ref>[http://math.hws.edu/javanotes/c4/index.html Programming in the Large I: Subroutines] </ref>
 
মরিস উইলকস,ডেভিড হুইলার এবং স্ট্যানলি গিল প্রথম সাবরুটিনের ধারণা সৃষ্টি করেন। তারা এটার নাম দিয়েছিলেন "বদ্ধ সাবরুটিন" (closed subroutine)। <ref>Wilkes, M. V.; Wheeler, D. J.; Gill, S. (1951). Preparation of Programs for an Electronic Digital Computer. Addison-Wesley.</ref>
 
মরিস উইলকস,ডেভিড হুইলার এবং স্ট্যানলি গিল প্রথম সাবরুটিনের ধারণা সৃষ্টি করেন। তারা এটার নাম দিয়েছিলেন "বদ্ধ সাবরুটিন" (closed subroutine)। <ref>Wilkes, M. V.; Wheeler, D. J.; Gill, S. (1951). Preparation of Programs for an Electronic Digital Computer. Addison-Wesley.</ref>
 
সাবরুটিন একটি শক্তিশালি হাতিয়ার। সাবরুটিনের ব্যবহার বড় প্রোগ্রামে তৈরি এবং রক্ষণাবেক্ষন সহজ করে দেয় এবং নির্ভরযোগ্যতা ও মান বৃদ্ধি করে। বেশ কিছু সাবরুটিন নিয়ে লাইব্রেরি তৈরি করা হয় যেটা [[সফটওয়্যার]] তৈরিতে খুবই গুরুত্বপূর্ণ।
১১ ⟶ ১০ নং লাইন:
প্রায় প্রতিটি প্রোগ্রামিং ভাষায় লেখা কোডে একটি মূল অংশ থাকে যাকে বলা হয় মেইন রুটিন বা মেইন ফাংশন। প্রোগ্রাম চালু করলে মেইন রুটিন প্রথমে চালু হয়। একটি সাবরুটিন হলো মেইন রুটিনের বাইরে কোডের একটি বিশেষ অংশ যেখানে কোনো একটি নির্দিষ্ট কাজ করার জন্য কিছু নির্দেশনা থাকে।
 
# নামঃ প্রতিটি সাবরুটিনের একটি নাম থাকে। কোডের অন্যান্য অংশে সাবরুটিনের নাম ব্যবহার করে ওই নির্দিষ্ট কাজটি করা যায় ফলে প্রতিবার কাজটি করার সময় সবগুলো নির্দেশনা লেখা দরকার হয়না। নাম ব্যবহার করে সাবরুটিনের কাজ করাকে সাবরুটিন ইনভোক করা বা কল করা বলা হয়।
 
# রিটার্ণ টাইপঃ সাবরুটিন কাজ করার পর যেখান থেকে সাবরুটিন ইনভোক করা হয়েছে সেখানে একটি মান ফেরত পাঠাতে পারে। এই মান বিভিন্ন ডাটাটাইপের হতে পারে,যেমন [[ইন্টিজার]],[[ডাবল]] ইত্যাদি। কোনো কোনো সাবরুটিন কিছুই ফেরত পাঠায় না,এদের ভয়েড সাবরুটিন বলা হয়।
 
# প্যারামিটারঃ সাবরুটিনের কাজ করার জন্য কিছু ইনপুটের প্রয়োজন হতে পারে। যেমন দুটি সংখ্যার যোগফল বের করার সাবরুটিনে প্রথমে দুটি সংখ্যা গ্রহণ করে তারপর কাজটি করে। একটি সাবরুটিন কি কি ইনপুট নিয়ে কাজ করবে সেটা নির্দিষ্ট করে দিতে হয়,এদের সাবরুটিনের প্যারামিটার বলা হয়।
<source lang="c">
 
ফাংশনঃ long integer factorial(integer n)
রিটার্ণটাইপ=লং ইন্টিজার
নাম=factorial
প্যারামিটার=ইন্টিজার
</source>
 
==উদাহরণ==
===সি/সি++===
[[সি]]/[[সি++]] এর পরিভাষায় সাবরুটিনকে ফাংশন বলা হয়। নিচের সি/সি++ কোডে কোনো সংখ্যার [[ফ্যাক্টরিয়াল]] নির্ণয়ের জন্য একটি সাবরুটিন/ফাংশন লেখা হয়েছে। সাবরুটিন ব্যবহার করে কোডের যেকোনো জায়গায় কোনো সংখ্যার ফ্যাক্টরিয়াল নির্ণয় করা সম্ভব,বারবার একই কোড লেখার প্রয়োজন নেই। <ref>[http://www2.its.strath.ac.uk/courses/c/section3_9.html সি তে ফাংশনের ব্যবহার]</ref>
<source lang="c">
int factorial(int n)
৩৬ ⟶ ৩৫ নং লাইন:
{
printf("%d\n",factorial(5));
return 0;
}
</source>
৫৭ ⟶ ৫৬ নং লাইন:
কোডটি ইরোর প্রদর্শন করবে কারণ pi হলো এরিয়া সাবরুটিনের লোকাল ভ্যারিয়েবল একে মেইন সাবরুটিনে ব্যবহার করা যাবেনা।
 
গ্লোবাল ভ্যারিয়েবলকে কোডের যেকোনো অংশে ব্যবহার করা যায়। এদের প্রোগ্রাম প্রথমবার চালু করার সময় তৈরি করা হয়। নিচের সি/সি++ কোডে pi একটি গ্লোবাল ভ্যারিয়েবল। <ref>[http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_046.htm লোকাল ও গ্লোবাল ভ্যারিয়েবল]</ref>
 
<source lang="c">
৬৯ ⟶ ৬৮ নং লাইন:
printf("%lf\n",area(6));
printf("%lf\n",pi);
return 0;
}
</source>
১০৬ ⟶ ১০৫ নং লাইন:
 
==আরো দেখুন==
* [[মেথড (কম্পিউটার বিজ্ঞান)]]
* [[ফাংশনালমডুলার প্রোগ্রামিং]]
 
* [[মডুলারফাংশনাল প্রোগ্রামিং]]
 
[[ফাংশনাল প্রোগ্রামিং]]
 
==তথ্যসূত্র==
{{reflist}}
<references />
 
[[বিষয়শ্রেণী:কম্পিউটার প্রোগ্রামিং]]
[[বিষয়শ্রেণী:উত্স কোড]]
[[বিষয়শ্রেণী:উদাহরণ সি কোডসহ নিবন্ধ]]
[[বিষয়শ্রেণী:কেমব্রিজ বিশ্ববিদ্যালয় কম্পিউটার ল্যাবরেটরি]]
[[বিষয়শ্রেণী:প্রোগ্রামিং নির্মাণ]]
[[বিষয়শ্রেণী:সাবরুটিন| ]]
 
<!--Interwikis-->
[[ar:روتين فرعي]]