Beruflich Dokumente
Kultur Dokumente
Engenharia de Mquinas 1 Engenharia de Mquinas Martimas - Martimas M04 Computadores e Programao M04 Computadores e Programao
Fortran 90 Sumrio
Introduo Estrutura Comentrios Continuao de linhas Alfabeto Constantes Nomes
Fortran 90
Introduo
xx
Fortran 90
Estrutura
Um programa em Fortran dever ter a seguinte estrutura: PROGRAM program-name IMPLICIT NONE [specification part] [execution part] [subprogram part] END PROGRAM program-name
Engenharia de Mquinas Martimas M04 Computadores e Programao 4
Fortran 90
Estrutura - Comentrios
Todos os programas devero ser comentados para facilitar a sua leitura. No Fortran 90: Todos os caracteres a seguir ao ponto de exclamao, !, excepto numa string, so comentrios, e so ignorados pelo compilador
PROGRAM TestComment1 .......... READ(*,*) Year ! read in the value of Year .......... Year = Year + 1 ! add 1 to Year .......... END PROGRAM TestComment1
Engenharia de Mquinas Martimas M04 Computadores e Programao 5
Fortran 90
Estrutura - Comentrios
Todos os programas devero ser comentados para facilitar a sua leitura. No Fortran 90: Uma linha inteira pode ser um comentrio
! This is a comment line ! PROGRAM TestComment2 ......... ! This is a comment line in the middle of a program ......... END PROGRAM TestComment2
Engenharia de Mquinas Martimas M04 Computadores e Programao 6
Fortran 90
Estrutura - Comentrios
Todos os programas devero ser comentados para facilitar a sua leitura. No Fortran 90: Uma linha em branco tambm interpretada como um comentrio
PROGRAM TestComment3 .......... READ(*,*) Count
! The above blank line is a comment line WRITE(*,*) Count + 2 END PROGRAM TestComment3
Engenharia de Mquinas Martimas M04 Computadores e Programao 7
Fortran 90
Fortran 90
Fortran 90
10
Fortran 90
11
Fortran 90
Alfabeto
O Fortran 90 usa os seguintes caracteres:
Letras: ABCDEFGHIJKLM NOPQRSTUVWXYZ abcdefghijklm nopqrstuvwxyz Dgitos: 0123456789 Caracteres especiais: space '"()*+-/:=_ ! & $ ; < > % ? Engenharia ,. de Mquinas Martimas M04 Computadores e Programao
12
Fortran 90
Constantes
As constantes servem para o Fortran representar determinados valores. O Fortran tem cinco tipos de constantes: Nmeros inteiros (integer) Nmeros reais (real) Nmeros complexos (complex) Constantes lgicas (logical) Cadeia de caracteres (character)
13
Fortran 90
Constantes - Inteiros
Inteiros (integer). Um conjunto de dgitos com um sinal opcional:
Correct Examples: 0, -345, 768, +12345 Incorrect Examples: 1,234 : comma is not allowed 12.0: no decimal point --4 and ++3: too many optional signs 5- and 7+: the optional sign must precede the string of digits
14
Fortran 90
Constantes - Reais
Reais (real). H duas representaes, a decimal e a exponencial:
Representao decimal: O ponto decimal utilizado e no so permitidas as vrgulas. A constante real pode ter sinal. Correct Examples: 23.45, .123, 123., -0.12, -.12 Incorrect Examples: 12,345.95: no comma is allowed 75: real constant must have a decimal point 123.5-: the optional sign must precede the number $12.34: cannot use dollar sign $
Engenharia de Mquinas Martimas M04 Computadores e Programao 15
Fortran 90
Constantes - Reais
Reais (real). H duas representaes, a decimal e a exponencial:
Representao exponencial: consiste num nmero inteiro ou real decimal (mantissa ou parte fraccionria), seguido da letra E ou e e de um inteiro (expoente). Correct Examples: 12.3456E2 or 12.3456e2: this is equal to 1234.56 -3.14E1 or -3.14e1: this is equal to -31.4 -1.2E-3 or -1.2e-3: this is equal to -0.0012 12E3 or 12e3: this is equal to 12000.0 0E0 or 0e0: this is equal to 0.0
Engenharia de Mquinas Martimas M04 Computadores e Programao 16
Fortran 90
Constantes - Reais
Reais (real). H duas representaes, a decimal e a exponencial:
Representao exponencial: consiste num nmero inteiro ou real decimal (mantissa ou parte fraccionria), seguido da letra E ou e e de um inteiro (expoente). Incorrect Examples: 12.34E1.2: the exponential part must be an integer constant 12.34-5: there is no exponential sign E or e
17
Fortran 90
Fortran 90
19
Fortran 90
20
Fortran 90
21
Fortran 90
Nomes
Um nome no Fortran dever satisfazer as seguintes regras:
No ter mais de 31 caracteres. O primeiro caractere tem de ser uma letra. Os restantes caracteres podero ser letras, espaos ou underscores. Os nomes no so sensveis ao tamanho da letra. Isto , Smith, smith, sMiTh, SMiTH, smitH so todos o mesmo nome.
22
Fortran 90
Nomes
Um nome no Fortran dever satisfazer as seguintes regras:
Correct Examples: MTU, MI, John, Count I, X I1025, a1b2C3, X9900g R2_D2, R2D2_, A__ Incorrect Examples: M.T.U.: only letters, digits, and underscores can be used R2-D2: same as above 6feet: the first character must be a letter _System: same as above
Engenharia de Mquinas Martimas M04 Computadores e Programao 23
Fortran 90
Nomes
Use nomes com significado Good names: Total, Rate, length Not so good names: ThisIsALongFORTRANname, X321, A_B_012cm, OPQ O Fortran tem muitas palavras chave como INTEGER, REAL, PARAMETER, PROGRAM, END, IF, THEN, ELSE, DO, ...; no entanto, o Fortran no tem palavras resevadas. Qualquer uma daquelas palavras pode ser usada como nome ou identificador mas essa, definitivamente, no ser uma boa prtica.
24
Fortran 90
25
Fortran 90
Variveis
Uma varivel pode ser entendida como uma caixa que poder conter um valor de determinado tipo. Assim uma varivel caracterizada por um nome e por um tipo. Os tipos de variveis so os mesmos das constantes: Nmeros inteiros (integer) Nmeros reais (real) Nmeros complexos (complex) Variveis lgicas (logical) Cadeia de caracteres (character)
Engenharia de Mquinas Martimas M04 Computadores e Programao 26
Fortran 90
Declarao de variveis
A declarao de variveis efectuada da seguinte forma: Tipo de varivel :: lista de nomes de variveis Exemplos: integer :: soma, nota real :: media, total character(5) :: Resposta (o 5 entre parnteses significa que a varivel Resposta s pode ter at 5 caracteres de comprimento) character(len=5) :: Resposta (exactamente como no caso anterior)
Engenharia de Mquinas Martimas M04 Computadores e Programao 27
Fortran 90
Declarao de variveis
A declarao de variveis efectuada da seguinte forma: Tipo de varivel :: lista de nomes de variveis Exemplos: character(len=1) :: opcao character(1) :: opcao character :: opcao
(as trs declaraes anteriores so iguais) character(len=10) :: City, Nation*20, BOX, bug*1 (City e BOX podem ter at 10 caracteres de comprimento, Nation 20 caracteres e bug 1 caractere)
Engenharia de Mquinas Martimas M04 Computadores e Programao 28
Fortran 90
Declarao de variveis
Ainda existe uma outra forma de declarao de variveis. Se o seu comprimento representado por * significa que s mais frente no programa se saber qual.
29
Fortran 90
Inicializao de variveis
Aps a declarao as variveis ainda no tm qualquer valor. errado pressupor que no caso de variveis numricas estas tero o valor de 0. Existem 3 formas de inicializar as variveis: Inicializ-la quando o programa est a correr. Usando uma instruo de assignao. Lendo um valor do teclado ou de outro device de input com uma instruo read .
30
Fortran 90
Inicializao de variveis
Exemplos:
real :: Offset = 0.1, L = 10.0 character(len=2) :: State1 = "MI integer, parameter :: Qt=10, custo= 435, P=3 integer :: valor = Qt*custo, Recebido = P+5
31
Fortran 90
Inicializao de variveis
Exemplos: A name declared with the PARAMETER attribute is an alias of a value and is not a variable. Therefore, it cannot be used on the lefthand side of =, although it can be used on the right-hand side. The following is wrong! INTEGER, PARAMETER:: Inch=2.54, f=123.45 INTEGER :: X=15 Inch = f * X
32
Fortran 90
Operadores
Maior prioridade
Type Arithmetic Relational Operator ** * + < <= > .NOT. .AND. .OR. .EQV. Associativity right to left left to right left to right none right to left left to right left to right left to right
/ >=
==
/=
Logical
.NEQV.
Menor prioridade
Engenharia de Mquinas Martimas M04 Computadores e Programao 33
Fortran 90
Operadores Aritmtricos
34
Fortran 90
Operadores Aritmtricos
Exemplos:
1 + 3 is 4 1.23 - 0.45 is 0.78 3 * 8 is 24 6.5/1.25 is 5.2 8.4/4.2 is 2.0 rather than 2, since the result must be of REAL type. -5**2 is -25 12/4 is 3 13/4 is 3 rather than 3.25. 3/5 is 0 rather than 0.6.
Engenharia de Mquinas Martimas M04 Computadores e Programao 35
Fortran 90
Operadores Aritmtricos
Exemplos:
1 + 2.5 is 2.5 1/2.0 is 0.5 2.0/8 is 0.25 -3**2.0 is -9.0 4.0**(1/2) is first converted to 4.0**0 since 1/2 is a single mode expression whose result is 0. Then, 4.0**0 is 1.0
36
Fortran 90
37
Fortran 90
38
Fortran 90
39
Fortran 90
Funes
Functions have higher priority than any arithmetic operators. All arguments of a function can be expressions. These expressions are evaluated first and passed to the function for computing the function value.
40