Você está na página 1de 11

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Programao em FORTRAN - I
Joo Manuel R. S. Tavares

Bibliografia
FORTRAN ANSI 77 e WATFIV-S Jorge Filho, Caetano Loiola Editora Campus Linguagem de Programao Estruturada FORTRAN 77 Maximilian Emil Hehl McGraw-Hill FORTRAN77 for Engineers and Scientists Larry Nyhoff, Leestma Sanford Prentice Hall, 1996
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 2

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Linguagens de Programao
Permitem a implementao de programas prprios e medida. Sem necessitar do conhecimento do funcionamento dos computadores. Cdigo mquina versus Linguagens de alto nvel. Fortran: FORmula TRANslation. Outras Linguagens:
Basic; C/C++/C#; Pascal.
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 3

Ciclo de Programao
1) 2)

3) 4) 5) 6) 7) 8)
@2001 - Joo Tavares

Anlise da tarefa. Planificao do programa: realizar uma abordagem estruturada, utilizar diagramas de fluxo e/ou pseudocdigo. Edio do cdigo fonte. Compilao e linkagem do programa. Execuo e depurao (debug) do programa. Se necessrio edio e recompilao. Teste exaustivo do programa. Documentao.
CFAC: Programao em FORTRAN - I 4

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Compilao em MS DOS
1) Editar o(s) ficheiro(s) fonte num qualquer editor de texto (sem caracteres especiais de formatao) e grava-lo(s) com nome formado no mximo por 8 caracteres e com extenso .FOR. 2) Compilar o(s) programa(s) fonte: F7 nome(i) e corrigir os eventuais erros sintcticos. 3) Juntar todos os ficheiros que constituem o programa: FL nome1, nome2, ... 4) Executar o programa: nome1.
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 5

Estrutura de um programa simples em FORTRAN


Nome do programa. Declarao de variveis e estruturas. Atribuio de valores a variveis. Processamento dos dados. Escrita dos resultados. Fim do programa.

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Fluxo de um programa
Sequncia linear. Um comando por linha. Posio na linha: Muito importante! Comentrios so ignorados. Seleco: Instrues condicionais. Repetio: Instrues de ciclo. Termina sempre com uma declarao END.
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 7

Posio na linha
O esquema de um programa em FORTRAN data dos cartes perfurados de 80 colunas, que eram utilizados para a entrada de dados.
N da coluna Instruo Continuao Comentrio Etiqueta
@2001 - Joo Tavares

7-72 Total=x_valor+y_valor & +z_valor C Linha de comentrio. 9 9999 FORMAT('Resposta =',I4)


CFAC: Programao em FORTRAN - I

1 2-5

73-80

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Exemplo de formulrio para codificao em FORTRAN


Continuao Etiqueta Instrues

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

Declarao de variveis
Nomes de variveis:
Devem ter no mnimo o comprimento de um caracter alfabtico e o mximo de 31 caracteres alfanumricos. Deve comear com um caracter alfabtico. (Insensvel a maisculas/minsculas.) Caracteres alfanumricos so: a-z, 0-9 e o underscore ( _ ). Variveis implcitas: Primeira letra de [I, N] implica que as variveis so do tipo inteiro!

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

10

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Exemplos
Nomes vlidos:
X THEDAY Min_cur Time28

Nomes invlidos:

@2001 - Joo Tavares

X*Z THE TIME 7YEARS _no_way$


11

CFAC: Programao em FORTRAN - I

Tipos bsicos de dados


REAL (real) INTEGER (inteiro) COMPLEX (complexo) LOGICAL (lgico) CHARACTER (caracter) x = 5.0 i = 20 z = (1.4,3.2) test = .TRUE. char = 'Hello'

Tipos de dados mais avanados podem ser construdos a partir destes tipos bsicos.

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

12

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Declaraes
<tipo> <varivel> [,< varivel(eis)>] Exemplos:
([ ] indicam opcional)

(Com comprimento mximo de 10 caracteres.)


@2001 - Joo Tavares

REAL x REAL radius, volume INTEGER loop, temp CHARACTER string*10, name*30
CFAC: Programao em FORTRAN - I 13

Parmetros
Parmetros so constantes, os seus valores, uma vez definidos, no podem ser alterados. Exemplos: REAL g, pi INTEGER days PARAMETER (g = 9.81, pi = 3.142) PARAMETER (days = 365)
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 14

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Atribuies
<varivel> = <valor> | <varivel> | <expresso> (| significa ou) Exemplos:

radius = 2.5 y=z test = value+loop-temp volume = (4.0*pi*radius**3.0)/3.0


@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 15

Procedncias
Regra de procedncia nas expresses (de menor para maior):
+, *, / ** (adio, subtraco) (multiplicao, diviso) (potenciao)

No caso de igualdade, a prioridade da expresso mais esquerda; a ordem de procedncia pode ser alterada pela utilizao de ( ).
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 16

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Estruturas de controlo
Construtores bsicos de blocos de programa. Controlam o fluxo do programa. Existem 3 tipos diferentes:
de sequncia linear (salto, retorno); de seleco; de iterao ou ciclo.
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 17

Outras Instrues
(Identificao do programa.) (Fim do programa.) (Comentrio) (Escrita)

PROGRAM [ nome do programa ] END C ou * Um comentrio (na 1 col.).

PRINT *, 'Hello' PRINT *, 'Value of X = ', x (* - Sada em formato livre.)


CFAC: Programao em FORTRAN - I 18

@2001 - Joo Tavares

Joo Manuel R. S. Tavares

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Entrada de dados
Os programas so inteis sem dados! Utilizao da instruo READ para a entrada de dados. Deve-se realizar a identificao dos valores de entrada! Exemplo:
PRINT *, 'Enter values for x & y :' READ *, x, y
@2001 - Joo Tavares CFAC: Programao em FORTRAN - I 19

Entrada de caracteres
A instruo READ normal no pode ser utilizada para a entrada de variveis 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 nmero de caracteres.

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

20

Joo Manuel R. S. Tavares

10

CFAC: Programao em FORTRAN - I

FEUP/DEMEGI-SDI

Boa prtica de programao


Comentar o programa! Palavras chave do FORTRAN em maisculas. Variveis em minsculas. Utilizar nomes sugestivos para as varveis. Utilizao de espaos e de indentao (tabs) no cdigo para facilitar a sua leitura.

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

21

Esquema geral de um programa


PROGRAM [ nome do programa ] [ comentrios ] [ instrues de declarao ] [ instrues executveis ] STOP END

(Pode no existir)

@2001 - Joo Tavares

CFAC: Programao em FORTRAN - I

22

Joo Manuel R. S. Tavares

11