Sie sind auf Seite 1von 40

por Chedas Sampaio poca 1998/1999

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

Engenharia de Mquinas Martimas M04 Computadores e Programao

Fortran 90

Introduo
xx

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Estrutura - Continuao de linhas


No Fortran, uma instruo (statement) deve comear numa linha nova. Se a instruo for muito comprida poder ser continuada na linha seguinte com os seguintes mtodos: Se a linha terminar com um ampersand, &, a instruo continuar no primeiro caractere da linha nocomentrio imediatamente seguinte
A = 174.5 * Year & + Count / 100 The above is equivalent to the following A = 174.5 * Year + Count / 100
Engenharia de Mquinas Martimas M04 Computadores e Programao 8

Fortran 90

Estrutura - Continuao de linhas


No Fortran, uma instruo (statement) deve comear numa linha nova. Se a instruo for muito comprida poder ser continuada na linha seguinte com os seguintes mtodos:
Note that & is not part of the statement. A = 174.5 * Year & ! this is a comment line + Count / 100 The above is equivalent to the following, since the comment is ignored by the compiler: A = 174.5 * Year + Count / 100
Engenharia de Mquinas Martimas M04 Computadores e Programao 9

Fortran 90

Estrutura - Continuao de linhas


No Fortran, uma instruo (statement) deve comear numa linha nova. Se a instruo for muito comprida poder ser continuada na linha seguinte com os seguintes mtodos:
If the first non-blank character of the continuation line is &, continuation is to the first character after the &: A = 174.5 + ThisIsALong& &VariableName * 123.45 is equivalent to A = 174.5 + ThisIsALongVariableName * 123.45

Engenharia de Mquinas Martimas M04 Computadores e Programao

10

Fortran 90

Estrutura - Continuao de linhas


No Fortran, uma instruo (statement) deve comear numa linha nova. Se a instruo for muito comprida poder ser continuada na linha seguinte com os seguintes mtodos:
If the first non-blank character of the continuation line is &, continuation is to the first character after the &: A = 174.5 + ThisIsALong & &VariableName * 123.45 is equivalent to A = 174.5 + ThisIsALong VariableName * 123.45

Engenharia de Mquinas Martimas M04 Computadores e Programao

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)

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Engenharia de Mquinas Martimas M04 Computadores e Programao

17

Fortran 90

Constantes - Cadeia de caracteres


Cadeia de caracteres (character). Estas constantes escrevem-se entre apstrofes ou aspas. O contedo da cadeia consiste em todos os caracteres, espaos inclusiv, entre aspas ou apstrofes. O seu comprimento dado pelo nmero de caracteres presentes. O contedo da cadeia pode ser zero.
Correct Examples: 'John' and "John": content = John and length = 4 ' ' and " ": content = a single space and length = 1 'John Dow #2' and "John Dow #2": content = John Dow #2 and length = 11 '' and "": content = nothing and length = 0 (empty string)
Engenharia de Mquinas Martimas M04 Computadores e Programao 18

Fortran 90

Constantes - Cadeia de caracteres


Cadeia de caracteres (character). Estas constantes escrevem-se entre apstrofes ou aspas. O contedo da cadeia consiste em todos os caracteres, espaos inclusiv, entre aspas ou apstrofes. O seu comprimento dado pelo nmero de caracteres presentes. O contedo da cadeia pode ser zero.
Incorrect Examples: 'you and me: the closing apostrophe is missing Hello, world': the opening apostrophe is missing 'Hi" and "Hi': the opening and closing quotes do not match.

Engenharia de Mquinas Martimas M04 Computadores e Programao

19

Fortran 90

Constantes - Cadeia de caracteres


If single quote is used in a string, then double quotes should be used to enclose the string: "Lori's apple" This string has content Lori's apple and length 12. Alternatively, you can write the single quote twice as follows: 'Lori''s apple' The compiler will treat a pair of single quotes in the content of a string as one. Thus, the content of the above string is still Lori's apple.

Engenharia de Mquinas Martimas M04 Computadores e Programao

20

Fortran 90

Constantes - Cadeia de caracteres


Correct Examples: 'What''s this?': content = What's this? and length = 11 '''''': content = '' and length = 2 Incorrect Examples: 'Tech's seminar': the single quote between h and s should be written twice.

Engenharia de Mquinas Martimas M04 Computadores e Programao

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.

Engenharia de Mquinas Martimas M04 Computadores e Programao

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.

Engenharia de Mquinas Martimas M04 Computadores e Programao

24

Fortran 90

Declarao de constantes - parameter


As constantes podem ser declaradas no incio do programa ou sub-programa e o seu valor passa a ser representado pelo nome declarado. Exemplos: integer, parameter :: Limite = 30, Max= 100 real, parameter :: E = 2.71828, PI = 3.141592 integer, parameter :: Tot = 10, C = 5, S = Tot*C (S representar o valor de 10)

Engenharia de Mquinas Martimas M04 Computadores e Programao

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.

Exemplo: character(len=*) :: titulo, posicao

Engenharia de Mquinas Martimas M04 Computadores e Programao

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 .

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Operator INTEGER REAL

INTEGER INTEGER REAL

REAL REAL REAL

Engenharia de Mquinas Martimas M04 Computadores e Programao

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

Engenharia de Mquinas Martimas M04 Computadores e Programao

36

Fortran 90

Funes intrnsecas matemticas


Function ABS(x) SQRT(x) SIN(x) COS(x) TAN(x) ASIN(x) ACOS(x) ATAN(x) EXP(x) LOG(x) Meaning absolute value of x square root of x sine of x radian cosine of x radian tangent of x radian arc sine of x arc cosine of x arc tangent of x exp(x) natural logarithm of x Arg. Type INTEGER REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL Return Type INTEGER REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Engenharia de Mquinas Martimas M04 Computadores e Programao

37

Fortran 90

Funes intrnsecas matemticas de converso


Function INT(x) NINT(x) FLOOR(x) FRACTION(x) REAL(x) Meaning integer part x nearest integer to x greatest integer less than or equal to x the fractional part of x convert x to REAL Arg. Type REAL REAL REAL REAL INTEGER Return Type INTEGER INTEGER INTEGER REAL REAL

Engenharia de Mquinas Martimas M04 Computadores e Programao

38

Fortran 90

Funes intrnsecas matemticas - outras


Function MAX(x1, x2, ..., xn) MIN(x1, x2, ..., xn) MOD(x,y) Meaning maximum of x1, x2, ... xn minimum of x1, x2, ... xn remainder x - INT(x/y)*y Arg. Type INTEGER REAL INTEGER REAL INTEGER REAL Return Type INTEGER REAL INTEGER REAL INTEGER REAL

Engenharia de Mquinas Martimas M04 Computadores e Programao

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.

The returned function value is treated as a value in the expression.

Engenharia de Mquinas Martimas M04 Computadores e Programao

40

Das könnte Ihnen auch gefallen