Programmation impérative : TP 2
Fonctions, procédures et boucles simples
Toutes les fonctions et procédures doivent être testées dans main.
On rappelle que toutes les fonctions et procédures devront être commentées
(@requires, @assigns, @ensures au minimum).
- Proposer une fonction qui retourne le plus grand de ses deux
paramètres de type int.
- Proposer une fonction qui retourne 1 si son paramètre est pair et
0 sinon.
- Proposer une fonction int puiss(int, int) qui retourne
la valeur de son premier argument à la puissance de son deuxième
argument. (Utiliser une boucle.)
- Écrire une procédure dont l'effet est d'afficher un triangle
d'étoiles sur un nombre de lignes passé en paramètre. Exemple pour 4
lignes :
*
**
***
****
- Écrire une procédure dont l'effet est d'afficher un triangle
d'étoiles sur un nombre de lignes passé en paramètre. Exemple pour 4
lignes :
****
***
**
*
- Écrire une procédure dont l'effet est d'afficher la table de
multiplication des entiers de 1 à 10 sous la forme d'une matrice
telle que :
I 1 2 3 4 5 6 7 8 9 10
------------------------------------------------------------------
1 I 1 2 3 4 5 6 7 8 9 10
2 I 2 4 6 8 10 12 14 16 18 20
3 I 3 6 9 12 15 18 21 24 27 30
4 I 4 8 12 16 20 24 28 32 36 40
5 I 5 10 15 20 25 30 35 40 45 50
6 I 6 12 18 24 30 36 42 48 54 60
7 I 7 14 21 28 35 42 49 56 63 70
8 I 8 16 24 32 40 48 56 64 72 80
9 I 9 18 27 36 45 54 63 72 81 90
10 I 10 20 30 40 50 60 70 80 90 100
Indication — Vous pourrez avoir besoin du format "%4d" dans vos appels
à printf.
- Proposer une fonction qui retourne le pgcd de ses deux
paramètres. Question subsidiaire : afficher également le nombre
d'itérations.
- Reprendre l'exercice de permutation de variables du TP 1 en le
faisant cette fois-ci à l'aide d'une procédure.
- Proposer une version de la fonction puiss qui prend
cette fois trois paramètres, le troisième permettant de retourner le résultat.
- Proposer une procédure qui prend quatre paramètres, le troisième
et le quatrième étant utilisés pour retourner le pgcd et le ppcm des
deux premiers.
Fonctions récursives
Étude du calcul d'une puissance
- Proposer une fonction, qui étant donnés deux entiers
x et p (p > 0), retourne l'entier
xp en utilisant l'équation
-
∀ x, x0 = 1
-
∀ x, ∀ p > 0, xp =
x × x(p-1)
- Tester cette fonction sur différentes valeurs de
x et p, dont au moins une grande valeur pour
p (p > 300000).
- Proposer une fonction, qui étant donnés deux entiers
x et p, retourne l'entier xp
en utilisant l'équation
-
∀ x, x0 = 1
-
∀ x, ∀ p > 0, p pair,
xp = (x(p/2))2
-
∀ x, ∀ p > 0, p impair,
xp =
x × (x((p-1)/2))2
- Tester cette fonction sur les mêmes valeurs que
précédemment.