Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip

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!

Iframe
srchttps://www.youtube.com/embed/myZ8W6lAuEU
width760px
frameborderhide
alignmiddle
height428px

Qu’est-ce que le #include?

Le #include vous permet d’ajouter des fichiers sources source dans votre propre fichier. Et la certain là, certains d’entre vous ce dise se diront «Oui, mais encore…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 divisé 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

Code Block
languagecpp
#include "Message.cpp"

int main(){

    helloWorld();
    
    return 0;
}

Message.cpp

Code Block
languagecpp
#include <iostream>

using namespace std;

void helloWorld(){

    cout << "Hello world!";
}

Fichier lors de la compilation

Note

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

Code Block
#include <iostream>

using namespace std;

void helloWorld(){

    cout << "Hello world!";
}

int main(){

    helloWorld();
    
    return 0;
}

Les namespace

Les namespaces sont utilisés afin de permettre au à l'utilisateur d’avoir des noms de variables, des noms de fonctions, ect etc. avec des noms identiques. Lorsque vous écrivez using namespace std vous enlevez l’obligation de spécifier de quelle 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

Code Block
#include "namespaceA.cpp"
#include "namespaceB.cpp"

using namespace A;

int main (){

    helloWorld();
    B::helloWorld();
    
    return 0;
}

namespaceA.cpp

Code Block
languagecpp
#include <iostream>

namespace A
{
  void helloWorld()
  {
    std::cout << "Hello world!";
  }
}

namespaceB.cpp

Code Block
languagecpp
#include <iostream>

namespace B
{
  void helloWorld()
  {
    std::cout << "Hello World!!!";
  }
}

Sortie de la console:

Code Block
Hello world!Hello World!!!

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ètres 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

Filter by label (Content by label)
sorttitle
excerptTyperich content
cqllabel = "ar-guide_demarrage"