Como programar em Fortran (com fotos)

Índice:

Como programar em Fortran (com fotos)
Como programar em Fortran (com fotos)

Vídeo: Como programar em Fortran (com fotos)

Vídeo: Como programar em Fortran (com fotos)
Vídeo: Como proteger Notas do Evernote 🔐 2024, Abril
Anonim

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

Fortran hello world program write corrected
Fortran hello world program write corrected

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.

Fortran hello world compile run
Fortran hello world compile run

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.
Fortran comments
Fortran comments

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

Fortran data types
Fortran data types

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

Fortran if construction
Fortran if construction

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.

Programa de verificação de número Fortran test
Programa de verificação de número Fortran test

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".

Fortran do loop code
Fortran do loop code

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

Fortran add numbers code test
Fortran add numbers code test

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

Programa em Fortran Etapa 13
Programa em Fortran Etapa 13

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.

Site de referência do Fortran screenshot
Site de referência do Fortran screenshot

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.

Fortran subroutines example
Fortran subroutines example

Etapa 3. Aprenda sobre as sub-rotinas e funções

Fortran format string example
Fortran format string example

Etapa 4. Aprenda a ler e escrever de / para arquivos

Aprenda também como formatar sua entrada / saída.

Exemplo moderno de fortran screenshot
Exemplo moderno de fortran screenshot

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

Fortran book online screenshot
Fortran book online screenshot

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.

Fortran compila o programa em vários arquivos
Fortran compila o programa em vários arquivos

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.

Recomendado: