Sintaxe de FortranProf. Tiago Chagas
Funções Trigonométricas
Funções Trigonométricas
Estrutura Básica do Fortran
PROGRAMPRINTWRITEREADSTOPEND
Comando de Atribuição
Pseudocódigo Fortran
Inteiro : x1x1 2 + 3 ;
Integer x1x1 = 2 + 3
Programa Mínimo
Pseudocódigo Fortran
ALGORITMO minimoVar X1 : InteiroINICIO X1 2 + 3 ;FIM
PROGRAM minimoInteger X1
X1 = 2 + 3
END
Ler e Escrever
Pseudocódigo Fortranvara : inteiroINICIO
Ler ( a )Escrever ( a ) Escrever(‘fim de programa’)
FIM
PROGRAM minimoInteger a
Read*, aWrite*, aWrite *, ‘fim de programa’
END
Estrutura Condicional
Pseudocódigo Fortran
x1 : Inteiro
INICIOx1 2 + 3 SE x1 > 5 ENTAO escreve (‘maior que 5’)SENAO escreve ( ‘x1=‘, x1)FIM
PROGRAM meuprogInteger x1x1 = 2 + 3IF ( x1 .GT. 5) print *, ‘maior que 5’ELSE print *,’x1=‘, x1END IFEND
Operadores Aritméticos
Operador Pseudocódigo Fortran + x + x - y - y
POT ( x,y) x**y RAD (x) SQRT(x)
/ / x Div y IFIX(x / y)
x MOD y MOD( x, y ) * * + + - -
Operadores Lógicos
Pseudocódigo Fortran Fortran90 = .EQ. = =
<> .NE. /= > .GT. >
>= .GE. >= < .LT. <
<= .LE. <=
Expressões Lógicas
Pseudocódigo Fortran E lógico .AND.
Ou lógico .OR. Não .NOT.
Equivalência Lógica .EQV. Não Eq. Lógica .NEQV.
Tipos de variáveis
Tipo Domínio das variáveis
Integer Inteiros positivos e negativos
Real Decimais positivos e negativos
Double precision
Decimais com mais casas decimais
Complex Complexos
Logical De valor .TRUE. Ou .FALSE.
Character Caracter único
Character *n Cadeia de literal, onde n é o tamanho da cadeia.
Constante
REAL piPARAMETER ( pi = 3.1415927 )
Pseudocódigo Fortran
// declaração de variáveisa, b, c, delta, x1, x2 : realINICIOLer ( a, b, c ) SE a <> 0 ENTAO início delta ← POT ( b, 2 ) - 4 * a * c escrever ( “delta =“, delta ) fim SENAO início escrever ( “é linear”) fimFIM SEFIM
PROGRAM calcula_raizes ! declaração de variáveis ! real a, b, c, delta, x1, x2 read*, a read*, b read*, c IF ( a .NE. 0 ) THEN delta = b ** 2 - 4 * a * c print * , ‘ delta= ’ , deltaELSE print *, ‘ é linear ’ END IFSTOPEND
program calcularaizes real a, b, c, delta, x1, x2 print*, 'Programa de calculo de raizes' print*, 'a=' read*, a print*, 'b=' read*, b print*, 'c=' read*, c x1 = 0.0 x2 = 0.0 IF ( a .NE. 0 ) THEN delta = b ** 2 - 4 * a * c print *, 'delta =', delta ELSE print *, ' é linear ' END IF END
Sintaxe SE... SENAO
...SE a = 0 ENTAO ....SENAO ....FIM SE
...IF ( a = = 0 ) THEN ...ELSE ....END IF
Sintaxe SE... SENAO...SE
...SE a = 0 ENTAO ....SENAO SE a = 3 ENTAO .... FIMSEFIM SE
...IF ( a = = 0 ) THEN ...ELSEIF ( a = = 3 ) ....END IF
Sintaxe SE... SENAO...SE
...SE a = 0 E a > 10
ENTAO ....SENAO SE a = 3 ENTAO .... FIMSEFIM SE
...IF ( ( a = =
0 ) .AND. ( a > 10) ) THEN
...ELSEIF ( a = = 3 ) ....END IF
Sintaxe ESCOLHA
...Inteiro : a ;...ESCOLHA a CASO 1 : ....CASO 3 : ...CASO
CONTRARIO: ...FIM ESCOLHA
...Integer a...SELECT CASE
( a ) ...CASE (1) ...CASE (3) ...CASE DEFAULT ...END SELECT
Sintaxe ENQUANTO-FAÇA (teste no início)
Ler (n) ;cont 0 ; ENQUANTO cont < n
FACA inicio ... cont cont + 1; fimFIM ENQUANTO
Read*, nCont = 0 DO WHILE ( cont < n) ... cont = cont + 1
END DO
Sintaxe ENQUANTO-FAÇA (teste no início) com 2 condições
ENQUANTO (cont < n) E ( t = 0)
FACA iniciofimFIM ENQUANTO
DO WHILE (( cont < n) .AND. (t = = 0))
... cont = cont + 1
END DO