Affichage chronomètre

Parent Previous Next


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.



  1. Sur AI2 ouvrez votre programme précédent PodometreVmoy_"vos deux noms et classe" et enregistrez-le sous :

PodometreVmoy_hms_"vos deux noms et classe"


  1. Renommer le label unités_temps en valeur_temps_hms et modifiez ses propriétés



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.



  1. Suivez pas à pas les instructions suivantes et faire de même sur AI2



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)



  1. En suivant la procédure ci-dessus modifier votre programme pour le chronomètre affiche les heures


  1. Modifier la fonction du bouton Reset pour que le compteur se mette à "0" quand le bouton Reset est appuyé longuement


  1. Sauvegardez votre programme et télécharger-le sur votre smartphone


  1. Testez le fonctionnement et modifier le programme si nécessaire en cas de dysfonctionnement






Créé avec HelpNDoc Personal Edition: Créer des documents d'aide PDF facilement