Fortran - Tipi di dati

Fortran fornisce cinque tipi di dati intrinseci, tuttavia è possibile derivare anche i propri tipi di dati. I cinque tipi intrinseci sono:

  • Tipo intero
  • Tipo reale
  • Tipo complesso
  • Tipo logico
  • Tipo di carattere

Tipo intero

I tipi interi possono contenere solo valori interi. L'esempio seguente estrae il valore più grande che può essere contenuto in un normale numero intero di quattro byte -

program testingInt
implicit none

   integer :: largeval
   print *, huge(largeval)
   
end program testingInt

Quando compili ed esegui il programma sopra, produce il seguente risultato:

2147483647

Nota che il huge()la funzione fornisce il numero più grande che può essere contenuto dal tipo di dati intero specifico. È inoltre possibile specificare il numero di byte utilizzando ilkindspecificatore. Il seguente esempio lo dimostra:

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

Quando compili ed esegui il programma sopra, produce il seguente risultato:

32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647

Tipo reale

Memorizza i numeri in virgola mobile, come 2.0, 3.1415, -100.876, ecc.

Tradizionalmente ci sono due diversi tipi reali, l'impostazione predefinita real tipo e double precision genere.

Tuttavia, Fortran 90/95 fornisce un maggiore controllo sulla precisione dei tipi di dati reali e interi tramite kind specificatore, che studieremo nel capitolo sui numeri.

L'esempio seguente mostra l'uso del tipo di dati reale:

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

Quando compili ed esegui il programma sopra, produce il seguente risultato:

0.666666687    
0

Tipo complesso

Viene utilizzato per memorizzare numeri complessi. Un numero complesso ha due parti, la parte reale e la parte immaginaria. Due unità di memorizzazione numeriche consecutive memorizzano queste due parti.

Ad esempio, il numero complesso (3.0, -5.0) è uguale a 3.0 - 5.0i

Discuteremo i tipi complessi in modo più dettagliato, nel capitolo Numeri.

Tipo logico

Ci sono solo due valori logici: .true. e .false.

Tipo di carattere

Il tipo di carattere memorizza caratteri e stringhe. La lunghezza della stringa può essere specificata dallo specificatore len. Se non viene specificata alcuna lunghezza, è 1.

For example,

character (len = 40) :: name  
name = “Zara Ali”

L'espressione, name(1:4) darebbe la sottostringa "Zara".

Digitazione implicita

Le versioni precedenti di Fortran consentivano una funzionalità chiamata tipizzazione implicita, ovvero non è necessario dichiarare le variabili prima dell'uso. Se una variabile non viene dichiarata, la prima lettera del suo nome ne determinerà il tipo.

I nomi delle variabili che iniziano con i, j, k, l, m o n, sono considerati per variabili intere e gli altri sono variabili reali. Tuttavia, è necessario dichiarare tutte le variabili poiché è una buona pratica di programmazione. Per questo inizi il tuo programma con l'affermazione -

implicit none

Questa istruzione disattiva la digitazione implicita.