Programação em FORTRAN - I João Manuel R. S. Tavares
Bibliografia FORTRAN ANSI 77 e WATFIV-S Jorge Filho, Caetano Loiola Editora Campus Linguagem de Programação Estruturada FORTRAN 77 Maximilian Emil Hehl McGraw-Hill FORTRAN77 for Engineers and Scientists Larry Nyhoff, Leestma Sanford Prentice Hall, 1996 @2001 - João Tavares CFAC: Programação em FORTRAN - I 2
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 3
Ciclo de Programação 1) 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 4
Compilação em MS DOS 1) 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 5
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 6
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 7
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. Nº da coluna Instrução Continuação Comentário Etiqueta 1 2-5 6 7-72 73-80 Total=x_valor+y_valor & +z_valor C Linha de comentário. 9 9999 FORMAT('Resposta =',I4) @2001 - João Tavares CFAC: Programação em FORTRAN - I 8
Exemplo de formulário para codificação em FORTRAN Continuação Etiqueta Instruções @2001 - João Tavares CFAC: Programação em FORTRAN - I 9
Declaração de variáveis Nomes 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 10
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 11
Tipos básicos de dados REAL (real) x = 5.0 INTEGER (inteiro) i = 20 COMPLEX (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 12
Declarações <tipo> <variável> [,< variável(eis)>] Exemplos: ([ ] indicam opcional) (Com comprimento máximo de 10 caracteres.) REAL x REAL radius, volume INTEGER loop, temp CHARACTER string*10, name*30 @2001 - João Tavares CFAC: Programação em FORTRAN - I 13
Parâmetros Parâmetros são constantes, os seus valores, uma vez definidos, não podem ser alterados. Exemplos: REAL g, pi INTEGER days PARAMETER (g = 9.81, pi = 3.142) PARAMETER (days = 365) @2001 - João Tavares CFAC: Programação em FORTRAN - I 14
Atribuições <variável> = <valor> <variável> <expressão> Exemplos: ( significa ou ) radius = 2.5 y = z test = value+loop-temp volume = (4.0*pi*radius**3.0)/3.0 @2001 - João Tavares CFAC: Programação em FORTRAN - I 15
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 16
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 17
Outras Instruções (Identificação do programa.) (Fim do programa.) (Comentário) (Escrita) 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.) @2001 - João Tavares CFAC: Programação em FORTRAN - I 18
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 19
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: (* significa formato livre.) PRINT *, 'Continue (y/n) : ' READ '(A1)', yes_or_no '(A<n>)' <n> é o número de caracteres. @2001 - João Tavares CFAC: Programação em FORTRAN - I 20
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 21
Esquema geral de um programa (Pode não existir) PROGRAM [ nome do programa ] [ comentários ] [ instruções de declaração ] [ instruções executáveis ] STOP END @2001 - João Tavares CFAC: Programação em FORTRAN - I 22