Un tout premier programme : l'incontournable "Hello World!"

hello.cpp


Le "Hello, World!" semble être une véritable tradition dans le monde de la programmation. Je crois que je n'ai pas trouvé un seul livre sur leC/C++ qui ne commence par cet exemple, donc je vais faire de même. Dans ce cours, nous allons commencer par écrire le programme, puis nous le commenterons ligne par ligne. Je n'aime pas trop cette approche, mais ce premier petit programme nous permet de mettre au point quelques connaissances de base très importantes qu'il faudra retenir. Voici le programme en question:

1
2
3

4

5

#include <iostream.h>
main()
{

    cout << "Hello, World!\n";

}

Les chiffres sur la gauche sont juste là pour indiquer le numéro de chaque ligne, ils ne font pas partie du programme.

    J'ai utilisé Microsoft Internet Explorer pour créer et tester ce site, et je constate qu'avec ce logiciel, les numéros de lignes correspondent bien aux lignes elles-mêmes. Par contre, il semblerait que d'autres navigateurs tels que NetPositive (pour BeOS) n'aligne pas correctement les numéros des lignes. Il se peut donc que les numéros de lignes affichées soient un peu décalés, et je m'en excuse.

    Lorsque les programmes deviendront trop longs pour être entièrement recopiés dans les pages de cours, je ferais référence aux numéros de lignes que vous affichera votre éditeur de code source (plus communément votre EDI). Dans ce cas-là, il ne devrait plus y avoir d'erreurs.

    SnakeSoft Productions vous prie d'accepter ses excuses pour cette gêne et vous remercie de votre compréhension.

Vous voyez, c'est... pas si simple que ça. Ceux qui connaissent le Basic diront qu'il ne faut qu'une instruction pour afficher "Bonjour" à l'écran. Mais en C++, il est quelques éléments fondamentaux qui entrent en compte.

L'instruction principale, c'est clairement le
cout << "Hello, World!\n";
Vous l'aurez deviné, elle écrit Hello, World! à l'écran, c'était pas vraiment sorcier. Le \n à la fin du texte signifie retour à la ligne. C'est un caractère spécial, et il en existe plein d'autres en C++. Nous en verrons quelques-uns par la suite. Dès qu'il y a un \n, le texte qui suit continue à la ligne. Le texte "Hello, World!\n", noté entre guillemets, est appelé chaîne de caractères, ou string en anglais. Nous y reviendrons plus tard.

On voit ensuite que cette instruction principale est enfermée dans un bloc {} (lignes 3 et 5). Ce bloc constitue le corps de la fonction main() (en anglais, main signifie principal ; c'est la fonction principale du programme). Cette fonction à quelque chose de magique. En effet, tout programme C++ doit contenir une fonction main() ; la première instruction du programme correspond à la première instruction de main(), et le programme se termine quand main() se termine. Cette fonction est donc indispensable pour pouvoir compiler votre programme.

Notez bien que main() s'écrit avec des minuscules. En effet, le C++ fait la différence entre les minuscules et les majuscules, si bien que si vous écrivez Main(), votre programme ne compilera pas, le compilateur ne pouvant trouver la fonction main().

Et puis il y a cette première ligne, un peu différente des autres : #include <iostream.h>. Tout d'abord, vous aurez reconnu un nom de fichier: iostream.h. Ce fichier contient la définition de cout, utilisé ligne 4, définition sans laquelle la ligne 4 n'aurait aucun sens. L'instruction #include <iostream.h> signifie en fait: copie tout le contenu du fichier iostream.h à la place de cette ligne avant de compiler le programme. Pour l'instant, nous n'irons pas plus loin avec cette instruction ; nous y reviendrons cependant plus tard, car elle a son importance.

Voici les points essentiels à retenir:

  • Tout programme C++ doit avoir une fonction main()
  • Le C++ fait la différence entre les minuscules et les majuscules
  • Dans une chaîne de caractères, le charactère '\n' signifie retour à la ligne

Afin de vous assurer d'avoir tout compris, voici quelques exercices que vous pourrez essayer:

  • Réécrivez ce programme en changeant quelques minuscules en majuscules.
  • Réécrivez ce programme en "oubliant" l'instruction #include <iostream.h>.
  • Où pourriez-vous placer le caractère \n dans la chaîne "Hello, World!" pour que les deux mots soient écrits sur deux lignes différentes? Que se passe-t-il si vous ne mettez pas le caractère \n à la fin de la chaîne (en supposant que vous exécutez le programme depuis la ligne de commande MS-DOS)? Proposez une solution à la première question avec deux instructions cout.
  • Que se passe-t-il si vous oubliez une accolade? Si vous oubliez le signe # à la première ligne? Si vous oubliez les parenthèses à la seconde ligne?

Après chaque exercice, recompilez votre programme et lancez-le pour voir les résultats (si il compile correctement). Ces exercices deraient vous convaincre que le C++ n'est pas un langage pour laxistes. Cependant, ne vous laissez pas effrayer par cette rigueur : vous ne tarderez pas à acquérir les réflexes de base, et vous pourrez vite vous concentrer sur des problèmes plus importants que des oublis de symboles.

Vous vous imaginez bien qu'un programme doit savoir faire bien plus qu'afficher du texte à l'écran. La fonction principale d'un ordinateur n'est-elle pas d'effectuer des calculs? Dans le prochain cours, nous verrons donc comment faire pour programmer des calculs en C++.


Voir aussi: chaîne de caractères - déclaration