• Tester les différents dispositifs matériels à contrôler : Ecran, clavier, les cellules de la mémoire
centrale, disques durs, etc.
• Chercher et charger le système d’exploitation.
• Passer à la première instruction du système d’exploitation.
Le système d’exploitation ainsi chargé permet de gérer les ressources de la machine durant son
fonctionnement, ces ressources comprennent tout ce qui est matériel (processeur, mémoire,
périphériques) et logiciel utilisable par l’utilisateur (applications et données utilisateurs).
En résumé. Le BIOS, le système d’exploitation et les différentes applications utilisateurs sont des
ensembles de programmes qui permettent de gérer et contrôler les ressources de la machine.
2. Langage de programmation
Le processeur ne peut interpréter les instructions d’un programme que sous forme binaires (instructions
machines). Cependant, ces codes en format binaires sont difficilement lus et édités par un être humain.
Dans ce contexte, les langages de programmation permettent de faciliter la tâche aux programmeurs et
de formuler des instructions à la machine en proposant une syntaxe généralement proche du langage
parlé (code source). Ces instructions littérales sont ensuite converties par un traducteur automatique
appelé compilateur en format binaire (code exécutable) compréhensible par la machine.
Exemple. C, C++, COBOL, ADA, JAVA, C#, etc.
1
3. Langage C++
C++ est un langage de programmation permettant le développement des programmes à la fois
procéduraux et orientés objets. Ses performances, sa malléabilité, et sa compatibilité avec son
prédécesseur: le langage C, lui ont permis de devenir le langage de programmation de prédilection pour
le développement des applications exigeant une grande performance telles que les applications pour les
systèmes embarqués et les calculs scientifiques.
3.1. Historique
Depuis la création de son prédécesseur le C, l’évolution du langage C++ est passée par deux phases
principales : C++ classique et C++ moderne, Les points de repère historique de l’évolution du langage
C++ est donnée par le schéma suivant :
2
5. Premier programme C++
5.1. Le programme « Hello World»
Le programme Hello est devenu presque banal pour débuter la programmation avec n’importe quel
langage de programmation. Le listing suivant présente un programme basique en C++ permettant
d’affiche un message «Hello World» à la console.
Listing 1.1 : Programme C++ «Hello World»
01 // Programme hello world en C++
02
03 #include<iostream>
04
05 int main()
07 {
08 Std::cout << "Hello World!";
09 return 0;
10 }
Tout programme C/C++ doit contenir au moins une fonction main(), cette fonction est le
point d’entrée du programme et c’est au niveau de cette fonction que le programme commence
son exécution, cette fonction appellera éventuellement à d’autres fonctions, dans sa forme la
plus simple, c'est une fonction sans argument, qui retourne un int. L'entier retourné permet
de renvoyer au système le statut d'exécution du programme ; par convention, la valeur de cet
entier dans le cas où l’exécution du programme est sans erreur est 0.
3
Le flux Description
cin Entrée standard / entrée de console
cout Sortie standard / sortie de console
cerr Sortie standard d’erreurs
clog Sortie standard de journalisation (logging)
cin est utilisé pour la saisie des données au clavier et trois autres pour la sortie des données.
4
Listing 1.4 : Test de la version du compilateur gcc
01 #if(_GNUC_ > 3)|| \
02 (_GNUC_ == 3)&& (_GNUC_MINOR > 2) || \
03 (_GNUC_ == 3)&& (_GNUC_MINOR > 2)&& (_GNUC_PATHLEVEL_ > 0)
04 #error “incompatible version”
A la précompilation, les noms des macros préalablement sont recherchés dans le code source et
remplacés par leurs valeurs. Si une macro a plusieurs paramètres telle que CARRE dans le listing ci-
dessus, chacun des paramètres est remplacé par sa valeur effective. Ainsi, le code suivant :
5
alignas (C++11), alignof (C++11), and, and_eq, asm, atomic_cancel,
atomic_commit, atomic_noexcept, auto, bitand, bitor, bool, break, case,
catch, char, char8_t (C++20), char16_t (C++11), char32_t (C++11), class,
compl, concept (C++20), const, consteval (C++20), constexpr (C++11),
constinit (C++20), const_cast, continue, co_await (C++20), co_return
(C++20), co_yield (C++20), decltype (C++11), default, delete, do, double,
dynamic_cast, else, enum, explicit, export, extern, false, float, for,
friend, goto, if, inline, int, long, mutable, namespace, new, noexcept
(C++11), not, not_eq, nullptr (C++11), operator, or, or_eq, private,
protected, public, reflexpr, register, reinterpret_cast, requires (C++20),
return, short, signed, sizeof, static, static_assert (C++11), static_cast,
struct, switch, synchronized, template, this, thread_local (C++11), throw,
true, try, typedef, typeid, typename, union, unsigned, using, virtual,
void, volatile, wchar_t, while, xor, xor_eq.
Exercice. Ecrire un programme C++ qui permet d’afficher les tailles des différents types.
6
Attribuer une valeur ou un résultat d’une expression à une variable de même type ou de type plus
généraliste. S = A + B
b. Opération arithmétiques
+ - * / %
Addition Soustraction Multiplication Division Modulo
c. Opérations logiques
|| && !
Ou logique Et logique Non logique
d. Opérations de comparaison
a. Syntaxe de l’instruction if
b. Principe
7
Le bloc d’instruction instruction_1 n’est exécuté que si la valeur de l’expression est vraie.
c. Exemple
Ecrire un programme qui effectue une division entre deux nombres saisis par l’utilisateur
b. Principe
Si la valeur de l’expression est vraie alors le bloc d’instruction instruction_1 est exécuté sinon le
bloc d’instruction instruction_2 est exécuté.
c. Exemple
Ecrire un programme qui permet de vérifier le nombre de solutions d’une équation de second degré.
8
Listing 1.10 : Programme C++ «Hello World»
01 Switch <variable de choix>
02 {
03 case choix 1: <Séquence 1>; break;
04 case choix 2: <Séquence 2>; break;
05 …
06 case choix n: <Séquence n>; break;
07 default: <Séquence par défaut>
08 }
b. Principe
La valeur de la variable de choix est évaluée,
b. Principe
<initialisation> : traitée à la première itération, elle consiste en l’initialisation d’une ou de plusieurs
variables.
<condition> : définit la condition d’arrêt de la boucle, cette condition est tester à chaque itération.
<compteur> : Détermine le pas ou les instructions à exécuter à la fin de chaque itération, cette partie
est exécutée à la fin de chaque itération avant le test de la condition.
c. Exemple.
Afficher les nombres pairs strictement inférieurs à 200.
Listing 1.12 : Nombre pairs strictement inférieurs à 200
01 #include<iostream>
02 using namespace std;
03 int main()
04 {
05 for (int i=0; i<200; i=i+2)
06 cout << i << endl;
07 return 0;
08 }
d. Exercice.
Ecrire un programme qui permet d’évaluer 1 + !
+
!
+
!
+ ⋯+ ( . En utilisant la boucle for.
)!
9
9.2.2. Boucle while
b. Principe
Tant que la condition est vrai, la séquence d’instruction est exécutée, et lorsque la condition devient
fausse la réexécution de la boucle est arrêtée.
c. Exemple.
Ecrire un programme qui permet d’afficher tous les multiples de 3 inférieurs à 200.
d. Exercice.
b. Principe.
Le bloc d’instruction est exécuté une fois, ensuite, tant que la condition est vrai, la séquence
d’instruction est exécutée, et lorsque la condition devient fausse, la réexécution de la boucle est arrêtée.
c. Exercice.
Ecrire un programme C++ qui permet d’évaluer 1 + + + ⋯+ en utilisant la boucle do …
while.
10