HLIN101 CC Mercredi 1 Octobre 2014 CC - Contrôle continu 1 Dans ce contrôle continu, nous allons évaluer vos connaissances sur les types, les conditionnels, les algorithmes impératifs et récursifs Nom : Prénom : 1. Question 1 On suppose à présent que x et y sont des paramètres de type Nombre et que z est un paramètre de type Booléen. Quel est le type des expressions suivantes ? On suppose définis l’algorithme suivant : Algorithme : max Données : a : Nombre, b : Nombre Résultat : Nombre, qui vaut a si a > b sinon b Le résultat est : Si a >= b alors a sinon b fin algorithme 1. x + y - max (x, y) 2. x < y ou x + y 3. z et (x = y) 4. max(x) + y 5. (z = y) et (x < y) 6. max(x, y) = max(y, z) 7. (x + y) quo max(x, y) 8. si max(z) alors true sinon (x + y) Solution: 1. 2. 3. 4. 5. 6. 7. 8. 2. Question 2 Écrire un algorithme qui résout automatiquement les équations du type ax + b = c, où a, b et c sont trois nombres réels donnés, et x est l’inconnue réelle. Si il existe un cas d’erreur, l’algorithme retourne 0. HLIN101 CC - Contrôle continu 1, Page 2 sur 3 Mercredi 1 Octobre 2014 Nom : Prénom : Solution: 3. Question 3 Écrire un algorithme qui, à partir de trois longueurs a, b et c, détermine si le triangle correspondant est rectangle. Solution: 4. Question 4 On se propose d’écrire un algorithme récursif qui calcul la factorielle d’un nombre entier n. Pour rappel, la factorielle de n noté n! vaut n! = 1 ∗ 2 ∗ ... ∗ n pour n entier positif. De plus, 0! = 1. Solution: HLIN101 CC - Contrôle continu 1, Page 3 sur 3 Mercredi 1 Octobre 2014 Nom : Prénom : 5. Question 5 On se propose d’écrire un algorithme récursif qui calcul le PGCD de deux entiers naturels strictement positifs a et b. Pour rappel, le plus grand commun diviseur, abrégé en général PGCD, de deux nombres entiers naturels non nuls est le plus grand entier qui divise simultanément ces deux entiers. Par exemple le PGCD de 20 et 30 est 10. En effet, leurs diviseurs communs sont 1, 2, 5 et 10. Indice : vous pouvez utiliser la méthode soustractive. Supposons que a soit plus grand que b, on a le PGCD de a et b qui est égal au PGCD de a − b et b. Solution: