folha de exercícios 5 :: página 1/5 exercício 5.1. Defina a função f : R R, f(x) = 4x 4 3x 3 + 2x 2 + x. Calcule f(0), f( 1), f(4/3) e f(2.88923). exercício 5.2. Defina a função g : R R R, g(x, y) = x 2 y + y 2 x 3. Calcule g(1, 5), g(2, 2) e g(0, 6). exercício 5.3. Defina uma função que determine o cubo de uma expressão. exercício 5.4. Use a função MatchQ para averiguar se as expressões são instâncias do padrão x n. 1, x, x 7, 1 x, x 2 3 exercício 5.5. Use a função Cases para seleccionar as expressões indicadas no exercício anterior que são instâncias do padrão x n.. exercício 5.6. Em cada caso, dê exemplos de padrões de que a expressão apresentada é uma instância e indique as substituições correspondentes. (a) 5a. (b) (3x + y) 2. (c) x 3 + yz. (d) 1 2 4 2 5 5 3 3 1 4 2 4. exercício 5.7. Em cada caso, dê vários exemplos de expressões que sejam instâncias do padrão indicado. (a) {a1, a2 }. (b) x Symbol. (c) n Integer?Positive. exercício 5.8. Defina, em R, a seguinte função: x se x 5 h(x) = x + 4 se 5 < x < 10 x se x 10. exercício 5.9. Escreva uma função que, dado um par na forma de lista com dois elementos {x, y}, devolva o par {2y, x}.
folha de exercícios 5 :: página 2/5 exercício 5.10. Construa uma função que, dada uma lista como argumento, construa uma lista com os elementos da lista que são (a) inteiros; (b) números primos; (c) números de precisão infinita. exercício 5.11. Defina uma função que, dado um inteiro positivo n, indique todos os números primos menores ou iguais a n. exercício 5.12. Dada uma lista com n números, a mediana é o elemento que se encontra na posição n 2, se n for ímpar, ou a média dos elementos nas posições n 2 e n 2 + 1, se n for par, supondo-se a lista ordenada por ordem crescente. Escreva uma função que apenas aceite, como argumento, uma lista cujos elementos são números e que determine a sua mediana. exercício 5.13. A distância entre dois pontos A = (a, b) e B = (x, y) do plano é dada por d(a, B) = (x a) 2 + (y b) 2. Defina uma função que determine a distância entre dois pontos de um plano, introduzindo as coordenadas dos pontos sob a forma de listas com 2 elementos, recorrendo a duas funções puras que calculem os quadrados das diferenças entre as abcissas e entre as ordenadas dos dois pontos, respectivamente. exercício 5.14. Construa uma função que aceite duas listas de igual comprimento como argumentos e que gere uma lista com os elementos das listas originais intercalados. exercício 5.15. Defina uma função que some todos os números naturais menores ou iguais a um determinado natural n. exercício 5.16. Deduza uma fórmula de recorrência para gerar a seguinte sequência de números 3, 4, 12, 48, 576,... e escreva uma função para determinar o n-ésimo valor da sequência. exercício 5.17. Um número perfeito é um inteiro positivo n que é igual à soma dos seus divisores próprios (isto é, os divisores de n distintos de n). Por exemplo, 6 é um número perfeito visto que os divisores próprios de 6 são 1, 2 e 3, e 6 = 1 + 2 + 3.
folha de exercícios 5 :: página 3/5 (a) Recorrendo à função pré-definida Divisors, construa uma função divprop que, dado um inteiro positivo n, gere a lista de todos os divisores próprios de n. (b) Usando a função divprop que definiu na alínea anterior, construa uma função somadivprop que, dado um inteiro positivo n, determine a soma de todos os seus divisores próprios. (c) Construa uma função perfeitoq que teste se um determinado inteiro positivo n é perfeito ou não, recorrendo à função somadivprop que definiu na alínea anterior. (d) Finalmente, construa uma função procuraperfeitos que, dado um inteiro n, procure todos os números perfeitos menores ou iguais a n. exercício 5.18. Construa uma função que, dado dois inteiros n, m com n < m, procure todos os números perfeitos entre n e m. exercício 5.19 Um número 3-perfeito é um inteiro positivo n tal que a soma de todos os seus divisores é o triplo de n. Por exemplo, 120 é um número 3-perfeito. Construa uma função que, dado um inteiro n, procure todos os números 3-perfeitos menores ou iguais a n. Encontre os números 3-perfeitos menores ou iguais a 1000. exercício 5.20. Descreva o que faz cada uma das seguintes funções puras e escreva funções com nome para realizarem as mesmas operações. (a) ( + 5)&; (b) Sin[ 1]+Cos[ 2]&; (c) (Precision[ ]== ). exercício 5.21. Contrua uma função pura que (a) calcule a diferença entre o quadrado e o valor da função seno de um número qualquer; (b) indique se o valor da função cosseno está entre 1 5 e 1 4 ; (c) determine a diferença dos quadrados de quaisquer dois números; (d) calcule a soma dos quadrados dos elementos de uma lista de números. exercício 5.22. Escreva uma função que, aplicada a uma lista de números, dobre os positivos e deixe inalterados os negativos e 0.
folha de exercícios 5 :: página 4/5 exercício 5.23. Construa uma tabela de valores da função definida por f(x) = x 2 sen x para valores de x no intervalo [0, 1] com espaçamento 0.01, recorrendo ao comando: (a) Table; (b) Do; (c) While. exercício 5.24. Chama-se número harmónico a todo o número H n que se escreve como H n = 1 + 1 2 + 1 3 + + 1 n = (a) Construa uma função que aceite como argumento um inteiro positivo n e que indique uma aproximação com 20 dígitos de precisão para H n, usando o(s) comando(s): (i) Sum; (ii) Apply e Plus; (iii) Do. (b) Recorrendo ao comando Timing, compare a eficiência das funções definidas na alínea anterior, avaliando-as para n = 10000. exercício 5.25. Considere as funções Count e Union. Escreva uma função que determine o número de ocorrências de cada elemento de uma lista na própria lista. Pretende-se, por exemplo, que a função aplicada à lista {a, c, e, b, c, b, a, a, c, b, e, b} devolva o seguinte resultado: O elemento a ocorre 3 vezes na lista dada. O elemento b ocorre 4 vezes na lista dada. O elemento c ocorre 3 vezes na lista dada. O elemento e ocorre 2 vezes na lista dada. n k=1 1 k. exercício 5.26. Um algoritmo eficiente para calcular os números de Fibonacci é baseado nas identidades seguintes: F 2n = 2F n 1 F n + Fn, 2 F 2n+1 = Fn+1 2 + F n, 2 com n 1. Escreva uma função para gerar os número de Fibonacci usando estas identidades. Obtenha uma lista com os cinquenta primeiros números de Fibonacci.
folha de exercícios 5 :: página 5/5 exercício 5.27. Chama-se quadrado mágico a toda a matriz quadrada cujas entradas são números inteiros e que satisfaz a seguinte condição: a soma dos elementos de cada coluna, a soma dos elementos de cada linha e a soma dos elementos da diagonal principal são iguais a um mesmo número. Por exemplo, a matriz 15 1 11 5 9 13 7 17 3 é um quadrado mágico. Construa uma função booleana quadmagq que apenas aceite como argumento matrizes quadradas com entradas inteiras e que teste se são quadrados mágicos. exercício 5.28. Indique o menor inteiro positivo cuja soma dos seis menores múltiplos (incluindo o próprio número) seja formada por algarismos todos iguais. sugestão Defina um padrão que represente as listas formadas por um ou mais elementos iguais. exercício 5.29. Verifique se a sequência dos algarismos d, d, m, m, a, a que constituem a data do seu aniversário aparecem, de forma consecutiva, na aproximação de π com 1000000 dígitos de precisão. sugestão Recorrendo ao comando RealDigits, obtenha a lista que contém os algarismos que constituem a aproximação referida e verifique se é instância de um padrão que representa as listas que contêm a sequência d, d, m, m, a, a.