Fundamentos de algoritmos e programação - Fortran

642 visualizações

Publicada em

Algoritmos e Programação

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
642
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
16
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Fundamentos de algoritmos e programação - Fortran

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. Algoritmo 1 - principal Inteiro A, B real X, Y Caractere nome lógica W fim
  7. 7. 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
  8. 8. 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
  9. 9. Algoritmo Algoritmo B=B^2 A=B x 20 B= B /A A= A+2 B=+B A=5-B B=-A fim
  10. 10. 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.
  11. 11. Operador Definição Uso do Operador Significado // Concatenação a//b a encadeado com b Tabela 02
  12. 12. Como resultado deste comando irá aparecer na tela:
  13. 13. 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
  14. 14. Obs.: (1) Os comandos “.LT.” e “.GE.” pode ser substituídos por qualquer outro da tabela 03, caso seja do interesse do programador.
  15. 15. 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.
  16. 16. .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
  17. 17. O comando PRINT é usado para transferir dados para o vídeo. Casualmente entendido como uma impressão, de determinado dado, no monitor.
  18. 18. Algoritmo Imprima ‘Teste de Impressão’ Fim
  19. 19. Obs.: (1) Note que o texto escrito entre aspas simples aparecerá inalterado quando impresso no monitor. Como resultado deste comando irá aparecer na tela:
  20. 20. 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 *.
  21. 21. Algoritmo Write ‘Teste de Impressão’ Fim
  22. 22. O comando READ é usado para adquirir dados de um arquivo ou teclado.
  23. 23. Algoritmo Leia X Fim
  24. 24. Obs.: (1) É usual a utilização de um pequeno texto indicando que variável o usuário deve entrar com os dados.
  25. 25. 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.
  26. 26. 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.
  27. 27. 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>
  28. 28. 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.
  29. 29. O arquivo .txt utilizado nesse exemplo é:
  30. 30. Obs.: Nesse exemplo atribuímos uma variável (entrada) à “Unit”. Note que essa variável passou a ser nossa unidade de referencia.
  31. 31. 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.
  32. 32. 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.
  33. 33. 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”.
  34. 34. 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.
  35. 35. 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”.
  36. 36. 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.
  37. 37. 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 .
  38. 38. 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á.
  39. 39. 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”.
  40. 40. O comando executável STOP termina a execução do programa, pode exibir uma informação no vídeo.
  41. 41. Algoritmo Pare [Fim do Programa] Fim Embora o comando stop termine a execução do programa, ele pode ser dispensado.
  42. 42. Nesse caso teremos na tela a seguinte mensagem:
  43. 43. 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.
  44. 44. 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.
  45. 45. 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.
  46. 46. 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.
  47. 47. 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
  48. 48. 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.
  49. 49. Vetores e matrizes podem ser somados, subtraídos, multiplicados e divididos entre si, desde que sejam de mesmo tamanho:
  50. 50. 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
  51. 51. 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.

×