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

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

Embed Size (px)

Citation preview

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

Ludwig Krippahl, 2007

Programação para as Ciências Experimentais

2006/7

Teórica 10

Page 2: 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

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

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

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

Ludwig Krippahl, 2007 4

Conceitos básicos de Excel

Referência relativa:• Nota: fórmulas começam sempre por =

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

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

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

Ludwig Krippahl, 2007 6

Conceitos básicos de Excel

Referência relativa:• O 2 passou a 3 copiando para baixo

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

Ludwig Krippahl, 2007 7

Conceitos básicos de Excel

Referência absoluta

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

Ludwig Krippahl, 2007 8

Conceitos básicos de Excel

Referência absoluta• Fill down (seleccionar, ctrl+d)

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

Ludwig Krippahl, 2007 9

Conceitos básicos de Excel

Referência absoluta• Multiplicar pelo C1, mas sem mudar o 1...

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

Ludwig Krippahl, 2007 10

Conceitos básicos de Excel

Referência absoluta• Marcar o 1 como ref. absoluta

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

Ludwig Krippahl, 2007 11

Conceitos básicos de Excel

Referência absoluta• Marcar o 1 como ref. absoluta

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

Ludwig Krippahl, 2007 12

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 13

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 14

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 15

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 16

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 17

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 18

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 19

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Parâmetros• Constante

• DeltaT

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

Ludwig Krippahl, 2007 20

Conceitos básicos de Excel

Dar nomes às células.• Exemplo: 2A B

• Fill down...

• Mas falta o tempo.

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

Ludwig Krippahl, 2007 21

Conceitos básicos de Excel

Seleccionar a primeira coluna (click no topo da coluna, no A).

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

Ludwig Krippahl, 2007 22

Conceitos básicos de Excel

Insert, Columns

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

Ludwig Krippahl, 2007 23

Conceitos básicos de Excel

Insert, Columns

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

Ludwig Krippahl, 2007 24

Conceitos básicos de Excel

Definir a fórmula, e fill down.

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

Ludwig Krippahl, 2007 25

Conceitos básicos de Excel

IF(condição; valor se verdade; valor se falso)

Ex:

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

Ludwig Krippahl, 2007 26

Conceitos básicos de Excel

IF(condição; valor se verdade; valor se falso)

Ex:

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

Ludwig Krippahl, 2007 27

Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2

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

Ludwig Krippahl, 2007 28

Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2

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

Ludwig Krippahl, 2007 29

Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2

Fill right, fill down

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

Ludwig Krippahl, 2007 30

Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2

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

Ludwig Krippahl, 2007 31

Conceitos básicos de Excel

Exemplo: raiz do polinómio x3+2

Fill down

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

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)

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

Ludwig Krippahl, 2007 33

Contar microorganismos no ar

Bomba aspira ar. Orifícios sobre placa. Contar colónias. Estimar UFCs.

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

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

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

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

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

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).

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

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

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

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...

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

Ludwig Krippahl, 2007 39

Excel e Octave

Exportar dados do Excel Copy (ctrl+c)

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

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

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

Ludwig Krippahl, 2007 41

Excel e Octave

Exportar dados do Excel Copy (ctrl+c) Paste (ctrl+v) Atenção aos tabs Gravar

• Dados.txt

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

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”)

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

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

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

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

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

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.

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

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.

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

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:”

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

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

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

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

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

Ludwig Krippahl, 2007 50

Excel e Octave, calcular

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

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)

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

Ludwig Krippahl, 2007 52

Excel e Octave, actualizar

Agora temos que importar os resultados no Excel

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

Ludwig Krippahl, 2007 53

Excel e Octave, actualizar

Importar os resultados

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

Ludwig Krippahl, 2007 54

Excel e Octave, actualizar

Importar os resultados

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

Ludwig Krippahl, 2007 55

Excel e Octave, actualizar

Importar os resultados

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

Ludwig Krippahl, 2007 56

Excel e Octave, actualizar

Advanced para conversão do formato. Por exemplo . em vez de , nos números.

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

Ludwig Krippahl, 2007 57

Excel e Octave, actualizar

Advanced para conversão do formato. Por exemplo . em vez de , nos números.

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

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.

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

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

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

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

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

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.

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

Ludwig Krippahl, 2007 62

“Array formulas”

Fórmulas que devolvem uma matriz de elementos

Exemplo: a inversa de uma matriz: MINVERSE

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

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

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

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

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

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

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

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:

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

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

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

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

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

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

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

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

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

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.

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

Ludwig Krippahl, 2007 72

Dúvidas