Buscar

Exercícios de Haskell

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Exercícios de Haskell
João Pedro Galvão de Oliveira
1. Escreva a função calcCirc para calcular a área de um círculo de raio r. A área
de um círculo é dada por:
area = π * r2
2. Escreva a função ehPrimo para verificar se um número dado é primo. A
função deve retornar “É primo!” ou “Não é primo!”.
3. Escreva uma função que recebe um valor numérico e devolva o valor 1 se o
valor for maior que zero, -1 se for negativo, 0 se for zero.
4. Escreva uma função que receba três parâmetros de entrada (op, n1 e n2):
● se op for um asterisco (*), n1 será multiplicado por n2;
● se op for uma barra (/), n1 será dividido por n2;
● se op for um menos (-), n1 será subtraído de n2;
● se op for um mais (+), n1 será somado a n2.
Caso op não seja nenhuma das operações acima, deve-se retornar uma
mensagem de erro.
5. A sequência de Fibonacci é dada pela seguinte série:
0 1 1 2 3 5 8 13 …
Em termos matemáticos, a sequência de Fibonacci pode ser definida
através da seguinte relação de recorrência:
F0 = 0
F1 = 1
F2 = 1
Fn = Fn-1 + Fn-2
Construa uma função para retornar o n-ésimo termo da sequência.
Exemplo:
fibonacci 6
> 8
6. Escreva uma função para calcular a média dos elementos de uma lista de
números. Podem-se usar duas funções, uma para obter a quantidade de
elementos e outra para obter a soma dos elementos, e finalmente, calcular a
divisão entre a soma e a quantidade.
7. Defina uma função que dada uma lista de inteiros e um número n, retorne
o total de elementos de valor superior a n.
Exemplo:
retornaSup 5 [3, 2, 5, 6, 9]
> 2
8. Defina uma função que dada uma lista de inteiros e um número n, retorne
outra lista contendo apenas de elementos de valor superior a n.
Exemplo:
retornaListaSup 5 [3, 2, 5, 6, 9]
> [6, 9]
9. Escreva uma função para realizar a união de duas listas. A função deve
receber duas listas (sem elementos repetidos) e retornar uma nova lista com todos
os elementos das listas originais sem repetições.
Exemplo:
uniao [3, 6, 5, 7] [2, 9, 7, 5, 1]
> [3, 6, 5, 7, 2, 9, 1]
10. Escreva uma função que receba duas listas e retorne outra lista com os
elementos das listas originais intercalados.
Exemplo:
intercala [1, 2, 3] [4, 5, 6]
> [1, 4, 2, 5, 3, 6]
11. Escreva uma função que receba uma palavra e retorne True se ela for um
palíndromo ou False caso contrário.
Exemplo:
verificaPalindromo "aba"
> True
12. Construa uma função que realize o fatorial de um valor inteiro passado
como argumento.
Exemplo:
main > fatorial 5
> 120
13. A potenciação é o resultado de multiplicações sucessivas:
2^4 = 2*2*2*2 = 16
Construa uma função que realize o calculo do valor, sendo informados a
base e o expoente.
main> potencia 5 2
> 25
14. Mostre como se faz para concatenar uma lista de listas.
15. Dada uma lista de inteiros, construa uma função que some todos os seus
elementos. Não se utilize da função sum.
Exemplo:
main> soma [1 ,2 ,3 , 4, 5, 6]
> 21
16. Crie uma função que adicione um elemento no final da lista dada como
parâmetro.
Exemplo:
main > ad_fim [1, 2, 3] 0
> [1, 2, 3, 0]
17. Construa uma função que realize a inversão de uma lista.
Exemplo:
main> inverte [1, 2, 3, 4, 5]
> [5, 4, 3, 2, 1]
main> inverte ["maria", "jose", "joao"]
> ["joao", "jose", "maria"]
18. Através de listas de funções pré-definidas, faça uma lista e:
a. Retorne o primeiro elemento da lista;
b. Retorne o corpo da lista;
c. Retorne o último elemento da lista.
19. Através da função pré-definida mostre se o elemento pertence à lista.
20. Elabore uma função chamada “consumo” para calcular o valor da conta de
luz a ser paga para um equipamento, usando a seguinte fórmula:
● consumo (Kwh) = ((potência do aparelho em Watts)x(horas de
funcionamento por mês))/1000;
● valor da conta em (R$) = consumo (Kwh) x valor da tarifa (ex: 0,722173).
21. Suponha que o computador não possua a operação de multiplicação.
Construa a função “multiplica” para calcular o valor da multiplicação de dois
números inteiros, m por n.
22. Elabore a função “fatorial” que recebe um número inteiro n e exibe o fatorial
do número informado.
23. Elabore a função “ordena” que recebe 3 números inteiros e retorna os
mesmos em ordem crescente.
24. Elabore a função “mdc” que recebe dois números inteiros X e Y e calcula o
M.D .C desses números.
25. Elabore a função “mmc” que recebe dois números inteiros X e Y e calcula o
mmc dos números. (Você pode usar a função mdc, feita na questão anterior, para
resolver este problema.)
26. Elabore a função “potencia” que recebe 2 números inteiros X e Y e calcula o
resultado de X elevado a Y.
27. Elabore a função “primos” que recebe um número N e devolve uma lista
com os fatores primos de N.
28. Elabore a função “maior” que recebe uma lista de números inteiros e
retorna o maior número da lista.
29. Elabore a função “ultimo” que recebe uma lista de números inteiros e
retorna o último elemento da lista.
30. Elabore a função “semonum” que recebe uma lista de números inteiros e
um número inteiro e retorna uma lista sem as ocorrências do número informado.
(Ex: 1[1,2,6,5,1,6,5,4] = [2,6,5,6,5,4]).
31. Elabore a função “reverte” que recebe uma lista de números inteiros e
inverte a ordem dos elementos da lista. (Não usar a função “reverse”).
32. Elabore a função “maiormenor” que recebe uma lista de números inteiros e
devolve como resposta o maior e o menor deles. (Ex: [24,12,3] = [24,3]
.
33. Defina a função “produto” que recebe uma lista com números inteiros e
calcula o produto dos números da lista.
34. Elabore uma função chamada “unicorr” que recebe uma lista de números
inteiros e um número inteiro e verifica se existe uma única ocorrência do número
na lista.
(Ex: 2 [2,1,5,3,2] = False).
35. Elabore uma função chamada “uniao” que recebe duas listas de números
inteiros, as listas não devem conter elementos repetidos, e retorna uma lista com
todos os elementos das duas list as originais (sem repetição).
36. Elabore uma função chamada “concatena” que recebe duas listas
quaisquer e retorna uma lista com os elementos da primeira no início e os
elementos da segunda no final.
37. Elabore uma função chamada “palindroma” que recebe uma cadeia de
caracteres (palavra) e verifica se ela é palíndroma ou não. (Ex: “ana” = True)
38. Defina a função “parimpar” que recebe uma lista de números inteiros e
devolve duas novas listas, onde a primeira contém apenas números pares e a
segunda os números ímpares.
39. Defina a função “repetido” que recebe uma lista de números inteiros e
responde se na lista existe algum elemento repetido.

Continue navegando