FinSi
FinSi
FinSi
Si erreur=1 Alors
Ecrire "Date incorrecte"
Sinon
Ecrire "Date correcte"
FinSI
Fin
c. L’heure dans n secondes
Le but de l’algorithme est cette fois de déterminer l’heure qu’il sera dans n secondes. Pour ça, l’utilisateur doit saisir
l’heure actuelle décomposée en heures (sur 24 heures), minutes et secondes. Bien entendu, il faut tenir compte du
changement de jour, d’heure, de minute, sans oublier qu’il y a 60 minutes dans une heure et 60 secondes dans une
minute. Par exemple, en additionnant 147 secondes à 23 heures, 58 minutes et 12 secondes, quelle heure seratil ?
Il sera minuit, 0 minute et 39 secondes le lendemain ! Dans l’algorithme vous utiliserez des valeurs entières. Ainsi le
résultat des divisions sera un entier et non un réel (par exemple 159/60=2,65 mais avec un entier vous récupérerez
seulement 2).
q Dans un premier temps, additionnez les secondes : 147+12=159
q Ensuite, convertissez ces secondes en minutes. Pour cela il suffit de diviser par 60 pour récupérer les
minutes, puis de récupérer le reste de la division entière (le modulo) pour les secondes en trop (159/60
donne 2 minutes avec un reste de 39 secondes. Vous savez maintenant que la fin est de 39 secondes.
q Additionnez les minutes : 58+2= 60. Si le chiffre est supérieur ou égal à 60, procédez comme pour les
secondes. 60/60=1, soit une heure supplémentaire, et un reste de 0 donc 0 minute. Vous savez maintenant
que le milieu est 0 minute.
q Additionnez les heures : 23+1=24 soit minuit. Là encore l’idéal est de compter les jours. Ainsi 24/24=1 (soit
+1 jour), sans reste donc 0 heure : minuit.
Il sera donc minuit et 39 secondes.
PROGRAMME heure
VAR
jours,heures,minutes,secondes,nbsec:entiers
DEBUT
heures←17
minutes←55
secondes←48
Afficher "Combien de secondes en plus ?"
Saisir nbsec
secondes←secondes+nbsec
minutes←minutes+(secondes / 60)
secondes←secondes % 60
heures←heures+(minutes / 60)
minutes←minutes % 60
jours←heures / 24
heures←heures % 24
Afficher jours, heures, minutes, secondes
FIN
L’implémentation en Java ne nécessite pas de commentaires particuliers. L’affichage final est juste un peu plus
agréable.
import java.io.*;
class chap3_heure {
public static void main(String[] args) {
int jours=0,heures, minutes, secondes,nbsec=0;
Le simple estil meilleur ?
- 12 -
© ENI Editions - All rigths reserved - Jonifar lina
58
FinSi
FinSi
Si erreur=1 Alors
Ecrire "Date incorrecte"
Sinon
Ecrire "Date correcte"
FinSI
Fin
c. L’heure dans n secondes
Le but de l’algorithme est cette fois de déterminer l’heure qu’il sera dans n secondes. Pour ça, l’utilisateur doit saisir
l’heure actuelle décomposée en heures (sur 24 heures), minutes et secondes. Bien entendu, il faut tenir compte du
changement de jour, d’heure, de minute, sans oublier qu’il y a 60 minutes dans une heure et 60 secondes dans une
minute. Par exemple, en additionnant 147 secondes à 23 heures, 58 minutes et 12 secondes, quelle heure seratil ?
Il sera minuit, 0 minute et 39 secondes le lendemain ! Dans l’algorithme vous utiliserez des valeurs entières. Ainsi le
résultat des divisions sera un entier et non un réel (par exemple 159/60=2,65 mais avec un entier vous récupérerez
seulement 2).
q Dans un premier temps, additionnez les secondes : 147+12=159
q Ensuite, convertissez ces secondes en minutes. Pour cela il suffit de diviser par 60 pour récupérer les
minutes, puis de récupérer le reste de la division entière (le modulo) pour les secondes en trop (159/60
donne 2 minutes avec un reste de 39 secondes. Vous savez maintenant que la fin est de 39 secondes.
q Additionnez les minutes : 58+2= 60. Si le chiffre est supérieur ou égal à 60, procédez comme pour les
secondes. 60/60=1, soit une heure supplémentaire, et un reste de 0 donc 0 minute. Vous savez maintenant
que le milieu est 0 minute.
q Additionnez les heures : 23+1=24 soit minuit. Là encore l’idéal est de compter les jours. Ainsi 24/24=1 (soit
+1 jour), sans reste donc 0 heure : minuit.
Il sera donc minuit et 39 secondes.
PROGRAMME heure
VAR
jours,heures,minutes,secondes,nbsec:entiers
DEBUT
heures←17
minutes←55
secondes←48
Afficher "Combien de secondes en plus ?"
Saisir nbsec
secondes←secondes+nbsec
minutes←minutes+(secondes / 60)
secondes←secondes % 60
heures←heures+(minutes / 60)
minutes←minutes % 60
jours←heures / 24
heures←heures % 24
Afficher jours, heures, minutes, secondes
FIN
L’implémentation en Java ne nécessite pas de commentaires particuliers. L’affichage final est juste un peu plus
agréable.
import java.io.*;
class chap3_heure {
public static void main(String[] args) {
int jours=0,heures, minutes, secondes,nbsec=0;
Le simple estil meilleur ?
- 12 -
© ENI Editions - All rigths reserved - Jonifar lina
58
