Logo ভাষায় Error Handling এবং Functional Code Writing দুটি গুরুত্বপূর্ণ ধারণা, যা কোডের কার্যকারিতা এবং এর স্থিতিস্থাপকতা বৃদ্ধি করতে সহায়তা করে। Error Handling ব্যবহারকারীর ভুল বা অপ্রত্যাশিত পরিস্থিতি থেকে কোডকে সুরক্ষিত রাখতে সাহায্য করে, এবং Functional Code Writing কোডকে আরো পুনঃব্যবহারযোগ্য ও পরিষ্কার করতে সহায়তা করে।
নিচে Error Handling এবং Functional Code Writing সম্পর্কে বিস্তারিত আলোচনা এবং উদাহরণ দেওয়া হলো।
1. Error Handling (ত্রুটি পরিচালনা):
Logo ভাষায় ত্রুটি পরিচালনা সাধারণত সরাসরি try-catch এর মতো সমাধান দিয়ে করা হয় না, তবে IF শর্ত এবং conditional statements ব্যবহার করে আপনি ত্রুটি পরিচালনা করতে পারেন। ত্রুটির সম্ভাব্য কারণগুলির মধ্যে ফাইলের সাথে কাজ করা, অবৈধ ইনপুট বা অপ্রত্যাশিত আউটপুট অন্তর্ভুক্ত হতে পারে।
Error Handling উদাহরণ:
ধরা যাক, আপনি একটি ফাইল খুলতে চাচ্ছেন এবং আপনি চাচ্ছেন যে যদি ফাইলটি না থাকে, তাহলে একটি ত্রুটি বার্তা দেখানো হবে। Logo-তে ত্রুটি পরীক্ষা করার জন্য IF শর্ত এবং কিছু লজিক ব্যবহার করা যেতে পারে।
TO openFile
IF NOT FILEEXISTS "myfile.txt [ ; যদি ফাইলটি না থাকে
PRINT "Error: File does not exist!"
STOP
]
OPEN "myfile.txt FOR READ
PRINT "File opened successfully!"
CLOSE "myfile.txt
END
openFileএখানে:
- FILEEXISTS: একটি কাস্টম ফাংশন যা চেক করে ফাইলটি আছে কিনা (এই কমান্ড Logo ভাষায় বিল্ট-ইন নয়, এটি ফাইল পরীক্ষা করার জন্য তৈরি করা হতে পারে)।
- IF NOT FILEEXISTS "myfile.txt: যদি ফাইলটি না থাকে, তাহলে ত্রুটি বার্তা দেখাবে এবং ফাংশন থামিয়ে দেবে।
আরেকটি উদাহরণ:
Logo ভাষায় ডিভিশন করলে শূন্য দ্বারা ভাগ করা সম্ভব নয়, তাই শূন্য চেক করে ত্রুটি ধরতে পারেন।
TO safeDivide :num :den
IF :den = 0 [
PRINT "Error: Cannot divide by zero!"
STOP
]
PRINT :num / :den
END
safeDivide 10 2 ; Output: 5
safeDivide 10 0 ; Output: Error: Cannot divide by zero!এখানে:
- IF :den = 0: শর্তটি চেক করছে যদি ডেনোমিনেটর শূন্য হয়, তাহলে ত্রুটি বার্তা দেখাবে এবং ডিভিশন বন্ধ করবে।
2. Functional Code Writing (ফাংশনাল কোড রাইটিং):
Functional Code Writing হল একটি প্রোগ্রামিং পদ্ধতি, যেখানে কোডকে ছোট, সহজ এবং পুনঃব্যবহারযোগ্য ফাংশনে ভাগ করা হয়। Logo ভাষায়, আপনি ছোট ছোট ফাংশন তৈরি করতে পারেন যা নির্দিষ্ট কাজ করে এবং সেই ফাংশনগুলোকে একত্রে ব্যবহার করে বড় সমস্যা সমাধান করতে পারেন।
Functional Code Writing উদাহরণ:
ধরা যাক, আপনি একটি বর্গ এবং একটি ত্রিভুজ আঁকতে চান। আপনি একটি ফাংশন তৈরি করবেন যা বর্গ আঁকার কাজ করবে এবং অন্য একটি ফাংশন তৈরি করবেন যা ত্রিভুজ আঁকার কাজ করবে। এর মাধ্যমে কোড আরও পরিষ্কার এবং পুনঃব্যবহারযোগ্য হবে।
TO square :size
REPEAT 4 [
FORWARD :size
RIGHT 90
]
END
TO triangle :size
REPEAT 3 [
FORWARD :size
RIGHT 120
]
END
square 100 ; বর্গ আঁকবে
triangle 100 ; ত্রিভুজ আঁকবেএখানে:
- square এবং triangle ফাংশনগুলো একে অপরের থেকে স্বাধীন এবং পৃথক কাজ করছে। আপনি যখনই চাইবেন, এই ফাংশনগুলো পুনরায় ব্যবহার করতে পারবেন।
আরেকটি উদাহরণ:
Logo-তে আপনি একাধিক সংখ্যার যোগফল বের করতে একটি ফাংশন তৈরি করতে পারেন:
TO sum :a :b
PRINT :a + :b
END
sum 5 10 ; Output: 15এখানে:
- sum ফাংশন দুটি সংখ্যার যোগফল বের করছে এবং :a ও :b এর মান প্যারামিটার হিসেবে ব্যবহার হচ্ছে।
ফাংশনাল প্রোগ্রামিংয়ে লজিক্যাল কাজ:
Logo ভাষায় যদি আপনি বিভিন্ন গণনার কাজ করতে চান, তবে আপনি লজিক্যাল ফাংশনও তৈরি করতে পারেন। যেমন, একটি ফাংশন যা কোনো সংখ্যা অপরিবর্তিত থাকলে "Even" এবং যদি সংখ্যা অপরিবর্তিত না হয়, তবে "Odd" আউটপুট দিবে:
TO evenOrOdd :num
IF :num MOD 2 = 0 [
PRINT "Even"
] [
PRINT "Odd"
]
END
evenOrOdd 4 ; Output: Even
evenOrOdd 5 ; Output: Oddএখানে:
- MOD অপারেটরটি বাকি (remainder) বের করতে ব্যবহার করা হচ্ছে, এবং IF শর্তের মাধ্যমে এটি চেক করা হচ্ছে।
সারসংক্ষেপ:
Error Handling এবং Functional Code Writing Logo ভাষায় প্রোগ্রামিংয়ের গুরুত্বপূর্ণ অংশ। Error Handling ব্যবহৃত হয় কোডের কার্যকারিতা সুরক্ষিত রাখতে এবং ভুল শর্ত চেক করতে। Logo ভাষায় IF শর্ত এবং কাস্টম ফাংশন দিয়ে আপনি ত্রুটি মোকাবেলা করতে পারেন। Functional Code Writing কোডের পুনঃব্যবহারযোগ্যতা এবং পরিষ্কারতা বৃদ্ধি করতে সহায়তা করে, যেখানে কোডকে ছোট ছোট ফাংশনে বিভক্ত করা হয়। এই পদ্ধতিগুলি আপনাকে আরও কার্যকর এবং স্থিতিস্থাপক কোড লেখার সুযোগ প্রদান করে।
Read more