As funções são chamadas no Fortran de function, tem como utilidade, criarmos funções específicas e a utilização é semelhante a das funções intrínsecas. No Fortran temos dois tipos de funções que são as funções intrínsecas (tabela 3.2) e as funções definidas pelo programador (que é o assunto deste tópico). Quando uma função é chamada ela nos devolve um valor ou um array de valores.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! PROGRAMA QUE CALCULA O VALOR DE UM EQUACAO POLINOMIAL ! DE GRAU 2 (fx = a*x**2 + b*x + c) ATRAVEZ DE UMA FUNCAO. ! EXEMPLO DE UMA "FUNCTION" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program pl2 implicit none ! real(kind=8) :: a, b, c, x, fx ! write(*,*)'Digite os coeficientes da equacao polinomial de grau 2' read(*,*) a, b, c write(*,*)'Entre com o valor de x' read(*,*) x ! ! AS VARIAVEIS DO ARGUMENTO DE fx PODEM SER DIFERENTES DAQUELAS DO ! ARGUMENTO DA FUNCTION. O VALOR DA VARIAVEL DEPENDE DA POSICAO QUE ! ESTA OCUPA ASSIM: ! a RECEBE a1, b RECEBE b1, c RECEBE c1 E x RECEBE x1. ! write(*,*)'O valor de fx para x=',x,'e ',fx(a,b,c,x) ! stop end program pl2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! - FUNCTION QUE CALCULA O VALOR DE FX ! - ATENCAO: "FX" NAO ENTRA NA DECLARACAO DE VARIAVEIS DA FUNCAO ! POIS SERA O OUTPUT DA FUNCAO ! - INTENT(IN): SIGNIFICA QUE AS VARIAVEIS REAIS SERAO INFORMADAS ! ATRAVAES DO PROGRAMA PRINCIPAL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! real(kind=8) function fx(a1,b1,c1,x1) implicit none ! real(kind=8), intent(in) :: a1, b1, c1, x1 ! fx = a1*(x1*x1) + b1*x1 + c1 ! end function !
Atividade: Construa um programa que tenha as seguintes características:
Dica: o programa irá realizar o cálculo de no intervalo entre e para um passo de . Calcule o número de intervalos entre e e faça o laço variar entre 1 e o número de intervalos. Assim não será necessário utilizar o comando if e o programa ficará mais rápido.