In this section, we will explore the various operators available in Fortran and how to use them to create expressions. Understanding operators and expressions is fundamental to performing calculations and making decisions in your programs.

  1. Arithmetic Operators

Fortran supports the following arithmetic operators:

Operator Description Example
+ Addition A + B
- Subtraction A - B
* Multiplication A * B
/ Division A / B
** Exponentiation A ** B

Example:

PROGRAM ArithmeticExample
  IMPLICIT NONE
  INTEGER :: a, b, result
  REAL :: x, y, result_real

  ! Assign values
  a = 10
  b = 3
  x = 2.5
  y = 4.0

  ! Perform arithmetic operations
  result = a + b
  PRINT *, 'Addition: ', result

  result = a - b
  PRINT *, 'Subtraction: ', result

  result = a * b
  PRINT *, 'Multiplication: ', result

  result_real = x / y
  PRINT *, 'Division: ', result_real

  result_real = x ** y
  PRINT *, 'Exponentiation: ', result_real
END PROGRAM ArithmeticExample

  1. Relational Operators

Relational operators are used to compare two values. The result of a relational operation is a logical value (.TRUE. or .FALSE.).

Operator Description Example
== Equal to A == B
/= Not equal to A /= B
> Greater than A > B
< Less than A < B
>= Greater than or equal to A >= B
<= Less than or equal to A <= B

Example:

PROGRAM RelationalExample
  IMPLICIT NONE
  INTEGER :: a, b
  LOGICAL :: result

  ! Assign values
  a = 10
  b = 3

  ! Perform relational operations
  result = a == b
  PRINT *, 'Equal to: ', result

  result = a /= b
  PRINT *, 'Not equal to: ', result

  result = a > b
  PRINT *, 'Greater than: ', result

  result = a < b
  PRINT *, 'Less than: ', result

  result = a >= b
  PRINT *, 'Greater than or equal to: ', result

  result = a <= b
  PRINT *, 'Less than or equal to: ', result
END PROGRAM RelationalExample

  1. Logical Operators

Logical operators are used to combine logical expressions.

Operator Description Example
.AND. Logical AND A .AND. B
.OR. Logical OR A .OR. B
.NOT. Logical NOT .NOT. A

Example:

PROGRAM LogicalExample
  IMPLICIT NONE
  LOGICAL :: a, b, result

  ! Assign values
  a = .TRUE.
  b = .FALSE.

  ! Perform logical operations
  result = a .AND. b
  PRINT *, 'Logical AND: ', result

  result = a .OR. b
  PRINT *, 'Logical OR: ', result

  result = .NOT. a
  PRINT *, 'Logical NOT: ', result
END PROGRAM LogicalExample

  1. Assignment Operators

The assignment operator (=) is used to assign a value to a variable.

Example:

PROGRAM AssignmentExample
  IMPLICIT NONE
  INTEGER :: a, b

  ! Assign values
  a = 10
  b = 3

  PRINT *, 'Value of a: ', a
  PRINT *, 'Value of b: ', b
END PROGRAM AssignmentExample

  1. Combining Operators in Expressions

You can combine multiple operators in a single expression. Fortran follows the standard order of operations (PEMDAS/BODMAS).

Example:

PROGRAM CombinedExample
  IMPLICIT NONE
  INTEGER :: a, b, c, result

  ! Assign values
  a = 10
  b = 3
  c = 5

  ! Combine operators in an expression
  result = a + b * c - (a / b)
  PRINT *, 'Combined expression result: ', result
END PROGRAM CombinedExample

Practical Exercises

Exercise 1: Basic Arithmetic Operations

Write a Fortran program that takes two integers as input and performs addition, subtraction, multiplication, and division. Print the results.

Solution:

PROGRAM BasicArithmetic
  IMPLICIT NONE
  INTEGER :: a, b, sum, difference, product
  REAL :: quotient

  ! Input values
  PRINT *, 'Enter two integers:'
  READ *, a, b

  ! Perform arithmetic operations
  sum = a + b
  difference = a - b
  product = a * b
  quotient = REAL(a) / REAL(b)

  ! Print results
  PRINT *, 'Sum: ', sum
  PRINT *, 'Difference: ', difference
  PRINT *, 'Product: ', product
  PRINT *, 'Quotient: ', quotient
END PROGRAM BasicArithmetic

Exercise 2: Relational and Logical Operations

Write a Fortran program that takes two integers as input and checks if the first integer is greater than the second. Also, check if both integers are positive using logical operators.

Solution:

PROGRAM RelationalLogical
  IMPLICIT NONE
  INTEGER :: a, b
  LOGICAL :: isGreater, bothPositive

  ! Input values
  PRINT *, 'Enter two integers:'
  READ *, a, b

  ! Perform relational and logical operations
  isGreater = a > b
  bothPositive = (a > 0) .AND. (b > 0)

  ! Print results
  PRINT *, 'Is the first integer greater than the second? ', isGreater
  PRINT *, 'Are both integers positive? ', bothPositive
END PROGRAM RelationalLogical

Conclusion

In this section, we covered the various types of operators in Fortran, including arithmetic, relational, logical, and assignment operators. We also learned how to combine these operators in expressions and practiced with some exercises. Understanding these operators and how to use them in expressions is crucial for performing calculations and making decisions in your Fortran programs. In the next section, we will delve into input and output operations in Fortran.

© Copyright 2024. All rights reserved