T1.programmation : Sujet du TD3
T1.programmation : Sujet du TD3
Groupe ESIEE, Denis BUREAU, février 2002.
Attention !
Le sujet peut être modifié jusqu'à la veille du TD.
1 Les objectifs
Savoir déclarer, définir, et utiliser des pointeurs ainsi que des
tableaux mono- ou bi- dimensionnels de taille variable ;
savoir passer ces tableaux en paramètres donnée, mixte, ou résultat ;
connaître la syntaxe C++ mettant en oeuvre ces concepts.
2 Notions abordées dans le cours 3
- Notion de pointeur
- Déclarations de types et de variables
- Opérateurs d'adressage et d'accès à l'objet pointé
- Pointeur nul
- Différence avec le passage par référence
- Passage de paramètres pointeurs
- Allocation dynamique
- Libération de la mémoire
- Équivalence pointeurs « tableaux
- Allocation dynamique de tableaux
- Tableaux dynamiques multi-dimensionnels
3 Références dans le polycopié
- pages 1 à 82
- exercice à étudier avant ce TD : 11.1 p.80
4 Phrases
4.1 Traduire en C++ (sans manipulation de pointeurs)
DEBUT PROGRAMME Phrases
Soit MAX la constante entiere 80.
Soit Chaine le type tableau de MAX caracteres.
PROCEDURE traite( DONNEE Chaine ).
DEBUT PROGRAMME PRINCIPAL
Soient m, m1, et m2 trois Chaine.
Soit n un entier.
AFFICHER "Phrase 1 ? "
Saisir une ligne dans m1.
AFFICHER "Phrase 2 ? "
Saisir une ligne dans m2.
n <--- 1
REPETER 10 FOIS
SI n = 1 ALORS COPIER dans m la Chaine m1
SINON COPIER dans m la Chaine m2
FIN SI
n <--- 3 - n COMMENTAIRE: bascule 1 <---> 2
traite( m )
FIN REPETER
FIN PROGRAMME PRINCIPAL
PROCEDURE traite( DONNEE pm:Chaine )
AFFICHER pm COMMENTAIRE: juste pour tester
FIN PROCEDURE
4.2 Amélioration (avec manipulation de pointeurs)
Transformer le programme C++ obtenu pour qu'il ne recopie plus dans m
la chaine m1 ou m2, mais qu'il se contente de recopier dans le pointeur m
l'adresse de m1 ou de m2.
(écrire à côté du programme précédent les quelques
modifications nécessaires)
5 Tri de réels
- Déclarer un type Tableau "dynamique" de réels
(taille non fixée à la compilation).
- Après avoir écrit les prototypes des trois procédures
ci-dessous, écrire un programme principal qui les appelle
et qui libère la mémoire à la fin.
- Écrire une procédure de saisie du tableau qui saisira la
taille désirée, allouera la mémoire, puis saisira les
valeurs dans le tableau.
- Écrire une procédure de tri du tableau par la méthode dite
du "tri à bulles". Il s'agit de comparer deux valeurs successives
du tableau et de les échanger si elles ne sont pas dans le bon
ordre. Si après un parcours complet du tableau, aucun échange
n'a eu lieu, c'est que le tableau est trié. Sinon, il faut
recommencer un parcours complet.
- Écrire une procédure d'affichage du tableau.
File translated from
TEX
by
TTH,
version 2.75.
On 7 Feb 2002, 09:52.