140 likes | 257 Views
Trabalho Computacional Mecânica de Fluidos Ambiental aula 6. Guillaume Riflet ,. Dúvidas: guillaume.maretec@ist.utl.pt Ext:3430 Página: https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental. Sumário aula 1. subrotinas , funções ,
E N D
Trabalho Computacional Mecânica de Fluidos Ambiental aula 6 GuillaumeRiflet, Dúvidas: guillaume.maretec@ist.utl.ptExt:3430 • Página: https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental
Sumário aula 1 • subrotinas, funções, • argumentos, variáveis, tipos de variáveis, • arrays, • cicloswhile e for, • Alcance (Public, Private) • debug. https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental
Exercícios aula 1 • Criem a função de umargumento de tipo double que retorne 3x*x – 2. Criemumasubrotina que teste a função para x=4 e x=25, escrevendo o resultado numa folha de excel. • Concebamumciclofor numa subrotina que escreva numa folha de excel os resultados de 3x*x*x + 4 para todos os x que pertençamaointervalo [-30 , 50] comincrementos 2 em 2. • Casonãotenhamfeito, repitam o exercícioanteriorusandoumarray. • Repitam o exercícioanterior, mas destavez a função é 3x*x*x + 4 se o resultado for positivo e 0 (zero) casocontrário (usemumif). • Gravem a macro dumgráficocom os resultados do exercícioanterior (com x nasabscissas e os valores da funçãonasordenadas). Vejam o código que resultou da gravação da vossa macro.
Sumário aula 2 • condições (if), • Passagem de argumentosporvalor ou porreferência • Interface Excel-VBA, • Tipos • eventos, • userforms, • Gravação de macros, • Algunsobjectosnativos de VBA para excel • Apresentação da equação da difusão.
Exercícios aula 2 • Com umciclofor e comumacondiçãoif, escreva numa coluna de excel os valores da funçãoseguinte, definida no intervalo [-50,50] comincrementos 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 emcasocontrário. • Concebaumasubrotina que faça o gráficoautomático da função a partir da gravaçãoduma macro. • Tente alterar a subrotina de criação de gráfico de modo a que recebaumargumentocontendo o número de linhas da coluna de excel a usar. • Repita o primeiroexercíciocomumincremento de apenas 2 unidades de intervalo. • Crie umauserformque peçaaoutilizador o intervalo e o incremento da função e que tenhaumbotão que faça o gráficocorrespondente.
Exercícios aula 2 • Escrevaumasubrotina que contenhaumavariávelinteiraainicializada a 22. Tente incrementar a variávela chamandoumasubrotina que use umargumentoByRefe chamando outra subrotina que use umargumentoByVal. Quais dassubrotinas que é incrementa de facto a variávela? (recomendação: use o debugger para ver, passo a passo, a evoluçãodasvariáveis.) • Escrevaumasubrotina que contenhaumarray de reais. Inicialize o arraycomumciclofor comvalores da função f(x) = A * exp(-x) definidos no intervalo [-3, 4] e comumincremento de 0.3. Chameumasubrotina que inverta a ordem dos valores no array. (Deve usarByRef ou ByVal?). Escreva os valores do arraynuma coluna de excel e faça o gráfico da função.. (Recomendação: use o debugger).
Sumário aula 3 • Aula mudada para LTI lemac (~40 min de atraso) • Familiarizaçãocom o ambiente de desenvolvimentoem VBA. • Resolução de exercícios e exemplosem VBA. • Ciclofor • Condiçãoif • Manipulações de arrays • Criação de subrotinas e de funções. • Criaçãodumauserform. • Criaçãoduma macro para fazerumgráfico.
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)). • Programeumarray numa subrotina que inicialize a função f(x,t0) onde x pertençaaointervalo [0 1000] comumincrementodx=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 porlinha, usandoumciclofor . • Programe o gráficocomvárias séries de resultados de f(x,t), (uma série por instante). • Crie umauserform onde o utilizadorpossainserir os incrementos de espaço e de tempo, (dx e dt) e onde possadefinir o comprimento de a duração do domínio de f.
Sumário aula 4 • Finalização do exercício da aula anterior (userform + gráfico). Ficouporfinalizar (aula 5). • Métodosnuméricosdiferençasfinitas (explícito, implícito, centrado) para 1a e 2a derivada. Ordem do erro.
Sumário aula 5 • Finalização do exercício da aula anterior. • Gravação de macro para fazergráfico • Adaptação da macro para fazergráfico para o exercício • Criação de rotina que apagatodos os gráficos • Reformulação do problema para umafunção f(x, t). Adaptação do código para a funçãobidimensional. • Adaptação de códigodisponibilizado na página para fazergráficos da função f(x,t) para vários instantes de t.
Conteúdo da aula 6 • Revisão da utilização do código para fazergráficos • Uso do operadorMod para fazer outputs de n em n vezes (descrito mas nãoimplementado). • Concepção e programação de parte do trabalhocomputacional para mfa. • Condiçõesiniciais (programado na aula). • Condições de fronteira (programado na aula). • Emissãocontínua (descrito na aula –não-programado-).
Dúvidas de computação VBA • Local: departamentoMecânica I. 1o andar. SecçãoEnergia e Ambiente. • Ext: 3430 • Mail: guillaume.maretec@ist.utl.pt • Tlm: 934100491 • Página de apoio: https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental
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...).