Quando lidamos com listas em funções recursivas a condição limite é quase sempre a lista vazia.
Resposta:
Verdadeiro Correcto Falso Incorrecto
Correcto
Pontuação para esta pergunta: 1/1.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar Verdadeiro 13:49:05 em 15/12/11 1 1
1 Avaliar Verdadeiro 13:49:05 em 15/12/11 1 1
Question 8
Pontuações: 1/1
A escrita de funções recursivas torna, geralmente, mais legível e elegante o código-fonte.
Resposta:
Verdadeiro Correcto Falso Incorrecto
Correcto
Pontuação para esta pergunta: 1/1.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar 13:49:15 em 15/12/11 0 0
2 Avaliar Verdadeiro 13:49:16 em 15/12/11 1 1
2 Avaliar Verdadeiro 13:49:16 em 15/12/11 1 1
Question 9
Pontuações: 4/4
Escreva uma função chamada factorial que calcule o factorial de um número inteiro n, sabendo que:
Exemplo:
Resposta:
Correcto
Correcto
Pontuação para esta pergunta: 4/4.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar factorial 0 = 1 factorial n = n * factorial (n - 1) 13:54:24 em 15/12/11 4 4
1 Avaliar factorial 0 = 1 factorial n = n * factorial (n - 1) 13:54:24 em 15/12/11 4 4
Question 10
Pontuações: 4/4
Escreva uma função chamada somatorio que calcule o somatório de todos os números inteiros de uma lista entre i e n. Não pode usar a função sum.
Exemplo:
Corresponde a: somatorio [1..100]
Cujo resultado é: 5050
Resposta:
Correcto
Correcto
Pontuação para esta pergunta: 4/4.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar somatorio i n |i == n = n |otherwise = i + somatorio ((i-1) n) 14:06:26 em 15/12/11 0.2 0.2
2 Avaliar somatorio i n |i == n = n |otherwise = i + somatorio ((i+1) n) 14:06:43 em 15/12/11 0.2 0.2
3 Avaliar somatorio i n |i == n = n |otherwise = i + somatorio ((i + 1) n) 14:06:58 em 15/12/11 0.2 0.2
4 Avaliar somatorio [i..n] |i == n = n |otherwise = i + somatorio ((i + 1) n) 14:08:22 em 15/12/11 0.2 0.2
5 Avaliar somatorio [i..n] |i == n = n |otherwise = i + somatorio (i + 1) n 14:09:04 em 15/12/11 0.2 0.2
6 Avaliar somatorio [] = 0 somatorio [i..n] = i + somatorio (i + 1) n 14:12:42 em 15/12/11 0.2 0.2
7 Avaliar somatorio [] = 0 somatorio [i..n] = i + somatorio [(i + 1)..n] 14:15:22 em 15/12/11 0.2 0.2
8 Avaliar somatorio [] = 0 somatorio i n = i + somatorio (i + 1) n 14:30:17 em 15/12/11 0.2 0.2
9 Avaliar somatorio [] = 0 somatorio i n = i + somatorio i (n + 1) 14:30:43 em 15/12/11 0.2 0.2
10 Avaliar somatorio [] = 0 somatorio (i:n) = i + somatorio n 14:31:37 em 15/12/11 0 0.2
11 Avaliar somatorio [] = 0 somatorio (i:n) = i + somatorio n 14:37:11 em 15/12/11 0.2 0.2
12 Avaliar somatorio [] = 0 somatorio (i:n) = i + somatorio n 14:37:17 em 15/12/11 0 0.2
13 Avaliar somatorio [] = 0 somatorio (i:n) = i + somatorio n 14:39:20 em 15/12/11 4 4
13 Avaliar somatorio [] = 0 somatorio (i:n) = i + somatorio n 14:39:20 em 15/12/11 4 4
Question 11
Pontuações: 5/5
Escreva uma função chamada fib que calcule o número de Fibonacci de um número inteiro n, sabendo que:
Para: fib 20
O resultado é: 6765
Resposta:
Correcto
Correcto
Pontuação para esta pergunta: 5/5.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) 14:18:39 em 15/12/11 5 5
1 Avaliar fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) 14:18:39 em 15/12/11 5 5
Question 12
Pontuações: 1/1
O que acontece quando invoca a função criada na questão anterior com um valor como 30? Não estamos interessados no valor resultante mas na forma como este é calculado.
fib 30
Resposta:
Correcto
Correcto
Pontuação para esta pergunta: 1/1.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar Quando invocamos a função com o valor 30, este, vai demorar algum tempo a ... 14:21:28 em 15/12/11 1 1
1 Avaliar Quando invocamos a função com o valor 30, este, vai demorar algum tempo a ... 14:21:28 em 15/12/11 1 1
Question 13
Pontuações: 1/1
O uso de funções recursivas pode provocar perda de desempenho? Dica: a resposta talvez não se encontre no tutorial.
Resposta:
Verdadeiro Correcto Falso Incorrecto
Correcto
Pontuação para esta pergunta: 1/1.
Histórico de respostas:
# Acção Resposta Hora Classificação Nota
1 Avaliar Verdadeiro 14:21:40 em 15/12/11 1 1
1 Avaliar Verdadeiro 14:21:40 em 15/12/11 1 1
Question 14
Pontuações: 0.5/2
Justifique a sua resposta à questão anterior.
Resposta:
Podemos verificar alguma perda de desempenho pois como pudemos verificar na função anterior, à medida que o valor com que é invocado na funcao aumenta, também aumenta significativamente o tempo de calculo do valor resultante.