Fortran предоставляет пять внутренних типов данных, однако вы также можете получить свои собственные типы данных. Пять внутренних типов —
- Целочисленный тип
- Реальный тип
- Сложный тип
- Логический тип
- Тип персонажа
Целочисленный тип
Целочисленные типы могут содержать только целочисленные значения. В следующем примере извлекается наибольшее значение, которое может содержаться в обычном четырехбайтовом целом числе:
program testingInt implicit none integer :: largeval print *, huge(largeval) end program testingInt
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
2147483647
Обратите внимание, что функция large () выдает наибольшее число, которое может содержаться конкретным целочисленным типом данных. Вы также можете указать количество байтов, используя спецификатор вида . Следующий пример демонстрирует это —
program testingInt implicit none !two byte integer integer(kind = 2) :: shortval !four byte integer integer(kind = 4) :: longval !eight byte integer integer(kind = 8) :: verylongval !sixteen byte integer integer(kind = 16) :: veryverylongval !default integer integer :: defval print *, huge(shortval) print *, huge(longval) print *, huge(verylongval) print *, huge(veryverylongval) print *, huge(defval) end program testingInt
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
32767 2147483647 9223372036854775807 170141183460469231731687303715884105727 2147483647
Реальный тип
Он хранит числа с плавающей запятой, такие как 2.0, 3.1415, -100.876 и т. Д.
Традиционно есть два различных реальных типа, реальный тип по умолчанию и тип двойной точности .
Однако Fortran 90/95 обеспечивает больший контроль над точностью реальных и целочисленных типов данных с помощью спецификатора вида , который мы изучим в главе о числах.
В следующем примере показано использование реального типа данных —
program division implicit none ! Define real variables real :: p, q, realRes ! Define integer variables integer :: i, j, intRes ! Assigning values p = 2.0 q = 3.0 i = 2 j = 3 ! floating point division realRes = p/q intRes = i/j print *, realRes print *, intRes end program division
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
0.666666687 0
Комплексный тип
Это используется для хранения комплексных чисел. Комплексное число состоит из двух частей: действительной части и мнимой части. Два последовательных цифровых запоминающих устройства хранят эти две части.
Например, комплексное число (3,0, -5,0) равно 3,0 — 5,0i
Мы обсудим сложные типы более подробно в главе Numbers.
Логический тип
Есть только два логических значения: .true. и .false.
Тип персонажа
Тип символа хранит символы и строки. Длина строки может быть указана спецификатором len. Если длина не указана, это 1.
Например,
character (len = 40) :: name name = “Zara Ali”
Выражение name (1: 4) даст подстроку «Zara».
Неявная печать
В старых версиях Fortran допускалась функция, называемая неявной типизацией, т. Е. Вам не нужно объявлять переменные перед использованием. Если переменная не объявлена, то первая буква ее имени будет определять ее тип.
Имена переменных, начинающиеся с i, j, k, l, m или n, считаются целочисленными, а другие — действительными переменными. Однако вы должны объявить все переменные, так как это хорошая практика программирования. Для этого вы начинаете свою программу с заявления —
implicit none
Это утверждение отключает неявную типизацию.