Aula de Fortran 2(Vetores e Matrizes)

10
VARIÁVEIS INDEXADAS Unidimensional Vetores DIMENSION vetor1(limsup1), vetor2(limsup2),..., vetorn(limsupn) Declarando uma variável como vetor Bidimensional ou multidimensional: Matrizes Declarando uma variável como Matriz DIMENSION matriz(n,m), cubo(n,m,l) ou para o FORTRAN Real vetor1(limsup1), vetor1(limsup1),..., vetor1(limsup1) Integer vetor1(limsup1), vetor1(limsup1),..., vetor1(limsup1) Character vetor1(limsup1), vetor1(limsup1),..., vetor1(limsup1) Formas de leitura Para o vetor Quando os dados de uma determinada variável estão organizados em linha: 1 2 3 4 5 6 ... Comando de leitura Read(Local de origem, formato) (vetor(indexador)indexador=1,n) Quando os dados de uma determinada variável estão organizados em coluna: 1 2 3 Comando de leitura Do indexador =1,n Read(Local de origem, formato) vetor(indexador)

Transcript of Aula de Fortran 2(Vetores e Matrizes)

Page 1: Aula de Fortran 2(Vetores e Matrizes)

VARIÁVEIS INDEXADAS

Unidimensional Vetores

DIMENSION vetor1(limsup1), vetor2(limsup2),..., vetorn(limsupn)Declarando uma variável como vetor

Bidimensional ou multidimensional: Matrizes

Declarando uma variável como MatrizDIMENSION matriz(n,m), cubo(n,m,l) ou para o FORTRAN

Real vetor1(limsup1), vetor1(limsup1),..., vetor1(limsup1)Integer vetor1(limsup1), vetor1(limsup1),..., vetor1(limsup1)Character vetor1(limsup1), vetor1(limsup1),..., vetor1(limsup1)

Formas de leitura

Para o vetorQuando os dados de uma determinada variável estão organizados em linha:1 2 3 4 5 6 ...

Comando de leituraRead(Local de origem, formato) (vetor(indexador)indexador=1,n)

Quando os dados de uma determinada variável estão organizados em coluna:123Comando de leituraDo indexador =1,nRead(Local de origem, formato) vetor(indexador)End do...Formas de leitura

Para a matrizA matriz normalmente usa as duas formas ao mesmo tempo:

Comando de leituraDo i =1,n

Read(Local de origem, formato) (matriz(i,j)j=1,m)End do

Page 2: Aula de Fortran 2(Vetores e Matrizes)

Algoritmo para ler médias mensais para o estado da Paraíba

AlgoritmoLer dados de precipitação de um arquivo e armazenar em uma matriz

Fim Algoritmo

Algoritmo para ler médias mensais de precipitação para o estado da Paraíba

Refinamento1defina tipo de variáveisatribua valores iniciais necessáriosRepita enquanto não for o fim do arquivoLeia dados do arquivoArmazene em uma matrizFim Repita

Fim Refinamento1

Algoritmo para ler médias mensais de precipitação para o estado da Paraíba

Refinamento 2defina tipo de variáveisatribua valores iniciais necessáriosRepita enquanto não for o fim do arquivoLeia cod,nome,lat,lon,n,precmenArmazene em uma matrizFim Repita

Fim Refinamento 2

Page 3: Aula de Fortran 2(Vetores e Matrizes)

Algoritmo para ler médias mensais de precipitação para o estado da ParaíbaRefinamento3 {Definindo os tipos de variáveis} Inteiro nmes, {numero de meses} nmax {numero de estações} {definindo como parâmetros} Parametro (nmes=12,nmax=150) Inteiro cod(nmax),nome(nmax),nanos(nmax),Erro,mes Real/Flutuante lat(nmax),lon(nmax),precmen(nmax, nmes ) {abrindo arquivo} nome_arq=‘pb.men’ abrir arquivo (unidade=50,nome=nome_arq,estado=‘antigo’) {atribuindo valores iniciais necessários} Erro=0 cont=1 Repita enquanto (erro diferente de zero) faça Leia (50,10,erro) cod(cont),nome(cont),lat(cont),lon(cont),nanos(cont), (precmen(cont,mes),mes=1,12) Formato(1x,25A,23X,2F8.2,6x,2I,12F8.1) cont=cont+1 Fim Repita Fim Refinamento3

Algoritmo para ler médias mensais de precipitação para o estado da Paraíba

Algoritmo {Definindo os tipos de variáveis} Inteiro nmes, {numero de meses} nmax {numero de estações} {definindo como parâmetros} Parametro (nmes=12,nmax=150) Inteiro cod(nmax),nome(nmax),nanos(nmax),Erro,mes Real/Flutuante lat(nmax),lon(nmax),precmen(nmax, nmes ) {abrindo arquivo} nome_arq=‘pb.men’ abrir arquivo (unidade=50,nome=nome_arq,estado=‘antigo’) {atribuindo valores iniciais necessários} Erro=0 cont=1{Lendo as variáveis e armazenando em vetores e matrizes} Faça enquanto (erro diferente de zero)

Leia(50,10,erro) cod(cont),nome(cont),lat(cont),lon(cont),nanos(cont),(precmen(cont,mes),mes=1,12)

10 Formato(1x,25A,23X,2F8.2,6x,2I,12F8.1) cont=cont+1 Fim Faça Fim Algoritmo

Page 4: Aula de Fortran 2(Vetores e Matrizes)

Diagrama de Blocos do Programa

Diagrama de Chapin

nome_arq←´pb.men´

abrir arquivo (unidade=50,nome=nome_arq,estado=‘antigo’)

Erro← 0

Cont← 1

Enquanto Erro≠0

Leia(50,10) cod(cont), nome(cont), lat(cont), lon(cont), nanos(cont), (precmen(cont,mes),mes=1,12)

10 Formato(1x,25A,23X,2F8.2,6x,2I,12F8.1)

Cont=cont+1

Page 5: Aula de Fortran 2(Vetores e Matrizes)

Fluxogramas ou Diagramas de Blocos

Indica início ou fim de um algoritmo

Indica uma ação ou processamento

Indica decisão

Indica o sentido do fluxo de

execução

Indica saída de dados

Indica entrada de dados

Indica referência a um subprograma externo

Diagramas de Chapin, Diagrama de Nassi-Shneiderman (Cartas N-S)

Seqüência

Ação A

Ação B

Ação C

Seleção

F V

BlocoSENÃO(Ação B)

Bloco

SENÃO(Ação A)

Iteração

Faça Enquanto <Condição> Ação A

Ação A Repita Até <Condição>

<condição>

Page 6: Aula de Fortran 2(Vetores e Matrizes)

Universidade Federal de Campina Grande

Unidade Acadêmica de Ciências Atmosféricas

Campina Grande, 17 de março de 2006

Sinótica I

Exercício 2

Data de entrega do exercício 24 de março de 2006

Para a estação pluviométrica do estado da Paraíba escolhida desenvolva um algoritmo que

realize o que se pede nos seguintes itens abaixo e teste-o na linguagem FORTRAN:

a) Armazenar os dados de precipitação em uma matriz

b) Normalizar os dados mensais, sabendo-se que a normalização de um dado é dado por:

de modo que é a precipitação normalizada de um mês i para um ano j, é a

precipitação de um mês i para um ano j; é a climatologia do mês i dada por

em que ni é o número de anos de dados e é o desvio padrão obtido por

c) Represente-o na forma do diagrama de Chapin d) Escreva os resultados semelhantes à formatação abaixo:

ano jan fev mar abril mai jun jul ago set out nov dez