On a préparé le terrain jusqu'ici, maintenant il serait bien de commencer à programmer un peu, et on va commencer par quelque chose de très simple !
Écrivez un programme en console
Dans le chapitre précédent, notre IDE nous demandait quel type de programme nous voulions créer, et je vous avais dit de répondre console
.
Il faut savoir qu'en fait il existe deux types de programmes, pas plus :
Les programmes graphiques.
Les programmes en console.
Les programmes graphiques sont des programmes qui affichent des fenêtres que l'on peut ouvrir, réduire, fermer, agrandir. Microsoft Word est un programme graphique, par exemple.
Les programmes en console sont constitués de simples textes qui s'affichent à l'écran, le plus souvent en blanc sur fond noir. Ces programmes fonctionnent au clavier (la souris n'est pas utilisée) et s'exécutent de façon linéaire : les messages s'affichent au fur et à mesure, de haut en bas.
Dans ce cours, nous allons réaliser des programmes console, car c'est beaucoup plus simple quand on débute !
Créez votre premier projet
Pour commencer à programmer, la première étape consiste à demander à son IDE de créer un nouveau projet. C'est un peu comme si vous demandiez à Word de vous créer un nouveau document.
Pour cela, passez par "File" > "New" > "Project".
Un assistant s'ouvre, nous l'avons vu au chapitre précédent. Créez un nouveau programme console C++ comme nous avons appris à le faire.
À la fin des étapes de l'assistant, le projet est créé et contient un premier fichier. Déployez l'arborescence à gauche pour voir apparaître le fichier main.cpp
, et faites un double-clic dessus pour l'ouvrir.
Ce fichier est notre premier code source, et il est déjà un peu rempli :
Code::Blocks vous a créé un premier programme très simple, qui affiche à l'écran le message "Hello world!".
Il y a déjà une dizaine de lignes de code source C++ et je n'y comprends rien, c'est normal ?
Oui, mais nous allons voir ensemble, un peu plus loin, ce que signifie ce code.
Lancez le programme
Pour le moment, essayez de compiler et de lancer ce premier programme. Vous vous souvenez comment faire ? Il y a un bouton « Compiler et exécuter » (Build and run). Ce bouton se trouve dans la barre d'outils :
La compilation se lance alors.
Vous allez voir quelques messages s'afficher en bas de l'IDE (dans la section Build log
).
Si tout va bien, une console apparaît avec notre programme :
Le programme affiche "Hello world!" : vous venez de compiler votre premier programme !
Les lignes en dessous (générées par l'IDE) indiquent que le programme s'est bien exécuté, et combien de temps s'est écoulé depuis le lancement.
Appuyez sur n'importe quelle touche du clavier pour fermer la fenêtre : votre programme s'arrête.
Analysez ce premier code source
Lorsque Code::Blocks crée un nouveau projet, il génère un fichier main.cpp
contenant ce code :
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
Voyons à quoi sert chacune de ces lignes.
La ligne #include
#include <iostream>
En effet, de base, le C++ ne sait pas faire grand-chose (pas même afficher un message à l'écran !). On doit donc charger des extensions que l'on appelle bibliothèques, et qui nous offrent de nouvelles possibilités.
Ici, on charge le fichier iostream
, ce qui nous permet d'utiliser une bibliothèque… d'affichage de messages à l'écran dans une console ! Quelque chose de vraiment très basique, comme vous le voyez, mais qui nécessite quand même l'utilisation d'une bibliothèque.
On peut charger autant de bibliothèques que l'on veut à la fois.
La ligne using namespace
using namespace std;
Cette ligne permet d'indiquer dans quel lot de fonctionnalités notre fichier source va aller piocher.
Si vous chargez plusieurs bibliothèques, chacune va proposer de nombreuses fonctionnalités.
Parfois, certaines fonctionnalités ont le même nom. Imaginez une commande qui s'appellerait "AfficherMessage" pour iostream
mais aussi pour une autre bibliothèque comme Qt
! Si vous chargez les deux bibliothèques en même temps et que vous appelez "AfficherMessage", l'ordinateur ne saura pas s'il doit afficher un message en console avec iostream
ou dans une fenêtre avec Qt
!
La ligne int main()
C'est ici que commence vraiment le cœur du programme.
Une fonction a la forme suivante :
int main()
{
}
Les accolades déterminent le début et la fin de la fonction : à la fin de la fonction main
, le programme s'arrête.
Cela veut dire qu'on va écrire tout notre programme dans la fonction main
?
Non. Ce serait très délicat à gérer, surtout pour de gros programmes.
À la place, la fonction main
appelle d'autres fonctions qui, à leur tour, appellent d'autres fonctions. Bref, elle délègue le travail.
Cependant, dans un premier temps, nous allons surtout travailler dans la fonction main
car nos programmes resteront assez simples.
La ligne cout
C'est la première ligne de main
, donc la première action qui sera exécutée par l'ordinateur (les lignes que nous avons vues précédemment ne sont en fait que des préparatifs pour le programme).
cout << "Hello world!" << endl;
cout
est fourni par iostream
. Si vous n'incluez pas iostream
au début de votre programme, le compilateur se plaindra de ne pas connaître cout
, et vous ne pourrez pas générer votre programme !
Il y a 3 éléments sur cette ligne :
cout
commande l'affichage d'un message à l'écran."Hello world!"
indique le message à afficher.endl
crée un retour à la ligne dans la console.
Il est possible de combiner plusieurs messages en une instruction :
cout << "Bonjour tout le monde !" << endl << "Comment allez-vous ?" << endl;
Essayez ce code, vous verrez que le programme affiche dans la console ces deux phrases sur deux lignes différentes.
Peut-être que vous avez essayé d'afficher un "backslash" \
ou des guillemets "
. Si ce n'est pas le cas, je vous propose de le faire maintenant :
#include <iostream>
using namespace std;
int main()
{
cout << "Je fais des tests pour apprendre le C++ !" << endl;
cout << """ << endl;
cout << "\" << endl;
return 0;
}
Le compilateur ne va pas aimer cela du tout, et un message d'erreur devrait s'afficher. En fait, pour afficher des guillemets, il faut utiliser la combinaison \"
, et pas juste "
; idem pour le backslash qu'il faut doubler :
#include <iostream>
using namespace std;
int main()
{
cout << "Je fais des tests pour apprendre le C++ !" << endl;
cout << "\"" << endl;
cout << "\\" << endl;
return 0;
}
Je vous laisse faire le test pour vérifier que cela fonctionne.
Maintenant que vous avez vu ces deux petites exceptions, vous êtes prêt à écrire dans la console tout ce qui vous passera par la tête. Voyons maintenant ce qui se passe à la fin de notre programme.
La ligne return
return 0;
Ce type d'instruction clôt généralement les fonctions. En fait, la plupart des fonctions renvoient une valeur (un nombre, par exemple). Ici, la fonction main
renvoie 0 pour indiquer que tout s'est bien passé (toute valeur différente de 0 aurait indiqué un problème).
Vous n'avez pas besoin de modifier cette ligne, laissez-la telle quelle. Nous aurons d'autres occasions d'utiliser return
pour d'autres fonctions, nous en reparlerons !
Commentez votre code
En plus du code qui donne des instructions à l'ordinateur, vous pouvez écrire des commentaires pour expliquer le fonctionnement de votre programme. Ils n'apparaîtront pas dans le programme généré, mais ils seront très utiles pour vous !
Dès que vos programmes vont devenir un petit peu complexes (et croyez-moi, cela ne tardera pas), vous risquez d'avoir du mal à vous souvenir de leur fonctionnement quelque temps après avoir écrit le code source. De plus, si vous envoyez votre code à un ami, il aura des difficultés pour comprendre ce que vous avez essayé de faire, juste en lisant le code source. C'est là que les commentaires entrent en jeu !
Il y a deux façons d'écrire des commentaires selon leur longueur :
Les commentaires courts, sur une seule ligne. Ils commencent par
//
et sont placés au-dessus d'une ligne de code ou au bout :
//Ceci est un commentaire
cout << "Hello world!" << endl; //Affiche un message à l'écran
Les commentaires longs, sur plusieurs lignes, s'ouvrent avec
/*
et se ferment avec*/
:
/*Le code qui suit est un peu complexe
alors je prends mon temps pour l'expliquer
parce que je sais que sinon, dans quelques semaines,
j'aurai tout oublié et je serai perdu pour le modifier*/
Reprenons le code source pour le compléter avec des commentaires :
#include <iostream> //Inclut la bibliothèque iostream (affichage de texte)
using namespace std; //Indique quel espace de noms on va utiliser
/*
Fonction principale "main"
Tous les programmes commencent par la fonction main
*/
int main()
{
cout << "Hello world!" << endl; //Affiche un message
return 0; //Termine la fonction main et donc le programme
}
Si vous lancez ce programme, vous ne verrez aucune nouveauté. Les commentaires sont ignorés par le compilateur.
Mettez votre code en forme
La mise en forme est là pour nous aider, nous les humains, à lire le code.
Essayez de lire celui-ci, pour voir :
#include <iostream>
using namespace std; int main()
{
cout << "Hello world!"<< endl; return 0; }
Ce n'est pas facile : les paires de parenthèses ne sont pas simple à repérer, on ne voit pas bien la séparation entre les instructions… Si ce programme faisait des centaines de lignes de long, ce serait incompréhensible.
Pour éviter que cela devienne ingérable, il faut mettre son code en forme de manière plus lisible.
Cela n'a rien changé pour le compilateur, le programme fera toujours exactement la même chose. Par contre, pour vous (et vos collègues travaillant sur le même projet), cela change tout. Vous verrez que plus on avancera dans ce cours, plus cela deviendra important d'avoir un code mis en forme proprement et bien commenté.
En résumé
On distingue deux types de programmes : les programmes graphiques (GUI) et les programmes console.
Il est plus simple de réaliser des programmes console pour commencer, c'est donc ce type de programme que nous étudierons en premier.
Un programme possède toujours une fonction
main()
: c'est son point de démarrage.La directive
cout
permet d'afficher du texte dans une console.On peut ajouter des commentaires dans son code source pour expliquer son fonctionnement. Ils prennent la forme
//Commentaire
ou/*Commentaire*/
.
Maintenant, vous allez découvrir LA notion indispensable lorsqu'on apprend à programmer : la déclaration de variable. Allez, on y va !