Baixe o app para aproveitar ainda mais
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.
Compartilhar