Vous êtes sur la page 1sur 1

TP Structures de Données 2023-2024

2AP
TP 5 : Pointeurs & Tableaux de structures

NB : Les exercices suivants doivent être traités en utilisant le formalisme pointeurs et


l’allocation dynamique !

Exercice 1 :

On se propose de gérer un ensemble de nombre complexes par un tableau. Sachant qu’un


complexe est caractérisé par 2 nombres réels (la partie réelle et la partie imaginaire) :

1. Déclarer la structure Complexe ?


a. Lire le nombre N de Complexes à manipuler, allouer un tableau t de Complexes de
N éléments, et remplir le tableau t par N Complexes lus au clavier ?
b. Afficher les N Complexes sur écran sous-forme : réelle + i* imaginaire
c. Calculer et afficher la somme de vos complexes sous la forme indiquée dans la
question b ?
d. Calculer et afficher les normes de vos Complexes ?
2. Lire une position et un complexe au clavier et insérer ce complexe dans la bonne position
tout en redimensionnant votre tableau ? Réafficher votre tableau ?
3. Lire une position et supprimer le Complexe de cette position de votre tableau tout en
redimensionnant votre tableau ? Réafficher votre tableau ?
4. Générer un entier aléatoire compris entre 0 et la nouvelle taille de votre tableau. Afficher
l’entier généré sur écran, puis supprimer tous les entiers ayant un indice multiple de votre
entier généré ? Réafficher votre tableau ?
5. Lire un réel x représentant la partie réelle d’un complexe et supprimer tous les complexes
ayant comme partie réelle la valeur de x tout en redimensionnant votre tableau ?

Exercice 2 :

1. Créer une structure Rationnel à deux champs : Num et Den contenant respectivement le
numérateur et le dénominateur d’un nombre Rationnel ?
2. Définir les fonctions suivantes :
a. void AfficherRationnel (Rationnel r); qui affiche le rationnel r sous la forme:
"r.Num/r.Den" ?
b. void SimplifierRationnel (Rationnel r); qui permet de simplifier le rationnel r en
cherchant le PGCD du Num et du Den ?
c. void ComparerRationnel (Rationnel r1, Rationnel r2); qui renvoie -1 si r1 et
plus petit que r2, 0 si r1 est égal à r2 et 1 si r1 est plus grand que r2 ?
d. void SommeRationnel (Rationnel r1, Rationnel r2); qui calcule et affiche la
somme de deux rationnels ?
e. void PlusGrandRationnel(Rationnel tab[], int taille_tab); qui affiche le plus
grand élément contenu dans le tableau tab ?
3. Tester vos fonctions en allouant un tableau de N rationnels dans le main( ) ?

M. AATILA

Vous aimerez peut-être aussi