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

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

Estrutura de um Programa:

Apresentações semelhantes


Apresentação em tema: "Estrutura de um Programa:"— Transcrição da apresentação:

1 Estrutura de um Programa:
Aula 2 Estrutura de um Programa: Cabeçalho de Definição PROGRAM, 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ção REAL, INTEGER, IMPLICIT, PARAMETER, DATA Comandos de Execução IF-EDNIF, DO-ENDDO, etc Finalização do Programa END

2 Tipos de Dados (Variáveis / Constantes):
Declaração Inteiros INTEGER i,j,k 10 dígitos – 4 byte Reais (simples) REAL*4 r,s,t ou REAL r,s,t E-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 6 casas decimais – 8 byte Complexos (duplo) COMPLEX*16 z 15 casas decimais – 16 byte Alfanuméricos CHARACTER var*m ou CHARACTER*m, var, ou ainda CHARACTER (LEN=m) var1, (LEN=n) var2 .1316 Lógicas LOGICAL nome 4 byte

3 Declaração de variáveis (F90)
<tipo>[,atributos,] :: <variaveis>=[valor] atributos podem ser: PARAMETER, DIMENSION, etc 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 Declaração de Constantes INTEGER pre PARAMETER(pre=252) F77 REAL, PARAMETER :: pi= F90

4 Vetores e Matrizes (array):
Seqüência ordenada e estruturada de variáveis indexadas e agrupadas em localizações adjacentes de memória. Vetores – Unidimensionais Matrizes - 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 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 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 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 Operadores: Relacionais Aritiméticos Matemática F77 F90 < .LT. 
.LE. <= = .EQ. == .NE. /= > .GT. .GE. >= Exemplo: ( x.LT.y ) F77 ( x<=y ) F90 Soma + Subtração - Multiplicação * Divisão / Potenciação ** Atribuição = Concatenação // 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 Lógicos .AND. Junção .OR. Disjunção .NOT. Negação .NEQV. ou .XOR. Desigualdade lógica .EQV. Igualdade lógica Exemplo: LOGICAL,PARAMETER:: S=.TRUE., T=.FALSE. S.AND.T False T.AND.T S.OR.T True T.OF.T S.EQ.T S.NEQV.T

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 [<Tipo da Função>] FUNCTION <Nome> [(argumentos>)] Declarações de variáveis Comandos executáveis Comando de atribuição do resultado END [FUNCTION] [<Nome>]

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 <Nome> [(argumentos>)] Declarações dos argumentos e variáveis Comandos executáveis END [SUBROUTINE] [<Nome>] Uso: CALL <Nome>[<argumentos>]

12 Exemplo: 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 CONTINUE SOMINT=M END FUNCTION SOMINT END PROGRAM PROGSOMINT

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 "Estrutura de um Programa:"

Apresentações semelhantes


Anúncios Google