Você está na página 1de 14

PROGRAMAO DE COMPUTADORES

NOES DE FORTRAN

I - INTRODUO
A linguagem FORTRAN, a primeira linguagem de programao de alto nvel (surgiu em 1956), foi proposta e implementada para auxiliar os programadores na codificao de problemas tcnicos e cientficos cuja soluo requer a utilizao de computadores eletrnicos. O FORTRAN uma das linguagens mais popular e difundida no meio tcnico e cientfico, muitas bibliotecas computacionais na rea de matemtica esto disponveis nesta linguagem. NOTAO: [] {} ... Os Colchetes indicam de tratar-se de um item opcional. As chaves encerram uma lista de itens dos quais somente um item pode ser usado. As reticncias indicam que o item precedente pode aparecer uma ou mais vezes em sucesso. EXPRESSES Uma expresso FORTRAN, definida como uma combinao de itens sintticos, isto : uma expresso pode consistir de uma nica constante, de uma nica varivel, de um nico elemento ou conjunto, ou uma combinao de constantes, variveis, elementos ou conjuntos, unidos com um ou mais operadores. Os operadores especificam as computaes a serem realizadas sobres os valores dos elementos bsicos. Por exemplo, a expresso: x + z , consiste de duas variveis unidas pelo operador + TIPOS DE EXPRESSES: Aritmticas: produz somente um valor que sempre um nmero cujo tipo real, inteiro ou complexo. Caracteres: produz somente um valor que sempre uma cadeia de caracteres. Relacionais: produz somente um valor que sempre uma constante lgica. Lgicas: produz somente um valor que sempre uma constante lgica. Booleanas: produz somente um valore que sempre do tipo Booleano.

OPERADORES ARITIMTICOS Operador ** * / + + Definio Potenciao Multiplicao Diviso Adio Mais unitrio Subtrao Menos unitrio Uso do Operador a**b a*b a/b a+b +a a-b -a Significado a elevado a potncia b a multiplicado por b a dividido por b a mais b o mesmo que a a menos b a com sinal trocado

OPERADOR CARACTERE Operador // Definio Concatenao Uso do Operador a//b Significado a encadeado com b

O resultado de uma operao de concatenao uma cadeia de caracteres encadeando o primeiro operando imediatamente com o segundo operando, sendo seu comprimento igual soma dos comprimentos dos operandos. Por exemplo o valor de: 'AB'//'EFG' , : 'ABEFG.' OPERADORES RELACIONAIS Operador .EQ. .NE. .LT. .LE. .GT. .GE. Definio Igual a Diferente de Menor que Menor ou igual Maior que Maior ou igual Uso do Operador a.EQ.b a.NE.b a.LT.b a.LE.b a.GT.b a.GE.b Significado a=b? a b? a<b? a b? a>b? a b?

OPERADORES LGICOS Operador Definio Uso do Operador Significado .NOT. Negao Lgica .NOT.a Complemento de a: se a verdade, ento .NOT.a falso, se a falso ento .AND. Conjuno lgica a.AND.b .NOT.a. verdade. Produto Booleano de a por b: se a e b so verdade, ento a.AND.b verdade; se a ou b ou ambos so falsos, ento .OR. Disjuno Inclusivo lgica a.OR.b a.AND.b falso. Soma Booleana de a com b: se a ou b ou ambos so verdade, ento a.OR.b verdade; se a e b so falsos, ento .EQV. Equivalncia Lgica a.EQV.b a.OR.b falso. Equivalncia lgica de a com b: se a e b so ambos verdade ou ambos falsos, ento a.EQV.b verdade, caso contrrio .NEQV. No equivalncia lgica a.NEQV.b falso. No equivalncia lgica de a com b: se a e b so ambos verdade ou ambos falsos, ento a.EQV.b falso, caso contrrio verdade. EXEMPLO:
0 A 10

Se desejarmos testar se o valor da varivel A satisfaz a inequao: , na linguagem FORTRAN devemos utilizar: 0.LE.A.AND.A.GT.10

II - COMANDOS PARA DECLARAO DOS TIPOS DE VARIVEIS


2.1 - INTEGER INTEGER usado para declarar, explicitamente, um nome de varivel, conjunto de variveis, constante simblica, como sendo do tipo inteiro. Sintaxe: Exemplo: INTEGER a,b,c,d(10) 2.2 - COMANDO REAL O comando REAL usado para declarar, explicitamente, um nome de varivel, conjunto de variveis, constante simblica como sendo do tipo real. Exemplo: REAL a,b,c,d(10) 2.3 - COMANDO CHARACTER O comando CHARACTER usado para declarar, explicitamente, um nome de varivel, conjunto de variveis, constante simblica, como sendo do tipo alfa-numrica Sintaxe: CHARACTER <VARIVEL>[*s] S Nmero de caracteres, deve ser um nmero inteiro positivo.

Exemplo: CHARACTER N1*10, N2*20, C*30 2.4 - COMANDO LOGICAL O comando LOGICAL usado para declarar, explicitamente, um nome de varivel, conjunto de variveis, como sendo do tipo lgica. As variveis lgicas devem ser .TRUE. (verdadeiro) ou .FALSE. (falso). EXEMPLO: LOGICAL B,C

OBS: A maioria dos compiladores da linguagem FORTRAN no permite que sejam feitas operaes entre variveis de tipo diferentes. Exemplo se a varivel J do tipo INTEGER e a varivel A do tipo REAL, ento a soma J + A causa um erro durante a execuo do programa, portanto se desejarmos que o resultado desta soma seja uma varivel do tipo REAL devemos converter a varivel J (INTEGER) para uma varivel (REAL), atravs do comando FLOAT, neste caso pode-se realizar a soma destas duas variveis : FLOAT(J) + A FLOAT(var) INT(var) REAL A INTEGER C A = 2.64 C = INT(A) PRINT 10,C FORMAT(3X,'VALOR DE C = ',I2) STOP END Integer Real Real*4 Integer*4

10

III - COMANDOS PARA DE ENTRADA SADA


3.1 - COMANDO WRITE O comando WRITE usado para transferir dados para arquivos externos e internos. Sintaxe: WRITE ( unit, fmt ) lista de variveis Unit Fmt Nmero que identifica o dispositivo de sada (ARQUIVO, IMPRESSORA, VDEO), o dispositivo padro o vdeo e identificado pelo smbolo *. Pode ser um nmero (LABEL) associado ao formato de sada dos dados ou pode ser utilizado para especificar diretamente o formato da varivel a ser transferida, a qual deve ser escrita utilizando os seguintes delimitadores: '(tipo do formato)'. Pode-se omitir a especificao do formato (utiliza-se o dispositivo padro), para isto necessrio utilizar o smbolo *. Exemplos: Se a = 2.30 e b = 323,141415, e ambas as variveis so do tipo REAL, ento:

a)

WRITE(*,*) a,b

Apresenta os seguintes valores de a e b no vdeo: 2.300000 323.1414 b) 10 WRITE(8,10) a,b FORMAT(3X,'Valor de a = ', f5.3, 5X,'Valor de b = ', f6.2)

Apresenta a seguinte mensagem na unidade 8 (que pode ser vdeo, impressora ou arquivo): Valor de a = 2.300 Valor de b = 323.14

Se a varivel nome = 'LINGUAGEM FORTRAN' do tipo CHARACTER*17, ento: c) WRITE(*, 'A10') NOME Apresenta o valor da varivel nome com os 10 primeiros caracteres no vdeo: LINGUAGEM 3.2 - COMANDO PRINT O comando PRINT usado para transferir dados da lista para o vdeo. Sintaxe: PRINT fmt, lista de variveis Fmt Pode ser um nmero (LABEL) associado ao formato de sada dos dados ou pode ser utilizado para especificar diretamente o formato da varivel a ser transferida, a qual deve ser escrita utilizando os seguintes delimitadores: '(tipo do formato)'. Pode-se omitir a especificao do formato (utiliza-se o dispositivo padro), para isto necessrio utilizar o smbolo *. Exemplos: Se a = 2.30 e b = 323,141415, e ambas as variveis so do tipo REAL, ento: a) PRINT*, a,b Apresenta os seguintes valores de a e b no vdeo: 2.300000 323.1414 b) PRINT 10,a,b 10 FORMAT(3X,'Valor de a = ', f5.3, 5X,'Valor de b = ', f6.2) Apresenta a seguinte mensagem no vdeo: Valor de a = 2.300 Valor de b = 323.14

Se a varivel JI = 2 do tipo INTEGER, ento: c) PRINT '(I3)',JI Apresenta o valor da varivel JI no vdeo com os 3 dgitos, neste caso os dois primeiros dgitos no so preenchidos (brancos). 3.3 - COMANDO READ O comando READ usado para adquirir dados de um arquivo ou teclado. Sintaxe: READ ( unit, fmt ) lista de variveis Unit Fmt Nmero que identifica o dispositivo de entrada (ARQUIVO, TECLADO), o dispositivo padro o teclado e identificado pelo smbolo *. Pode ser um nmero (LABEL) associado a formato de entrada dos dados ou pode ser utilizado para especificar diretamente o formato da varivel a ser transferida, a qual deve ser escrita utilizando os seguintes delimitadores: ('tipo do formato'). Pode-se omitir a especificao do formato (utiliza-se o dispositivo padro), para isto necessrio utilizar o smbolo *. Exemplos: a) READ(*,*) a b) READ(*,10) b,c 10 FORMAT(3X,f8.6, 5X, f7.6) c) READ(8,*) A,B

3.4 - COMANDO FORMAT O comando FORMAT um comando no executvel, usado em conjuno com os comandos de entrada e sada. Em outras palavras, o comando FORMAT descreve o formato nos quais os dados devem ser transferidos, especifica o tipo de converso que os dados devem sofrer entre a representao interna e a representao externa, e pode especificar requisitos de edio necessrios para esse formato. Sintaxe: n FORMAT(ef [,ef [,...,ef ]]) N (LABEL) associado a formato de entrada ou sada dos dados.

Ef

Especificao do formato.

As especificaes do formato de converso mais usadas no FORTRAN so: [a] Iw a Converso de dados inteiros decimais uma constante inteira sem sinal, usada para indicar o nmero de vezes que a mesma especificao do formato , repetitivamente usada. Se a for omitida, a w especificao ser usada somente uma vez. uma constante inteira sem sinal e no nula, indicando a largura do campo externo, em caracteres.

[a] Fw.d a

Converso de dados reais sem expoentes uma constante inteira sem sinal, usada para indicar o nmero de vezes que a mesma especificao do formato , repetitivamente usada. Se a for omitida, a especificao ser usada somente uma vez. uma constante inteira sem sinal e no nula, indicando a largura do campo externo, em caracteres. uma constante inteira sem sinal, indicando a quantidade de dgitos direita do ponto decimal interno ao campo w. Na sada todos os valores so arredondados.

w d

[a] Ew.d a

Converso de dados reais com expoente de simples preciso. uma constante inteira sem sinal, usada para indicar o nmero de vezes que a mesma especificao do formato , repetitivamente usada. Se a for omitida, a especificao ser usada somente uma vez. uma constante inteira sem sinal e no nula, indicando a largura do campo externo, em caracteres. uma constante inteira sem sinal , indicando a Quantidade de dgitos direita do ponto decimal interno ao campo w. Na sada todos os dados so arredondados.

w d

[a] Dw.d a

Converso de dados reais com expoente de dupla preciso. uma constante inteira sem sinal, usada para indicar o nmero de vezes que a mesma especificao do formato , repetitivamente usada. Se a for omitida, a especificao ser usada somente uma vez. uma constante inteira sem sinal e no nula, indicando a largura do campo externo, em caracteres. uma constante inteira sem sinal , indicando a Quantidade de dgitos direita do ponto decimal interno ao campo w. Na sada todos os dados so arredondados.

w d

[a] Aw a

Converso de dados caracteres. uma constante inteira sem sinal, usada para indicar o nmero de vezes que a mesma especificao do formato , repetitivamente usada. Se a for omitida, a especificao ser usada somente uma vez. uma constante inteira sem sinal e no nula, indicando a largura do campo externo, em caracteres.

CARACTERES DE CONTROLE DE FORMATAO


Smbolo [a] x [a] / \ RESULTADO Avana na apresentao dos dados um total de a caracteres. Avana uma linha. Permite que a apresentao dos dados continue na mesma linha. EXEMPLOS Se a = 34.456767 e b = 0.001312, ento: FORMATO F9.4 E10.4 E12.5 D10.4 A 34.4568 0.3446E+03 0.34457E+03 0.3446D+03 b 0.0013 0.1312E-02 0.13120E-02 0.1312D-02

Se N = 23, J =356, K=-13, ento: Varivel N J K Se NOME = 'teste de programao, ento: FORMATO A10 A5 RESULTADO teste de p teste FORMATO I2 I3 I3

IV- COMANDOS
4 .1 - COMANDO IF (SELEO)

O comando IF transfere o controle de fluxo ou executam outro comando (ou um bloco de comandos) dependendo da condio dada como resultado de uma expresso contida no particular comando IF. O comando IF , executa condicionalmente, blocos ou grupos de comandos executveis.
If(e1) THEN Bloco (1) ELSE Bloco (3) END IF Se a expresso lgica (e1) for verdadeira o bloco1 executado. Se a expresso lgica (e1) for falsa e a expresso (e2) for verdadeira o bloco2 executado. Se ambas as expresses lgicas (e1) e (e2) so falsas, ento o bloco3 executado. EXEMPLO IF(DELTA.GT.0) THEN X1 = (-B+DELTA)/(2.0*A) X2 = (-B+DELTA)/(2.0*A) AR = Razes distintas' ELSE IF(DELTA.EQ.0.) THEN X1 = -B/(2.0*A) X2 = X1 AR = Razes repetidas' ENDIF ELSE AR = Razes complexas' END IF

4.2 - COMANDO DO O comando DO um comando de controle que permite que uma seqncia de comandos seja repetitivamente executada enquanto o valor da varivel de controle estiver entre os limites especificados. DO <LABEL> <VAR>=nstart, nend[,step] <COMANDOS> END DO

<LABEL>

<LABEL> <VAR> nstart nend nstep

Valor inteiro contido entre 1 e 9999 uma varivel de controle do tipo inteiro. o parmetro inicial de k. o parmetro inicial de k. o parmetro de incremento de k.

EXEMPLO: Desejamos calcular o valor da varivel s, a qual definida pela seguinte expresso :

S = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +10
S=0 DO 400 J=1,10,1 S=S+J END DO

400

4.3 - COMANDO DO WHILE (ENQUANTO) O comando DO um comando de controle que permite que uma seqncia de comandos seja repetitivamente executada enquanto a expresso lgica permanecer verdadeira .TRUE. . DO <LABEL> WHILE (expresso lgica) <COMANDOS> END DO Enquanto a expresso lgica for verdadeira a seqncia de comandos representada pelo <COMANDOS> executada.

EXEMPLO: se desejarmos que seja apresentado, todos os valores da varivel K, a qual pode assumir os seguintes valores: 1,2,3,4,5,6,7,8,9,10, podemos utilizar dos seguintes comandos:
INTEGER K

K=0 DO WHILE (K.LT.10) K=K+1 PRINT *,K END DO END

4.6 COMAN DO STOP O comando executvel STOP termina a execuo do programa, pode exibir uma informao no vdeo. STOP [' mensagem'] EXEMPLO STOP 'PROGRAMA ABORTADO' 4.7 - COMANDO END O comando END indica o final fsico de uma unidade de programa para o compilador. Um programa na linguagem FORTRAN tem dois pontos terminais. O primeiro um ponto terminal lgico, indicando o fim da execuo do programa. Esse terminal lgico indicado pelo comando STOP. O segundo ponto terminal o ponto terminal fsico, indicando o fim do processo de compilao. Esse ponto terminal fsico indicado pelo comando END, que deve ser o ltimo comando numa unidade de programa FORTRAN. A forma geral do comando END : END Cada unidade de programa (isto , um programa principal, um subprograma FUNCTION, um subprograma SUBROUTINE) deve conter um e somente um comando END.

Você também pode gostar