ফোরট্রানে অ্যারে ম্যানিপুলেশন এবং DIMENSION স্টেটমেন্ট
ফোরট্রান একটি শক্তিশালী ভাষা যা অ্যারে ম্যানিপুলেশনের জন্য বিভিন্ন কার্যকরী পদ্ধতি সরবরাহ করে। অ্যারে হল একাধিক ডেটার একটি সেট, যা একই টাইপের উপাদান ধারণ করে। ফোরট্রানে DIMENSION স্টেটমেন্ট ব্যবহার করে অ্যারে ডিফাইন করা হয় এবং তারপরে অ্যারে ম্যানিপুলেশন বিভিন্ন অপারেশনের মাধ্যমে করা হয়।
১. DIMENSION স্টেটমেন্ট
ফোরট্রানে DIMENSION স্টেটমেন্ট ব্যবহার করে একটি অ্যারে ডিফাইন করা হয়। এই স্টেটমেন্টটি অ্যারের আকার এবং উপাদানের সংখ্যা নির্ধারণ করে।
DIMENSION স্টেটমেন্টের সাধারণ গঠন:
DIMENSION array_name(index1, index2, ..., indexN)- array_name: অ্যারের নাম।
- index1, index2, ..., indexN: অ্যারের বিভিন্ন মাত্রার আকার।
উদাহরণ:
program array_example
implicit none
integer, dimension(3, 4) :: matrix ! 3x4 আকারের অ্যারে
! অ্যারের উপাদানসমূহ অ্যাসাইন করা
matrix(1, 1) = 5
matrix(1, 2) = 10
matrix(2, 3) = 15
matrix(3, 4) = 20
! অ্যারের উপাদানগুলি প্রিন্ট করা
print *, 'matrix(1,1) = ', matrix(1, 1)
print *, 'matrix(2,3) = ', matrix(2, 3)
print *, 'matrix(3,4) = ', matrix(3, 4)
end program array_exampleএখানে:
DIMENSION matrix(3, 4)একটি 3x4 আকারের দুই মাত্রার অ্যারে তৈরি করেছে।- অ্যারের কিছু মান ইনডেক্সের মাধ্যমে অ্যাসাইন করা হয়েছে।
DIMENSION স্টেটমেন্টের বৈশিষ্ট্য:
- ARRAY স্টেটমেন্ট দিয়ে অ্যারে ডিফাইন করা হয়, এবং আকারের মাপ (size) নির্ধারণ করা হয়।
- অ্যারের ডাইমেনশন সংখ্যা, ডেটা টাইপ, এবং আকার নির্ধারণ করা যায়।
২. অ্যারে ম্যানিপুলেশন
ফোরট্রানে অ্যারে ম্যানিপুলেশন অনেক ধরনের অপারেশন করতে পারে, যেমন অ্যারের উপাদান নির্ধারণ, অ্যারের মধ্যে মান সংগ্রহ, অথবা অ্যারের সন্নিবেশ করা।
a. অ্যারে উপাদান অ্যাক্সেস
অ্যারের উপাদানগুলি সঠিক ইনডেক্স ব্যবহার করে অ্যাক্সেস করা যায়।
program array_access
implicit none
integer, dimension(3) :: numbers
! অ্যারের মান অ্যাসাইন করা
numbers(1) = 10
numbers(2) = 20
numbers(3) = 30
! অ্যারের মান প্রিন্ট করা
print *, 'numbers(1) = ', numbers(1)
print *, 'numbers(2) = ', numbers(2)
print *, 'numbers(3) = ', numbers(3)
end program array_accessএখানে:
numbers(1)থেকেnumbers(3)পর্যন্ত অ্যারের উপাদানগুলো অ্যাক্সেস করা হয়েছে এবং সেগুলির মান প্রিন্ট করা হয়েছে।
b. অ্যারে ইনিশিয়ালাইজেশন
অ্যারে ইনিশিয়ালাইজেশন মান নির্ধারণ করার একটি পদ্ধতি হল DATA স্টেটমেন্ট ব্যবহার করা।
program array_initialization
implicit none
integer, dimension(4) :: array = [1, 2, 3, 4]
print *, 'Array elements: ', array
end program array_initializationএখানে:
- অ্যারে
arrayকে[1, 2, 3, 4]এর মান দিয়ে ইনিশিয়ালাইজ করা হয়েছে।
c. অ্যারে ইনডেক্সিং
ফোরট্রানে অ্যারে ইনডেক্সিং সোজাসুজি করা যায়, কিন্তু ইনডেক্সগুলি 1 থেকে শুরু হয় (যেমন, C, Java-এর মতো ভাষার তুলনায়)।
d. এলিমেন্টস আপডেট বা মান পরিবর্তন
program array_update
implicit none
integer, dimension(5) :: arr
integer :: i
! অ্যারের মান অ্যাসাইন করা
arr = [1, 2, 3, 4, 5]
! অ্যারের এলিমেন্ট আপডেট
arr(2) = 100
arr(4) = 200
! অ্যারের সমস্ত মান প্রিন্ট করা
print *, "Updated array elements:"
do i = 1, 5
print *, "arr(", i, ") = ", arr(i)
end do
end program array_updateএখানে:
- অ্যারের কিছু মান আপডেট করা হয়েছে এবং সেগুলির মান প্রিন্ট করা হয়েছে।
e. অ্যারে স্লাইসিং
ফোরট্রানে অ্যারে স্লাইসিং (অ্যারের একটি অংশের অ্যাক্সেস) করা যায়।
program array_slicing
implicit none
integer, dimension(5) :: arr = [1, 2, 3, 4, 5]
integer :: i
! অ্যারের অংশ (স্লাইস) প্রিন্ট করা
print *, "Array slice from index 2 to 4:"
print *, arr(2:4) ! আউটপুট হবে [2, 3, 4]
end program array_slicingএখানে:
arr(2:4)অ্যারের ২ থেকে ৪ ইনডেক্স পর্যন্ত উপাদানগুলি অ্যাক্সেস করবে।
৩. অ্যারে ম্যানিপুলেশনের আরো উন্নত ফিচার
a. অ্যারে SUM এবং PRODUCT
ফোরট্রান অ্যারে উপাদানগুলির যোগফল এবং গুণফল বের করতে ইন-বিল্ট ফাংশন SUM এবং PRODUCT সরবরাহ করে।
program array_sum_product
implicit none
integer, dimension(5) :: arr = [1, 2, 3, 4, 5]
integer :: sum, product
! অ্যারের যোগফল এবং গুণফল বের করা
sum = sum(arr)
product = product(arr)
print *, "Sum of array elements: ", sum
print *, "Product of array elements: ", product
end program array_sum_productএখানে:
sum(arr)অ্যারের সকল উপাদানের যোগফল প্রদান করে।product(arr)অ্যারের সকল উপাদানের গুণফল প্রদান করে।
b. অ্যারে TRANSPOSE
ফোরট্রানে 2D অ্যারে ট্রান্সপোজ করার জন্য TRANSPOSE ফাংশন ব্যবহৃত হয়।
program array_transpose
implicit none
real, dimension(2, 3) :: matrix = reshape([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], [2, 3])
real, dimension(3, 2) :: transposed_matrix
! অ্যারে ট্রান্সপোজ করা
transposed_matrix = transpose(matrix)
print *, "Original Matrix:"
print *, matrix
print *, "Transposed Matrix:"
print *, transposed_matrix
end program array_transposeএখানে:
transpose(matrix)ফাংশনটিmatrixএর ট্রান্সপোজ করা মান প্রদান করবে।
উপসংহার
ফোরট্রানে DIMENSION স্টেটমেন্টের মাধ্যমে অ্যারে ডিফাইন করা হয় এবং তারপরে অ্যারে ম্যানিপুলেশন বিভিন্ন অপারেশন দ্বারা করা হয়, যেমন অ্যারের মান পরিবর্তন, অ্যারে স্লাইসিং, অ্যারের যোগফল এবং গুণফল বের করা ইত্যাদি। অ্যারে ব্যবহার করে আপনি বড় পরিসরের ডেটা পরিচালনা করতে পারেন এবং এর মাধ্যমে কোডে দক্ষতা ও সুষমতা আনতে পারেন।
Read more