A. U.
: 2020-2021
TP1 Structures de Données
GI S2
Exercice 1
Ecrire une fonction Permute, avec passage d’arguments par adresse, permettant de permuterdeux entiers
a et b.
Dans le programme principal main() :
- Saisir deux entiers x et y.
- Permuter les valeurs de x et y en utilisant la fonction Permute.
- Ecrire un programme principal pour tester cette fonction.
Exercice 2
Écrire un programme qui répète trois fois les instructions suivantes :
– demander à l’utilisateur la taille d’un tableau d’entiers,
– réserver la place exacte pour ce tableau,
– demander les valeurs successives de ce tableau à l’utilisateur,
– afficher le tableau,
– libérer la mémoire du tableau.
Exercice 3
Soit un tableau d’entiers à deux dimensions de L lignes et C colonnes. Écrire un programme qui Effectue
les actions suivantes:
– réserver la place exacte pour ce tableau,
– lire le tableau,
– afficher le tableau,
– libérer la mémoire allouée pour ce tableau.
Exercice 4
On souhaite écrire une fonction récursive qui calcule le carré d'un entier. Pour trouver un lien
entre carre(n) et carre(n-1), on utilise la formule donnée en énoncé : (n + 1)2 = n2 + 2n + 1. En
changeant n en n−1, la formule se réécrit n2 = (n−1)2+2(n−1)+1 d'où carre(n)=carre(n-1)+2*n-1. Dans le cas
où n est un entier négatif, on utilise le fait que (−n)2 = n2. On se ramène ainsi au cas
où n est un entier positif. Les appels récursifs successifs nous mènent au cas de base : si n = 0,
alors carre(n)=0.
Exercice 5
Onveutécrireunefonc+onrécursivequicalculelasommede1àunen+ern:1+2+3+···+(n−1)+n. On remarque que
si on connaît somme_recursif(n-1), alors pour avoir somme_recursif(n) il suffit d'ajouter n au résultat
précédent. On prend comme conven+on que si n < 1, alors la somme est nulle. Le cas de base est celui
où n vaut 1, et dans ce cas la somme vaut 1.
Y. Ghanou