ফোরট্রানে Subroutine এবং Function এর মধ্যে পার্থক্য
ফোরট্রানে Subroutine এবং Function উভয়ই কোড পুনঃব্যবহারযোগ্য করতে ব্যবহৃত হয়, তবে এদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। এগুলির কাজ একই রকম হলেও তাদের ব্যবহার এবং স্ট্রাকচার ভিন্ন।
১. Subroutine (সাবরুটিন)
Subroutine হলো একটি ব্লক কোড যা এক বা একাধিক আর্গুমেন্ট (পারামিটার) গ্রহণ করে এবং নির্দিষ্ট কাজ সম্পাদন করে। সাবরুটিন কোনো মান ফেরত দেয় না, তবে এটি আর্গুমেন্টের মান পরিবর্তন করতে পারে এবং অন্যান্য পরিবর্তন করতে পারে।
সিনট্যাক্স:
SUBROUTINE <subroutine_name>(<arguments>)
! কোড
END SUBROUTINE <subroutine_name>উদাহরণ:
PROGRAM example_subroutine
INTEGER :: a, b
a = 5
b = 10
CALL add_numbers(a, b)
PRINT *, 'a = ', a
PRINT *, 'b = ', b
CONTAINS
SUBROUTINE add_numbers(x, y)
INTEGER :: x, y
x = x + 1
y = y + 2
END SUBROUTINE add_numbers
END PROGRAM example_subroutineএখানে add_numbers সাবরুটিন a এবং b কে পরিবর্তন করবে, তবে এটি কোনো মান ফেরত দেয় না।
২. Function (ফাংশন)
Function হলো একটি বিশেষ ধরনের সাবরুটিন যা একটি মান ফেরত দেয়। এটি একটি নির্দিষ্ট কাজ সম্পাদন করে এবং একটি মান ফিরিয়ে দেয়। ফাংশন সাধারণত গণনা বা বিশ্লেষণ সংক্রান্ত কাজের জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
FUNCTION <function_name>(<arguments>)
! কোড
<function_name> = <return_value>
END FUNCTION <function_name>উদাহরণ:
PROGRAM example_function
REAL :: result
result = square(5.0)
PRINT *, 'The square of 5.0 is: ', result
CONTAINS
FUNCTION square(x)
REAL :: square, x
square = x * x
END FUNCTION square
END PROGRAM example_functionএখানে square ফাংশন একটি রিয়েল মান হিসেবে ফলাফল ফেরত দেয়, যা result ভেরিয়েবলে সংরক্ষিত হয়।
Subroutine এবং Function এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | Subroutine | Function |
|---|---|---|
| ফলাফল | কোনো মান ফেরত দেয় না। এটি শুধুমাত্র কাজ সম্পাদন করে। | একটি মান (ভ্যালু) ফেরত দেয়। |
| RETURN স্টেটমেন্ট | RETURN স্টেটমেন্ট ব্যবহার করা হয়, তবে কোনো মান ফেরত না দিয়ে সাবরুটিন থেকে বের হয়। | ফাংশনে ফেরত দেওয়া মান অবশ্যই FUNCTION_NAME = value এর মাধ্যমে ফেরত দিতে হয়। |
| কলিং সেগমেন্ট | সাবরুটিন কল করার জন্য CALL স্টেটমেন্ট ব্যবহার করা হয়। | ফাংশন কল করার জন্য সরাসরি নাম ব্যবহার করা হয় (যেমন, result = function_name(...))। |
| প্রকৃতি | সাধারণত একাধিক আর্গুমেন্ট গ্রহণ করে এবং তাদের মান পরিবর্তন করে। | সাধারণত একক আর্গুমেন্ট নিয়ে একটি নির্দিষ্ট কাজ করে এবং একটি মান ফেরত দেয়। |
| ভ্যালু রিটার্ন | কোনো মান ফেরত দেয় না, তবে আর্গুমেন্টের মান পরিবর্তন করতে পারে। | একটি মান ফেরত দেয়। |
উপসংহার
- Subroutine ব্যবহার করা হয় যখন আপনি কোনো কাজ সম্পাদন করতে চান এবং কোনো মান ফেরত না দিয়ে আর্গুমেন্টগুলির মান পরিবর্তন করতে চান।
- Function ব্যবহার করা হয় যখন একটি নির্দিষ্ট কাজ সম্পাদন করে একটি মান ফেরত দিতে হবে, যেমন গাণিতিক গণনা বা বিশ্লেষণ।
ফোরট্রানে যখনই কোনো প্রোগ্রাম লিখবেন, তখন আপনাকে বুঝে নিতে হবে কোন অবস্থায় সাবরুটিন বা ফাংশন ব্যবহার করবেন।
Read more