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

Preview:

Citation preview

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