Programação para as
Ciências Experimentais
2006/7
Teórica 11
Ludwig Krippahl, 2007
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
Ludwig Krippahl, 2007
2
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.
Ludwig Krippahl, 2007
3
Macros

Gravar macro:
Ludwig Krippahl, 2007
4
Macros

Gravar macro:
• Tools->Macro->Record new Macro
• Dar nome (e.g. Ordenar).
Ludwig Krippahl, 2007
5
Macros

Gravar macro:
• Tools->Macro->Record new Macro
• Dar nome (e.g. Ordenar).
• No final, carregar no stop
Ludwig Krippahl, 2007
6
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”.
Ludwig Krippahl, 2007
7
Macros

Bom para tarefas repetitivas de
formatação, ordenação, reposicionar
dados, etc.
Ludwig Krippahl, 2007
8
Macros

Para ver o código:
• Tools->Macro->Visual Basic Editor
• Modules
Ludwig Krippahl, 2007
9
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
Ludwig Krippahl, 2007
10
Histogramas

Função FREQUENCY(

É 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)
• Dados;
• Separadores)
Ludwig Krippahl, 2007
11
Histogramas
Dados
Separadores
FREQUENCY
Ludwig Krippahl, 2007
12
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...)
Ludwig Krippahl, 2007
13
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.
Ludwig Krippahl, 2007
14
Referências dinâmicas

Exemplo:
Ludwig Krippahl, 2007
15
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”).
Ludwig Krippahl, 2007
16
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).
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).
Ludwig Krippahl, 2007
18
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.
Ludwig Krippahl, 2007
19
Strings

LEN(string)

CONCATENATE(S1;S2;...)

LEFT(string, numero de caracteres)

RIGHT(string, numero de caracteres)
• Comprimento.
• União das strings
• Devolve os primeiros caracteres da string
Ludwig Krippahl, 2007
20
Informação sobre células

ISBLANK(célula)

ISNA(célula)

ISERR(célula)

ISNUMBER, ISTEXT, ISERROR...
• True se está vazia
• True se é um erro do tipo #N/A
• True se qualquer erro excepto #N/A
Ludwig Krippahl, 2007
21
Trabalho 2

Modelo:
Ludwig Krippahl, 2007
22
Trabalho 2

Tem dois parâmetros mas a taxa de
recuperação é 1 sobre o tempo médio
de hospitalização.
Ludwig Krippahl, 2007
23
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.
Ludwig Krippahl, 2007
24
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.
Ludwig Krippahl, 2007
25
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.
Ludwig Krippahl, 2007
26
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.
Ludwig Krippahl, 2007
27
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)
Ludwig Krippahl, 2007
28
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
Ludwig Krippahl, 2007
29
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.
Ludwig Krippahl, 2007
30
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.
Ludwig Krippahl, 2007
31
Trabalho 2

Resultado final
1000
S
900
I
800
R
Dados
700
600
500
400
300
200
100
0
0
Ludwig Krippahl, 2007
20
40
60
80
100
32
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)
Ludwig Krippahl, 2007
33
Dúvidas
Ludwig Krippahl, 2007
34
Download

Slides da aula.