Université Grenoble Alpes U.F.R. Sciences de l’Homme et de la Société Master IC2A DCISS Algorithmique T.D. n° 4 Exercice 1 : Horloge a) Ecrire un algorithme qui lit une heure fournie sous la forme de trois nombres : heure, minute, seconde, et qui affiche l’heure à la seconde suivante. On définira un type nommé pour représenter les heures, un autre pour représenter les minutes et un troisième pour représenter les secondes. Exemple : donnée : 12, 19, 59 résultat : 12, 20, 0 b) Définir le type structuré horaire formé de trois champs représentant les heures, les minutes et les secondes. c) Transformer l’algorithme en une fonction qui calcule un horaire à la seconde suivante : HoraireSuivant : fonction (X : horaire) —→ horaire // HoraireSuivant(X) désigne l’horaire correspondant à X + une seconde Exercice 2 : Distance Spécifier et réaliser une fonction qui calcule la distance entre deux points du plan. On définira auparavant un type permettant de représenter un point. Exercice 3 : Comparaison et calcul de dates a) Ecrire la fonction avant qui détermine si une date est antérieure à une autre : fonction avant (d1, d2 : Date) → booléen // avant(d1, d2) renvoie vrai si la date d1 est strictement antérieure à la date d2 Exemples : avant(< 31, 10, 2015 >, < 2, 11, 2015 >) renvoie vrai avant(< 19, 10, 2015 >, < 10, 11, 2014 >) renvoie faux b) Ecrire la fonction veille qui calcule la date qui a précède la date donnée en argument : fonction veille (d : Date) → Date // veille(d) renvoie la date correspondant à la veille de la date d Exemples : veille(< 19, 10, 2015 >) renvoie la date < 18, 10, 2015 > veille(< 1, 1, 2015 >) renvoie la date < 31, 12, 2014 > veille(< 1, 3, 2000 >) renvoie la date < 29, 2, 2000 > Pour écrire cette fonction, on dispose de la fonction estBissextile étudiée en TD, il n’est pas nécessaire de la réécrire c) Ecrire un algorithme principal qui saisit deux dates, détermine la plus ancienne, puis calcule et affiche la date correspondant à la veille de la date la plus ancienne, au format jour/mois/année. Exemple : dates saisies : < 1, 3, 2014 > < 1, 1, 2015 > date affichée : 28/2/2014 09-2016 J.M. Adam Exercice 4 a) Écrire un algorithme qui lit un nombre x puis un entier n, puis calcule et affiche la puissance nième de x : xn. b) Réaliser la fonction Puissance qui calcule la puissance nième de x : xn. Exercice 5 : Somme de puissances de 2 Ecrire un algorithme qui lit un entier positif N et qui affiche la somme des N+1 premières puissances de 2. Exemple : 09-2016 donnée : 5 résultat : 63 { 1 + 2 + 4 + 8 + 16 + 32 } J.M. Adam