Você está na página 1de 8

Fortran

Origem: Wikipédia, a enciclopédia livre.

A família de linguagens de programação conhecida


globalmente como Fortran foi desenvolvida a partir da
Fortran
década de 1950 e continua a ser usada hoje em dia. O nome é
um acrônimo da expressão "IBM Mathematical FORmula
TRANslation System"

As versões iniciais da linguagem eram conhecidas como


FORTRAN, mas a tipografia em caixa alta foi ignorada na
representação das versões recentes da linguagem, começando
a partir do Fortran 90. Os padrões oficiais da linguagem
referem-se a ela atualmente como "Fortran".

A linguagem Fortran é principalmente usada em Ciência da


computação e Análise numérica. Apesar de ter sido
inicialmente uma linguagem de programação procedural, Paradigma multi-paradigma:
versões recentes de Fortran possuem características que estruturada,
permitem suportar programação orientada por objetos. imperativa (procedural,
orientada a objetos),
genérica
Surgido em 1957
Índice Última Fortran 2008 (ISO/IEC
versão 1539-1:2010) / 2010
História, versões e revisões
Criado por John Backus & IBM
Compiladores Estilo de forte, estática e manifesta
Características e extensões tipagem:
Dialetos: Absoft, Cray, gFortran,
Pontos fortes/fracos da sintaxe G95, IBM XL Fortran,
Padrões Hitachi, Intel, Lahey/Fujitsu,
NAG, Open Watcom,
Exemplos de código Pathscale, PGI, Silverfrost,
em FORTRAN 77 Oracle Solaris Studio,
Visual Fortran, outros
Resolvendo uma equação de 2°. grau
Influenciada Speedcoding
em Fortran 90 por
tabela de graus -> radians Influenciou ALGOL 58, BASIC, C,
em FORTRAN 95 Chapel, CMS-2, Julia, PL/I,
Área da superfície do cilindro PACT I, MUMPS e Ratfor
Extensão .f, .for, .ftn, .f90, .f95, .f03,
Referências do arquivo: .f08, .f15[1]
Ligações externas

História, versões e revisões


Foi a primeira linguagem de programação
imperativa. O primeiro compilador de FORTRAN foi
desenvolvido para o IBM 704 em 1954-57 por uma
equipe da IBM chefiada por John W. Backus. O
compilador era optimizado, pois os autores
acreditavam que ninguém iria usar essa linguagem se
a sua prestação não fosse comparável com a da
linguagem assembly. A linguagem Fortran conheceu
as seguintes evoluções:[2] :

1956. Fortran II é uma linguagem de


programação criada após a "original"
FORTRAN em 1954.[3] Esta originou outras An IBM 704 mainframe
linguagens como BASIC
1958. Fortran III Versão que nunca foi disponibilizada.
1962. Fortran IV A linguagem Fortran foi largamente adaptada por cientistas para a escrita de
programas numericamente intensivos, o que encorajou os produtores de compiladores a
escrever compiladores que gerassem código mais rápido.
1965. Documento ECMA Fortran[4]
1966. Fortran 66 (ANSI X3.9-1966)[5], quando a primeira versão padronizada da linguagem,
conhecida como FORTRAN IV ou FORTRAN 66, estava disponível, o Fortran já era a
linguagem mais usada pela comunidade científica. FORTRAN IV foi padronizada pela
American Standard Association (ASA).[6] A ampla disponibilidade de compiladores para
diferentes computadores, a simplicidade da linguagem, facilidade para ensiná-la, sua
eficiência e as vantagens introduzidas pelo uso de sub-rotinas e compilação independente
destas e a capacidade de lidar com número complexo, além de muitas outras características,
ajudaram em sua ampla difusão dentro da comunidade científica.
1978. Fortran 77 (ANSI X3.9-1978)[7], entre outras melhorias, facilita a programação de
estruturas com blocos. « IF / THEN/ / ELSE / ENDIF ». Em 1978, uma extensão introduzia
entre outros « DO WHILE / END DO »[8]. Uma característica marcante do FORTRAN 77 são
as regras de alinhamento das linhas do programa, uma herança da era dos cartões
perfurados. Originalmente, a sintaxe do FORTRAN 77 foi definida de forma que cada linha do
programa fosse escrita em um cartão perfurado, com um carácter por coluna, obedecendo as
seguintes regras:
Coluna 1 - usada para indicar linha de comentário. Um carácter na coluna 1 (geralmente "C",
"c" ou "*") indicava que todos os demais caracteres a partir da coluna 2 constituíam um
comentário e não um comando ou declaração.
Colunas 2-5 - reservadas para os "labels" das linhas (números inteiros entre 1 e 9999). Os
labels são usados para identificar e referenciar linhas específicas do programa.
Coluna 6 - quando marcada por um carácter, indicava que a linha era uma continuação da
linha anterior.
Colunas 7-72 - reservadas para os comandos e declarações.
Colunas 73 em diante - reservadas para comentários.

As mesmas regras continuaram em vigor , mesmo depois dos cartões perfurados terem caído em desuso e os
programas em FORTRAN 77 passarem a ser escritos diretamente em editores de texto.

Na mesma época que o FORTRAN 77 surgiu, já existiam outras linguagens de programação como o C,
Pascal, Ada e Modula, que haviam introduzido novos conceitos em programação ou fundamentado outros
como a tipagem explícita de variáveis e a definição de novos tipos de dados, o que permitia ao programador
definir estruturas de dados mais adequadas para resolver problemas; alocação dinâmica de dados;
subprogramas recursivos; controle de exceção (uma das principais características da linguagem Ada); e
estabelecimento de módulos.

O FORTRAN 77 não oferecia nenhum desses recursos e começou a ser pouco a pouco abandonado pela
comunidade científica que passou a recorrer a outras linguagens de programação.

1980. Fortran 8X. Durante a década de 1980, foi lançada uma nova revisão do 8x que
incorporava todos os conceitos acima citados (exceto a tipagem explícita e o controle de
exceção).
1990. Fortran 90 (ANSI X3.198-1992)[9] : O processo de definição do novo padrão foi longo e
demorado, mas permitiu o amadurecimento de muitos dos novos conceitos que a linguagem
apresentaria. A versão final desta revisão foi apresentada com o nome de FORTRAN 90.
FORTRAN 90 é tão eficiente quanto o C e o Pascal para os fins a que ela se destina.
FORTRAN 90 trouxe uma novidade para o mundo das linguagens de programação:
mecanismos para manipulação de arranjos, que não são oferecidos por nenhuma outra
linguagem.[10]
1995. Fortran 95 (ISO/IEC 1539-1:1997)[11] O padrão formal da linguagem mais recente,
publicado em 1996, é conhecido como Fortran 95[12]. Esta revisão do FORTRAN acrescentou
pequenas alterações ao FORTRAN 90, motivada pela necessidade de aproximar o padrão à
linguagem High Performance Fortran ou HPF a qual é voltada para o uso de computadores
com arquiteturas avançadas. A linguagem HPF é uma espécie de extensão do FORTRAN 90
e, atualmente, muitos fabricantes oferecem compiladores HPF baseados na linguagem
FORTRAN 90.
2003. Fortran 2003 (ISO/IEC 1539-1:2004)[13] : Desde 1997, o FORTRAN vem passando por
um novo processo de revisão. O FORTRAN 2003 irá incorporar um conjunto de novos
comandos que permitirão, entre outras coisas, o controle de exceções e programação
orientada a objetos.
2008. Fortran 2008 (ISO/IEC 1539-1:2010)[14]. O padrão mais recente, a ISO/IEC 1539-
1:2010, conhecido informalmente como Fortran 2008, foi aprovado em Setembro de 2010.[15]
Tal como o Fortran 95, sofreu pequenos melhoramentos, incorporando clarificações e
correções ao Fortran 2003, assim como algumas novas funcionalidades, tais como:
Submódulos – facilidades estruturais adicionais para os módulos; substitui ISO/IEC TR
19767:2005
Co-array Fortran – um modelo de execução paralela
A construção Scalable parallelism – para iterações sem interdependências.
O atributo CONTIGUOUS – especifica restrições na definição da estrutura lógica
A construção Block ou Dynamic scoping – pode obter declarações de objetos com uso do
escopo da construção
Tipo de dados ou componentes recursivos – como alternativa a indicadores recursivos em
páginas derivadas.

O padrão Final Draft international Standard (FDIS) está disponível como o documento N1830.[16] Outro
importante suplemento ao Fortran 2008 é a especificação técnica (TS) 29113 da ISO em Inglês Further
Interoperability of Fortran with C,[17][18] que foi submetida para aprovação do ISO em Maio de 2012. A
especificação adiciona suporte para acesso a descritores de array ou ve(c)tores da linguagem de
programação C e permite ignorar o tipo e importância dos argumentos.

Compiladores
O compilador livre gcc permite a compilação com o Fortran 77
(compilador g77[19], até ao 3.4.6) e depois o 90 e 95 (a partir de gcc
4.0.0, que substitui g77 para gfortran[20] · [21]), para as novas
plataformas, o compilador g95[22] é também baseado no gcc, mas já
não era mantido depois de 2011. O compilador g77, agora
distribuído separadamente do gcc, pode ser incluído no gcc para
compilar[23], e os seus binários são ainda disponibilizados para Código FORTRAN num Cartão
certos modelos de computadores[24] · [25] · [26]. Outros perfurado, mostrando as colunas de
compiladores, como o da empresa IBM, nunca foram muito texto especializadas 1-5, 6 e 73-80.
populares e esse aspecto foi especialmente notado no FORTRAN IV.
WATFOR, a versão do FORTRAN IV desenvolvida na Universidade
de Waterloo, Canadá, foi universalmente preferida, pois o compilador produzia melhores relatórios dos erros
de compilação. O software para a geração automática de fluxogramas a partir de programas em FORTRAN
também foi desenvolvido fora da IBM.

Compiladores Fortran para processamento paralelo e/ou distribuído em Cluster of Workstations (COW) ou
Cluster of PCs (agrupamentos de PCs):

gFortran -- g95 -- GNU Compiler Collection -- F2c -- Intel Fortran Compiler -- IBM VisualAge --
Open64

Características e extensões
O Fortran permite a criação de programas que primam pela velocidade de execução. Daí reside seu uso em
aplicações científicas computacionalmente intensivas como meteorologia, oceanografia, física, astronomia,
geofísica, engenharia, economia etc.

Inicialmente, a linguagem dependia da formatação precisa do código-fonte e do uso extensivo de números


de depoimento e de depoimentos goto. Estas idiossincrasias foram removidas de versões mais recentes da
linguagem. As diversas atualizações também introduziram conceitos "modernos" de programação, tais como
comentários no código-fonte e saídas de texto, IF-THEN-ELSE (em FORTRAN 77), recursividade (em
FORTRAN 90), e construções paralelas, enquanto se tentava preservar o perfil "leve" e a prestação de alto
rendimento que faziam a imagem de marca do Fortran. Entre as linguagens especializadas mais populares
baseadas em Fortran encontram-se a linguagem SAS, para gerar relatórios estatísticos, e SIMSCRIPT, para
simulação de processos onde estão envolvidas listas de espera. Vendedores de computadores científicos de
alto rendimento (Burroughs, CDC, Cray, IBM, Texas Instruments, …) adicionaram extensões à linguagem
Fortran para fazer uso de características especiais do hardware, tais como: cache de instruções, pipeline da
CPU, disposições de vectores, etc. Por exemplo, um dos compiladores de Fortran da IBM (H Extended IUP)
possuía um nível de optimização que reordenava as instruções do código para manter as unidades
aritméticas da máquina ocupadas simultaneamente, obtendo assim um rendimento máximo. Outro exemplo
é CFD, uma "versão" especial da linguagem Fortran projetada especialmente para o supercomputador
ILLIAC IV, que se encontra no Centro de Pesquisa Ames da NASA. Estas extensões têm vindo desde
então a desaparecer ou então os seus elementos têm sido incorporados no padrão principal da linguagem; a
extensão da linguagem que ainda persiste é a OpenMP, que é uma extensão multiplataforma para
programação de memória partilhada. Uma extensão recente, CoArray Fortran, tem como objectivo a
promoção de programação paralela.

Pontos fortes/fracos da sintaxe


No que foi a primeira tentativa de projeção de uma linguagem de programação de alto nível, a sintaxe da
linguagem é considerada arcaica por muitos programadores que aprenderam linguagens mais modernas. É
difícil escrever um loop for, e erros na escrita de apenas um carácter podem levar a erros durante o tempo de
execução em vez de erros de compilação, caso construções mais recentes não forem usadas, tais como estilo
livre do código fonte. Algumas das versões anteriores não possuíam facilidades que seriam tidas como úteis
em máquinas modernas, tais como a alocação dinâmica de memória. Deve-se, no entanto, ter em conta que a
sintaxe de Fortran foi "afinada" para o uso em trabalhos numéricos e científicos, e que muitas das suas
deficiências têm sido abordadas em revisões mais recentes da linguagem. Por exemplo, Fortran 95 possui
comandos muito breves para efetuar operações matemáticas com matrizes e disposições de tipos, o que não
só melhora em muito a leitura do programa como também fornece informação útil ao compilador, o que
torna possível a vetorização de operações. Por estas razões, Fortran não é muito utilizado fora dos campos
da ciência da computação e da análise numérica, mas permanece a linguagem a escolher para desempenhar
tarefas da área da computação numérica de alto rendimento.

Padrões
Os dois padrões abaixo refletem as implementações actuais de Fortran:

ANSI X3.198-1992 (R1997). Título: Programming Language "Fortran" Extended. É


informalmente conhecida como Fortran 90.O padrão é publicado pela ANSI.
ISO/IEC 1539-1:1997. Título: Information technology - Programming languages - Fortran - Part
1: Base language. É informalmente conhecido como Fortran 95. Existem mais duas partes
deste padrão. A Parte 1 foi formalmente adotada pelo ANSI.

Exemplos de código

em FORTRAN 77

C 1 2 3 4
C234567890123456789012345678901234567890
PROGRAM HELLO
PRINT *, "HELLO WORLD!" ! ← USANDO COMANDO PRINT
END

Resolvendo uma equação de 2°. grau

C 1 2 3 4 5 6
C2345678901234567890123456789012345678901234567890123456789012345
PROGRAM BASKHARA
C
REAL :: A,B,C, DELTA, X1,X2, RE, IM
C
PRINT *, "Este programa resolve uma equação de 2o.grau"
PRINT *, "no formato: a*x**2 + b*x + c = 0"
C
PRINT 10, "Digite a, b, c: "
10 FORMAT( A, 1X, $)
20 READ(*, *, ERR=20)A, B, C
C
DELTA= B**2-4.0*A*C
C
IF( DELTA.GT.0 )THEN ! (DUAS RAÍZES REAIS)
X1= ( -B-SQRT(DELTA) ) / ( 2.0*A )
X2= ( -B+SQRT(DELTA) ) / ( 2.0*A )
PRINT *, "RAIZES: X1= ", X1
PRINT *, "X2= ", X2
ELSE
IF( DELTA.EQ.0 ) THEN ! (DUAS RAÍZES REAIS IGUAIS)
X1= -B / ( 2.0*A )
X2= X1
PRINT *, "RAIZES: X1=X2= ", X1
ELSE ! (DUAS RAÍZES COMPLEXAS)
RE= -B / ( 2.0*A )
IM= SQRT( -DELTA ) / ( 2.0*A )
PRINT *, "RAIZES COMPLEXAS: X1= ", RE,"- ", IM, "i"
PRINT *, "X2= ", RE, "+ ",IM, "i"
END IF
END IF
C
END PROGRAM BASKHARA

em Fortran 90

tabela de graus -> radians

PROGRAM DEGRAD
! Declaracao das variaveis
INTEGER DEG
REAL RAD, COEFF
! Inicio do programa
WRITE ( *, 10)
10 FORMAT (' ',20('*') / &
& '* Degres * Radians *' / &
& ' ', 20('*') )
! Corpo do programa
COEFF = (2.0 * 3.1416) / 360.0
DO DEG = 0, 90
RAD = DEG * COEFF
WRITE ( *, 20) DEG, RAD
20 FORMAT (' * ',I4,' * ',F7.5,' *')
END DO
! Fim da tabela
WRITE ( *, 30)
30 FORMAT (' ',20('*') )
! Fim do programa
STOP
END PROGRAM DEGRAD

em FORTRAN 95

program ola
print*,"Olá Mundo!"
end program ola

Área da superfície do cilindro

program cilindro
! Calcula a área de um cilindro.
!
! Declara as variáveis e constantes.
implicit none ! Requer que todas as variáveis sejam declaradas
integer :: ierr
real :: raio,altura,area
real , parameter :: pi = 3.14159
do
! Pergunta ao usuário o raio e a altura e lê os valores.
write (*,*) "Entre com o raio e a altura, 'q' para sair."
read (*,*,iostat=ierr) raio,altura
!
! Se o raio e a altura não puderam ser lidos da entrada, termina o programa.
if (ierr /= 0) stop "finalizando o programa"
!
! Calcula a área. O sinal ** significa "eleva a uma potência".
area = 2*pi*(raio**2 + raio*altura)
!
! Escreve as variáveis de entrada (raio, altura) e a saida (área) na tela.
write (*,"(1x,'raio=',f6.2,5x,'altura=',f6.2,5x,'area=',f6.2)") raio,altura,area
end do
end program cilindro

Referências
Editora da UFRGS, Porto Alegre, 2005.
1. «Overall Options - Using the GNU Compiler ISBN 85-7025-829-1.
Collection (GCC)» (https://gcc.gnu.org/onlin
edocs/gcc-4.4.1/gcc/Overall-Options.html). 11. «Standard Fortran 95» (https://web.archive.o
rg/web/20101122174901/http://fortran.com/f
gcc.gnu.org (em inglês). Consultado em 13
95_std.pdf) (PDF). Consultado em 25 de
de dezembro de 2017
setembro 2012. Arquivado do original (http://
2. Veja aqui o site de Working Group 5 (http://w www.fortran.com/f95_std.pdf) (PDF) em 22
ww.nag.co.uk/sc22wg5/) e de comité J3 (htt de novembro de 2010
p://www.j3-fortran.org/) para mais
12. da Cunha, Rudnei Dias, "Programação
informações sobre a evolução atual do
Científica em Fortran 95", Clube de Autores,
Acordo
Porto Alegre, 2010. ISBN 978-85-910277-0-
3. Feio, Rui Alberto Lopes (1986). Curso de 5.
Programação Fortran. Lisboa: Fundação
Calouste Gulbenkian. 191 páginas. Depósito 13. «Standard Fortran 2003» (https://web.archiv
e.org/web/20101122174733/http://fortran.co
Legal nº 13449/86
m/f03_std.pdf) (PDF). Consultado em 25 de
4. «Standard ECMA Fortran» (http://www.ecma setembro 2012. Arquivado do original (http://
-international.org/publications/files/ECMA-ST www.fortran.com/f03_std.pdf) (PDF) em 22
-WITHDRAWN/ECMA-9,%201st%20Editio de novembro de 2010
n,%20April%201965.pdf) (PDF). Consultado
14. «Standard Fortran 2008» (https://web.archiv
em 25 de setembro 2012
e.org/web/20101122174545/http://fortran.co
5. «Standard Fortran 66» (http://www.fh-jena.d m/f08_std.pdf) (PDF). Consultado em 25 de
e/~kleine/history/languages/ansi-x3dot9-196 setembro 2012. Arquivado do original (http://
6-Fortran66.pdf) (PDF). Consultado em 25 www.fortran.com/f08_std.pdf) (PDF) em 22
de setembro 2012 de novembro de 2010
6. Setzer, Valdemar Waingort; Simon, Imre; 15. N1836, Summary of Voting/Table of Replies
Kowaltowski, Tomasz (1972). Curso de on ISO/IEC FDIS 1539-1, Information
Fortran IV Básico. São Paulo: Edgard technology - Programming languages -
Blücher. p. 5. CDD 651.8 Fortran - Part 1: Base language
7. «Standard Fortran 77» (http://www.fh-jena.d ftp://ftp.nag.co.uk/sc22wg5/N1801-
e/~kleine/history/languages/ansi-x3dot9-197 N1850/N1836.pdf PDF ( 101 KiB)
8-Fortran77.pdf) (PDF). Consultado em 25 16. N1830, Information technology —
de setembro 2012 Programming languages — Fortran — Part
8. «MIL-STD-1753, Military Standard: Fortran, 1: Base language
DOD Supplement to American National ftp://ftp.nag.co.uk/sc22wg5/N1801-
Standard X3.9-1978» (http://www.everyspec. N1850/N1830.pdf PDF ( 7.9 MiB)
com/MIL-STD/MIL-STD+(1700+-+1799)/dow 17. ISO page to ISO/IEC DTS 29113, Further
nload.php?spec=MIL-STD-1753.011044.PD Interoperability of Fortran with C (http://www.
F) (PDF). Consultado em 25 de setembro iso.org/iso/iso_catalogue/catalogue_tc/catal
2012 ogue_detail.htm?csnumber=45136)
9. «Standard Fortran 90» (https://web.archive.o 18. Draft of the Technical Specification (TS)
rg/web/20101122175141/http://fortran.com/f 29113 ftp://ftp.nag.co.uk/sc22wg5/N1901-
90_std.pdf) (PDF). Consultado em 25 de N1950/N1917.pdf PDF ( 312 kiB)
setembro 2012. Arquivado do original (http://
19. Copia arquivo de site sobre g77 (http://www.
www.fortran.com/f90_std.pdf) (PDF) em 22
de novembro de 2010 kilmnj.com/g77/)
20. GCC Wiki - GFortran (http://gcc.gnu.org/wiki/
10. da Cunha, Rudnei Dias, "Introdução à
Linguagem de Programação Fortran 90", GFortran)
21. gfortran.org (http://www.gfortran.org/)
22. Sitio oficial de g95 (http://www.g95.org/) wrc.usgs.gov/software/g77.html).
23. «Como compilar g77 com uma versão Consultado em 25 de julho de 2012.
recente de gcc ?» (https://web.archive.org/w Arquivado do original (http://www.mbr-pwrc.
eb/20090923194920/http://www.gfortran.org/ usgs.gov/software/g77.html) em 2 de
build-g77.shtml). Consultado em 25 de julho setembro de 2011 site oficial USGS
de 2012. Arquivado do original (http://www.g 25. g77 para MacOS X (http://hpc.sourceforge.n
fortran.org/build-g77.shtml) em 23 de et/)
setembro de 2009 26. g77 para MS-DOS (ftp://ftp.delorie.com/pub/
24. «g77 para o Windows» (https://web.archive. djgpp/current/v2gnu/) no site da DJGPP
org/web/20110902133303/http://www.mbr-p

Ligações externas
Programação em Fortran no Linux (http://vivaolinux.com.br/artigo/Introducao-ao-Fortran-%28p
arte-1%29/)
Curso de Fortran 77 e 90 em português (https://web.archive.org/web/20050731100127/http://w
ww.geocities.com/helder_pc/fortran/)
Early Fortran Manuals (http://www.fh-jena.de/~kleine/history/)
The Fortran Company: compilers, books, tutorials, consulting (http://www.fortran.com)
Fortran Open Directory category (http://dmoz.org/Computers/Programming/Languages/Fortra
n/)
Usenet forum: comp.lang.fortran (http://groups-beta.google.com/group/comp.lang.fortran)
Fortran 90, 95 and 2003 information (http://www.fortranplus.co.uk)
USER NOTES ON FORTRAN PROGRAMMING (UNFP) (http://www.ibiblio.org/pub/language
s/fortran/unfp.html)
Unit 7.1 FORTRAN 77 (https://web.archive.org/web/20040623125758/http://www.aspire.cs.ua
h.edu/textbook/index_f77.html)–; Part of ASPIRE (https://web.archive.org/web/200507230035
11/http://www.aspire.cs.uah.edu/)'s textbook in Computational Science
Unit 7.2 FORTRAN 90 (https://web.archive.org/web/20040626043840/http://www.aspire.cs.ua
h.edu/textbook/index_f90.html)–; Ditto
How Not to Write FORTRAN in Any Language (https://web.archive.org/web/20050713085047/
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=271)There are
characteristics of good coding that transcend all programming languages.
Debugging tool for FORTRAN and its derivatives. (http://www.allinea.com/?page=48)
Professional Programmer's Guide to Fortran77 (http://rsusu1.rnd.runnet.ru/develop/fortran/prof
77/prof77.html)

Obtida de "https://pt.wikipedia.org/w/index.php?title=Fortran&oldid=57592797"

Esta página foi editada pela última vez às 04h47min de 28 de fevereiro de 2020.

Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da
Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de utilização.

Você também pode gostar