1 / 55

Programação para as Ciências Experimentais 2007/8

Programação para as Ciências Experimentais 2007/8. Teórica 12. Na aula de hoje... Excel. Usar dados dinâmicos Trocar dados com o Octave “Array formulas”, formulas com vectores ou matrizes. Gráficos Consulta de tabelas Algumas funções úteis

lundy
Download Presentation

Programação para as Ciências Experimentais 2007/8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação para as Ciências Experimentais2007/8 Teórica 12 Ludwig Krippahl, 2008

  2. Na aula de hoje... Excel • Usar dados dinâmicos • Trocar dados com o Octave • “Array formulas”, formulas com vectores ou matrizes. • Gráficos • Consulta de tabelas • Algumas funções úteis • Macros, Histogramas, Referência dinâmica (OFFSET), Formatação condicional, goal seek

  3. Excel e Octave • Exemplo: contar microorganismos no ar (ver aula 7) function cs=colonias(buracos, ufcs, tentativas) function u=contaufcs(buracos,cs,tentativas)

  4. Contar microorganismos no ar • Bomba aspira ar. • Orifícios sobre placa. • Contar colónias. • Estimar UFCs.

  5. Contar microorganismos no ar • Problema: • Podem entrar vários esporos ou bactérias pelo mesmo orifício, resultando numa só colónia. Ar

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

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

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

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

  10. Excel e Octave • Exportar dados do Excel • Copy (ctrl+c)

  11. Excel e Octave • Exportar dados do Excel • Copy (ctrl+c) • Paste (ctrl+v) • Atenção aos tabs No wordpad Ficam duas colunas

  12. Excel e Octave • Exportar dados do Excel • Copy (ctrl+c) • Paste (ctrl+v) • Atenção aos tabs • Gravar • Dados.txt

  13. Excel e Octave, ler os dados function[orif,cols]=lerdados(fich) fid=fopen(fich,"r"); orif=fscanf(fid,"Orificios\t%i\n“,”C”); cols=[]; fgetl(fid); while!feof(fid) c=fscanf(fid,"%i“,”C”); cols=[cols,c]; endwhile fclose(fid); endfunction Abre o ficheiro e lê o número de orifícios.

  14. Excel e Octave, ler os dados function[orif,cols]=lerdados(fich) fid=fopen(fich,"r"); orif=fscanf(fid,"Orificios\t%i\n“,”C”); cols=[]; fgetl(fid); while!feof(fid) c=fscanf(fid,"%i“,”C”); cols=[cols,c]; endwhile fclose(fid); endfunction Salta “Colónias:”

  15. Excel e Octave, ler os dados function[orif,cols]=lerdados(fich) fid=fopen(fich,"r"); orif=fscanf(fid,"Orificios\t%i\n“,”C”); cols=[]; fgetl(fid); while!feof(fid) c=fscanf(fid,"%i“,”C”); cols=[cols,c]; endwhile fclose(fid); endfunction Lê os valores

  16. Excel e Octave, calcular functioncalculaegrava(orif,tentat,fich,cols) fid=fopen(fich,"w"); for f=1:length(cols) u=contaufcs(orif,cols(f),tentat); fprintf(fid,"%i\t%i\r\n",cols(f),u); endfor fclose(fid); endfunction Calcula os UFCs para cada valor no vector de colónias, e grava no ficheiro

  17. Excel e Octave, calcular functioncalculaegrava(orif,tentat,fich,cols) fid=fopen(fich,"w"); for f=1:length(cols) u=contaufcs(orif,cols(f),tentat); fprintf(fid,"%i\t%i\r\n",cols(f),u); endfor fclose(fid); endfunction Mudar de linha em DOS e Windows (em Linux só é preciso \n)

  18. Excel e Octave, calcular

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

  20. Excel e Octave, actualizar • Agora temos que importar os resultados no Excel

  21. Excel e Octave, actualizar • Importar os resultados

  22. Excel e Octave, actualizar • Importar os resultados

  23. Excel e Octave, actualizar • Importar os resultados

  24. Excel e Octave, actualizar • Advanced para conversão do formato. Por exemplo . em vez de , nos números.

  25. Excel e Octave, actualizar • Advanced para conversão do formato. Por exemplo . em vez de , nos números.

  26. “Array formulas” • Dois tipos: • Fórmulas que operam sobre um vector ou matriz de elementos • Fórmulas que devolvem uma matriz de elementos

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

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

  29. “Array formulas” • Fórmulas que devolvem uma matriz de elementos • Exemplo: a inversa de uma matriz: • MINVERSE

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

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

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

  33. Gráficos • Exemplo: comparar x2 com x3 • Seleccionar gráfico, Edit, Paste Special • Especificar nova série com valores de x na primeira coluna:

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

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

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

  37. Outras funções úteis • SUM, AVERAGE, SUMIF, COUNT, COUNTIF • AND, OR (para usar no IF, por exemplo) • LINEST para regressão linear • Receita: • Seleccionar 2x3 • Linest(Ys, Xs, True, True), ctrl+shift+enter

  38. Outras funções úteis • LINEST para regressão linear • Seleccionar 2x3 • Linest(Ys, Xs, True, True), ctrl+shift+enter • Ver no help

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

  40. Macros • «Macro-instrução» • Conjunto de instruções que é executado como uma só (significado inicial, 1970s). • Hoje em dia tem um significado mais geral, refere-se a qualquer programa escrito numa linguagem usada para controlar uma aplicação. No caso do Excel, Visual Basic.

  41. Macros • Gravar macro:

  42. Macros • Gravar macro: • Tools->Macro->Record new Macro • Dar nome (e.g. Ordenar).

  43. Macros • Gravar macro: • Tools->Macro->Record new Macro • Dar nome (e.g. Ordenar). • No final, carregar no stop

  44. Macros • Alternativas para correr a macro: • Tools->Macro->Macros->Run • Usar a combinação de teclas definida quando gravámos (ou definir uma em Tools->Macro->Macros->Options • Atribuir a macro a um objecto na folha (um botão, um desenho). Para um desenho, click botão da direita e “Assign Macro”.

  45. Macros • Bom para tarefas repetitivas de formatação, ordenação, reposicionar dados, etc.

  46. Macros • Para ver o código: • Tools->Macro->Visual Basic Editor • Modules

  47. Macros Sub Ordena() Columns("A:B").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub

  48. Histogramas • Função FREQUENCY( • Dados; • Separadores) • É uma função que devolve um vector de dimensão igual a um mais o número de separadores, com as contagens dos elementos entre os separadores (ou maiores que o último)

  49. Histogramas Dados Separadores FREQUENCY

  50. Referências dinâmicas • OFFSET( • Célula de referência, a partir da qual contamos as linhas e colunas; • Linhas; • Colunas; • Altura; • Largura) • Tem que ser usada como argumento de outra função (e.g. SUM, AVERAGE...)

More Related