CFAC: Exemplos de Programas em FORTRAN

Documentos relacionados
Exemplos de Programas em FORTRAN. João Manuel R. S. Tavares Joaquim O. Fonseca

Exemplos de Programas para Tratamento de Ficheiros DXF

Lista 6: transformações lineares.

Exemplos de Programas para Tratamento de Ficheiros DXF. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Introdução à Computação - FORTRAN

ficha 5 transformações lineares

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

GEOMETRIA Exercícios

Ficha de Trabalho 08 Transformações Lineares. (Aulas 19 a 22).

Introdução ao Fortran 90. Aula 3

Programação em FORTRAN V. João Manuel R. S. Tavares

Linguagem de programação: Pascal

Introdução ao Fortran 90-7

Visualização 2D: - Transformação window to viewport - Clipping

Programação estruturada no Fortran 90-3

Exercícios de Revisão 1º Ano Ensino Médio Prof. Osmar

1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de º Semestre

Departamento de Matemática Universidade de Coimbra

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Aplicações de Programação CNC/ISO com Microcomputador. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

Programação. Folha Prática 7. Lab. 7. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

MATEMÁTICA A - 11o Ano Geometria - Produto escalar

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Escola Secundária com 3º ciclo D. Dinis. 10º Ano de Matemática A. Geometria no Plano e no Espaço I

UECEVEST - ESPECÍFICA Professor: Rikardo Rodrigues

Sumário. Ficheiros. Ficheiros

Introdução à Programação em C Input / Output

QUESTÃO 01. Se x, y e z são números reais, é verdade que: 01) x = 2, se somente se, x 2 = 4. 02) x < y é condição suficiente para 2x < 3y.

Capitulo 4 Figuras Geométricas Planas

Problema de Convecção/Difusão Unidimensional

3 Cálculo Integral em R n

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Linguagens de Programação

1ª LISTA DE EXERCÍCIOS

Teste de avaliação (Versão B) Grupo I

Ficha de trabalho n.º 1 (com resolução) Assunto: Lógica

Matemática A. Versão 1 RESOLUÇÃO GRUPO I. Teste Intermédio de Matemática A. Versão 1. Teste Intermédio. Duração do Teste: 90 minutos

Escola Secundária com 3º ciclo D. Dinis 10º Ano de Matemática A Funções e Gráficos Generalidades. Funções polinomiais. Função módulo.

Linguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1

TEMA 2 GEOMETRIA ANALÍTICA FICHAS DE TRABALHO 11.º ANO COMPILAÇÃO TEMA 2 GEOMETRIA ANALÍTICA

ESCOLA SECUNDÁRIA COM 3º CICLO D. DINIS COIMBRA 11º ANO DE ESCOLARIDADE MATEMÁTICA A. Ficha de revisão n.º 3

RESPOSTAS EXERCÍCIOS EXTRAS

Novo Espaço Matemática A 11.º ano Proposta de Teste Intermédio [janeiro 2015]

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

CADERNO DE EXERCÍCIOS ALGORITMOS

Matemática 6.º ano. 1. Determine o valor das seguintes expressões e apresente o resultado como uma potência. Mostre como chegou ao resultado.

PROVA ESCRITA DE MATEMÁTICA A 10º A 2009 Novembro 02 Duração da prova: 90 minutos VERSÃO 2. Grupo I

Introdução à Programação. Uma Abordagem Funcional

Introdução ao Fortran 90-1

Introdução ao fortran 90 - Aula 1

Introdução ao Fortran 90-1

Funções Geométricas, de Strings, de Listas e de Manipulação de Arquivos

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 4

Introdução à Computação Gráfica

1. as equações paramétricas da reta que contém o ponto A e é perpendicular ao plano de equação x 2y + 3z = 17;

VETORES. Lista de Exercícios Vetores e Matrizes Prof: Yuri Frota

FICHA DE TRABALHO N.º 7 MATEMÁTICA A - 10.º ANO CÁLCULO VECTORIAL NO ESPAÇO

2. Na gura abaixo, representa-se um cubo. Desenhe a echa de origem H que representa ! DN =! DC

Escola Secundária com 3º ciclo D. Dinis 11º Ano de Matemática A Tema I Geometria no Plano e no Espaço II. TPC nº 5 (entregar no dia 6 ou )

Probleminhas pseudoalgébricos com soluções elegantemente carteadas

AutoLISP -VII Funções Geométricas, de Strings, de Listas e de Manipulação de Arquivos

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Programação de Computadores III

Resumo. 1- Introdução

Introdução à Programação em C (II)

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

Programação de Computadores III

1º Teste de Computação Gráfica 3º Ano

Jorge M. V. Capela, Marisa V. Capela. Araraquara, SP

Programação de Computadores:

Elementos de um poliedro

3.1 - Funções para manipular dados de entrada e saída padrão

MATEMÁTICA A - 12o Ano N o s Complexos - Conjuntos e condições Propostas de resolução

Questão Resposta 1 e 2 c 3 a 4 a 5 d 6 d 7 d 8 b 9 a 10 c 11 e 12 c 13 c 14 d 15 d 16 b

Transcrição:

FA: Exemplos de Programas em FORTRAN Exemplos de Programas em FORTRAN João Manuel R. S. Tavares Joaquim O. Fonseca Exemplo I Programa simples de utilização do ciclo DO, com escrita não formatada: PROGRAM exercicio1 DIMENSION A(10) Vai gerar valores que são o quíntuplo da indexação DO 15 I = 1, 10 A(I) = I*5 15 ONTINUE ESREVE NO SENTIDO DERESENTE DA INDEXAÇÃO DO 20 J = 10, 1, -1 WRITE (*,*) A(J) 20 ONTINUE STOP @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 2 @2001 - João Tavares/JOF 1

FA: Exemplos de Programas em FORTRAN Exemplo I Output: @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 3 Exemplo II Programa principal e subrotina para produto 2 matrizes de 2x2, com saída não formatada: PROGRAM exercicio2 DIMENSION A(2, 2), B(2, 2), (2, 2) VAI DEFINIR PONTOS A(...) A(1, 1) = 0.0 A(1, 2) = 0.0! onsidere, por exemplo, os A(2, 1) = 10.0! pontos extremos dum segmento de recta A(2, 2) = 0.0 VAI LER O ÂNGULO DE ROTAÇÃO @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 4 @2001 - João Tavares/JOF 2

FA: Exemplos de Programas em FORTRAN Exemplo II WRITE (*, '(A\)') ' ANGULO : ' READ (*, *) TETA PI = 4*ATAN(1.0)! Define a constante π (pi) TETA = TETA*PI/180! onverte graus em radianos DEFINE MATRIZ DE ROTAÇÃO em torno da origem B(1, 1) = OS(TETA) B(1, 2) = SIN(TETA) B(2, 1) = -SIN(TETA) B(2, 2) = OS(TETA) ALL MULTMAT(A, B, )! hamada da subrotina MULTMAT ESREVE A MATRIZ RESULTANTE DO PRODUTO (...) @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 5 Exemplo II DO 20 I = 1, 2 WRITE (*,*) ((I, J), J = 1, 2)! iclo DO interno em J 20 ONTINUE STOP Subrotina para o produto de duas matrizes de 2x2 SUBROUTINE MULTMAT(A, B, ) DIMENSION A(2, 2), B(2, 2), (2, 2) faz ciclo sobre o número de linhas I @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 6 @2001 - João Tavares/JOF 3

FA: Exemplos de Programas em FORTRAN Exemplo II DO 1 I = 1, 2 faz produto com a matriz quadrada B DO 2 J = 1, 2 AB = 0.0! Inicia valor da posição da matriz DO 3 K = 1, 2 AB = AB+A(I, K)*B(K, J)!Adiciona contribuições 3 ONTINUE (I, J) = AB! Guarda valor na posição da matriz 2 ONTINUE 1 ONTINUE RETURN @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 7 Exemplo II Output: @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 8 @2001 - João Tavares/JOF 4

FA: Exemplos de Programas em FORTRAN Exemplo III Programa para processamento duma Figura 3D, com leitura dos dados dum ficheiro com a seguinte estrutura: - na primeira linha o número de vértices (nós) e número de faces; - nas linhas seguintes para todos os vértices, teremos o número do vértice e as coordenadas - seguindo-se depois as linhas para a definição de cada face, com o número da face, número de vértices na face e os números dos vértices dessa face. Para o caso particular dum cubo de aresta 2 e centrado na origem, será definido do modo seguinte (ficheiro exemplo.dat) @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 9 Exemplo III 8 6! número de vértices e número de faces 1-1 1 1 2 1 1 1 3 1 1-1 4-1 1-1! oordenadas pontos 5-1 -1 1 6 1-1 1 1 7 1-1 -1 8-1 -1-1 1 4 1 2 3 4 2 2 4 1 4 8 5 3 4 5 8 7 6! Faces Z 4 4 2 6 7 3 5 4 1 5 6 2 5 6 4 3 7 8 4 5 1 2 Y 4 8 X 4 3 7 6 3 6 @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 10 @2001 - João Tavares/JOF 5

FA: Exemplos de Programas em FORTRAN Exemplo III PROGRAM exercicio3 Versão Inicial do programa de processamento duma figura 3D ********************************************************** Programa 3D XORD oordenadas dos vértices LNODE Número de vértices por face NNODE Número de cada vértice da face OMMON / FAES / XORD(100, 4), LNODE(20), NNODE(20, 8) Limitado a 100 pontos, 20 faces e 8 lados no máximo por face HARATER*12 FNAME NDIM = 3 IANAL = 20 @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 11 Exemplo III WRITE (*, '(A\)')' Nome do Ficheiro : ' READ (*, '(A)') FNAME OPEN (IANAL, FILE = FNAME, STATUS = 'OLD') ALL LERDATA(NP, NF, NDIM, IANAL) escreve no ecrã a definição lida pela subrotina LERDATA DO 20 I = 1, NP WRITE (*, *) I, (XORD( I, J ), J = 1, NDIM) 20 ONTINUE DO 30 I = 1, NF WRITE (*, *) I, LNODE(I), (NNODE(I, J), J = 1, LNODE(I)) 30 ONTINUE STOP @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 12 @2001 - João Tavares/JOF 6

FA: Exemplos de Programas em FORTRAN Exemplo III Versão Inicial subrotina LERDATA para leitura duma figura 3D ********************************************************** SUBROUTINE LERDATA(NP, NF, NDIM, IANAL) OMMON / FAES / XORD(100, 4), LNODE(20), NNODE(20, 8) READ (IANAL, *) NP, NF DO 10 I = 1, NP READ (IANAL, *) II, (XORD( II, J ), J = 1, NDIM) XORD(II, NDIM+1) = 1! valor não utilizado neste exemplo 10 ONTINUE DO 20 I = 1, NF READ (IANAL, *) II, LNODE(II), (NNODE(II, J), J = 1, LNODE(II)) 20 ONTINUE RETURN @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 13 Exemplo III Output: @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 14 @2001 - João Tavares/JOF 7

FA: Exemplos de Programas em FORTRAN Programa para leitura dum ficheiro, duma estrutura de faces e cálculo da área total utilizando a formula A= p(p-a)(p-b)(p-c), com p=(a+b+c)/2, para determinar a área dum qualquer triângulo de lados a, b e c. 1 2 LNODE(I) 3 4 LNODE(I)-1 Só aplicável a Polígonos onvexos @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 15 EXEMPLO de ESTRUTURA 3D dum PRISMA TRIANGULAR 6 5 1-1 1 1 2 1 1 1 3 1 1-1 4-1 1-1! oordenadas 5-1 -1 1 6 1-1 1 1 4 1 2 3 4 2 3 1 4 5 3 4 5 6 3 4! Faces 4 3 2 6 3 5 4 1 5 6 2 2 5 1 Z 5 1 Y 2 4 4 X 3 3 6 @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 16 @2001 - João Tavares/JOF 8

FA: Exemplos de Programas em FORTRAN PROGRAM exercicio4 PROGRAMA 3D! ontinuação do exemplo anterior OMMON /FAES/ XOORD(100, 4), LNODE(20), NNODE(20, 8) PARAMETER (MPOIN = 100, MDIME = 4, MF = 20, MN = 8) DIMENSION XOORD(MPOIN, MDIME), LNODE(MF), + NNODE(MF, MN)! Vars locais HARATER*12 FNAME NDIM = 3 IANAL = 20 WRITE (*, '(A\)') ' Nome do ficheiro : ' READ (*, '(A)') FNAME OPEN (IANAL, FILE = FNAME, STATUS = 'OLD') ALL LERDATA(NP, NF, NDIM, IANAL) @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 17 ALL LERDATA(MPOIN, MDIME, MF, MN, NP, NF, NDIM, + IANAL, XOORD, LNODE, NNODE) ESRITA PARA ONTROLO DE LEITURA DO FIHEIRO DE DADOS DO 20 I = 1, NP WRITE (*, 100) I, (XOORD(I, J), J = 1, NDIM) 20 ONTINUE DO 30 I = 1, NF WRITE (*, 110) I, LNODE(I), (NNODE(I, J), J = 1, LNODE(I)) 30 ONTINUE ÁLULO DA ÁREA TOTAL AREAT = 0.0 @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 18 @2001 - João Tavares/JOF 9

FA: Exemplos de Programas em FORTRAN DO 40 I=1, NF NO1 = NNODE(I, 1) X1 = XOORD(NO1, 1) Y1 = XOORD(NO1, 2) Z1 = XOORD(NO1, 3) AREAF = 0.0 DO 35 K = 3, LNODE(I) NO2 = NNODE(I, K-1) NO3 = NNODE(I, K) X2 = XOORD(NO2, 1) Y2 = XOORD(NO2, 2) Z2 = XOORD(NO2, 3) X3 = XOORD(NO3, 1) Y3 = XOORD(NO3, 2) Z3 = XOORD(NO3, 3) A = SQRT((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2- + Y1)+(Z2-Z1)*(Z2-Z1)) @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 19 B = SQRT((X3-X2)*(X3-X2)+(Y3-Y2)*(Y3- + Y2)+(Z3-Z2)*(Z3-Z2)) = SQRT((X1-X3)*(X1-X3)+(Y1-Y3)*(Y1- + Y3)+(Z1-Z3)*(Z1-Z3)) P = (A+B+)/2 AREA = SQRT(P*(P-A)*(P-B)*(P-)) AREAF = AREAF+AREA! Area total da face 35 ONTINUE WRITE (*, 1000) I, AREAF AREAT = AREAT+AREAF! Area total da figura 3D 40 ONTINUE WRITE (*, 1010) AREAT STOP 100 FORMAT (4H No, I4, 3(2X, F11.4)) 110 FORMAT (10I5) 1000 FORMAT (1X, 5HFAE, I4, 5X, 7HAREA =, E12.5) 1010 FORMAT (1X, 13HAREA TOTAL =, E12.5) @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 20 @2001 - João Tavares/JOF 10

FA: Exemplos de Programas em FORTRAN SUBROUTINE LERDATA(MP,MD,MF,MN,NP,NF,NDIM,IAN + AL,XOORD,LNODE,NNODE) *********************************************************** * Subrotina LERDATA, faz a leitura dos dados de um ficheiro * * MP - Número máximo de pontos em XOORD * * MD - Máximo da dimensão (3) * * MF - Número máximo de faces * * MN - Número máximo de pontos por face * * NP - Número de pontos em processamento * * NF - Número de faces em processamento * * NDIM - Dimensão das coordenadas (2 ou 3) * * IANAL - Número de endereço do ficheiro de leitura * * XOORD - Vector de armazenamento das coordenadas dos pontos * * LNODE - Vector onde se guarda o número de pontos por cada face* @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 21 * NNODE - Vector onde se guarda os núm. globais de cada nó da face * *********************************************************** DIMENSION XOORD(MP, MD), LNODE(MF), NNODE(MF, MN) READ (IANAL, *) NP, NF DO 10 I = 1, NP READ (IANAL, *) II, (XOORD(II, J), J = 1, NDIM) XOORD(II, NDIM+1) = 1! Não usado neste exemplo 10 ONTINUE DO 20 I = 1, NF READ (IANAL,*) II, LNODE(II), (NNODE(II, K), K = 1, + LNODE(II)) 20 ONTINUE RETURN @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 22 @2001 - João Tavares/JOF 11

FA: Exemplos de Programas em FORTRAN Output: @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 23 Exemplo V Programa para processamento de uma cadeia de caracteres PROGRAM exemplo5 Programa para leitura duma cadeia de caracteres e conversão desta em todos Maiúsculos ou Minúsculos * Variável de caso: * ISIM = 1 Passagem de minusculas a maiusculas * ISIM = 0 Passagem de maiusculas a minusculas c HARATER*72 LINHA HARATER*1 SIM NL = 72 Questiona da conversão 5 WRITE(*, '(A\)') ' Texto Maiusculas (S)- Minusculas (N)[S]: ' READ (*, '(A)') SIM @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 24 @2001 - João Tavares/JOF 12

FA: Exemplos de Programas em FORTRAN Exemplo V ontrola resposta IF (SIM.NE. 'S'.AND. SIM.NE. 's'.and. SIM.NE. 'N'.AND. + SIM.NE. 'n'.and. SIM.NE. ' ') THEN WRITE (*,'(A)') ' Resposta Incorrecta!' GOTO 5 IF ISIM = 1! Para maiusculas IF (SIM.EQ. 'N'.OR. SIM.EQ. 'n') THEN ISIM = 0! Para minusculas IF Vai ler adeia de aracteres WRITE (*, '(A\)') ' Texto : ' READ (*, '(A)') LINHA @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 25 Exemplo V Vai determinar o número de caracteres significativos 10 IF (LINHA(NL:NL).EQ. ' ') THEN NL = NL-1 GOTO 10 IF onversão caracteres Minusculos --> Maiusculos ou Vice-Versa I = 1 20 IAS = IHAR(LINHA(I:I))! ódigo ASII do caracter IF (IAS.GE. 97.AND. IAS.LE. 122.AND. ISIM.EQ. 1) THEN LINHA(I:I) = HAR(IAS-32)! passa a maiusculo ELSE IF (IAS.GE. 65.AND. IAS.LE. 90.AND. ISIM.EQ. 0) THEN LINHA(I:I) = HAR(IAS+32)! passa a minusculo IF I = I+1 IF (I.LE. NL) GOTO 20 (caracter a partir do código ASII) @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 26 @2001 - João Tavares/JOF 13

FA: Exemplos de Programas em FORTRAN Exemplo V Escreve para o ecrã a cadeia de caracteres já convertida WRITE (*, '(A\)') ' Texto : ' WRITE (*, '(A)') LINHA(1:I) STOP Output @2001 - João Tavares/JOF FA: Exemplos de Programas em FORTRAN 27 @2001 - João Tavares/JOF 14