Exemples de programmes

Voyons quelques exemples de programmes pour nous familiariser avec C++. Lisez-les, éventuellement, saisissez-les, mais ne vous prenez pas trop la tête avec.

int

//exemple 1 - Variable de type entier
#include <iostream.h>
void main()
{
int N;
N = 666;
cout <<"la valeur de N est ";
cout <<N<< endl;
cout <<"la variable N occupe ";
cout <<sizeof (N) <<" octets."<<endl;
}
commentaire
fichier d'en-tête pour l'affichage
déclaration du programme principal
début de bloc
déclaration
affectation
affichage d'une chaîne de caractère
affichage de N et passage à la ligne
.
.
fin de bloc

Résultat d'exécution :

la valeur de N est 666
la variable N occupe 4 octets

char

//exemple 2 - Variable de type caractère
#include <iostream.h>
void main() {
char UnCaractere;
UnCaractere = 'C';
cout <<"le caractère est : "<<UnCaractere
<<" et il occupe "<<sizeof(UnCaractere)
<<" octets"<<endl;
cout <<"le code ASCII de "
<<UnCaractere<< " est "
<<int(UnCaractere)<<endl;
}
.
.
.
.
des apostrophes pour un caractère
.
.
.
.
.
conversion d'un caractère vers un entier
.

Résultat d'exécution :

le caractère est : C et il occupe 1 octets
le code ASCII de C est 67

double

//exemple 3 - Variables de type réel
#include <iostream.h>
void main() {
double x,y;
x = 12.3456789
y = x + 5.4e-2
cout <<"x="<<x<<" y="<<y<<endl;
}
.
.
.
.
.
une autre notation pour 0.054 (5.4 x 10 puissance-2)
.
.

Résultat d'exécution :

x=12.3456789 y=12.3997

Entrée et Sortie (E/S)
 

Un peu de cours...

Entrée : saisir une information depuis un périphérique (clavier généralement) et la mettre dans une variable.

Sortie : prendre une information d'une variable et la mettre sur un périphérique (normalement l'écran)

En C++, le canal d'entrée se nomme cin et le canal de sortie s'appelle cout.

saisie d'une variable : cin>>variable;
affichage d'une variable : cout<<variable;

Mémo : La direction des "flèches" indique le sens du tranfert de l'information. Pour la saisie, l'information vient de l'entrée (cin) et va dans la variable, donc la direction de la flèche est de cin vers la variable. Pour l'affichage, l'information vient de la variable et va à la sortie (cout), donc la direction de la flèche est de la variable vers cout.

 int

#include <iostream.h>
void main()
{
int Nombre, Carredunombre;
cout<<"entrez un nombre :";cin>>Nombre;
Carredunombre = Nombre*Nombre;
cout<<"le carré de "<<Nombre<<" est "<<Carredunombre<<endl;


Résultat d'exécution
:
 

entrez un nombre : 13
le carré de 13 est 169 
13 est tapé par l'utilisateur
 


char

#include <iostream.h>
void main() {
char UnCaractere;
cout<<"Tapez un caractère et je vous donnerais son code ASCII :";
cin>>UnCaractere;
cout<<"Le code ASCII de "<<UnCaractere<< " est " <<int(UnCaractere)<<endl;


Résultat d'exécution
:
 

Tapez un caractère et je vous donnerais son code ASCII : Y
Le code ASCII de Y est 89 

 
Double 

#include <iostream.h>
void main(){
double PrixUnite, Reduction, PrixTotal;
int NbUnite;
cout<<"Entrez le prix par unité : ";cin>>PrixUnite;
cout<<"Entrez le nombre d'unités : ";cin>>NbUnite;
cout<<"Entrez le coefficient de la réduction obtenue : ";cin >>Reduction;
PrixTotal = PrixUnite*NbUnite*(1-Reduction);
cout<<"Le prix total est :"<<PrixTotal<<" francs"<<endl;


Résultat d'exécution
:
 

Entrez le prix par unité : 12000
Entrez le nombre d'unité : 20
Entrez le coefficient de la réduction obtenue : 0.1
Le prix total est : 216000 francs 

Instructions de contrôle

Instructions conditionnelles

Algorithmique C++
Si condition alors instruction if (condition) instruction;
Si condition alors
début
instructions
fin
if (condition)
{
instructions;
}
Si condition
alors début
instructions
fin
sinon début
instructions
fin
if (conditions){
instructions;
}
else {
instructions
}

Exemples :

if (nombre<0) Nombre=-Nombre; calcule la valeur absolue

 

char Reponse;
cout << "Voulez-vous... (o/n)? ";cin>>Reponse;
if (Reponse=='o')
cout<< "La réponse est oui. ";
else if (Reponse=='n')
cout << "La réponse est non. ";
else
cout << "La réponse est ambiguë. ";
demander une réponse de l'utilisateur
.
si la réponse est "Oui"
.
si la réponse est "Non"

.
.
.

Conditions

Voici les opérateurs qui sont utilisés :

opérateurs de comparaison : > (strictement supérieur) < (strictement inférieur) >= (supérieur ou égal) <= (inférieur ou égal) != (différent de) ==(égal à)
opérateurs logique : && (et) || (ou) ! (non)

(Condition 1 && Condition 2) est vraie quand les 2 conditions sont vraies
(Condition 1 || Condition 2) est vraie quand l'une des 2 est vraie
!Condition est vraie si Condition n'est pas vraie

Exemples :

if (N<0)...
if (A*B<0)...
if (N>=6 && N<=13)...
si N est négatif
si un et seulement un des nombres est négatif
si N est compris entre 6 et 13

While

Algorithmique C++
Tant que condition faire
début
instructions
fin
while (condition)
{
instructions
}

Exemples :

cout << "Tapez oui/non (o/n)"; cin>>Reponse;
while (Reponse != 'o' && Reponse != 'n') {
cout << " J'ai dit de taper 'o' ou 'n' !! Il faut obéir à ce que je dis ! ";
cin >> Reponse;
}

tant que la réponse n'est pas bonne


Nombre d'itérations est connu d'avance :

Compteur = 0;
while (Compteur<NombreIterations) {
.....
.....
Compteur = Compteur+1;
}
initialisation (amorçage)
contrôle (test)
corps de la boucle (traitement)

incrémentation (relance)

Exemple :

Somme = 0;
Compteur = 1;
while (Compteur<= 13){
Somme = Somme+Compteur;
Compteur = Compteur+1;
}
cout<<"la somme des nombres entre 1 et 13 est "<<Somme;
initialisation (amorçage)
test (condition)
corps de la boucle (traitement)
incrémentation (relance)


For

Algo Pour Compteur<== ValInitiale à ValFinale faire
début
instructions
fin
C++ for (Compteur = ValInitiale; Compteur<=ValFinale;Compteur=Compteur+1)
{
instructions
}
Algo Pour Compteur <= ValInitiale à ValFinale par Pas faire
début
instructions
fin
C++ for
(Compteur=ValInitiale;Compteur<=ValFinale;Compteur=Compteur+Pas)
{
instructions
}

Equivalence de for et while en C++

amorçage
while (condition) {
corps de la boucle
relance
}
for (amorçage;condition;relance) {
corps de la boucle
}

Exemples :

Somme=0;
for (N=1;N<100;N=N+2)
Somme=Somme+N
calculer la somme des nombres impairs entre 1 et 100
for (Car='A';Car<='Z';Car=Car+1
cout<<Car;
afficher toutes les majuscules
for (N=0;N<13;N=N+1) cout<<'*';
for (N=1; N<=13;N=N+1) cout <<'*';
affichage de 13 étoiles
une autre façon d'écrire la même chose
for (N=99; N>=10; N=N-1)
cout<<N<<"";
afficher les nombres à 2 chiffres dans l'ordre inverse

do while

Algorithmique C++
Répéter
instructions
Jusqu'à condition
do {
corps de la boucle
} while (condition);

Répéter jusqu'à  continue l'itération tant que la condition n'est pas vraie (jusqu'à ce qu'elle devienne vraie).

Comparaison des boucles while et do-while

while (condition){
     traitement
}
do {
     traitement
} while (condition);

La seule différence entre ces deux boucles est le moment de vérification de la condition :

while : la condition est vérifiée avant chaque expression du traitement. Le traitement ne peut donc pas être exécuté.

do-while : la condition est vérifiée après chaque exécution du traitement. Le traitement est exécuté au moins une fois.

Exemples :

do
     cin>>Car;
while (Car<'0'||Car>'9');

lecture des caractères jusqu'à un chiffre

do{
     cout<<"Tapez un nombre négatif : ";cin>>Nombre;
} while (Nombre>=0);

saisir un nombre négatif avec vérification. Le même programme avec la boucle while :

cout<<"Tapez un nombre négatif : ";cin>>Nombre;
while (Nombre>=0) {
    cout<<"Tapez un nombre négatif : ";cin>>Nombre;
}