T1.programmation : Sujet du TD1
T1.programmation : Sujet du TD1
Groupe ESIEE, Denis BUREAU, décembre 2001.
Attention !
Le sujet peut être modifié jusqu'à la veille du TD.
1 Les objectifs
Savoir déclarer et utiliser de nouveaux types de données,
notamment les énumérations et les structures.
Savoir les passer en paramètre.
2 Notions vues dans le cours 1
- Notion de nouveau type
- Synonyme d'un type existant
- Énumération
- Structure
- Différence type simple / type structuré
- Syntaxes de déclaration et d'utilisation
- Problèmes d'entrées/sorties
- Sous-programmes et passage de paramètres
3 Références dans le polycopié
"Initiation à la Programmation avec C++":
pages 1 à 60 et 71 à 73.
4 Exercices à faire avant ce TD
10.1 & 10.2 page 73.
5 Nouveau type
Déclarer un nouveau type Naturel, puis l'utiliser dans
la fonction fact (factorielle) et dans un petit programme
principal de test.
6 Énumération
- Déclarer le type JDLS en énumérant les 7 jours de la
semaine et en commençant à la valeur 1 pour lundi.
- Écrire une procedure affichant en clair le jour de la semaine
lorsqu'on lui passe un paramètre de type JDLS.
- Écrire une fonction qui saisit un jour de la semaine sous
la forme d'un caractère et qui retourne le JDLS
correspondant. On choisira l'initiale du jour, avec une majuscule
pour le mercredi.
- Écrire un programme principal de test qui bouclera sur la saisie
et l'affichage d'un jour de la semaine. Il s'arrêtera lorsque
l'utilisateur aura tapé 'f' comme fin.
7 Structure
- Définir en C++ un type Horaire permettant de représenter un
horaire en Heures, Minutes, Secondes.
- Écrire en C++ une procédure AfficherHor qui affiche un horaire
sous la forme HH:MM:SS (8 caractères dans tous les cas).
- Écrire en C++ une procédure SaisirHor qui saisit un horaire
en contrôlant la validité de chacun des 3 entiers et du
format HH:MM:SS . L'affichage d'un message invitant à
saisir un horaire se fera avant l'appel de cette fonction.
Pour éviter les problèmes de saisie, il est conseillé
de lire 8 caractères et de reconstituer les nombres d'heures,
de minutes et de secondes.
- Écrire en C++ une fonction NbsHor qui calcule le nombre total
de secondes que représente l'horaire passé en paramètre.
- Écrire en C++ une fonction EcartHor qui calcule la valeur
absolue de la différence
entre deux horaires et la retourne sous forme d'horaire.
EcartHor utilisera bien évidemment NbsHor.
- Écrire en C++ un programme qui, pour tester tous ces
sous-programmes, saisit deux horaires, puis affiche leur différence.
Exemple : 10:12:09 - 08:46:51 = 01:25:18
8 Complexes (travail personnel)
- Définir en C++ un type Complexe permettant de représenter un
nombre complexe avec ses parties réelle et imaginaire.
- Écrire en C++ une procédure AfficherComp qui affiche un complexe
sous la forme R+Ii ou R-Ii suivant le signe de la
partie imaginaire. De plus, si l'une des deux parties est nulle,
elle ne sera pas affichée. Enfin, si la partie imaginaire vaut
-1 ou 1, seul -i ou +i sera affiché.
- Écrire en C++ une procédure SaisirComp qui saisit un complexe
sous la forme de deux réels sans format particulier
(la partie réelle en premier).
- Écrire en C++ une fonction PlusComp qui additionne deux complexes.
- Écrire en C++ un programme qui, pour tester tous ces
sous-programmes, saisit deux complexes, puis affiche leur somme.
Exemple : -3.5+2.7i + 0.1-1.7i = -3.4+i
- (A faire en travail personnel)
Étendre ce programme pour en faire une calculatrice pour
nombre complexes.
File translated from
TEX
by
TTH,
version 2.75.
On 14 Dec 2001, 17:26.