Introdução às Linguagens de Programação/Fortran: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 38:
 
=='''Exemplos de Código'''==
{{details | Wikibooks: Fortran / Fortran exemplos}}
O programa a seguir ilustra a alocação de memória dinâmica e baseada em array operações, duas características introduzidas com Fortran 90. Particularmente notável é a ausência de <code> DO </ code> loops e <code> IF </ code> / <code> ENTÃO </ code> declarações em manipular a matriz; operações matemáticas são aplicados para a matriz como um todo. Também evidente é o uso de nomes de variáveis ​​descritivos e formatação de código geral que estejam em conformidade com o estilo de programação contemporânea. Esse exemplo calcula uma média ao longo dados inseridos de forma interativa.
 
<source lang="fortran">
program average
média do programa
 
! Lido em alguns números e tirar a média
! Como está escrito, se não houver pontos de dados, uma média de zero é retornado
! Enquanto isto pode não ser desejado comportamento, ele mantém este exemplo simples
 
nenhum implícita
 
dimensão, real (:), allocatable:: pontos
integer:: number_of_points
real::.. average_points = 0, positive_average = 0, negative_average = 0.
 
write (*,*) "número de pontos de entrada para calcular a média:"
ler number_of_points (*,*)
 
alocar (pontos (number_of_points))
 
write (*,*) "Entre os pontos a média:"
pontos de leitura (*,*)
 
! Tomar a média somando pontos e dividindo por number_of_points
if (number_of_points> 0) average_points = sum (pontos) / number_of_points
 
! Agora formam média de pontos positivos e negativos só
if (count (pontos> 0.)> 0) então
positive_average = soma (pontos, pontos> 0.) / count (pontos> 0).
fim se
 
if (count (pontos <0.)> 0) então
negative_average = soma (pontos, pontos <0.) / count (pontos <0).
fim se
 
desalocar (pontos)
 
! Resultado de impressão para terminal
(*,'( escrever um g12.4) ')' Média = ', average_points
(*,'( escrever um g12.4) ')' Média de pontos positivos = ', positive_average
(*,'( escrever um g12.4) ')' Média de pontos negativos = ', negative_average
 
média do programa final
</ source>
 
== '''Definições da linguagem''' ==
O Programa Principal é uma unidade que pode chamar outras unidades de programa, mas que
não pode ser chamado por estas. O programa principal é quem recebe o controle da execução
no início da fase de execução.
Subprograma é uma unidade de programa que é chamada por outra unidade de programa.
Pode ser de dois tipos: sub-rotina ou função. Usualmente um subprograma recebe parâmetros
de entrada e retorna parâmetros de saída.
Função Intrínseca é uma função suprida pelo compilador e que realiza operações sobre números ou caracteres.
Programa Executável é um programa já em linguagem de máquina que pode ser executado
pelo computador. Consiste de um programa principal e subprogramas.
Comando Executável é aquele que efetua cálculos, testes, providencia entrada ou saída de
dados, altera o fluxo de execução ou atribui valores a variáveis.
Comando Não-Executável é aquele que descreve as características de uma unidade de
programa, dos dados ou de informações de edição.
Unidade de Programa é uma sequência de comandos terminando com um comando END.
Arquivos de Dados são unidades de entrada e saída de dados, passíveis de serem
lidos/escritos por um programa.
 
== '''Instalação''' ==
Para instalar Fortran no Windows é preciso ter um compilador. O compilador irá transformar seu arquivo fonte em programa executável, pois o computador entende apenas a linguagem da máquina, sendo assim o compilador traduz seus códigos fontes na linguagem que o computador entende.
Atualmente há diversas versões do Fortran no mercado. A mais usada
1. Clica em executar, na janela executar clica em procurar.
2. Devera abrir um gerenciador de arquivo.
3. Navegue até o diretório onde o instalador se encontra e o selecione, Se aparecer um janela de aviso de segurança de o windows clique executar, devera aparecer um assistente do Wizard, clique em next, na próxima janela marque a opção Anyne who uses this computer em seguida next, na janela seguinte next novamente, selecione a opção da janela seguinte e next de novo, então clique instalar, se tudo tiver ocorrido bem devera aparecer, outra janela e só clicar em finish.
 
'''Configuração de ambiente'''
Você devera incluir no netbeans o plug-in do c/c++ que também tem suporte para Fortran, sê já tiver o netbeans estalado abra um novo projeto e veja se contem na lista o c/c++ se não vá a ferramentas plug-ins, na janela que abrir vá a plug-ins disponíveis, clique em c/c++ em instalar. Aguarde instalação e verifique novamente em arquivo novo projeto se tiver tudo bem o c/c++ devera esta nas categorias.
 
== '''Principais Características''' ==
 
A primeira característica da linguagem Fortran é que ela foi criada para ajudar os programadores a ter uma linguagem mais parecida com a de alto nível. Pois antes de ser criada a linguagem Fortran os programadores eram obrigados a usar uma linguagem de nível intermediária chamada Assembly. A linguagem Fortran torna os programas mais claros e fáceis de entender do que o Assembly, mas sem fazer mudanças consideráveis no estilo de programar.
 
O conjunto de caracteres Fortran é constituído de: letras (ou caracteres alfabéticos), dígitos (ou caracteres numéricos) e símbolos especiais como =, +, -, /, *, etc. É preciso tomar cuidado em relação aos símbolos especiais, pois estes podem variar de função dependendo do fabricante do compilador.
 
== '''Vantagens de Uso''' ==
 
'''Primeira''' Vantagem de usar a linguagem Fortran é que esta é padronizada pela ANSI e ISO, com isso se seu programa é escrito em ANSI Fortran 77 , ele rodará em qualquer computador que tiver compilador 77.
 
'''Segunda''' Vantagem de usar a linguagem Fortran é que as mesmas são portáveis para varias plataformas diferentes.
 
'''Terceira''' Vantagem de usar a linguagem Fortran é o calculo. Se o programador vai fazer programas muito intensivos de calculo à linguagem Fortran vai se a ideal, pois a mesma tem códigos muito eficientes e rápidos ocupando pouca memória.
 
'''Quarta''' Vantagem que permitia declaração explicita que é uma instrução que lista o nomes das variáveis, especificando um tipo em particular.
 
'''Quinta''' Vantagem no Fortran 77permiti vincular as células de memória antes que a execução do programa inicialize, faz endereçamento direto, suporta subprogramas sensível à historia.
 
! Read in some numbers and take the average
=='''Desvantagens do uso'''==
! As written, if there are no data points, an average of zero is returned
'''Primeira''' Quando acontece erros na hora de fazer as escrita de apenas um caractere podem acontecer erros durante o tempo de execução e não erros de compilação.
! While this may not be desired behavior, it keeps this example simple
 
implicit none
'''Segunda''' No Fortran 77 não permite caracteres de conexão.
 
real, dimension(:), allocatable :: points
=='''Referências''' ==
integer :: number_of_points
real :: average_points=0., positive_average=0., negative_average=0.
 
write (*,*) "Input number of points to average:"
* http://www.docstoc.com/docs/23977196/Linguagem-Fortran
read (*,*) number_of_points
 
allocate (points(number_of_points))
* http://www.zanata.inf.br/index.php?option=com_content&view=article&id=57:fortran-historico&catid=34:aprenda-fortran&Itemid=54
 
write (*,*) "Enter the points to average:"
* http://m4-dfat.fis.uerj.br/fiscomp2010/notas_aula/notas_aula_pdf/cap1_notas_aula_2006-2.pdf
read (*,*) points
 
! Take the average by summing points and dividing by number_of_points
* http://www.sia.com.br/intel.htm
if (number_of_points > 0) average_points = sum(points) / number_of_points
 
! Now form average over positive and negative points only
* http://www.eq.uc.pt/~batateu3/introd.html
if (count(points > 0.) > 0) then
positive_average = sum(points, points > 0.) / count(points > 0.)
end if
 
if (count(points < 0.) > 0) then
* http://www.inf.ufes.br/~thomas/fortran/tutorials/inpe_fortran.pdf
negative_average = sum(points, points < 0.) / count(points < 0.)
end if
 
deallocate (points)
* http://pt.wikipedia.org/wiki/Fortran
* http://www.cin.ufpe.br/~jrpn/arquivos/5%BA%20Periodo/Paradigmas/Aulas/Topico%204%20-%20Nome,%20vinculacao,%20Tipos,%20Escopo.pdf
* http://minerva.ufpel.edu.br/~rudi/grad/ModComp/inst_silverfrost.html
* http://netbeans.org/community/releases/70/cpp-setup-instructions_pt_BR.html
{{esboço}}
 
! Print result to terminal
[[Categoria:Introdução às Linguagens de Programação|Introdução às Linguagens de Programação]]
write (*,'(a,g12.4)') 'Average = ', average_points
write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
write (*,'(a,g12.4)') 'Average of negative points = ', negative_average
 
end program average
<gallery>
</source>
Ficheiro:Fortran acs cover.jpeg|Fortran
Ficheiro:Punch card with Fortran - 20091211.jpg|Linguagem Fortran
Ficheiro:Punch card Fortran Uni Stuttgart (4).jpg|Linguagem Fortran
Ficheiro:IBM7030 p1040280.jpg|IBM - 7030
</gallery>