Exercice 2 : Spécifier et définir les prédicats estpair? qui testent la parité d'un entier. On pourra utiliser la fonction prédéfinie remainder.
(Remarque : les prédicats prédéfinis even?
et odd? testent respectivement si un nombre est pair ou impair).
Exercice 3 : Spécifier et écrire un prédicat
divisiblepar? qui teste si un nombre est divisible par un autre.
Exercice 4 : Spécifier est écrire un prédicat
bissextile? qui teste si une année est bissextile. (on
pourra utiliser le prédicats divisiblepar? précédemment
défini.
Exercice 5 : Écrire deux versions de la fonction suivante, l'une en utilisant if, l'autre en utilisant cond.
; mention : Reel --> Chaine ; x |-> "TB" si x >= 16 ; "B" si 14<= x < 16 ; "AB" si 12 <= x < 14 ; "Passable" si 10 <= x <12 ; "Recale" si x <10
Exercice 6 : Écrire la fonction suivante :
; queltype : Objet --> Chaine ; o |-> "reel" si o est un reel mais pas entier ; "entier" si o est un entier ; "booleen" si o est un booleen ; "chaine" si o est un chaine ; "autre" dans tous les autres cas
Exercice 7 : Calcul de la date de Pâques.
L'algorithme suivant permet de calculer la date de Pâques en
fonction de l'année ou plus exactement le numero du jour à
partir du 1er mars qui correspond au dimanche de Pâques.
Étant donnée annee un nombre à 4 chiffres représentant l'année, on pose :
a = annee modulo 19 b = annee modulo 4 c = annee modulo 7 d = (19*a + 24) modulo 30 e = (2*b + 4*c + 6*d +5) modulo 7le résultat est alors numjour = 22 + d + e.
a) Écrire une fonction numjour qui prend en argument annee et renvoie le numéro du jour à partir du 1er mars. L'utilisation de variables globales est interdite.
b) Écrire une fonction traduit qui convertit le résultat de la fonction numjour en une chaîne de caractères correspondant à la date de Pâques.
Par exemple, si le numéro du jour renvoyé par numjour est 42 alors la date est "11 avril" (11=42-31).
On utilisera les fonctions prédéfinies manipulant des chaînes de caractères (cf. annexe du cours).
c) Enfin, écrire une fonction paques qui prend en argument
une année ets renvoie la date de Pâques sous forme de chaîne
de caractères.
Exercice 8 : Dans l'exercice précédent le calcul de la date à nécessité de définir 3 fonctions dans l'environnement global or les fonctions numjour et traduit ne sont utilisées que par la fonction paques.
Écrire une nouvelle fonction jourpaques dans laquelle
les fonctions numjour et traduit sont définies
localement.
Exercice 9 : Écrire, en n'utilisant que des variables et des fonctions locales, la fonction suivante qui indique le nombre de solutions réelles d'une équation du second degré à coefficients réels :
; nombre de solutions ax^2+bx+c=0 ; second-degre : Reel, Reel, Reel --> Chaine ; a , b , c |-> "infini" si a=b=c=0 ; "aucune" si a=b=0 et c<>0 ; "une" si a=0 et b<>0 et c<>0 ; "aucune" si delta<0 et a,b et c <>0 ; "double" si delta=0 ; "deux" dans tous les autre cas