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