Les bases de la programmation et du C/C++

Cette page est un guide sur le démarrage d’un nouveau projet. Cette section couvrira plusieurs concepts et connaissances de base en programmation. Je vous invite à reproduire les exemples de votre coté même s’ils sont simples et de les modifier pour apprendre en observant le comportement de votre programme.

  • Création d’un projet

  • Qu’est-ce que le #include?

  • Les namespaces

  • La librairie standard

  • Qu’est-ce qu’une fonction?

  • L’usage des commentaires

View the english version of this page.

N’hésitez pas à nous écrire au info.crc@sciencetech.ca pour nous faire part de vos commentaires et suggestions sur le contenu.

Mon premier projet

Je vous invite à écouter la capsule qui suit pour apprendre à créer votre premier projet et écrire votre premier programme!

 

Qu’est-ce que le #include?

Le #include vous permet d’ajouter des fichiers source dans votre propre fichier. Et là, certains d’entre vous se diront «Oui, mais encore...?». Le but est en fait de diviser votre code et de le rendre plus facile à maintenir et réutiliser. Lorsque vous mettez un #include au début de votre fichier, au moment de la compilation, le compilateur ajoutera le fichier inclus dans votre fichier. C’est un peu comme s’il créait un seul long fichier en copiant et collant le contenu de tous les fichiers sources inclus à l’endroit où vous avez écrit le #include correspondant.

Dans le code qui suit, j’ai modifié le projet fait précédemment pour le diviser en 2 fichiers et vous montrer un exemple simple du fonctionnement d’un #include. On peut voir que dans l’exemple suivant, la fonction main() du fichier HelloWorld appel la fonction helloWorld() du fichier Message. Le fichier Message est inclus au début du fichier HelloWorld et sera donc ajouté sous cette ligne au moment de la compilation.

 

HelloWorld.cpp

#include "Message.cpp" int main(){ helloWorld(); return 0; }

Message.cpp

#include <iostream> using namespace std; void helloWorld(){ cout << "Hello world!"; }

Fichier lors de la compilation

À noter que je n’ai pas inséré le code du #include <iostream>, parce que cette librairie est simplement trop grosse et nuirait à l’exemple.

#include <iostream> using namespace std; void helloWorld(){ cout << "Hello world!"; } int main(){ helloWorld(); return 0; }

Les namespaces

Les namespaces sont utilisés afin de permettre à l'utilisateur d’avoir des noms de variables, des noms de fonctions, etc. avec des noms identiques. Lorsque vous écrivez using namespace std vous enlevez l’obligation de spécifier de quel namespace vient la variable ou la fonction que vous utilisez.

Dans l’exemple suivant, nous créerons 2 namespaces que nous utiliserons par la suite dans notre main.

main.cpp

namespaceA.cpp

namespaceB.cpp

Sortie de la console:

Vous pouvez voir dans l’exemple précédent que l’on déclare le namespace A comme le namespace utilisé dans main.cpp. Par la suite, lorsque nous appelons la fonction helloWorld(), le programme prend la fonction dans le namespace A. Au moment d’appeler le helloWorld() du namespace B nous devons ajouter B:: pour dire au programme le namespace à utiliser. On peut observer le même comportement pour la librairie standard lorsque vient le moment d'utiliser la fonction cout.

La librairie standard

Le C/C++ utilise la librairie standard d’où le nom std. La librairie standard est un regroupement de fonctions générales et très utiles. Dans les faits, lorsque vous incluez iostream, vous incluez une partie de la librairie standard! Si vous voulez découvrir les multiples fonctions de la librairie standard je vous invite à appuyer ici et jeter un coup d’œil.

Qu’est-ce qu’une fonction?

La fonction est en quelque sorte un «sous-programme», une «sous-routine». On l’utilise principalement pour éviter la répétition du code et rendre plus facile la lisibilité ainsi que la maintenance d’un programme. Plusieurs astuces peuvent aider lorsque vient le temps de créer une fonction.

  1. Faire une fonction qui effectue une seule tâche

  2. Lui donner un nom représentatif et clair

  3. Minimiser le nombre d’argument

Voici en exemple l’appel d'une fonction qui multiplie 2 entier (int) et qui retourne en guise de résultat la valeur d’un produit entier (int).

  1. Type de la valeur de retour

  2. Nom de la fonction

  3. Type du premier argument

  4. Nom du premier argument

  5. Type du deuxième argument

  6. Nom du deuxième argument

L’usage des commentaires

Bien que les commentaires soient une bonne façon de documenter notre code, il faut éviter d’en abuser. Il ne devrait jamais être nécessaire de commenter le code ligne par ligne. Souvent, cette pratique est due à un manque de clarté dans les noms de variables et/ou de fonctions. Parfois, des fonctions trop longue qui font plusieurs actions à la fois peuvent être la cause de ce problème.

Voici quelques utilisations pertinentes des commentaires:

Afin de donner de l’information sur les droits d’auteur, l’utilité du fichier, sa version et autres.

Ces informations se trouvent toujours en en-tête du fichier.

Les informations sur une fonction, soit une petite explication du but de la fonction, les variables en paramètre ainsi que la variable de retour.

Laisser une note de façon temporaire et enlever une fois que la correction est effectuée

Articles liés