trabalho computacional mecânica de fluidos ambiental aula 6

13
Trabalho Computacional Mecânica de Fluidos Ambiental aula 6 Guillaume Riflet, Dúvidas: [email protected] Ext:3430 Página: https://fenix.ist.utl.pt/homepage/ist14673 0/mecanica-dos-fluidos-ambiental

Upload: beryl

Post on 13-Feb-2016

28 views

Category:

Documents


3 download

DESCRIPTION

Trabalho Computacional Mecânica de Fluidos Ambiental aula 6. Guillaume Riflet ,. Dúvidas: [email protected] Ext:3430 Página: https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental. Sumário aula 1. subrotinas , funções , - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Trabalho Computacional Mecânica de Fluidos Ambiental aula 6

Guillaume Riflet,

Dúvidas: [email protected] Ext:3430Página: https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental

Page 2: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Sumário aula 1

subrotinas, funções, argumentos, variáveis, tipos de variáveis, arrays, ciclos while e for, Alcance (Public, Private) debug.

https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental

Page 3: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Exercícios aula 1

Criem a função de um argumento de tipo double que retorne 3x*x – 2. Criem uma subrotina que teste a função para x=4 e x=25, escrevendo o resultado numa folha de excel.

Concebam um ciclo for numa subrotina que escreva numa folha de excel os resultados de 3x*x*x + 4 para todos os x que pertençam ao intervalo [-30 , 50] com incrementos 2 em 2.

Caso não tenham feito, repitam o exercício anterior usando um array. Repitam o exercício anterior, mas desta vez a função é 3x*x*x + 4 se o

resultado for positivo e 0 (zero) caso contrário (usem um if). Gravem a macro dum gráfico com os resultados do exercício anterior

(com x nas abscissas e os valores da função nas ordenadas). Vejam o código que resultou da gravação da vossa macro.

Page 4: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Sumário aula 2

condições (if), Passagem de argumentos por valor ou por referência Interface Excel-VBA, Tipos eventos, userforms, Gravação de macros, Alguns objectos nativos de VBA para excel Apresentação da equação da difusão.

Page 5: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Exercícios aula 2

Com um ciclo for e com uma condição if, escreva numa coluna de excel os valores da função seguinte, definida no intervalo [-50,50] com incrementos de 5 unidades de intervalo: f(x) = x * Sqr(-x) se x pertence a [-50,-10], f(x) = -10 * Sqr(10) + ( x^2 – 10^2) se x pertence a ]-10,20], f(x) = 300 – Sqr(10^3) - x^3 em caso contrário.

Conceba uma subrotina que faça o gráfico automático da função a partir da gravação duma macro.

Tente alterar a subrotina de criação de gráfico de modo a que receba um argumento contendo o número de linhas da coluna de excel a usar.

Repita o primeiro exercício com um incremento de apenas 2 unidades de intervalo.

Crie uma userform que peça ao utilizador o intervalo e o incremento da função e que tenha um botão que faça o gráfico correspondente.

Page 6: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Exercícios aula 2

Escreva uma subrotina que contenha uma variável inteira a inicializada a 22. Tente incrementar a variável a chamando uma subrotina que use um argumento ByRef e chamando outra subrotina que use um argumento ByVal. Quais das subrotinas que é incrementa de facto a variável a? (recomendação: use o debugger para ver, passo a passo, a evolução das variáveis.)

Escreva uma subrotina que contenha um array de reais. Inicialize o array com um ciclo for com valores da função f(x) = A * exp(-x) definidos no intervalo [-3, 4] e com um incremento de 0.3. Chame uma subrotina que inverta a ordem dos valores no array. (Deve usar ByRef ou ByVal?). Escreva os valores do array numa coluna de excel e faça o gráfico da função.. (Recomendação: use o debugger).

Page 7: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Sumário aula 3

Aula mudada para LTI lemac (~40 min de atraso) Familiarização com o ambiente de desenvolvimento

em VBA. Resolução de exercícios e exemplos em VBA.

– Ciclo for– Condição if– Manipulações de arrays– Criação de subrotinas e de funções.

Criação duma userform. Criação duma macro para fazer um gráfico.

Page 8: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Exercícios aula 3

Programe a função f que varia no espaço e no tempo: f(x,t) = x^2 * t + Sqr(Abs(x)).

Programe um array numa subrotina que inicialize a função f(x,t0) onde x pertença ao intervalo [0 1000] com um incremento dx=50 e t0=0.0.

Escreva os resultados para vários instantes de t no interval [0.0 10.0] de f(x,t), um instante por linha, usando um ciclo for .

Programe o gráfico com várias séries de resultados de f(x,t), (uma série por instante).

Crie uma userform onde o utilizador possa inserir os incrementos de espaço e de tempo, (dx e dt) e onde possa definir o comprimento de a duração do domínio de f.

Page 9: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Sumário aula 4

Finalização do exercício da aula anterior (userform + gráfico). Ficou por finalizar (aula 5).

Métodos numéricos diferenças finitas (explícito, implícito, centrado) para 1a e 2a derivada. Ordem do erro.

Page 10: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Sumário aula 5

Finalização do exercício da aula anterior.– Gravação de macro para fazer gráfico– Adaptação da macro para fazer gráfico para o exercício– Criação de rotina que apaga todos os gráficos– Reformulação do problema para uma função f(x, t).

Adaptação do código para a função bidimensional.– Adaptação de código disponibilizado na página para fazer

gráficos da função f(x,t) para vários instantes de t.

Page 11: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Conteúdo da aula 6

Revisão da utilização do código para fazer gráficos Uso do operador Mod para fazer outputs de n em n

vezes (descrito mas não implementado). Concepção e programação de parte do trabalho

computacional para mfa. Condições iniciais (programado na aula). Condições de fronteira (programado na aula). Emissão contínua (descrito na aula –não-

programado-).

Page 12: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Dúvidas de computação VBA

Local: departamento Mecânica I. 1o andar. Secção Energia e Ambiente.

Ext: 3430 Mail: [email protected] Tlm: 934100491 Página de apoio: https

://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental

Page 13: Trabalho Computacional Mecânica de Fluidos Ambiental aula  6

Configurações regionais

Atenção no que toca à linguagem nativa do office. SEN (português) ou SIN (inglês).

Atenção às definições de separadores de casas decimais (3.14 ou 3,14) e de formatos de data (13/05/1980 ou 1980-05-13 ou...).