Programmation impérative : TP 2
Fonctions et boucles simples
Toutes les fonctions doivent être testées dans main.
- 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.
- Écrire une fonction 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 fonction 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 fonction 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
Hint.— Vous pourrez avoir besoin du format "%4d" dans vos appels
à printf.
- Proposer une fonction qui retourne le pgdc 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 fonction.
- Proposer une version de la fonction puiss qui prend
cette fois trois paramètres, le troisième représentant le résultat.
Enregistrements
Un rationnel p/q peut être représenté
à l'aide d'un enregistrement.
- Proposer un type pour les rationnels.
- Écrire une fonction réalisant l'addition de deux
rationnels (sans chercher à réduire la fraction
obtenue).
- Écrire une fonction réalisant l'addition de deux
rationnels (en réduisant la fraction
obtenue).
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.