CFAC: Programação em FORTRAN - II FEUP/DEMEGI-SDI Programação em FORTRAN - II João Manuel R. S. Tavares Varáveis lógicas Exemplo: Declaração: LOGICAL test Atribuições: test = .TRUE. test = .FALSE. Numericamente 0 é False, 1 é True. É possível “ler/escrever” varáveis lógicas (T/F). @2001 - João Tavares João Manuel R. S. Tavares Escrita: PRINT *, test ! escreve T ou F. (comentário) CFAC: Programação em FORTRAN - II 2 1 CFAC: Programação em FORTRAN - II FEUP/DEMEGI-SDI Expressões lógicas Uma expressão lógica é composta por: Variáveis; Constantes; Operadores Lógicos. Exemplos: radius .EQ. 24 radius .NEQ. old_radius @2001 - João Tavares CFAC: Programação em FORTRAN - II 3 Operadores lógicos I Condições de teste: .LT. .GT. .LE. .GE. .EQ. .NE. @2001 - João Tavares João Manuel R. S. Tavares (menor que) < (maior que) > (menor que ou igual a) <= (maior que ou igual a) >= (igual a) = (ou .NEQ., não igual a) <> CFAC: Programação em FORTRAN - II 4 2 CFAC: Programação em FORTRAN - II FEUP/DEMEGI-SDI Operadores lógicos II Operadores lógicos de teste: .AND. .NOT. .OR. “e” lógico negação “ou” lógico Exemplo: (a .LE. 3) .OR. (b .GE. 5) @2001 - João Tavares CFAC: Programação em FORTRAN - II 5 Instruções condicionais I Permitem uma selecção de sequências alternativas de instruções. Fluxograma Falsa condição IF simples Verdadeira Pseudocódigo Se condição então acção acção Se a condição for verdadeira a acção é executada. Se a condição for falsa não é executada nenhuma acção, passa a ser executada a instrução seguinte. Uma acção pode ser constituída por uma ou mais instruções. @2001 - João Tavares João Manuel R. S. Tavares CFAC: Programação em FORTRAN - II 6 3 CFAC: Programação em FORTRAN - II FEUP/DEMEGI-SDI Instruções condicionais II IF composto Fluxograma Falsa condição acção_2 Verdadeira acção_1 Pseudocódigo Se condição então acção_1 senão acção_2 Se a condição for verdadeira é executada a acção_1. Se a condição for falsa é executada a acção_2. @2001 - João Tavares CFAC: Programação em FORTRAN - II 7 Instruções condicionais III Sintaxe: IF simples: IF [ condição(ões) ] [ instrução ] IF [ condição(ões) ] THEN [ instrução(ões) ] END IF IF composto: IF [ condição(ões) ] THEN [ instrução(ões) ] ELSE [ instrução(ões) ] END IF @2001 - João Tavares João Manuel R. S. Tavares IF’s embutidos: IF [ condição(ões) ] THEN [ instrução(ões) ] ELSE IF [ condição(ões) ] THEN [ instrução(ões) ] ELSE [ instrução(ões) ] END IF CFAC: Programação em FORTRAN - II 8 4 CFAC: Programação em FORTRAN - II FEUP/DEMEGI-SDI Instruções condicionais IV IF’s simples IF composto @2001 - João Tavares Exemplos: IF ( test .EQ. 2 ) x = 12 IF ( test .EQ. 4 ) THEN x = 24 y=5 END IF IF ( test .GT. 5 ) THEN PRINT *, test, ' is > 5.' ELSE PRINT *, test, ' is <= 5.' END IF CFAC: Programação em FORTRAN - II 9 Instruções condicionais V Exemplo (IF’s encadeados): IF ( day .EQ. 'Monday' ) THEN < instrução(ões) > ELSE IF ( test .EQ. .TRUE. ) THEN < instrução(ões) > ELSE IF ( ( x .GT. 4 ) .AND. ( y .LT. 3 ) ) THEN < instrução(ões) > ELSE < instrução(ões) > END IF @2001 - João Tavares João Manuel R. S. Tavares CFAC: Programação em FORTRAN - II 10 5 CFAC: Programação em FORTRAN - II FEUP/DEMEGI-SDI Funções intrínsecas I As funções retornam um valor de um dado tipo. Parâmetros são passados para as funções. Parâmetros podem ser variáveis, constantes ou expressões. Intrínseca significa definida internamente “built-in”. Exemplos: y = ATAN(1.0) y = LOG10(x) y = EXP(2.4) @2001 - João Tavares y = SIN((pi*degrees)/180.0) y = x+3.0*LOG(x) y = INT(2.3) CFAC: Programação em FORTRAN - II 11 Funções intrínsecas II Exemplos: SIN(x) COS(x) TAN(x) SINH(x) COSH(x) TANH(x) SQRT(x) ABS(x) MAX(x1,x2…) @2001 - João Tavares João Manuel R. S. Tavares ASIN(x) ACOS(x) ATAN2(dy, dx) EXP(x) LOG(x) LOG10(x) ... (Máximo valor de x1, x2, ...) CFAC: Programação em FORTRAN - II 12 6