MenuPrivacy PolicyContact meTerms of use
Le Chemin Vers La Programmation
MenuHomeAlgorithme- Cours- Exercices CorrigésLangage C- Cours- Exercices CorrigésC++-
Cours- Exercices CorrigésPython- Cours- Exercices CorrigésJava- Cours- Exercices Corrigés-
POO en javaPHP
Home Unlabelled C++
C++
Le chemin vers la programmation 29 days ago
Chapitre 1 : Les éléments de base en C++
1) Introduction
==> Programmer c’est quoi ????
Programmer signifie réaliser des « programmes informatiques ».
Les programmes demandent à l’ordinateur d'effectuer des actions.
==> Votre ordinateur est rempli de programmes comme:
* la calculatrice est un programme ;
* votre traitement de texte est un programme
* votre logiciel de « chat » est un programme
* les jeux vidéo sont des programmes.
==> De quels logiciels a-t-on besoin pour programmer ?
Il existe plusieurs enivrements de développement (IDE). Parmi les
environnements de développement, on peut citer : DEV C++, Code :: Bloc.
==> Un minimum de code
Pour n' importe quel programme, il faudra taper un minimum de code. Ce
code ne fera rien de particulier mais il est indispensable. C'est ce « code
minimum » que nous allons découvrir maintenant. Il devrait servir de base
pour la plupart de vos programmes en langage C++.
Int main() Ou bien int main ( int argc , char * argv[] )
Les deux écritures sont possibles, mais la seconde (plus compliquée) est la
plus courante. J'aurai donc tendance à utiliser plutôt. En ce
qui nous concerne, que l'on utilise l'une ou l'autre des écritures, ça ne
changera rien pour nous. surtout que nous n'avons pas encore le niveau pour
analyser ce que ça signifie.
#include <iostream>
#include <conio.h>
Ce sont des lignes spéciales que l'on ne voit qu'en haut des fichiers source.
Ces lignes sont facilement reconnaissables car elles commencent par un
dièse #. Ces lignes spéciales, on les appelle directives de préprocesseur (un
nom compliqué, n'est-ce pas ?). Ce sont des lignes qui seront lues par un
programme appelé préprocesseur, un programme qui se lance au début de la
compilation.
Le mot include en anglais signifie « inclure » en français. Ces lignes
demandent d'inclure des fichiers au projet, c'est-à-dire d'ajouter des fichiers
pour la compilation. Ces fichiers source tout prêts. On verra plus tard qu'on
les appelle des bibliothèques. En gros, ces fichiers contiennent du code tout
prêt qui permet de faire une tache bien déterminé.
Plus tard, nous découvrirons de nouvelles bibliothèques et il faudra effectuer
des inclusions en haut des codes source comme ici. Par exemple, lorsque nous
étudierons Qt, qui permet de réaliser des programmes graphiques (GUI), on
insérera une ligne comme celle-ci : #include <Qt>
using namespace std ; : permet en quelque sorte 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 « AfficherMessage » qui s'appellerait ainsi pour iostreammais
aussi pour 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 aveciostream ou dans une fenêtre avecQt!
Pour éviter ce genre de problèmes, on a créé des namespaces (espaces de
noms), qui sont des sortes de dossiers à noms. La ligne using namespace
std ; indique que vous allez utiliser l'espace de noms stddans la suite de votre
fichier de code. Cet espace de noms est un des plus connus car il correspond à
la bibliothèque standard (std), une bibliothèque livrée par défaut avec le
langage C++ et dont iostream fait partie.
Cette fonction s'appelle la fonction main. C'est un nom de fonction particulier
qui signifie « principal ». main est la fonction principale de votre programme,
c'est toujours par la fonction main que le programme commence.Une fonction
a un début et une fin, délimités par des accolades { et }. Toute la fonction
main se trouve donc entre ces accolades.
Cout<<"Hello world!"<<endl ;
return 0;
Ces lignes à l'intérieur d'une fonction s’appellent les instructions, Chaque
instruction est une commande à l'ordinateur. Chacune de ces lignes demande
à l'ordinateur de faire quelque chose. Par exemple la première Cout<<"Hello
world!" demande par l’ordinateur d’afficher le message Hello world! à
l'écran, puis passer à l'instruction suivante endl ;permet de faire le retour à la
ligne « Entrée ». ensuite l’instruction return 0 ; Cette ligne indique qu'on
arrive à la fin de notre fonction main et demande de renvoyer la valeur 0.
Pourquoi mon programme retourne le nombre 0 ?
En fait, chaque programme une fois terminé renvoie une valeur, par exemple
pour dire que tout s'est bien passé. En pratique, 0 signifie « tout s'est bien
passé » et n'importe quelle autre valeur signifie « erreur ». La plupart du
temps, cette valeur n'est pas vraiment utilisée, mais il faut quand même en
renvoyer une. Votre programme aurait marché sans le return 0, mais on va
dire que c'est plus propre et plus sérieux de le mettre, donc on le met.
!!! Très important: toute instruction se termine obligatoirement par un
point-virgule « ; ». Si vous oubliez de mettre un point -virgule à la fin d'une
instruction, votre programme ne compilera pas !
* 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
Écrire un message à l'écran:
À partir de maintenant, on va modifier nous -mêmes le code de ce programme
minimal. Qui permet d’afficher le message « Bonjour » à l'écran.
Exemple 2
* Les commentaires
Lorsqu'un programme devient long, il est conseillé d’ajouter des lignes
de commentaires dans le programme, c’est-à-dire des lignes qui ont pour but
de donner des indications sur les instructions effectuées et d’expliquer le
fonctionnement de programme sans que le compilateur ne les prenne en
compte. On va voir deux types de commentaires :
* Commentaire sur une ligne : // ceci un commentaire
* Commentaire sur plusieurs lignes : /* ceci un commentaire */
Remarque : Parfois on utilise les commentaires pour annuler l’action de
quelques instructions dans un programme au lieu de les effacer comme dans
cet exemple :
Le programme ignore l’instruction qui se trouve entre le commentaire et
affiche seulement Bonjour.
2) Les variables et les constantes
2-1) Notion de variable
Les données ainsi que les résultats des calculs intermédiaires ou finaux, sont
rangés dans des cases mémoires qui correspondent à des variables, Ainsi, une
variable est rangée dans un emplacement mémoire nommé, de taille fixe (ou
non) prenant au cours du déroulement de programme un nombre indéfini de
valeurs différentes.
2-2) déclaration des variables
La partie déclaration consiste à énumérer toutes les variables dont on aura
besoin au cours de programme. Chaque déclaration doit comporter le nom de
variable (identificateur) et son type.
Syntaxe : type identificateur ;
Identificateur : Un identificateur est le nom donné à une variable. Ce nome
doit obligatoirement commencer par une lettre suivie d’une suite de lettres,
des chiffres, et du tiret-bas _ uniquement et il ne doit pas contenir d’espace.
Types de données :
Le type de variable est l’ensemble des valeurs qu’elle peut prendre
int : sert à manipuler les nombres entiers positifs ou négatifs. Par exemple : 5, -
6 , 0 ...
float : sert à manipuler les nombres à virgule. Par exemple : 5 , 2.1 , -
1.278 …..
double : sert à manipuler les nombres à virgule. Par exemple : 2.943221 , -
1.278 ….
char : sert à manipuler des caractères, Par exemple : 'A' , '6'
string : Une chaîne de caractères, c'est-à-dire un mot ou une phrase.
bool : utilise les expressions logiques. Il n’y a que deux valeurs : true et false
Exemple :
int N ; float e , r ; char letter ;
string phrase1 , phrase2 ; bool proposition ;
Les opérations sur des variables
Remarque:
&& signifie : et || signifie : ou ! signifie : non (négation) == signifie :
égal != signifie : ≠
2-3) Les constantes
Comme une variable, il existe une constante correspond un emplacement
mémoire réservé auquel on accède par le nom qui lui a été attribué, mais dont
la valeur stockée ne sera jamais modifiée au cours du programme.
Syntaxe : const Nom_Constante = valeur ;
Exemple : const float pi = 3.14 ;
3) Les instructions de base
Une instruction est une action élémentaire commandant à la machine un
calcul, ou une communication avec l’un de ses périphériques d’entrées ou de
sorties. Les instructions de base sont :
3-1) L’instruction d’affectation :
L’affectation permet d’affecter une valeur à une variable. Elle est symbolisée
par « = »
Syntaxe : Variable = Expression ;
Exemple :
3-2) L’instruction d’entrée :
L’instruction d’entrée ou de lecture donne la main à l’utilisateur pour saisir une
donnée au clavier. La valeur saisie sera affectée à une variable. Cette
instruction est effectuée via la fonction cin . vous devez ensuite indiquer le
nom de la variable.
Exemple : cin >> variable ;
3-3) L’instruction de sortie :
Avant de lire une variable, il est conseillé d’écrire un message à l’écran, afin de
prévenir l’utilisateur de ce qu’il doit taper. L’instruction de sortie (d’écriture)
permet d’afficher des informations à l’écran.
Syntaxe : cout << variable ; ou cout << " un message " ;
Exemple : cout << " Entrer votre email : " ; cout << " votre age est : "<<
age ;
Exemple :
Chapitre 2 : Les structures alternatives et répétitives
1) Les structures alternatives
1-1) Introduction :
Contrairement au traitement séquentiel, la structure alternative ou
conditionnelle permet d’exécuter ou non une série d’instructions selon la
valeur d’une condition.
1-2) La structure if {} ou if {} else {}
Syntaxe :
Une condition est une expression logique ou une variable logique évaluée à
Vrai ou faux. La condition est évaluée. Si elle est vraie, la série d’instruction(s)1
est exécutée et l’ensemble d’instruction(s) 2 est ignoré, la machine sautera
directement à la première instruction située après cette structure.
De même, au cas où la condition était fausse la machine saute directement à
la première ligne située après le else et exécute l’ensemble d’instruction(s)2.
Exemple :
Exercice d’application 1
Ecrire un programme qui affiche si un nombre entier saisi au clavier est pair ou
impair.
Remarque : il existe aussi un autre type de condition c’est la condition
composées. Certains problèmes exigent de formuler des conditions qui ne
peuvent être exprimées sous la forme simple, par exemple la condition de
note de devoir doit être inclus dans l’intervalle [0, 20], cette condition est
composée de deux conditions simples qui sont note ≥0 et note ≤ 20
Exercice d’application 2
Ecrire un programme qui permet de faire une remarque d’une note saisi au
clavier ( si la note supérieur à 10 alors on affiche validé sinon non validé
(NB : la note comprise entre 0 et 20 ! ).
Exercice 1:
Ecrire un programme qui demande deux nombres m et n à l’utilisateur et
l’informe ensuite si le produit de ces deux nombres est positif ou négatif. On
inclut dans le programme le cas où le produit peut être nul.
Exercice 2:
Une boutique propose à ces clients, une réduction de 15% pour les montants
d’achat supérieurs à 200 dh. Ecrire un programme permettant de saisir le prix
total HT et de calculer le montant TTC en prenant en compte la réduction et la
TVA=20%.
1-3) Structure à choix multiples ( Switch )
La condition if... else que l'on vient de voir est le type de condition le plus
souvent utilisé. Toutefois, le if... else peut s'avérer quelque peu… répétitif :
Prenons cet exemple :
Pour résoudre ce problème de la répétition de if else if else …. plusieurs fois.
On utilise une nouvelle structure à choix multiples. Cette structure
conditionnelle permet de choisir le traitement à effectuer en fonction de la
valeur ou de l’intervalle de valeurs d’une variable ou d’une expression.
Syntaxe :
Lorsque l’ordinateur rencontre cette instruction, il vérifie la valeur de la
variable, et il la compare aux différentes valeurs.
Les valeurs sont évaluées dans l’ordre, les unes après les autres, et une fois la
valeur de variable est vérifiée l’action associée est exécutée. On peut utiliser
une instruction default (facultative), dont l’action sera exécutée si aucune des
valeurs évaluées n’a pas été remplie.
Exercice d’application :
Ecrire un programme permettant d’afficher le mois en lettre selon le numéro
saisi au clavier (janvier=1 , février =2 …….. décembre = 12) .
Remarque : Vous devez mettre une instruction break ; à la fin de chaque cas.
Pour ignorer les instructions en dessous ! L'instruction break ; commande en
fait à l'ordinateur de « sortir » des accolades. Et instruction defaulf ; sera
exécutée si aucune des valeurs évaluées n’a pas été remplie.
2) Les Structures répétitives
2-1) Introduction
Prenons d’une saisie au clavier, par exemple, on pose une question à laquelle
doit répondre par « oui » ou « non ».
L’utilisateur risque de taper autre chose (une autre lettre), le programme peut
soit planter par une erreur d’exécution soit dérouler normalement jusqu’au
bout, mais en produisant des résultats fantaisistes.
Pour éviter ce problème, on peut mettre en place un contrôle de saisie pour
vérifier que les données entrées au clavier correspondent bien à celles
attendues par le programme.
!!! Le programme ci-dessus résout le problème si on se trompe qu’une seule
fois, et on fait entrer une valeur correcte à la deuxième demande. Sinon en cas
de deuxième erreur, il faudrait rajouter un « if ». Et ainsi de suite, on
peut rajouter des centaines de « if »
==> La solution à ce problème consiste à utiliser une structure répétitive.
Une structure répétitive, encore appelée boucle, est utilisée quand une
instruction ou une liste d’instruction, doit être répétée plusieurs fois. La
répétition est soumise à une condition.
2-2) La boucle while
La boucle while permet de répéter un traitement tant que la condition est
vraie.
Syntaxe :
==> L’exécution de la boule dépend de la valeur de la condition. Si est vrai, le
programme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre
l’accolade } .Il retourne ensuite sur la ligne duwhile, procède au même examen,
et ainsi de suite.
==> La boucle ne s’arrête que lorsque prend la valeur fausse, et dans ce cas le
programme poursuit son exécution après la boucle « sortir des accolades ».
Exemple 1:
Remarque :
Si la structure while contient la condition ne devient jamais fausse. Le
programme tourne dans une boucle infinie et n’en sort plus.
Exemple 2 :
Dans cet exemple nous avons une boucle infinie. L’ordinateur ne s’arrêtera
jamais d’afficher le message Bonsoir car la variable i qui est testée dans la
condition n’est jamais incrémenter. Alors pour résoudre le problème de
boucle infinie dans ce cas-là, on incrémente la variable i à chaque tour de
boucle pour afficher Bonsoir 10 fois exactement.
Exercice 1
Ecrire un programme qui calcule la somme S = 1+2+3+4+……..+ 10. Utilisant la
boucle while.
Exercice 2
Ecrire un programme qui calcule la somme S= 1+2+3+4+……..+ N, où N saisi
par l’utilisateur
Exercice 3
Ecrire un programme qui affiche la table de multiplication de 5. Utilisant la
boucle while.
Exercice 4
Ecrire un programme qui affiche la table de multiplication d’un entier saisie par
l’utilisateur, Utilisant la boucle While.
2-3) La boucle for
La boucle for permet de répéter une liste d’instructions un nombre connu de
fois
Syntaxe :
Exemple 1:
Cet exemple permet d’afficher le message bonjour 10 fois, et tant que la
condition est vraie la boucle répète l’exécution des instructions qui se
trouvent entre les accolades.
==> La partie d’initialisation est de type entier. Elle est initialisée par la valeur
initiale, la partieinstruction(s) augmente cette valeur par 1 automatiquement
à chaque tour de boucle jusqu’à la valeur finale
==> Lorsque la valeur compteur vaut la valeur finale, le traitement est exécuté
une seule fois puis le programme sort de la boucle.
Exemple 2:
Ecrire un programme qui affiche Bonjour 10 fois.
Exercice 1
Ecrire un programme qui calcule S= 1+2+3+4+……..+ 10. Utilisant la boucle for.
Exercice 2
Ecrire un programme qui calcule S= 1+2+3+4+……..+ N. Utilisant la boucle for.
Exercice 3
Ecrire un programme qui affiche la table de multiplication de 5. Utilisant la
boucle for
Exercice 4
Ecrire un programme qui affiche la table de multiplication d’un entier saisie par
l’utilisateur, Utilisant la boucle for.
2-4) La boucle do ….While
Cette boucle permet de répéter les instructions qui se trouvent entre les
accolades tant que la condition est vraie.
Remarque : Cette boucle ne s’utilise en général que pour des menus, elle est
dangereuse car il n’y a pas de vérification de la condition avant d’y entrer
Ce type de boucle est très similaire à while, bien qu’un peu moins utilisé en
général.
La seule chose qui change en fait par rapport à while, c'est la position de la
condition. Au li eu d'être au début de la boucle, la condition est à la fin :
Syntaxe :
la boucle while pourrait très bien ne jamais être exécutée si la condition est
fausse dès le départ. Par exemple, si la condition est fausse dès le
début et on ne serait jamais rentré dans la boucle. et Pour la boucle do…
while, c'est différent: cette boucle s'exécutera toujours au moins une fois
même si la condition est fausse
Il est donc parfois utile de faire des boucles de ce type, pour s'assurer que
l'on rentre au moins une fois dans la boucle.
==> !!! N'oubliez pas de mettre un point-virgule après le while, si non votre
programme plantera à la compilation !
Exemple :
En utilisant la boucle do…..while, on écrit un programme qui affiche Bonjour 10
fois.
Exercice 1
Ecrire un programme qui calcule la somme S= 1+2+3+…+ 10. Utilisant la
boucle do…..while.
Exercice 2
Ecrire un programme qui calcule S= 1+2+3+4+……..+ N. Utilisant la boucle do
….while.
Exercice 3
Ecrire un programme qui affiche la table de multiplication de 5. Utilisant la
boucle do….while.
Chapitre 3 : Les Tableaux
1) Introduction
Imaginons que dans un programme, nous avons besoin d’un grand nombre de
variables, il devient difficile de donner un nom pour chaque variable.
Exemple :
Ecrire un programme permettant de saisir quatre notes et de les afficher après
avoir multiplié toutes les notes par trois.
==> La même instruction répète cinq fois. Imaginons que si l’on voudrait
réaliser ce programme avec 100 notes, cela devient très difficile.
==> Pour résoudre ce problème, il existe un type de données qui permet de
définir plusieurs variables de même type.
2) Définition
Un tableau est une suite d’éléments de même type. Il utilise plusieurs cases
mémoire à l’aide d’un seul nom. Comme toutes les cases portent le même
nom, elles se différencient par un numéro ou un indice.
Nous pouvons représenter schématiquement un tableau nommé Note
composé de cinq cases, dans la mémoire comme suit :
3) Tableau à une dimension
3-1) Déclaration d’un tableau statique
La déclaration d’un tableau permet d’associer à un nom d’une zone mémoire
composée d’un certain nombre de cases mémoires de même type.
Syntaxe : type nom_tableau[taille_max] ;
Exemple : float Notes[40] ;
Remarques :
==> Le premier élément d’un tableau porte l’indice 0.
==> La valeur d’un indice doit être un nombre entier.
==> La valeur d’un indice doit être inférieure ou égale au nombre d’éléments
du tableau Par exemple, avec le tableau tab[20], il est impossible
d’écrire tab[21] ou tab[26], ces expressions font référence à des éléments qui
n’existe pas.
==> L’utilisation de ces éléments se fait en suite, via le nom du tableau et son
indice. Ce dernier peut être soit une valeur (tab[3] ) , soit une variable ( tab [i] )
ou encore une expression ( tab[i+1] ).
==> Pour Faire un parcours complet sur un tableau, on utilise une boucle.
Exercice 1
Ecrire un programme permettant de saisir 20 notes et de les stocker dans un
tableau nommé Etudiant, puis les afficher.
Exercice 2
Ecrire un programme permettant de saisir 10 notes et qui affiche la moyenne
de ces notes.
Exercice 3
Ecrire un programme permettant de saisir 12 notes et qui affiche le maximum
de ces notes.
Exercice 4
Ecrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront
stockés dans un tableau. Le programme doit trier le tableau par
ordre croissant et doit afficher le tableau.
Exercice 5
Ecrire un programme qui range les éléments d'un tableau des entiers de taille
10 dans l'ordre inverse. ( NB : utiliser une variable auxiliaire s’appelle aide ).
4) Tableau à deux dimensions
Reprenons l’exemple des notes en considérant cette fois qu’un étudiant a
plusieurs notes (une note pour chaque matière). On peut simplifier des choses
comme suite.
==> Les tableaux à deux dimensions se représentent comme une matrice ayant
un certain nombre de lignes (première dimension) et un certain nombre de
colonne (seconde dimension).
4-1) Déclaration
Type Nom_Tableau [nb_lignes][ nb_colonnes] ;
Exemple : float Tableau[3][4] ;
Remarques:
==> L’utilisation d’une matrice se fait via son nom et ses indices. Ces
derniers peuvent être soient des valeurs (tab[1][3] ) , soient
des variables ( tab [i][j] ) ou encore des expressions ( tab[i+1][j] ).
==> Pour Faire un parcours complet sur une matrice, on utilise deux boucles,
l’une au sein de l’autre, c’est ce qu’on appelle les boucles imbriquées. La
première boucle pour parcourir les lignes tandis que la deuxième est utilisée
pour parcourir les éléments de la ligne précisée par la boucle principale (la
première boucle).
Exemple 1
Ecrire un programme permettant de saisir les notes d’une classe de 30
étudiants en 5 matières.
TWEET
SHARE
PIN IT
WHATSAPP
About Le chemin vers la programmation
Newer Article Java Older Article Algorithmique
BLOGGER
DISQUS
FACEBOOK
AUCUN COMMENTAIRE:
ENREGISTRER UN COMMENTAIRE
MEMBRES
MEMBRES
FACEBOOK
R E C E N T P O P U L A R C O M M E N T S ARCHIVE
Archive avril (2) mars (6) février (4)
SPONSOR
TECHNOLOGY
TAGS
COURS DE LANGAGE CCOURS DE PYTHONLANGAGE C POUR LES
DÉBUTANTSLANGAGE C POUR LES NULSPROGRAMMER EN CPYTHON POUR LES
DÉBUTANTSPYTHON POUR LES NULS
ABOUT ME
CATEGORIES
RECENT NEWS
TAGS
Crafted with by TemplatesYard | Distributed by Responsive Blogger Templates