pdf - e-book - archive

2.5  Sous-programmes

2.5.1  Procédures

Exercice 1 Carré

Écrire une procédure affichant le carré du nombre passé en paramètre. Utilisez-là pour afficher les carrés des entiers de 1 à 10.

Exercice 2 Volume du parallélépipède

Écrire une procédure affichant le volume du parallélépipède dont les dimensions sont passées en paramètre. Utilisez-là pour afficher le volume d’un parallélépipède dont les dimensions sont saisies par l’utilisateur.

Exercice 3 Plus grande valeur

Écrire une procédure demandant à l’utilisateur de saisir une suite de valeurs se terminant par un nombre négatif, puis lui affichant la plus grande valeur saisie.

2.5.2  Fonctions

Exercice 4 Carré

Écrire une fonction retournant le carré du nombre passé en paramètre. Utilisez-là pour afficher les carrés des entiers de 1 à 10.

Exercice 5 Volume du parallélépipède

Écrire une fonction retournant le volume du parallélépipède dont les dimensions sont passées en paramètre. Utilisez-là pour afficher le volume d’un parallélépipède dont les dimensions sont saisies par l’utilisateur.

Exercice 6 Plus grande valeur

Écrire une fonction demandant à l’utilisateur de saisir une suite de valeurs se terminant par un nombre négatif, puis lui affichant la plus grande valeur saisie.

2.5.3  Analyse combinatoire

Exercice 7 Factorielle

On note n! le nombre 1.2.3.4…(n−1).n. Par exemple, 5! = 1.2.3.4.5 = 120 et on a par convention 0! = 1. Écrivez une fonction factorielle(n : entier) : entier retournant la factorielle du nombre n passé en paramètre.

Exercice 8 Puissance

Écrivez une fonction puissance(b, n : entier) : entier retournant bn, où b est un entier non nul et n un entier positif. N’oubliez pas que b0 = 1.

Exercice 9 Arrangements

On note Anp le nombre (np+1)(np+2)…(n−1)n. Par exemple, A64 = 3.4.5.6 = 360. Écrivez une fonction arrrangements(p, n : entiers) : entier retournant Anp si pn et −1 sinon.

Exercice 10 Combinaisons

On note Cnp le nombre (np+1)(np+2)…(n−1)n/1.2…(p−1).p. Par exemple, C64 = 3.4.5.6/1.2.3.4 = 15. Écrivez une fonction combinaisons(p, n : entiers) : entier retournant Cnp si pn et −1 sinon.

2.5.4  Sous-programmes et tableaux

Exercice 11 Appartenance

Ecrire la fonction contient(T[N], x : entiers) : booléen. contient(T, x) retourne vrai si et seulement si le tableau T contient l’élément x.

Exercice 12 Substitution

Ecrire la procédure remplace(T[N], x, y : entiers). remplace(T, x, y) remplace dans T toutes les occurrences de x par des y.

Corrigé.

Exercice 13 Valeurs distinctes

Ecrire la fonction valeursDistinctes(T[n] : entier): entier. Cette fonction retourne le nombre de valeurs distinctes contenues dans le tableau T, c’est-à-dire le nombre de valeurs contenues dans T une fois tous les doublons supprimés. Par exemple, les valeurs distinctes de [2, 4, 8, 2, 7, 3, 8, 2, 5, 0, 8, 4, 1] sont {2, 4, 8, 7, 3, 5, 0, 1}, le nombre de valeurs distinctes est donc 8.

Corrigé.

Exercice 14 Passage par référence

Ecrire la procédure carres(T[n] : entiers). Cette procédure place dans T les carrés dans n premiers nombres entiers. Vous utiliserez le fait que k2 est la somme des k premiers entiers impairs. Par exemple, 32 = 1 + 3 + 5 = 9, 52 = 1 + 3 + 5 + 7 + 9 = 25, etc.

Exercice 15 Identités remarquables

Ecrire la procédure cubes(T[n] : entiers). Cette procédure place dans T les cubes dans n premiers nombres entiers. Vous utiliserez la procédure carrés et le fait que k3 = (k−1)3 + 3(k−1)2 + 3(k−1) + 1. Par exemple, si k=3, on a 33 = (2)3 + 3(2)2 + 3(2) + 1 = 8 + 12 + 6 + 1 = 27.

Exercice 16 Interclassement

Ecrire la procédure interclasse(S[n], T[p], Q[n + p] : entiers) cette fonction prend deux tableaux triés S et T en paramètre. Elle place dans Q les éléments de S et de T dans l’ordre croissant. Si par exemple, S = [1, 4, 6, 8, 23, 54] et T = [2, 3, 7, 12, 17, 45, 52, 77], alors interclasse place [1, 2, 3, 4, 6, 7, 8, 12, 17, 23, 45, 52, 54, 77] dans Q.