Tutoriel pour faire ses TPs d'algorithmique à la maison ou
dans les salles du département informatique

D. Mathieu a créé un petit programme permettant de traduire, puis d'exécuter, l'algorithmique enseignée au département informatique.

Téléchargement et mise en place des prés-requis

Cette partie a pour but de vous montrer comment installer, selon le système d'exploitation que vous utilisez chez vous, le compilateur g++ nécessaire afin d'utiliser le traducteur algorithmique développé. Selon le système d'exploitation, elle inclut de nombreuses captures d'écran afin de vous guider.

Notez qu'au département informatique, vous allez utiliser la distribution GNU / Linux nommée Debian. C'est pourquoi une partie de ce tutoriel lui est consacrée. Si vous n'avez pas encore installé de distribution GNU / Linux, que vous avez un peu peur de faire n'importe quoi, ou que vous souhaitez faire des tests, installez là dans une machine virtuelle (eg. VirtualBox). Vous trouverez ici un petit tutoriel quant à l'utilisation et la configuration de VirtualBox. En revanche, aucune aide ne vous est spécifiée, dans ce tutoriel quant à l'installation et à la configuration de ces distributions.

Mise en garde : lorsque vous téléchargez une image iso d'une distribution GNU / Linux, ne téléchargez que des images compatibles avec l'architecture x86 (ou i386), mais ne téléchargez pas des images 64 bits (type amd64). En effet les divers logiciels proposés ne sont pas (encore) compatibles avec les architectures modernes.

Sous GNU / Linux Debian

Si vous souhaitez installer Debian, c'est ici que ça se passe. Voici un petit tutoriel qui explique comment virtualiser une distribution Debian à l'aide de VirtualBox.

Une fois la distibution GNU/Linux installée, vous devez (encore) installer, et si ce n'est pas déjà fait, le compilateur g++. Pour ce faire, ouvrez un terminal administrateur (cliquez sur Applications en haut à gauche puis sur Accessoires et enfin sur Terminal administrateur).

Fig01

Saisissez ensuite le mot de passe administrateur (que vous avez donné lors de l'installation).

Fig01

Dans la console qui s'ouvre, taper la ligne suivante :

apt-get install g++

Sous GNU / Linux Ubuntu avec Unity comme interface graphique

Si vous souhaitez installer Ubuntu, c'est ici que ça se passe. Voici un petit tutoriel qui explique comment virtualiser une distribution Ubuntu à l'aide de VirtualBox.

Une fois connecté, cliquez sur "Ubuntu Software center".

Fig01

Dans la zone de recherche (en haut à droite), entrez "g++". Sélectionnez le paquet qui vous est proposé, puis cliquez sur "install".

Fig01

On vous demande un mot de passe, saisissez celui de votre utilisateur. Puis cliquez sur "Authenticate".

Fig01

Sous Mac OC-X

Si vous avez un Mac, que vous êtes sous Snow Leopard ou Mountain Lion et que vous n'avez pas déjà installé Xcode, ouvrez l'"App Store". Dans la zone de recherche entrez "Xcode".

Fig01

Sélectionner le premier choix. Cliquez sur "Gratuit" puis sur "Installer l'app".

Fig01

Saisissez votre identifiant sur l'"App Store".

Fig01

Cliquez sur "Installation".

Fig01

Patientez ensuite le temps du téléchargement, vous pouvez voir l'état d'avancement du téléchargement dans le "launchpad" - mais attention, c'est long!. Rendez vous ensuite dans votre dossier "Applications" puis cliquez sur "Install Xcode".

Fig01

Cliquez successivement sur "Install" puis sur "Agree" et enfin entrez votre mot de passe.

Fig01

Si vous êtes encore sous Leopard, insérez son CD d'installation . Dans la fenêtre "finder" qui s'ouvre, allez dans le répertoire "Installations facultatives", puis double-cliquez sur "Xcode.mpkg" afin de lancer l'installation. Cliquez sur "suivant" autant de fois que nécessaire et entrez votre mot de passe lorsqu'il est demandé.

Dans ces deux cas de figure, pour le moment le but est uniquement d'installer g++ (qui est livré avec le paquet XCode). En revanche, vous disposez aussi d'un puissant IDE très apprécié de la communauté Mac.

Sous Windows 7

Afin d'installer g++ sous windows, nous avons deux possibilités :

Malheureusement, la seconde solution ne permet pas d'utiliser de façon assez simple le traducteur algorithmique proposé. Nous allons donc utiliser la première solution : l'installation du logiciel Cygwin. Ce logiciel installe un mini système Unix par dessus votre système windows. Téléchargez le fichier "setup.exe", puis exécutez le.

Fig01

Vu la taille de l'exécutable télécharger, nous allons chercher les fichiers manquants sur Internet.

Fig01

Je vous conseille de ne pas changer le répertoire par défaut d'installation.

Fig01

En fonction de vos réglages internet (la façon avec laquelle vous vous connecter), modifiez l'étape suivante. Normalement, vous ne devriez rien avoir à modifier chez vous.

Fig01

Lors du choix du dépôts, choisissez un dépôt français (ça ira plus vite par la suite).

Fig01

Lors de la première installation l'avertissement suivant apparait. N'ayez pas peur car c'est surement la première fois que vous installez Cygwin.

Fig01

Lorsqu'il faut sélectionner les packages à installer, dans la zone de saisie en haut à gauche, entrer g++, sélectionner le 3° afin d'activer l'installation de g++ 4.5.3-3.

Fig01

Ensuite, une petite fenêtre vous informe qu'il faut installer d'autres paquets (dépendances). Validez la.

Fig01

L'installation dure environ une demi-heure, selon la vitesse de votre connexion à Internet et le miroir choisi.

Et ensuite, comment fait-on?

la partie précédente a pour but de faire installer le compilateur (l'outil) g++ sur un système Unix-Like (même si vous êtes sous windows).
Ensuite, téléchargez un des analyseurs (selon votre système d'exploitation) ainsi que le fichier execalgo.bash :

Renommer le fichier Analyseur_XXX en Analyseur en fonction de votre système d'exploitation.

Pour que l'Analyseur fonctionne, il faut que ces trois fichiers soient dans le même répertoire :

De plus, l'Analyseur ne peut fonctionner que dans une console Unix-Like. Puisque vous n'avez pas encore eu les enseignements concernant ce système d'exploitation, voici un petit rappel de commandes dans une console Unix-Like :

Voici quelques vidéos qui vous explique comment utiliser le traducteur selon votre système d'exploitations. Dans chacune de ces vidéos, je suppose que le nom de l'utilisateur qui a ouvert une session est Alain. Charge à vous d'adapter les exemples selon vos désirs. Les tests sont effectués sur ce fichier, qui ne fait qu'afficher "Bonjour" à l'écran.

Sous GNU / Linux Debian

Sous GNU / Linux Ubuntu avec Unity comme interface graphique

Sous Mac OS-X

Comme illustré dans la vidéo, afin de changer les droits des fichiers de façon graphique sous Mac OS-X, vous pouvez utiliser le logiciel BatChmod.

Sous Windows 7

Afin d'avoir une coloration syntaxique des mots clés du langage algorithmique enseigné, j'ai développé sous windows ce logiciel. Attention, c'est juste une version beta (plus ou moins fonctionnelle).

Il est fortement conseillé de faire au moins quelques-uns des exercices complémentaires des TDs, qui sont assez difficiles, et de les tester avant de regarder les corrigés. Si vous les trouvez trop difficiles, ouvrez les corrigés, comprenez-les, puis refaites-les sans les regarder et testez-les au moyen de ce programme.

J'ai un problème, comment je fais?

Ci dessous une liste de problèmes ainsi que leurs résolutions selon les systèmes d'exploitation.

GNU / Linux (Debian et Ubuntu)

Si vous rencontrez l'erreur suivante :

	./execalgo.bash: ligne 16: ./Analyseur: Aucun fichier ou dossier de ce type
alors que le fichier Analyseur est bien présent sur votre disque, correctement nommé, dispose des bons droits. C'est surement que vous êtes sur une architecture 64 bits et non 32 bits (comme conseillé dans les pré-requis). Pour vérifier cette supposition, tapez dans un terminal la commande :
	uname -mp
Si le résultat est x86_64 c'est sûr que vous avez une architecture 64 bits. Il nous faut installer un méta-paquet afin de pouvoir exécuter du code 32 bits, et tout rentrera dans l'ordre.

Sous Mac OS-X

Si vous avez un problème lors de l'exécution (le terminal vous affiche quelque chose comme "g++ command not found") :

  1. lancez Xcode;
  2. allez dans les préférences (touche pomme + touche ',');
  3. dans l'onglet Téléchargement, installez Command Line Tools comme le montre la figure suivante :

    Fig01

Si vous ne trouvez pas Command Line Tools dans les préférences de Xcode, il faut :
  1. Ouvrir Xcode, puis dans le menu , sélectionnez Open Developer Tool, et enfin sélectionnez More Developer Tools comme le montre la figure suivante :

    Fig01

  2. Normalement, vous allez être rediriger vers le site des développeurs de chez Apple. Si vous n'êtes pas déjà inscrits, faites le;

    Fig01

  3. Dans la barre de recherche, entrez Command Line Tools, puis téléchargez le bon fichier selon votre version d' Mac OS-X;

    Fig01

  4. Pour finir, installez le fichier dmg que vous venez de télécharger.

A l'IUT comment ça se passe?

Les ordinateurs du département informatique sont tous équipés de la distribution GNU / Linux Debian. Du coup, reportez vous aux exemples de ce tutoriel sur cette distribution (g++ est déjà installé).

Cependant, je vous conseille de :

Ce dernier point est optionnel : si vous ne le faite pas, vous risquer de perdre vos données.

Limites du traducteur maison

Puisqu'on a affaire à un traducteur "maison", il y a certaines limitations, mais qui ne sont pas incontournables.
Voici la liste des problèmes connus ainsi que leur résolution :

  1. Déclarations multiple : Malheureusement, on ne peut pas déclarer plusieurs variables lors d'une même déclaration. On est obligé de séparer les déclarations.
    Exemple :
    				declarer i,j : entier_naturel;
    			
    devient :
    				declarer i : entier_naturel;
    				declarer j : entier_naturel;
    			
  2. Notation indicée : Puisque vous devez écrire votre algorithme sur un fichier texte (par exemple à l'aide de Gedit ou de Pluma sous Linux), il n'est pas possible d'utiliser la notation indicée pour accéder à une case d'un tableau. On remplacer cette notation par une notation entre crochet [].
    Par exemple, si Tab est un tableau Tabi devient Tab [i].
  3. fonction et tableau : il n'est pas possible de renvoyer un tableau dans une fonction (alors que c'est tout à fait possible sur le papier). Il faut donc transformer la fonction en procédure et passer le tableau retourné comme paramètre résultat de la procédure.
    Exemple : fonction bidule (liste_de_params) renvoie tableau_de muches; devient procedure bidule (liste_de_params, tableau_de muches out TabUnNom);
  4. Tableau et saisie clavier : on ne peux pas saisir le contenu d'une case d'un tableau avec l'instruction saisir (), on est obligé de passer par une variable intermédiaire.
    Exemple :
    				declarer TabInt : tableau_de 10 entier_naturel;
    				pour (i variant_de 0 a taille (TabInt) - 1)
    				faire
    					saisir (TabInt [i]);
    				ffaire
    			
    devient :
    				declarer TabInt : tableau_de 10 entier_naturel;
    				pour (i variant_de 0 a taille (TabInt) - 1)
    				faire
    					declarer tmp : entier_naturel;
    					saisir (tmp);
    					TabInt [i] <- tmp;
    				ffaire
    			

Remarque

Sous Windows XP, mettez les fichiers téléchargés dans le répertoire "C:\cygwin\home\Administrateur". Ce répertoire est considéré comme votre "home" par Cygwin.

Il est possible que les programmes fonctionnent sous d'autres distributions / architectures, mais je n'ai pas testé. Les seuls tests effectués ont été: