বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/প্যারামিটার এবং আর্গুমেন্ট

উইকিবই থেকে

সংক্ষিপ্ত বিবরণ

[সম্পাদনা]

কম্পিউটার প্রোগ্রামিং -এর জগতে প্যারামিটার এবং আর্গুমেন্ট হলো ফাংশনের সঙ্গে তথ্য আদান-প্রদানের দুটি গুরুত্বপূর্ণ উপাদান।

প্যারামিটার হলো একটি বিশেষ চলক বা ভেরিয়েবল, যা কম্পিউটার প্রোগ্রামের ফাংশন নামক গঠন কাঠামোর অভিন্ন উপাদান। প্যারামিটার নির্দিষ্ট করে যে ফাংশন কি ধরনের তথ্য ইনপুট হিসাবে গ্রহন করবে। এবার সেই ফাংশনকে ইনপুট প্রদান করার জন্য প্রোগ্রামের প্রধান ফাংশন বা main() সেই ফাংশনকে কল করে এবং সেই ফাংশনের মধ্যে কিছু তথ্য ইনপুট হিসাবে প্রদান করে। এই যে, main() ফাংশন কর্তৃক যে ইনপুট তথ্য প্রদান করা হয় তাকে বলা হয় আর্গুমেন্ট এবং এই আর্গুমেন্ট ফাংশনের ইনপুট প্যারামিটারে সংরক্ষিত হয়। অর্থাৎ আর্গুমেন্ট হল ফাংশনের প্যারামিটারে সংরক্ষিত তথ্য বা ডেটা।

বিশদ আলোচনা

[সম্পাদনা]

এবার একটি উদাহরনের মাধ্যমে প্যারামিটার এবং আর্গুমেন্ট -এর ধারনার সম্পর্কে বিশদ আলোচনা করা যাক। নিচের সি প্রোগ্রামটি লক্ষ্য করুন যেখানে একটি ফাংশনের সাহায্যে দুটি পূর্ন সংখ্যার যোগফল নির্ধারিত করা হচ্ছে,

#include <stdio.h>

//function to add two integer numbers
//function parametrs are 'a' and 'b'
int sum(int a, int b){
    //summing input values and storing result
    int result = a+b;
    
    return result;
}

int main() {
    // getting argument values from user
    int x, y, s;
    printf("enter 1st integer added:");
    scanf("%i", &x);
    printf("enter 2nd integer added:");
    scanf("%i", &y);
    
    //calling function passing arguments 'x' and 'y'
    s = sum(x,y);

    printf("%i", s);

}

প্রোগ্রামটির আউটপুট হবে;

enter 1st integer added:10
enter 2nd integer added:5
15

উপরের সি প্রোগ্রামটির পঞ্চম লাইনে আমরা sum() নামক একটি ফাংশন দেখতে পাচ্ছি যা দুটি পূর্নসংখ্যার যোগফলের মান নির্ধারন করছে। আর এই sum() ফাংশনের ইনপুট তথ্য গ্রহনকারী প্যারামিটার হল a এবং b যার মাধ্যমে ফাংশনে উপযুক্ত ইনপুট তথ্য প্রেরন করা যায়। ফাংশনে এই দুই প্যরামিটার নির্দেশিত হয়েছে int a এবং int b হিসাবে যার অর্থ হল যে sum() ফাংশন দুটি ইন্টেজার টাইপ (পূর্নসংখ্যা) -এর মান ইনপুট হিসাবে গ্রহন করবে।

এবার ফাংশনের একুশ তম লাইনে দেখুন sum() ফাংশনকে main() ফাংশনের ভেতরে কল করা হচ্ছে এবং তার মধ্যে x এবং y -এই দুটি ইন্টেজার ভেরিয়েবল প্রেরন করা হচ্ছে। x এবং y -এর মধ্যেই ব্যাবহারকারীদের থেকে গৃহীত ইনপুট সংরক্ষিত করা হয়েছে যা sum() ফাংশনে প্রেরন করা হচ্ছে। এই x এবং y হল আর্গুমেন্ট যার মান ফাংশনের প্যরামিটার a এবং b -এর মধ্যে sum() ফাংশনের ইনপুট হিসাবে সংরক্ষিত হচ্ছে। তাহলে এককথায় বলতে গেলে,

  • sum() ফাংশনের প্যারামিটার হল, a এবং b যা ফাংশনের ইনপুট তথ্য গ্রহন করবে।
  • x এবং y হল আর্গুমেন্ট যার মানsum() ফাংশনের প্যরামিটার a এবং b -এর মাধ্যমে গৃহীত হবে।
  • আরেকতা জিনিষ লক্ষ্যনীয় যে প্যারামিটারের ক্ষেত্রে ডেটা টাইপ উল্লেখ করার হলেও, আর্গুমেন্টের ডেটা টাইপ ফাংশনে প্রেরন করার সময় উল্লেখ করা হয়না।

আধুনিক অবজেক্ট ওরিয়েন্টেড কম্পিউটার প্রোগ্রাম -এ ইনপুট প্যারামিটারের ডেটা টাইপ নির্দেশ করার প্রয়োজন পরেনা। মডুলার প্রোগ্রামিং পদ্ধতিতে একটি প্রোগ্রামের কার্যকারিতা পৃথক পৃথক স্বতন্ত্র মডিউলে ভাগ করে দেওয়া হয়। একেকটি ফাংশনের কার্যকারিতা অন্য ফাংশন থেকে আলাদা রাখতে, প্রতিটি ফাংশনকে তার নিজস্ব ইনপুট ভেরিয়েবল দেওয়া হয়, যেগুলো আসলে সেই ফাংশনের প্যারামিটার। এবং যখন কোনো ফাংশন কল করা হয়, তখন সেই প্যারামিটারগুলোর জন্য যে মান সরবরাহ সেগুলোই হল আর্গুমেন্ট। নিচের ছদ্ম-কোড বা সিউডোকড [] থেকে সমস্ত কম্পিউটার প্রোগ্রামিং -এ প্যারামিটার ও আর্গুমেন্ট কিভাবে ব্যাবহার হয় তা সম্পর্কে একটি স্বচ্ছ ধারনা পাওয়া যাবে:

Function CalculateCelsius (Real fahrenheit)
    Declare Real celsius
    
    Assign celsius = (fahrenheit - 32) * 5 / 9
Return Real celsius

উপরের প্রোগ্রামে CalculateCelsius() ফাংশনটিকে কল করে যদি তাতে ইনপুট হিসাবে 100 -এই মানটি প্রেরন করা হয় , তাহলে এখানে CalculateCelsius() ফাংশনের প্যারামিটার হলো fahrenheit এবং আর্গুমেন্ট হলো 100

অনেক সময় প্যারামিটার এবং আর্গুমেন্ট -এই শব্দদুটো একে অপরের পরিপূরক হিসাবে ব্যবহৃত হয়, তবে এদের মধ্যে সূক্ষ্ম একটি পার্থক্য আছে।

  • প্যারামিটার হল সেই ভেরিয়েবলের নাম যা ফাংশনের ভিতরে ইনপুট হিসেবে ব্যবহৃত হয় (যেমন উপরের সিউডোকোডের ক্ষেত্রে: fahrenheit)
  • আর্গুমেন্ট হল সেই মান যা ফাংশন কল করার সময় পাঠানো হয় (যেমন উপরের সিউডোকোডের ক্ষেত্রে: 100)

একটি ফাংশনের কোনো প্যারামিটার নাও থাকতে পারে বা একাধিক প্যারামিটারও থাকতে পারে। উদাহরন হিসাবে নিচের সিউডোকোডটি লক্ষ্য করুন:

Function DisplayResult (Real fahrenheit, Real celsius)
    Output fahrenheit & "° Fahrenheit is " & celsius & "° Celsius"
End

উপরে উল্লিখিত সিউডোকোডে DisplayResults ফাংশনটিকে যদি DisplayResults(98.6, 37.0) এইভাবে কল করে ইনপুট তথ্য প্রদান করা হয়, তাহলে fahrenheit প্যারামিটারের জন্য আর্গুমেন্ট বা মান হবে 98.6 এবং celsius প্যারামিটারের জন্য আর্গুমেন্ট বা মান হবে 37.0। লক্ষ্য করুন, এখানে দুটি আর্গুমেন্টই তার সমধর্মী প্যারামিটারদ্বয়ের অবস্থান অনুযায়ী পাঠানো হয়েছে

যদি DisplayResults(37.0, 98.6) এইভাবে ফাংশন কল করে ইনপুট তথ্য প্রদান করা হয়, তাহলে প্রোগ্রানের আউটপুটে ভুল ফলাফল দেখাবে, কারণ তখন fahrenheit-এর মান হবে 37.0 এবং celsius-এর মান হবে 98.6, যা সঠিক নয়।

কিছু প্রোগ্রামিং ভাষা (যেমন: পাইথন) নামযুক্ত প্যারামিটার বা নেমড প্যারামিটার ব্যবহারের সুবিধা দেয়। নামযুক্ত প্যারামিটার ব্যবহার করে ফাংশন কল করলে প্যারামিটারগুলোতে আর্গুমেন্টের মান প্রেরন করতে হলে প্রোগ্রামের মূল কাঠামোতে প্যারামিটারের সাংকেতিক অবস্থান লক্ষ্য প্রয়োজন পরেনা।

কিন্তু যখন নাম ব্যবহার করা হয় না, তখন প্যারামিটারের অবস্থান অনুযায়ী ফাংশনে আর্গুমেন্টগুলো ইনপুট করতে হয়।

উদাহরণস্বরূপ, পাইথনের মতো প্রোগ্রামিং ভাষার ক্ষেত্রে নিচের যেকোনো ফাংশন কল সঠিক বলে গণ্য হবে:

CalculateCelsius(98.6, 37.0)
CalculateCelsius(fahrenheit=98.6, celsius=37.0)
CalculateCelsius(celsius=37.0, fahrenheit=98.6)

পরিভাষাসমূহ

[সম্পাদনা]
আর্গুমেন্ট
একটি মান যা কোনো ফাংশনে ইনপুট হিসেবে প্রদান করা হয়।
প্যারামিটার
একটি চলক বা ভেরিয়েবল যা কম্পিউটার প্রোগ্রামে কোন ফাংশনের ইনপুট হিসেবে ব্যবহৃত হয়।
এটি ফাংশনের একটি নিজস্ব ভেরিয়েবল, যা ফাংশন কল করার সময় পাঠানো আর্গুমেন্টের মান গ্রহণ করে।
রিটার্ন
কোনো ফাংশন তার কাজ সম্পন্ন হওয়ার পর যে মান ফিরিয়ে দেয়, সেই মানটি প্রধানত একটি ভেরিয়েবলে সংরক্ষিত হয়।

তথ্যসূত্র

[সম্পাদনা]