programação em fortran - itavares/ensino/cfac/downloads... · @2001 - joão tavares cfac:...
TRANSCRIPT
Programação emFORTRAN - I
João Manuel R. S. Tavares
@2001 - João Tavares CFAC: Programação em FORTRAN - I 2
BibliografiaFORTRAN ANSI 77 e WATFIV-SJorge Filho, Caetano LoiolaEditora Campus
Linguagem de Programação Estruturada FORTRAN 77Maximilian Emil HehlMcGraw-Hill
FORTRAN77 for Engineers and ScientistsLarry Nyhoff, Leestma SanfordPrentice Hall, 1996
@2001 - João Tavares CFAC: Programação em FORTRAN - I 3
Linguagens de Programação
Permitem a implementação de programas próprios e à medida.Sem necessitar do conhecimento do funcionamento dos computadores.Código máquina versus Linguagens de alto nível.Fortran: FORmula TRANslation.Outras Linguagens:
• Basic;• C/C++/C#;• Pascal.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 4
Ciclo de Programação1) Análise da tarefa.2) Planificação do programa: realizar uma
abordagem estruturada, utilizar diagramas de fluxo e/ou pseudocódigo.
3) Edição do código fonte.4) Compilação e “linkagem” do programa.5) Execução e depuração (“debug”) do
programa.6) Se necessário edição e recompilação.7) Teste exaustivo do programa.8) Documentação.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 5
Compilação em MS DOS1) Editar o(s) ficheiro(s) fonte num qualquer
editor de texto (sem caracteres especiais de formatação) e grava-lo(s) com nome formado no máximo por 8 caracteres e com extensão .FOR.
2) Compilar o(s) programa(s) fonte: F7 nome(i)e corrigir os eventuais erros sintácticos.
3) Juntar todos os ficheiros que constituem o programa: FL nome1, nome2, ...
4) Executar o programa: nome1.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 6
Estrutura de um programa simples em FORTRAN
Nome do programa.Declaração de variáveis e estruturas.Atribuição de valores a variáveis.Processamento dos dados.Escrita dos resultados.Fim do programa.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 7
Fluxo de um programa
Sequência linear.Um comando por linha.Posição na linha: Muito importante!Comentários são ignorados.Selecção: Instruções condicionais.Repetição: Instruções de ciclo.Termina sempre com uma declaração END.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 8
Posição na linha
O esquema de um programa em FORTRAN data dos cartões perfurados de 80 colunas, que eram utilizados para a entrada de dados.
1 2-5 6 7-72 73-80Total=x_valor+y_valor
& +z_valorC Linha de comentário.9 9999 FORMAT('Resposta =',I4)
Nº da coluna
InstruçãoContinuaçãoComentárioEtiqueta
@2001 - João Tavares CFAC: Programação em FORTRAN - I 9
Exemplo de formulário para codificação em FORTRAN
Continuação
Etiqueta
Instruções
@2001 - João Tavares CFAC: Programação em FORTRAN - I 10
Declaração de variáveisNomes de variáveis:
Devem ter no mínimo o comprimento de um caracter alfabético e o máximo de 31 caracteres alfanuméricos.Deve começar com um caracter alfabético. (Insensível a maiúsculas/minúsculas.)Caracteres alfanuméricos são: a-z, 0-9 e o “underscore” ( _ ).Variáveis implícitas: Primeira letra de [I, N] implica que as variáveis são do tipo inteiro!
@2001 - João Tavares CFAC: Programação em FORTRAN - I 11
Exemplos
Nomes válidos:• X• THEDAY• Min_cur• Time28
Nomes inválidos:• X*Z• THE TIME• 7YEARS• _no_way$
@2001 - João Tavares CFAC: Programação em FORTRAN - I 12
Tipos básicos de dadosREAL (real) x = 5.0INTEGER (inteiro) i = 20COMPLEX (complexo) z = (1.4,3.2)LOGICAL (lógico) test = .TRUE.CHARACTER (caracter) char = 'Hello'
Tipos de dados mais avançados podem ser construídos a partir destes tipos básicos.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 13
Declarações
<tipo> <variável> [,< variável(eis)>]
Exemplos:
REAL xREAL radius, volumeINTEGER loop, tempCHARACTER string*10, name*30
([ ] indicamopcional)
(Com comprimento máximo de 10 caracteres.)
@2001 - João Tavares CFAC: Programação em FORTRAN - I 14
ParâmetrosParâmetros são constantes, os seus valores, uma vez definidos, não podem ser alterados.
Exemplos:
REAL g, piINTEGER days
PARAMETER (g = 9.81, pi = 3.142)PARAMETER (days = 365)
@2001 - João Tavares CFAC: Programação em FORTRAN - I 15
Atribuições<variável> = <valor> | <variável> | <expressão>
Exemplos:
radius = 2.5y = ztest = value+loop-tempvolume = (4.0*pi*radius**3.0)/3.0
(| significa “ou”)
@2001 - João Tavares CFAC: Programação em FORTRAN - I 16
Procedências
Regra de procedência nas expressões (de menor para maior):
+, - (adição, subtracção)*, / (multiplicação, divisão)** (potenciação)
No caso de igualdade, a prioridade é da expressão mais àesquerda; a ordem de procedência pode ser alterada pela utilização de ( ).
@2001 - João Tavares CFAC: Programação em FORTRAN - I 17
Estruturas de controlo
Construtores básicos de blocos de programa.Controlam o fluxo do programa.
Existem 3 tipos diferentes:
de sequência linear (salto, retorno);de selecção;de iteração ou ciclo.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 18
Outras Instruções
PROGRAM [ nome do programa ]END
C ou * Um comentário (na 1ª col.).
PRINT *, 'Hello'PRINT *, 'Value of X = ', x(* - Saída em formato livre.)
(Identificação do programa.)
(Fim do programa.)
(Escrita)
(Comentário)
@2001 - João Tavares CFAC: Programação em FORTRAN - I 19
Entrada de dados
Os programas são inúteis sem dados!Utilização da instrução READ para a entrada de dados.Deve-se realizar a identificação dos valores de entrada!
Exemplo:
PRINT *, 'Enter values for x & y :'READ *, x, y
@2001 - João Tavares CFAC: Programação em FORTRAN - I 20
Entrada de caracteres
A instrução READ “normal” não pode ser utilizada para a entrada de variáveis do tipo caracter. Para tal deve-se proceder do seguinte modo:
PRINT *, 'Continue (y/n) : 'READ '(A1)', yes_or_no
'(A<n>)' – <n> é o número de caracteres.
(* significa formato livre.)
@2001 - João Tavares CFAC: Programação em FORTRAN - I 21
Boa prática de programação
Comentar o programa!Palavras chave do FORTRAN em maiúsculas.Variáveis em minúsculas.Utilizar nomes sugestivos para as varáveis.Utilização de espaços e de indentação(“tabs”) no código para facilitar a sua leitura.
@2001 - João Tavares CFAC: Programação em FORTRAN - I 22
Esquema geral de um programa
PROGRAM [ nome do programa ][ comentários ][ instruções de declaração ][ instruções executáveis ]STOP
END
(Pode não existir)