Aceitam-se críticas e sugestões



Baixar 204,06 Kb.
Página1/2
Encontro25.12.2018
Tamanho204,06 Kb.
  1   2

INTRODUÇÃO
Esta apostila foi escrita com a finalidade de atender: a alunos dos cursos de Engenharia, a alunos de iniciação científica que utilizam o FORTRAN como linguagem de programação e também aos que desejarem aprender esta linguagem de programação.

Este texto vem suprir também a pequena quantidade de livros que abordam o FORTRAN e que o explicam de maneira clara, simples e didática.

Na parte de compilação procurou-se mostrar tanto a utilização do FORTRAN 77 como também o FORTRAN POWER STATION 4.0.

Aceitam-se críticas e sugestões

1. CONCEITOS

BINÁRIO  Sistema de numeração de base dois.

BIT  Dígito binário que assume o valor 0 ou 1.

BYTE  Conjunto de oito bits; unidade de memória.

KBYTE  Equivale a 1024 bytes.

MBYTE  Corresponde a 1024 Kbytes.

DISCO MAGNÉTICO  Dispositivo de armazenamento de dados e programas, utilizado como elemento de memória secundária de grande capacidade.

DISQUETE OU DISCO FLEXÍVEL Disco magnético portátil com capacidade para 1.44 Mbytes, se do tipo alta densidade.

DISCO RÍGIDO OU WINCHESTER Disco magnético fixo com capacidade para 10, 20 30, ... Mbytes.

DRIVE Acionador de disco magnético. Recebe as letras A e B para drivers de disquete, C e D para discos rígidos e E para drive de CD.

HARDWARE Componentes físicos de uma configuração de processamento de dados(computador, impressora, vídeo, etc.).

PROMPT Mensagem que aparece na tela, podendo ser para indicar o drive corrente ou mensagem de erro ou alguma mensagem de orientação(ajuda).


RAM  Memória de acesso aleatório(memória principal de um computador).
2. LINGUAGEM DE MÁQUINA(BAIXO NÍVEL)

Codificada em binário, específica de cada máquina. Com instruções em códigos mnemônicos(que ajudam a memória) e endereços simbólicos. EX: ASSEMBLER.


3. LINGUAGEM DE ALTO NÍVEL

Próxima da linguagem coloquial mas com sintaxe rígida e bem definida. EX: FORTRAN, COBOL, PASCAL, etc.

4. COMANDOS

São instruções escritas em alguma forma de linguagem, que permitem a execução de tarefas bem determinadas e específicas.

5. ALGORITMO

Sequência ordenada e não ambígua de passos ou instruções que levam à resolução de um dado problema; deve-se observar:

a) Os passos devem ser simples e objetivos(sem ambiguidade).

b) Deve haver uma ordem pré-fixada, dirigindo-se no sentido da solução proposta.

c) Deve possuir um número finito de passos e levar à solução proposta.

Na linguagem algorítmica usam-se frases concisas dentro de uma sintaxe bem rígida.

EXEMPLO:

ALGORITMO PARA USAR O TEOREMA DE PITÁGORAS:

LER OS DADOS CONHECIDOS

LEIA LADO1, LADO2

CÁLCULO DOS QUADRADOS DOS LADOS

Q1  LADO1**2

Q2  LADO2**2

CÁLCULO DO COMP. DO TERCEIRO LADO

HIP  SQRT(Q1 + Q2)

SAÍDA DE RESULTADOS

ESCREVA “LADOS = “; LADO1, LADO2

ESCREVA “HIPOTENUSA = “; HIP

INCREMENTO

TERMINE O PROCESSO

6. PROGRAMAS

São conjuntos de comandos dispostos de tal maneira que seja possível executar determinadas tarefas de forma precisa e bem definida.

7. TAREFAS(ETAPAS) PARA DESENVOLVIMENTO DE UM PROGRAMA:

a) Lista de objetivos(resumo geral da finalidade do programa).

b) Especificação do formato de entrada e saída.

c) Especificação da linguagem.

d) Projeto de lógica do programa, detalhado(algoritmo, etc.).

e) Codificação do programa  PROGRAMA FONTE

f) Compilação ou interpretação  PROGRAMA OBJETO

g) Testes(avaliação de propósitos)  PROGRAMA EXECUTÁVEL

h) Instalação definitiva do programa.


8. PROGRAMAÇÃO ESTRUTURADA

Procura otimizar a construção de algoritmos e fluxogramas, reduzindo a complexidade, aumentando a clareza, disciplinando e padronizando o raciocínio e evitando o uso do GOTO.

A idéia central da programação estruturada(P.E.) é a construção de programas para resolver problemas no computador usando três tipos de estruturas de controle: Sequencial, repetitiva e de decisão; tornando os programas mais legíveis, mais documentados, etc.
8.1. ESTRUTURAS DE CONTROLE

8.1.1. ESTRUTURA SEQUENCIAL

Um comando é executado após o outro.

8.1.2. ESTRUTURA REPETITIVA

Esta estrutura significa que o grupo de comandos C1, C2, . . ., Cn deve ser executado várias vezes, enquanto a condição for verdadeira e terminar se for falsa.

Em notação sequencial, teríamos:

ENQUANTO(CONDIÇÃO) FAÇA

C1

FIM ENQUANTO



Ainda pode-se ter as opções:

a) WHILE ... DO (enquanto ... faça)

EXEMPLO:

ENQUANTO I < 10

FAÇA I = I + 4

FIM ENQUANTO

*OBS: Aqui o laço pode não ser executado.

b) REPEAT ... UNTIL

EXEMPLO:

j = 0


REPITA j = j + 2

ATÉ j = 10

OBS: O teste é posterior à execução dos comandos, aqui a execução é feita pelo menos uma vez.

8.1.3. ESTRUTURA DE DECISÃO(SELEÇÃO)

Usa-se geralmente as palavras chaves: IF ... THEN(se ... então) e IF ... THEN ... ELSE(se ... então ... senão).

Em notação sequencial teríamos:

SE(CONDIÇÃO) ENTÃO

C1

SENÃO



C2

FIM SE
9. LINGUAGEM FORTRAN(FORmula TRANslation)

9.1. NOTAÇÃO

a) O programa pode ser codificado em letras maiúsculas e ou minúsculas.

b) Chaves e barra indicam escolha entre opções.

Ex: “Quer continuar (sim/não)?

c) Parênteses, vírgulas, sinais de igualdade, asteriscos e operadores devem ser digitados conforme aparecem.

d) Uma coluna vertical de pontos indica que parte do programa foi omitida.


9.2 CODIFICAÇÃO

A codificação do FORTRAN 77L(usando o Norton Editor ou o Edit do DOS) ou do FORTRAN Powerstation 4.0(usando seu próprio editor) é dividida em quatro campos:



COLUNAS 1 a 5  Reservadas para colocação de rótulos(labels) dos comandos, principalmente antes de FORMAT, CONTINUE, STOP, etc.

COLUNA 6  Para indicar que a linha atual faz parte de um comando que é continuação da linha anterior. Qualquer símbolo, exceto branco e zero, deverá ser colocado nesta coluna, indicando continuação.

COLUNAS 7 a 72  Reservadas para colocação dos comandos que constituem o programa.

COLUNAS 73 a 80  São desconsideradas pelo compilador e, geralmente, são usadas para numeração de linhas(sendo seu uso optativo).
OBSERVAÇÕES:

Não pode haver mais de um comando por linha.

O conjunto de todas linhas do programa digitado constitui-se o “PROGRAMA FONTE”.

A letra C colocada na coluna 1, indica que naquela linha segue um comentário(que é ignorado pelo compilador). Os comentários servem para documentar o programa e explicar o fluxo em si.

O nome de variáveis e de subprogramas podem ter de 1 a 6 caracteres alfanuméricos, sendo obrigatoriamente que o primeiro seja alfabético.( Ex: A, DELTA, D543, etc.).
9.3. COMPONENTES DE UM PROGRAMA FORTRAN

NOME DO PROGRAMA(EX: Program soma ou Program Somatriz, etc.)

COMANDOS NÃO EXECUTÁVEIS:

DECLARAÇÃO DE VARIÁVEIS(Integer, real, etc.)

INICIALIZAÇÃO ESTÁTICA(Comando DATA)

COMANDOS EXECUTÁVEIS:

Comandos IF, DO, GOTO, CONTINUE, READ, WRITE, FORMAT, etc.

COMANDOS DE FINALIZAÇÃO:

Comandos STOP e END
9.4. CONSTANTES E VARIÁVEIS

9.4.1. CONSTANTES

Constante numérica é uma entidade do programa que tem um endereço na memória e é representada por um conjunto de um ou mais dígitos. Ela tem sempre o mesmo valor, não podendo ser alterado.

Ex: 5, 345.76, etc.

Uma constante pode ser não numérica, neste caso ela recebe o nome de cadeia de caracteres e aparece sempre entre apóstrofos como em: ‘MATRIZ A ou ‘B’, etc.
9.4.2. VARIÁVEIS

Variável é uma entidade do programa que tem um endereço na memória e é representada por um “nome de variável” como:

“A” ou “cont” ou “a12”, etc.

9.5. DECLARAÇÃO DE VARIÁVEIS

9.5.1. DECLARAÇÃO IMPLÍCITA

Neste caso, a primeira letra do nome da variável indicará qual é o seu tipo.


9.5.1.1. DECLARAÇÃO DE UMA VARIÁVEL INTEIRA

A variável que começar com uma das letras I, J, K, L, M ou N, será considerada implicitamente como do tipo inteiro.

Ex: i, iap, kvolt, lin, m12, etc.
9.5.1.2. DECLARAÇÃO DE UMA VARIÁVEL REAL

Se a variável começar com uma das letras: A,B,C,D,E,F,G,H,O,P,Q,R,S,T,U,V,W,X,Y,Z, ela é do tipo real. Por exemplo: volt, x3, fest.


9.5.2. DECLARAÇÃO EXPLÍCITA

Deve ser colocada no programa antes de qualquer comando executável, usa-se esta declaração quando não queremos mudar o nome de variáveis convencionais como é o caso de “x”(para raiz de equações), “i” e “j”(para linhas e colunas de matrizes), etc. como também para o caso de usar num programa muitas variáveis de um mesmo tipo. Especifica-se na declaração o nome para as variáveis e a quantidade de memória que os valores destas ocuparão.

9.5.2.1. VARIÁVEL DO TIPO INTEIRO

FORMA GERAL: INTEGER*n nome1, nome2, nome3,... onde:


INTEGER  Indica que os nomes das variáveis que se seguem são do tipo inteiro.

n  Indica a quantidade de memória que o valor de cada variável ocupará; e pode ser:

n = 2  Os valores das variáveis ocuparão meia palavra de memória variando de 32767 até 332767.

n = 4  Ocupação de uma palavra de memória pelos valores das variáveis, variando de 2147483647 até 12147483647.

OBS: Quando não especificado, o compilador assume n = 4.

nome1,nome2,...  Nomes das variáveis que serão consideradas do tipo inteiro.

Ex: INTEGER*4 a, x, col, volt, soma

integer z, desv

9.5.2.2. VARIÁVEL DO TIPO REAL

FORMA GERAL: REAL*n nome1, nome2, nome3,... onde:


REAL  Indica que as variáveis a seguir são do tipo real.

n = 4  Os valores das variáveis ocuparão uma palavra de memória, podendo ter até sete dígitos decimais de precisão.

n = 8  Os valores das variáveis ocuparão duas palavras de memória, podendo ter até dezesseis dígitos decimais de precisão.

OBS: Quando não especificado, o compilador assume n = 4.

nome1, nome2, ...  Nomes das variáveis que serão consideradas do tipo real.

EX: REAL ia, media

real*8 lin, inv
OBS: A declaração DOUBLE PRECISION nome1,nome2,... tem o mesmo efeito que REAL*8 nome1,nome2,....

Uma constante do tipo real pode ser representada de duas formas:

a) Precisão Simples  Feita através de um par(mantissa, expoente) conhecida como notação científica.
FORMA GERAL:  MANTISSA E  EXPOENTE (Precisão simples)

A mantissa pode ter até sete dígitos decimais e o expoente é de dois dígitos, de base 10, variando de 75 a 78. EXEMPLO:

1.75E03  Representa 1.75 x 103

-.635E04  Representa -.635 x 10-4

b) Precisão dupla  Também através de um par(mantissa, expoente).

FORMA GERAL:  MANTISSA D  EXPOENTE(Precisão dupla)

A mantissa pode ter até dezesseis dígitos decimais e o expoente é o mesmo da precisão simples.

EX: 2.3599D05  Representa 2.3599 x 105.


9.5.2.3. VARIÁVEIS E CONSTANTES LÓGICAS

São utilizadas para armazenar resultados de expressões lógicas ou para representar situações que admitam duas alternativas; ”sim ou não”, “verdadeiro ou falso”, “0 ou 1”, “aceso ou apagado”, etc.

Uma variável para ser do tipo lógico tem de ser declarada explicitamente, não havendo declaração implícita.

FORMA GERAL: LOGICAL*n nome1, nome2,... onde:

LOGICAL  Indica que as variáveis a seguir são do tipo lógico.

n = 4  O valor da variável ocupará uma palavra de memória.

n = 1  O valor da variável ocupará 1um byte de memória.

OBS: Quando não especificado o compilador assume n = 4.

nome1, nome2,...  Nomes das variáveis.

EXEMPLO:

LOGICAL a, b, c LOGICAL*1 v, t

Existem duas constantes do tipo lógico:

.TRUE.  Representa verdadeiro.

.FALSE.  Representa falso.


9.5.2.4. VARIÁVEIS E CONSTANTES DO TIPO COMPLEXO

O tipo complexo é um tipo composto que representa números da forma a + bi, em que a e b são ambas reais de mesma precisão. A Variável do tipo complexo é declarada só explicitamente.

FORMA GERAL: COMPLEX*n nome1, nome2,... onde:

COMPLEX  Indica que as variáveis a seguir são do tipo complexo.

n = 8  Se a e b são ambas reais de precisão simples.

n = 16  Se a e b são ambas reais de precisão dupla.

OBS: Quando não especificado o compilador assume n = 8.

EXEMPLOS:

COMPLEX a, b COMPLEX*16 ver, men

9.6. COMANDOS DE INICIALIZAÇÃO

9.6.1. INICIALIZAÇÃO DINÂMICA

Se a variável recebe o valor inicial quando o programa estiver em execução(depois da compilação), aí você entra com os dados via teclado ou via arquivo de dados. Esta inicialização permite entrada de dados em qualquer ponto da execução, usando em geral o comando:

READ(Veja anexos 1 e 2).
9.6.2. INICIALIZAÇÃO ESTÁTICA

Quando o valor inicial é atribuído à variável na compilação, permitindo que cada variável seja inicializada apenas uma vez em cada execução do programa. Para isto usa-se o comando DATA.

FORMA GERAL: DATA V1 , V1 , ... Vn /C1 ,C2, ... Cn onde:

DATA  Comando que inicializa dados.

V1 , V1 , ... Vn  Nomes das variáveis que se quer inicializar.

C1 ,C2, ... Cn  Constantes que se deseja atribuir às variáveis V1 , V1 , ... Vn respectivamente.


EX: DATA IA, IB5/ 7/, IC, ID, IE, IF/4*15/, AJ/5.95

As variáveis receberão os seguintes valores iniciais:

IA = 5, IB = 7, IC = 15, ID = 15, IE = 15, IF = 15 e AJ = 5.95

9.7. OPERADORES E EXPRESSÕES ARITMÉTICAS E LÓGICAS



Expressão  Fórmula ou regra de computação que determina um valor aritmético(real ou inteiro) ou valor lógico.
9.7.1. OPERADORES E EXPRESSÕES ARITMÉTICAS

OPERADORES ORDEM DE HIERARQUIA

- Tomar o negativo de 1

** Exponenciação 2

* Produto, / Divisão 3

+ Soma, - Subtração 4


São executadas primeiro as operações com operadores de maior hierarquia. Quando se tem dois operadores de mesma hierarquia são executadas primeiro as operações da esquerda para a direita.

Parênteses podem ser usados para mudar a hierarquia.

Ex: O número abaixo do operador indica a ordem de execução:

-A + B*C – D/(A*B)



2 5 3 6 4 1 Ordem das operações

9.7.2. OPERADORES E EXPRESSÕES LÓGICAS


OPERADORES RELACIONAIS

.GT.  Maior que

.GE.  Maior ou igual

.LT.  Menor que

.LE.  Menor ou igual

.EQ.  Igual

.NE.  Diferente
CONECTIVOS LÓGICOS PRIORIDADE,
.NOT.  ”Não” lógico 1

.AND.  ”E” lógico 2

.OR.  “Ou” lógico 3

9.8. COMANDOS DA LINGUAGEM

9.8.1. COMANDO GO TO

Usado em um programa para mudar a sequência de execução dos comandos(desvia de qualquer ponto para qualquer ponto logicamente possível do programa).


9.8.1.1. GOTO INCONDICIONAL

FORMA GERAL: GOTO rótulo onde:

GOTO  Palavra que identifica o comando, significa “vá para”.

Rótulo  Rótulo(label) de qualquer comando executável dentro do programa. EX:



. . .

GOTO 20


20 b = b*c

. . .

RESTRIÇÕES:

O comando que segue fisicamente o GOTO deve ter rótulo. O GOTO não pode desviar de dentro para fora nem de fora para dentro de uma subrotina ou função.
9.8.1.2. GOTO CONDICIONAL(CONTROLADO OU COMPUTADO)

Desvia para um determinado rótulo de comando, dependendo do valor de uma variável de controle. É menos usado.

FORMA GERAL: GOTO(r1 , r2 , ... , rn ),VAR onde:
r1 , r2 , . . . , rn  É uma lista de rótulos existentes no programa para onde o fluxo de execução será desviado.

VAR  Nome da variável de controle, do tipo inteiro, que indica a ordem na lista de rótulos. EXEMPLO:

INTEGER MED

. . .


MED = 3

. . .


GOTO(10,15,20,02),med

Na linha indicada pela seta, o controle será desviado para o comando que tem o rótulo igual a 20, pois a variável de controle med tem o valor 3, indicando que o controle será desviado para o terceiro rótulo da lista.

Este comando é usado no programa também para simular o comando CASE(escolha ou seleção).
9.8.2. COMANDO IF

É um comando de “decisão” ou de “teste”; usado no programa, sempre que for desviar o fluxo de controle ou executar um comando, dependendo de uma condição “falsa ou verdadeira”.


9.8.2.1. COMANDO IF ARITMÉTICO

FORMA GERAL: IF(expressão) r1 , r2 , r3 onde:

IF  Comando que significa “se”.

expressão  É uma expressão aritmética válida, que não contenha variáveis ou constantes do tipo complexo.

r1 , r2 , r3  Rótulos de comandos do programa.

Na execução do comando, o controle é desviado para:

r1  Se o resultado da avaliação da expressão for negativo.

r2  Se o resultado da avaliação da expressão for zero.

r3  Se o resultado da avaliação da expressão for positivo.

EXEMPLO:

IF(a - b + c*d)10, 2, 30

. . .

2 e = a + b

10 e = a - b

30 e = b + c

. . .

Se o resultado da expressão for negativo o desvio será para o comando 10, se for zero, será desviado para o comando 2, se for positivo será desviado para o comando 30.


9.8.2.2. COMANDO IF LÓGICO

FORMA GERAL: IF(Condição) comando onde:


Condição  Expressão lógica válida na linguagem.

Comando  Comando executável da linguagem exceto IF e DO.

O comando será executado se o resultado da avaliação for verdadeiro(.TRUE.).

IF(a.le.c) go to 50

IF(.not.(ab)) a = a*b
9.8.3. COMANDO DO

9.8.3.1. DEFINIÇÃO

Serve principalmente para facilitar a manipulação de vetores e matrizes e para repetir uma operação várias vezes.

FORMA GERAL: DO r1 VAR = inic, fim, incr onde:

DO  Comando que significa “faça”.

r1  Rótulo de um comando executável do programa(Em geral usa-se mais o comando CONTINUE que serve para controlar o DO). Este comando executável não pode ser nenhum dos comandos a seguir: GOTO, IF, outro DO, STOP, PAUSE ou RETURN.

VAR  É o nome de uma variável do tipo INTEIRO.

inic  Valor inicial de VAR, deve ser inteiro, sem sinal e menor que “fim”.

fim  Valor final de VAR, deve ser inteiro, sem sinal e maior que “inic”.

incr  Incremento de VAR, inteiro, sem sinal; quando não especificado( não aparece), é considerado igual a 1.

O comando CONTINUE serve apenas como um ponto de referência, não causando mudança alguma no estado de execução do programa.

Dentro de um comando DO pode haver qualquer comando do FORTRAN, inclusive outro(s) comando(s) DO.

EXEMPLO 1: EXEMPLO 2:
DO 10 i = 1, 10, 2 DO 25 j = 2, 20  incr omitido

10 CONTINUE 25 WRITE(*, *)a

a = a + b end

No exemplo1 a variável vai variar de 1 até 10 com incremento 2, e no exemplo 2 a variável j varia de 2 até 20 com incremento 1.

9.8.3.2. CONSTRUÇÕES CORRETAS

DO 10 I = 1, 50

D0 10 J = 1, 30

. . .

10 CONTINUE

No exemplo acima, para cada incremento de “i”, o “j” percorrerá todos os valores de 1 a 30, fazendo com que os comandos dentro do DO mais interno sejam executados 30x50 =1500 vezes.

No exemplo abaixo, mostra que um Do interno deve terminar antes de um DO externo.

DO 10 i = 1, 3

. . .

DO 20 k = 1, 7



. . .

20 CONTINUE

10 CONTINUE

9.8.3.3. CONSTRUÇÕES ERRADAS

a) Um DO interno não pode terminar fora dos limites do DO externo(Figura 1).

b) A variável de controle de um DO externo tem de ser diferente daquela de um DO interno(Figura 2).

c) A variável de controle de um DO não pode ser alterada dentro dos limites deste mesmo DO.(Figura 3).

DO 10 i = 1, 3



. . .

DO 30 k = 1, 7



. . . Figura 1

10 CONTINUE

30 CONTINUE
DO 10 i = 1, 3

. . .

DO 20 i = 1, 7



. . . Figura 2

20 CONTINUE

10 CONTINUE
DO 10 i = 1, 3

. . .

DO 20 k = 1, 7



k = k +1 Figura 3

20 CONTINUE

10 CONTINUE
9.8.4. COMANDOS DE ENTRADA E SAÍDA

9.8.4.1. COMANDO DE ENTRADA

Transfere dados de um meio externo(fita, disco, teclado, etc.) para a memória do computador.

FORMA GERAL: READ(nul, nuf)lista de variáveis onde:

READ  Comando que significa “leia”.

nul  Número da unidade lógica(disco, fita , cartão, etc.), de onde os dados serão lidos para a memória do computador; a cada unidade lógica está 1associado um número lógico.

OPÇÕES DO “NUL” NA ENTRADA:

i) Se “nul” for um número a unidade lógica vai depender do tipo de computador. Para o caso específico da FUNREI, o número pode representar entrada de dados via “arquivo de dados”.

ii) Se “nul” for o símbolo “*”, significa que os dados serão entrados via teclado.

nuf  Número do comando FORMAT, onde está especificado a forma como os dados estão organizados no meio externo(tipo dos dados, espaçamento entre dados, etc.). O “nuf” é o 1º rótulo(label) do comando FORMAT.


OPÇÕES DO “NUF” NA ENTRADA:

i) Se “nuf” for um número representa o rótulo do comando FORMAT.

ii) Se “nuf” for o símbolo “*” representa que o formato de entrada será livre.

Lista de variáveis  Contém o(s) nome(s) da(s) variável(eis), subscrita(s) ou não que será( ão) lida(s), devendo haver correspondência entre os nomes destas e os formatos de leitura.

EXEMPLO:

Integer a, ai, ac

read(1,5) a, ai, ac

Indica que devem ser lidos, do dispositivo de entrada relacionado com o inteiro 1, sob controle do comando FORMAT de rótulo 5, valores para as variáveis inteiras a, ai e ac.


9.8.4.2. COMANDO DE SAÍDA

Transfere dados da memória do computador para um meio externo(fita, disco, impressora, etc.),


FORMA GERAL: WRITE(nul,nuf)lista de variáveis onde:

WRITE  Comando que significa “imprima” ou “grave”.

nul  Unidade lógica onde os dados serão gravados(impressos).
OPÇÕES DO “NUL” NA SAÍDA DE DADOS:

Se nul for um número pode significar uma das opções:

a) Os dados serão gravados num arquivo de dados(de resultados).

Neste caso deve-se definir o arquivo de dados através do comando OPEN(Comando não executável conforme anexo 3).

EX: open(n,file=’nome’, status=’unknown”) onde:

n  É um número inteiro que será igual ao “nul”.

nome  É o nome do arquivo onde serão gravados os resultados, que serão vistos através do comando do DOS: “TYPE”.

b) Os dados serão gravados na impressora. Neste caso deve-se definir o número relativo à impressora através do comando OPEN.

EXEMPLO:

: OPEN(n, file = ’lpt1’) onde:

n  Número da unidade lógica relativa à impressora.

Lpt1  Palavra que indica impressora (pode ser usada a palavra “prn” também).

EXEMPLO:

WRITE(2, 56) a, b, med  Indica que as variáveis a, b e med, serão impressas(gravadas) na unidade lógica 2, sob controle do comando FORMAT de rótulo 56.


9.8.4.2.1. IMPRESSÃO(GRAVAÇÃO) DE MENSAGENS E CABEÇALHOS

Para se imprimir(gravar) mensagens ou cabeçalhos usa-se o comando WRITE, com os dizeres entre apóstrofos.

EX: WRITE(*, *) ‘MATRIZ A MATRIZ INVERSA’

Aqui será impresso na tela do computador este cabeçalho.


9.8.4.2.2. OUTRA OPÇÃO DE SAÍDA COM FORMATO LIVRE

Quando se quer imprimir, no formato livre, uma mensagem ou cabeçalho junto com algum dado pode-se usar a seguinte opção:

WRITE(*, *) ‘x = ‘, x

Neste caso será 1impresso na tela a cadeia de caracteres x = seguida do valor da variável “x”.

OBS: Para imprimir uma linha em branco você poderá usar a opção: WRITE(*, *)
9.8.5. COMANDO DE ESPECIFICAÇÃO FORMAT

É utilizado para especificar os dados de entrada e saída tais como: espaçamento entre dados, salto de linhas ou páginas, formato de números, impressão de nomes, etc.


FORMATOS QUE PODEM SER UTILIZADOS NO FORTRAN:
nIc  Para dados do tipo inteiro.

nFc.d  Para dados do tipo real(forma decimal).

nEc.d  Dados do tipo real, precisão simples(exponencial).

nDc.d  Dados do tipo real, precisão dupla(exponencial).

nLc  Dados do tipo lógico.

nAc  Dados que externamente são alfanuméricos.

nX  Espacejamento horizontal.

dH  Dados literais.

onde:

n  É um fator de repetição, deve ser um número inteiro.



c  Número de caracteres ocupados pelo dado(número de colunas), o ponto decimal e o sinal contam como caracteres.

d  Número de posições decimais após a vírgula.

FORMA GERAL: nuf FORMAT(lista de especificação de formato) onde:

nuf  Rótulo do comando FORMAT que aparece no comando READ ou no comando WRITE.

Lista de especificação de formato  Pode ser um dos especificados nos itens seguintes:

9.8.5.1. FORMATOS PARA DADOS NUMÉRICOS

9.8.5.1.1. DADOS DO TIPO INTEIRO

Na entrada, espaços em branco dentro do campo são interpretados como “zeros”. Na saída se a quantidade de posições for menor que “c”, os espaços que sobram são deixados em branco e o número é ajustado pela direita. Se a quantidade for maior que “c”, são impressos asteriscos que indicam erro no formato do dado.

EXEMPLO:(b  Nos exemplos abaixo “b” significará espaço em branco)

DADO DE ENTRADA FORMATO DADO LIDO


b9b35 i5 09035

935bb i4 9350

-239 i3 -23
DADO DE SAÍDA FORMATO DADO IMPRESSO

-2 i5 bbb-2

99959 i4 ****
9.8.5.1.2. DADOS DO TIPO REAL

O número de posições inclui o ponto decimal e o sinal.

DADO DE ENTRADA FORMATO DADO LIDO

7539 F5.1 753.9

+75.39 F6.2 +75.39
DADO DE SAÍDA FORMATO DADO IMPRESSO

+75.390 F6.3 ******

297. E10.3 b0.297Eb03

226721.1 D10.3 b0.227Db06


Você pode condicionar a impressão de um ou mais dados por linha:

EXEMPLO:


WRITE(*, 2) a, b, c, d, e, f Impressão de um número por linha.

12 format(f4.2)


WRITE(*,3)a, b, c, d ,e, f Impressão de dois números por linha.

13 format(2f4.2)


WRITE(*,3)a, b, c, d ,e, f Impressão de n números por linha.

format(nF4.2)

9.8.5.2. FORMATO PARA DADOS LÓGICOS

Na entrada, a primeira ocorrência de uma letra T ou F dentro do campo especificado, causa a atribuição de .TRUE. ou .FALSE. respectivamente à variável lógica que receberá o valor lido. Na saída é impresso T ou F.


9.8.5.3. FORMATO PARA DADOS NÃO NUMÉRICOS

Palavras que ocupam uma palavra de memória(REAL*4 e INTEGER*4), podem abrigar no máximo quatro caracteres; variáveis que ocupam duas palavras de memória(REAL*8) podem abrigar no máximo oito caracteres.

Neste caso usa-se o formato “nAc”.

EXEMPLO: Suponha que o dado não numérico UNIVERSIDADE tenha que ser lido por um programa. Isto pode ser feito de várias maneiras:

integer*4 a, b, c

real*8 d, e

integer*2 f, g, h ,i ,j , k
(a) READ(1,5) a, b, c

5 format(3a4)


(b) READ(1,6) d, c

6 format(a8, a4)


(c) READ(1,7)f, g, h, i, j, k

7 format(6a2)


No caso (a), depois da leitura, “a” conterá UNIV, “b” conterá ERSI e “c” conterá DADE.

No caso (b), “d” conterá UNIVERSI e “e” conterá DADE.

No caso f = UN, g = IV, h = ER, i = SI, j = DA e “k” conterá DE.

Para impressão procede-se do mesmo jeito.


9.8.5.4. DADOS LITERAIS

São cadeias de caracteres envolvidas por apóstrofos; são muito utilizadas para impressão de cabeçalhos em folhas de saída, etc.

Há duas formas de imprimir(gravar) literais:

i) Colocando o que se quer imprimir entre apóstrofos.

ii) Usando o formato dH, onde “d” especifica o comprimento da cadeia de caracteres(espaço em branco é contado como caracter).

EXEMPLO:

WRITE(*,10)

10 format( ‘UNIVERSIDADE CATÓLICA’) ou


WRITE(*,12)

12 format(21hUNIVERSIDADE CATÓLICA)


9.8.5.5. CONTROLE VERTICAL E HORIZONTAL DE LEITURA/IMPRESSÃO

O espacejamento horizontal na E/S é feito pela especificação nX, onde n indica o número de espaços em branco que se quer saltar.

O espacejamento vertical é feito usando a barra(/) ou n(/), onde n é o número de linhas que se quer saltar. Ao se usar a impressora, a primeira posição de uma linha de saída no comando FORMAT é um caracter de controle; este caracter pode aparecer entre aspas ou usando o formato H e pode ser:

’1’ ou 1H1  Causa o salto para uma nova página.

’b’ ou 1Hb  Espacejamento normal.

’0’ ou 1H0  É deixada uma linha em branco entre a atual e a próxima(espacejamento duplo).

‘-‘ ou 1H  São deixadas duas linhas em branco(espaço duplo).

‘+’ ou 1H  Não há espacejamento e a impressão é feita na linha atual.

9.8.6. COMANDOS DE TÉRMINO E PARADA DO PROGRAMA

9.8.6.1. COMANDOS DE PARADA

I) Parada momentânea:

FORMA GERAL: PAUSE

Pode ser usado em qualquer ponto do programa. Na execução, há uma pausa, aparecendo uma mensagem para você apertar quando você observar tudo que aparece na tela e estiver pronto para mudá-la.
II) Parada lógica:

FORMA GERAL: STOP ou STOP ‘mensagem’

Indica fim lógico do programa, pode ser omitido. Pode usar uma mensagem(por exemplo: ”PROGRAMA TERMINADO”) usada entre apóstrofos.

Pode-se usar rótulo(label) antes do STOP.


9.8.6.2. COMANDO DE TÉRMINO

Comando não executável que indica o fim físico do programa fonte ou subprograma. Deve ser o último comando de um programa.

FORMA GERAL: END ou END ‘mensagem’

Este comando não pode ter rótulo.


9.8.7. ESTRUTURA DE DADOS: VETORES E MATRIZES

Define-se um vetor(ou matriz ou arranjo) como sendo uma estrutura de dados homogênea(todos componentes do mesmo tipo).


9.8.7.1 DECLARAÇÃO

9.8.7.1.1. DECLARAÇÃO COM TIPO IMPLÍCITO

A especificação DIMENSION tem por finalidade dar ao compilador FORTRAN as informações sobre que variáveis do programa serão subscritas e suas dimensões. Deve aparecer antes do primeiro comando executável do programa.

FORMA GERAL: DIMENSION V1 ( D1 , ... Dm ),V2 (D1 ,... Dm), . . . onde:

21 1 7 2 11 27

V1, V2, . . .  Nome de vetores(o nome pode ter até seis caracteres sendo que o primeiro tem de ser alfabético.

( D1 , ... Dm )  Constantes inteiras sem sinal, que indicam o número de elementos em cada dimensão e o número de dimensões.

EXEMPLO:


Dimension a(10,20)  Define um vetor(matriz) do tipo real pois começa com a letra “a”, de duas dimensões, em que o índice da primeira dimensão vai de 1 até 10 e o da segunda vai de 1 até 20.

Na especificação DIMENSION, é dimensionado o número máximo do índice(Por exemplo no seu programa você pode usar a especificação

DIMENSION a(10,10), b(10,10) e no programa somar duas matrizes 3x4.
9.8.7.1.2. DECLARAÇÃO COM TIPO EXPLÍCITO

Usam-se os comandos INTEGER para vetores de inteiros e REAL para vetores de reais.

FORMA GERAL: INTEGER*n V1 ( D1 , ... Dm ),V2 (D1 ,... Dm), . .

FORMA GERAL: REAL V1 ( D1 , ... Dm ),V2 (D1 ,... Dm), . .

A descrição e o modo de usar são os mesmos do DIMENSION.
9.8.7.2. MANIPULAÇÃO DE VETORES

Para se ter acesso a qualquer elemento de um vetor, usam-se os “subscritos”(ou índices), que podem ser variáveis inteiras positivas, constantes inteiras positivas ou expressões inteiras positivas. Os índices são colocados entre parênteses como em:

VETOR( i1 , ... in )

EXEMPLO:


INTEGER VET(100)
Se quisermos acessar o elemento de índice 80. basta codificar VET(80) que o elemento estará disponível.
a) INTEGER i, vet(100)

do 10 i = 1,100

vet(i) = 0

10 CONTINUE

Neste caso, o vetor “vet” de inteiros , está sendo percorrido sequencialmente, estando cada um deles sendo zerado.

b) INTEGER a, b, matriz(10,10)

do 10 a = 1,10

do 8 b = 1,10

matriz(a, b) = 1

8 CONTINUE

10 CONTINUE

O vetor matriz de duas dimensões está sendo percorrido, por linhas sequencialmente, sendo atribuído a cada elemento o valor 1.

9.8.7.3. INICIALIZAÇÃO DE VETORES

9.8.7.3.1. INICIALIZAÇÃO ESTÁTICA

É feita através do comando DATA(Em tempo de compilação).

EXEMPLO:


INTEGER vetor(100),a(10,20)

DATA vetor/100*0/,A/50*0,50*1,50*2,50*3/

”vetor” terá todos seus 100 elementos zerados; “a” terá os 50 primeiros elementos zerados; os próximos 50 elementos iguais a 1; os próximos 50 iguais a 2 e os restantes 50 iguais a 3.
9.8.7.3.2. INICIALIZAÇÃO DINÂMICA

É feita em tempo de execução, usando um comando de atribuição e comandos “DO”, quantas vezes forem necessárias.

EXEMPLO 1: EXEMPLO 2:

INTEGER abc(20, 20) INTEGER ABC(20, 20)

DO 10 i = 1, 10 DO 10 j = 1, 20

DO 20 j = 1, 20 DO 20 i = 1 ,10

abc(i, j) = 0 abc(i, j) = 0

20 CONTINUE 20 CONTINUE

10 CONTINUE 10 CONTINUE

A matriz abc está sendo A matriz ABC está sendo

zerada por linhas. zerada por colunas.

9.8.7.4. ENTRADA E SAÍDA DE VETORES

9.8.7.4.1. ENTRADA DE VETORES

É feita através do comando READ, associado ao comando DO.


i) VETORES DE UMA DIMENSÃO(Ex: série de números)

DIMENSION A(100)

SOMA = 0

DO 5 i = 1,100  DO explícito

READ(*, *)A(I)

SOMA = SOMA + A(I)

5 CONTINUE

Aqui está sendo lido um vetor de 100 elementos que podem ser, por exemplo, 100 números para serem somados ou multiplicados, etc.

Neste caso poderia ser usado também o comando: com o:

READ(*, *)(a(i), i =1, 100)  DO implícito

ii) VETORES DE DUAS DIMENSÕES(Ex: matriz)

REAL b(20, 20) Neste exemplo está sendo lida uma

DO10 i = 1, 4 matriz 4x5, por linhas.

DO20 j = 1, 5

READ(*, *)a(i, j)

20 CONTINUE

10 CONTINUE

9.8.7.4.2. SAÍDA DE VETORES

É feita através do comando WRITE, associado ao comando DO.

EXEMPLO:

DIMENSION a(10, 10),b(10, 10),c(10, 10)

DO 5 i = 1, 4 Neste caso es tão sendo lidas duas,

DO 8 j =1, 3 matrizes “a” e “b” 4x3 e também,

READ(*, *)a(i, j) sendo calculada e impressa a soma,

READ(*, *)b(i, j) destas matrizes sendo colocado o

c(i, j) = a(i, j ) + b(i, j) resultado na matriz “c”.

WRITE(*, *)c(i, j)

8 CONTINUE

5 CONTINUE

Com esta maneira de imprimir, os elementos das matrizes serão impressos um em cada linha. Para imprimir do modo normal como é uma, matriz usa-se o DO implícito.

DO 5 i = 1, 4

WRITE(8, *)(c(i, j),j =1, 3)

5 CONTINUE

OBSERVAÇÃO:

Quando for imprimir um literal ou um número, deve-se sempre usar no formato de saída um caracter a mais da quantidade usada na leitura de dados, pois o primeiro caracter na saída é usado como controle. Se não fizer isto é suprimido o primeiro caracter do dado lido.

EXEMPLO:

WRITE(*,*)’ DIGITE UMA PALAVRA DE ATÉ 6 CARACTERES ‘

READ(*,1)A

1 FORMAT(A6)

WRITE(*,2) A

2 FORMAT(A7)


9.8.8. SUBPROGRAMAS

É a subdivisão de um programa com a vantagem de se concentrar em um só problema de cada vez. É mais utilizado quando você precisa fazer várias operações ou aplicar uma mesma fórmula ou expressão várias vezes num programa.
9.8.8.1. SUBPROGRAMA FUNÇÃO

As principais características que o distingue da subrotina são:

i) Retorna ao programa principal um só valor no nome da função.

ii) Tem um tipo associado ao nome da função, que é o tipo do valor retornado ao programa.

iii) Para ser utilizado basta que se faça uma referência ao nome da função em qualquer lugar possível do programa(comandos de E/S, expressões aritméticas e lógicas, etc.).

iv) Deve ser declarado no programa antes de qualquer comando executável.

v) Pode retornar dados ao programa que o chamar.

vi) Pode conter qualquer comando exceto outra FUNCTION ou SUBROUTINE.


9.8.8.1.1. SUBPROGRAMA FUNÇÃO DECLARAÇÃO

É usado no programa, por exemplo, quando se quer calcular uma fórmula ou função em vários pontos. Descreve-se então a fórmula como uma função declaração; quando for necessário fazer o cálculo de um valor da fórmula, basta fazer referência ao nome da função no local desejado.

FORMA GERAL: NOME(a1 , ... an ) = EXPRESSÃO onde:

NOME  Nome da função que tem um tipo associado, podendo este ser definido implicitamante ou não.

a1 , ... an  São argumentos da função, são nomes de variáveis que se usam para definir a forma geral da função do lado direito do sinal “=”; cada argumento tem um tipo associado.
EXPRESSÃO  Expressão aritmética escrita utilizando os argumentos a1 , ... an que descrevem a fórmula ou função.

Para obter valores da função basta usar a referência:,

NOME(p1 , ... pn ) onde:
NOME  É o mesmo nome do subprograma função.

p1 , ... pn  São parâmetros com que a função está sendo ativada e são variáveis do programa principal. Cada argumento a1 , ... an será substituído respectivamente por cada um dos parâmetros p1 , ... pn.

EXEMPLO:
Seja o polinômio y = 5x3 + 4x2 + 2, que se quer transformar em um subprograma função.
REAL poli, x, y, a, b

poli(x)=5*X**3 + 4*X**2 + 2

a = 2

b =1


y = poli(a)*0.5 2*a
O valor da função é calculado, substituindo o argumento “x” pelo parâmetro “a”, retornado ao ponto de chamada no nome da função “poli”, como um valor real(no caso, “poli(a)” retornaria o valor 58).

Se tivéssemos poli(b) o valor retornado seria 11.


9.8.8.1.2. SUBPROGRAMA FUNÇÃO PROPRIAMENTE DITA

Semelhante ao subprograma função porém agora a declaração deve ser definida fora(antes ou depois) do programa principal.

FORMA GERAL: TIPO FUNCTION NOME(a1 , ... an)

NOME = “VALOR A SER RETORNADO”

RETURN

END onde:


- TIPO  Tipo associado ao nome da função (real, inteiro, etc.).

- FUNCTION  Indica que é um subprograma função.

- NOME Nome da função.

- a1 , ... an  Argumentos do subprograma.

Tanto no subprograma função como na subrotina, as variáveis do programa principal não são as mesmas de um subprograma. Para que isto aconteça é necessário que se use a especificação “COMMON”.

”COMMON” é uma especificação( não executável) que faz com que as variáveis definidas em um programa possam partilhar os mesmos locais que variáveis definidas em subprogramas.

EXEMPLO:

PROGRAM TAL FUNCTION ADD(X, Y)



. . . COMMON Z

COMMON A ADD = X + Y + Z

A = 5 RETURN

SOMA = ADD(C, D) END

Neste exemplo, a variável Z do subprograma função ADD terá o valor 5 quando da execução do subprograma.

A forma geral desta especificação é: COMMON lista de variáveis. Ela deve ser declarada antes de qualquer comando executável.

FORMA GERAL: SUBROUTINE NOME(a1 , ... an )

RETURN


END onde:

NOME  Nome da subrotina.

a1 , ... an  Argumentos da subrotina.

RETURN  Causa retorno ao programa principal.

END  Indica fim da subrotina.

Para ativar(chamar) uma subrotina basta usar a referência:

CALL NOME(p1 , ... pn) onde:
CALL  Significa “chame”, ativa a subrotina.

NOME  Nome da subrotina.

p1 , ... pn  Parâmetros que substituirão respectivamente os argumentos a1 , ... an.
EXEMPLO:
PROGRAMA PRINCIPAL:

PROGRAM RAIZ

READ(*, *)A1, B1, C1

CALL EQ2G(A1, B1, C1, R1, R2)

STOP

END
SUBROTINA:


SUBROUTINE EQ2G(A,B,C,X1,X2),

C SUBROTINA QUE CALCULA RAÍZES DE EQUAÇÕES DO SEGUNDO GRAU

D = B**2 4*A*C

IF(D.GE.0) GO TO 50

ELSE

WRITE(*, *) RAÍZES COMPLEXAS’



ENDIF

50 X1 = (B - (SQRT(D))/(2*A)

X2 = (B + (SQRT(D))/(2*A)

WRITE(*, *)X1,X2

RETURN

END
10. COMANDOS ADICIONAIS DO FORTRAN



10.1. USO DE COMANDOS DO “DOS” NUM PROGRAMA

Você pode acionar comandos do DOS através de uma subrotina de sistema:

FORMA GERAL: CALL SYSTEM(“comando do DOS”)

Você pode usá-la em qualquer lugar do programa, colocando entre parênteses e entre aspas o comando do DOS desejado(dir, type, cls, etc.) inclusive poderá executar um programa dentro de outro programa.

EXEMPLO:

PROGRAM TAL

READ(*, *)a, b

WRITE(*, *)a

PAUSE

CALL SYSTEM(“CLS”)



WRITE(*, *)b

END
Este exemplo faz com sejam lidos dois números, depois é impresso na tela o primeiro número associado à variável “a”, a tela então ficará ”congelada” por causa do comando PAUSE, apertando então , a tela será ”limpada” devido ao comando CLS e aparecerá então impresso na tela só 1o segundo número associado à variável “b”.

Se não tivesse isto, os dois números seriam impressos na mesma tela.
10.2. LEITURA DE DADOS COM O COMANDO “INPUT”

INPUT é uma versão “curta” do comando READ, é usado para transferir dados do console somente.

FORMA GERAL: INPUT NUF, LISTA DE VARIÁVEIS onde:

INPUT  Comando que significa ENTRADA.

NUF  É o rótulo de uma especificação FORMAT, quando é um formato livre usa-se o símbolo “*”.

LISTA DE VARIÁVEIS  Variáveis a serem lidas.

EX: INPUT 2, a, b, c

2 FORMAT(3f5.2)

10.3. IMPRESSÃO DE DADOS COM O COMANDO “PRINT”

”PRINT” é um caso especial do comando WRITE onde os dados são transferidos somente para o console.

FORMA GERAL: PRINT NUF, LISTA DE VARIÁVEIS onde:

PRINT  Comando que significa IMPRIMA.

NUF  É o rótulo de uma especificação FORMAT, ou pode ser usado o “*” quando o formato for livre.

LISTA DE VARIÁVEIS  Variáveis a serem impressas.

EXEMPLO1:

PRINT 3, a, b, media,

3 FORMAT(f4.1)
EXEMPLO2:

PRINT *, ‘media desvio padrão’


OBS: Para imprimir uma linha em branco use: PRINT*,’ ‘
10.4. GERAÇÃO DE NÚMEROS ALEATÓRIOS

Usa-se a função intrínseca “RRAND()” quando é a primeira que é necessário usar um número aleatório num programa. Se mais números aleatórios são requeridos durante o curso do programa a função “RND()” pode ser usada. Estas duas funções geram números aleatórios entre 0.0 e 1.0, uniformemente distribuídos.


11. EDIÇÃO, COMPILAÇÃO E EXECUÇÃO DE PROGRAMAS

Primeiro você entra num Editor “não documento”(aquele onde não se usa acentuação nem Ç), tal como o Edit do DOS ou o Norton Editor no caso do FORTRAN F77L ou no editor próprio no caso do FORTRAN Powerstation 4.0. Digita-se todo o programa, seguindo as normas descritas no tópico 9.2 anteriormente citado. Ao terminar de digitar, salva-se o programa num arquivo com extensão FOR.


11.1. FORTRAN F77L

Uma observação importante é que, para se processar a compilação, seu computador deve possuir um coprocessador aritmético.

O primeiro passo é você estar trabalhando na pasta onde esta o arquivo executável F77L.EXE para poder compilar normalmente.

Como exemplo, vamos supor que todos os arquivos que compõem esta versão do FORTRAN estejam numa pasta chamada PRD, e que você vá também gravar os arquivos fonte, objeto e executável nesta mesma pasta.

Assim que gravar o arquivo fonte(supor o arquivo gravado com o nome TRAB.FOR), para fazer a compilação, saia do editor e, na linha de comandos do DOS, digite:

f77l trab e tecle Enter

Se seu programa não tiver erro tipo FATAL, geralmente aparecerá somente o nome do programa seguido do nome de subrotina(caso houver), aí você poderá passar para a próxima etapa. Os erros tipo WARNING algumas vezes podem ser desprezados(por exemplo uma variável que é declarada mas não é usada no programa), porém devem ser analisados.

Caso haja erro(s), você deverá anotá-lo(s), como também a linha onde foram detectados, entrar de novo no Editor, corrigir os erros, gravar novamente o arquivo e compilar, repetir estas operações até que sejam eliminados os erros fatais.

A próxima etapa será “linkar” o programa digitando o seguinte:



link trab e tecle Enter

Em seguida você deverá teclar Enter após cada comando que aparece abaixo:



RUN FILE C:TRAB.EXE]:

LIST FILE NUL.MAP]:

LIBRARIES .LIB]:

Caso não haja erros será gravado o arquivo executável trab.exe.

Para executar o programa basta digitar na linha de comandos do DOS: trab e em seguida teclar Enter e atender aos comandos específicos do programa em questão.

11.2. FORTRAN POWERSTATION 4.0

11.2.1. AMBIENTE DO FORTRAN POWERSTATION 4.0

Após entrar no ambiente do FORTRAN POWERSTATION 4.0, para iniciar a edição de seu programa acione as seguintes opções do menu File - New - Text file - OK ou então clique no ícone cuja referência é New source file que se encontra na barra de ferramentas logo abaixo do menu File.

No ambiente do FORTRAN POWERSTATION 4.0 vão aparecer três janelas:


  1. A primeira à esquerda aparece com duas opções: uma é a File view onde aparece a pasta que terá o mesmo nome do atual arquivo e que contém dentro dela o arquivo com extensão FOR atualmente usado. A outra opção é a Infoview onde aparece o help sobre vários tópicos do FORTRAN, inclusive a opção para pesquisar informações sobre os vários tipos de erros com seus respectivos códigos e explicações de cada um.

  2. A segunda janela, à direita, é o espaço de trabalho onde é digitado o programa; é o editor dos programas.

  3. A terceira janela, abaixo, é aquela onde aparecem os comandos relativos à compilação dos programas. Aí é onde aparecem as mensagens de erros que devem ser anotadas(ou guardadas na sua memória) para serem posteriormente providenciadas as correções e a partir daí compilar os programas novamente até não haver mais erros.

11.2.2. PASSOS PARA EDIÇÃO DOS PROGRAMAS

Inicia-se a edição de um programa posicionando o curso na coluna 7 da primeira linha e digitando o primeiro comando que é a palavra program seguida do nome do programa em questão, tecle Enter e em seguida vai digitando o restante dos comandos que compõem o programa todo.

Salvar o programa num arquivo com extensão for.



Observação: Vamos supor que um programa exemplo será salvo com o nome teste.for.

Assim que salvar a primeira vez, é acrescida uma coluna verde logo antes da coluna 7 fazendo a marcação da coluna onde se inicia os comandos do FORTRAN.

Normalmente os números relativos à especificação FORMAT são exibidos na cor vermelha; as palavras chaves(comandos) aparecem na cor azul, os comentários(sendo colocada a letra c na coluna 1) aparecem na cor verde e o restante aparece na cor preta.

A compilação(onde se verificam os erros na digitação de comandos do programa em questão), é feita através das opções:



Build__Compile_teste.for'>Build

Compile teste.for

Havendo erros, devem ser feitas as correções, salvar novamente o arquivo e compilar novamente. Não tendo mais erros faz-se a "linkagem"(onde são verificados os erros de lógica do programa em questão), com as opões:



Build

Build teste.for

Não havendo erros, são usadas as opções abaixo(quando é criado o arquivo executável):



Build

Rebuild all

Em seguida executa-se o programa, dentro do ambiente do FORTRAN, usando as opções:



Build

Execute teste.exe

O programa será então executado; caso necessite deve-se entrar com os dados requeridos.

Normalmente os arquivos que são criados no FORTRAN POWERSTATION 4.0 são gravados na pasta C:\MSDEV\PROJECTS.

Sendo criado o arquivo executável, você poderá executá-lo fora do ambiente do FORTRAN, bastando dar o duplo clique sobre o ícone do arquivo executável(se usar o Windows Explorer) ou bastando digitar teste seguido do Enter(se usar o Prompt do DOS)


11.2.3. OPÇÕES DE MENU DO FORTRAN POWERSTATION 4.0

Build Debug Go Inicia ou continua a rodar o programa(No lugar destas opções pode-se usar também a tecla F5).

Build Debug Step Into Passa para o próximo argumento(No lugar destas opções pode-se usar também a tecla F8).

Build Debug Run to cursor Roda o programa na linha que contém o cursor(No lugar destas opções pode-se usar também a tecla F7).

Quando já está com um programa aberto e quer iniciar outro programa, acione as opções: Insert Project Name Create; na janela Name digite o nome do arquivo onde será gravado seu programa. Assim que salvar o programa verifique se no menu Build aparecem as três opções: Compile, Build e Execute seguidas do mesmo nome do arquivo atual.

Quando acionar o help ou outra opção e quiser voltar para a área de trabalho acione o menu window e escolha a janela a ser acionada dentre daquelas que aí aparecem.
12. ANEXOS

12.1. PROGRAMA EXEMPLO 1

PROGRAMA COM ENTRADA DE DADOS VIA TECLADO IMPRESSÃO FEITA NA IMPRESSORA COM LEITURA USANDO ESPECIFICAÇÃO “FORMAT”

PROGRAM PRODUTO

OPEN(1,FILE = ’LPT1’)

WRITE(*, *) DIGITE UM NUMERO REAL E UM INTEIRO ‘

READ(*, 100)A, I

WRITE(1,110)A, I

B = A * I

WRITE(1,120)B

100 FORMAT(F5.1,x,I3)

110 FORMAT(//,10X,’VARIAVEL REAL = ‘,F6.1,//,10X, ´ VARIAVEL INTEIRA =´,

*I3)



  1   2


©livred.info 2017
enviar mensagem

    Página principal