A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Folha de Cálculo DI/FCT/UNL 1º Semestre 2004/2005.

Apresentações semelhantes


Apresentação em tema: "1 Folha de Cálculo DI/FCT/UNL 1º Semestre 2004/2005."— Transcrição da apresentação:

1 1 Folha de Cálculo DI/FCT/UNL 1º Semestre 2004/2005

2 2 Folha de Cálculo A informação numa folha de cálculo está estruturada com base em matrizes, ou tabelas. Numa folha simples, existe uma única matriz, cuja dimensão é arbitrária. Nessa matriz podem ser definidas submatrizes, ou subvectores. Qualquer posição na matriz é uma variável, identificada pela sua coluna (A, B, Z, AA,... – uma ou mais letras) e sua linha (1, 2, 3,... - um inteiro). Por exemplo B2 = Pedro Vieira

3 3 Folha de Cálculo Tal como numa linguagem de programação, a uma variável podem ser atribuídos valores, constantes ou dependentes de outras variáveis através de fórmulas. B1 = 3 * A1 B2 = 3 * A2.... B5 = 3 * A5 Uma folha de cálculo tem uma natureza reactiva. Sempre que uma variável muda de valor, as que são dependentes mudam igualmente de valor. Por exemplo, se A1 passar para 2, B2 passará automaticamente para B1 = 2* A1 = 2* 2 = 4. A1 = 1 A2 = 2.... A5 = 5

4 4 Folha de Cálculo Por esta razão, não são permitidas fórmulas que introduzam dependências circulares –directas ( A1 = 2 * A1); –ou indirectas (A1 = 2 * B1 e B1 = 2 * A1). B1 = 3* A1 B2 = 3* A2.... B5 = 3 * A5 Qualquer destas fórmulas levaria a computações eventualmente infinitas. A1 = 1 A2 = 2.... A5 = 5

5 5 Condicionais em Folhas de Cálculo Em folhas de cálculo existem instruções condicionais de atribuição de valores. A sua sintaxe (em EXCEL) é if(condition, then_value, else_value) B1 = if (A1 <=3, 3* A1,0) B2 = if (A2 <=3, 3* A2,0).... B5 = if (A5 <=3, 3* A5,0) Estas instruções podem encadear-se. Por exemplo if(condition1, then_value1, if(condition2, then_value2, if(condition3, then_value3,value_4))) A1 = 1 A2 = 2.... A5 = 5

6 6 Iterações em Folhas de Cálculo O conceito de iteração numa linguagem imperativa implica a repetição temporal de instruções. Por exemplo, a instrução Pretende fazer executar as (de atribuição de valores a variáveis) n vezes, em sequência. Numa folha de cálculo, essa iterações podem ser obtidas através de uma repetição espacial das instruções. A título de exemplo, vamos calcular x n. para i de 1 até n fimpara;

7 7 Iterações em Folhas de Cálculo Numa linguagem imperativa, por exemplo em Octave, o cálculo pode ser feito através do programa Neste programa, a variável y vai tomando os diversos valores (1, x, x 2, x 3,..., x n ), ao longo do tempo, começando com o valor 1, e terminando no valor x n. y = 1 ; x = for i = 1:n y = y * x endfor;

8 8 Iterações em Folhas de Cálculo Numa folha de cálculo, os diferentes valores que y toma, podem ser arrumados, ao longo do espaço, por exemplo num conjunto de células contíguas (por exemplo, uma coluna). De notar que, na realidade, o mesmo programa tem de ser escrito n vezes, uma vez em célula. Para evitar este inconveniente, a interface das folhas de cálculo permite copiar o conteúdo de uma célula para outras, fazendo automaticamente o ajuste das referências. y = 1 ; x = for i = 1:n y = y * x fimfazer; A1 = A2 = A1 * A1; A3 = A2 * A1; … A5 = A4 * A1; X = Y1 = 1 * X Y2 = Y1 * X; Y3 = Y2 * X; … Y5 = Y4 * X;

9 9 Iterações em Folhas de Cálculo Por exemplo, se tivermos a célula B1 definida como B1 = 2* A1 e copiarmos a célula B1 para a célula B2, como a cópia é feita para uma célula com nº de linha superior em 1, (B1 para B2), o valor 1 é acrescentado a todas as linhas na fórmula, obtendo-se B2 = 2*A2 Igualmente ao copiar uma célula para outra ao lado, a diferença de colunas entre a célula origem e a célula destino é acrescentada às referências a colunas. Se copiar a célula B1 para a posição D1 (2 colunas de diferença) obtém-se D1 = 2*C1 –Nota: A cópia pode ser feita com os habituais comandos e, ou por comandos de arrastamento.

10 10 Referências em Folhas de Cálculo As referências a linhas e colunas que são ajustadas nas cópias de células são chamadas referências relativas (à célula de onde são copiadas – a célula é 2 vezes superior à célula de cima ou do lado). No entanto, há situações em que não queremos que estas referências a linhas e colunas sejam relativas mas sim absolutas, e que não sejam alteradas na cópia. Por exemplo, ao copiar o conteúdo da célula A2 para A3, queremos alterar a 1ª referência a A1 para A2 (referência relativa), mas não a 2ª referência (referência absoluta). A1 = A2 = A1 * A1; A3 = A2 * A1; … A5 = A4 * A1;

11 11 Referências em Folhas de Cálculo Para explicitarmos que uma referência é absoluta, e não se altera quando copiada para uma linha/coluna diferentes, antecedemos a linha/coluna pelo símbolo $. As referências podem ser relativas a uma dimensão e absolutas na outra dimensão, como no exemplo presente (a linha é absoluta, mas a coluna não é). Assim, se copiarmos as células A2 a A5 para as células B2 a B5, iremos calcular B1^5. A cópia da célula A2 para as células abaixo altera a referência à linha relativa (1 acima), mas não à referência absoluta (a célula A1). A1 = A2 = A1 * A$1; A3 = A2 * A$1; … A5 = A4 * A$1;

12 12 Referências em Folhas de Cálculo As referências relativas/absolutas podem ser igualmente utilizadas em matrizes. A1 = 2 A2 = A1 * A$1; A3 = A2 * A$1; … A5 = A4 * A$1; B1 = 3 B2 = B1 * B$1; B3 = B2 * B$1; … B5 = B4 * B$1; A iteração (temporal) pode pois ser substituída pela iteração (espacial) mas depende do utilizador o número de células que copia. Os ciclos enquanto não são assim directamente representáveis numa folha de cálculo, se o utilizador não souber à partida o número de iterações que devem ser efectuadas.

13 13 Soma de um Vector Os valores de um vector ou tabela numa folha de cálculo podem ser agregados (somas, médias, etc..) de uma forma semelhante ao que se faz numa linguagem de programação como o Octave, com a implementação de iteração. Consideremos a soma de o vector nas posições A1 a E1. Em Octave poderíamos escrever (para um vector de 5 posições). s = 0; for i = 1:5 s = s+a(i); endfor. A variável s cujo valor vai sendo iterado, pode ser substituída pelo vector B1 a B5 que vai tomando os valores de s nas diferentes iterações A2 = A1 + 0; B2 = B1 + A2; C2 = C1 + B2; D2 = D1 + C2; E2 = E1 + D2;

14 14 Soma Condicional de um Vector Em Octave podemos somar valores de um vector que satisfaçam uma condição através de uma instrução condicional dentro do ciclo. Consideremos a soma apenas dos valores positivos de um vector nas posições A1 a E1. Em Octave poderíamos escrever (para um vector de 5 posições). s = 0; for i = 1:5 if a(i) > 0 then d = a(i) else d = 0; s = s+d; endfor. Este estilo de programação pode ser adaptado a uma folha de cálculo, utilizando-se uma linha adicional, onde se colocam ou os valores do vector original ou o valor 0.

15 15 Soma Condicional de um Vector s = 0; for i = 1:5 if a(i) > 0 then d = a(i) else d = 0; s = s+d; endfor. A3 = A2 + 0; B3 = B2 + A3; C3 = C2 + B3; D3 = D2 + C3; E3 = E2 + D3; A2 = if(A1 > 0, A1, 0); B2 = if(B1 > 0, B1, 0); C2 = if(C1 > 0, C1, 0); D2 = if(E1 > 0, D1, 0); E2 = if(E1 > 0, E1, 0);

16 16 Funções para Somas de Vectores Tal como em Octave, também as folhas de cálculo permitem a utilização de funções. O paralelo é ainda maior do que noutras linguagens de programação, porque em Octave vectores e matrizes são tipos básicos, permitindo referências a subvectores e submatrizes. Assim em Octave, a soma dos elementos de um vector V com n elementos é obtida através da função s = sum(V) Se se pretender somar apenas os valores do subvector constituído pelos elementos 3 a 7, podemos usar a referência a esse subvector na função através de s = sum(V(3:7))

17 17 Funções para Somas de Vectores Numa folha de cálculo, podemos usar igualmente a função sum, sendo o vector delimitado entre a sua célula inicial e final. –Quer no caso de um vector linha F1 = SUM(A1:E1) –Quer no caso de um vector coluna A6 = SUM(A1:A5) Estas funções podem ainda utilizar-se para somas condicionais: G1 = SUMIF(A1:E1,">0") A7 = SUMIF(A1:A5,">0")

18 18 Soma de uma Matriz As mesmas técnicas podem ser utilizadas no caso de matrizes, sendo mais prático o uso de funções. E1 = SUM(A1:D1) E2 = SUM(A2:D2) E3 = SUM(A3:D3) F1 = SUMIF(A1:D1,>0) F2 = SUMIF(A1:D1,>0) F3 = SUMIF(A1:D1,>0) A4 = SUM(A1:A3)..... D4 = SUM(D1:D3) A4 = SUMIF(A1:A3,>0)... D4 = SUMIF(D1:D3,>0) E4 = SUM(A1:D4) F4 = SUM(F1:F3) E5 = SUM(E1:E4) F5 = SUMIF(A1:D4,>0)

19 19 Exemplo: Queda Livre g = 9.8 % aceleração da gravidade h = % altura inicial (em metros) k = % coeficiente de atrito (1/s) dt = % intervalo de tempo (em segs) ? t = 0; x = h; v = 0; a = -g; while x > 0 t = t + dt; x = x + v * dt; v = v + a * dt; a = - g - k * v; endwhile;


Carregar ppt "1 Folha de Cálculo DI/FCT/UNL 1º Semestre 2004/2005."

Apresentações semelhantes


Anúncios Google