Capítulo 2: A Linguagem Fortran: Conceitos Básicos

2.1 Introdução

[C] FORTRAN = FORmula TRANslation (em português: tradução de fórmulas).
 

[D] O Fortran é uma linguagem simples cujo vocabulário consiste de um conjunto de palavras, conhecidas como "palavras-chave" (para se ter uma idéia, no Fortran77 eram cerca de 450; atualmente o número é bem maior).
 

[D] Um "comando" Fortran é uma sentença escrita nesta linguagem. Um programa consiste numa seqüência de comandos, cada um escrito numa linha.
 

2.2. Definições da Linguagem

[D] Programa Principal é uma unidade que pode chamar outras unidades de programa, mas que não pode ser chamado por estas. O programa principal é quem recebe o controle da execução no início da fase de execução.
 

[D] Subprograma é uma unidade de programa que é chamada por outra unidade de programa. Pode ser de dois tipos: subrotina ou função. Usualmente um subprograma recebe parâmetros de entrada e  retorna parâmetros de saída.
 

[D] Função Intrínseca é uma função suprida pelo compilador e que realiza operações sobre números ou caracteres.
 

[D] Programa Executável é um programa já em linguagem de máquina que pode ser executado pelo computador. Consiste de um programa principal e subprogramas.
 

[D] Comando Executável é aquele que efetua cálculos, testes, providencia entrada ou saída de dados, altera o fluxo de execução ou atribui valores a variáveis.
 

[D] Comando Não-Executável é aquele que descreve as características de uma unidade de programa, dos dados ou de informações de edição.
 

[D] Unidade de Programa é uma seqüência de comandos terminando com um comando END.
 

[D] Arquivos de Dados são unidades de entrada e saída de dados, passíveis de serem lidos/escritos por um programa.
 

2.3. Itens sintáticos do Fortran

[D] Sintaxe é a parte da gramática que estuda a disposição das palavras na frase e a das frases no discurso.
 

[D] Constantes são valores ou números que ocorrem num programa.
 

[D] Nome simbólico é uma seqüência de uma ou mais letras ou dígitos, o primeiro dos quais deve ser uma letra.
 

[D] Variáveis são valores ou números ou conjuntos de caracteres que ocorrem num programa e que podem sofrer variações durante a execução do programa. Na realidade uma variável é o nome de uma localização da memória.
 

[D] Número de comando é um número de um a cinco dígitos, um dos quais deve ser diferente de zero e é usado para identificar um comando. Deve estar localizado no início da linha.
 

[D] Palavra chave é uma seqüência de letras que identificam exclusivamente comandos Fortran.
 

[D] Operador é um ente similar a um operador matemático.
 

[C] Valores são obtidos da memória quando eles são usados no lado direito do sinal de igual.
 

[C] Observe que o sinal de "=" não indica uma igualdade e sim uma atribuição.
 

[C] O Fortran permite que você defina diferentes tipos de variáveis. Usa-se variáveis inteiras para armazenar números inteiros, variáveis reais para números reais, variáveis complexas para números complexos, variáveis caracter para palavras e frases, etc.
 

[C] Você pode definir os tipos de variáveis no seu programa através de "comandos de definição de tipo".
 

[CF] Existem vários comandos Fortran para a definição de tipo de variável, entre os quais "CHARACTER", "INTEGER" e "REAL".
 

[C] Os cálculos podem ser feitos através de comandos de atribuição, escrevendo-se uma "expressão" no lado direito do sinal de igual.
 

[C] Símbolos de operações matemáticas (também conhecidos como "operadores aritméticos"): adição, "+"; subtração, "-"; multiplicação, "*"; divisão, "/"; potenciação, "**".
 

[C] Pode-se usar parênteses para agrupar termos em expressões Fortran, como é feito em álgebra.
 

2.4. Caracteres usados no Fortran

[D] O conjunto de caracteres Fortran é constituído de: letras (ou caracteres alfabéticos), dígitos (ou caracteres numéricos) e símbolos especiais como =, +, -, /, *, etc.
 

[C] É preciso tomar cuidado em relação aos símbolos especiais, pois estes podem variar de função dependendo do fabricante do compilador.
 

2.5. Uma visão geral do Fortran

[E] Exemplo de um programa para calcular a média das notas de uma prova de uma turma e determinar o número de notas acima e abaixo de 5,0. Vamos usar a equação abaixo para calcular a média da turma:

,

sendo que:     MT = média da turma,
             nota(i) = nota do aluno i,
             NT = número total de alunos.

O código do programa poderia ser:

    program media
! programa para calcular a media de uma turma
! programador: FCLavarda
    implicit none
    integer i,nt,ns5,ni5
    real mt,nota,soma
    soma=0.0
    ns5=0
    ni5=0
    print *,'Digite o numero total de alunos: '
    read *, nt
    do i=1,nt
        print *,'Digite a nota do aluno ',i
        read *,nota
        soma=soma+nota
        if(nota>=5.0) then
            ns5=ns5+1
        else
            ni5=ni5+1
        endif
    enddo
    mt=soma/nt
    print *,'*** Resultados ***'
    print *,'Media da turma: ',mt
    print *,'Notas superiores ou iguais a 5.0 = ',ns5
    print *,'Notas inferiores a 5.0 = ',ni5
    stop
    end
 

[C] Veja figura a seguir contendo o fluxograma para o programa media.f90.

[C] Uma "variável" Fortran é um nome para uma localização de memória. Variáveis no exemplo acima: nt, ns5, ni5, mt, nota, soma, i.
 

[C] O "valor" de uma variável é a informação armazenada na localização de memória que é representada pela variável.
 

[D] Um "comando de atribuição" é o tipo de comando que permite armazenar um valor em uma variável. Comandos de atribuição no exemplo acima:

    soma=0.0
    ns5=0
    ni5=0
    soma=soma+nota
    ns5=ns5+1
    ni5=ni5+1
    mt=soma/nt
 

[C] Quando você atribui um valor a uma variável, o valor anteriormente armazenado é destruído.
 

[C] Os comandos num programa Fortran são, normalmente, executados na ordem em que são escritos. Entretanto, pode-se alterar esta ordem de execução através dos "comandos de controle de fluxo".
 

[CF] Um comando de controle que representa uma decisão é a construção "IF-THEN-ELSE", que é sempre terminado por um comando ENDIF.
 

[C] Veja figura a seguir para uma tomada de decisão e desvio do fluxo de execução.

[E] Veja figura a seguir para o fluxograma para o algoritmo que decide aprovar ou reprovar um aluno, baseado na sua média final.

[C] Comandos Fortran para o fluxograma anterior:

    if(mf>=5.0)then
        situacao='aprovado'
    else
        situacao='reprovado'
    endif
 

[CF] Um comando de controle que representa um laço é o comando "DO", que é sempre terminado por um comando ENDDO.
 

[C] Em Fortran77, um comando DO pode terminar por um comando numerado.
 

[C] Veja a seguir um fluxograma de um laço de repetição.

[E] Veja a seguir o fluxograma para o algoritmo para somar todos os números naturais de 1 a 10.

[C] Comandos Fortran para o fluxograma anterior:

    soma=0
    do i=1,10,1
        soma=soma+i
    enddo
 

[E] Veja a seguir o fluxograma para o algoritmo para somar todos os números naturais pares de 1 a 10.

[C] Comandos Fortran para o fluxograma anterior:

    soma=0
    do i=2,10,2
        soma=soma+i
    enddo
 

[CF] Para dizer ao computador para parar a execução de seu programa, você usa o comando "STOP".
 

[CF] A última linha em qualquer unidade de programa Fortran é sempre o comando "END".
 

2.6. Codificação de programas em Fortran

2.6.1. Formato Livre (Fortran90 e posteriores)

[D] Cada comando é escrito numa linha.
 

[C] Cada linha de comando possui até 132 colunas. O editor de texto é capaz de trabalhar com um número maior de colunas (cuidado!).
 

[D] Continuação de comandos: muitas vezes um comando não cabe nas colunas disponíveis em uma linha (ou não se quer escrever tudo numa linha). Uma "linha de continuação" pode então ser definida simplesmente colocando-se um caractere & no final da linha e continua-se na de baixo. Pode-se fazer isto até 39 vezes seguidas, de modo que um comando pode ter até 40 linhas. Como sugestão de boa programação, as colunas [1,5] podem ficar em branco.
 

[C] Para a codificação de arquivos de dados de entrada e saída, estes seguem a estrutura que porventura seja definida no próprio programa que vai ler/escrever neste arquivo.
 

2.6.2. Formato Fixo (Fortran77 e anteriores)

[D] Cada comando é escrito numa linha e cada linha, por sua vez, é dividida em "campos", que são conjuntos de colunas.
 

[C] Cada linha de comando possui 80 colunas. O editor de texto é capaz de trabalhar com um número maior de colunas (cuidado!).
 

[D] Cada linha é dividida em 4 campos, que são formados pelos conjuntos de colunas [1,5], [6], [7,72] e [73,80].
 

[D] Campo de números de comando, colunas [1,5]: um número de comando (qualquer número inteiro e maior que zero, consistindo de 5 dígitos) pode ser escrito nas colunas de 1 a 5. Brancos e zeros à esquerda são ignorados.
 

[D] Campo de continuação de comandos, coluna [6]: muitas vezes um comando não cabe nas 66 colunas disponíveis em uma linha. Uma "linha de continuação" pode então ser definida simplesmente colocando-se um caractere qualquer diferente de branco e zero na coluna 6. Pode-se fazer isto até 19 vezes seguidas, de modo que um comando pode ter até 20 linhas. As colunas [1,5] devem ficar em branco.
 

[D] Campo de comandos, colunas [7,72]: somente nestas colunas pode-se escrever um comando Fortran.
 

[D] Campo de identificação, colunas [73,80]: este campo é usado somente para identificação do programa. Isto é uma herança muito velha, pouco usado hoje. Geralmente o compilador que ainda se importa com a identificação do programa, escreve os primeiros 8 caracteres do nome do programa nestas colunas.
 

[D] Linhas de comentário, coluna [1]: qualquer linha que contenha uma letra "c" ou um asterisco "*" na coluna 1 são ignoradas em Fortran. São usadas para inserir comentários dentro de um programa Fortran.
 

[C] Para a codificação de arquivos de dados de entrada e saída, estes seguem a estrutura que porventura seja definida no próprio programa que vai ler/escrever neste arquivo.