Trabalho Computacional Mecânica de Fluidos Ambiental

26
Trabalho Computacional Mecânica de Fluidos Ambiental Guillaume Riflet Dúvidas: [email protected] Ext:3430 Página: https:// fenix.ist.utl.pt/homepage/ist146730/mecanica-d os-fluidos-ambiental-2011-2012 (work in progress...)

description

Trabalho Computacional Mecânica de Fluidos Ambiental. Guillaume Riflet. Dúvidas: [email protected] Ext:3430 Página: https:// fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental-2011-2012 ( work in progress ...). Objectivos. Programming 101 MS-excel macros - PowerPoint PPT Presentation

Transcript of Trabalho Computacional Mecânica de Fluidos Ambiental

Page 1: Trabalho Computacional Mecânica de Fluidos Ambiental

Trabalho Computacional Mecânica de Fluidos Ambiental

Guillaume Riflet

Dúvidas: [email protected] Ext:3430

Página: https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental-2011-2012 (work in progress...)

Page 2: Trabalho Computacional Mecânica de Fluidos Ambiental

Objectivos

Programming 101 MS-excel macros Visual Basic for Applications (VBA) 101

https://fenix.ist.utl.pt/homepage/ist146730/mecanica-dos-fluidos-ambiental-2011-2012 (work in progress...)

Page 3: Trabalho Computacional Mecânica de Fluidos Ambiental

Interesse para engenheiros do ambiente

Utilização mais avançadas de ferramentas de folhas de cálculo.

Em muitas circunstâncias, o excel (ou derivado) é a melhor ferramenta realizar determinadas tarefas.

Qualquer empresa do sector público ou privado usa uma ferramenta de folha de cálculo. Muitas permitem utilizar macros.

Page 4: Trabalho Computacional Mecânica de Fluidos Ambiental

Linguagens de programação

Visual Basic Fortran C/C++ C# Matlab Java (pôr linguagem de programação favorita)

Page 5: Trabalho Computacional Mecânica de Fluidos Ambiental

Diferenças entre VB e VBA

VB VBA

Compilado Interpretado

IDE próprio (VS2Kx) IDE embebido no Office

Bibliotecas e classes externas importadas

Bibliotecas e classes nativas de Office

Page 6: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo I

Sheet1

Dica: Alt+F11

Page 7: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo I: glossário

Source-code, código-fonte Compiler/interpreter,

compilador/interpretador Subroutine, Subrotina String, Sequência de caracteres Propriedade dum objecto Excel macro, Macro de excel

Page 8: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo II

Sheet1

Page 9: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo III

Sheet1

Page 10: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo III: glossário

Argument, Argumento Argument passing, Passagem de argumento Argument type, Tipo de argumento

Page 11: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo IV

Sheet1

Page 12: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo IV: glossário

Function, Função Function type, Tipo de função

Page 13: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo V

Sheet1

Page 14: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo V: glossário

Variable, Variável Variable type, Tipo de variável

Page 15: Trabalho Computacional Mecânica de Fluidos Ambiental

Variáveis

Dim Nome As Tipo

Dim Aluno as String

Dim Idade as Integer

Dim Nota as Single

Declaração Implícita/Explícita

Function SafeSqr(num)

TempVal = Abs(num)

SafeSqr = Sqr(TempVal)

End Function

Function SafeSqr(num)

TempVal = Abs(num)

SafeSqr = Sqr(TemVal)

End Function

Option Explicit

Page 16: Trabalho Computacional Mecânica de Fluidos Ambiental

Tipos de variáveis I

Data type Range

Byte 0 to 255

Boolean True or False

Integer -32,768 to 32,767

Long(long integer)

-2,147,483,648 to 2,147,483,647

Single(single-precision floating-point)

-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values

Double(double-precision floating-point)

-1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values

Currency(scaled integer)

-922,337,203,685,477.5808 to 922,337,203,685,477.5807

Page 17: Trabalho Computacional Mecânica de Fluidos Ambiental

Tipos de variáveis II

Decimal +/-79,228,162,514,264,337,593,543,950,335 with no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

Date January 1, 100 to December 31, 9999

Object Any Object reference

String (variable-length)

0 to approximately 2 billion

String

(fixed-length)

1 to approximately 65,400

Variant(with numbers)

Any numeric value up to the range of a Double

Variant(with characters)

Same range as for variable-length String

User-defined(using Type)

The range of each element is the same as the range of its data type.

Page 18: Trabalho Computacional Mecânica de Fluidos Ambiental

Constantes

• Public Const conMaxPlanets As Integer = 9• Const conReleaseDate = #1/1/95#  • Const conPi = 3.14159265358979

Constantes são valores que aparecem várias vezes no programa e que ao contrário das variáveis não alteram o seu valor.

Page 19: Trabalho Computacional Mecânica de Fluidos Ambiental

Projecto

Modulo

SubRotina

Private Nome as TipoPublic Nome as TipoDim Nome as Tipo

Page 20: Trabalho Computacional Mecânica de Fluidos Ambiental

Sub-procedures & functions

Sub RotinasSub teste (File As String)

Open (File)

ReadFirstLine (File)

...

End Sub

Call teste (A)

FunçõesFunction Hypotenuse (A As Integer, B As _ Integer) As Double

Hypotenuse = Sqr(A ^ 2 + B ^ 2)

End Function  

strX = Hypotenuse(Width, Height)

Page 21: Trabalho Computacional Mecânica de Fluidos Ambiental

Arrays

Dim Conta(6) As Integer

i = 0 i = 1 i = 2 i = 3 i = 4 i = 5

Conta(0) = 12 ; Conta(3) = 21; Conta(5) = 3

i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 12 0 0 21 0 3

Dim Teste(3,3) As Boolean

Teste(0,1) = True ; Teste (2,0) = True

True

False

False

False

False

False

False

FalseTrue

Page 22: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo VI

Sheet1

Page 23: Trabalho Computacional Mecânica de Fluidos Ambiental

Estruturas de loop I

Do While ... LoopDo While line < 10

Call ReadLine(line)

line = line+1 Loop For...Next

 For i = 0 To 10 For j = 0 to 10

Matriz(i,j) = cos(x)

Next

Next

For Each...NextFor Each File In folder.File()

Call ReadFile (File) Next File

Page 24: Trabalho Computacional Mecânica de Fluidos Ambiental

Exemplo VII

Sheet1

Page 25: Trabalho Computacional Mecânica de Fluidos Ambiental

Grupo de exercícios 1

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.

2. 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.

3. Caso não tenham feito, repitam o exercício anterior usando um array.

4. 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).

5. 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 26: Trabalho Computacional Mecânica de 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...).