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

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

  1. Déclarer le type JDLS en énumérant les 7 jours de la semaine et en commençant à la valeur 1 pour lundi.
  2. Écrire une procedure affichant en clair le jour de la semaine lorsqu'on lui passe un paramètre de type JDLS.
  3. É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.
  4. É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

  1. Définir en C++ un type Horaire permettant de représenter un horaire en Heures, Minutes, Secondes.
  2. Écrire en C++ une procédure AfficherHor qui affiche un horaire sous la forme HH:MM:SS (8 caractères dans tous les cas).
  3. É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.
  4. Écrire en C++ une fonction NbsHor qui calcule le nombre total de secondes que représente l'horaire passé en paramètre.
  5. É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.
  6. É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)

  1. Définir en C++ un type Complexe permettant de représenter un nombre complexe avec ses parties réelle et imaginaire.
  2. É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é.
  3. É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).
  4. Écrire en C++ une fonction PlusComp qui additionne deux complexes.
  5. É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
  6. (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.