ফোরট্রানে এক-মাত্রিক এবং বহুমাত্রিক অ্যারের ব্যবহার
ফোরট্রান প্রোগ্রামিং ভাষায় অ্যারে ব্যবহারের জন্য শক্তিশালী এবং সহজ একটি ব্যবস্থা প্রদান করা হয়েছে। অ্যারে গুলি একই ধরনের ডেটার গ্রুপ বা সেকশন সংরক্ষণ করে, যা গাণিতিক সমস্যাগুলির সমাধানে অত্যন্ত কার্যকরী। ফোরট্রানে এক-মাত্রিক এবং বহুমাত্রিক অ্যারে ব্যবহারের জন্য একটি নির্দিষ্ট সিনট্যাক্স এবং নিয়ম রয়েছে।
১. এক-মাত্রিক অ্যারে (One-dimensional Array)
এক-মাত্রিক অ্যারে একটি সোজা লাইন (বা সারি) হিসেবে সংরক্ষিত একাধিক উপাদান বা ভ্যালু ধারণ করে। এই ধরনের অ্যারেগুলিতে একক ইনডেক্স ব্যবহার করা হয়।
সিনট্যাক্স:
<datatype> :: <array_name>(<size>)উদাহরণ:
PROGRAM one_dimensional_array
INTEGER :: i
REAL :: arr(5) ! এক-মাত্রিক অ্যারে, আকার ৫
! অ্যারের মান ইনিশিয়ালাইজ করা
arr(1) = 10.0
arr(2) = 20.0
arr(3) = 30.0
arr(4) = 40.0
arr(5) = 50.0
! অ্যারের উপাদান প্রিন্ট করা
PRINT *, 'Array elements:'
DO i = 1, 5
PRINT *, 'arr(', i, ') = ', arr(i)
END DO
END PROGRAM one_dimensional_arrayআউটপুট:
Array elements:
arr( 1 ) = 10.000000
arr( 2 ) = 20.000000
arr( 3 ) = 30.000000
arr( 4 ) = 40.000000
arr( 5 ) = 50.000000এখানে arr নামক এক-মাত্রিক অ্যারে ৫টি উপাদান ধারণ করে, এবং প্রতিটি উপাদান তার ইনডেক্স দিয়ে অ্যাক্সেস করা হয়েছে।
২. বহুমাত্রিক অ্যারে (Multi-dimensional Array)
ফোরট্রানে বহুমাত্রিক অ্যারে দুটি বা তার বেশি মাত্রা নিয়ে কাজ করে। এটি একটি টেবিল বা ম্যাট্রিক্সের মতো হতে পারে, যেখানে প্রতিটি উপাদান বিভিন্ন ইনডেক্সের সমন্বয়ে অ্যাক্সেস করা হয়।
সিনট্যাক্স:
<datatype> :: <array_name>(<size1>, <size2>, ...)উদাহরণ:
PROGRAM multi_dimensional_array
INTEGER :: i, j
REAL :: matrix(3, 3) ! ৩x৩ এর বহুমাত্রিক অ্যারে (ম্যাট্রিক্স)
! ম্যাট্রিক্সের মান ইনিশিয়ালাইজ করা
matrix(1, 1) = 1.0
matrix(1, 2) = 2.0
matrix(1, 3) = 3.0
matrix(2, 1) = 4.0
matrix(2, 2) = 5.0
matrix(2, 3) = 6.0
matrix(3, 1) = 7.0
matrix(3, 2) = 8.0
matrix(3, 3) = 9.0
! ম্যাট্রিক্সের উপাদান প্রিন্ট করা
PRINT *, 'Matrix elements:'
DO i = 1, 3
DO j = 1, 3
PRINT *, 'matrix(', i, ',', j, ') = ', matrix(i, j)
END DO
END DO
END PROGRAM multi_dimensional_arrayআউটপুট:
Matrix elements:
matrix( 1 , 1 ) = 1.000000
matrix( 1 , 2 ) = 2.000000
matrix( 1 , 3 ) = 3.000000
matrix( 2 , 1 ) = 4.000000
matrix( 2 , 2 ) = 5.000000
matrix( 2 , 3 ) = 6.000000
matrix( 3 , 1 ) = 7.000000
matrix( 3 , 2 ) = 8.000000
matrix( 3 , 3 ) = 9.000000এখানে matrix নামক ৩x৩ এর বহুমাত্রিক অ্যারে (ম্যাট্রিক্স) তৈরি করা হয়েছে, যেখানে দুটি ইনডেক্স (i, j) ব্যবহার করে ম্যাট্রিক্সের উপাদানগুলি অ্যাক্সেস করা হয়েছে।
৩. ডায়নামিক অ্যারে (Dynamic Arrays)
ফোরট্রানে ডায়নামিক অ্যারে ব্যবহার করা যায়, যেখানে অ্যারের আকার রানটাইমে নির্ধারণ করা হয়। এই ক্ষেত্রে অ্যারের আকারের জন্য ALLOCATABLE ডিক্লেয়ারেশন এবং ALLOCATE/DEALLOCATE কমান্ড ব্যবহার করা হয়।
উদাহরণ:
PROGRAM dynamic_array
INTEGER :: i, n
REAL, ALLOCATABLE :: arr(:) ! ডায়নামিক অ্যারে
! অ্যারের আকার ইনপুট নেওয়া
PRINT *, 'Enter the size of the array:'
READ *, n
! অ্যারে আলোকেট করা
ALLOCATE(arr(n))
! অ্যারে ইনপুট দেওয়া
DO i = 1, n
PRINT *, 'Enter value for arr(', i, '):'
READ *, arr(i)
END DO
! অ্যারে প্রিন্ট করা
PRINT *, 'Array elements:'
DO i = 1, n
PRINT *, 'arr(', i, ') = ', arr(i)
END DO
! অ্যারে ডিলোকেট করা
DEALLOCATE(arr)
END PROGRAM dynamic_arrayআউটপুট:
Enter the size of the array:
5
Enter value for arr( 1 ):
10.0
Enter value for arr( 2 ):
20.0
Enter value for arr( 3 ):
30.0
Enter value for arr( 4 ):
40.0
Enter value for arr( 5 ):
50.0
Array elements:
arr( 1 ) = 10.000000
arr( 2 ) = 20.000000
arr( 3 ) = 30.000000
arr( 4 ) = 40.000000
arr( 5 ) = 50.000000এখানে ALLOCATABLE শব্দ ব্যবহার করে ডায়নামিকভাবে অ্যারের আকার নির্ধারণ করা হয়েছে এবং ALLOCATE কমান্ড দিয়ে অ্যারে তৈরি করা হয়েছে। এরপর, DEALLOCATE দিয়ে অ্যারে মুছে ফেলা হয়েছে।
উপসংহার
- এক-মাত্রিক অ্যারে: একমাত্র ইনডেক্স দিয়ে অ্যারের উপাদান অ্যাক্সেস করা হয়।
- বহুমাত্রিক অ্যারে: একাধিক ইনডেক্স (যেমন ২ বা ৩) দিয়ে অ্যারের উপাদান অ্যাক্সেস করা হয়, যা ম্যাট্রিক্সের মতো কাজ করে।
- ডায়নামিক অ্যারে: ফোরট্রান এমন একটি ক্ষমতা প্রদান করে যা রানটাইমে অ্যারের আকার নির্ধারণ করতে সহায়তা করে।
ফোরট্রানে অ্যারে ব্যবহার করার মাধ্যমে আপনি বৃহৎ আকারের ডেটা সংরক্ষণ এবং দক্ষভাবে সেগুলি প্রক্রিয়া করতে সক্ষম হবেন।
Read more