1. A lista descreve 50 exercícios de programação em Haskell que envolvem operações com listas, números, strings e árvores;
2. Os exercícios incluem funções para soma, mínimo, área de círculo, lógicas AND e OR, fatorial, fibonacci, ordenação, rodagem, compactação e outras operações com estruturas de dados;
3. As questões propõem implementar as funções utilizando recursividade, compreensão de lista e tipos de dados como lista, tupla e árvore.
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0%(1)0% acharam este documento útil (1 voto)
2K visualizações5 páginas
Lista de Exercicios Haskell
1. A lista descreve 50 exercícios de programação em Haskell que envolvem operações com listas, números, strings e árvores;
2. Os exercícios incluem funções para soma, mínimo, área de círculo, lógicas AND e OR, fatorial, fibonacci, ordenação, rodagem, compactação e outras operações com estruturas de dados;
3. As questões propõem implementar as funções utilizando recursividade, compreensão de lista e tipos de dados como lista, tupla e árvore.
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Lista de Exercicios
1. soma: recebe uma dupla de inteiros ¢ retoma a sua soma
Ex.: soma (1,2) ==> 3
2. menorDeDois recebe dois valores inteiros e retoma o menor.
3. menorDeTres recebe trés valores inteiros ¢ retoma o menor.
4, areaCircunf recebe um float representando o raio de uma circunferéncia e retoma
sua area
5. andTres recebe trés booleanos e retomna a operagao AND aplicada aos trés
6. Defina o operador # que concatena duas strings caso elas sejam diferentes. Se forem
iguais retoma uma das duas
7. Primo: recebe um nimero natural ¢ verifica se ele é primo
8. fatorial: recebe um numero natural ¢ retoma o seu fatorial.
9. fibonaceé: recebe um mimero inteiro positive e retomna o n-ésimo elemento da
sequéncia de Fibonacci
10. elemento: recebe uma lista qualquer e um ntimero inteiro positivo para retomar 0 n-
ésimo elemento da lista
Ex.: elemento [3,5,7] |
11. pertence recebe um elemento ¢ uma lista e verifica se o elemento pertence alista
Ex.: pertence 1 [3,7,4,2] => False
12, nroElementos: recebe uma lista qualquer e retorna o mimero de elementos na lista
Obs.: nao usar a fun;ao length
13, maior: recebe uma lista de inteiros e retorna o maior
Obs.: no usar a funggo max
14, contaOcorrencias recebe um elemento e uma lista e retorma o mimero de
ocorréncias do elemento na lista
15. unicaOcorrencia: recebe um elemento ¢ uma lista e verifica se existe uma tinica
ocorréncia do elemento na lista
Ex
unicaOcorrencia 2 [1,2,3,2] => False
unicaOcorrencia 2 [3,1] => False
unicaOcorrencia 2 [2] ==> True
16. maioresQue: recebe um ntimero inteiro ¢ uma lista de inteiros ¢ retoma uma lista
com os mimeros que séo maiores que o fornecido
ExmaioresQue 10 [2,12,4,7,8, 30,15] => [12,30,15]
17, concatena: recebe duas listas quaisquer e retorna uma terceira lista com os
elementos da primeira no inicio e os elementos da segundano fim
concatena [1,2] [3,4] ==> [1,2,3,4]
18, remover: recebe um elemento ¢ uma lista e retoma a lista sem a primeira ocorréncia
do elemento
19. remover Ultimo: recebe uma lista e remove o tltimo elemento da lista
20. removerRepetidos: recebe uma lista qualquer e retoma outra lista sem repetigao de
elementos
Ex
removerRepetidos [7,4,3,5,7,4.4.6,4, 1,2
=> [7,4,3,5.6,1,2]
21. maiores recebe um numero natural n e uma lista de inteiros e retoma uma lista com
os n maiores mimeros sem alterar a ordem entre os elementos
Ex
maiores 4 [9,3,5,7,8,4,4,7] => [9,7,8,7]
22. geraSequencia: recebe um mimero inteiro n positivo e retoma alista[1, -1, 2,
“3,2, -a]
23. inverte recebe uma lista e retoma outra, que contém os mesmos elementos da
primeira, em ordem invertida
24. divide recebe um ntmero natural n e uma lista e retorna um par onde o primeiro
elemento ¢ uma lista com os n primeiros nuimeros da lista original eo segundo elemento
é uma lista com o resto dos elementos da lista original.
Ex.
divide 0 [1,2,3,4] => (, [1.2,3.4))
divide 2 [1.2.3.4] => (1,21, (3.4)
25. intercala: recebe duas listas e retorna outra lista com os elementos das listas
originais intercalados
Ex.
intercala [1,2,3] [8,9] ==> [1,8,2,9,3]
intercala {] [1,2,6] ==> [1,2,6]
26, uniao, recebe duas listas quaisquer que no contenham elementos repetidos ¢
retomna uma nova com todos os elementos das duas listas originais (sem repetigo).
Ex.
uniao [3,6,5,7] [2,9,7,5,1]
> [3,6,5,7,2,9,1]
27. interseccao: recebe duas listas quaisquer sem elementos repetidos e retoma uma
lista com os elementos que so comuns as duas
Ex.interseccao [3,6,5,7] [9.7.5,1,3] => [35,7]
28. sequencia: recebe dois numeros naturais ne m, ¢ retorna uma
lista com n elementos, onde o primeiro é m, o segundo é m+l, ete.
Ex.
sequencia 0 2 ==> (]
sequencia 3 4 ==> [4,5,6]
29. insereOrdenado: recebe uma lista de nimeros em ordem crescente ¢ um numero
qualquer, retora uma lista de mimeros em ordem crescente com os elementos da lista
inicial mais o mimero passado
30. ordenado: recebe uma lista de ntimeros inteiros e verifica se eles estdo ordenados
ou no
31. ordena: recebe uma lista com ntimeros e retomna outra lista com os ntimeros
ordenados
Ex
ordena[7, 3, 5, 7, 8, 4, 4] => [3, 4, 4,5, 7, 7, 8]
32. redarEsquerda: recebe um ntimero natural, uma lista e retora uma nova lista onde
a posica0 dos elementos mudou como se eles tivessem sido "rodados*
Ex.
rodarEsquerda 0 [*
rodarEsquerda | [*
rodarEsquerda 3 [*
rodaresquerda 4 [‘a’,
a
a
al
a
33. redarDireita: recebe um numero natural, uma lista e retoma uma nova lista onde a
posizao dos elementos mudou como se eles tivessem sido "rodados"
Ex.
rodarDireita 0
rodarDireita 1
rodarDireita 3
rodarDireita 4
[ta
[ta
['a
[ra
34, todasMaiusculas: recebe uma string qualquer e retorna outra string onde todas as
letras séo maitisculas. Pode ser util saber os seguintes codigos ASCII: a=97, 2=1
A=65, Z=90, 0=48, 9=57, espago=32
Ex. todasMaiusculas "abe 123" = "ABC 123"
35. primeirasMaiusculas: recebe uma string qualquer e retoma outra string onde
somente as iniciais so maitisculas.
Ex
primeirasMaiusculas "FuLaNo bEITrAnO silva"
> "Fulano Beltrano Silva"
36, seleciona: recebe uma lista qualquer ¢ uma lista de posigdes, retoma uma lista com
os elementos da primeira que estavam nas posigdes indicadas
Ex.
seleciona[‘a’,’b’,
ef] [0.3.2.3] => [2