• Aucun résultat trouvé

c a s e carre : printf (&#34

N/A
N/A
Protected

Academic year: 2022

Partager "c a s e carre : printf (&#34"

Copied!
1
0
0

Texte intégral

(1)

Université de Nice-Sophia Antipolis avril 2022

Polytech/Xidian Durée: 1h30

Pointeurs

Travaux Pratiques – Séance no10b

1) Soient le typeformeet la procédureafficherFormesuivants : t y p e d e f enum { carre , rond , triangle } forme ; void afficherForme ( forme f) {

s w i t c h (f) {

c a s e carre : printf (" carré "); break; c a s e rond : printf (" rond "); break; c a s e triangle : printf (" triangle "); break;

d e f a u l t : printf (" forme inconnue ");

} }

Vous testerez les exercices suivants au fur et à mesure.

— Déclarez trois pointeurs,p,qetrsur le typeforme.

— Créez deux objets dynamiques, un carré et un rond, accessibles respectivement par les pointeurspetq.

— Affichez la valeur des objets pointés parpetq.

— Faites pointerrsur l’objet pointé parp, et affichez la valeur de l’objet pointé parr.

— Transformez la valeur de l’objet pointé parpentriangleet affichez la valeur de l’objet pointé parr.

— Détruisez l’objet pointé parp.

— Affichez la valeur de l’objet pointé parr. Expliquez le résultat.

2) Soient les déclarations suivantes : t y p e d e f s t r u c t noeud {

forme f;

s t r u c t noeud * suivant ; } * ListeDeFormes ; ListeDeFormes lf;

— Écrivez dans la fonctionmainles instructions nécessaires pour créer la structure suivante : lf

suivant suivant suivant

— À l’aide de la procédureafficherForme, écrivez une procédureafficherListedeFormesqui affiche la liste des formes. Cette procédure possède un seul paramètre de typeListeDeFormes.

— Affichez le contenu delf.

— Ajoutez en tête delfuncarreet affichez à nouveaulf.

— Supprimez de la liste l’objet dynamique qui contient le triangle et affichez à nouveaulf. 1

3) Écrivez la fonctionlongueurqui renvoie le nombre de formes d’une liste de formes.

/* Rôle : renvoie le nombre de formes de la liste */

i n t longueur ( ListeDeFormes l)

4) Écrivez la fonctionièmequi renvoie la forme à un rang donné d’une liste de formes.

/* Rôle : renvoie la forme de rang r de la liste l */

/* Antécédent : 1 6 r 6 longueur (l) */

forme ieme ( ListeDeFormes l, i n t r)

5) Écrivez la fonctioninsérerqui insère une forme à un rang donné d’une liste de formes.

/* Rôle : insérer dans la liste l la forme f, au rang r */

/* Antécédent : 1 6 r 6 longueur (l) + 1 */

void insérer ( ListeDeFormes *l, i n t r, forme f)

6) Écrivez la fonctionsupprimerqui supprime la forme d’un rang donné d’une liste de formes.

/* Rôle : supprime la forme de rang r de la liste l */

/* Antécédent : 1 6 r 6 longueur (l) */

void supprimer ( ListeDeFormes *l, i n t r)

7) Refaites l’exercice 2 avec les fonctionsinséreretsupprimerque vous venez d’écrire.

2

Références

Documents relatifs

Universit´e de Paris X Nanterre vendredi 13 janvier 2006 Licence MMIA deuxi`eme ann´ee.. enseignant

Cela fait en tout 28 nombres qui comptent chacun

2/ a) montrer que le triangle ADK est rectangle et isocèle. b) déterminer la nature et les éléments caractéristiques de f. Soit I et J les milieux respectifs de [OA] et [OB]. c)

Consigne(s) : Entoure le même mot que le modèle dans chaque liste. CARRE LOSANGE TRIANGLE ROND

[r]

Erire un programme C permettant de saisir au lavier un nombre entier stritement

[r]

[r]