Programação para as
Ciências Experimentais
2006/7
Teórica 10
Ludwig Krippahl, 2007
Na aula de hoje...






Conceitos básicos de Excel
Usar dados dinâmicos
•
•
Trocar dados com o Octave
Leitura formatada com Octave (fscanf)
“Array formulas”, formulas com vectores ou
matrizes.
Gráficos
Consulta de tabelas
Algumas funções úteis
Ludwig Krippahl, 2007
2
Conceitos básicos de Excel



Célula: A5
Grupo de células: A5:B12
Referência relativa ou absoluta:
• O cifrão marca uma referência absoluta.
• A$5, $B$5 Nestes casos o 5 e o B estão
•
fixos.
Sem cifrão a referência é relativa, e muda
com copy/paste ou fill down/right
Ludwig Krippahl, 2007
3
Conceitos básicos de Excel

Referência relativa:
• Nota: fórmulas começam sempre por =
Ludwig Krippahl, 2007
4
Conceitos básicos de Excel

Referência relativa:
• O B passou a C e o C a D copiando para a
direita
Ludwig Krippahl, 2007
5
Conceitos básicos de Excel

Referência relativa:
• O 2 passou a 3 copiando para baixo
Ludwig Krippahl, 2007
6
Conceitos básicos de Excel

Referência absoluta
Ludwig Krippahl, 2007
7
Conceitos básicos de Excel

Referência absoluta
• Fill down (seleccionar, ctrl+d)
Ludwig Krippahl, 2007
8
Conceitos básicos de Excel

Referência absoluta
• Multiplicar pelo C1, mas sem mudar o 1...
Ludwig Krippahl, 2007
9
Conceitos básicos de Excel

Referência absoluta
• Marcar o 1 como ref. absoluta
Ludwig Krippahl, 2007
10
Conceitos básicos de Excel

Referência absoluta
• Marcar o 1 como ref. absoluta
Ludwig Krippahl, 2007
11
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
12
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
13
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
14
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
15
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
16
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
17
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
18
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Parâmetros
• Constante
• DeltaT
Ludwig Krippahl, 2007
19
Conceitos básicos de Excel

Dar nomes às células.
• Exemplo: 2A  B
• Fill down...
• Mas falta o tempo.
Ludwig Krippahl, 2007
20
Conceitos básicos de Excel

Seleccionar a primeira coluna (click no
topo da coluna, no A).
Ludwig Krippahl, 2007
21
Conceitos básicos de Excel

Insert, Columns
Ludwig Krippahl, 2007
22
Conceitos básicos de Excel

Insert, Columns
Ludwig Krippahl, 2007
23
Conceitos básicos de Excel

Definir a fórmula, e fill down.
Ludwig Krippahl, 2007
24
Conceitos básicos de Excel


IF(condição; valor se verdade; valor se
falso)
Ex:
Ludwig Krippahl, 2007
25
Conceitos básicos de Excel


IF(condição; valor se verdade; valor se
falso)
Ex:
Ludwig Krippahl, 2007
26
Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2
Ludwig Krippahl, 2007
27
Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2
Ludwig Krippahl, 2007
28
Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2
Fill right, fill down
Ludwig Krippahl, 2007
29
Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2
Ludwig Krippahl, 2007
30
Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2
Fill down
Ludwig Krippahl, 2007
31
Excel e Octave

Exemplo: contar microorganismos no ar
(ver aula 6)
function cs=colonias(buracos, ufcs,
tentativas)
function
u=contaufcs(buracos,cs,tentativas)
Ludwig Krippahl, 2007
32
Contar microorganismos no ar




Bomba aspira ar.
Orifícios sobre placa.
Contar colónias.
Estimar UFCs.
Ludwig Krippahl, 2007
33
Contar microorganismos no ar

Problema:
• Podem entrar vários esporos ou bactérias
pelo mesmo orifício, resultando numa só
colónia.
Ar
Ludwig Krippahl, 2007
34
Excel e Octave
function cs=colonias(buracos, ufcs,
tentativas)
Devolve o número de colónias estimado
(média das tentativas) para o numero de
UFCs dado
Ludwig Krippahl, 2007
35
Excel e Octave
function
u=contaufcs(buracos,cs,tentativas)
Estima o numero de UFCs (média das
tentativas) a partir no numero de
colónias (usa a função anterior para
experimentar valores).
Ludwig Krippahl, 2007
36
Excel e Octave

Esquema:
• Temos os dados no Excel
• Gravamos num ficheiro txt
• O Octave lê, estima os UFCs, e grava um
•
ficheiro
O Excel actualiza a informação
Ludwig Krippahl, 2007
37
Excel e Octave

Exportar dados do Excel
• Forma mais prática: seleccionar, paste no
notepad, gravar.

Ler com o Octave
• Ter atenção ao formato do ficheiro...
Ludwig Krippahl, 2007
38
Excel e Octave


Exportar dados do Excel
Copy (ctrl+c)
Ludwig Krippahl, 2007
39
Excel e Octave




Exportar dados do Excel
Copy (ctrl+c)
Paste (ctrl+v)
Atenção aos tabs
No wordpad
Ficam duas
colunas
Ludwig Krippahl, 2007
40
Excel e Octave





Exportar dados do Excel
Copy (ctrl+c)
Paste (ctrl+v)
Atenção aos tabs
Gravar
• Dados.txt
Ludwig Krippahl, 2007
41
Excel e Octave, ler os dados
[v1,v2,v3...]=fscanf(id,formato)

Por exemplo, um texto com
x=12;y=13
x=14;y=28

Lê-se
• [x,y]=fscanf(fid,”x=%i;y=%i/n”)
Ludwig Krippahl, 2007
42
Excel e Octave, ler os dados
[v1,v2,v3...]=fscanf(id,formato)
• [x,y]=fscanf(fid,”x=%i;y=%i/n”)
Devolve 2 valores
Ludwig Krippahl, 2007
43
Excel e Octave, ler os dados
[v1,v2,v3...]=fscanf(id,formato)
• [x,y]=fscanf(fid,”x=%i;y=%i/n”)
Devolve 2 valores, inteiros
Ludwig Krippahl, 2007
44
Excel e Octave, ler os dados
[v1,v2,v3...]=fscanf(id,formato)
• [x,y]=fscanf(fid,”x=%i;y=%i/n”)
Devolve 2 valores, inteiros, numa string que
começa por x=, seguida do primeiro valor,
depois ;y=, o segundo valor, e finalmente
muda de linha.
Ludwig Krippahl, 2007
45
Excel e Octave, ler os dados
function [orif,cols]=lerdados(fich)
fid=fopen(fich,"r");
orif=fscanf(fid,"Orificios\t%i\n");
cols=[];
fgetl(fid);
Abre o ficheiro e lê o
while !feof(fid)
número de orifícios.
c=fscanf(fid,"%i\t\n");
cols=[cols,c];
endwhile
fclose(fid);
endfunction
Ludwig Krippahl, 2007
46
Excel e Octave, ler os dados
function [orif,cols]=lerdados(fich)
fid=fopen(fich,"r");
orif=fscanf(fid,"Orificios\t%i\n");
cols=[];
fgetl(fid);
Salta
while !feof(fid)
c=fscanf(fid,"%i\t\n");
cols=[cols,c];
endwhile
fclose(fid);
endfunction
Ludwig Krippahl, 2007
“Colónias:”
47
Excel e Octave, ler os dados
function [orif,cols]=lerdados(fich)
fid=fopen(fich,"r");
orif=fscanf(fid,"Orificios\t%i\n");
cols=[];
fgetl(fid);
Lê os valores, saltando
while !feof(fid)
os tabs que o Excel
c=fscanf(fid,"%i\t\n");
deixou na segunda
cols=[cols,c];
coluna
endwhile
fclose(fid);
endfunction
Ludwig Krippahl, 2007
48
Excel e Octave, calcular
function calculaegrava(orif,tentat,fich,cols)
fid=fopen(fich,"w");
for f=1:length(cols)
u=contaufcs(orif,cols(f),tentat);
fprintf(fid,"%i\t%i\n",cols(f),u);
Calcula os UFCs para
endfor
cada valor no vector de
fclose(fid);
colónias, e grava no
endfunction
ficheiro
Ludwig Krippahl, 2007
49
Excel e Octave, calcular
Ludwig Krippahl, 2007
50
Excel e Octave, actualizar

Basta agora um script para actualizar
(actualiza.m), que lê os dados de
dados.txt, calcula com 20 tentativas
cada e grava em ufcs.txt:
[orif,d]=lerdados("dados.txt")
calculaegrava(orif,20,"ufcs.txt",d)
Ludwig Krippahl, 2007
51
Excel e Octave, actualizar

Agora temos que importar os resultados
no Excel
Ludwig Krippahl, 2007
52
Excel e Octave, actualizar

Importar os resultados
Ludwig Krippahl, 2007
53
Excel e Octave, actualizar

Importar os resultados
Ludwig Krippahl, 2007
54
Excel e Octave, actualizar

Importar os resultados
Ludwig Krippahl, 2007
55
Excel e Octave, actualizar

Advanced para conversão do formato.
Por exemplo . em vez de , nos números.
Ludwig Krippahl, 2007
56
Excel e Octave, actualizar

Advanced para conversão do formato.
Por exemplo . em vez de , nos números.
Ludwig Krippahl, 2007
57
Excel e Octave, actualizar


Advanced para conversão do formato.
Por exemplo . em vez de , nos números.
Especificar a conversão pode ser
muito importante. No Octave os
números fraccionários têm um ponto,
mas em Português tipicamente usa-se a
vírgula.
Ludwig Krippahl, 2007
58
“Array formulas”

Dois tipos:
• Fórmulas que operam sobre um vector ou
•
matriz de elementos
Fórmulas que devolvem uma matriz de
elementos
Ludwig Krippahl, 2007
59
“Array formulas”


Fórmulas que operam sobre um vector
ou matriz de elementos
Exemplo: Quantos alunos melhoraram
do primeiro para o segundo teste.
• Teste 1 em A3:A13, teste 2 em B3:B13
• =SUM(IF(B3:B13>A3:A13;1;0))
• ctrl+shift+enter para indicar que é uma
fórmula para vectores
Ludwig Krippahl, 2007
60
“Array formulas”
• Teste 1 em A3:A13, teste 2 em B3:B13
• =SUM(IF(B3:B13>A3:A13;1;0))
• ctrl+shift+enter para indicar que é uma
•
fórmula para vectores
O Excel vai percorrer todas as células,
comparar elemento a elemento, somar 1 cada
vez que a condição é verdadeira e devolve a
soma.
Ludwig Krippahl, 2007
61
“Array formulas”

Fórmulas que devolvem uma matriz de
elementos

Exemplo: a inversa de uma matriz:
MINVERSE

Ludwig Krippahl, 2007
62
“Array formulas”

Exemplo: a inversa de uma matriz em
A1:B3
• Seleccionar as células onde aparecerá o
•
•
resultado
=MINVERSE(A1:B3)
ctrl+shift+enter
Ludwig Krippahl, 2007
63
Gráficos

Para fazer um gráfico basta seleccionar
as células e carregar no botão
• Alguns detalhes:
• Com valores de X e Y tem que ser sempre o
XY(Scatter)
• Se temos valores em colunas com formatos
diferentes, ou vários conjuntos X e Y o mais prático
é fazer o gráfico para a primeira série e depois
acrescentar outras com copy e paste special
Ludwig Krippahl, 2007
64
Gráficos

Exemplo: comparar x2 com x3
• Calcular pontos x, y
• Seleccionar os do x2, traçar gráfico
• Seleccionar os do x3, copy
• Seleccionar gráfico, Edit, Paste Special
Ludwig Krippahl, 2007
65
Gráficos

Exemplo: comparar x2 com x3
• Seleccionar gráfico, Edit, Paste Special
• Especificar nova série com valores de x na
primeira coluna:
Ludwig Krippahl, 2007
66
Consultar tabelas (VLOOKUP)

VLOOKUP(Valor a encontrar;
Tabela;
Índice da coluna a devolver;
Procura por intervalo (True/False))

Exemplo: encontrar a nota de um aluno
Ludwig Krippahl, 2007
67
Consultar tabelas (VLOOKUP)


Exemplo: encontrar a nota de um aluno
=VLOOKUP(C9;A1:B6;2;FALSE)
• Não queremos que devolva um valor dentro
do intervalo, mas apenas o valor exacto
Ludwig Krippahl, 2007
68
Consultar tabelas (VLOOKUP)





Exemplo: Altura versus peso
=VLOOKUP(H10;I3:J7;2;TRUE)
Se não for esse o valor exacto para a
altura, queremos o peso aproximado
Neste caso dá o último que encontrou
antes de passar o valor pedido.
(Ver folha excel-t10.xls, página Lookup)
Ludwig Krippahl, 2007
80
69
Outras funções úteis



SUM, AVERAGE, SUMIF, COUNT,
COUNTIF
AND, OR (para usar no IF, por exemplo)
LINEST para regressão linear (vão ver
na aula prática, usem o help).
Ludwig Krippahl, 2007
80
70
Outras funções úteis

Como usar funções que não conhecem:
• Ver no help.
• Usar Insert, Function, e seguir as instruções.
• Procurar no Google.
Ludwig Krippahl, 2007
71
Dúvidas
Ludwig Krippahl, 2007
72
Download

Slides da aula.