Haskell : Fonctions pour nombres complexes
Exercices Corriges en Haskell : Fonctions pour nombres complexes
On se propose d’écrire des fonctions manipulant des List de NombreComplexe .
1- Donner le code Haskell permettant de créer dans le type approprié, la liste suivante : [2, 1+4i, 5-i, -8i, 9i+2]
2- Ecrire une fonction somme qui additionne tous les nombres complexes d’une liste donnée
3- Utiliser la fonction filter_ pour écrire une fonction imaginairesPurs qui retourne la liste des nombres complexes imaginaires purs d’une liste donnée
4- Ecrire une fonction carres qui élève au carré chacun des nombres complexes d’une liste donnée
5- Ecrire une fonction carreElem qui prend en entrées, une liste donnée et un indice ind puis retourne le carré du nombre complexe d’indice ind.
Correction :
1- Le code Haskell pour créer la liste [2, 1+4i, 5-i, -8i, 9i+2] est le suivant :
import Data.Complex
liste = [2, 1:+4, 5:-1, 0:-8, 0:+9:+2]
2- Voici une fonction Haskell qui additionne tous les nombres complexes d'une liste donnée :
import Data.Complex
somme :: [Complex Double] -> Complex Double
somme [] = 0
somme (x:xs) = x + somme xs
3- Voici une fonction Haskell qui utilise la fonction filter_ pour retourner la liste des nombres complexes imaginaires purs d'une liste donnée :
import Data.Complex
imaginairesPurs :: [Complex Double] -> [Complex Double]
imaginairesPurs xs = filter_ (\x -> realPart x == 0) xs
4- Voici une fonction Haskell qui élève au carré chacun des nombres complexes d'une liste donnée :
import Data.Complex
carres :: [Complex Double] -> [Complex Double]
carres xs = map_ (^2) xs
5- Voici une fonction Haskell qui prend en entrée une liste donnée et un indice ind, puis retourne le carré du nombre complexe d'indice ind :
import Data.Complex
carreElem :: [Complex Double] -> Int -> Complex Double
carreElem xs ind = (xs !! ind) ^ 2
Si vous avez trouvé les exercices corrigés en Haskell de JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !
Contact WhatsApp : +237 658395978 | Réaliser Par Joël_Yk
Ajouter un commentaire