Next: Récréation
Up: Les bases
Previous: Mise en uvre du
Écrire un programme comportant :
- 1.
- la déclaration de 3 variables globales entières heures, minutes,
secondes ;
- 2.
- une procédure
print_heure qui imprimera le message :
Il est ... heure(s) ... minute(s) ... seconde(s)
en respectant l'orthographe du singulier et du pluriel ;
- 3.
- une procédure
set_heure qui admettra trois paramètres
de type entiers h, m, s,
dont elle affectera les valeurs respectivement à heures, minutes et secondes ;
- 4.
- une procédure tick qui incrémentera l'heure de une seconde ;
- 5.
- la procédure main sera un jeu d'essai des procédures
précédentes ;
Une solution possible est donnée ci-après.
#include <stdio.h>
int heures, minutes, secondes;
/*****************************************************************************/
/* */
/* print_heure */
/* */
/* But: */
/* Imprime l'heure */
/* */
/* Interface: */
/* Utilise les variables globales heures, minutes, secondes */
/* */
/*****************************************************************************/
void print_heure()
{
printf("Il est %d heure",heures);
if (heures > 1) printf("s");
printf(" %d minute",minutes);
if (minutes > 1) printf("s");
printf(" %d seconde",secondes);
if (secondes > 1) printf("s");
printf("\n");
}
/*****************************************************************************/
/* */
/* set_heure */
/* */
/* But: */
/* Met l'heure à une certaine valeur */
/* */
/* Interface: */
/* h, m, s sont les valeurs à donner à heures, minutes, secondes */
/* */
/*****************************************************************************/
void set_heure(int h, int m, int s)
{
heures = h; minutes = m; secondes = s;
}
/*****************************************************************************/
/* */
/* tick */
/* */
/* But: */
/* Incrémente l'heure de une seconde */
/* */
/* Interface: */
/* Utilise les variables globales heures, minutes, secondes */
/* */
/*****************************************************************************/
void tick()
{
secondes = secondes + 1;
if (secondes >= 60)
{
secondes = 0;
minutes = minutes + 1;
if (minutes >= 60)
{
minutes = 0;
heures = heures + 1;
if (heures >= 24) heures = 0;
}
}
}
/*****************************************************************************/
/* */
/* main */
/* */
/*****************************************************************************/
int main()
{
set_heure(3,32,10);
tick();
print_heure();
set_heure(1,32,59);
tick();
print_heure();
set_heure(3,59,59);
tick();
print_heure();
set_heure(23,59,59);
tick();
print_heure();
}
Bernard Cassagne
1998-12-09