En testant cette appli on s'aperçoit vite que le compteur de temps en seconde n'est pas adapté pour évaluer la durée totale de sa course. Par exemple si vous dites à votre collègue : "Aujourd'hui j'ai couru pendant 3260 secondes" il aura des difficultés (et vous aussi) à savoir si c 'est beaucoup, ou peu.
On souhaite donc rajouter une fonctionnalité : Mettre un compteur de temps qui affiche la durée de la course en heures, minutes et secondes.
PodometreVmoy_hms_"vos deux noms et classe"
Le fonctionnement des applications informatiques repose bien souvent sur des choix. Un choix est conditionné par la question IF (si). La réponse conduit vers THEN (alors) ou ELSE (sinon)...
Pour résoudre le problème qui nous est posé (affichage h:min:sec), nous allons récupérer le décompte du temps en secondes et nous poser la question suivante :
Le temps est il égal à 60s ? Si oui, mettre le nombre de secondes à zéro et ajouter 1 au nombre de minutes, puis continuer à compter les secondes. Sinon, continuer à ajouter des secondes sans rien faire d'autre.
Nous poserons la même question pour le nombre de minutes:
Le nombre de minutes est il égal à 60 ? Si oui, mettre le nombre de minutes à zéro, mettre le nombre de secondes à zéro. Sinon continuer à compter les secondes.
On voit ici la nécessité de travailler avec plusieurs variables, une pour les secondes, une pour les minutes et une pour les heures.
DEFINITION DES VARIABLES DE TEMPS
On commence par modifier le nom de la variable globale Temps en la nommant sec
Puis on crée deux blocs d'initialisation pour deux nouvelles variables globales min et heure
BOUCLES IF THEN ELSE
Nous allons intervenir sur le bloc QUAND chrono CHRONOMETRE FAIRE :
En l'état actuel, quand chrono est actif, on se contente de faire deux actions :
Donner à la valeur globale sec la valeur sec+1 (soit sec = sec+1)
Afficher la valeur de sec dans Label_Temps
Nous allons maintenant introduire la boucle IF THEN ELSE suivante :
IF sec=60 THEN sec=0 AND min=min+1 ELSE sec=sec+1
SI on a compté 60s, ALORS mettre sec à zéro et ajouter 1 à min, SINON continuer à compter les secondes
Ce qui donne sur App Inventor :
AFFICHAGE MIN : SEC
Il reste à adapter l'affichage qui ne donne pour l'instant que les secondes.
On va afficher un enchaînement de textes : la valeur de min suivie de la valeur de sec séparées par deux points ":"
La fonction Texte / Joint va nous permettre cet enchaînement.
Noter que le petit engrenage bleu dans le bloc Joint permet d'ajouter des lignes à ton bloc de textes joints.
AFFICHAGE DES HEURES
On règle les mêmes problèmes que pour l'affichage des minutes. Il faut simplement penser à mettre à zéro les secondes ET les minutes quand min=60.
On insère un bloc IF THEN ELSE qui agit quand min=60
On ajoute deux lignes à l'affichage du temps (bloc Texte / Joint)
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide PDF facilement