Logo

Table des matières

1 Introduction

Cet exercice a pour objectif de vous montrer comment entrer dans du code existant.

Il vous propose d'enrichir un mini-interprêteur de langage Logo fourni dans Logo.zip (à exploiter selon la procédure cmake de ce document).

Une fois que vous avez tout généré, si vous lancez l'exécution de logo.exe , le terminal vous affiche :

logo file delay
        file: Path of the logo program to run
        delay: Delay to allow the user to see how the turtle moves [s]

Sortie de C:\temp\Logo\out\build\x64-Debug\logo\logo.exe (processus 16132). Code : 1.

Dit autrement, ce programme nécessite deux arguments sur la ligne de commande :

  1. le nom du programme logo à interpréter.
  2. le délai (exprimé en secondes) pour permettre à l'utilisateur de voir la tortue se déplacer.

La section suivante explique comment spécifier ces deux arguments.

2 Lancement d'un programme nécessitant 2 arguments en ligne de commande

Nous souhaitons que logo.exe interprète le programme prog0.logo avec un délai d'une seconde.

2.1 Visual Studio

  • Menu Déboguer > Paramètres de débogage et de lancement pour logo : Visual Studio ouvre un fichier launch.vs.json contenant :
{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "logo.exe (logo\\logo.exe)",
      "name": "logo.exe (logo\\logo.exe)"
    }
  ]
}
  • Remplacez le contenu de ce fichier par :
{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "logo.exe (logo\\logo.exe)",
      "name": "logo prog0.logo",
      "args": ["resources/prog0.logo", 1]
    }
  ]
}
  • Enregistrez le fichier.
  • Dans la 2ème ligne de menu, à droite du triangle vert, cliquez sur la flèche vers le bas à droite de logo.exe (logo\logo.exe): Un menu déroulant s'affiche.
  • Sélectionnez logo prog0.logo et cliquez sur la flèche verte.

2.2 CLion :

  • Menu Run > Edit Configurations
  • Pour votre application logo, spécifiez resources/prog0.logo 1 dans le champ "Program arguments"
  • Lancez l'exécution de votre programme C++

3 Travail à faire

Ce mini-interpréteur logo accepte la définition de procédures (pour le vérifier, exécutez logo sur prog1.logo en mettant le délai à 0 au lieu de 1 si vous voulez que le dessin se fasse plus vite).

Modifiez ce mini-interpréteur logo pour que :

  1. Il accepte le mot-clé REPETE (cf. resources/prog2.logo).
  2. Il génère le graphique dans un fichier au format SVG (Comme il y a du code mal écrit, cela suppose que vous restructuriez le code).

NB : Avant de vous lancer dans ces modifications, il est recommandé :

  1. de faire un diagramme UML des classes de ce mini-interprêteur,
  2. d'exécuter le programme en pas-à-pas avec le débugger pour mieux comprendre son fonctionnement.

Date: 22 mai 2022

Auteur: Michel SIMATIC, Amina GUERMOUCHE et Loïc JOLY

Created: 2022-05-22 dim. 17:50

Validate