A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Estrutura de um Programa: Cabeçalho de DefiniçãoPROGRAM, FUNCTION, SUBROUTINE, MODULE ou BLOCK DATA Pode haver apenas um comando PROGRAM, ou BLOCK DATA.

Apresentações semelhantes


Apresentação em tema: "1 Estrutura de um Programa: Cabeçalho de DefiniçãoPROGRAM, FUNCTION, SUBROUTINE, MODULE ou BLOCK DATA Pode haver apenas um comando PROGRAM, ou BLOCK DATA."— Transcrição da apresentação:

1 1 Estrutura de um Programa: Cabeçalho de DefiniçãoPROGRAM, FUNCTION, SUBROUTINE, MODULE ou BLOCK DATA Pode haver apenas um comando PROGRAM, ou BLOCK DATA Pode haver vários comandos SUBROUTINE e/ou FUNCTION e/ou MODULE Comandos de DeclaraçãoREAL, INTEGER, IMPLICIT, PARAMETER, DATA Comandos de ExecuçãoIF-EDNIF, DO-ENDDO, etc Finalização do ProgramaEND Aula 2

2 2 Tipos de Dados (Variáveis / Constantes): TipoDeclaração InteirosINTEGER i,j,k10 dígitos – 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 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 casas decimais – 16 byte AlfanuméricosCHARACTER var*m ou CHARACTER*m, var, ou ainda CHARACTER (LEN=m) var1, (LEN=n) var LógicasLOGICAL nome4 byte

3 3 Declaração de variáveis (F90) [,atributos,] :: =[valor] atributos podem ser: PARAMETER, DIMENSION, etc Declaração de Constantes INTEGER pre PARAMETER(pre=252) F77 REAL, PARAMETER :: pi= F90 Variáveis não declaradas possuem um tipo implícito de dados: Iniciando com I,J,K,L,M e N: Inteiro Qualquer outra letra: Real A declaração IMPLICIT NONE impede que sejam usados tipos implícitos de dados

4 4 Vetores e Matrizes (array): Seqüência ordenada e estruturada de variáveis indexadas e agrupadas em localizações adjacentes de memória. Vetores – UnidimensionaisMatrizes - Multidimensionais Uma matriz pode ter até 7 índices. Exemplo: A(1,1), A(1,2), A(2,1), A(2,2) são 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

5 5 F90 – Alocação dinâmica de matrizes: ALLOCATABLE Declara as variáveis INTEGER, DIMENSION(:), ALLOCATABLE::idade REAL, DIMENSION(:,:), ALLOCATABLE::vel ALLOCATE Aloca memória ALLOCATE(idade(5)) ALLOCATE(vel(2,3)) DEALLOCATE Libera memória DEALLOCATE(idade) DEALLOCATE(vel)

6 6 F90 – Funções de matrizes: Consideremos: REAL, DIMENSION (-10:10,23,14,28)::A LBOUND(Matriz,[Dim]) LBOUND(A) LBOUND(A,1) Limite inferior das dimensões de uma matriz Resultado: ( /-10, 1,14/ ) Resultado: -10 UBOUND(Matriz,[Dim]) UBOUND(A) Limite superior das dimensões 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: SIZE(Matriz,[Dim]) SIZE(A,1) SIZE(A) Identifica o número de elementos de uma matriz Resultado: 21 Resultado: 7245

7 7 Atribuição 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/)

8 8 Operadores: Atribuição= Concatenação// Soma+ Subtração- Multiplicação* Divisão/ Potenciação** MatemáticaF77F90 <.LT.<.LE.<= =.EQ.==.NE./= >.GT.>.GE.>= Exemplo: ( x.LT.y ) F77 ( x<=y ) F90 RelacionaisAritiméticos x=10 Y=15 Z=X+Y ! Resultado 25 CHARACTER(LEN=5), PARAMETER:: S=ABCDE CHARACTER(LEN=8) X X=S//123 ! Resultado: ABCDE123

9 9.AND.Junção.OR.Disjunção.NOT.Negação.NEQV. ou.XOR.Desigualdade lógica.EQV.Igualdade lógica Lógicos Exemplo: LOGICAL,PARAMETER:: S=.TRUE., T=.FALSE. S.AND.TFalseT.AND.TFalse S.OR.TTrueT.OF.TFalse S.EQ.TFalseS.NEQV.TTrue

10 10 Funções e Sub-rotinas Procedimentos relativamente independentes do corpo do programa principal e que realiza determinada tarefa de processamento Função (FUNCTION): Retorna sempre um valor representado pelo nome da função O nome da função 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>)] Declarações de variáveis Comandos executáveis Comando de atribuição do resultado END [FUNCTION] [ ]

11 11 Sub-rotina (SUBROUTINE): Não representa um valor – o nome da sub-rotina não é uma variável Pode usar uma lista de argumentos para entrada e saída de valores Pode retornar um valor, muitos valores ou nenhum É chamada com o comando CALL SUBROUTINE [(argumentos>)] Declarações dos argumentos e variáveis Comandos executáveis END [SUBROUTINE] [ ] Uso: CALL [ ]

12 12 PROGRAM PROGSOMINT INTEGER K PRINT *,'Informe um número 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:

13 13 Calcular as raízes reais de uma equação do segundo grau. - Ler, a partir da entrada padrão, os coeficientes reais a, b, c - Calcular as raízes da equação a*x**2+b*x+c - Escrever o resultado para a saída padrão - Utilize sempre IMPLICIT NONE


Carregar ppt "1 Estrutura de um Programa: Cabeçalho de DefiniçãoPROGRAM, FUNCTION, SUBROUTINE, MODULE ou BLOCK DATA Pode haver apenas um comando PROGRAM, ou BLOCK DATA."

Apresentações semelhantes


Anúncios Google