Post on 17-Apr-2015
Ludwig Krippahl, 2007
Programação para as Ciências Experimentais
2006/7
Teórica 10
Ludwig Krippahl, 2007 2
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 3
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 4
Conceitos básicos de Excel
Referência relativa:• Nota: fórmulas começam sempre por =
Ludwig Krippahl, 2007 5
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 6
Conceitos básicos de Excel
Referência relativa:• O 2 passou a 3 copiando para baixo
Ludwig Krippahl, 2007 7
Conceitos básicos de Excel
Referência absoluta
Ludwig Krippahl, 2007 8
Conceitos básicos de Excel
Referência absoluta• Fill down (seleccionar, ctrl+d)
Ludwig Krippahl, 2007 9
Conceitos básicos de Excel
Referência absoluta• Multiplicar pelo C1, mas sem mudar o 1...
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
Referência absoluta• Marcar o 1 como ref. absoluta
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
• Parâmetros• Constante
• DeltaT
Ludwig Krippahl, 2007 20
Conceitos básicos de Excel
Dar nomes às células.• Exemplo: 2A B
• Fill down...
• Mas falta o tempo.
Ludwig Krippahl, 2007 21
Conceitos básicos de Excel
Seleccionar a primeira coluna (click no topo da coluna, no A).
Ludwig Krippahl, 2007 22
Conceitos básicos de Excel
Insert, Columns
Ludwig Krippahl, 2007 23
Conceitos básicos de Excel
Insert, Columns
Ludwig Krippahl, 2007 24
Conceitos básicos de Excel
Definir a fórmula, e fill down.
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
IF(condição; valor se verdade; valor se falso)
Ex:
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
Ludwig Krippahl, 2007 29
Conceitos básicos de Excel
Exemplo: raiz do polinómio x3+2
Fill right, fill down
Ludwig Krippahl, 2007 30
Conceitos básicos de Excel
Exemplo: raiz do polinómio x3+2
Ludwig Krippahl, 2007 31
Conceitos básicos de Excel
Exemplo: raiz do polinómio x3+2
Fill down
Ludwig Krippahl, 2007 32
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 33
Contar microorganismos no ar
Bomba aspira ar. Orifícios sobre placa. Contar colónias. Estimar UFCs.
Ludwig Krippahl, 2007 34
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 35
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 36
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 37
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 38
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 39
Excel e Octave
Exportar dados do Excel Copy (ctrl+c)
Ludwig Krippahl, 2007 40
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 41
Excel e Octave
Exportar dados do Excel Copy (ctrl+c) Paste (ctrl+v) Atenção aos tabs Gravar
• Dados.txt
Ludwig Krippahl, 2007 42
Excel e Octave, ler os dados
[v1,v2,v3...]=fscanf(id,formato)
Por exemplo, um texto comx=12;y=13
x=14;y=28
Lê-se• [x,y]=fscanf(fid,”x=%i;y=%i/n”)
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
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
Ludwig Krippahl, 2007 45
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 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); while !feof(fid)
c=fscanf(fid,"%i\t\n");cols=[cols,c];
endwhilefclose(fid);endfunction
Abre o ficheiro e lê o número de orifícios.
Ludwig Krippahl, 2007 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); while !feof(fid)
c=fscanf(fid,"%i\t\n");cols=[cols,c];
endwhilefclose(fid);endfunction
Salta “Colónias:”
Ludwig Krippahl, 2007 48
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); while !feof(fid)
c=fscanf(fid,"%i\t\n");cols=[cols,c];
endwhilefclose(fid);endfunction
Lê os valores, saltando os tabs que o Excel deixou na segunda coluna
Ludwig Krippahl, 2007 49
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);
endfor
fclose(fid);
endfunction
Calcula os UFCs para cada valor no vector de colónias, e grava no ficheiro
Ludwig Krippahl, 2007 50
Excel e Octave, calcular
Ludwig Krippahl, 2007 51
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 52
Excel e Octave, actualizar
Agora temos que importar os resultados no Excel
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
Importar os resultados
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.
Ludwig Krippahl, 2007 58
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 59
“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 60
“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 61
“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 62
“Array formulas”
Fórmulas que devolvem uma matriz de elementos
Exemplo: a inversa de uma matriz: MINVERSE
Ludwig Krippahl, 2007 63
“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 64
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 65
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 66
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 67
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 68
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 69
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)
80
Ludwig Krippahl, 2007 70
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).
80
Ludwig Krippahl, 2007 71
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 72
Dúvidas