0% ont trouvé ce document utile (0 vote)
21 vues2 pages

TD&TP1 In122

Ce document présente une fiche de travaux pratiques en Haskell pour un cours d'introduction à la programmation fonctionnelle. Il contient plusieurs exercices, notamment sur le calcul du PGCD et du PPCM, la manipulation de nombres, la résolution d'équations de second degré, et la gestion des jours de la semaine. Chaque exercice demande la création de fonctions spécifiques pour résoudre des problèmes mathématiques et logiques.

Transféré par

sendazacharie9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues2 pages

TD&TP1 In122

Ce document présente une fiche de travaux pratiques en Haskell pour un cours d'introduction à la programmation fonctionnelle. Il contient plusieurs exercices, notamment sur le calcul du PGCD et du PPCM, la manipulation de nombres, la résolution d'équations de second degré, et la gestion des jours de la semaine. Chaque exercice demande la création de fonctions spécifiques pour résoudre des problèmes mathématiques et logiques.

Transféré par

sendazacharie9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INF112 : Introduction à la programmation

fonctionnelle
Fiche de TP (N°1)

Exercice 1 :

1 Écrire une fonction en Haskell permettant de déterminer le PGCD de 2 entiers positifs pris
en paramètre.
𝑎 𝑜𝑢 𝑏 𝑠𝑖 𝑎 = 𝑏
𝑝𝑔𝑐𝑑(𝑎, 𝑏) = ,𝑝𝑔𝑐𝑑(𝑎 − 𝑏, 𝑏) 𝑜𝑢 𝑏 𝑠𝑖 𝑎 > 𝑏
𝑝𝑔𝑐𝑑(𝑎, 𝑏 − 𝑎) 𝑜𝑢 𝑏 𝑠𝑖 𝑎 < 𝑏

2 Ecrire une fonction en Haskell permettant de déterminer le PPCM de 2 entiers positifs pris
en paramètre.

3 Écrire une fonction qui calcule la somme des n premiers entiers impairs positifs.

4 Écrire une fonction qui calcule le reste et le quotient de la division entière de deux
entiers.

5 Écrire deux fonctions myMin et myMax qui prennent chacune deux arguments et
renvoient respectivement le minimum et le maximum des deux arguments.

6 À partir de ces fonctions, codez une fonction qui donne le minimum ou le maximum de 4
nombres.

7 En utilisant myMin et myMax, codez une fonction bornerDans qui prend trois
arguments et renvoie le troisième argument s’il est dans l’intervalle formé par les deux
premiers, ou renvoie la borne de l’intervalle la plus proche. Exemples :

bornerDans 5 7 6 = 6 -- dans l'intervalle

bornerDans 5 7 4 = 5 -- trop petit

bornerDans 5 7 9 = 7 -- trop grand

8 Écrivez la fonction sommeChiffres qui calcule la somme des chiffres décimaux d’un entier
naturel n. (Par exemple, pour n = 124 le résultat doit être 1 + 2 + 4 = 7.)

9 Écrire une fonction en Haskell permettant de déterminer si un entier positif pris en paramètre
est premier ou non.

10 Écrivez une fonction qui, étant donné deux points A et B, calcule la distance [AB].

11 Écrivez une fonction qui permet de résoudre la suite suivante :


𝒖6 = −2
4
𝒖𝒏 = 3 + 4 ∗ 𝒖𝒏=>

12 Écrivez les fonctions qui effectuent les sommes suivantes :

> (=>)EFG >


∑@AB6 𝑖 , ∑@AB6 𝑖C , ∑@DB>
D
, ∑@DB>
D
et ∑@DB>
DH

Exercice 2 :

Une équation de second est défini par : aX + bX2 + C. Ou a,b,c sont des coefficient réels. Le but
de cet exercice est de résoudre ce style d’équation.

1- En sachant que les solutions d’une telle équation peuvent être soit un singleton (cas ou delta
est égal à zéro) ou soit un couple (cas ou delta est supérieur à zéro) ; créer un type de donné
nommé Resultat ou le constructeur est soit un singleton soit un couple.

2 – En faisant usage du type Resultat donné la signature de la fonction snddegres

3 – Écrire la fonction complète snddegres qui permet de résoudre une équation de degrés deux

Exercice 3 :

On souhaite écrire un ensemble de fonction qui manipule les jours de la semaine.

1 – créer le type Jours

2 – Écrire une fonction qui prend un jour et dit si c’est le week-end ou un jour de travail.

3 - Écrire une fonction qui pour un jour de la semaine renvoi le numéro correspondant

Exemple : lundi a pour numéro correspondant 1

Dimanche = 7

Exercice 4 :

Soit la signature suivante

exo :: (Integer, Integer) → (Integer, Integer) → Integer

on souhaite récrire la même signature mais en utilisant la syntaxe suivante

exo :: Couple → Couple → Integer

1- écrire la ligne de code nécessaire pour ce renommage.

2 - En utilisant donc la nouvelle signature écrire la fonction qui calcule le produit scalaire de
deux vecteurs. (a, b) (c, d) = (a*c) + (b*d)

Vous aimerez peut-être aussi