Derived Types এর মাধ্যমে কাস্টম ডেটা স্ট্রাকচার তৈরি

Advanced Data Structures (অ্যাডভান্সড ডেটা স্ট্রাকচার) - ফোরট্রান (Fortran) - Computer Programming

262

ফোরট্রানে Derived Types এর মাধ্যমে কাস্টম ডেটা স্ট্রাকচার তৈরি

ফোরট্রানে Derived Types (বা User-defined Types) ব্যবহার করে আপনি কাস্টম ডেটা স্ট্রাকচার তৈরি করতে পারেন। এটি ফোরট্রানের একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে বিভিন্ন ডেটার ধরন (যেমন, ইন্টিজার, রিয়েল, ক্যারেক্টার ইত্যাদি) একত্রিত করে একটি নতুন টাইপ তৈরি করতে সাহায্য করে।

Derived Type দিয়ে আপনি একটি নতুন ডেটা টাইপ তৈরি করতে পারেন, যা বিভিন্ন প্রপার্টি বা ভ্যারিয়েবল ধারণ করতে পারে। এটি মূলত Struct এর মতো কাজ করে, যা C প্রোগ্রামিং ভাষায় ব্যবহৃত হয়।


১. Derived Type তৈরি করার সাধারণ গঠন

type :: type_name
  ! সদস্য (members) ঘোষণা
  type1 :: member1
  type2 :: member2
  ...
end type type_name
  • type_name: আপনার তৈরি করা ডেটা টাইপের নাম।
  • type1, type2, ...: এই ডেটা টাইপের সদস্য ভ্যারিয়েবল বা উপাদানগুলির ডেটা টাইপ।

২. Derived Type এর উদাহরণ

ধরা যাক, আপনি একটি Person নামক ডেটা টাইপ তৈরি করতে চান, যা মানুষের নাম, বয়স এবং উচ্চতা ধারণ করবে।

program derived_type_example
  implicit none
  
  ! Derived Type ডিক্লারেশন
  type :: Person
     character(len=30) :: name
     integer :: age
     real :: height
  end type Person

  ! ভেরিয়েবল ঘোষণা
  type(Person) :: p1, p2

  ! সদস্য ভ্যারিয়েবল মান সেট করা
  p1%name = 'John Doe'
  p1%age = 30
  p1%height = 5.9

  p2%name = 'Jane Smith'
  p2%age = 25
  p2%height = 5.7

  ! মান প্রিন্ট করা
  print *, 'Person 1: ', p1%name, ', Age: ', p1%age, ', Height: ', p1%height
  print *, 'Person 2: ', p2%name, ', Age: ', p2%age, ', Height: ', p2%height

end program derived_type_example

এখানে:

  • type Person দিয়ে আমরা একটি কাস্টম টাইপ তৈরি করেছি, যার মধ্যে name, age, এবং height সদস্য আছে।
  • p1%name, p1%age, p1%height সদস্য অ্যাক্সেস করার জন্য % সিম্বল ব্যবহার করা হয়েছে।
  • আউটপুট হবে:

    Person 1: John Doe , Age: 30 , Height: 5.9
    Person 2: Jane Smith , Age: 25 , Height: 5.7

৩. Derived Type এ ফাংশন এবং সাবরুটিন ব্যবহার

ফোরট্রানে আপনি Derived Type এর মধ্যে function বা subroutine অন্তর্ভুক্ত করতে পারেন। এর মাধ্যমে আপনি ডেটা টাইপের উপর নির্দিষ্ট কাজ বা অপারেশন করতে পারেন।

ফাংশন ব্যবহার করা:

program derived_type_with_function
  implicit none

  ! Derived Type ডিক্লারেশন
  type :: Rectangle
     real :: length
     real :: width
  contains
     procedure :: area
  end type Rectangle

  ! Derived Type এর ফাংশন
  contains

  function area(this)
    real :: area
    class(Rectangle), intent(in) :: this

    area = this%length * this%width
  end function area

  ! ভেরিয়েবল ঘোষণা
  type(Rectangle) :: rect

  ! সদস্য ভ্যারিয়েবল মান সেট করা
  rect%length = 5.0
  rect%width = 3.0

  ! ফাংশন কল
  print *, 'Area of rectangle: ', rect%area()

end program derived_type_with_function

এখানে:

  • Rectangle টাইপের মধ্যে length এবং width সদস্য আছে এবং area নামক একটি ফাংশন রয়েছে।
  • rect%area() ফাংশন কল করে আমরা আয়তক্ষেত্রের এলাকা বের করছি।

আউটপুট হবে:

Area of rectangle: 15.0

৪. Derived Type এর মধ্যে Array বা অন্যান্য Derived Type ব্যবহার করা

ফোরট্রানে Derived Type এর মধ্যে অ্যারে বা অন্য Derived Type অন্তর্ভুক্ত করা সম্ভব। এটি আপনাকে আরও জটিল ডেটা স্ট্রাকচার তৈরি করতে সাহায্য করে।

Derived Type এর মধ্যে Array ব্যবহার করা:

program derived_type_with_array
  implicit none

  ! Derived Type ডিক্লারেশন
  type :: Student
     character(len=30) :: name
     integer :: scores(5)
  end type Student

  ! ভেরিয়েবল ঘোষণা
  type(Student) :: student1

  ! সদস্য ভ্যারিয়েবল মান সেট করা
  student1%name = 'John Doe'
  student1%scores = [85, 90, 78, 92, 88]

  ! ছাত্রের নাম এবং স্কোর প্রিন্ট করা
  print *, 'Student: ', student1%name
  print *, 'Scores: ', student1%scores

end program derived_type_with_array

এখানে:

  • scores(5) অ্যারের মধ্যে ৫টি মান রয়েছে যা student1 এর জন্য সেট করা হয়েছে।
  • আউটপুট হবে:

    Student: John Doe
    Scores:  85  90  78  92  88

৫. Derived Type এর সুবিধা

  1. কাস্টম ডেটা স্ট্রাকচার: আপনি আপনার প্রয়োজন অনুযায়ী কাস্টম ডেটা টাইপ তৈরি করতে পারেন।
  2. মডুলার এবং পরিষ্কার কোড: ডেটা টাইপের মধ্যে সম্পর্কিত তথ্য এবং ফাংশন একত্রিত করতে পারে, যা কোডের রক্ষণাবেক্ষণ সহজ করে তোলে।
  3. কোড পুনঃব্যবহারযোগ্যতা: একবার ডেটা টাইপ তৈরি করার পরে, এটি পুনরায় ব্যবহার করা যায় অন্য অংশে।
  4. ডেটা নিরাপত্তা: আপনি ডেটা এবং তার কার্যক্রমকে একত্রিত করে কোডের নিরাপত্তা বাড়াতে পারেন, যেমন, তথ্য অপ্রয়োজনীয়ভাবে অ্যাক্সেস বা পরিবর্তন করা থেকে বিরত থাকা।

উপসংহার

ফোরট্রানে Derived Types ব্যবহারের মাধ্যমে আপনি কাস্টম ডেটা স্ট্রাকচার তৈরি করতে পারেন, যা কোডকে আরও মডুলার এবং কার্যকরী করে তোলে। এটি ডেটা এবং কার্যকলাপকে একত্রিত করে আরও পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য কোড তৈরি করতে সহায়ক। Array বা অন্য Derived Type অন্তর্ভুক্ত করে আপনি আরও জটিল স্ট্রাকচার তৈরি করতে পারেন এবং ফাংশন ও সাবরুটিনের মাধ্যমে এর কার্যক্রম পরিচালনা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...