fortran 90 danilo ueno takahagi. breve histórico da linguagem - a linguagem fortan foi a primeira...

36
FORTRAN 90 FORTRAN 90 Danilo Ueno Takahagi

Upload: internet

Post on 17-Apr-2015

114 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

FORTRAN 90FORTRAN 90

Danilo Ueno Takahagi

Page 2: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Breve Histórico da LinguagemBreve Histórico da Linguagem- A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores, proposta por J. Backus, em 1953;

- primeiro compilador para IBM 704 em 1957;

- criação de FORTRAN 90 devido a pouca capacidade do FORTRAN 77 em relação a C, C++,ADA;

Page 3: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Objetivos:Objetivos:

FORmula TRANslation;Facilidade de transcrição de fórmulas

matemáticas para serem usadas nos computadores;

Direcionada para aplicações em matemática, engenharia e análises científicas;

Page 4: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Itens Fundamentais:Itens Fundamentais:

Tipos de DadoVariáveisComando de AtribuiçãoExpressões AritméticasExpressões LógicasEntrada e SaídaEstrutura CondicionalEstrutura de Repetição

Page 5: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Tipos de DadoTipos de Dado

INTEGER;REAL;COMPLEX;LOGICAL;CHARACTER.

Page 6: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Variáveis:Variáveis:1 a 31 caracteres;1º caractere deve ser uma letra;Apenas letras, undescores, e dígitos são

permitidos;Não são sensíveis a maiúsculo ou

minúsculo;Podem ser utilizadas palavras chaves;Podem ser utilizadas nomes de

procedimentos intrínsecos.

Page 7: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Declaração de Variáveis:Declaração de Variáveis:

Exemplos:

character*3 :: preal :: rcomplex :: c logical :: l

nome-do-tipo :: lista-de-identificadores

Page 8: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Comando de AtribuiçãoComando de AtribuiçãoIdentificador = expressão

- Exemplos: -Variáveis inicializadas:

i = 2 integer :: count = 0

r = 0.0 real :: sum = 0.0

c = “ABC” character*4 :: c = “(cr)”

l = .TRUE. Logical :: l = .FALSE.

Page 9: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Expressões Aritméticas:Expressões Aritméticas:OPERADOR OPERAÇÃO

+ Adição

- Subtração

* Multiplicação

/ Divisão

** Potenciação

prioridade operação

1ª Potenciação

2ª Multiplicação,divisão

3ª Adição,subtração

Page 10: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Algumas Funções Intrínsecas:Algumas Funções Intrínsecas:Nome Definição Tipo da função

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) Retorna o número de bits do inteiro i

Inteiro

INT (A,Kind) conversão de nº. não real para inteiro, truncando

Inteiro

MAX (A1,A2,A3,...) Valor máximo da seqüência Tipo do argumento

Page 11: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Expressões Lógicas:Expressões Lógicas:Operador

(Fortran 90)

Operador

(Fortran 77)

Significado

< .LT. Less than

<= .LE. Less than or equal to

= = .EQ. Equal to

/= .NE. Not Equal to

> .GT. Greater than

>= .GE. Greater than or equal to

Operadores lógicos: .AND. Para conjunção

.OR. Para disjunção

.NOT. Para a negação

Page 12: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Entrada e Saída:Entrada e Saída:

Externo Memória do Computador

INPUT teclado converte forma interna integer array arq disco real fita magnética character

OUTPUT monitor converte forma externa integer array

impressora real fita magnética character

Page 13: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Comandos de Entrada e Saída:Comandos de Entrada e Saída:READ (cilist) input_listWRITE(cilist) output_list

cilist – control information list

Composto pelos especificadores do comando, como a unit (dispositivo de entrada) e a formatação dos dados.

Default – unit 5, para entrada de dados

unit 6, para saída de dados

Page 14: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Exemplos:Exemplos:READ (unit = 5,fmt = ´(3F6.2)´) x,y,zREAD (unit = *,fmt = ´(5F6.3)´) p,q,r,s,tWRITE (unit = 6,fmt = 200) x

200 FORMAT (F5.2)• WRITE (unit = *,fmt = 201) x/y

201 FORMAT (F5.2)

Page 15: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Descritores de edição:Descritores de edição:

I – edita tipo inteiroF ou E – edita tipo realA – edita tipo caractereL – edita tipo lógicoX,T,TL,TR – usado para controlar onde o dado

deve ser lido numa seqüência de entrada e onde deve ser colocado na seqüência de saída.

Page 16: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Exemplos de formatações:Exemplos de formatações: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

Page 17: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estruturas Condicionais:Estruturas Condicionais:

Estrutura condicional simplesComando IF lógicoEstrutura condicional compostaEstrutura CASE

Page 18: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura condicional simples:Estrutura condicional simples:

IF,THEN e END IF – palavras chaves

Condição B – expressão lógica

IF (condição B) THEN seqüência de A comandosEND IF

Page 19: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Comando IF lógico:Comando IF lógico:

IF (condição B) comando A

IF – palavra chave

Condição B – é uma expressão lógica

Comando A – qualquer comando, exceto um comando DO ou outro comando IF

Page 20: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura Condicional Composta:Estrutura Condicional Composta:

IF (condição B) THEN

seqüência de comandos

ELSE

seqüência B de comandos

END IF

IF,THEN,ELSE e END IF – palavras chaves

Condição B – uma expressão lógica

Page 21: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

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 * !para pular uma linha

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

Page 22: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura CASE:Estrutura CASE:SELECT CASE (expressão case)

CASE (case selecionado)

bloco de comandos

CASE (case selecionado)

bloco de comandos

.

.

END SELECT

Page 23: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Exemplo da estrutura CASE:Exemplo da estrutura CASE:! Programa que calcula qual estação do ano pertence o mês

SELECT CASE (mes)

CASE (“08”:”10”)

PRINT *,date, “esta na primavera”

CASE ( “11”,”12”,”01”)

PRINT *,date, “esta no verão”

CASE (“02”,”03”,”04”)

PRINT *,date, “esta no outono”

CASE (“05”,”06”,”07”)

PRINT *,date, “esta no inverno”

END SELECT

Page 24: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura de Repetição:Estrutura de Repetição:

DO loops controlados DO loops flexíveisDO WHILE

Page 25: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura DO:Estrutura DO:DO count = initial, final, inc

...

bloco de comandos

...

END DO

DO e END DO – palavras chaves

count – variável contadora

initial – valor inicial

final – valor final

inc - incremento

Page 26: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Exemplo da Estrutura DO:Exemplo da Estrutura DO:estrutura DO contador de iteração valores da

variável

DO i = 1,10 10 1,2,3,4,5,6,7,8,9,10

DO j = 20,50,5 7 20,25,30,35,40,45,50

DO x = -20,20,6 7 -20,-14,-8,-2,4,10,16

DO m = 20,-20,-6 7 20,14,8,2,-4,-10,-16

Page 27: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura DO mais flexível:Estrutura DO mais flexível:

DO count = 1,max_iterations

...

IF (term < epsilon) EXIT

...

END DO

...

OBS: depois de obedecer o comando EXIT ou após obedecer a quantidade máxima de iterações, a execução do programa continua a partir do próximo comando.

Page 28: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Estrutura DO WHILE:Estrutura DO WHILE:

DO WHILE (condição A) ... bloco de comandos ...END DO

DO, WHILE, END DO - palavras chaves

Condição A – expressão lógica

Page 29: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Ponteiros em FORTRAN 90:Ponteiros em FORTRAN 90:nome-do-tipo, POINTER :: lista-de-identificadores

Exemplos:

REAL, POINTER :: p,q,r,s

INTEGER, POINTER :: i,j,k

nome-do-tipo, TARGET :: lista-de-identificadores

O objeto apontado pelo ponteiro deve ter a seguinte declaração:

Page 30: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Exemplo1:Exemplo1:REAL :: aREAL, TARGET :: bREAL, POINTER :: pINTEGER, POINTER :: q

- p pode apontar para a variável b (real, target);- p não pode apontar para a (não tem target);- q não pode apontar para b (tipos diferentes);

Page 31: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Exemplo2: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 associação indefinida.

Page 32: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Dissociação de ponteiros: Dissociação de ponteiros:

NULLIFY(lista-de-ponteiros)

EXEMPLOS:

NULLIFY(p)

NULLIFY(a,b,c,q,r)

Page 33: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Funções para ponteiros:Funções para ponteiros:ASSOCIATED(ponteiro)- verifica se o ponteiro entre parênteses possui

alguma associação (retorna TRUE ou FALSE)

ALLOCATE(ponteiro)- aloca espaço na memória que fica associado ao

ponteiro

DEALLOCATE(ponteiro)- desaloca o espaço na memória

Page 34: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

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 dissociação

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 espaço da memória e dissocia o ptr_2

End Program pointer

Page 35: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

Bibliografia:Bibliografia:

1. Professores da UFMG - “Fortran Estruturado”;

2. REDWINE,C. - “Upgrading to Fortran 90”;

3. ELLIS,T.M.R.; PHILIPS.I.R.; LAHEY,T.M. - “Fortran 90 Programing”

Page 36: FORTRAN 90 Danilo Ueno Takahagi. Breve Histórico da Linguagem - A linguagem FORTAN foi a primeira linguagem de alto nível usada para programação de computadores,

FIMFIM