3.1 Introdução
[C] Este capítulo trata de definir
corretamente os componentes básicos dos comandos Fortran. Alguns
já vimos no capítulo anterior, como "itens de sintaxe".
[D] "Constantes" são valores fixos,
tais como números. Estes valores não podem ser alterados
pelos comandos do programa. Exemplos: 3.0, 3, 'palavra'.
[C] "Variáveis" são nomes
simbólicos que representam valores armazenados na memória
do computador. Estes valores podem ser alterados pelos comandos do programa.
[D] "Conjuntos" são grupos de variáveis,
cujos valores são armazenados adjacentemente e podem ser referenciados
individualmente através de um nome simbólico com um índice.
São conhecidos também como "variáveis indexadas" (VI).
[D] Um "operador" é um símbolo
específico para uma determinada operação. Exemplo:
+ (soma).
[D] "Expressões" são combinações
de constantes, variáveis, elementos de conjuntos e operadores. Exemplo:
3.0*var1+var2.
[E] No "comando de atribuição" abaixo:
fat = a(3) * 4 * (B + 2.5)
temos a "expressão" a(3)*4*(B+2.5).
Nesta expressão temos duas "constantes" (4 e 2.5), uma "variável"
(B), uma variável indexada (a(3)), dois "operadores" (* e +) e parênteses.
Vemos também que temos uma constante inteira (4) e uma real (2.5);
as variáveis a(3) e B dependem de como tenham sido definidas.
[E] No trecho de programa abaixo:
print *, 'digite a velocidade
inicial:'
read *, v0y
g=9.8
dt=0.1
do i =1,np
t(i)=i*dt
y(i)=v0y*t(i)-0.5*g*t(i)**2
enddo
...
do i=1,np
print *,t(i),y(i)
enddo
vemos o uso das "variáveis indexadas"
t(i) e y(i).
3.2. Constantes
[D] Uma "constante" é uma quantidade
fixa e invariável.
[D] O Fortran distingue três classes
de constantes: numéricas, lógicas e cadeias de caracteres.
[D] As constantes numéricas que mais nos interessam são:
- Inteiras: para números inteiros
decimais (escritos sem o ponto decimal).
- Reais: para números decimais
(ou fracionários).
- Dupla precisão: para números
reais com mais dígitos significativos que o normal.
- Complexos: para números complexos.
[D] As constantes lógicas podem ser:
- .true. : representa o valor "verdade".
- .false. : representa o valor "falso".
[D] As constantes "cadeias de caracteres"
são uma seqüência de caracteres alfanuméricos
e/ou especiais sempre entre aspas.
[C] O comando PARAMETER pode ser usado
para associar um nome simbólico a uma constante.
3.2.1. Constantes Inteiras
[C] O intervalo máximo de valores
possíveis para constantes inteiras varia de máquina para
máquina. O menor intervalo é de [-9999,+9999].
3.2.2. Constantes Reais
[D] Uma constante real é uma cadeia
de dígitos escrita com ponto decimal, com um expoente ou com ambos,
expressando um número real. Ex.: 0.123, 123.0E-03, -123.0E-03 .
[C] O intervalo de valores possíveis
para o expoente, bem como a precisão do número (quantidade
máxima de dígitos significativos) varia de máquina
para máquina. O menor intervalo conhecido é de 10-28
a 10+28. A precisão do número é tipicamente
no mínimo de 7 dígitos.
3.2.3. Constantes Caracteres
[C] O comprimento máximo de uma
cadeia de caracteres geralmente não é menor que 255.
3.3. Variáveis
[D] Uma variável possui um
nome
e um tipo, podendo assumir diversos valores.
[D] Regras para nomes de variáveis:
[D] Tipos de variáveis: inteiras,
reais, dupla precisão, complexas, lógicas e caracteres, que
possuem características similares às constantes.
3.3.1. Variáveis Inteiras
[D] Se não for usado o comando IMPLICIT
NONE, por convenção, toda variável numérica
cujo nome inicia por uma das letras i, j, k, l, m ou n, é
uma variável inteira.
[C] As variáveis inteiras podem
assumir valores na mesma faixa das constantes inteiras.
3.3.2 Variáveis Reais
[D] Se não for usado o comando IMPLICIT
NONE, por convenção, toda variável numérica
cujo nome não inicia por uma das letras i, j, k, l, m
ou n, é uma variável real.
[C] As variáveis reais podem assumir
valores na mesma faixa que as constantes reais.
3.3.3. Variáveis Caractere
[D] Uma variável caractere é
uma variável que é declarada como caractere através
dos comandos de especificação explícita ou do comando
IMPLICIT. A quantidade de caracteres numa variável caractere é
especificada quando da declaração da variável caractere.
[E] Veja os seguintes exemplos de comandos de especificação de variáveis caractere:
Temos que linha, soma e matriz são
especificadas como variáveis caractere contendo 36, 15 e 64 caracteres,
respectivamente. Além disso, todas as variáveis cuja primeira
letra é y ou z são também declaradas como variáveis
caractere contendo 28 caracteres cada uma.
3.4. Conjuntos
[C] Nesta seção nos ocuparemos
dos conjuntos de variáveis, ou variáveis indexadas (VI),
já definidos no início deste capítulo.
[C] Uma VI possui um nome, um tipo
e um conjunto de índices (ou um único índice).
[D] "Vetor" é uma VI que possui
um único índice, e por isto é dito uma VI unidimensional.
[E] A variável t no trecho de programa abaixo é um vetor:
dimension t(10)
t(1)=0.1
t(2)=0.2
t(3)=0.3
...
t(10)=1.0
[D] "Matriz" é uma VI que possui
dois conjuntos de índices e por isto é dita bidimensional.
[E] A variável a no trecho de programa abaixo é uma matriz:
dimension a(3,3)
do i = 1,3
do j = 1,3
a(i,j) = 0.0
enddo
enddo
- Representação Matricial da variável a:
- Forma de armazenamento na memória:
... | a11 | a21 | a31 | a12 | a22 | a32 | a13 | a23 | a33 | ... |
[D] Dizemos que uma VI é uma matriz
n-dimensional quando esta possui um conjunto de n índices.
[D] No Fortran 77, uma VI não podia
possuir mais do que 7 índices.
3.4.1 Declaradores de Conjuntos
[CF] Comando DIMENSION: permite especificar
uma determinada variável como sendo uma variável indexada.
[E] Exemplos do uso do comando DIMENSION:
1) dimension a(8)
onde 8 é número máximo
de diferentes a's.
2) dimension a(8),b(5,6)
sendo que 5 e 6 são os valores
máximos do primeiro e segundo índices (que resultam em 30
diferentes b's).
3) integer a
real b
dimension a(8),b(5,6)
sendo que o vetor a é um vetor
de números inteiros e b uma matriz de números reais.
4) dimension c(0:10),d(1:4,1:3,1:5)
sendo que: c = vetor
de 11 elementos, sendo o primeiro c(0) e o último c(10);
d = matriz tridimensional de 60 elementos, sendo que o primeiro elemento
é d(1,1,1) e o último é d(4,3,5)