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 , !oi proposta e implementada para au"iliar os programadores na #odi!i#ao de pro$lemas t%#ni#os e #ient!i#os #u&a soluo re'uer a utili(ao de #omputadores eletr)ni#os* O FORTRAN % uma das linguagens mais popular e di!undida no meio t%#ni#o e #ient!i#o, muitas $i$liote#as #omputa#ionais na +rea de matem+ti#a esto disponveis nesta linguagem* NOTA,-O. /0 45 *** Os 1ol#2etes indi#am de tratar3se de um item op#ional* As #2aves en#erram uma lista de itens dos 'uais somente um item pode ser usado* As reti#6n#ias indi#am 'ue o item pre#edente pode apare#er uma ou mais ve(es em su#esso* EXPRESSES 7ma e"presso FORTRAN, % de!inida #omo uma #om$inao de itens sint+ti#os, isto %. uma e"presso pode #onsistir de uma 8ni#a #onstante, de uma 8ni#a vari+vel, de um 8ni#o elemento ou #on&unto, ou uma #om$inao de #onstantes, vari+veis, elementos ou #on&untos, unidos #om um ou mais operadores* Os operadores espe#i!i#am as #omputa9es a serem reali(adas so$res os valores dos elementos $+si#os* :or e"emplo, a e"presso. " ; ( , #onsiste de duas vari+veis unidas pelo operador ; TIPOS DE EXPRESSES: Aritm%ti#as. produ( somente um valor 'ue % sempre um n8mero #u&o tipo % real, inteiro ou #omple"o* 1ara#teres. produ( somente um valor 'ue % sempre uma #adeia de #ara#teres* Rela#ionais. produ( somente um valor 'ue % sempre uma #onstante l<gi#a* =<gi#as. produ( somente um valor 'ue % sempre uma #onstante l<gi#a* >ooleanas. produ( somente um valore 'ue % sempre do tipo >ooleano*

OPERADORES ARITIMTICOS Operador ?? ? A ; ; 3 3 Definio :oten#iao @ultipli#ao Biviso Adio @ais unit+rio Cu$trao @enos unit+rio Uso do Operador a??$ a?$ aA$ a;$ ;a a3$ 3a Significado a elevado a pot6n#ia $ a multipli#ado por $ a dividido por $ a mais $ o mesmo 'ue a a menos $ a #om sinal tro#ado

OPERADOR CARACTERE Operador AA Definio 1on#atenao Uso do Operador aAA$ Significado a en#adeado #om $

O resultado de uma operao de #on#atenao % uma #adeia de #ara#teres en#adeando o primeiro operando imediatamente #om o segundo operando, sendo seu #omprimento igual D soma dos #omprimentos dos operandos* :or e"emplo o valor de. EA>EAAEFFGE , %. EA>FFG*E OPERADORES RE ACIO!AIS Operador *FH* *NF* *=T* *=F* *GT* *GF* Definio Igual a Bi!erente de @enor 'ue @enor ou igual @aior 'ue @aior ou igual Uso do Operador a*FH*$ a*NF*$ a*=T*$ a*=F*$ a*GT*$ a*GF*$ Significado aJ$K a$K aL$K a$K aM$K a$K

OPERADORES "#ICOS Operador Definio Uso do Operador Significado *NOT* Negao =<gi#a *NOT*a 1omplemento de a. se a % verdade, ento *NOT*a % !also, se a % !also ento *ANB* 1on&uno l<gi#a a*ANB*$ *NOT*a* % verdade* :roduto >ooleano de a por $. se a e $ so verdade, ento a*ANB*$ % verdadeN se a ou $ ou am$os so !alsos, ento *OR* Bis&uno In#lusivo l<gi#a a*OR*$ a*ANB*$ % !also* Coma >ooleana de a #om $. se a ou $ ou am$os so verdade, ento a*OR*$ % verdadeN se a e $ so !alsos, ento *FHO* F'uival6n#ia =<gi#a a*FHO*$ a*OR*$ % !also* F'uival6n#ia l<gi#a de a #om $. se a e $ so am$os verdade ou am$os !alsos, ento a*FHO*$ % verdade, #aso #ontr+rio *NFHO* No e'uival6n#ia l<gi#a a*NFHO*$ % !also* No e'uival6n#ia l<gi#a de a #om $. se a e $ so am$os verdade ou am$os !alsos, ento a*FHO*$ % !also, #aso #ontr+rio % verdade* FPF@:=O.
Q A 1Q

Ce dese&armos testar se o valor da vari+vel A satis!a( a ine'uao. , na linguagem FORTRAN devemos utili(ar. Q*=F*A*ANB*A*GT*1Q

II - COMANDOS PARA DECLARAO DOS TIPOS DE VARIVEIS


$%& ' I!TE#ER INTFGFR % usado para de#larar, e"pli#itamente, um nome de vari+vel, #on&unto de vari+veis, #onstante sim$<li#a, #omo sendo do tipo inteiro* Cinta"e. F"emplo. INTFGFR a,$,#,d(1Q $%$ ' COMA!DO REA O #omando RFA= % usado para de#larar, e"pli#itamente, um nome de vari+vel, #on&unto de vari+veis, #onstante sim$<li#a #omo sendo do tipo real* F"emplo. RFA= a,$,#,d(1Q $%( ' COMA!DO C)ARACTER O #omando 1RARA1TFR % usado para de#larar, e"pli#itamente, um nome de vari+vel, #on&unto de vari+veis, #onstante sim$<li#a, #omo sendo do tipo al!a3num%ri#a Cinta"e. C)ARACTER *+ARI,+E -./s0 C N8mero de #ara#teres, deve ser um n8mero inteiro positivo*

F"emplo. 1RARA1TFR N1?1Q, NS?SQ, 1?TQ $%1 ' COMA!DO O#ICA O #omando =OGI1A= % usado para de#larar, e"pli#itamente, um nome de vari+vel, #on&unto de vari+veis, #omo sendo do tipo l<gi#a* As vari+veis l<gi#as devem ser *TR7F* (verdadeiro ou *FA=CF* (!also * FPF@:=O. =OGI1A= >,1

O2S: A maioria dos #ompiladores da linguagem FORTRAN no permite 'ue se&am !eitas opera9es entre vari+veis de tipo di!erentes* F"emplo se a vari+vel U % do tipo INTFGFR e a vari+vel A % do tipo RFA=, ento a soma U ; A #ausa um erro durante a e"e#uo do programa, portanto se dese&armos 'ue o resultado desta soma se&a uma vari+vel do tipo RFA= devemos #onverter a vari+vel U (INTFGFR para uma vari+vel (RFA= , atrav%s do #omando F=OAT, neste #aso pode3se reali(ar a soma destas duas vari+veis . F=OAT(U ; A 3 OAT45ar6 I!T45ar6 RFA= A INTFGFR 1 A J S*6V 1 J INT(A :RINT 1Q,1 FOR@AT(TP,EOA=OR BF 1 J E,IS CTO: FNB Integer Real Real?V Integer?V

1Q

III - COMANDOS PARA DE ENTRADA SADA


(%& ' COMA!DO 7RITE O #omando WRITF % usado para trans!erir dados para ar'uivos e"ternos e internos* Cinta"e. 7RITE 4 8ni9: f;9 6 <is9a de 5ari=5eis 7nit Fmt N8mero 'ue identi!i#a o dispositivo de sada (ARH7IOO, I@:RFCCORA, OXBFO , o dispositivo padro % o vdeo e identi!i#ado pelo sm$olo ?* :ode ser um n8mero (=A>F= asso#iado ao !ormato de sada dos dados ou pode ser utili(ado para espe#i!i#ar diretamente o !ormato da vari+vel a ser trans!erida, a 'ual deve ser es#rita utili(ando os seguintes delimitadores. E(tipo do !ormato E* :ode3se omitir a espe#i!i#ao do !ormato (utili(a3se o dispositivo padro , para isto % ne#ess+rio utili(ar o sm$olo ?* F"emplos. Ce a J S*TQ e $ J TST,1V1V15, e am$as as vari+veis so do tipo RFA=, ento.

WRITF(?,? a,$

Apresenta os seguintes valores de a e $ no vdeo. S*TQQQQQ TST*1V1V $ 1Q WRITF(Y,1Q a,$ FOR@AT(TP,EOalor de a J E, !5*T, 5P,EOalor de $ J E, !6*S

Apresenta a seguinte mensagem na unidade Y ('ue pode ser vdeo, impressora ou ar'uivo . Oalor de a J S*TQQ Oalor de $ J TST*1V

Ce a vari+vel nome J E=ING7AGF@ FORTRANE % do tipo 1RARA1TFR?1Z, ento. # WRITF(?, EA1QE NO@F Apresenta o valor da vari+vel nome #om os 1Q primeiros #ara#teres no vdeo. =ING7AGF@ (%$ ' COMA!DO PRI!T O #omando :RINT % usado para trans!erir dados da lista para o vdeo* Cinta"e. PRI!T f;9: <is9a de 5ari=5eis Fmt :ode ser um n8mero (=A>F= asso#iado ao !ormato de sada dos dados ou pode ser utili(ado para espe#i!i#ar diretamente o !ormato da vari+vel a ser trans!erida, a 'ual deve ser es#rita utili(ando os seguintes delimitadores. E(tipo do !ormato E* :ode3se omitir a espe#i!i#ao do !ormato (utili(a3se o dispositivo padro , para isto % ne#ess+rio utili(ar o sm$olo ?* F"emplos. Ce a J S*TQ e $ J TST,1V1V15, e am$as as vari+veis so do tipo RFA=, ento. a :RINT?, a,$ Apresenta os seguintes valores de a e $ no vdeo. S*TQQQQQ TST*1V1V $ :RINT 1Q,a,$ 1Q FOR@AT(TP,EOalor de a J E, !5*T, 5P,EOalor de $ J E, !6*S Apresenta a seguinte mensagem no vdeo. Oalor de a J S*TQQ Oalor de $ J TST*1V

Ce a vari+vel UI J S do tipo INTFGFR, ento. # :RINT E(IT E,UI Apresenta o valor da vari+vel UI no vdeo #om os T dgitos, neste #aso os dois primeiros dgitos no so preen#2idos ($ran#os * (%( ' COMA!DO READ O #omando RFAB % usado para ad'uirir dados de um ar'uivo ou te#lado* Cinta"e. READ 4 8ni9: f;9 6 <is9a de 5ari=5eis 7nit Fmt N8mero 'ue identi!i#a o dispositivo de entrada (ARH7IOO, TF1=ABO , o dispositivo padro % o te#lado e identi!i#ado pelo sm$olo ?* :ode ser um n8mero (=A>F= asso#iado a !ormato de entrada dos dados ou pode ser utili(ado para espe#i!i#ar diretamente o !ormato da vari+vel a ser trans!erida, a 'ual deve ser es#rita utili(ando os seguintes delimitadores. (Etipo do !ormatoE * :ode3se omitir a espe#i!i#ao do !ormato (utili(a3se o dispositivo padro , para isto % ne#ess+rio utili(ar o sm$olo ?* F"emplos. a RFAB(?,? a $ RFAB(?,1Q $,# 1Q FOR@AT(TP,!Y*6, 5P, !Z*6 # RFAB(Y,? A,>

(%1 ' COMA!DO 3ORMAT O #omando FOR@AT % um #omando no e"e#ut+vel, usado em #on&uno #om os #omandos de entrada e sada* Fm outras palavras, o #omando FOR@AT des#reve o !ormato nos 'uais os dados devem ser trans!eridos, espe#i!i#a o tipo de #onverso 'ue os dados devem so!rer entre a representao interna e a representao e"terna, e pode espe#i!i#ar re'uisitos de edio ne#ess+rios para esse !ormato* Cinta"e. n 3ORMAT4ef .:ef .:%%%:ef 006 N (=A>F= asso#iado a !ormato de entrada ou sada dos dados*

F!

Fspe#i!i#ao do !ormato*

As espe#i!i#a9es do !ormato de #onverso mais usadas no FORTRAN so. .a0 I> a 1onverso de dados inteiros de#imais [ uma #onstante inteira sem sinal, usada para indi#ar o n8mero de ve(es 'ue a mesma espe#i!i#ao do !ormato %, repetitivamente usada* Ce a !or omitida, a \ espe#i!i#ao ser+ usada somente uma ve(* [ uma #onstante inteira sem sinal e no nula, indi#ando a largura do #ampo e"terno, em #ara#teres*

.a0 3>%d a

1onverso de dados reais sem e"poentes [ uma #onstante inteira sem sinal, usada para indi#ar o n8mero de ve(es 'ue a mesma espe#i!i#ao do !ormato %, repetitivamente usada* Ce a !or omitida, a espe#i!i#ao ser+ usada somente uma ve(* [ uma #onstante inteira sem sinal e no nula, indi#ando a largura do #ampo e"terno, em #ara#teres* [ uma #onstante inteira sem sinal, indi#ando a 'uantidade de dgitos + direita do ponto de#imal interno ao #ampo \* Na sada todos os valores so arredondados*

\ d

.a0 E>%d a

1onverso de dados reais #om e"poente de simples pre#iso* [ uma #onstante inteira sem sinal, usada para indi#ar o n8mero de ve(es 'ue a mesma espe#i!i#ao do !ormato %, repetitivamente usada* Ce a !or omitida, a espe#i!i#ao ser+ usada somente uma ve(* [ uma #onstante inteira sem sinal e no nula, indi#ando a largura do #ampo e"terno, em #ara#teres* [ uma #onstante inteira sem sinal , indi#ando a Huantidade de dgitos D direita do ponto de#imal interno ao #ampo \* Na sada todos os dados so arredondados*

\ d

.a0 D>%d a

1onverso de dados reais #om e"poente de dupla pre#iso* [ uma #onstante inteira sem sinal, usada para indi#ar o n8mero de ve(es 'ue a mesma espe#i!i#ao do !ormato %, repetitivamente usada* Ce a !or omitida, a espe#i!i#ao ser+ usada somente uma ve(* [ uma #onstante inteira sem sinal e no nula, indi#ando a largura do #ampo e"terno, em #ara#teres* [ uma #onstante inteira sem sinal , indi#ando a Huantidade de dgitos D direita do ponto de#imal interno ao #ampo \* Na sada todos os dados so arredondados*

\ d

.a0 A> a

1onverso de dados #ara#teres* [ uma #onstante inteira sem sinal, usada para indi#ar o n8mero de ve(es 'ue a mesma espe#i!i#ao do !ormato %, repetitivamente usada* Ce a !or omitida, a espe#i!i#ao ser+ usada somente uma ve(* [ uma #onstante inteira sem sinal e no nula, indi#ando a largura do #ampo e"terno, em #ara#teres*

CARACTERES DE CO!TRO E DE 3ORMATA?@O


SA;Bo<o /a0 " /a0 A ] RESU TADO Avana na apresentao dos dados um total de a #ara#teres* Avana uma lin2a* :ermite 'ue a apresentao dos dados #ontinue na mesma lin2a* FPF@:=OC Ce a J TV*V56Z6Z e $ J Q*QQ1T1S, ento. FOR@ATO F9*V F1Q*V F1S*5 B1Q*V A TV*V56Y Q*TVV6F;QT Q*TVV5ZF;QT Q*TVV6B;QT $ Q*QQ1T Q*1T1SF3QS Q*1T1SQF3QS Q*1T1SB3QS

Ce N J ST, U JT56, ^J31T, ento. Oari+vel N U ^ Ce NO@F J Eteste de programao, ento. FOR@ATO A1Q A5 RFC7=TABO teste de p teste FOR@ATO IS IT IT

IV- COMANDOS
1 %& ' COMA!DO I3 4SE E?@O6

O #omando IF trans!ere o #ontrole de !lu"o ou e"e#utam outro #omando (ou um $lo#o de #omandos dependendo da #ondio dada #omo resultado de uma e"presso #ontida no parti#ular #omando IF* O #omando IF , e"e#uta #ondi#ionalmente, $lo#os ou grupos de #omandos e"e#ut+veis*
I!(e1 TRFN >lo#o (1 F=CF >lo#o (T FNB IF Ce a e"presso l<gi#a (e1 !or verdadeira o $lo#o1 % e"e#utado* Ce a e"presso l<gi#a (e1 !or !alsa e a e"presso (eS !or verdadeira o $lo#oS % e"e#utado* Ce am$as as e"press9es l<gi#as (e1 e (eS so !alsas, ento o $lo#oT % e"e#utado* EXEMP O IF(BF=TA*GT*Q TRFN P1 J (3>;BF=TA A(S*Q?A PS J (3>;BF=TA A(S*Q?A AR J Ra(es distintasE F=CF IF(BF=TA*FH*Q* TRFN P1 J 3>A(S*Q?A PS J P1 AR J Ra(es repetidasE FNBIF F=CF AR J Ra(es #omple"asE FNB IF

1%$ ' COMA!DO DO O #omando BO % um #omando de #ontrole 'ue permite 'ue uma se'_6n#ia de #omandos se&a repetitivamente e"e#utada en'uanto o valor da vari+vel de #ontrole estiver entre os limites espe#i!i#ados* BO L=A>F=M LOARMJnstart, nend/,step0 L1O@ANBOCM FNB BO

L=A>F=M

L=A>F=M LOARM nstart nend nstep

Oalor inteiro #ontido entre 1 e 9999 [ uma vari+vel de #ontrole do tipo inteiro* [ o par`metro ini#ial de a* [ o par`metro ini#ial de a* [ o par`metro de in#remento de a*

EXEMP O: Bese&amos #al#ular o valor da vari+vel s, a 'ual % de!inida pela seguinte e"presso .

C J 1 ; S ; T ; V ; 5 ; 6 ; Z ; Y ; 9 ;1Q
CJQ BO VQQ UJ1,1Q,1 CJC;U FNB BO

VQQ

1%( ' COMA!DO DO 7)I E 4E!CUA!TO6 O #omando BO % um #omando de #ontrole 'ue permite 'ue uma se'_6n#ia de #omandos se&a repetitivamente e"e#utada en'uanto a e"presso l<gi#a permane#er verdadeira *TR7F* * BO L=A>F=M WRI=F (e"presso l<gi#a L1O@ANBOCM FNB BO Fn'uanto a e"presso l<gi#a !or verdadeira a se'_6n#ia de #omandos representada pelo L1O@ANBOCM % e"e#utada*

EXEMP O. se dese&armos 'ue se&a apresentado, todos os valores da vari+vel ^, a 'ual pode assumir os seguintes valores. 1,S,T,V,5,6,Z,Y,9,1Q, podemos utili(ar dos seguintes #omandos.
INTFGFR ^

^JQ BO WRI=F (^*=T*1Q ^J^;1 :RINT ?,^ FNB BO FNB

1%D ' COMA!DO STOP O #omando e"e#ut+vel CTO: termina a e"e#uo do programa, pode e"i$ir uma in!ormao no vdeo* STOP [' mensagem'] FPF@:=O CTO: E:ROGRA@A A>ORTABOE 1%E ' COMA!DO E!D O #omando FNB indi#a o !inal !si#o de uma unidade de programa para o #ompilador* 7m programa na linguagem FORTRAN tem dois pontos terminais* O primeiro % um ponto terminal l<gi#o, indi#ando o !im da e"e#uo do programa* Fsse terminal l<gi#o % indi#ado pelo #omando CTO:* O segundo ponto terminal % o ponto terminal !si#o, indi#ando o !im do pro#esso de #ompilao* Fsse ponto terminal !si#o % indi#ado pelo #omando FNB, 'ue deve ser o 8ltimo #omando numa unidade de programa FORTRAN* A !orma geral do #omando FNB %. END 1ada unidade de programa (isto %, um programa prin#ipal, um su$programa F7N1TION, um su$programa C7>RO7TINF deve #onter um e somente um #omando FNB*

Você também pode gostar