Adaptado do original: Cristian da Silva – Ideiasprogramadas.com.br

Fortran é uma linguagem de programação de alto nível, desenvolvida entre os anos 1954 e 1958 por uma equipe liderada pelo engenheiro John Backus na IBM. O Fortran permite traduções quase diretas de fórmulas, por meio de simbologia de variáveis e operadores algébricos.

A linguagem Fortran ocupa um lugar de destaque em algumas áreas, por exemplo aquelas voltadas para problemas que possam ser formulados matematicamente. Em particular podemos citar os problemas nos campos da física, da engenharia, da estatística e da matemática. A NASA, por exemplo, usa a linguagem Fortran para manejar satélites e desenvolver softwares, já as agências e centros de monitoramento do clima a utilizam para desenvolver modelos numéricos de previsão de tempo e clima.

Conceitos básicos da linguagem Fortran

Comentários em Fortran podem ser feitos com a letra C na primeira coluna (isso tem que ser adicionado no inicio da linha) ou o ponto de exclamação ! em qualquer coluna. É interessante notar que a linguagem é a insensível à caixa (Case Insensitive), ou seja a linguagem Fortran não faz qualquer definição entre letras minúsculas ou maiúsculas (MASCOTE="Pig" é o mesmo que mascote="Pig").

Outro conceito interessante e essencial é com o inicio de cada programa escrito com a linguagem, todo e qualquer ,inicio de programa Fortran deve ser iniciado com program nome_do_programa e devem ser terminados com o end.

Declarações de variáveis podem ser do tipo inteiro, real, alfanuméricos ou literais, sempre deve ser declarada antes de ser usada. As declarações de matrizes e vetores deve-se indicar suas dimensões logo após o nome da variável, Exemplo, matriz(4,3) incida que a matriz de 4 linhas e 3 colunas.

Tipos de variáveis suportadas pelo Fortran

Inteiras (INTEGER)

  • Reais real
  • Alfanuméricas character
  • Lógicas logical

Operadores

Atribuição

  • Recebe =

Operadores Literais

  • Concatenação //

Operadores Aritméticos

  • Soma +
  • Subtração -
  • Multiplicação *
  • Divisão /
  • Potenciação **

Operadores Relacionais

  • Menor que .LT. (less than)
  • Menor ou igual que .LE.(less than or qual to)’
  • Igual que .NE. (note qual to)
  • Diferente que .GT.(greater than)
  • Maior ou igual que .GE. (greater than or equal to)

Exemplo de utilização desses casos de operadores racionais:

A .NE. B (isso vai retornar verdadeiro .true.)
"NOME" .EQ. "Joao" (Isso vai retornar .false.)

Operadores Lógicos

  • Junção .AND.
  • Disjunção .OR.
  • Negação .NOT.

Prioridades

Quadro 1 – Prioridade dos operadores em Fortran

Operador Prioridade
** 1
* 2
/ 2
+ 3
- 3
.eq. 4
.ne. 4
.gt. 4
.ge. 4
.lt. 4
.not. 5
.and. 6
.or. 7

Funções trigonométricas básicas da biblioteca (built-in)

Quadro 2 – unções trigonométricas básicas da biblioteca em Fortran

Nome Definição Tipo do argumento Tipo da Função
sin(x) Seno(radianos) * \mathbb{R} ou \mathbb{C} \mathbb{R}
cos(x) Cosseno(radianos) * \mathbb{R} ou \mathbb{C} \mathbb{R}
tan(x) Tangente(radianos) \mathbb{R} \mathbb{R}
asin(x) Arcoseno(radianos) ** \mathbb{R} , \mid x \mid < 1 \mathbb{R}
acos(x) Arcocoseno(radianos) *** \mathbb{R} , \mid x \mid < 1 \mathbb{R}
atan(x) Arcotangente(radianos) ** \mathbb{R} \mathbb{R}
sinh(x) Seno Hiperbólico(radianos) \mathbb{R} \mathbb{R}
cosh(x) Cosseno Hiperbólico(radianos) \mathbb{R} \mathbb{R}
tanh(x) Tangente Hiperbólica(radianos) \mathbb{R} \mathbb{R}

* Se x for complexo, a parte real (\mathbb{R} ) é assumida como valor em radianos
** Retorna valores na faixa [-\pi/2, \pi/2]
*** Retorna valores na faixa [0, \pi]

Exemplos

Exemplos de programas básicos com a linguagem Fortran com todos os conceitos vistos acima.

Todos os exemplos citados abaixo podem ser testados no link Compile and Execute

Um Olá Mundo simples

program olamundo
print*, 'Olá Mundo!!!'
end

Exemplo com todas as funcionalidades:

program demonstracao
integer k, n, m
real a, b, c
character*2 estado
character*3 codigo
character*5 tudo
n = 1
m = 3
k = m+n
a = 2.5
b = 1.0
c = a+b
print*, 'Valor das variaveis k e c:'
print*, 'k = ',k,' c = ', c
print*
estado = 'SP'
codigo = 'OLA'
tudo = estado//codigo
print*
print*, 'Variavel tudo concatenada = ', tudo
stop
end

Exemplo da estrutura if:

program resultadonota
real nota
print*, 'Qual foi a nota da sua prova?'
read*, nota
if(nota .ge. 9.00) then
print*, 'Muito bem!!!'
else if (nota .ge. 7.00) then
print*, 'Você foi bem!'
else if (nota .ge. 5.00) then
print*, 'Você tem que melhorar um pouco!'
else
print*, 'Foi muito mal na prova!!!'
end if
stop
end

Comando do(faça). Exemplo de loop:

program loop
implicit none
integer m, n
parameter (m=3, n=2)
integer i, j
print*, ' i j '
do 10 i=1,m
print*, 'Primeiro do ', i
do 20 j=1,n
print*, 'Segundo do ',i,j
20 continue
10 continue
stop
end

Exemplo de do while:

program radiacao
implicit nome
real radse, fatseg, nivrad, radmim
parameter(radseg=0.466, fatseg=10.0)
integer dia
print*, 'entre com o nivel de radiacao do dia'
read*, nivrad
print*, 'n.dias radiacao'
radmin=raseg/fatseg
do while(nivrad .gt. radseg) then
print*, dia,nivrad,' inseguro'
else
print*, dia, nivrad, ' Seguro'
end if
dia=dia+3
nivrad=nivrad/2.0
end do
end

Exemplo de leitura (read):

program ler
integer a,b,c
print*, 'entre com os valores de a b c'
read(*,*) a,b,c
sum=a+b+c
stop
end

Exemplo de Escrita (write):

program escrever
 integer a,b,c
 print*,'entre com os valores de a b c´
 read(*,*)a,b,c
 sum=a+b+c
 write(*,*)a,b,c,sum
 stop
end

Referências

  1. CRISTO, Helder Pereira. Guia Básico de Programação em Linguagem Fortran 77 e 90: Programação em Linguagem Fortran. Belo Horizonte, 2003.
  2. ABOUT Fortran TUTORIAL. Disponivel em . Acesso em 03/05/2017.

IDPFPT-2666

Anúncios

Escrito por zrhans

Professor at UFSM

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s