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

Fonte: Wikiversidade
Conteúdo apagado Conteúdo adicionado
Linha 38: Linha 38:


=='''Exemplos de Código'''==
=='''Exemplos de Código'''==
<source lang="fortran">
program average

! Read in some numbers and take the average
! As written, if there are no data points, an average of zero is returned
! While this may not be desired behavior, it keeps this example simple

implicit none

real, dimension(:), allocatable :: points
integer :: number_of_points
real :: average_points=0., positive_average=0., negative_average=0.

write (*,*) "Input number of points to average:"
read (*,*) number_of_points

allocate (points(number_of_points))

write (*,*) "Enter the points to average:"
read (*,*) points

! Take the average by summing points and dividing by number_of_points
if (number_of_points > 0) average_points = sum(points) / number_of_points

! Now form average over positive and negative points only
if (count(points > 0.) > 0) then
positive_average = sum(points, points > 0.) / count(points > 0.)
end if

if (count(points < 0.) > 0) then
negative_average = sum(points, points < 0.) / count(points < 0.)
end if

deallocate (points)

! Print result to terminal
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
</source>

Revisão das 15h35min de 24 de novembro de 2011

Fortran

Origem do Fortran

Nos primórdios dos computadores, programar era uma tarefa extremamente complicada. Aos programadores era exigido um conhecimento detalhado de instruções, registros e outros aspctos ligados com a unidade do processamento central (CPU) do computador onde era escrito o código. Os programas consistiam numa série de instruções numéricas, denominadas por códigos binários. No período de 1954-1957 uma equipe de 13 programadores liderados por John Backus, desenvolveu umas das primeira linguagens de alto nível para o computador IBM 704, o FORTRAN (Fórmula Translation)Tudo começou em 1953 quando atrasado, John W. Backus apresentou uma proposta aos seus superiores a IBM para desenvolver uma alternativa mais prática para a linguagem assembly para a programação de suas IBM 704 computadores mainframe. Histórico Backus "FORTRAN equipe foi composta de programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt , Robert Nelson, Irving Ziller, Haibt Lois e Sayre David

A linguagem Fortran foi ao mesmo tempo revolucionária e inovadora. Os programadores libertaram-se assim da tarefa extenuante de usar a linguagem assembler e passaram a ter oportunidade de se concentrar mais na resolução do problema. Mas, talvez mais importante, foi o facto dos computadores passarem a ficarem mais acessíveis a qualquer pessoa com vontade de despender um esforço mínimo para conhecer a linguagem Fortran. A partir dessa altura, já não era preciso ser um especialista em computadores para escrever programas para computador.

O Fortran é uma linguagem simples cujo vocabulário consiste de um conjunto de palavras, Conhecidas como "palavras-chave" (para se ter uma ideia, no Fortran77 eram cerca de 450; atualmente o número é bem maior). Um "comando" Fortran é uma sentença escrita nesta linguagem. Um programa consiste Numa sequência de comandos, cada escrito numa linha.

O primeiro compilador FORTRAN para uso comercial foi lançado em 1957 e tinha 18.000 mil linha de código, em 1959 foi lançado o FORTRAN Π com 50.000 mil linhas de código fonte.

FORTRAN que significa formula translation é uma linguagem de alto nível (forma de linguagem mais parecida com a linguagem humana), sua versão atual é o "Fortran 95" que é um melhoramento do Fortran 90,porém são feitas continuas atualizações.

A linguagem foi largamente adaptada por cientistas para escrever programas numericamente intensivos, o que encorajou escritores compilador para produzir compiladores que poderia gerar mais rápido e código mais eficiente. A inclusão de um número complexo tipo de dados na linguagem Fortran feitas especialmente adequado para aplicações técnicas, tais como engenharia elétrica.

Fortran foi à primeira linguagem imperativa (passos que um programa deve seguir para alcançar um estado desejado) e versões recentes, como o FORTRAN 2003, suportam programação orientada a objetos.

As versões anteriores do FORTRAN são:

•Fortran II

•Fortran IV

•Fortran 77

•Fortran 8X

•Fortran 90

•Fortran 95

•Fortran 2003

Ambiente da linguagem

O Fortran roda em todos os sistemas operacionais (Windows, Linux, Mac os x), basta o usuário baixar a versão exata do compilador para seu sistema e instalá-lo, existe duas formas disponíveis no mercado, a forma livre, uma versão com código aberto, (open Soure) para sistemas operacionais linux, e a versão paga (com licença proprietário).

Exemplos de Código

  program average

  ! Read in some numbers and take the average
  ! As written, if there are no data points, an average of zero is returned
  ! While this may not be desired behavior, it keeps this example simple

  implicit none

  real, dimension(:), allocatable :: points
  integer                         :: number_of_points
  real                            :: average_points=0., positive_average=0., negative_average=0.

  write (*,*) "Input number of points to average:"
  read  (*,*) number_of_points

  allocate (points(number_of_points))

  write (*,*) "Enter the points to average:"
  read  (*,*) points

  ! Take the average by summing points and dividing by number_of_points
  if (number_of_points > 0) average_points = sum(points) / number_of_points

  ! Now form average over positive and negative points only
  if (count(points > 0.) > 0) then
     positive_average = sum(points, points > 0.) / count(points > 0.)
  end if

  if (count(points < 0.) > 0) then
     negative_average = sum(points, points < 0.) / count(points < 0.)
  end if

  deallocate (points)

  ! Print result to terminal
  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