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

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

Fortran 90 Paulo Henrique Graf Fernandes. Variáveis compostas homogêneas (arrays) Vetores (unidimensionais) Matrizes (multidimensionais)

Apresentações semelhantes


Apresentação em tema: "Fortran 90 Paulo Henrique Graf Fernandes. Variáveis compostas homogêneas (arrays) Vetores (unidimensionais) Matrizes (multidimensionais)"— Transcrição da apresentação:

1 Fortran 90 Paulo Henrique Graf Fernandes

2 Variáveis compostas homogêneas (arrays) Vetores (unidimensionais) Matrizes (multidimensionais)

3 Variáveis compostas homogêneas (arrays) Arrays correspondem a posições de memória, identificadas por um único nome, individualizadas por índice e cujo conteúdo é de um mesmo tipo.

4 Referência a um elemento do array Nome(índice) Ex: arr(3) arr(i), onde i é uma variável do tipo integer

5 Vetores (arrays unidimensionais) Tipo Nome Número de elementos Declaração:

6 Exemplos: real, dimension(50) :: a, b, c real, dimension (11:60) :: a, b, c real :: a(50), b(50), c(50) real, dimension(50) :: a, b, c, x(20), y(20), z integer, dimension(-20:-1) :: x logical, dimension(-9:10) :: y

7 Atribuição de valores vetor(3) = 1 vetor = (/ 1,2,3,4,5 /), onde vetor tem cinco elementos Usando o do implícito: vetor = (/ i, i=1, 5 /) vetor = (/ -1, (0, i=2, 49), 1 /) vetor = (/ -1, (0, i= 1,48), 1 /) Obs.: nos dois últimos casos, todos elementos são zero, exceto o primeiro e o último.

8 Comandos de entrada (read) e saída (print) com arrays Um elemento do array: como se fosse uma variável escalar Um grupo de elementos do array: utilizando o do implícito O array todo: apenas o nome do array

9 Exemplos: Print *, (p(i), i=1,99,2), q(3), q(4), r Read *, first, last, (arr(i), i=first, last) Do i=1, 10 Read *, arr(i)

10 Matrizes (arrays multidimensionais) Fortran permite até sete dimensões para um array Declaração: semelhante a vetores, considerando o número de dimensões

11 Exemplos: real, dimension(3,4) :: a logical :: b(10,4) integer, dimension (5:7, -10:-1) :: c integer, dimension(5:8, 0:1, 100, -3:4) :: d

12 Atribuição de valores vetor(3,2) = 1 Utilizando a função intrínseca reshape: reshape((/ 1,2,3,4,5,6 /), (/ 2,3 /)) integer :: i, j real, dimension(2,2) :: a reshape((/ ((10*i+j, i=1,2), j=1,2) /), (/2,2 /))

13 Comando de saída (print) com arrays multidimensionais Se x é um array com 50 linhas e 8 colunas, print (8F8.2), x imprime o array x coluna por coluna print (8F8.2), ((x(i,j), j=1,8), i= 1,50) imprime o array x linha por linha

14 Funções intrínsecas para vetores e matrizes matmulProduto matricial de duas matrizes, ou de uma matriz e um vetor dot_productProduto escalar de dois vetores transposeTransposta de uma matriz maxval, minvalValor máximo e mínimo, respectivamente, de um array, ou parte deste product, sumProduto e soma, respectivamente, de um array, ou parte deste

15 Exemplos: matriz_b = tranpose(matriz_a) matriz_ab = matmul(matriz_a, matriz_b) max = maxval(matriz_c) prod = product(vetor_d)

16 Exemplo: Programa que soma os valores de duas matrizes program somamat implicit none integer, parameter:: lin = 3, col = 2 !dimensões das matrizes integer:: linha !variável controladora das linhas nos loops real:: matriza(lin, col), matrizb(lin, col), matrizc(lin, col) !arrays bidimensionais print *, 'Digite os valores da matriz A: ' do linha = 1, lin !leitura dos elementos read *, matriza(linha, 1: col) !da matriz A end do

17 print * print *, 'Digite os valores da matriz B: ' do linha = 1, lin !leitura dos elementos read *, matrizb(linha, 1: col) !da matriz B end do do linha = 1, lin matrizc(linha, 1: col) = matriza(linha, 1: col) + matrizb(linha, 1: col) end do !formação da matriz C atraves da soma dos elementos !das matrizes A e B print * print *, 'Matriz C = A + B: ' do linha = 1, lin print '(F5.2)', matrizc(linha, 1: col) !visualização da end do !matriz C end program FIM

18 FIM


Carregar ppt "Fortran 90 Paulo Henrique Graf Fernandes. Variáveis compostas homogêneas (arrays) Vetores (unidimensionais) Matrizes (multidimensionais)"

Apresentações semelhantes


Anúncios Google