Muitas pessoas percebem o Fortran como uma linguagem de programação arcaica e "morta". No entanto, a maior parte do código científico e de engenharia é escrito em Fortran. Como tal, a programação em F77 e F90 continua sendo uma habilidade necessária para a maioria dos programadores técnicos. Além disso, os padrões Fortran mais recentes (2003, 2008, 2015) permitem que o programador escreva um código altamente eficiente com o mínimo de esforço, enquanto utiliza todos os recursos da linguagem moderna, como OOP (programação orientada a objetos). FORTRAN é um acrônimo para "FORmula TRANslation" e é mais adequado para aplicativos matemáticos e numéricos, em vez de aplicativos gráficos ou de banco de dados. A maioria dos códigos fortran obtém a entrada de texto de um arquivo ou linha de comando, em vez de um menu ou interface GUI.
Passos
Parte 1 de 4: Escrevendo e compilando um programa simples
Etapa 1. Escreva um programa "Hello World"
Normalmente, este é o primeiro programa a escrever em qualquer idioma e apenas imprime "Olá, mundo" na tela. Escreva o seguinte código em qualquer editor de texto e salve-o como helloworld.f. Preste atenção que deve haver exatamente 6 espaços na frente de cada linha.
programa helloworld nenhum caractere implícito * 13 hello_string hello_string = "Olá, mundo!" escrever (*, *) hello_string terminar programa helloworld
Gorjeta: Os espaços são necessários apenas em versões do Fortran até FORTRAN 77. Se estiver usando uma versão mais recente, você pode eliminar os espaços. Compile os programas da versão mais recente com f95, não f77; use.f95 como extensão de arquivo em vez de apenas.f.
Etapa 2. Compile o programa
Para fazer isso, digite f77 helloworld.f na linha de comando. Se ocorrer um erro, provavelmente você ainda não instalou um compilador Fortran como, por exemplo, o gfortran.
Etapa 3. Execute seu programa
O compilador produziu um arquivo chamado a.out. Execute este arquivo digitando./a.out.
Etapa 4. Entenda o que você acabou de escrever
-
programa helloworld
indica o início do programa "helloworld". De forma similar,
fim do programa helloworld
- indica seu fim.
-
Por padrão, se você não declarar um tipo de variável, o Fortran trata uma variável com um nome que começa com uma letra de i a n como um número inteiro e todas as outras como um número real. Recomenda-se usar
implícito nenhum
- se você não precisa desse comportamento.
-
personagem * 13 hello_string
- declara uma matriz de caracteres chamada hello_string.
-
hello_string = "Olá, mundo!"
- atribui o valor "Hello, world!" para a matriz declarada. Ao contrário de outras linguagens como C, isso não pode ser feito na mesma linha da declaração do array.
-
escrever (*, *) hello_string
- imprime o valor de hello_string na saída padrão. O primeiro * significa gravar na saída padrão, ao contrário de algum arquivo. O segundo * significa não usar nenhuma formatação especial.
Etapa 5. Adicione um comentário
Isso não é necessário em um programa tão simples, mas será útil quando você escrever algo mais complexo, portanto, você deve saber como adicioná-los. Existem duas maneiras de adicionar um comentário.
- Para adicionar um comentário que tem uma linha inteira própria, escreva um c diretamente em uma nova linha, sem os 6 espaços. Depois disso, escreva seu comentário. Você deve deixar um espaço entre o ce seu comentário para melhor legibilidade, mas isso não é obrigatório. Observe que você deve usar um! em vez de um c no Fortran 95 e mais recente.
- Para adicionar um comentário na mesma linha do código, adicione um! onde você deseja que seu comentário comece. Novamente, um espaço não é necessário, mas melhora a legibilidade.
Parte 2 de 4: Usando Input e If-Constructions
Etapa 1. Compreenda os diferentes tipos de dados
- INTEGER é usado para números inteiros, como 1, 3 ou -3.
- REAL também pode conter um número que não seja inteiro, como 2,5.
- COMPLEX é usado para armazenar números complexos. O primeiro número é a parte real e o segundo a parte imaginária.
- CHARACTER é usado para caracteres, como letras ou pontuação.
- LÓGICO pode ser verdadeiro. ou.false.. É como o tipo booleano em outras linguagens de programação.
Etapa 2. Obtenha a entrada do usuário
No programa "Hello world" que você escreveu antes, obter a entrada do usuário seria inútil. Portanto, abra um novo arquivo e nomeie-o compnum.f. Quando você terminar, ele dirá ao usuário se o número inserido é positivo, negativo ou igual a zero.
- Insira as linhas programa compnum e finalize programa compnum.
- Em seguida, declare uma variável do tipo REAL. Certifique-se de que sua declaração está entre o início e o fim do programa.
- Explique ao usuário o que ele deve fazer. Escreva algum texto com a função write.
- Leia a entrada do usuário na variável que você declarou com a função read.
programa compnum real r write (*, *) "Insira um número real:" read (*, *) r end program
Etapa 3. Processe a entrada do usuário com uma construção if
Coloque-o entre o
ler (*, *) r
e a
fim do programa
- A comparação é feita com.gt. (maior que),.lt. (menor que) e.eq. (igual) em Fortran.
- Fortran suporta if, else if e else
- Uma construção Fortran if sempre termina com end if.
if (r.gt. 0) então escreva (*, *) "Esse número é positivo." else if (r.lt. 0) then write (*, *) "Esse número é negativo." senão escreva (*, *) "Esse número é 0". fim se
Gorjeta: Você não precisa indentar o código dentro de construções if com mais espaços, mas melhora a legibilidade.
Etapa 4. Compile e execute seu programa
Insira alguns números para testá-lo. Se você inserir uma letra, ocorrerá um erro, mas tudo bem porque o programa não verifica se a entrada é uma letra, um número ou outra coisa.
Parte 3 de 4: Usando Loops e Matrizes
Etapa 1. Abra um novo arquivo
Uma vez que este conceito é diferente, você terá que escrever um novo programa novamente. Nomeie o arquivo addmany.f. Insira o programa correspondente e as instruções finais do programa, bem como um nenhum implícito. Quando você terminar, este programa lerá 10 números e imprimirá sua soma.
Etapa 2. Declare uma matriz de comprimento 10
É aqui que você armazenará os números. Como você provavelmente deseja uma soma de números reais, deve declarar a matriz como real. Você declara tal matriz com
números reais (50)
(números é o nome da matriz, não uma expressão).
Etapa 3. Declare algumas variáveis
Declare numSum como um número real. Você o usará para armazenar a soma posteriormente, mas como sum já é obtida por uma expressão Fortran, você deve usar um nome como numSum. Defina-o como 0. Declare i como um inteiro e não atribua nenhum valor ainda. Isso será feito no loop do.
Etapa 4. Crie um do-loop
O equivalente em outras linguagens de programação seria um loop for.
- Um loop do sempre começa com do.
- Na mesma linha do do, separado dele por um espaço, está o rótulo para o qual o programa irá quando terminar. Por enquanto, apenas escreva 1, você definirá o rótulo mais tarde.
-
Depois disso, novamente separado apenas por um espaço, digite
i = 1, 10
. Isso fará com que a variável i, que você declarou antes do loop, vá de 1 a 10 nas etapas de 1. As etapas não são mencionadas nesta expressão, então Fortran usa o valor padrão de 1. Você também poderia ter escrito
i = 1, 10, 1
-
Coloque algum código dentro do loop (indente com espaços para melhor legibilidade). Para este programa, você deve aumentar a variável numSum com o i-ésimo elemento dos números da matriz. Isso é feito com a expressão
numSum = numSum + numero (i)
- Termine o loop com uma instrução continue com um rótulo. Digite apenas 4 espaços. Depois disso, digite 1. Esse é o rótulo para o qual você disse ao do-loop para ir depois de terminar. Em seguida, digite um espaço e continue. A expressão continue não faz nada, mas fornece um bom local para colocar um rótulo, além de mostrar que o loop do terminou.
Seu loop do agora deve ser semelhante a este:
faça 1 i = 1, 10 numSum = numSum + números (i) 1 continue
Gorjeta: No Fortran 95 e mais recente, você não precisa usar rótulos. Apenas não coloque um na instrução do e termine o loop com "end do" em vez de "continue".
Etapa 5. Imprima numSum
Além disso, faria sentido fornecer algum contexto, por exemplo "A soma dos seus números é:". Use a função de gravação para ambos. Todo o seu código agora deve ter a seguinte aparência:
programa addmany implícito nenhum número real (10) real numSum inteiro i numSum = 0 write (*, *) "Insira 10 números:" leia (*, *) números faça 1 i = 1, 10 numSum = numSum + números (i) 1 continue write (*, *) "A soma deles é:" write (*, *) numSum end program addmany
Etapa 6. Compile e execute seu código
Não se esqueça de testá-lo. Você pode pressionar ↵ Enter após cada número inserido ou inserir vários números na mesma linha e separá-los com um espaço.
Parte 4 de 4: Compreendendo os conceitos avançados
Etapa 1. Tenha uma boa ideia do que seu programa fará
Pense sobre que tipo de dados são necessários como entrada, como estruturar a saída e inclua alguma saída intermediária para que você possa monitorar o progresso do seu cálculo. Isso será muito útil se você souber que seu cálculo será executado por um longo tempo ou envolve várias etapas complicadas.
Etapa 2. Encontre uma boa referência de Fortran
Fortran tem muito mais funções do que as explicadas neste artigo e podem ser úteis para o programa que você deseja escrever. Uma referência lista todas as funções que uma linguagem de programação possui. Este é um para Fortran 77 e este é um para Fortran 90/95.
Etapa 3. Aprenda sobre as sub-rotinas e funções
Etapa 4. Aprenda a ler e escrever de / para arquivos
Aprenda também como formatar sua entrada / saída.
Etapa 5. Aprenda sobre os novos recursos do Fortran 90/95 e mais recentes
Pule esta etapa se você sabe que só escreverá / manterá o código Fortran 77.
Lembre-se de que o Fortran 90 introduziu o código-fonte "Forma Livre", permitindo que o código seja escrito sem os espaços e sem o limite de 72 caracteres
Etapa 6. Leia ou procure alguns livros sobre Programação Científica
Por exemplo, o livro "Receitas Numéricas em Fortran" é um bom texto sobre algoritmos de programação científica e uma boa introdução sobre como montar códigos. As edições mais recentes incluem capítulos sobre como programar em um ambiente de linguagem mista e programação paralela. Outro exemplo é "Modern Fortran in Practice", escrito por Arjen Markus. O livro dá uma ideia de como escrever programas Fortran no estilo do século XXI de acordo com os padrões Fortran mais recentes.
Etapa 7. Aprenda a compilar um programa distribuído por vários arquivos
Vamos supor que seu programa Fortran esteja espalhado pelos arquivos main.f e morestuff.f, e que você deseja que o binário resultante seja nomeado allstuff. Em seguida, você terá que escrever os seguintes comandos na linha de comando:
f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o allstuff main.o morestuff.f
Em seguida, execute o arquivo digitando./allstuff.
Gorjeta: Isso funciona da mesma maneira com as versões mais recentes do Fortran. Basta substituir.f pela extensão correta e f77 pela versão correta do compilador.
Etapa 8. Use a otimização que seu compilador fornece
A maioria dos compiladores inclui algoritmos de otimização que melhoram a eficiência do seu código. Eles são normalmente ativados incluindo um sinalizador -O, -O2 ou -O3 durante a compilação (novamente dependendo da sua versão do fortran).
-
Geralmente, o nível mais baixo -O ou -O2 é o melhor. Esteja ciente de que usar a opção de otimização mais agressiva pode introduzir erros em códigos complexos e pode até mesmo desacelerar as coisas! Teste seu código.
Pontas
- Comece com pequenos programas. Quando você estiver fazendo seu próprio código, tente identificar a parte mais essencial do problema - é a entrada de dados ou a chamada das funções, a estrutura do loop (esses são alguns exemplos muito elementares) e comece a partir daí. Em seguida, construa sobre isso em pequenos incrementos.
- Fortran não faz distinção entre maiúsculas e minúsculas. Você poderia, por exemplo, declarar uma variável "real Num" e escrever "num = 1" na próxima linha para atribuir um valor a ela. Mas esse é um estilo ruim, então evite. Mais importante, o Fortran também não se preocupa com o caso de funções e instruções. É bastante comum escrever funções e instruções em MAIÚSCULAS e variáveis em minúsculas.
- EMACS é um bom editor de texto gratuito para usar em vez do bloco de notas.
- Você pode achar mais fácil usar um IDE online (ambiente de desenvolvimento integrado) no início. Uma boa opção é Coding Ground. Você encontrará uma infinidade de linguagens de programação lá, incluindo Fortran-95. Outra opção é Ideone.