Haskell : Résolution de problèmes mathématiques

Exercices Corriges en Haskell :  Résolution de problèmes mathématiques en Haskell : Comparaison, Distance et Longueur de Segment"

Donnez la réponse en Haskell pour les exercices ci-dessous.

1. Écrivez une fonction qui, étant donné quatre nombres, retourne vrai si tous les nombres sont égaux et faux sinon.

2. Écrivez une fonction qui, étant donné quatre nombres, retourne le plus grand des quatre.

3. Écrivez une fonction qui, étant donné quatre nombres, retourne le plus éloigné des quatre. (La distance entre deux nombres est la valeur absolue de leur différence. La distance entre un nombre x et un ensemble de nombres est la somme des distances entre x et chacun des nombres de l’ensemble.)

4. Écrivez une fonction qui, étant donné deux points A et B du plan, calcule la longueur du segment [AB].

5. Écrivez une fonction qui détermine s’il est possible de créer une chaîne avec deux dominos donnés.

6. Écrivez une fonction qui détermine s’il est possible de créer une chaîne avec trois dominos donnés.

7. Écrivez une fonction qui, étant donné une somme s en centimes d’euros et des nombres de pièces a, b, c et d, respectivement de 2, 1, 0,5 et 0,10 euros, retourne vrai si l’on peut payer exactement la somme en utilisant une partie ou la totalité des pièces et faux sinon.

 

Haskell pandacodeur

Correction :

1) Voici la fonction en Haskell pour déterminer si tous les nombres sont égaux :

tousEgaux :: Eq a => a -> a -> a -> a -> Bool
tousEgaux a b c d = a == b && b == c && c == d

Cette fonction utilise la contrainte de classe Eq pour comparer les valeurs. Elle prend quatre arguments a, b, c, et d et renvoie un booléen qui indique si les quatre valeurs sont égales.

2) Voici la fonction en Haskell pour trouver le plus grand des quatre nombres :

plusGrand :: Ord a => a -> a -> a -> a -> a
plusGrand a b c d = maximum [a,b,c,d]

Cette fonction utilise la contrainte de classe Ord pour déterminer l'ordre des valeurs. Elle prend quatre arguments a, b, c, et d et renvoie la valeur maximale parmi les quatre.

3) Voici la fonction en Haskell pour trouver le nombre le plus éloigné :

plusEloigne :: (Ord a, Num a) => a -> a -> a -> a -> a
plusEloigne a b c d = maximum [(abs(a-b) + abs(c-d)), (abs(a-c) + abs(b-d)), (abs(a-d) + abs(b-c))]

Cette fonction utilise la contrainte de classe Ord pour déterminer l'ordre des valeurs et la fonction abs pour calculer la valeur absolue d'un nombre. Elle prend quatre arguments a, b, c, et d et renvoie la somme des distances entre a et b, c et d, a et c, b et d, a et d, b et c, puis renvoie la valeur maximale parmi les trois distances calculées.

4) Voici la fonction en Haskell pour calculer la longueur du segment entre deux points A et B :

distance :: Floating a => (a, a) -> (a, a) -> a
distance (x1,y1) (x2,y2) = sqrt ((x2-x1)^2 + (y2-y1)^2)

Cette fonction utilise la contrainte de classe Floating pour effectuer le calcul de la racine carrée. Elle prend deux arguments (x1,y1) et (x2,y2) qui représentent les coordonnées des deux points A et B et renvoie la distance entre ces deux points. La formule utilisée pour le calcul est la formule de la distance euclidienne entre deux points dans le plan.

Si vous avez trouvé les exercices corrigés en Haskell de Mr 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

  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam