Фортран, сокращение от «Перевод формул», — это язык программирования высокого уровня, первоначально разработанный IBM в 1950-х годах. Он завоевал популярность в научных и инженерных сообществах благодаря своей эффективности и мощным функциям численных расчетов. В этой статье мы рассмотрим различные методы Фортрана на примерах кода, демонстрируя его возможности для научных вычислений.
-
Базовый ввод и вывод:
Давайте начнем с простого фрагмента кода, который демонстрирует, как считывать вводимые пользователем данные и отображать вывод на экране:program basic_io implicit none character(20) :: name write(*,*) "Enter your name:" read(*,*) name write(*,*) "Hello, ", name end program basic_io -
Операции с массивами.
Фортран обеспечивает обширную поддержку манипуляций с массивами. Вот пример вычисления суммы элементов массива: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 -
Обработка файлов:
Фортран позволяет эффективно читать и записывать данные из файлов. Вот пример, который считывает числа из входного файла, вычисляет их среднее значение и записывает результат в выходной файл: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 -
Численные вычисления.
Фортран превосходно справляется с числовыми вычислениями. Вот пример решения системы линейных уравнений с использованием метода исключения Гаусса: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
Давняя история Фортрана и его мощные возможности делают его идеальным выбором для научных вычислений. В этой статье были рассмотрены различные методы Фортрана, от базового ввода/вывода до сложных числовых вычислений. Используя возможности Фортрана, программисты могут эффективно разрабатывать приложения в таких областях, как физика, инженерное дело и вычислительная математика.