O documento descreve as principais características da linguagem de programação FORTRAN, incluindo sua proposta inicial para auxiliar na codificação de problemas científicos, além de comandos como INTEGER, REAL, CHARACTER e LOGICAL para declarar variáveis, e comandos como PRINT, READ, IF e DO para impressão, leitura e laços de repetição.
2. A linguagem FORTRAN, a primeira linguagem de
programação de alto nível (surgiu em 1956), foi proposta
e implementada para auxiliar os programadores na
codificação de problemas técnicos e científicos cuja
solução requer a utilização de computadores eletrônicos.
O FORTRAN é uma das linguagens mais popular e
difundida no meio técnico e científico
3.
4. O comando INTEGER é usado para declarar,
explicitamente, um nome de variável,
conjunto de variáveis, constante simbólica,
como sendo do tipo inteiro.
Obs.: Ver Exs
5. O comando REAL é usado para declarar,
explicitamente, um nome de variável,
conjunto de variáveis, constante simbólica
como sendo do tipo real
Obs.: Ver Exs
6. O comando CHARACTER é usado para
declarar, explicitamente, um nome de
variável, conjunto de variáveis, constante
simbólica, como sendo do tipo alfa-numérica
Obs.: Ao declara uma variável do tipo
Character deve ser indicado o número
máximo de caracteres que a variável pode
conter, esse numero de ser inteiro e positivo.
Obs.: Ver Exs
7. O comando LOGICAL é usado para declarar,
explicitamente, um nome de variável,
conjunto de variáveis, como sendo do tipo
lógica. As variáveis lógicas devem ser .TRUE.
(verdadeiro) ou .FALSE. (falso).
Obs.: Ver Exs
8. Algoritmo 1 - principal
Inteiro A, B
real X, Y
Caractere nome
lógica W
fim
9. Obs.: (1) Note que o programa
principal deve ter um nome, neste
caso, “principal”.
(2) O comando implicit none
determina que todas as variáveis
usadas no programa seja declaradas.
Prevenindo assim, que o programa
use uma variável aleatória.
(3) O “ *8” determina um número
real em dupla precisão. Assim
suporta valores entre 1.0 x 10^-300
até 1.0 x 10^300
10.
11.
12. Operador Definição Uso do Operador Significado
** Potenciação a**b a elevado a potência b
* Multiplicação a*b a multiplicado por b
/ Divisão a/b a dividido por b
+ Adição a+b a mais b
+ Mais unitário +a o mesmo que a
- Subtração a-b a menos b
- Menos unitário -a a com sinal trocado
Tabela 01
14. Obs.: (1) O caractere “!” é
utilizado para adicionar um
comentário no algoritmo. Todo
texto escrito após ele não ira
interferir no desenvolvimento do
programa.
15.
16. Operador Definição Uso do Operador Significado
// Concatenação a//b a encadeado com b
Tabela 02
19. Operador Definição Uso do Operador Significado
.EQ. ou == Igual a a.EQ.b ou a==b a = b ?
.NE. ou /= Diferente de a.NE.b ou a/=b a ≠b ?
.LT. ou < Menor que a.LT.b ou a<b a < b ?
.LE. ou <= Menor ou igual a.LE.b ou a<=b a ≤b ?
.GT. ou > Maior que a.GT.b ou a>b a > b ?
.GE. ou >= Maior ou igual a.GE.b ou a>=b a ≥ b ?
Tabela 03
20. Obs.: (1) Os comandos
“.LT.” e “.GE.” pode ser
substituídos por qualquer
outro da tabela 03, caso
seja do interesse do
programador.
21.
22. Operador Definição Uso do Operador Significado
.NOT. Negação Lógica .NOT.a Complemento de a: se a
é verdade, então .NOT.a
é falso, se a é falso
então .NOT.a. é
verdade.
.AND. Conjunção lógica a.AND.b Produto Booleano de a
por b: se a e b são
verdade, então a.AND.b
é verdade; se a ou b ou
ambos são falsos, então
a.AND.b é falso.
23. .OR. Disjunção Inclusivo
lógica
a.OR.b Soma Booleana de a
com b: se a ou b ou
ambos são verdade,
então a.OR.b é verdade;
se a e b são falsos,
então a.OR.b é falso.
.EQV. Equivalência Lógica a.EQV.b Equivalência lógica de a
com b: se a e b são
ambos verdade ou
ambos falsos, então
a.EQV.b é verdade, caso
contrário é falso.
.NEQV. Não equivalência lógica a.NEQV.b Não equivalência lógica
de a com b: se a e b são
ambos verdade ou
ambos falsos, então
a.EQV.b é falso, caso
contrário é verdade.
Continuação
Tabela 04
24.
25. O comando PRINT é usado para transferir
dados para o vídeo. Casualmente entendido
como uma impressão, de determinado dado,
no monitor.
27. Obs.: (1) Note que o texto escrito
entre aspas simples aparecerá
inalterado quando impresso no
monitor.
Como resultado
deste comando irá
aparecer na tela:
28.
29. O comando WRITE é usado para transferir
dados para arquivos externos e internos.
Sintaxe:
▪ WRITE ( unit, fmt ) lista de variáveis
Unit Número que identifica o dispositivo de saída (ARQUIVO,
IMPRESSORA, VÍDEO), o dispositivo padrão é o vídeo e
identificado pelo símbolo *.
Fmt Pode ser um número (LABEL) associado ao formato de saída dos
dados ou pode ser utilizado para especificar diretamente o
formato da variável a ser transferida, a qual deve ser escrita
utilizando os seguintes delimitadores: '(tipo do formato)'. Pode-se
omitir a especificação do formato (utiliza-se o dispositivo
padrão), para isto é necessário utilizar o símbolo *.
35. Obs.: (1) É usual a utilização de um pequeno texto indicando que
variável o usuário deve entrar com os dados.
36.
37. As operações com arquivos no Fortran, em geral, são simples,
necessitando da abertura do arquivo, gravação ou leitura dos dados e
o fechamento do arquivo.
Quando trabalhando com arquivos, deve-se ter em mente que o
tempo de leitura e gravação em arquivos é uma operação
relativamente lenta se comparada com as operações matemáticas.
Portanto se um arquivo deve ser lido várias vezes durante a execução
do programa, uma boa idéia é ler todo o arquivo de uma só vez,
armazenando os dados em variáveis.
38. Arquivos são abertos usando o comando
OPEN que tem forma:
OPEN (<unit>, FILE = <arquivo>)
<unit> unidade de referência para o
arquivo,pode ser qualquer número inteiro
<arquivo> nome do arquivo a ser criado ou
aberto. O nome do arquivo deve vir entre
aspas.
39. Para escrever dados no arquivo deve-se usar
o comando WRITE usando a unidade do
arquivo:
WRITE (<unit> , <formato>) <variáveis>
Para ler o arquivo de dados deve-se usar o
comando READ, também usando a unidade
do arquivo:
READ (<unit> , <formato>) <variáveis>
40. Antes do programa acabar deve-se fechar o
arquivo de dados usando o comando CLOSE:
CLOSE (<unit>)
Estes tipos de arquivo usados pelo Fortran são
arquivos texto simples e podem ser editados em
qualquer editor de texto (desde que gravados no
formato texto). Em geral se opta pela extensão
.TXT ou .DAT para os arquivos de dados.
42. Obs.: Nesse exemplo atribuímos uma
variável (entrada) à “Unit”. Note que essa
variável passou a ser nossa unidade de
referencia.
43.
44. O comando IF (Se) transfere o controle de fluxo ou
executam outro comando (ou um bloco de comandos)
dependendo da condição dada como resultado de uma
expressão contida no particular comando IF. O comando IF ,
executa condicionalmente, blocos ou grupos de comandos
executáveis.
45. Algoritmo
Se (e1) então
Bloco (1)
senão
Bloco (3)
fim se
Fim
Se a expressão lógica (e1) for verdadeira o bloco1 é executado.
Se a expressão lógica (e1) for falsa, então o bloco3 é executado.
46. Obs.: (1) Nesse caso, se “A”<“C”, então
soma-se “1” em “A”.
(2) E se “A”≥ “C”, então subtrai-se “1”
de “A”.
47.
48. O comando DO é um comando de controle
que permite que uma seqüência de
comandos seja repetitivamente executada
enquanto o valor da variável de controle
estiver entre os limites especificados.
49. Algoritmo
faça i=1, até 10, variando em 1
leia x
Fim faça
Fim
Inicialmente a variável “i” ,chamada de contador, recebe o valor “1”, e
gradativamente soma-se “1” ao seu valor até atingir “10” . Todos os comando
dentro deste algoritmo se repetirá até “i” atingir “10”, por isso é chamado de
“laço de repetição”.
50. Obs.: (1) No laço de repetição usa-se
uma variável contador do tipo inteiro que
determina o número de repetições.
•Este artifício é muito utilizado ao se
trabalhar com vetores e matrizes.
51.
52. O comando DO WHILE é um comando de
controle que permite que uma seqüência de
comandos seja repetitivamente executada
enquanto a expressão lógica permanecer
verdadeira .
53. algoritmo
i=0
Faça enquanto (i=10)
i=i+1
Fim faça
Fim
Enquanto “i” for diferente de “10”, todos os comandos dentro desse algoritmo se
repetirá.
54. Obs.: Inicialmente a variável “i”
recebe valor “0”, a medida que
passamos por esse laço adiciona-se
“1” à “i” até que a condição não seja
verdadeira, nesse caso, “i” ≠ ”10”.
55.
56. O comando executável STOP termina a
execução do programa, pode exibir uma
informação no vídeo.
57. Algoritmo
Pare [Fim do Programa]
Fim
Embora o comando stop termine a execução do programa, ele pode ser
dispensado.
59. O comando END indica o final físico de uma unidade de programa
para o compilador. Um programa na linguagem FORTRAN tem
dois pontos terminais. O primeiro é um ponto terminal lógico,
indicando o fim da execução do programa. Esse terminal lógico é
indicado pelo comando STOP. O segundo ponto terminal é o
ponto terminal físico, indicando o fim do processo de compilação.
Esse ponto terminal físico é 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.
60. A declaração de vetores e matrizes em
FORTRAN é semelhante à declaração de uma
variável qualquer, com a diferença que logo
após a declaração da variável, é acrescentada
a dimensão entre parênteses, indicando o
tamanho que este deve ter. Para acessar o
conteúdo do vetor, utiliza-se o índice do
conteúdo procurado.
61. Algoritmo
Inteiro A(100)
real X(20,20)
Caractere nome (10)
fim
A variável “A” é um vetor com 100 posições, com valores do tipo inteiro.
A variável “X” é uma matriz 20x20, com valores do tipo real
A variável “nome” é um vetor com 10 posições, com valores do tipo
caractere.
62. Obs.:(1) Note que a variável “C” tem dimensão “10”, indicando um vetor.
(2) Por sua vez, a variável “Z” tem duas dimensões, o que caracteriza uma
matriz, neste caso 10x10.
63.
64. forma individual
A(2) = 10 atribui o valor 10 ao campo 2
por faixa
A(2:5) = 10 atribui o valor 10 aos campos 2 até 5, ou seja,
A(2) = A(3) = A(4) = A(5) = 10
B(1:3,3:4) = 10 atribui o valor 10 aos campos
B(1,3) B(2,3) B(3,3)
B(1,4) B(2,4) B(3,4)
total
A = 10 atribui o valor 10 a todos os campos da variável A, ou seja,
A(1) = A(2) = ... = A(n) = 10
65.
66. Obs.: (1) Utiliza-se um laço de
repetição para percorrer todas a
suposições do vetor, diminuindo
assim o tamanho do algoritmo .
(2) No caso de uma matriz também
utiliza-se esse artifício, lembrando
que este possui duas dimensões,
por isso deve-se utilizar dois laços
de repetição.
67. Vetores e matrizes podem ser somados,
subtraídos, multiplicados e divididos entre si,
desde que sejam de mesmo tamanho:
70. Obs.: (1) Um laço de
repetição também
pode ser utilizado para
realizar operações
percorrendo cada valor
do vetor ou matriz.
(2) Note que um vetor
pode ser impresso na
tela utilizando um laço
de repetição.