Entrada e manipulação de tabelas de dados
From GRIPER Wiki
Tabela de dados
A entrada de dados se faz através de uma caixa localizada na parte inferior da lateral esquerda das janelas de aplicação, normalmente denominada Dados, como na figura ao lado. Temos quatro colunas que podem assumir papeis diferentes, de acordo com a aplicação. Em gráficos comuns estas colunas são utilizadas para os valores x, y e suas incertezas. No caso de histogramas, as colunas são todas utilizadas para os valores que serão estatisticamente contabilizados nos canais dos histogramas.
No topo da caixa de entrada há a opção de importar dados de um arquivo. O arquivo deve estar no formato ASCII (texto), onde valores de uma mesma linha estejam separados por espaço ou TAB. Lembre-se que a representação numérica exige que casas decimais sejam delimitadas por ponto. Para importar os dados de um arquivo, selecione o arquivo e depois clique em OK.
Logo abaixo há uma série de botões, cujas funções são:
- Imprime - formata uma tabela para a impressão.
- +1L - Adiciona uma linha no final da tabela.
- -1L - Remove a última linha da tabela.
- +10L - Adiciona dez linhas no final da tabela.
- -10L - Remove dez linhas do final da tabela.
- limpa - Limpa todo o conteúdo da tabela.
Além disto, temos um menu de seleção abaixo do rótulo de cada coluna da tabela. Este menu de seleção tem as seguintes opções:
- Limpar - Limpa o conteúdo da coluna.
- Calcular - Calcula valores para os elementos da tabela (ver abaixo detalhes de como fazer isto).
- Trocar - Troca o conteúdo desta coluna com o de outra. Será perguntado qual coluna deve ser trocada com esta.
Calculo de valores de colunas
Para calcular valores em uma coluna, selecione, no menu abaixo do rótulo da coluna, a opção Calcular. Uma caixa de entrada como a da figura ao lado deve surgir. Deve-se escrever a fórmula a ser utilizada para o cálculo dos valores da coluna e os números de linhas inicial e final para aplicar o cálculo. Deixando estes valores em branco toda a coluna será atualizada.
O formato das fórmulas utilizadas seguem o padrão de escrita de expressões matemáticas em C++ ou ROOT com algumas limitações devido a questões de segurança no PHP, que é a linguagem utilizada no WebROOT. os operadores matemáticos básicos são o (+) para adição, (-) para a subtração, (*) para multiplicação, (/) para divisão e (%) para o resto de uma divisão. O operador (^) é utilizado para potência. Assim, a^b = ab
Além disto, para facilitar o cálculo de elementos nas células das tabelas definimos as seguintes variáveis internas:
i - representa o número da linha, começando em 0. colJ - representa uma coluna, com J = 0,1,2,3... Por exemplo, col1, representa a segunda coluna.
Uma fórmula pode ser escrita, por exemplo, como:
- sin(col2)^2
Neste caso, para cada célula que está sendo calculada é pego o valor da coluna 2 da linha correspondende, calcula-se o seno deste valor e eleva-se ao quadrado.
Outros exemplos de fórmulas são:
- 23*exp(col1)*sqrt(2*col2-pi())
- rand_gaus(col1,1)
- i*2+rand_gaus(0,0.1)
- -8(5/2)^2*(1-sqrt(col3))-8
As fórmulas suportam ordenação de parentesis, sinais negativos, as operações básicas (+-*/), além de uma série de funções pré-definidas (abaixo, a, b ou c podem ser expressões genéricas):
- sin(a) - retorna o seno de a
- cos(a) - retorna o cosseno de a
- tan(a) - retorna a tangente de a
- arcsin(a) - retorna o arco cujo seno é a
- arccos(a) - retorna o arco cujo cosseno é a
- arctan(a) - retorna o arco cuja tangente é a
- sinh(a), cosh(a), tanh(a) - funções hiperbólicas, como as acima
- arcsinh(a), arccosh(a), arctanh(a) - funções hiperbólicas inversas, como as acima
- asinh(a), acosh(a), atanh(a) - funções hiperbólicas inversas, como as acima
- sqrt(a) - retorna a raiz quadrada de a
- abs(a) - retorna o valor absoluto de a
- ln(a) - retorna o logarítimo natural de a
- log(a) - retorna o logarítimo na base 10 de a
- exp(a) - retorna o valor da exponencial de a
- floor(a) - retorna o inteiro imediatamente abaixo de a
- ceil(a) - retorna o inteiro imediatamente acima de a
- round(a) - retorna o valor arredondado de a
- round(a,b) - retorna o valor arredondado de a com b casas decimais
- power(a,b) - retorna a^b
- mod(a,b) - retorna a%b
- rand_int(a,b) - retorna um número aleatório inteiro entre a e b
- rand_float() - retorna um número aleatório real entre 0 e 1
- rand_gaus(a,b) - retorna um número aleatório real com distribuição gaussiana de média a e desvio padrão b
- pi() - retorna o valor de pi (3.141592...)
Manipulando grandes quantidades de dados
A forma padrão de entrada de dados do WebROOT suporta tabelas com no máximo 200 linhas de dados. Quando uma tabela excede este número de linhas, por conta de aumentar o desempenho do programa, outro modo de edição é utilizado. Neste modo, a tabela de dados é aberta em uma outra janela do navegador. Na aplicação, você observa uma caixa de dados como na figura ao lado.
Para editar os dados, deve-se clicar no botão Editar planilha. Neste caso, uma nova janela do navegador aparece, como na figura ao lado. A funcionalidade é a mesma da situação para planilhas pequenas. Contudo há uma diferença importante: os dados não são automaticamente atualizados na aplicação. Há, neste caso, dois novos botões que servem para atualizar os dados:
- ATUALIZAR dados - grava os dados na planilha para uso na sua aplicação. Somente após clicar neste botão é que os dados serão atualizados nos seus gráficos, histogramas, etc.
- Reverter dados - Carrega os dados gravados novamente. É útil se você tiver se arrependido da edição que foi feita na planilha. Mas note que você recupera os dados que estão gravados.