


































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento explica as funções em fortran, incluindo sua definição, sintaxe e uso. Funções são trechos de código executáveis invocáveis a partir de um nome, que podem receber parâmetros, executar alguma computação e retornar um valor. O documento também aborda detalhes importantes, como a especificação, execução e subprogramas de funções, além de exemplos de uso e exercícios para prática.
Tipologia: Notas de aula
1 / 42
Esta página não é visível na pré-visualização
Não perca as partes importantes!



































● Trechos de código executáveis invocáveis a partir de um nome
● (^) Uma função em fortran é um trecho de código que recebe alguns parâmetros, executa alguma computação e retorna algum valor ● (^) Logo, em algum ponto do código deve existir uma expressão do tipo nomeFuncao = expressão ● (^) Esta instrução faz com que o resultado da expressão fique armazenado em uma variável automática onde oresultado da função deve ser armazenado
● Quando a execução do programa atingir a diretiva end function o valor armazenado na variável automatica nomeFuncao é retornado como resposta da chamada da função ● Qualquer instrução ou comando usado em um programa pode ser usado em uma função
● INTEGER, INTENT(IN) :: a, b, c ???? ● Esta linha especifica os dados formais dos parâmetros ● a,b,c são inteiros, e não podem ter seus valores alterados
REAL FUNCTION Average(x, y, z) IMPLICIT NONE REAL, INTENT(IN) :: x, y, z Average = (x + y + z) / 3. END FUNCTION Average
● A função do slide anterior usa três números reais como argumento e retorna a média destes elementos ● Para fazer o uso (invocar) da função basta usar o nome da função passsando os argumentos pedidos. Ex Average(1.0,2.0,3.0)
● O número de parâmetros (argumentos) especificado na função e usados na invocação deve ser o mesmo ● Os tipos dos parâmetros usados na invocação também devem ser os mesmos tipos especificados na função
● Programas podem conter funções ● Funções de programa podem conter funções internas ● Funções internas não podem conter funções internas
● Faça uma função que receba um número como parâmetro e retorne um valor lógico indicando se este número é positivo ou não
● Faça uma função para ler um número positivo que o usuário irá digitar. A função deve exigir que o usuário digite um número até que um número positivo seja digitado
REAL FUNCTION Teste(a, b) IMPLICIT NONE INTEGER, INTENT(IN) :: a, b Teste = aa + bb Teste = SQRT(aa bb) END FUNCTION Teste
Tipo Function nome(x, L, U) IMPLICIT NONE INTEGER, INTENT(IN) :: L INTEGER, INTENT(IN) :: U INTEGER, DIMENSION(L:U), INTENT(IN) :: x .......... END Function nome
PROGRAM Test IMPLICIT NONE INTEGER, PARAMETER :: MAX_S = 1000 REAL, DIMENSION(1:MAX_S) :: D INTEGER :: tamReal,i READ(,) tamReal READ(,) (D(i), i=1, tamReal) WRITE(,) "Soma = ", soma(D, 5, tamReal) CONTAINS REAL FUNCTION soma(x,i,f) IMPLICIT NONE INTEGER, INTENT(IN) :: i,f REAL, DIMENSION(:), INTENT(IN) :: x INTEGER ::c soma = 0. DO c = i, f soma = soma + x(c) END DO END FUNCTION soma END PROGRAM Test