Upload
kennedy-morais-fernandes
View
146
Download
0
Embed Size (px)
DESCRIPTION
Algoritmos e Programação
Citation preview
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
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
O comando REAL é usado para declarar,explicitamente, um nome de variável,conjunto de variáveis, constante simbólicacomo sendo do tipo realObs.: Ver Exs
O comando CHARACTER é usado paradeclarar, explicitamente, um nome devariável, conjunto de variáveis, constantesimbólica, como sendo do tipo alfa-numéricaObs.: Ao declara uma variável do tipoCharacter deve ser indicado o númeromáximo de caracteres que a variável podeconter, esse numero de ser inteiro e positivo.Obs.: Ver Exs
O comando LOGICAL é usado para declarar,explicitamente, um nome de variável,conjunto de variáveis, como sendo do tipológica. As variáveis lógicas devem ser .TRUE.(verdadeiro) ou .FALSE. (falso).
Obs.: Ver Exs
Algoritmo 1 - principal
Inteiro A, B
real X, Y
Caractere nome
lógica W
fim
Obs.: (1) Note que o programa principal deve ter um nome, neste caso, “principal”.
(2) O comando implicit nonedetermina 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
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
Algoritmo
Algoritmo
B=B^2
A=B x 20
B= B /A
A= A+2
B=+B
A=5-B
B=-A
fim
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.
Operador Definição Uso do Operador Significado
// Concatenação a//b a encadeado com b
Tabela 02
Como resultado deste comando irá aparecer na tela:
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
Obs.: (1) Os comandos “.LT.” e “.GE.” pode ser substituídos por qualquer outro da tabela 03, caso seja do interesse do programador.
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.
.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
O comando PRINT é usado para transferir dados para o vídeo. Casualmente entendido como uma impressão, de determinado dado, no monitor.
Algoritmo
Imprima ‘Teste de Impressão’
Fim
Obs.: (1) Note que o texto escrito entre aspas simples aparecerá inalterado quando impresso no monitor.
Como resultado deste comando irá aparecer na tela:
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 eidentificado pelo símbolo *.
Fmt Pode ser um número (LABEL) associado ao formato de saída dosdados ou pode ser utilizado para especificar diretamente oformato da variável a ser transferida, a qual deve ser escritautilizando os seguintes delimitadores: '(tipo do formato)'. Pode-se omitir a especificação do formato (utiliza-se o dispositivopadrão), para isto é necessário utilizar o símbolo *.
Algoritmo
Write ‘Teste de Impressão’
Fim
O comando READ é usado para adquirir dados de um arquivo ou teclado.
Algoritmo
Leia X
Fim
Obs.: (1) É usual a utilização de um pequeno texto indicando que variável o usuário deve entrar com os dados.
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.
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.
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>
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.
O arquivo .txtutilizado nesse exemplo é:
Obs.: Nesse exemplo atribuímos uma variável (entrada) à “Unit”. Note que essa variável passou a ser nossa unidade de referencia.
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.
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.
Algoritmo
Se (e1) então
Bloco (1)
senão
Bloco (3)
fim se
Fim
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”.
O comando DO é um comando de controleque permite que uma seqüência decomandos seja repetitivamente executadaenquanto o valor da variável de controleestiver entre os limites especificados.
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”.
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.
O comando DO WHILE é um comando decontrole que permite que uma seqüência decomandos seja repetitivamente executadaenquanto a expressão lógica permanecerverdadeira .
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á.
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”.
O comando executável STOP termina a execução do programa, pode exibir uma informação no vídeo.
Algoritmo
Pare [Fim do Programa]
Fim
Embora o comando stop termine a execução do programa, ele pode ser dispensado.
Nesse caso teremos na tela a seguinte mensagem:
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.
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.
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 realA variável “nome” é um vetor com 10 posições, com valores do tipo caractere.
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.
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
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.
Vetores e matrizes podem ser somados, subtraídos, multiplicados e divididos entre si, desde que sejam de mesmo tamanho:
Algoritmo
A(1)= B(7)+C(5)
X(10,1)=Y(1,7)-Z(4,5)
C(3)= B(2)*A(8)
Z(1,4)= X(9,5)/Y(6,8)
Fim
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.