Programme et exécution

Création d'un programme

L’intérêt d’un programme est son exécution automatique par une machine :

  • Le programmeur crée un programme pour exécuter une tâche particulière.
  • Le programme est ensuite exécuté pour effectuer cette tâche automatiquement.

Création d'un programme

Avant de créer un programme, il faut savoir précisément à quoi il va servir puis comment le réaliser (quel algorithme utiliser). Ensuite, il est conseillé de suivre les étapes suivantes :

  1. simuler les actions à la main de manière à vérifier la correction de la solution ;
  2. enregistrer les actions pour créer le programme correspondant ;
  3. exécuter le programme pour vérifier son bon fonctionnement.

Il est ensuite possible de sauvegarder le programme pour pouvoir le reprendre ensuite.

   Début de l’enregistrement
 Fin de l’enregistrement
   Exécution du bloc

Simuler les actions

L’opération consiste à manipuler les objets d’AlgoTouch pour réaliser l’action désirée.

Dans notre exemple, le but est de permuter les deux valeurs de x et y. D’abord, créons une variable tmp puis exécutons les actions suivantes :

  1. copier le contenu de y dans tmp
  2. copier le contenu de x dans y
  3. copier le contenu de tmp dans x

Les deux valeurs de x et de y ont été permutées

A cette étape, les instructions correspondant aux actions exécutées sont affichées dans la console. Par contre, il est impossible d’exécuter à nouveau les actions. Elles ne sont pas enregistrées.

tmp = y ;
y = x ;
x = tmp ;

Enregistrer les actions

Maintenant que les actions pour exécuter la tâche sont connues, l’étape suivante consiste à les enregistrer :

  • Cliquer sur le bouton “Enregistrer le bloc courant” illustré avec un icône de microphone
  • Effectuer les opérations à enregistrer, en l’occurrence celles effectuées lors de l’étape précédente
  • Cliquer sur le bouton “Arrêter l’enregistrement de la séquence”, icône représentant un panneau stop.
   Débuter l’enregistrement
 Arrêter l’enregistrement

Le code s’est ajouté dans la partie droite de l’écran d’AlgoTouch :

Main
Do
  tmp = y ;
  y = x ;
  x = tmp ;
  // ...
End

Rôle du bloc Do

Main désigne le nom du programme. Il peut être modifié par un nom plus approprié (conseillé !). Les instructions du programme sont placées entre Do et End. Les lignes commençant par // sont des commentaires.

Exécuter la séquence enregistrée

Maintenant que la séquence d’instructions est enregistrée, il est possible de l’exécuter pour vérifier son bon fonctionnement :

  • cliquer sur le bouton “Exécuter le bloc courant”

Il est possible d’exécuter plusieurs fois la séquence. Sur notre exemple, permuter deux fois remet les variables dans l’état initial.

   Exécution du bloc

Exemple de programme classique

Nous allons créer notre premier programme utilisant les notions vues jusqu’à présent. Ce programme est très simple : il calcule la moyenne de 5 notes saisies par l’utilisateur.

Le principe de l’algorithme consiste à lire une note, à ajouter sa valeur à une variable somme, et recommencer 4 fois. Ensuite, il suffit de calculer la moyenne en divisant la somme par 5 puis afficher le résultat. On a donc besoin de 3 variables nommées : note, somme, moy

Variables utilisées

A noter : on utilise une seule variable note pour stocker successivement les différentes notes.

Pour simplifier, compte tenu des connaissances acquises à ce stade, aucune vérification n’est effectuée sur la valeur de chaque note. 

Programme obtenu :

Moyenne
Do
  Write "Moyenne de 5 notes" ' ' ;
  somme = 0 ;
  Read "Note 1:" note ;
  somme = somme + note ;
  Read "Note 2:" note ;
  somme = somme + note ;
  Read "Note 3:" note ;
  somme = somme + note ;
  Read "Note 4:" note ;
  somme = somme + note ;
  Read "Note 5:" note ;
  somme = somme + note ;
  moy = somme / CINQ ;
  Write "Moyenne: " moy ;
   // ...
End

Exercices

Incrémentation d’une variable

Soit une variable entière x. Réaliser un programme qui incrémente la valeur de x de 1 à chaque exécution. Le programme contenant la variable x est disponible sur ce lien : plusUn.
[embedyt] https://www.youtube.com/watch?v=ZlkFoSLj8vY[/embedyt]

Addition de trois variables

Soient xy, z et somme, des variables de type entier . L'objectif du programme est de réaliser l'addition de x, y et z et de stocker le résultat dans la variable somme. Réaliser ce programme avec AlgoTouch et le faire exécuter. Le fichier AlgoTouch contenant les variables est disponible sur ce lien : Somme
[embedyt] https://www.youtube.com/watch?v=Ej00ERTLB50[/embedyt]
L'addition des trois variables x, y et z s'effectue en AlgoTouch en deux étapes :
  1. Sélectionner la variable somme et effectuer l'addition de x et y.
  2. Sélectionner la variable somme et effectuer l'addition de somme avec z.
Le programme est donc :
somme = x + y ;
somme = somme + z ;
A noter qu'avec Algotouch, il n'est pas possible d'additionner plus de deux variables en une seule instruction. Le calcul est décomposé en plusieurs instructions.

Conversion de temps

L'objectif de cet exercice est de convertir en heures, minutes et secondes, une durée exprimée en secondes. La structure de base pour cet exercice est disponible sur ce lien : ConversionTemps Les variables manipulées dans le fichier de base sont :
  • duree : temps initial exprimé en secondes
  • HenS : nombre de secondes dans une heure (constante)
  • MenS : nombre de secondes dans une minute (constante)
  • h : nombre d'heures (à calculer)
  • mn : nombre de minutes (à calculer)
  • s : nombre de secondes restantes (à calculer)
Source AlgoTouch : ConversionTemps
[embedyt]https://youtu.be/jVckEYOPt_4[/embedyt]
L'addition des trois variables x, y et z s'effectue en AlgoTouch en plusieurs étapes :
  • calculer le nombre d'heure :
h = duree / HenS ;
  • Calculer le nombre de secondes restantes :
duree = duree % HenS ;
  • Calculer le nombre de minutes correspondant à cette nouvelle durée :
mn = duree / MenS ;
  • Calculer le nombre de secondes restantes :
s = duree % MenS ;
Le programme est donc :
Define ConversionTemps
Do
   h = duree / HenS ;
   duree = duree % HenS ;
   mn = duree / MenS ;
   s = duree % MenS ;
End
A noter que cette solution modifie le variable duree. Il aurait été possible de conserver cette valeur initiale en utilisant une autre variable.
Défiler vers le haut