অপারেটর এবং এক্সপ্রেশন (Operators and Expressions in Fortran)
ফোরট্রান ভাষায় অপারেটর এবং এক্সপ্রেশন ব্যবহার করে গণিত, লজিক, এবং অন্যান্য প্রকারের অপারেশন করা হয়। ফোরট্রানে বিভিন্ন ধরনের অপারেটর রয়েছে যা ভেরিয়েবল এবং কনস্ট্যান্টগুলির ওপর বিভিন্ন অপারেশন সম্পাদনে সহায়ক।
অপারেটরের ধরন
ফোরট্রানে কয়েকটি গুরুত্বপূর্ণ অপারেটর হলো:
১. গাণিতিক অপারেটর (Arithmetic Operators)
ফোরট্রানে গাণিতিক অপারেটর সংখ্যা এবং ভগ্নাংশের ওপর বিভিন্ন গাণিতিক অপারেশন সম্পাদন করতে ব্যবহৃত হয়।
| অপারেটর | বর্ণনা | উদাহরণ |
|---|---|---|
+ | যোগ | a + b |
- | বিয়োগ | a - b |
* | গুণ | a * b |
/ | ভাগ | a / b |
** | ঘাত (Exponent) | a ** b |
উদাহরণ:
integer :: a, b, c
a = 10
b = 5
c = a + b ! ফলাফল: 15
c = a - b ! ফলাফল: 5
c = a * b ! ফলাফল: 50
c = a / b ! ফলাফল: 2
c = a ** 2 ! ফলাফল: 100২. লজিক্যাল অপারেটর (Logical Operators)
ফোরট্রানে লজিক্যাল অপারেটর ব্যবহার করে সত্য এবং মিথ্যা অবস্থার উপর বিভিন্ন অপারেশন করা হয়।
| অপারেটর | বর্ণনা | উদাহরণ |
|---|---|---|
.AND. | উভয় সত্য হলে সত্য | flag1 .AND. flag2 |
.OR. | যেকোনো একটি সত্য হলে সত্য | flag1 .OR. flag2 |
.NOT. | উল্টো মান (নট) | .NOT. flag1 |
উদাহরণ:
logical :: flag1, flag2, result
flag1 = .TRUE.
flag2 = .FALSE.
result = flag1 .AND. flag2 ! ফলাফল: .FALSE.
result = flag1 .OR. flag2 ! ফলাফল: .TRUE.
result = .NOT. flag1 ! ফলাফল: .FALSE.৩. রিলেশনাল অপারেটর (Relational Operators)
রিলেশনাল অপারেটর ব্যবহার করে দুটি মানের মধ্যে সম্পর্ক পরীক্ষা করা যায়।
| অপারেটর | বর্ণনা | উদাহরণ |
|---|---|---|
== | সমান | a == b |
/= | সমান নয় | a /= b |
> | বড় | a > b |
< | ছোট | a < b |
>= | বড় বা সমান | a >= b |
<= | ছোট বা সমান | a <= b |
উদাহরণ:
integer :: a, b
logical :: result
a = 10
b = 5
result = (a == b) ! ফলাফল: .FALSE.
result = (a /= b) ! ফলাফল: .TRUE.
result = (a > b) ! ফলাফল: .TRUE.
result = (a < b) ! ফলাফল: .FALSE.এক্সপ্রেশন (Expressions)
এক্সপ্রেশন হলো একাধিক অপারেটর এবং অপারেন্ডের সমন্বয়ে গঠিত একটি স্টেটমেন্ট যা একটি নির্দিষ্ট মান প্রদান করে। এক্সপ্রেশনগুলো গাণিতিক, লজিক্যাল, বা রিলেশনাল অপারেটর ব্যবহার করে তৈরি করা যায়।
উদাহরণ:
integer :: x, y, z
logical :: result
x = 10
y = 20
z = (x + y) * 2 ! গাণিতিক এক্সপ্রেশন, ফলাফল: 60
result = (x < y) .AND. (y > 15) ! লজিক্যাল এক্সপ্রেশন, ফলাফল: .TRUE.অপারেটর প্রায়োরিটি (Operator Precedence)
ফোরট্রানে অপারেটরের প্রায়োরিটি বা অগ্রাধিকার গুরুত্বপূর্ণ, কারণ অপারেটরের ক্রম অনুযায়ী এক্সপ্রেশন গণনা করা হয়। নিচে অপারেটরদের প্রায়োরিটির ক্রম দেখানো হয়েছে (উচ্চ থেকে নিম্ন ক্রম অনুযায়ী):
**(ঘাত বা Exponentiation)*,/(গুণ ও ভাগ)+,-(যোগ ও বিয়োগ)- রিলেশনাল অপারেটর (
==,/=,<,>,<=,>=) - লজিক্যাল অপারেটর (
.NOT.,.AND.,.OR.)
উদাহরণ:
integer :: a, b, c, result
a = 2
b = 3
c = 4
result = a + b * c ! প্রথমে b * c, তারপর a + (b * c), ফলাফল: 14
result = (a + b) * c ! প্রথমে a + b, তারপর (a + b) * c, ফলাফল: 20উপসংহার
ফোরট্রানে অপারেটর এবং এক্সপ্রেশন ব্যবহার করে বিভিন্ন ধরনের গাণিতিক এবং লজিক্যাল অপারেশন সম্পাদন করা সম্ভব। এগুলি প্রোগ্রামে তথ্য প্রক্রিয়াকরণ, সিদ্ধান্ত গ্রহণ এবং লজিক্যাল বিশ্লেষণে সহায়ক।
ফোরট্রানে গাণিতিক অপারেটর (Arithmetic Operators)
ফোরট্রানে গাণিতিক অপারেটরগুলি মূলত সাদামাঠে গাণিতিক হিসাব করতে ব্যবহৃত হয়। এটি সাধারণভাবে সঠিক মান বের করার জন্য ব্যবহৃত হয়, যেমন যোগ, বিয়োগ, গুণ, ভাগ, এবং ঘাত (Exponentiation)। ফোরট্রানে গাণিতিক অপারেটরগুলি সোজা এবং খুবই সহজভাবে ব্যবহার করা যায়।
১. যোগ (Addition) - +
ফোরট্রানে যোগ অপারেটর + ব্যবহার করা হয় দুটি বা ততোধিক সংখ্যার যোগফল বের করার জন্য।
উদাহরণ:
REAL :: a, b, sum
a = 5.0
b = 3.0
sum = a + b
PRINT *, 'Sum: ', sum ! আউটপুট: Sum: 8.0২. বিয়োগ (Subtraction) - -
ফোরট্রানে বিয়োগ অপারেটর - ব্যবহার করা হয় দুটি সংখ্যার মধ্যে বিয়োগ করার জন্য।
উদাহরণ:
REAL :: a, b, diff
a = 5.0
b = 3.0
diff = a - b
PRINT *, 'Difference: ', diff ! আউটপুট: Difference: 2.0৩. গুণ (Multiplication) - *
ফোরট্রানে গুণ অপারেটর * ব্যবহার করা হয় দুটি সংখ্যার গুণফল বের করার জন্য।
উদাহরণ:
REAL :: a, b, product
a = 5.0
b = 3.0
product = a * b
PRINT *, 'Product: ', product ! আউটপুট: Product: 15.0৪. ভাগ (Division) - /
ফোরট্রানে ভাগ অপারেটর / ব্যবহার করা হয় একটি সংখ্যাকে অন্য একটি সংখ্যায় ভাগ করার জন্য। এটি রিয়েল (REAL) বা ফ্লোটিং পয়েন্ট (FLOATING POINT) সংখ্যার জন্য ব্যবহৃত হয়।
উদাহরণ:
REAL :: a, b, quotient
a = 6.0
b = 3.0
quotient = a / b
PRINT *, 'Quotient: ', quotient ! আউটপুট: Quotient: 2.0৫. ঘাত (Exponentiation) - **
ফোরট্রানে ঘাত অপারেটর ** ব্যবহৃত হয় একটি সংখ্যার ঘাত বা শক্তি বের করার জন্য। এটি একটি সংখ্যা এবং তার শক্তির মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়।
উদাহরণ:
REAL :: base, exponent, result
base = 2.0
exponent = 3.0
result = base ** exponent
PRINT *, 'Result of Exponentiation: ', result ! আউটপুট: Result of Exponentiation: 8.0গাণিতিক অপারেটরগুলির সারাংশ:
| অপারেটর | কাজ | উদাহরণ |
|---|---|---|
+ | যোগফল বের করা | a + b |
- | বিয়োগফল বের করা | a - b |
* | গুণফল বের করা | a * b |
/ | ভাগফল বের করা | a / b |
** | একে অপরের ঘাত বের করা | a ** b |
উপসংহার
ফোরট্রান ভাষায় গাণিতিক অপারেটরগুলি খুবই সহজ এবং সোজা, এবং এগুলির মাধ্যমে আপনি যে কোনও গাণিতিক কাজ করতে পারবেন। যোগ, বিয়োগ, গুণ, ভাগ, এবং ঘাত অপারেটরগুলি গাণিতিক সমস্যাগুলি দ্রুত এবং কার্যকরভাবে সমাধান করতে সহায়ক।
রিলেশনাল অপারেটরস (Relational Operators)
ফোরট্রান এবং অন্যান্য প্রোগ্রামিং ভাষায় রিলেশনাল অপারেটরস ব্যবহার করা হয় দুটি মানের মধ্যে সম্পর্ক নির্ধারণ করতে। এগুলি মূলত শর্ত পরীক্ষায় ব্যবহৃত হয়, যেমন if বা while স্টেটমেন্টে। রিলেশনাল অপারেটরস দুটি মানের মধ্যে তুলনা করতে এবং তাদের সম্পর্ক অনুযায়ী সত্য (True) বা মিথ্যা (False) ফলাফল প্রদান করে। ফোরট্রানে সাধারণত ৬টি প্রধান রিলেশনাল অপারেটর ব্যবহৃত হয়: ==, /=, >, <, >=, এবং <=।
১. == (ইকুয়াল টু)
== অপারেটর দুটি মানের সমতা পরীক্ষা করে। এটি সত্য (True) প্রদান করবে যদি দুইটি মান সমান হয় এবং মিথ্যা (False) হবে যদি তারা সমান না হয়।
উদাহরণ:
INTEGER :: x, y
x = 5
y = 5
IF (x == y) THEN
PRINT *, "x এবং y সমান"
END IFএখানে, x এবং y এর মান ৫ হওয়ায় শর্ত সত্য হবে এবং "x এবং y সমান" প্রিন্ট হবে।
২. / = (নট ইকুয়াল টু)
/= অপারেটর দুটি মানের অসমতা পরীক্ষা করে। এটি সত্য (True) প্রদান করবে যদি দুটি মান সমান না হয় এবং মিথ্যা (False) হবে যদি তারা সমান হয়।
উদাহরণ:
INTEGER :: a, b
a = 5
b = 3
IF (a /= b) THEN
PRINT *, "a এবং b সমান নয়"
END IFএখানে, a এবং b এর মান আলাদা হওয়ায় শর্ত সত্য হবে এবং "a এবং b সমান নয়" প্রিন্ট হবে।
৩. > (গ্রেটার দ্যান)
> অপারেটরটি পরীক্ষা করে যে একটি মান অন্য মানের চেয়ে বড় কি না। এটি সত্য (True) প্রদান করবে যদি প্রথম মান দ্বিতীয় মানের চেয়ে বড় হয় এবং মিথ্যা (False) হবে অন্যথায়।
উদাহরণ:
INTEGER :: p, q
p = 7
q = 3
IF (p > q) THEN
PRINT *, "p হল q এর চেয়ে বড়"
END IFএখানে, p এর মান ৭ এবং q এর মান ৩ হওয়ায় শর্ত সত্য হবে এবং "p হল q এর চেয়ে বড়" প্রিন্ট হবে।
৪. < (লেস দ্যান)
< অপারেটরটি পরীক্ষা করে যে একটি মান অন্য মানের চেয়ে ছোট কি না। এটি সত্য (True) প্রদান করবে যদি প্রথম মান দ্বিতীয় মানের চেয়ে ছোট হয় এবং মিথ্যা (False) হবে অন্যথায়।
উদাহরণ:
INTEGER :: m, n
m = 3
n = 9
IF (m < n) THEN
PRINT *, "m হল n এর চেয়ে ছোট"
END IFএখানে, m এর মান ৩ এবং n এর মান ৯ হওয়ায় শর্ত সত্য হবে এবং "m হল n এর চেয়ে ছোট" প্রিন্ট হবে।
৫. >= (গ্রেটার দ্যান বা ইকুয়াল টু)
>= অপারেটরটি পরীক্ষা করে যে একটি মান অন্য মানের চেয়ে বড় বা সমান কি না। এটি সত্য (True) প্রদান করবে যদি প্রথম মান দ্বিতীয় মানের চেয়ে বড় বা সমান হয় এবং মিথ্যা (False) হবে অন্যথায়।
উদাহরণ:
INTEGER :: i, j
i = 5
j = 5
IF (i >= j) THEN
PRINT *, "i হল j এর চেয়ে বড় বা সমান"
END IFএখানে, i এবং j এর মান সমান ৫ হওয়ায় শর্ত সত্য হবে এবং "i হল j এর চেয়ে বড় বা সমান" প্রিন্ট হবে।
৬. <= (লেস দ্যান বা ইকুয়াল টু)
<= অপারেটরটি পরীক্ষা করে যে একটি মান অন্য মানের চেয়ে ছোট বা সমান কি না। এটি সত্য (True) প্রদান করবে যদি প্রথম মান দ্বিতীয় মানের চেয়ে ছোট বা সমান হয় এবং মিথ্যা (False) হবে অন্যথায়।
উদাহরণ:
INTEGER :: x, y
x = 8
y = 10
IF (x <= y) THEN
PRINT *, "x হল y এর চেয়ে ছোট বা সমান"
END IFএখানে, x এর মান ৮ এবং y এর মান ১০ হওয়ায় শর্ত সত্য হবে এবং "x হল y এর চেয়ে ছোট বা সমান" প্রিন্ট হবে।
রিলেশনাল অপারেটরস এর ব্যবহার
ফোরট্রানে রিলেশনাল অপারেটরসের ব্যবহার মূলত শর্ত পরীক্ষা এবং লুপিং স্টেটমেন্টে (যেমন if, do while) হয়ে থাকে। এগুলি আমাদের প্রোগ্রামে নির্দিষ্ট শর্ত পূর্ণ হলে কিছু নির্দিষ্ট কাজ করতে সাহায্য করে।
উদাহরণ:
INTEGER :: a, b
a = 10
b = 20
IF (a < b) THEN
PRINT *, "a ছোট b এর চেয়ে"
ELSE
PRINT *, "a বড় বা সমান b এর"
END IFএখানে, a এর মান b এর চেয়ে ছোট, তাই প্রথম শর্তটি পূর্ণ হবে এবং "a ছোট b এর চেয়ে" প্রিন্ট হবে।
উপসংহার
ফোরট্রানে রিলেশনাল অপারেটরস দুটি বা তার বেশি মানের মধ্যে সম্পর্ক যাচাই করতে ব্যবহৃত হয়। এগুলির মধ্যে ==, /=, >, <, >=, এবং <= ব্যবহার করা হয়। এই অপারেটরগুলি প্রোগ্রামে শর্ত যাচাই করার সময় বা বিভিন্ন সিদ্ধান্ত নিতে সহায়ক।
ফোরট্রানে লজিক্যাল অপারেটরস (.AND., .OR., .NOT.)
ফোরট্রানে লজিক্যাল অপারেটরগুলি গাণিতিক বা শর্তাধীন অপারেশনগুলির মধ্যে ব্যবহার করা হয়, বিশেষত বুলিয়ান লজিক (True/False) ভিত্তিক অবস্থান যাচাই করতে। এই অপারেটরগুলি মূলত দুটি বা তার বেশি শর্তের মধ্যে সম্পর্ক স্থাপন করার জন্য ব্যবহৃত হয়। ফোরট্রানে কিছু সাধারণ লজিক্যাল অপারেটর রয়েছে, যেমন .AND., .OR., এবং .NOT., যেগুলি শর্ত মেলানোর এবং তাদের ফলাফল নির্ধারণের জন্য ব্যবহৃত হয়।
১. .AND. (লজিক্যাল "এন্ড")
.AND. অপারেটর দুটি শর্তের মধ্যে যখন উভয় শর্ত সত্য (True) হয় তখনই ফলস্বরূপ সত্য (True) প্রদান করে।
উদাহরণ:
program logical_and_example
implicit none
logical :: result
integer :: a, b
! দুইটি সংখ্যা ইনপুট
a = 5
b = 10
! .AND. অপারেটর ব্যবহার
result = (a > 0) .AND. (b > 5)
print *, "Result of logical AND is: ", result ! ফলাফল হবে .TRUE.
end program logical_and_exampleএখানে:
(a > 0)এবং(b > 5)উভয়ই সত্য (True), সুতরাংresultহবে True।
.AND. অপারেটরের বৈশিষ্ট্য:
- True যদি এবং শুধুমাত্র যদি উভয় শর্তই সত্য হয়।
- যদি একটিও শর্ত মিথ্যা (False) হয়, তবে ফলাফল হবে মিথ্যা (False)।
২. .OR. (লজিক্যাল "অর")
.OR. অপারেটর দুটি শর্তের মধ্যে যখন কোনো এক শর্তও সত্য (True) হয় তখন ফলস্বরূপ সত্য (True) প্রদান করে।
উদাহরণ:
program logical_or_example
implicit none
logical :: result
integer :: a, b
! দুইটি সংখ্যা ইনপুট
a = 5
b = 3
! .OR. অপারেটর ব্যবহার
result = (a > 0) .OR. (b > 5)
print *, "Result of logical OR is: ", result ! ফলাফল হবে .TRUE.
end program logical_or_exampleএখানে:
(a > 0)সত্য (True), এবং(b > 5)মিথ্যা (False)। তবেresultহবে True কারণ .OR. অপারেটরটি প্রথম শর্তটি সত্য হলে পুরো এক্সপ্রেশনকে সত্য (True) হিসেবে গণ্য করবে।
.OR. অপারেটরের বৈশিষ্ট্য:
- True যদি কোনো একটি শর্ত সত্য হয়।
- শুধুমাত্র যখন উভয় শর্তই মিথ্যা (False) হয় তখন ফলস্বরূপ মিথ্যা (False) হয়।
৩. .NOT. (লজিক্যাল "নট")
.NOT. অপারেটর একটি একক শর্তের নেগেটিভ বা বিপরীত ফলাফল প্রদান করে। অর্থাৎ, যদি শর্তটি সত্য (True) হয় তবে .NOT. সেটিকে মিথ্যা (False) বানিয়ে দেয় এবং যদি শর্তটি মিথ্যা (False) হয় তবে সেটিকে সত্য (True) বানিয়ে দেয়।
উদাহরণ:
program logical_not_example
implicit none
logical :: result
integer :: a
! একটি সংখ্যা ইনপুট
a = 5
! .NOT. অপারেটর ব্যবহার
result = .NOT. (a < 10)
print *, "Result of logical NOT is: ", result ! ফলাফল হবে .FALSE.
end program logical_not_exampleএখানে:
(a < 10)শর্তটি True (যেহেতু 5 ছোট 10), কিন্তু .NOT. অপারেটর ব্যবহার করার ফলে ফলস্বরূপ False হবে।
.NOT. অপারেটরের বৈশিষ্ট্য:
- এটি একক শর্তের বিপরীত ফলাফল প্রদান করে।
- True যদি শর্তটি False হয়, এবং False যদি শর্তটি True হয়।
উদাহরণ: সমস্ত লজিক্যাল অপারেটর একসাথে ব্যবহার করা
program logical_example
implicit none
logical :: result
integer :: a, b, c
! তিনটি সংখ্যা ইনপুট
a = 10
b = 20
c = 5
! .AND., .OR., এবং .NOT. অপারেটর একসাথে ব্যবহার
result = (a > 5) .AND. (b < 25) .OR. .NOT. (c == 10)
print *, "Result of combined logical operators: ", result ! ফলাফল হবে .TRUE.
end program logical_exampleএখানে:
(a > 5)এবং(b < 25)উভয়ই সত্য, কিন্তু.NOT. (c == 10)মিথ্যা, তবে .OR. অপারেটরটি সত্যের ফলাফল প্রদান করে।
উপসংহার
ফোরট্রানে .AND., .OR., এবং .NOT. লজিক্যাল অপারেটরগুলি শর্তগুলি একত্রিত বা পরিবর্তন করতে ব্যবহৃত হয়। এগুলির মাধ্যমে আপনি আরও জটিল লজিক্যাল এক্সপ্রেশন তৈরি করতে পারেন, যা প্রোগ্রামিংয়ে বিভিন্ন শর্ত অনুযায়ী সিদ্ধান্ত নিতে সাহায্য করে।
ফোরট্রানে Mathematical Functions এবং Built-in Functions এর ধারণা
ফোরট্রান একটি শক্তিশালী প্রোগ্রামিং ভাষা, যা গাণিতিক গণনা এবং বৈজ্ঞানিক বিশ্লেষণের জন্য ব্যাপকভাবে ব্যবহৃত হয়। Mathematical Functions এবং Built-in Functions ফোরট্রানে বিভিন্ন ধরনের গাণিতিক কাজ এবং অন্যান্য সাধারণ কার্যাবলী সম্পাদন করতে সহায়ক। ফোরট্রানে বিভিন্ন বিল্ট-ইন গাণিতিক ফাংশন এবং অন্যান্য সুবিধা রয়েছে যা প্রোগ্রামিং সহজ করে তোলে।
১. Mathematical Functions (গাণিতিক ফাংশন)
ফোরট্রানে কিছু মৌলিক গাণিতিক ফাংশন রয়েছে যা সাধারন গাণিতিক কাজের জন্য ব্যবহৃত হয়, যেমন যোগ, বিয়োগ, গুণ, ভাগ, এবং অন্যান্য জটিল গাণিতিক ফাংশন যেমন বর্গমূল, ত্রিকোণমিতিক ফাংশন ইত্যাদি।
সাধারণ গাণিতিক ফাংশন:
ABS(x): সংখ্যাটির পরম (absolute) মান প্রদান করে।
real :: x x = -5.3 print *, abs(x) ! আউটপুট হবে 5.3SQRT(x): সংখ্যার বর্গমূল প্রদান করে।
real :: x x = 16.0 print *, sqrt(x) ! আউটপুট হবে 4.0EXP(x): একটি বাস্তব সংখ্যার প্রাকৃতিক লগারিদমের জন্য এক্সপোনেনশিয়াল প্রদান করে, \( e^x \)।
real :: x x = 2.0 print *, exp(x) ! আউটপুট হবে 7.389LOG(x): একটি বাস্তব সংখ্যার প্রাকৃতিক লগারিদম প্রদান করে।
real :: x x = 10.0 print *, log(x) ! আউটপুট হবে 2.3026MOD(x, y): x এবং y-এর মধ্যে ভাগফল থেকে অবশিষ্টাংশ প্রদান করে।
real :: x, y x = 10.0 y = 3.0 print *, mod(x, y) ! আউটপুট হবে 1.0SIN(x), COS(x), TAN(x): যথাক্রমে সাইন, কোসাইন, এবং ট্যানজেন্ট ফাংশন।
real :: angle angle = 1.5708 ! π/2 print *, sin(angle) ! আউটপুট হবে 1.0 print *, cos(angle) ! আউটপুট হবে 0.0 print *, tan(angle) ! আউটপুট হবে অপরিসীম (Infinity)ASIN(x), ACOS(x), ATAN(x): যথাক্রমে আর্কসাইন, আর্ককোসাইন এবং আর্কট্যানজেন্ট ফাংশন।
real :: x x = 0.5 print *, asin(x) ! আউটপুট হবে 0.5236 (π/6) print *, acos(x) ! আউটপুট হবে 1.0472 (π/3) print *, atan(x) ! আউটপুট হবে 0.4636SINH(x), COSH(x), TANH(x): সাইন, কোসাইন এবং ট্যানজেন্ট ফাংশনগুলির হাইপারবোলিক সংস্করণ।
real :: x x = 1.0 print *, sinh(x) ! আউটপুট হবে 1.1752 print *, cosh(x) ! আউটপুট হবে 1.5431 print *, tanh(x) ! আউটপুট হবে 0.7616
২. Built-in Functions (বিল্ট-ইন ফাংশন)
ফোরট্রানে Built-in Functions হল এমন ফাংশনগুলি যা ফোরট্রান কম্পাইলারে আগে থেকেই অন্তর্ভুক্ত থাকে এবং সাধারণত বিভিন্ন কার্যাবলী সম্পাদন করার জন্য ব্যবহৃত হয়। এগুলির মধ্যে মেমরি ব্যবস্থাপনা, আই/ও অপারেশন, স্ট্রিং ম্যানিপুলেশন, এবং ডেটা টাইপ কনভার্সন সম্পর্কিত ফাংশন অন্তর্ভুক্ত থাকে।
কিছু গুরুত্বপূর্ণ Built-in Functions:
ICHAR(string): একটি স্ট্রিংয়ের প্রথম অক্ষরের ASCII মান প্রদান করে।
character(len=10) :: str str = "Hello" print *, ichar(str) ! আউটপুট হবে 72 (ASCII মান 'H' এর)CHAR(i): একটি পূর্ণসংখ্যা (ASCII মান) থেকে চরিত্র তৈরি করে।
integer :: i i = 65 print *, char(i) ! আউটপুট হবে 'A'LEN(string): একটি স্ট্রিং এর দৈর্ঘ্য প্রদান করে।
character(len=10) :: str str = "Hello" print *, len(str) ! আউটপুট হবে 5TRANSFER(data, type): একটি ডেটা টাইপকে অন্য টাইপে রূপান্তরিত করে।
real :: r integer :: i r = 3.14 i = transfer(r, i) print *, i ! আউটপুট হবে 1078523331 (রূপান্তরের জন্য বাইনারি মান)MAX(x, y), MIN(x, y): দুটি সংখ্যার মধ্যে সর্বোচ্চ বা সর্বনিম্ন মান প্রদান করে।
real :: a, b a = 5.0 b = 10.0 print *, max(a, b) ! আউটপুট হবে 10.0 print *, min(a, b) ! আউটপুট হবে 5.0- MOD(x, y): x এর y দ্বারা ভাগফল থেকে অবশিষ্টাংশ প্রদান করে (আগেই আলোচনা করা হয়েছে)।
AMAX1(array): একটি অ্যারে থেকে সর্বোচ্চ মান প্রদান করে।
real :: arr(5) arr = [1.0, 3.5, 2.0, 5.1, 4.0] print *, amax1(arr) ! আউটপুট হবে 5.1NINT(x): একটি রিয়েল সংখ্যাকে নিকটতম পূর্ণসংখ্যায় রূপান্তরিত করে।
real :: x x = 3.6 print *, nint(x) ! আউটপুট হবে 4REAL(i): একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবলকে বাস্তব (real) টাইপে রূপান্তরিত করে।
integer :: i real :: r i = 5 r = real(i) print *, r ! আউটপুট হবে 5.0
উপসংহার
ফোরট্রানে Mathematical Functions এবং Built-in Functions খুবই গুরুত্বপূর্ণ, কারণ তারা প্রোগ্রামের কার্যকারিতা উন্নত করতে সাহায্য করে এবং গাণিতিক এবং অন্যান্য কাজকে দ্রুত এবং নির্ভুলভাবে সম্পাদন করতে পারে। ফোরট্রানের গাণিতিক ফাংশনগুলি যেমন বর্গমূল, ত্রিকোণমিতিক ফাংশন এবং হাইপারবোলিক ফাংশন, এবং বিল্ট-ইন ফাংশনগুলি যেমন স্ট্রিং ম্যানিপুলেশন, টাইপ কনভার্সন, এবং ম্যাথমেটিক্যাল অপারেশনগুলি কোড লেখা সহজ করে তোলে এবং কার্যক্ষমতা বাড়ায়।
Read more