Изучение Фортрана: универсального языка для научных вычислений

Фортран, сокращение от «Перевод формул», — это язык программирования высокого уровня, первоначально разработанный IBM в 1950-х годах. Он завоевал популярность в научных и инженерных сообществах благодаря своей эффективности и мощным функциям численных расчетов. В этой статье мы рассмотрим различные методы Фортрана на примерах кода, демонстрируя его возможности для научных вычислений.

  1. Базовый ввод и вывод:
    Давайте начнем с простого фрагмента кода, который демонстрирует, как считывать вводимые пользователем данные и отображать вывод на экране:

    program basic_io
    implicit none
    character(20) :: name
    write(*,*) "Enter your name:"
    read(*,*) name
    write(*,*) "Hello, ", name
    end program basic_io
  2. Операции с массивами.
    Фортран обеспечивает обширную поддержку манипуляций с массивами. Вот пример вычисления суммы элементов массива:

    program array_sum
    implicit none
    integer :: i
    real :: array(5) = [1.0, 2.0, 3.0, 4.0, 5.0]
    real :: sum = 0.0
    do i = 1, 5
    sum = sum + array(i)
    end do
    write(*,*) "Sum of array elements:", sum
    end program array_sum
  3. Обработка файлов:
    Фортран позволяет эффективно читать и записывать данные из файлов. Вот пример, который считывает числа из входного файла, вычисляет их среднее значение и записывает результат в выходной файл:

    program file_handling
    implicit none
    integer :: i, count
    real :: num, sum = 0.0
    character(len=20) :: infile = "input.txt"
    character(len=20) :: outfile = "output.txt"
    open(unit=10, file=infile, status='old', action='read')
    open(unit=20, file=outfile, status='replace', action='write')
    do i = 1, 10
    read(10, *, iostat=count) num
    if (count == 0) then
      sum = sum + num
    else
      exit
    end if
    end do
    write(20, *) "Average:", sum / 10.0
    close(unit=10)
    close(unit=20)
    end program file_handling
  4. Численные вычисления.
    Фортран превосходно справляется с числовыми вычислениями. Вот пример решения системы линейных уравнений с использованием метода исключения Гаусса:

    program gauss_elimination
    implicit none
    integer, parameter :: n = 3
    real :: a(n,n+1) = reshape([2.0, 1.0, -1.0, 8.0, -3.0, -1.0, 2.0, 0.0, 1.0], [n,n+1])
    real :: x(n), pivot, ratio
    integer :: i, j, k
    do k = 1, n-1
    do i = k+1, n
      pivot = a(i,k) / a(k,k)
      do j = k+1, n+1
        a(i,j) = a(i,j) - pivot * a(k,j)
      end do
    end do
    end do
    x(n) = a(n,n+1) / a(n,n)
    do i = n-1, 1, -1
    x(i) = (a(i,n+1) - dot_product(a(i,i+1:n), x(i+1:n))) / a(i,i)
    end do
    write(*,*) "Solution:"
    do i = 1, n
    write(*,*) "x(", i, ") =", x(i)
    end do
    end program gauss_elimination

Давняя история Фортрана и его мощные возможности делают его идеальным выбором для научных вычислений. В этой статье были рассмотрены различные методы Фортрана, от базового ввода/вывода до сложных числовых вычислений. Используя возможности Фортрана, программисты могут эффективно разрабатывать приложения в таких областях, как физика, инженерное дело и вычислительная математика.