ludwig krippahl, 2007 programação para as ciências experimentais 2006/7 teórica 11

34
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007

Programação para as Ciências Experimentais

2006/7

Teórica 11

Page 2: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 2

Na aula de hoje...

Excel• Macros

• Histogramas.

• Referência dinâmica (OFFSET)

• Formatação condicional

• Cálculo condicional (SUMIF, COUNTIF)

• Strings

• Informação sobre conteúdo das células

Trabalho 2

Page 3: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 3

Macros

«Macro-instrução»• Conjunto de instruções que é executado

como uma só (significado inicial, 1970s).

• Hoje em dia tem um significado mais geral, refere-se a qualquer programa escrito numa linguagem usada para controlar uma aplicação. No caso do Excel, Visual Basic.

Page 4: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 4

Macros

Gravar macro:

Page 5: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 5

Macros

Gravar macro:• Tools->Macro->Record new Macro

• Dar nome (e.g. Ordenar).

Page 6: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 6

Macros

Gravar macro:• Tools->Macro->Record new Macro

• Dar nome (e.g. Ordenar).

• No final, carregar no stop

Page 7: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 7

Macros

Alternativas para correr a macro:• Tools->Macro->Macros->Run

• Usar a combinação de teclas definida quando gravámos (ou definir uma em Tools->Macro->Macros->Options

• Atribuir a macro a um objecto na folha (um botão, um desenho). Para um desenho, click botão da direita e “Assign Macro”.

Page 8: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 8

Macros

Bom para tarefas repetitivas de formatação, ordenação, reposicionar dados, etc.

Page 9: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 9

Macros

Para ver o código:• Tools->Macro->Visual Basic Editor

• Modules

Page 10: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 10

Macros

Sub Ordena()

Columns("A:B").Select

Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortNormal

End Sub

Page 11: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 11

Histogramas

Função FREQUENCY(• Dados;

• Separadores)

É uma função que devolve um vector de dimensão igual a um mais o número de separadores, com as contagens dos elementos entre os separadores (ou maiores que o último)

Page 12: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 12

HistogramasDados Separadores

FREQUENCY

Page 13: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 13

Referências dinâmicas

OFFSET(• Célula de referência, a partir da qual

contamos as linhas e colunas;

• Linhas;

• Colunas;

• Altura;

• Largura) Tem que ser usada como argumento de

outra função (e.g. SUM, AVERAGE...)

Page 14: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 14

Referências dinâmicas

Exemplo: OFFSET(A1,3,5,2,4)

• Grupo de 2x4 (altura x largura) células a começar da 3ª linha e 5ª coluna a contar da A1.

Page 15: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 15

Referências dinâmicas

Exemplo:

Page 16: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 16

Referências dinâmicas

É útil para fazer depender a referência de um valor calculado. Por exemplo, com COUNTA, que conta o número de células não vazias.

Exemplo• =SUM(OFFSET(A1;1;1;COUNTA(B:B)-1;1))

• Soma a coluna dos gastos, qualquer que seja o numero de entradas (o -1 desconta o cabeçalho “Gastos”).

Page 17: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 17

Formatação Condicional

Seleccionar células Format->Conditional Formatting Especificar condições e formatação se

as condições forem preenchidas (Exemplo: a vermelho e bold se o gasto for maior que €100).

Page 18: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 18

Formatação Condicional

Seleccionar células Format->Conditional Formatting Especificar condições e formatação se

as condições forem preenchidas (Exemplo: a vermelho e bold se o gasto for maior que €100).

Page 19: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 19

Cálculo Condicional

COUNTIF(células, condição)• Conta quantas preenchem condição

• Condição é uma string• “>20”, “=12”

SUMIF(células, condição, células a somar)• Soma as células no último argumento que

correspondem às do primeiro que cumprem a condição.

Page 20: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 20

Strings

LEN(string)• Comprimento.

CONCATENATE(S1;S2;...)• União das strings

LEFT(string, numero de caracteres)• Devolve os primeiros caracteres da string

RIGHT(string, numero de caracteres)

Page 21: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 21

Informação sobre células

ISBLANK(célula)• True se está vazia

ISNA(célula)• True se é um erro do tipo #N/A

ISERR(célula)• True se qualquer erro excepto #N/A

ISNUMBER, ISTEXT, ISERROR...

Page 22: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 22

Trabalho 2

Modelo:

Page 23: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 23

Trabalho 2

Tem dois parâmetros mas a taxa de recuperação é 1 sobre o tempo médio de hospitalização.

Page 24: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 24

Trabalho 2

Dados:• Doente com alta:

Ver radiografias em anexo.

Deu entrada a 4 de Maio de 2007.

Sofre de miopia

Teve alta a 10 de Maio de 2007.

Page 25: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 25

Trabalho 2

Dados:• Data em que ficou infectado:

Ver radiografias em anexo.

Deu entrada a 4 de Maio de 2007.

Sofre de miopia

Teve alta a 10 de Maio de 2007.

Page 26: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 26

Trabalho 2

Dados:• Data em que recuperou (já não conta como I):

Ver radiografias em anexo.

Deu entrada a 4 de Maio de 2007.

Sofre de miopia

Teve alta a 10 de Maio de 2007.

Page 27: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 27

Trabalho 2

Dados:• Doente que ainda não teve alta (só tem data

de entrada):

Sofre de miopia

Deu entrada a 21 de Maio de 2007.

Tomou três aspirinas.

Page 28: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 28

Trabalho 2

Dados:• Os dados são datas de entrada e saída

Modelo• O modelo é acerca do número de susceptíveis,

infectados, e recuperados

Datas• Em cada lote os dados são até ao dia da última

entrada. Não podemos saber quantos infectados há depois (quantos entram ou saem)

Page 29: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 29

Trabalho 2

Actualizar• Substituir todos os ficheiros .txt pelos que

vêm no novo lote (pacientes sem alta podem já ter tido alta).

• Exemplo:• Maio21.zip: ficheiros 1 a 27

• Maio28.zip: ficheiros 1 a 70, para substituir os outros e adicionar mais dados

Page 30: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 30

Trabalho 2

Ajuste do modelo• Pelos ficheiros podem obter o valor de I para

cada dia da epidemia (até à data do lote de ficheiros) e o valor da taxa de recuperação.

• Ajustem o modelo de forma a que o número de infectados no modelo corresponda o melhor possível ao número de infectados observado.

Page 31: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 31

Trabalho 2

Resultado final• Um sistema prático e fácil de usar para se

actualizar os dados e ver no Excel a simulação, os dados, e a informação pedida (máximo de infectados ao mesmo tempo, total de afectados ao fim de 100 dias, a simulação para 100 dias, etc...)

• Deve estar explicado na folha Excel como usar o sistema.

Page 32: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 32

Trabalho 2

Resultado final

0

100

200

300

400

500

600

700

800

900

1000

0 20 40 60 80 100

S

I

R

Dados

Page 33: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 33

Próxima aula

Dúvidas sobre o trabalho Dicas sobre o exame

• Estrutura do enunciado

• Tipos de perguntas

• Alguns exemplos

Revisões, ou o que quiserem (enviem sugestões antecipadamente)

Page 34: Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 11

Ludwig Krippahl, 2007 34

Dúvidas