Choisissez votre style : colorisé, impression

Série 2  (Niveau 0):
Premiers pas en programmation

Une variante de cet exercice est disponible dans l'exercice pas à pas (page 8) de l'ouvrage C++ par la pratique
L'utlisation d'Emacs pour l'édition de programmes est décrite dans l'annexe A (page 389) de ce même livre.
Les mini-références des éditeurs du cours sont disponibles ici : pour Emacs et pour Geany.

Exercice 0 : mon premier programme

Les codes sources des programmes C++ sont, à l'instar de la plupart des langages de programmation, de simples fichiers texte. N'importe quel éditeur de textes permet donc d'écrire un programme en C++. Nous vous proposons d'utiliser votre éditeur favori (par exemple emacs, geany ou gedit), déjà utilisé au cours de la série 2. L'un des avantages de ces éditeurs est qu'ils possèdent un mode C++ agréable (ils présentent les programmes avec une mise en page et une coloration adaptées ; on appelle cela la mise en évidence syntaxique).

Le but de cet exercice est justement de vous apprendre, pas à pas, à

Étape 1 : Éditer un programme

À l'aide de votre éditeur favori (par exemple emacs, geany ou gedit), ouvrez (= créez) le fichier ~/myfiles/cpp/serie02/salut.cc.
A l'aide d'Emacs
Via le raccourci Ctrl-x Ctrl-f ou par le menu File -> Open File...
A l'aide de Geany
Créer un nouveau fichier via le raccourci Ctrl-n ou par le menu File -> New. Sauvegarder-le sous ~/myfiles/cpp/serie02/salut.cc à l'aide du raccourci Ctrl-s ou par le menu File -> Save.

Attention :

Notes :

Tapez le petit programme suivant :

#include <iostream>
using namespace std;

int main()
{
  cout << "Bonjour tout le monde !" << endl;
  return 0;
}

Nous verrons plus tard dans le cours à quoi correspondent exactement toutes ces lignes, mais pour l'instant considérez cela comme la base minimale pour que votre programme fonctionne.

Cela devrait ressembler à quelque chose comme cela :

Remarques :

  1. Certains mots apparaissent colorés (si dans Emacs ce n'est pas le cas, essayez d'obtenir ce résultat en vous servant du menu Options ->Syntax Highlighting, et relisez la configuration d'Emacs comme indiqué dans la mini-référence Environnement Unix). Il s'agit de mots ayant des fonctions syntaxiques particulières, et leur couleur peut améliorer la lisibilité des programmes.
Sauvegardez le programme :

Annexe : structure du programme

Étape 2 : compiler le programme

Avant d'être exécuté, un programme C++ doit être compilé : le fichier texte contenant le code source doit être traduit en langage machine. On effectue cette opération à l'aide d'une commande de compilation (c.f. la mini-référence premiers pas en C++), qui peut être tapée dans une fenêtre Terminal, ou obtenue depuis votre éditeur favori, comme nous vous le proposons dans cet exercice.

Remarque préliminaire : en fonction de la configuration de votre environnement et de l'éditeur que vous utilisez (lequel va appeler le compilateur, mais ne confondez pas les deux !!), il se peut que le compilateur vous donne à ce stade du cours des "Warning:" (message d'alerte, mais pas d'erreur fatale). Ignorez-les pour le moment, ces "Warning:" devraient disparaitre dans les semaines qui viennent (dans deux semaines exactement ;-) )

A l'aide d'Emacs

Avec la souris, cliquez sur le bouton Compile d'Emacs. Le message suivant doit apparaître, dans une boîte de dialogue ou dans la ligne de commande au bas d'Emacs (mini-buffer) : Compile: make -k.
(Si vous avez suivi les instructions de la mini-référence Environnement Unix en ce qui concerne la configuration de votre éditeur, vous devriez obtenir le message suivant : «c++ -g salut.cc -o salut», il n'est pas nécessaire dans ce cas de modifier la commande de compilation comme indiqué ci-après) Dans la boîte de dialogue, cliquez sur Edit command. Dans le mini-buffer (au bas de la fenêtre Emacs), remplacez « make -k » par « c++ salut.cc -o salut » puis pressez la touche Entrée (i.e. Enter, ou Return). Remarquez que cette opération n'est nécessaire que lors de la première compilation de votre programme.

Si vous n'avez pas sauvegardé le fichier, Emacs vous demande alors l'autorisation de le faire maintenant (appuyez sur y pour confirmer).

La fenêtre se sépare en deux, et le buffer du dessous montre les messages de compilation. Attendez jusqu'à voir apparaître un message indiquant la fin de la compilation.

Si le buffer de compilation n'apparaît pas, ou qu'il disparaît à la suite de manipulations, affichez-le en le sélectionnant dans le menu Buffers. On rappelle aussi (voir la mini-référence sur l'environnement Unix) que l'on peut séparer une fenêtre en deux buffers en tapant Ctrl-x 2 (tandis que Ctrl-x 1 à l'effet inverse).

Compilation

Si la compilation s'est déroulée sans problème (elle se termine avec le message «Compilation finished at ...»), testez votre programme : en utilisant un terminal, déplacez-vous (cd) si besoin est dans le répertoire ~/myfiles/cpp/serie02 et lancez votre programme en tapant

./salut

Le message «Bonjour tout le monde !» devrait alors apparaître.

A l'aide de Geany
Si vous ne l'avez pas déjà fait la semaine passée, il faut configurer Geany de sorte à ce qu'il compile selon la norme C++1: Cette configuration ne doit évidemment se faire qu'une fois au début du cours et non pas à chaque utilisation de Geany.
Dans le menu Build, cliquer sur l'option Build. Vous pouvez également utiliser le raccourci F9. Un message tel que celui ci-dessous doit apparaître dans la fenêtre du compilateur au bas de Geany :
g++ -Wall -o "salut" "salut.cc" (in directory: /home/toto/myfiles/cpp/serie02)

Si vous n'avez pas sauvegardé le fichier, Geany le sauvegardera automatiquement pour vous. Le buffer du dessous montre les messages de compilation. Attendez jusqu'à voir apparaître un message indiquant la fin de la compilation :

Compilation finished successfully.
Compilation

Si la compilation s'est déroulée sans problème (elle se termine avec le message «Compilation finished successfully.»), testez votre programme : en utilisant un terminal, déplacez-vous (cd) si besoin est dans le répertoire ~/myfiles/cpp/serie02 et lancez votre programme en tapant

./salut

Vous pouvez aussi exécuter votre programme dans geany : dans le menu Build, choisir Execute ou utiliser le raccourci clavier F5.

Vous pouvez également tester votre programme directement depuis Geany en cliquant sur le bouton Execute ou en utilisant le raccourci F5.

Étape 3 : erreurs de compilation

Nous allons maintenant nous intéresser à la correction des erreurs d'un programme, en tout cas celles que le compilateur peut détecter.

Cela vous arrivera souvent, et le compilateur C++ est assez fort pour trouver des erreurs. Apprenez donc à les comprendre et si vous avez du mal, n'hésitez pas à poster sur le forum du cours !

information Il existe divers types d'erreurs :
  1. Les erreurs de syntaxe : le programme est mal écrit et le compilateur ne le comprend pas.
    Ces erreurs sont relativement faciles à trouver, car le compilateur signale toujours le problème, en indiquant souvent l'endroit de l'erreur.
Nous n'aborderons ici que les erreurs de syntaxe.
Les erreurs d'implémentation et d'algorithme seront étudiées plus tard dans le cours, d'un point de vue pratique (avec la mise en oeuvre de procédures de déverminage - i.e. utilisation de débogueur et de tests logiciels) plutôt que théorique (il existe en effet un certain nombre de tests formels, mais ce genre de technique est trop complexe pour être abordée dans ce cours d'introduction).
Finalement, les erreurs de conceptions relèvent elles du domaine de l'ingénierie informatique (le «génie logiciel»), et ne seront elles non plus pas traitées dans ce cours.

Pour commencer, introduisez volontairement une erreur de syntaxe dans votre programme (supprimez par exemple la dernière accolade ou le dernier point-virgule).

Relancez ensuite la compilation. Vous devriez obtenir un message indiquant le fichier où se trouve l'erreur (salut.cc), la ligne concernée, ainsi que le type d'erreur:

A l'aide d'Emacs
Erreur de compilation dans Emacs
Par exemple, s'il manque la dernière accolade, le compilateur vous indiquera le message suivant (ou similaire) :
salut.cc:7: error: parse error at end of input
...
Compilation exited abnormally with code 1 at ...

Cliquez avec le bouton du milieu de la souris sur le message d'erreur : dans le buffer du programme, Emacs positionnera alors le curseur sur le fichier et la ligne concernés. Vous pouvez passer d'une erreur à la suivante au moyen de la combinaison de touches Ctrl-x ` (c'est-à-dire la touche "Control" et la touche "x" en même temps, puis ensuite la touche `, c'est-à-dire l'accent grave (backquote), ou en cliquant avec le bouton droit dans la fenêtre de compilation.

Corrigez l'erreur, et relancez la compilation (pour cela, il vous suffit de faire un clic droit dans la fenêtre de compilation, et de sélectionner Recompile dans le menu «popup» qui apparaît).

A l'aide de Geany
Erreur de compilation dans Geany
Par exemple, s'il manque la dernière accolade, le compilateur vous indiquera le message suivant (ou similaire) :
salut.cc:7: error: parse error at end of input
...
Compilation failed.

Cliquez avec la souris sur le message d'erreur et Geany positionnera alors le curseur sur le fichier et la ligne concernés. Vous pouvez passer d'une erreur à la suivante au moyen du menu Build -> Next Error.

Corrigez l'erreur, et relancez la compilation.


Retour à la série
Dernière mise à jour : $Date: 2017/09/22 17:08:03 $ ($Revision: 1.6 $)