Rexx এ অ্যারে এবং কম্পাউন্ড ভেরিয়েবলস অত্যন্ত গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা ডেটা সংগঠিত এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। এগুলি মূলত একাধিক ডেটা ভ্যালু সংরক্ষণ করার জন্য ব্যবহৃত হয় এবং প্রোগ্রামে ডেটা পরিচালনার ক্ষেত্রে সুবিধা দেয়।
১. Arrays (অ্যারে)
অ্যারে এমন একটি ডেটা স্ট্রাকচার যা একাধিক ভ্যালু বা উপাদান (element) ধারণ করতে পারে। Rexx-এ অ্যারে সিম্পল ভেরিয়েবল হিসেবে ব্যবহৃত হয় এবং একাধিক উপাদান সংরক্ষণ করতে পারে। Rexx অ্যারে সাধারণত ইনডেক্স (index) দ্বারা চিহ্নিত করা হয় এবং ইনডেক্সের মাধ্যমে প্রতিটি উপাদানে অ্যাক্সেস করা যায়।
অ্যারে ডিফাইন এবং ব্যবহার:
Rexx-এ অ্যারে ব্যবহার করা খুবই সহজ। অ্যারে ডিফাইন করার জন্য ভেরিয়েবলের নামের পর একটি হালকা নির্দেশক (dot) এবং ইনডেক্স (ইনডেক্স হতে পারে সংখ্যা বা স্ট্রিং) ব্যবহার করা হয়।
উদাহরণ:
/* অ্যারে ডিফাইন করা */
myArray.1 = "Apple"
myArray.2 = "Banana"
myArray.3 = "Cherry"
/* অ্যারে উপাদান অ্যাক্সেস করা */
say myArray.1 /* ফলাফল হবে "Apple" */
say myArray.2 /* ফলাফল হবে "Banana" */
say myArray.3 /* ফলাফল হবে "Cherry" */অ্যারে দিয়ে লুপিং (Looping with Arrays):
Rexx-এ অ্যারে উপাদানগুলোকে প্রক্রিয়া করতে for লুপ ব্যবহার করা হয়।
উদাহরণ:
/* অ্যারে ডিফাইন করা */
myArray.1 = "Apple"
myArray.2 = "Banana"
myArray.3 = "Cherry"
/* অ্যারে লুপিং */
for i = 1 to 3
say myArray.i
endএখানে, i এর মান ১ থেকে ৩ পর্যন্ত পরিবর্তিত হবে এবং প্রতিটি উপাদান প্রিন্ট হবে।
২. Compound Variables (কম্পাউন্ড ভেরিয়েবলস)
কম্পাউন্ড ভেরিয়েবলস হচ্ছে এমন ভেরিয়েবল যেগুলি অন্যান্য ভেরিয়েবল বা উপাদান ধারণ করে। এগুলি Rexx-এ আরও উন্নত ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়, যেখানে একাধিক ডেটা একটি কম্পাউন্ড ভেরিয়েবলের অংশ হিসেবে থাকে। কম্পাউন্ড ভেরিয়েবলস সাধারণত ভেরিয়েবলের নামের পর পয়েন্টার (dot) যোগ করা হয়, যা ভেরিয়েবলটি আরও বিস্তৃত করে।
কম্পাউন্ড ভেরিয়েবল ডিফাইন এবং ব্যবহার:
কম্পাউন্ড ভেরিয়েবল সাধারণত পয়েন্টারের মাধ্যমে নির্দিষ্ট করা হয়। একটি কম্পাউন্ড ভেরিয়েবল একটি বেস নাম ধারণ করে এবং পয়েন্টার যুক্ত করে বিভিন্ন উপাদান (sub-variable) তৈরি করে।
উদাহরণ:
/* কম্পাউন্ড ভেরিয়েবল ডিফাইন করা */
person.name = "John"
person.age = 30
person.city = "Dhaka"
/* কম্পাউন্ড ভেরিয়েবল অ্যাক্সেস করা */
say person.name /* ফলাফল হবে "John" */
say person.age /* ফলাফল হবে 30 */
say person.city /* ফলাফল হবে "Dhaka" */এখানে, person একটি কম্পাউন্ড ভেরিয়েবল, এবং এর মধ্যে name, age, এবং city উপাদান রয়েছে।
কম্পাউন্ড ভেরিয়েবল ব্যবহার করে লুপিং:
কম্পাউন্ড ভেরিয়েবলসের মাধ্যমে ডেটা অ্যাক্সেস ও প্রক্রিয়া করা আরও সহজ হয়। নিচে একটি উদাহরণ দেয়া হলো যেখানে একাধিক কম্পাউন্ড ভেরিয়েবল ব্যবহার করা হয়েছে:
/* কম্পাউন্ড ভেরিয়েবল ডিফাইন করা */
person.1.name = "John"
person.1.age = 30
person.1.city = "Dhaka"
person.2.name = "Sara"
person.2.age = 25
person.2.city = "Chittagong"
/* কম্পাউন্ড ভেরিয়েবল লুপিং */
for i = 1 to 2
say "Name: " person.i.name
say "Age: " person.i.age
say "City: " person.i.city
endএখানে, person একটি কম্পাউন্ড ভেরিয়েবল, এবং আমরা 1 এবং 2 ইনডেক্স ব্যবহার করে দুটি আলাদা ব্যক্তির তথ্য অ্যাক্সেস করছি।
৩. অ্যারে এবং কম্পাউন্ড ভেরিয়েবলস এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | অ্যারে (Arrays) | কম্পাউন্ড ভেরিয়েবল (Compound Variables) |
|---|---|---|
| সংগঠন | একাধিক মান সংরক্ষণ করতে ব্যবহৃত। | একাধিক সাব-ভেরিয়েবল সংরক্ষণ করতে ব্যবহৃত। |
| ব্যবহার | ইনডেক্স দ্বারা উপাদান অ্যাক্সেস করা হয়। | পয়েন্টার বা নামের মাধ্যমে উপাদান অ্যাক্সেস করা হয়। |
| ডেটা | সাধারণত এক ধরনের ডেটা থাকে। | একাধিক ধরনের ডেটা থাকতে পারে (যেমন, স্ট্রিং, নাম্বার, ইত্যাদি)। |
সারাংশ:
Rexx-এ অ্যারে এবং কম্পাউন্ড ভেরিয়েবলস ডেটা সংরক্ষণের এবং ম্যানিপুলেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ টুল। অ্যারে ব্যবহার করে আপনি সহজে একাধিক উপাদান সংরক্ষণ করতে পারেন এবং কম্পাউন্ড ভেরিয়েবলস দিয়ে আরও জটিল এবং সম্পর্কিত ডেটা কাঠামো তৈরি করা সম্ভব। এগুলি প্রোগ্রামিংয়ের মধ্যে কার্যক্ষমতা এবং ডেটা ব্যবস্থাপনাকে আরও শক্তিশালী করে তোলে।
Compound Variables হলো এক ধরনের পরিবর্তনশীল (variable) যা একটি একক নামের অধীনে একাধিক মান ধারণ করতে সক্ষম। এটি সাধারণত arrays বা lists হিসাবে কাজ করে, যেখানে একই পরিবর্তনশীলের মধ্যে একাধিক মান রাখা যায়। বিভিন্ন প্রোগ্রামিং ভাষায় compound variables-এর ব্যবহার ভিন্ন হতে পারে, তবে এর মূল উদ্দেশ্য থাকে একাধিক ডেটা বা মানকে একসাথে গ্রুপ করা।
Rexx-এ compound variables বিশেষভাবে ব্যবহৃত হয় বিভিন্ন ধরনের তথ্য সংরক্ষণ করতে এবং তাদের মধ্যে সম্পর্ক তৈরি করতে। এটি আপনার প্রোগ্রামে ডেটা গঠন (data structure) তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ।
Rexx-এ Compound Variables
Rexx-এ compound variables একাধিক উপাদান ধারণ করতে পারে। এগুলো সাধারণত প্যারামিটার বা ভ্যালু গুচ্ছের (set) হিসেবে কাজ করে, যা মূলত ডেটা সংরক্ষণ এবং পুনরায় একত্রে অ্যাক্সেস করার জন্য ব্যবহৃত হয়।
এখন, Rexx-এ compound variable কীভাবে কাজ করে, তা দেখতে একটি উদাহরণ দেখা যাক:
Compound Variable-এর গঠন:
variable.name = valueএখানে, variable হলো মূল পরিবর্তনশীল (base variable) এবং .name হলো তার উপাদান বা সূচক (index)। অর্থাৎ, variable.name একটি compound variable হবে, যেখানে "variable" হলো মৌলিক নাম এবং "name" হলো এর একটি অংশ বা সদস্য। আপনি এই ধরনের নামের মাধ্যমে একাধিক উপাদান সংরক্ষণ করতে পারেন।
ব্যবহার উদাহরণ:
1. একটি Compound Variable তৈরি:
score.1 = 100
score.2 = 90
score.3 = 80
say score.1 /* আউটপুট: 100 */
say score.2 /* আউটপুট: 90 */
say score.3 /* আউটপুট: 80 */এখানে, score হলো মূল পরিবর্তনশীল এবং 1, 2, 3 হলো তার সূচক। এর মাধ্যমে, আমরা একাধিক স্কোর সংরক্ষণ করতে পারি।
2. Array বা List Simulation:
Rexx-এ compound variables ব্যবহার করে একটি তালিকা বা অ্যারে সিমুলেট করা সম্ভব:
students.1 = "Alice"
students.2 = "Bob"
students.3 = "Charlie"
say students.1 /* আউটপুট: Alice */
say students.2 /* আউটপুট: Bob */
say students.3 /* আউটপুট: Charlie */এখানে, students.1, students.2, students.3 একটি compound variable হিসেবে কাজ করছে এবং তাদের মধ্যে বিভিন্ন শিক্ষার্থীর নাম সংরক্ষণ করা হয়েছে।
3. Compound Variable এর Loop ব্যবহার:
do i = 1 to 3
students.i = "Student" || i
end
say students.1 /* আউটপুট: Student1 */
say students.2 /* আউটপুট: Student2 */
say students.3 /* আউটপুট: Student3 */এই উদাহরণে, লুপের মাধ্যমে বিভিন্ন শিক্ষার্থীর নাম students নামক compound variable এর মধ্যে সংরক্ষণ করা হচ্ছে। এখানে, students.i এক একটি উপাদান হিসেবে কাজ করছে।
Compound Variable-এর সুবিধা:
- ডেটা সংগঠিত রাখা: এটি ডেটার মধ্যে সম্পর্ক স্থাপন করতে সহায়তা করে, যেমন একটি গ্রুপ বা তালিকা তৈরি করা।
- সহজ অ্যাক্সেস: একাধিক মান বা উপাদান একই পরিবর্তনশীলের মাধ্যমে একত্রিত করা যায় এবং সহজে অ্যাক্সেস করা যায়।
- ডায়নামিক ডেটা হ্যান্ডলিং: Rexx-এ compound variables ব্যবহার করে ডায়নামিক এবং ফ্লেক্সিবল ডেটা স্ট্রাকচার তৈরি করা যায়, যা প্রোগ্রামের কার্যকারিতা বাড়ায়।
সারাংশ:
Rexx-এ compound variables একটি বিশেষ প্রকারের পরিবর্তনশীল যা একাধিক মান ধারণ করতে সক্ষম। এগুলো সাধারণত সূচক সহ একাধিক উপাদান ধারণ করে এবং ডেটা গঠন, তালিকা বা অ্যারে তৈরি করতে সহায়ক হয়। এর মাধ্যমে একই নামের অধীনে একাধিক মান সংরক্ষণ করা সম্ভব এবং এটি ডেটা পরিচালনা সহজ করে তোলে।
Arrays হল ডেটা স্ট্রাকচার যা একসাথে একই ধরনের তথ্য সংরক্ষণ করতে ব্যবহৃত হয়। Indexed Arrays এবং Associative Arrays দুটি আলাদা ধরনের অ্যারে, যেগুলি বিভিন্ন পরিস্থিতিতে ব্যবহৃত হয়। নিচে এই দুটি অ্যারের সংজ্ঞা, বৈশিষ্ট্য এবং পার্থক্য তুলে ধরা হলো।
১. Indexed Arrays
Indexed Arrays হল এমন অ্যারে, যেখানে প্রতিটি উপাদানের জন্য একটি নির্দিষ্ট ইন্ডেক্স বা পজিশন থাকে। এই ইন্ডেক্সগুলি সাধারণত সংখ্যা (ইন্টিজার) হয় এবং সাধারণত 0 থেকে শুরু হয়। Indexed Arrays সহজ এবং দ্রুত অ্যাক্সেসের জন্য উপযুক্ত, কারণ ইন্ডেক্সের মাধ্যমে ডেটা সরাসরি অ্যাক্সেস করা যায়।
বৈশিষ্ট্য:
- ইন্ডেক্সিং: ইনডেক্স অ্যারের উপাদানগুলি সিকোয়েন্সিয়ালভাবে (ক্রমক্রমে) অ্যাক্সেস করা হয়, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ইন্ডেক্স দ্বারা চিহ্নিত হয়।
- ডেটা টাইপ: ইনডেক্স অ্যারেগুলি সাধারণত এক ধরনের ডেটা ধারণ করে, যেমন সমস্ত পূর্ণসংখ্যা বা সমস্ত স্ট্রিং।
- শুরু ইন্ডেক্স: অধিকাংশ ভাষায় ইনডেক্স অ্যারে 0 থেকে শুরু হয়, যদিও কিছু ভাষায় এটি 1 থেকেও শুরু হতে পারে।
সিনট্যাক্স (Rexx):
/* Indexed Array Example */
array = ["apple", "banana", "cherry"]
SAY array[1] /* Output: apple */
SAY array[2] /* Output: banana */এখানে array[1], array[2] ইনডেক্সের মাধ্যমে উপাদানগুলির অ্যাক্সেস করা হয়েছে।
ব্যবহার:
- ডেটা সংগ্রহ: Indexed Arrays সাধারণত ডেটার ক্রমভিত্তিক সংগ্রহে ব্যবহৃত হয়, যেমন একটি তালিকা বা সিকোয়েন্স।
- ডেটা ম্যানিপুলেশন: ইনডেক্স অ্যারেগুলিতে সহজে ডেটা যোগ, মুছে ফেলা এবং আপডেট করা যায়।
২. Associative Arrays
Associative Arrays বা Hash Maps হল এমন অ্যারে, যেখানে ডেটা উপাদানগুলি কোনও নির্দিষ্ট কী বা চাবির মাধ্যমে অ্যাক্সেস করা হয়। এটি একটি key-value পেয়ার হিসাবে কাজ করে, যেখানে "key" হল এক ধরনের ইনডেক্স এবং "value" হল ডেটা উপাদান। এটি সাধারণত ডেটা সংরক্ষণে ব্যবহার করা হয় যেখানে আপনি কীগুলির মাধ্যমে দ্রুত ডেটা খুঁজে পেতে চান।
বৈশিষ্ট্য:
- কী-ভ্যালু পেয়ার: Associative Arrays কীগুলির মাধ্যমে মান সংরক্ষণ করে। কীগুলি ইউনিক এবং মানের সাথে সম্পর্কিত থাকে।
- অর্ডার: সাধারণত, অ্যাসোসিয়েটিভ অ্যারেগুলির মধ্যে উপাদানগুলির কোনো নির্দিষ্ট অর্ডার থাকে না (যদিও কিছু ভাষায় কীগুলির অর্ডার রাখা যেতে পারে)।
- ডেটা টাইপ: কীগুলি সাধারণত স্ট্রিং বা অন্য কোন ডেটা টাইপ হতে পারে, এবং ভ্যালুগুলি যেকোনো ডেটা টাইপ হতে পারে।
সিনট্যাক্স (Rexx):
/* Associative Array Example */
array["apple"] = "red"
array["banana"] = "yellow"
array["cherry"] = "red"
SAY array["apple"] /* Output: red */
SAY array["banana"] /* Output: yellow */এখানে, array["apple"] কীগুলির মাধ্যমে মান অ্যাক্সেস করা হয়েছে। এখানে "apple", "banana" এবং "cherry" কীগুলি এবং তাদের মান যথাক্রমে "red", "yellow", "red"।
ব্যবহার:
- ডেটা অনুসন্ধান: Associative Arrays ডেটা অনুসন্ধানের জন্য ব্যবহৃত হয় যেখানে আপনি কীগুলির মাধ্যমে দ্রুত মান খুঁজে পেতে চান।
- অবজেক্ট সংগ্রহ: এটি অবজেক্টের আর্গুমেন্ট বা অন্যান্য ডেটার ম্যাপিংয়ের জন্য ব্যবহার করা যেতে পারে।
- কনফিগারেশন সেটিংস: অ্যাসোসিয়েটিভ অ্যারে কনফিগারেশন প্যারামিটার সংরক্ষণের জন্য আদর্শ।
Indexed Arrays এবং Associative Arrays এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | Indexed Arrays | Associative Arrays |
|---|---|---|
| ইন্ডেক্স | সংখ্যা (0, 1, 2, ...) | কী (string, integer, etc.) |
| ডেটা টাইপ | সাধারণত এক ধরনের ডেটা (যেমন স্ট্রিং, ইন্টিজার) | কী এবং ভ্যালু পেয়ার হতে পারে |
| অর্ডার | নির্দিষ্ট ক্রম থাকে (0 থেকে শুরু) | অর্ডার অপর্যাপ্ত হতে পারে |
| ব্যবহার | ক্রমিক ডেটা সংগ্রহ এবং অ্যাক্সেস | কী-ভ্যালু পেয়ার ভিত্তিক ডেটা পরিচালনা |
| অ্যাক্সেস পদ্ধতি | ইনডেক্স দ্বারা অ্যাক্সেস | কী দ্বারা অ্যাক্সেস |
সারাংশ:
- Indexed Arrays হল এমন অ্যারে যেখানে উপাদানগুলিকে ক্রমিকভাবে একটি সংখ্যার মাধ্যমে অ্যাক্সেস করা হয়, সাধারণত সিকোয়েন্স বা তালিকা সংরক্ষণের জন্য ব্যবহৃত হয়।
- Associative Arrays হল এমন অ্যারে যেখানে ডেটা কীগুলির মাধ্যমে অ্যাক্সেস করা হয়, এবং এটি বিশেষভাবে কী-ভ্যালু পেয়ার ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
এটি নির্ভর করে আপনার প্রয়োজনের উপর যে আপনি কোন ধরনের অ্যারে ব্যবহার করবেন। Indexed Arrays সাধারণত সিকোয়েন্সাল ডেটার জন্য এবং Associative Arrays দ্রুত অনুসন্ধান বা কী-ভ্যালু পেয়ার ডেটার জন্য ব্যবহৃত হয়।
Rexx প্রোগ্রামিং ভাষায় arrays ডেটার সংগঠন এবং manipulation এর জন্য একটি গুরুত্বপূর্ণ উপাদান। Arrays হল একটি ডেটা স্ট্রাকচার যেখানে একাধিক মান একসাথে সংরক্ষিত থাকে। Rexx এ arrays সাধারণত list হিসাবে কাজ করে, এবং এই lists তে বিভিন্ন উপাদান সংরক্ষিত থাকে, যেগুলি একাধিক বার iteration বা পুনরাবৃত্তি করে প্রসেস করা যায়।
এখানে Arrays এ Iteration এবং Data Manipulation নিয়ে বিস্তারিত আলোচনা করা হলো:
১. Arrays in Rexx
Rexx তে arrays গুলি সাধারণত lists হিসাবে কাজ করে, যেখানে একাধিক মান (values) ইনডেক্স বা অবস্থান অনুযায়ী সংরক্ষিত থাকে। Rexx তে array তৈরি করার জন্য সরাসরি কোনো ডেটা টাইপের প্রয়োজন হয় না, এটি একটি সাধারণ list হিসাবে ডাইনামিকভাবে তৈরি হয়।
Array Declaration (array তৈরি করা):
Rexx তে array তৈরি করা খুবই সহজ। এটি সাধারণত একটি variable দিয়ে তৈরি করা হয় এবং মানগুলো নির্ধারণ করা হয়।
/* array তৈরি */
myArray = "apple", "banana", "cherry"এখানে, myArray একটি array হিসাবে কাজ করছে এবং এতে তিনটি মান (apple, banana, cherry) সংরক্ষিত হচ্ছে।
২. Iteration (Arrays এ পুনরাবৃত্তি)
Arrays তে iteration বা পুনরাবৃত্তি করার জন্য Rexx বিভিন্ন পদ্ধতি ব্যবহার করতে পারে। সাধারণত do লুপ বা foreach লুপ ব্যবহার করে arrays এর উপাদানগুলির মধ্যে পুনরাবৃত্তি করা হয়।
a. do লুপ দিয়ে Iteration:
/* array */
myArray = "apple", "banana", "cherry"
do i = 1 to 3
say myArray.i
endব্যাখ্যা:
- এখানে,
doলুপ ব্যবহার করেmyArrayএর প্রতিটি উপাদান প্রদর্শিত হবে।myArray.iব্যবহার করে arrays এরiতম উপাদান অ্যাক্সেস করা হচ্ছে। এখানেiহল ইনডেক্স (1 থেকে 3) যা প্রতিটি উপাদানকে নির্দেশ করছে।
b. foreach লুপ দিয়ে Iteration:
/* array */
myArray = "apple", "banana", "cherry"
foreach fruit in myArray
say fruit
endব্যাখ্যা:
foreachলুপটি সরাসরি array এর উপাদানগুলির মধ্যে পুনরাবৃত্তি করে এবং প্রতিটি উপাদানকেfruitনামে একটি ভেরিয়েবলে অ্যাসাইন করে। ফলে কোডটি সরাসরি array এর প্রতিটি মানে এক্সেস করতে সক্ষম।
৩. Data Manipulation (Data Manipulation in Arrays)
Rexx এ arrays এর মান manipulation করার জন্য বিভিন্ন পদ্ধতি রয়েছে। নিচে কিছু সাধারণ ডেটা ম্যানিপুলেশন কার্যকলাপ উল্লেখ করা হলো:
a. Array Element Update
একটি array এর নির্দিষ্ট উপাদান আপডেট করতে, myArray.index ব্যবহার করা হয়।
/* array */
myArray = "apple", "banana", "cherry"
/* array এর দ্বিতীয় উপাদান পরিবর্তন করা */
myArray.2 = "grape"
say myArray.2 /* "grape" প্রদর্শিত হবে */ব্যাখ্যা:
- এখানে
myArray.2দ্বারা দ্বিতীয় উপাদানটি পরিবর্তন করা হয়েছে, এবং এখন এটি"grape"হবে।
b. Adding Elements to an Array
Rexx এ array তে নতুন উপাদান যোগ করার জন্য একটি নতুন উপাদান সরাসরি array তে অ্যাসাইন করা যেতে পারে।
/* array */
myArray = "apple", "banana", "cherry"
/* নতুন উপাদান যোগ করা */
myArray.4 = "orange"
say myArray.4 /* "orange" প্রদর্শিত হবে */ব্যাখ্যা:
- এখানে,
myArray.4 = "orange"দ্বারা array তে নতুন উপাদান"orange"যোগ করা হয়েছে এবং এটি চতুর্থ ইনডেক্সে থাকবে।
c. Array Length (Array এর আকার বা দৈর্ঘ্য)
Array এর মোট উপাদান সংখ্যা জানতে Rexx তে array_name~ ব্যবহার করা হয়।
/* array */
myArray = "apple", "banana", "cherry"
length = myArray~ /* array এর দৈর্ঘ্য */
say length /* "3" প্রদর্শিত হবে */ব্যাখ্যা:
myArray~array তে উপাদানের সংখ্যা প্রদান করবে, অর্থাৎ এখানে ৩টি উপাদান রয়েছে।
d. Removing Elements from an Array
Array থেকে একটি উপাদান সরানোর জন্য Rexx সরাসরি drop কমান্ড ব্যবহার করে।
/* array */
myArray = "apple", "banana", "cherry"
/* array থেকে প্রথম উপাদান সরানো */
drop myArray.1
say myArray.1 /* "banana" প্রদর্শিত হবে */ব্যাখ্যা:
drop myArray.1দিয়ে array থেকে প্রথম উপাদানটি সরিয়ে ফেলা হয়েছে। এরপর,myArray.1এর মান"banana"হয়ে গেছে, কারণ প্রথম উপাদানটি মুছে ফেলা হয়েছে।
৪. Multidimensional Arrays (বহুমাত্রিক Arrays)
Rexx তে বহুমাত্রিক array তৈরি করা যায়, যেখানে একাধিক স্তরের উপাদান সংরক্ষিত থাকে। এটি সাধারণত একাধিক , (কমা) দিয়ে উপাদানগুলো বিভক্ত করে তৈরি করা হয়।
/* বহুমাত্রিক array */
multiArray = "apple", "banana", "cherry",
"dog", "elephant", "fox"
/* প্রথম স্তরের প্রথম উপাদান */
say multiArray.1.1 /* "apple" */
/* দ্বিতীয় স্তরের প্রথম উপাদান */
say multiArray.2.1 /* "dog" */ব্যাখ্যা:
- এখানে,
multiArrayএকটি ২-মাত্রিক array, যেখানে প্রথম স্তরের উপাদানগুলি"apple","banana","cherry", এবং দ্বিতীয় স্তরের উপাদানগুলি"dog","elephant","fox"সংরক্ষিত আছে।multiArray.1.1বাmultiArray.2.1দ্বারা যথাক্রমে প্রথম এবং দ্বিতীয় স্তরের উপাদান অ্যাক্সেস করা হয়েছে।
সারাংশ:
- Arrays Rexx এ একটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা একাধিক উপাদান সংরক্ষণ এবং manipulation এর জন্য ব্যবহৃত হয়।
- Iteration করার জন্য Rexx এ
do,foreachলুপ ব্যবহৃত হয়, যা array এর উপাদানগুলির মধ্যে পুনরাবৃত্তি করতে সাহায্য করে। - Data Manipulation যেমন: উপাদান পরিবর্তন, যোগ করা, মুছে ফেলা, দৈর্ঘ্য বের করা ইত্যাদি Rexx এ খুব সহজ এবং সরাসরি করা যায়।
- Multidimensional Arrays ব্যবহার করে একাধিক স্তরের উপাদান সংরক্ষণ এবং manipulation করা যায়।
এই বৈশিষ্ট্যগুলো ব্যবহার করে Rexx প্রোগ্রামিং ভাষায় ডেটা ম্যানিপুলেশন খুবই কার্যকরীভাবে করা যায়।
Rexx এ Compound Variables এমন ভ্যারিয়েবল যেগুলোর মধ্যে একাধিক উপাদান থাকে, যেমন অ্যারে বা তালিকা। এগুলি আপনাকে একাধিক মান একত্রে সংরক্ষণ এবং প্রসেস করতে সহায়তা করে। Compound variable এর মধ্যে সাধারণত দুটি বা তার বেশি ভ্যারিয়েবল যুক্ত থাকে, যেখানে একটি পরিবর্তনশীল নাম এবং অন্যটি একটি ইনডেক্স বা উপাদান থাকে।
Compound Variables এর গঠন:
Rexx এ compound variable গঠনের জন্য একটি ভ্যারিয়েবল নামের সাথে . (ডট) ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি একটি ভ্যারিয়েবল person নামক একটি compound variable তৈরি করেন, তবে person.name, person.age বা person.address এর মতো বিভিন্ন উপাদান হতে পারে।
ব্যবহার:
Compound variables এর মাধ্যমে আপনি একাধিক উপাদান একত্রে সংরক্ষণ এবং পরিচালনা করতে পারবেন, যা কোডকে আরও সুসংগত এবং সহজ করে তোলে।
উদাহরণ ১: Compound Variables - একটি সিম্পল অ্যারে
এখানে একটি compound variable ব্যবহারের মাধ্যমে কয়েকটি মান সংরক্ষণ করা হচ্ছে।
/* Compound variable - Array ব্যবহার */
numbers.1 = 10
numbers.2 = 20
numbers.3 = 30
say "First number: " numbers.1
say "Second number: " numbers.2
say "Third number: " numbers.3ব্যাখ্যা:
- এখানে
numbers.1,numbers.2, এবংnumbers.3তিনটি ভিন্ন উপাদান হিসেবেnumbersনামক compound variable এর অংশ। এই কোডের আউটপুট হবে:
First number: 10 Second number: 20 Third number: 30
উদাহরণ ২: Compound Variables - ডায়নামিক ভ্যারিয়েবল
Rexx এ compound variables ডায়নামিকভাবে তৈরি করা যেতে পারে এবং ব্যবহার করা যেতে পারে।
/* Compound variable - Name & Age */
person.name = "John"
person.age = 25
say "Name: " person.name
say "Age: " person.ageব্যাখ্যা:
- এখানে
personনামক compound variable এ দুটি উপাদান রয়েছে:nameএবংage। এই কোডের আউটপুট হবে:
Name: John Age: 25
উদাহরণ ৩: Compound Variables - লুপের মাধ্যমে ব্যবহারের উদাহরণ
Compound variables ব্যবহার করে একটি তালিকায় একাধিক মান লুপের মাধ্যমে প্রসেস করা।
/* Compound variable - List of names */
names.1 = "John"
names.2 = "Alice"
names.3 = "Bob"
do i = 1 to 3
say "Name " i ": " names.i
endব্যাখ্যা:
- এখানে
namesনামক compound variable তিনটি উপাদান ধারণ করছে এবং লুপের মাধ্যমে প্রতিটি উপাদান প্রদর্শিত হচ্ছে। এই কোডের আউটপুট হবে:
Name 1: John Name 2: Alice Name 3: Bob
উদাহরণ ৪: Compound Variables - অ্যারে স্টাইলের ডেটা সংগ্রহ
/* Compound variable - Store items in a list */
shoppingList.1 = "Apple"
shoppingList.2 = "Banana"
shoppingList.3 = "Cherry"
do i = 1 to 3
say "Item " i ": " shoppingList.i
endব্যাখ্যা:
- এখানে
shoppingListনামক compound variable এর মাধ্যমে একটি তালিকা তৈরি করা হচ্ছে যেখানে বিভিন্ন ফলের নাম রয়েছে। আউটপুট:
Item 1: Apple Item 2: Banana Item 3: Cherry
উদাহরণ ৫: Compound Variables - ব্যবহারকারীর ইনপুট নিয়ে কাজ
/* Compound variable - Store user inputs */
do i = 1 to 3
say "Enter item " i ":"
pull shoppingList.i
end
say "Your shopping list:"
do i = 1 to 3
say shoppingList.i
endব্যাখ্যা:
- এখানে, ব্যবহারকারী থেকে তিনটি আইটেম ইনপুট নেওয়া হচ্ছে এবং সেগুলি
shoppingListcompound variable এ সংরক্ষিত হচ্ছে। আউটপুট:
Enter item 1 : Apple Enter item 2 : Banana Enter item 3 : Cherry Your shopping list: Apple Banana Cherry
সারাংশ:
Rexx এ Compound Variables ব্যবহার করে আপনি একাধিক মান সংরক্ষণ করতে পারেন। এগুলি খুবই কার্যকরী যখন আপনাকে একাধিক উপাদান বা আইটেম পরিচালনা করতে হয়। Compound variables দিয়ে আপনি অ্যারে বা তালিকা তৈরি করতে পারেন এবং সেগুলির মধ্যে ডেটা সংরক্ষণ করতে পারেন।
Read more