Série 2 (Niveau 0):
Édition, compilation et exécution de programmes sous QTCreator
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, à
- éditer un programme ;
- compiler un programme c++ ;
- corriger les erreurs de compilation.
Étape 1 : Éditer un programme
Commencez par suivre le tutoriel mis à disposition pour créer un petit projet nommé par exemple exercice0 et que vous aurez placé dans un répertoire serie1. Ce dossier sera typiquement placé dans Desktop/myfiles/cpp si vous travaillez sur les machines de l'EPFL). Remplacez le "Hello world" automatiquement ajouté, par un message de votre choix:Sauvegardez le fichier (avec Ctrl-S ou File > Save All par exemple).
Notes :
- Lorsque vous ouvrez un fichier dont le nom finit par .cc ou ,.cpp l'éditeur ) passe de QTCreator automatiquement en mode C++, et colorise le texte en fonction de cela.
- À partir de la fin d'une ligne de code, lorsque vous créez une nouvelle ligne (avec la touche "Entrée"), le curseur est indentée automatiquement, c'est-à-dire que des espaces sont ajoutés ou supprimés en début de ligne, de façon à rendre le programme plus lisible. Cette indentation automatique est très utile aussi pour déceler des erreurs de syntaxe : effacez par exemple le «;» de l'avant-dernière ligne du programme et essayez de créer une nouvelle ligne vous verrez que l'indentation ne se fait plus proprement.
Ce programme contient une base minimale pour pouvoir fonctionner.
Annexe : structure du programme
- La première ligne (#include <iostream>) ordonne au compilateur de lire (et d'inclure) le contenu de la bibliothèque iostream avant de compiler le programme. Cette bibliothèque contient des définitions de commandes (et/ou variables) utilisées dans la suite du programme. Dans notre cas, il s'agit de la définition de cout, de la constante endl et du fonctionnement de l'opérateur <<.
- La seconde ligne est nécessaire pour indiquer au programme que vous allez utiliser les fonctions de la bibliothèque standard (std). Nous verrons plus tard dans le cours le rôle et l'utilisation de ces éléments appelés «espaces de noms» (namespaces).
- La cinquième ligne (en comptant les lignes vides) indique le début du programme. Les instructions comprises entre l'accolade ouvrante { et l'accolade fermante associée } constituent la définition du programme principal (la fonction main), c'est-à-dire les instructions qui seront effectivement exécutées au lancement du programme (c'est-à-dire à l'invocation de la fonction main).
- La sixième ligne affiche le message de votrte choix à l'écran, suivi d'un retour à la ligne (endl).
É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. Comme indiqué dans le tutoriel, utilisez le petit marteau sur la barre latérale gauche pour lancer la compilation
Si la compilation s'est déroulée sans problème les fenêtres que vous obtenez en cliquant sur les bouton "1 Issues" ou "4 Compile Output" sur la barre horizontale tout en bas doivent être vides:
Vous pouvez dans ce cas lancer l'exécution, au moyen de la petite flèche verte sur la barre latéral gauche. Vous verrez votre message s'afficher dans la fenêtre "3 Application output".
É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 !
Il existe divers types d'erreurs :
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 la ligne concernée, ainsi que le type d'erreur:
Corrigez l'erreur, et relancez la compilation.
Retour à la série