A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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,

Apresentações semelhantes


Apresentação em tema: "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,"— Transcrição da apresentação:

1 FORTRAN 90 Danilo Ueno Takahagi

2 Breve 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;

3 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;

4 Itens Fundamentais: Tipos de Dado Variáveis Comando de Atribuição Expressões Aritméticas Expressões Lógicas Entrada e Saída Estrutura Condicional Estrutura de Repetição

5 Tipos de Dado INTEGER; REAL; COMPLEX; LOGICAL; CHARACTER.

6 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.

7 Declaração de Variáveis: Exemplos: character*3 :: p real :: r complex :: c logical :: l nome-do-tipo :: lista-de-identificadores

8 Comando de Atribuição Identificador = 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.

9 Expressões Aritméticas: OPERADOROPERAÇÃO +Adição -Subtração *Multiplicação /Divisão **Potenciação prioridadeoperação 1ªPotenciação 2ªMultiplicação,divisão 3ªAdição,subtração

10 Algumas Funções Intrínsecas: NomeDefiniçãoTipo da função ALOG 10(X)logaritmo na base 10 de XTipo do argumento de X EXP (X)o Nº e elevado a XTipo do argumento de X ABS (X)valor absoluto de XTipo 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üênciaTipo do argumento

11 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

12 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

13 Comandos de Entrada e Saída: READ (cilist) input_list WRITE(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

14 Exemplos: READ (unit = 5,fmt = ´(3F6.2)´) x,y,z READ (unit = *,fmt = ´(5F6.3)´) p,q,r,s,t WRITE (unit = 6,fmt = 200) x 200 FORMAT (F5.2) WRITE (unit = *,fmt = 201) x/y 201 FORMAT (F5.2)

15 Descritores de edição: I – edita tipo inteiro F ou E – edita tipo real A – edita tipo caractere L – edita tipo lógico X,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.

16 Exemplos de formatações: Linha de entrada de dado: READ ´(4X,I5)´, num será armazenado em num - READ ´(T4,I2,T8,I2,T2,I4)´, x,y,z x = 45 y = 89 z = READ´(F3.1,F2.2,F3.0,TL6,F4.2)´,r1,r2,r3,r4 r1 = 12.3 r2 = 0.45 r3 = r4 = 34.56

17 Estruturas Condicionais: Estrutura condicional simples Comando IF lógico Estrutura condicional composta Estrutura CASE

18 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 comandos END IF

19 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

20 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

21 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

22 Estrutura CASE: SELECT CASE (expressão case) CASE (case selecionado) bloco de comandos CASE (case selecionado) bloco de comandos. END SELECT

23 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

24 Estrutura de Repetição: DO loops controlados DO loops flexíveis DO WHILE

25 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

26 Exemplo da Estrutura DO: estrutura DOcontador de iteraçãovalores da variável DO i = 1,10101,2,3,4,5,6,7,8,9,10 DO j = 20,50,5720,25,30,35,40,45,50 DO x = -20,20,67-20,-14,-8,-2,4,10,16 DO m = 20,-20,-6720,14,8,2,-4,-10,-16

27 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.

28 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

29 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:

30 Exemplo1: REAL :: a REAL, TARGET :: b REAL, POINTER :: p INTEGER, 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);

31 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.

32 Dissociação de ponteiros: NULLIFY(lista-de-ponteiros) EXEMPLOS: NULLIFY(p) NULLIFY(a,b,c,q,r)

33 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

34 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

35 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

36 FIM


Carregar ppt "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,"

Apresentações semelhantes


Anúncios Google