Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivos:
FORmula
TRANslation;
Facilidade de transcrio de frmulas
matemticas para serem usadas nos
computadores;
Direcionada para aplicaes em
matemtica, engenharia e anlises
cientficas;
Itens Fundamentais:
Tipos
de Dado
Variveis
Comando de Atribuio
Expresses Aritmticas
Expresses Lgicas
Entrada e Sada
Estrutura Condicional
Estrutura de Repetio
Tipos de Dado
INTEGER;
REAL;
COMPLEX;
LOGICAL;
CHARACTER.
Variveis:
1
a 31 caracteres;
1 caractere deve ser uma letra;
Apenas letras, undescores, e dgitos so
permitidos;
No so sensveis a maisculo ou
minsculo;
Podem ser utilizadas palavras chaves;
Podem ser utilizadas nomes de
procedimentos intrnsecos.
Declarao de Variveis:
nome-do-tipo :: lista-de-identificadores
Exemplos:
character*3 :: p
real :: r
complex :: c
logical :: l
Comando de Atribuio
Identificador = expresso
- Exemplos:
-Variveis inicializadas:
i =2
integer :: count = 0
r = 0.0
c = ABC
character*4 :: c = (cr)
l = .TRUE.
Logical :: l = .FALSE.
Expresses Aritmticas:
OPERADOR
OPERAO
Adio
Subtrao
Multiplicao
Diviso
**
Potenciao
prioridade
operao
Potenciao
Multiplicao,diviso
Adio,subtrao
Definio
Tipo da funo
ALOG 10(X)
logaritmo na base 10 de X
Tipo do argumento
de X
EXP (X)
o N e elevado a X
Tipo do argumento
de X
ABS (X)
valor absoluto de X
Tipo do argumento
de X
BIT_SIZE(I)
Inteiro
INT (A,Kind)
Inteiro
MAX (A1,A2,A3,...)
Tipo do argumento
Expresses Lgicas:
Operador
(Fortran 90)
Operador
(Fortran 77)
Significado
<
.LT.
Less than
<=
.LE.
==
.EQ.
Equal to
/=
.NE.
Not Equal to
>
.GT.
Greater than
>=
.GE.
Operadores lgicos:
.AND.
Para conjuno
.OR.
Para disjuno
.NOT.
Para a negao
Entrada e Sada:
Externo
Memria do Computador
INPUT
teclado
converte forma interna
arq disco
fita magntica
integer
array
real
character
OUTPUT
monitor
converte forma externa
impressora
fita magntica
integer
array
real
character
(cilist) input_list
WRITE(cilist) output_list
cilist control information list
Composto pelos especificadores do comando,
como a unit (dispositivo de entrada) e a
formatao dos dados.
Default unit 5, para entrada de dados
unit 6, para sada de dados
Exemplos:
READ
Descritores de edio:
I
Exemplos de formataes:
Linha de entrada de dado: 123456789
- READ (4X,I5), num
56789 ser armazenado em num
- READ (T4,I2,T8,I2,T2,I4), x,y,z
x = 45
y = 89
z = 2345
- READ(F3.1,F2.2,F3.0,TL6,F4.2),r1,r2,r3,r4
r1 = 12.3
r2 = 0.45
r3 = 678.0
r4 = 34.56
Estruturas Condicionais:
Estrutura
condicional simples
Comando IF lgico
Estrutura condicional composta
Estrutura CASE
Comando IF lgico:
IF (condio B) comando A
IF palavra chave
Condio B uma expresso lgica
Comando A qualquer comando, exceto um
comando DO ou outro comando IF
PROGRAM quadratic
REAL, PARAMETER :: delta=0.0
REAL :: a,b,c,d,sqrt_d,x1,x2
PRINT *,"Digite os tres coeficientes a,b,and c"
PRINT *
READ *,a,b,c
d=b**2-4*a*c
IF (d>delta) THEN
sqrt_d = SQRT(d)
x1 = (-b+sqrt_d)/(a+a)
x2 = (-b-sqrt_d)/(a+a)
PRINT *,"A equacao tem duas raizes reais: ",x1," e ",x2
ELSE IF (d==delta) THEN
x1 = -b/(a+a)
PRINT *,"A equacao tem uma raiz real: ",x1
ELSE
PRINT *,"A equacao nao tem raizes reais"
END IF
END PROGRAM quadratic
Estrutura CASE:
SELECT CASE (expresso case)
CASE (case selecionado)
bloco de comandos
CASE (case selecionado)
bloco de comandos
.
.
END SELECT
Estrutura de Repetio:
DO
loops controlados
DO loops flexveis
DO WHILE
Estrutura DO:
DO count = initial, final, inc
...
bloco de comandos
...
END DO
DO e END DO palavras chaves
count varivel contadora
initial valor inicial
final valor final
inc - incremento
contador de iterao
valores da
varivel
DO i = 1,10
10
1,2,3,4,5,6,7,8,9,10
DO j = 20,50,5
20,25,30,35,40,45,50
DO x = -20,20,6
-20,-14,-8,-2,4,10,16
DO m = 20,-20,-6
20,14,8,2,-4,-10,-16
Estrutura DO WHILE:
DO WHILE (condio A)
...
bloco de comandos
...
END DO
Exemplo1:
REAL :: a
REAL, TARGET :: b
REAL, POINTER :: p
INTEGER, POINTER :: q
-
Exemplo2:
REAL, POINTER :: u,v,w
REAL, TARGET :: x
u => x
v => u
u => w
u aponta para x;
v aponta o que x aponta (ou seja, x);
u tem associao indefinida.
Dissociao de ponteiros:
NULLIFY(lista-de-ponteiros)
EXEMPLOS:
NULLIFY(p)
NULLIFY(a,b,c,q,r)
PROGRAM pointer
TYPE :: cadastro
CHARACTER(10) :: descricao
INTEGER :: numero
END TYPE cadastro
TYPE (cadastro), POINTER :: ptr_1, ptr_2
ALLOCATE (ptr_1) !Cria um local para armazenar o tipo derivado
!cadastro e associa ptr_1 com esse local
ptr_1%descricao = 'carlos' !Armazena valores na estrutura criada
ptr_1%numero = 1234
PRINT "(2A,I6)","ptr_1 = ",ptr_1
ptr_2 => ptr_1 !Associa ptr_2 com o que o ptr_1 apontava
NULLIFY(ptr_1) !faz a dissociao
IF (.NOT. ASSOCIATED (ptr_1)) THEN
PRINT "(A)","ptr_1 esta dissociado"
END IF
PRINT "(2A,I6)","ptr_2 = ",ptr_2
DEALLOCATE(ptr_2) !Desaloca o espao da memria e dissocia o ptr_2
End Program pointer
Bibliografia:
1.
2.
3.
FIM