AULA03.NB
1
PARADIGMAS DA PROGRAMAÇÃO
Licenciatura em Engenharia Civil (1º ano, 1º semestre)
Licenciatura em Engenharia Informática (1º ano, 1º semestre)
Licenciatura em Engenharia de Instrumentação e Electrónica
- ramo Astronomia (1º ano, 1º semestre)
Licenciatura em Engenharia de Telecomunicações e Redes (1º ano, 1º semestre)
Licenciatura em Ensino de Informática (1º ano, 1º semestre)
Licenciatura em Matemática (1º ano, 1º semestre)
INTRODUÇÃO À COMPUTAÇÃO
Licenciatura em BioQuímica (2º ano, 1º semestre)
Licenciatura em Física (2º ano, 1º semestre)
Licenciatura em Química (1º ano, 1º semestre)
à Definição de Funções
3.1- Considere a função suc que a cada natural n faz corresponder o seu sucessor (n+1):
a) Defina a função suc no Mathematica.
b) Calcule suc(5), suc(x), suc(aula) e suc( { 2, 3 } ).
c) Calcule o produto do sucessor de 4 pelo sucessor do sucessor de 6.
3.2- Defina a função real de variável real f(x) = x2 +2x e calcule o seu valor no ponto x = 10.
x+ y
3.3- Defina a função real de duas variáveis reais dada por g(x,y) = ÅÅÅÅÅÅÅÅ
ÅÅÅÅ e calcule as imagens de ( 2, 5 ) e ( 10, 12.5 ).
2
3.4- Considere a função real de variável real r definida por f(x) = x2 se x ¥ 0 e f(x) = -x2 se x < 0.
a) Defina a função f no Mathematica.
b) Calcule f(5), f(-1) e f(0).
c) Desenhe o gráfico da função para -5 § x § 5.
3.5- A função de Heaviside é definida como se segue: h(x) = 1 se x > 0, h(x) = ÅÅÅÅ12 se x = 0 e h(x) = 0 se x < 0.
a) Defina a função de Heaviside no Mathematica.
b) Calcule as imagens nos pontos -2, 0 e 2.
c) Represente graficamente a função.
3t
cos HtL sen H ÅÅÅÅ
ÅÅ L
ÅÅÅÅÅÅÅÅÅÅÅÅ2ÅÅÅÅÅ
3.6- Considere a função real de variável real f que a cada t associa ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ
t
a) Defina a função f no Mathematica.
b) Desenhe o gráfico de f no intervalo [ -8p, -8p ].
c) Calcule os limites de f quando t tende para -¶ e +¶.
AULA03.NB
2
d) Determine o valor de f quando t=0.
e) Calcule o limite de f quando t tende para 0 à esquerda e à direita.
f) Calcule f' e desenhe o seu gráfico no intervalo considerado em b).
à Definição de Funções Operando Sobre Listas
3.7- Defina uma função designada por contaprimos que dada uma lista de números quaisquer diga quantos desses são
números primos.
3.8- Defina uma função designada por m01 que dado um natural n devolve uma matriz n x n com o valor 0 na diagonal
principal e 1 fora dela.
3.9- Defina uma função que recebendo um inteiro positivo n devolve, na forma matricial usual, uma matriz quadrada
de dimensão n x n, com 0 na diagonal principal
e nas posições acima dela, e com o respectivo índice de linha nas restantes posições.
3.10- Defina uma função que recebendo um inteiro positivo n devolve, na forma matricial usual, uma matriz quadrada
de dimensão n x n, com 0 na diagonal principal,
1 nas posições acima dela e -1 nas posições abaixo. Ilustre a sua aplicação.
3.11- Defina (usando a função Select) uma função SeparaParesImpares que aplicada a uma lista de inteiros retorna
uma lista contendo duas outras listas,
nomeadamente a sublista da lista argumento formada pelos elementos pares que nela ocorrem, e a sublista dos números
ímpares.
3.12- Defina uma função que aplicada a uma matriz quadrada devolve uma lista com os elementos da diagonal
principal.
3.13- Defina uma função que recebendo uma matriz retorna a lista dos elementos que estão na primeira coluna.
3.14- Defina uma função selNatParLista que dada uma lista retorna a sublista dos inteiros positivos pares. Utilize um
predicado auxiliar NatParQ (que
retorna True sse aplicado a um inteiro positivo par) que deve ser encapsulado. Ilustre a aplicação desta função, determinando, por exemplo,
selNatParLista[ { -2, -1, a, 0, b, 1, 2 } ]. Confirme que NatParQ está encapsulado.
3.15- Defina uma função g que recebendo uma lista w retorna, caso esteja vazia, a lista vazia; caso contrário, retorna
uma lista formada por
uma cópia do primeiro elemento de w, seguida de duas cópias do segundo elemento de w, e assim sucessivamente.
3.16- Suponha que para cada prova de natação organizada por um clube, os tempos realizados pelos vários nadadores
são registados numa lista.
Defina uma função (de nome) melhorTempo que, recebendo duas listas w1 e w2 com os registos dos tempos realizados pelos mesmos nadadores na mesma prova de natação em dois dias consecutivos, retorna uma lista com o menor
tempo realizado por cada nadador nesses dois dias.
Por exemplo,
melhorTempo[{54, 42, 48, 60},{52, 44, 49, 61}] deverá retornar {52, 42, 48, 60}
AULA03.NB
3
melhorTempo[{41, 48, 44},{43, 46, 46}] deverá retornar {41, 46, 44}
Nota: poderá assumir (sem necessidade de testar) que numa invocação melhorTempo[w1,w2] as listas argumento w1 e
w2 têm o mesmo número de elementos,referindo os tempos dos nadadores pela mesma ordem.
3.17- Os serviços administrativos de uma piscina municipal têm um registo dos seus clientes, com a informação do
número de mensalidades em atraso.
Considere que o registo de cada cliente é representado por uma lista da forma
{nome do cliente , número de mensalidades em atraso }
Todos os clientes que têm mensalidades em atraso não poderão continuar a frequentar a piscina (até que regularizem a
situação).
Defina uma função (de nome) podemNadar que, recebendo uma lista w com os registos dos clientes, retorna os nomes
dos clientes que poderão continuar a frequentar a piscina.
Por exemplo, podemNadar[{{António, 0}, {João, 10}, {Maria, 0},{Alberto, 2}}] deverá retornar {António, Maria}
e podemNadar[{}] deverá retornar {}.
Sugestão: Defina um predicado que recebendo um registo de um cliente "diz" se este se refere a um cliente que pode
frequentar a piscina; construa, em seguida, a lista formada pelos registos dos clientes que podem frequentar a piscina s,
isto é, no caso do exemplo, a lista {{António, 0},{Maria, 0}}; e, finalmente, a partir dessa lista construa a lista
formada apenas pelo nome desses clientes.
3.18- Os serviços administrativos de uma piscina municipal têm um registo dos seus clientes, com a informação do
número de mensalidades em atraso.
Considere que o registo de cada cliente é representado por uma lista da forma
{nome do cliente , número de mensalidades em atraso }
Pretende-se definir uma função informacao com dois argumentos, em que o primeiro é uma lista w com os registos dos
clientes e o segundo é o número máximo de mensalidades em atraso que são permitidas para poder continuar a frequentar a piscina.
O resultado de invocar tal função será uma lista formada por registos da forma
{nome do cliente , sim } ( significando {nome do cliente , pode entrar })
{nome do cliente , nao } ( significando {nome do cliente , não pode entrar }
Por exemplo,
informacao[{{António, 0}, {João, 10}, {Maria, 7},{Alberto, 5}} , 5]
deverá retornar
{{António, sim}, {João, não}, {Maria, não},{Alberto, sim}}
e informacao[{},3] deverá retornar {}.
à Definição de Funções Operando Sobre Funções
3.19- Defina uma função declive que recebendo uma função cujo o gráfico é uma recta (não vertical), retorna, como
resultado o declive dessa recta.
3.20- Defina uma função que recebendo uma função cujo o gráfico é uma recta (não vertical e não horizontal), retorna
a função cujo o gráfico é a recta
perpendicular à recta argumento e que passa na origem. Ilustre a sua aplicação.
AULA03.NB
à Animação de Gráficos
3.21- Defina uma função que recebendo uma função f e um valor x, retorna a função cujo gráfico é uma recta tangente
à função no ponto x. Ilustre a sua aplicação.
3.22- Crie uma animação com os gráficos de uma função real de variável real à sua escolha e a função cujo gráfico é a
recta tangente à função escolhida em vários pontos.
4
Download

da 3ª Ficha de Trabalho