1 Estrutura de um Programa: Cabealho de DefinioPROGRAM, FUNCTION, SUBROUTINE, MODULE ou BLOCK DATA Pode haver apenas um comando PROGRAM, ou BLOCK DATA.

  • Published on
    18-Apr-2015

  • View
    107

  • Download
    0

Transcript

  • Slide 1
  • 1 Estrutura de um Programa: Cabealho de DefinioPROGRAM, FUNCTION, SUBROUTINE, MODULE ou BLOCK DATA Pode haver apenas um comando PROGRAM, ou BLOCK DATA Pode haver vrios comandos SUBROUTINE e/ou FUNCTION e/ou MODULE Comandos de DeclaraoREAL, INTEGER, IMPLICIT, PARAMETER, DATA Comandos de ExecuoIF-EDNIF, DO-ENDDO, etc Finalizao do ProgramaEND Aula 2
  • Slide 2
  • 2 Tipos de Dados (Variveis / Constantes): TipoDeclarao InteirosINTEGER i,j,k10 dgitos 4 byte Reais (simples)REAL*4 r,s,t ou REAL r,s,tE-78 a E+75 6 casas decimais 4 byte Reais (duplo)REAL *8 r,s,t ou DOUBLE PRECISION r,s,t D-78 a D+75 15 casas decimais 8 byte Complexos (simples)COMPLEX*8 z ou COMPLEX z E-78 a E+75 6 casas decimais 8 byte Complexos (duplo)COMPLEX*16 zD-78 a D+75 15 casas decimais 16 byte AlfanumricosCHARACTER var*m ou CHARACTER*m, var, ou ainda CHARACTER (LEN=m) var1, (LEN=n) var2.1316 LgicasLOGICAL nome4 byte
  • Slide 3
  • 3 Declarao de variveis (F90) [,atributos,] :: =[valor] atributos podem ser: PARAMETER, DIMENSION, etc Declarao de Constantes INTEGER pre PARAMETER(pre=252) F77 REAL, PARAMETER :: pi=3.14159F90 Variveis no declaradas possuem um tipo implcito de dados: Iniciando com I,J,K,L,M e N: Inteiro Qualquer outra letra: Real A declarao IMPLICIT NONE impede que sejam usados tipos implcitos de dados
  • Slide 4
  • 4 Vetores e Matrizes (array): Seqncia ordenada e estruturada de variveis indexadas e agrupadas em localizaes adjacentes de memria. Vetores UnidimensionaisMatrizes - Multidimensionais Uma matriz pode ter at 7 ndices. Exemplo: A(1,1), A(1,2), A(2,1), A(2,2) so os elementos de uma matriz A DIMENSION X(2,3)X(1,1), X(1,2), X(2,1), X(2,2), X(2,3) DIMENSION Y(2:5)Y(2), Y(3), Y(4), Y(5) REAL X(2,3) REAL, DIMENSION(1:100) :: C F90
  • Slide 5
  • 5 F90 Alocao dinmica de matrizes: ALLOCATABLE Declara as variveis INTEGER, DIMENSION(:), ALLOCATABLE::idade REAL, DIMENSION(:,:), ALLOCATABLE::vel ALLOCATE Aloca memria ALLOCATE(idade(5)) ALLOCATE(vel(2,3)) DEALLOCATE Libera memria DEALLOCATE(idade) DEALLOCATE(vel)
  • Slide 6
  • 6 F90 Funes de matrizes: Consideremos: REAL, DIMENSION (-10:10,23,14,28)::A LBOUND(Matriz,[Dim]) LBOUND(A) LBOUND(A,1) Limite inferior das dimenses de uma matriz Resultado: ( /-10, 1,14/ ) Resultado: -10 UBOUND(Matriz,[Dim]) UBOUND(A) Limite superior das dimenses de uma matriz Resultado: ( /10,23,28/ ) SHAPE(Matriz) Shape(A) Identifica a forma de uma matriz Resultado: ( /21,23,15/ ) RESHAPE(Matriz,Shape) RESHAPE((/1,2,3,4/),(/2,2/) Formata um matriz Resultado: 1 3 2 4 SIZE(Matriz,[Dim]) SIZE(A,1) SIZE(A) Identifica o nmero de elementos de uma matriz Resultado: 21 Resultado: 7245
  • Slide 7
  • 7 Atribuio de valores: F90 REAL vet(5) INTEGER i REAL, DIMENSION(2,3) :: mat vet = (/ 1,2,3,4,5 /) vet = (/ i, i=1, 5 /) 1,2,3,4,5 vet=(/-1,(0, i=2, 4),1/)-1, 0, 0, 0, 1 mat=RESHAPE((/1,2,3,4,5,6/),(/2,3/)1 3 5 2 4 6
  • Slide 8
  • 8 Operadores: Atribuio= Concatenao// Soma+ Subtrao- Multiplicao* Diviso/ Potenciao** MatemticaF77F90 = Exemplo: ( x.LT.y ) F77 ( x
  • 10 Funes e Sub-rotinas Procedimentos relativamente independentes do corpo do programa principal e que realiza determinada tarefa de processamento Funo (FUNCTION): Retorna sempre um valor representado pelo nome da funo O nome da funo deve corresponder ao tipo de valor retornado Pode usar uma lista de argumentos para a entrada de valores Pode ser chamada dentro de um comando [ ] FUNCTION [(argumentos>)] Declaraes de variveis Comandos executveis Comando de atribuio do resultado END [FUNCTION] [ ]
  • Slide 11
  • 11 Sub-rotina (SUBROUTINE): No representa um valor o nome da sub-rotina no uma varivel Pode usar uma lista de argumentos para entrada e sada de valores Pode retornar um valor, muitos valores ou nenhum chamada com o comando CALL SUBROUTINE [(argumentos>)] Declaraes dos argumentos e variveis Comandos executveis END [SUBROUTINE] [ ] Uso: CALL [ ]
  • Slide 12
  • 12 PROGRAM PROGSOMINT INTEGER K PRINT *,'Informe um nmero inteiro' READ *,K KK=SOMINT(K) Print *,'A soma dos ',K,' primeiro numeros inteiros : ',KK CONTAINS INTEGER FUNCTION SOMINT(N) INTEGER I,N,M M=0 DO 10 I=1,N M=M+I 10 CONTINUE SOMINT=M END FUNCTION SOMINT END PROGRAM PROGSOMINT Exemplo:
  • Slide 13
  • 13 Calcular as razes reais de uma equao do segundo grau. - Ler, a partir da entrada padro, os coeficientes reais a, b, c - Calcular as razes da equao a*x**2+b*x+c - Escrever o resultado para a sada padro - Utilize sempre IMPLICIT NONE

Recommended

View more >