Langage de programmation C
Ilham ZITI
Langage de programmation C
1er anne TRI
Que signifie le mot programmer ?
Programmer signifie raliser des programmes
informatiques . Les programmes demandent
l'ordinateur d'effectuer des actions.
Votre ordinateur est rempli de programmes en tous
genres :
la calculatrice est un programme ;
votre traitement de texte est un programme ;
votre logiciel de chat est un programme ;
les jeux vido sont des programmes.
Langage de programmation C
1er anne TRI
Programmer, dans quel langage ?
On ne peut s'adresser lordinateur qu'en lui envoyant
des 0 et des 1. Ainsi, si je traduis Fais le calcul 3 + 5
en langage informatique, a pourrait donner quelque
chose comme :
0010110110010011010011110
Ce que vous voyez l, c'est le langage informatique de
votre ordinateur, appel langage binaire. Votre
ordinateur ne connat que ce langage-l
Langage de programmation C
1er anne TRI
Comment parler l'ordinateur plus
simplement qu'en binaire avec des 0 et des 1 ?
Langage de programmation C
1er anne TRI
Comment parler l'ordinateur plus
simplement qu'en binaire avec des 0 et des 1 ?
Il existe de nombreux langages de plus ou moins haut
niveau en informatique dans lesquels vous pouvez crire
vos programmes. En voici quelques-uns par exemple :
le C ;
le C++ ;
Java ;
Visual Basic ;
Delphi ;
etc
Langage de programmation C
1er anne TRI
Langage C
Langage de programmation C
1er anne TRI
Historique
Au tout dbut, on a commenc inventer un langage
de programmation appel l'Algol.
Les choses voluant, on a cr un nouveau langage
appel le CPL, qui volua lui-mme en BCPL, qui prit
ensuite le nom de langage B.
Puis on en est arriv crer un autre langage encore,
qu'on a appel le langage C. Ce langage, s'il a subi
quelques modifications, reste encore un des plus
utiliss aujourd'hui.
Un peu plus tard, on a propos d'ajouter des
amliorations au C, le nouveau langage, que l'on a
appel C++, est entirement bas sur le C.
Langage de programmation C
1er anne TRI
En rsum
Pour raliser des programmes informatiques, on doit crire dans un
langage que l'ordinateur comprend .
Le langage C que nous allons tudier est parmi les langages de
programmation les plus clbres et les plus utiliss au monde.
Le code source est une srie d'instructions crites dans un langage
informatique.
Le compilateur est un programme qui transforme votre code
source en code binaire, qui peut alors tre excut par votre
processeur.
La programmation ne requiert pas en elle-mme de connaissances
mathmatiques mais il est ncessaire d'avoir un bon sens de la
logique et d'tre mthodique.
Langage de programmation C
1er anne TRI
Les outils ncessaires au programmeur
Un diteur de texte pour crire le code source du
programme. En thorie un logiciel comme le Bloc-notes
sous Windows, ou vi sous Linux fait l'affaire;
Un compilateur pour transformer votre source en binaire ;
Un dbogueur pour vous aider traquer les erreurs dans
votre programme.
Langage de programmation C
1er anne TRI
Les outils ncessaires au programmeur
Soit on rcupre chacun de ces trois programmes
sparment. C'est la mthode la plus complique,
mais elle fonctionne. Sous Linux en particulier, bon
nombre de programmeurs prfrent utiliser ces trois
programmes sparment;
Soit on utilise un programme trois-en-un qui
combine diteur de texte,compilateur et dbogueur.
Ces programmes trois-en-un sont appels IDE
Langage de programmation C
1er anne TRI
10
Choisissez votre IDE
Code::Blocks. Il est gratuit et fonctionne sur la plupart
des systmes d'exploitation.
Le plus clbre IDE sous Windows, c'est celui de
Microsoft : Visual C++. Il existe la base en version
payante, mais il existe une version gratuite intitule
Visual C++ Express .Fonctionne sous Windows
uniquement.
Sur Mac OS X, vous pouvez utiliser Xcode, gnralement
fourni sur le CD d'installation de Mac OS X.
Langage de programmation C
1er anne TRI
11
Code::Blocks
la barre d'outils
la liste des
fichiers du
projet
la zone principale
la zone de notification
Langage de programmation C
1er anne TRI
12
Crer un nouveau projet
Pour crer un nouveau projet, c'est trs simple : allez
dans le menu File / New / Project.
Langage de programmation C
1er anne TRI
13
Crer un nouveau projet
On vous demande ensuite si vous allez faire du C ou du
C++ : rpondez C .
Langage de programmation C
1er anne TRI
14
Crer un nouveau projet
On vous demande le nom de votre projet) et dans quel
dossier les fichiers source seront enregistrs.
Langage de programmation C
1er anne TRI
15
Crer un nouveau projet
Enfin, la dernire page vous permet de choisir de quelle
faon le programme doit tre compil.
Langage de programmation C
1er anne TRI
16
Premier programme
Langage de programmation C
1er anne TRI
17
Indentation
Lindentation consiste en lajout de tabulations ou despaces
dans un code source. Un code bien indent est un code clair
et agrable lire
Langage de programmation C
1er anne TRI
18
Les commentaires
Il est souvent ncessaire de commenter son code source pour
dcrire des passages un peu moins lisibles ou tout simplement
pour offrir quelques complments dinformation au lecteur du
code. Un commentaire est ignor par le compilateur
Un commentaire en C est crit entre les signes /* et */ ou
aprs //:
// ceci est un commentaires
/* ceci est un commentaire */
Langage de programmation C
1er anne TRI
19
Les variables
Langage de programmation C
1er anne TRI
20
Dclarer une variable
Une variable est constitue de deux lments obligatoires
Un identificateur : cest le nom de la variable
Un type : Le type dune variable permet dindiquer ce
que lon veut stocker : un nombre entier, un nombre
virgule , un caractre, etc.
Une fois dcid du nom de la variable, ainsi que son
type, on peut la crer on dit aussi la dclarer comme
ceci :
type identificateur;
Langage de programmation C
1er anne TRI
21
Les types
Permet dindiquer au compilateur quel type de
donnes on veut stocker
Le langage C fournit 8 types de base :
Type
Sert stocker
char
Un caractre ou un entier
short
Un entier
int
Un entier
long
Un entier
unsigned
Un entier positif
float
Un flottant
double
Un flottant
long double
Un flottant
Langage de programmation C
1er anne TRI
22
Les types
Pourquoi existe t-il autant de types diffrents ?
La taille des mmoires tait trs limite lpoque o
le langage C a t cr.
De manire gnrale il faut retenir les deux suites
dingalits suivantes :
char short int long et float double long double.
Langage de programmation C
1er anne TRI
23
Les types
En pratique, on utilisera surtout
char pour les caractres,
int pour les entiers,
double pour les flottants.
Langage de programmation C
1er anne TRI
24
Les identificateurs
un identificateur est un nom donn une variable pour
la diffrencier cest au programmeur de le choisir.
Cependant, il y a quelques limitations ce choix:
On ne peut utiliser que les 26 lettres de lalphabet latin :
pas daccents, pas de ponctuation ni despaces. Le
caractre underscore ( _ ) et les chiffres sont
cependant accepts.
Un identificateur ne peut pas commencer par un
chiffre.
Langage de programmation C
1er anne TRI
25
Les identificateurs
Les mots-cls ne peuvent pas servir identifier une
variable ; on ne peut donc pas utiliser ces mots :
Langage de programmation C
1er anne TRI
26
Exemple
Par exemple, si je veux crer ma variable nombreannee de
type int , je dois taper la ligne suivante :
int nombreannee;
Langage de programmation C
1er anne TRI
27
Les constantes
Il arrive parfois que l'on ait besoin d'utiliser une
variable dont on voudrait qu'elle garde la mme
valeur pendant toute la dure du programme. Ces
variables particulires sont appeles constantes.
Pour dclarer une constante, c'est en fait trs simple
il faut utiliser le mot const.
Exemple de dclaration de constante :
const int nombreannee= 5;
Langage de programmation C
1er anne TRI
28
Afficher le contenu d'une variable
La fonction printf permet dafficher du texte, comment
faire pour afficher une variable ?
On utilise printf de la mme manire, sauf que l'on
rajoute un symbole spcial l'endroit o l'on veut
afficher la valeur de la variable. Par exemple :
Printf ( "Il vous reste %d vies" nombreannee );
Langage de programmation C
1er anne TRI
29
Afficher le contenu d'une variable
Format
Type attendu
%d
int
%ld
log
%f
Float
%f
double
Langage de programmation C
1er anne TRI
30
Afficher plusieurs variables dans un
mme printf
Printf ( "Vous avez %d vies et vous tes au niveau n
%d", nombreDeVies, niveau);
Langage de programmation C
1er anne TRI
31
Rcuprer une saisie
On va apprendre demander l'utilisateur de taper un
nombre dans la console. Ce nombre, on va le rcuprer
et le stocker dans une variable.
On utilise la fonction: scanf :
int age = 0;
scanf("%d", &age);
- Il faut mettre le %d entre guillemets.
- Il faut mettre le symbole & devant le nom de la variable
qui va recevoir la valeur.
Langage de programmation C
1er anne TRI
32
Rcuprer une saisie
Attention, il y a une petite divergence de format entre
printf et scanf
Pour rcuprer un float, c'est le format "%f" qu'il
faut utiliser,
Pour le type double c'est le format "%lf".
Langage de programmation C
1er anne TRI
33
Les fonctions dentre/sortie
Les fonction les plus utilises en C sont
Entre et sortie de donnes : <stdio.h>
Traitement de chanes de caractres : <string.h>
Fonctions d'aide gnrales - gestion de la mmoire :
<stdlib.h>
Fonctions arithmtiques : <math.h>
Langage de programmation C
1er anne TRI
34
En Rsum
Dans notre code source, les variables sont des donnes
stockes temporairement en mmoire vive. La valeur de
ces donnes peut changer au cours du programme.
l'oppos, on parle de constantes pour des donnes
stockes en mmoire vive. La valeur de ces donnes ne
peut pas changer.
Il existe plusieurs types de variables, qui occupent plus ou
moins d'espace en mmoire. Certains types comme int
sont prvus pour stocker des nombres entiers, tandis que
d'autres comme double stockent des nombres dcimaux.
La fonction scanf permet de demander l'utilisateur de
saisir un nombre.
Langage de programmation C
1er anne TRI
35
Les calculs de base
addition ;
soustraction;
multiplication ;
division ;
Modulo.
Langage de programmation C
1er anne TRI
36
Addition
Pour faire une addition, on utilise le signe +
Il faut mettre le rsultat du calcul dans une variable
Lors de la dclaration de la variable il faut lui affecter la
valeur 0
int resultat = 0;
resultat = 5 + 3;
printf("5 + 3 = %d", resultat);
Langage de programmation C
1er anne TRI
37
Exemple
int main()
{
int resultat = 0, nombre1 = 0, nombre2 = 0;
// On demande les nombres 1 et 2 l'utilisateur :
printf("Entrez le nombre 1 : ");
scanf("%d", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%d", &nombre2);
// On fait le calcul :
resultat = nombre1 + nombre2;
// Et on affiche l'addition l'cran :
printf ("%d + %d = %d\n", nombre1, nombre2, resultat);
return 0;
}
Langage de programmation C
1er anne TRI
38
La division
Pour faire la division, on utilise le signe
int resultat = 0;
resultat = 5 / 2;
printf ("5 / 2 = %d", resultat);
double resultat = 0;
resultat = 5.0 / 2.0;
printf ("5 / 2 = %f", resultat);
5/2=2;
10 / 3 = 3 ;
4 / 5 = 0.
5.0 / 2.0 = 2.5 ;
10.0 / 3.0 = 3.33333 ;
4.0 / 5.0 = 0.8.
Langage de programmation C
1er anne TRI
39
Le modulo
Le modulo est une opration mathmatique qui
permet d'obtenir le reste d'une division
Le modulo, se reprsente par le signe %
Voici quelques exemples de modulos :
5%2=1;
14 % 3 = 2 ;
4 % 2 = 0.
int resultat = 0;
resultat = 5 % 2;
printf ("5 / 2 = %d", resultat);
Langage de programmation C
1er anne TRI
40
Raccourcis
nombre = nombre * 2;
nombre *= 2;
int nombre = 2;
nombre += 4; // nombre vaut 6
nombre -= 3; // nombre vaut maintenant 3
nombre *= 5; // nombre vaut 15
nombre /= 3; // nombre vaut 5
nombre %= 3; // nombre vaut 2 (car 5 = 1 * 3 + 2)
Langage de programmation C
1er anne TRI
41
L'incrmentation
Nous serons souvent amens ajouter 1 une
variable. Au fur et mesure du programme, vous
aurez des variables qui augmentent de 1 en 1.
nombre = nombre + 1;
nombre++;
Langage de programmation C
1er anne TRI
42
La dcrmentation
C'est tout l'inverse de l'incrmentation : on enlve 1
une variable.
nombre = nombre - 1;
nombre--;
Langage de programmation C
1er anne TRI
43
Fonctions mathmatiques standard
Nous avons dj utilis les fonctions printf et scanf
de la bibliothque stdio.h.
La bibliothque math.h contient de nombreuses
fonctions mathmatiques telque :
Langage de programmation C
1er anne TRI
44
Manipulations basiques des
entres/sorties
Langage de programmation C
1er anne TRI
45
Les sorties
Nous allons voir trois fonctions daffichage de donnes:
printf :pour crire une chane de caractres formate ;
puts :pour crire une chane de caractres toute simple ;
putchar: pour crire un caractre.
Langage de programmation C
1er anne TRI
46
Printf
Cette fonction permet non seulement d'afficher des
chanes de caractres simples, mais galement la
valeur d'une variable passe en paramtre
printf ("Votre texte...");
printf("%[lettre]", variable_a_afficher);
Langage de programmation C
1er anne TRI
47
Printf
Caractre d'chappement
Caractre dchappement
Signification
\n
Retour la ligne
\t
Tabulation horizontale
Affiche une apostrophe
\"
Affiche un guillemet
\\
Affiche un antislash
%%
Affiche un %
Langage de programmation C
1er anne TRI
48
Printf
Prcision
Lorsqu'on affiche un flottant il y a un certain nombre
de zros qui suivent. Afin de supprimer certains zros
inutiles, vous pouvez prciser la prcision de
laffichage. Une prcision, sous la forme dun point
('.') suivi par un nombre, indique donc le nombre de
chiffres quil y aura derrire la virgule.
double x = 42.42734;
printf("%.2f", x);
Langage de programmation C
1er anne TRI
49
puts
Lutilisation de la fonction puts est plus simple puisquelle
ne se contente d'afficher que des chanes de caractres
simples.
puts ("Chaine de caractre");
Langage de programmation C
1er anne TRI
50
putchar
La fonction putchar affiche tout simplement un
seule caractre.
char caractere = 'Z';
putchar(caractere);
Langage de programmation C
1er anne TRI
51
Exercice
Programme de coder une minicalculatrice qui :
Dit bonjour ;
Demande deux nombres entiers lutilisateur ;
Les additionne, soustrait, multiplie et les divise ;
Dit au revoir.
Langage de programmation C
1er anne TRI
52
Corriger
#include <stdio.h>
int main(void)
{
int nombre_1, nombre_2;
printf("Bonjour !\n\n");
/* On demande a l'utilisateur deux nombres */
printf("Veuillez saisir le premier nombre : ");
scanf("%d", &nombre_1);
printf("Veuillez saisir le deuxime nombre : ");
scanf("%d", &nombre_2);
/* Puis on effectue des calculs */
printf("\nCalculs :\n\n");
printf("\t%d + %d = %d\n", nombre_1, nombre_2, nombre_1 +
nombre_2);
printf("\t%d - %d = %d\n", nombre_1, nombre_2, nombre_1 nombre_2);
printf("\t%d * %d = %d\n", nombre_1, nombre_2, nombre_1 *
nombre_2);
printf("\t%d / %d = %.3f\n", nombre_1, nombre_2, (double)
nombre_1 / nombre_2);
printf("\nAu revoir !");
return 0;
Langage de programmation C
}
1er anne TRI
53
Les conditions
Langage de programmation C
1er anne TRI
54
Les conditions
Langage de programmation C
1er anne TRI
55
Comparaisons
L'criture d'expression avec des oprateurs est similaire aux
critures mathmatiques
Langage de programmation C
1er anne TRI
56
Comparaison
Ces oprateurs vont avoir un rsultat : vrai si la
condition est vrifie, et faux si la condition est
fausse.
Le langage C impose que :
Faux soit reprsent par un zro ;
Vrai par un .
Int main( )
{
printf ("10 == 20 renvoie %d\n", 10 == 20);
printf ("10 != 20 renvoie %d\n", 10 != 20);
printf ("10 < 20 renvoie %d\n", 10 < 20);
printf ("10 > 20 renvoie %d\n", 10 > 20);
return 0;
}
Langage de programmation C
1er anne TRI
57
Les opration logique
Il existe trois oprateurs logiques. L'oprateur
ET, l'oprateur OU, et l'oprateur NON
Langage de programmation C
1er anne TRI
58
L'oprateur ET
L'oprateur ET va manipuler deux boolens. Il va
renvoyer "vrai" si les deux boolens sont vrais, et
renverra faux sinon.
Cet oprateur s'crit &&. Il s'intercalera entre les
deux comparaisons
Langage de programmation C
1er anne TRI
59
L'oprateur OU
Cet oprateur s'crit ||. Il s'intercalera entre les deux
boolens ou les deux comparaisons combiner.
Langage de programmation C
1er anne TRI
60
L'oprateur NON
Cet oprateur se note !
Par exemple, si je veux vrifier qu'un nombre n'est pas
dans l'intervalle [0 1000] : ! ( a >= 0 && a <= 1000 ).
Langage de programmation C
1er anne TRI
61
Mlanger les oprateurs
on peut aussi mlanger ces oprateurs pour crer des
conditions encore plus complexes. Voici un exemple:
int nb_1 = 3, nb_2 = 64, nb_3 = 12, nb_4 = 8, nb_5 = -5, nb_6 = 42;
int boolean = ((nb_1 < nb_2 && nb_2 > 32) ||
(nb_3 < nb_4 + nb_2 || nb_5 == 0)) &&
(nb_6 > nb_4);
printf("La valeur logique est egale a : %d\n", boolean);
Langage de programmation C
1er anne TRI
62
Parenthses
En mathmatique on doit utiliser des parenthses dans
nos quations; et bien c'est pareil avec des expressions
utilisant des oprateurs logiques
printf( "%d\n", (a && b) || (c && d) );
Est diffrent de :
printf( "%d\n", a && (b || c) && d );
Langage de programmation C
1er anne TRI
63
L'instruction if
L'instruction if ressemble ceci :
if (/* Expression logique */ )
{
/* Une ou plusieurs instructions */
}
Langage de programmation C
1er anne TRI
64
L'instruction if
Exemple :
int nombre_1 = 10, nombre_2 = 20;
if (nombre_1 < nombre_2)
{
printf("%d est inferieur a %d\n", nombre_1, nombre_2);
}
printf("Fin du test\n");
Langage de programmation C
1er anne TRI
65
Linstruction else
if (/*Expression logique*/)
{
/*Une ou plusieurs instructions*/
}
else
{
/*Une ou plusieurs instructions*/
}
Langage de programmation C
1er anne TRI
66
Exercice
Crer un programme qui indique si il fait nuit
ou jour . On suppose qu'il fait jour de 9
heures 20 heures, et qu'il fait nuit sinon.
Langage de programmation C
1er anne TRI
67
Corriger
int main(void)
{
int heure;
scanf("%d", &heure);
if(heure > 8 && heure < 20)
{
printf("Il fait jour.\n");
}
else
{
printf("Il fait nuit.\n");
}
return 0;
}
Langage de programmation C
1er anne TRI
68
Linstruction : If / else if
Les instructions if et else sont trs utiles. Et lorsqu'on
les utilise, il arrive parfois que l'on imbrique plusieurs
instructions if ou else
if (condition)
{
/* du code */
}
else
{
/* plusieurs instructions */
if (autre condition)
{
/* du code */
}
}
Langage de programmation C
1er anne TRI
69
Linstruction : If / else if
if (/*Expression logique*/)
{
/*Une ou plusieurs instructions*/
}
else if (/*Expression logique*/)
{
/*Une ou plusieurs instructions*/
}
Langage de programmation C
1er anne TRI
70
Linstruction : If / else if
Exemple
int main(void)
{
int heure = 11;
if(heure >= 7 && heure <= 12)
{
printf("On est le matin !\n");
}
else if(heure >= 9 && heure <= 12)
{
printf("Le petit dejeune, c'est fini !\n");
}
else if(heure < 7 || heure > 12)
{
printf("On est soit l'aprem', soit le soir, soit la nuit.\n");
}
return 0;
}
Langage de programmation C
1er anne TRI
71
Exercice
Vous ayez un score de jeu vido sous la main :
Si le score est infrieur 2000, afficher "C'est la
catastrophe"
Si le score est suprieur ou gal 2000 et que le
score est infrieur 5000, afficher "Tu peux mieux
faire"
Si le score est suprieur ou gal 5000 et que le
score est infrieur 9000, afficher "Tu es sur la
bonne voie"
Sinon, afficher "Tu es le meilleur !"
Langage de programmation C
1er anne TRI
72
Corriger
int main(void)
{
int score;
printf ("Quel est le score du joueur : ");
scanf ("%d", &score);
if (score < 2000)
{
printf ("C'est la catastrophe\n");
}
else if (score >= 2000 && score < 5000)
{
printf("Tu peux mieux faire \n");
}
else if (score >= 5000 && score < 9000)
{
printf("Tu es sur la bonne voie\n");
}
else
{
printf("Tu es le meilleur !\n");
}
return 0;
Langage de programmation C
}
1er anne TRI
73
L'instruction switch
L'instruction switch permet de comparer successivement
une variable une ou plusieurs valeurs
switch (/* variable */)
{
case /* comparant_1 */ :
/* Instructions */
break;
case /* comparant_2 */ :
/* Instructions */
break;
/* Etc... */
default: /* Si aucune comparaison n'est juste */
/* Instruction(s) excuter dans ce cas */
break;
}
Langage de programmation C
1er anne TRI
74
L'instruction switch
switch compare une variable une liste de comparants.
Chaque comparant est dfini l'aide d'un case.
Si la comparaison est vraie, alors le switch excute
toutes les instructions jusqu'au prochain break permet
de mettre fin une itration
Si aucune comparaison n'est bonne, alors ce sont les
instructions associes au default qui seront excutes.
Langage de programmation C
1er anne TRI
75
Exercice
Programme permettant de comparer la variable
note 0, 1, 2, 3, 4 et 5
Langage de programmation C
1er anne TRI
76
Corriger
int main(void)
{
int note;
printf("Quelle note as-tu obtenu : ");
scanf("%d", ¬e);
switch(note)
{
/* si note == 0 */
case 0:
puts("No comment.");
break;
/* si note == 1 */
case 1:
puts("Cela te fait 4/20, c'est accablant.");
break;
/* si note == 2 */
case 2:
puts("On se rapproche de la moyenne, mais ce n'est pas encore ca.");
break;
/* si note == 3 */
case 3:
puts("Tu passes.");
break;
/* si note == 4*/
case 4:
puts("Bon travail, continue ainsi !");
break;
/* si note == 5 */
case 5:
puts("Excellent !");
break;
/* si note est diffrente de 0, 1, 2, 3, 4 et 5 */
default:
puts("Euh... tu possedes une note improbable.");
break;
}
return 0;
}
Langage de programmation C
1er anne TRI
77
Les boucles
Langage de programmation C
1er anne TRI
78
La boucle while
La syntaxe de la boucle while est assez simple
while (/* expression booleenne */ )
{
/* bloc d'instruction rpter */
}
Langage de programmation C
1er anne TRI
79
La boucle while
Exemple:
int i = 0;
while (i < 5)
{
printf("La variable i vaut %d\n", i);
i++;
}
Au tout dpart, la variable i vaut 0. On rentre dans la boucle.
On affiche la valeur de i.
On incrmente i, qui vaut maintenant 1.
On recommence la boucle.
Quand la variable i vaudra 5, la condition sera fausse, et le while
ne sera alors pas excut
Langage de programmation C
1er anne TRI
80
Exercice
On va vous demander de crer code qui vrifie si un
nombre est premier
pour rappel, un nombre premier est divisible
uniquement par 1 et par lui-mme.
Langage de programmation C
1er anne TRI
81
Corriger
int main(void)
{
int nombre, i = 2;
puts("nombre = ");
scanf("%d", &nombre);
while ((i < nombre) && (nombre % i != 0))
{
++i;
}
if (i == nombre)
{
puts("nombre est premier");
}
else
{
puts("nombre n'est pas premier");
}
return 0;
Langage de programmation C
1er anne TRI
}
82
La boucle do-while
int i = 0;
do
{
printf("La variable i vaut %d\n", i);
++i;
} while (i < 5);
Le while ne s'excute pas si la condition est fausse,
alors que le do while s'excute
Langage de programmation C
1er anne TRI
83
La boucle for
Une boucle for se dcompose en trois parties :
l'initialisation du compteur : on prpare le compteur
en l'initialisant la valeur que l'on veut ,le plus
souvent c'est 0 ;
la condition : comme pour les deux autres boucles, il
faut une condition. Tant qu'elle est vraie, la boucle
s'excute ; elle se stoppe ds qu'elle devient fausse ;
la modification du compteur : cette tape modifie le
compteur. Mme s'il s'agit le plus souvent d'une
incrmentation.
Langage de programmation C
1er anne TRI
84
La boucle for
La syntaxe de cette boucle est assez diffrente du while
for (initialisation du compteur ; condition ; modification du compteur)
{
Instructions;
}
int variable;
for (variable = 0 ; variable < 10 ; variable++)
{
Printf ("variable vaut %d\n", variable);
}
Langage de programmation C
1er anne TRI
85
Exercice
Programme qui permet de calculer la somme
de tous les nombres compris entre 1 et 50
Langage de programmation C
1er anne TRI
86
Corriger
#include <stdio.h>
int main (void)
{
const unsigned int n = 250;
unsigned int somme = 0;
unsigned int i;
for (i = 1; i <= n; ++i)
{
somme += i;
}
printf ("%d\n", somme);
return 0;
}
Langage de programmation C
1er anne TRI
87
La boucle for
Plusieurs compteurs
for (i = 0, j = 2 ; i < 10 && j < 12; i++, j += 2)
Boucles imbriques :
Il est possible d'imbriquer les boucles. Cela consiste
simplement mettre une ou plusieurs boucles
Langage de programmation C
1er anne TRI
88
Les branchements
Il existe ainsi trois grands branchements inconditionnels
en C :
celui qui permet de passer au tour de boucle suivant,
sans finir celui en cours : continue ;
celui qui permet (entre autres) de quitter la boucle en
cours : break ;
Langage de programmation C
1er anne TRI
89
Break
Son but Permettre de quitter une boucle
Pour (i = 0 ; i < 10 ; i++)
{
Si i == 5
Quitter la boucle;
Sinon afficher i;
}
int i;
for (i = 0 ; i < 10 ; i++)
{
if (i == 5)
break;
printf("i = %d\n", i);
}
Langage de programmation C
1er anne TRI
90
Continue
Le deuxime mot-clef est continue. Son rle est d'arrter
l'itration en cours et de passer la suivante
Pour (i = 0 ; i < 10 ; i++)
{
Si i == 5
continue;
Sinon afficher i;
}
Langage de programmation C
1er anne TRI
91
Exercice
Calcul du PGCD de deux nombres
Pour rappel, le PGCD de deux nombres a et b, n'est rien
d'autre que le plus grand nombre qui peut diviser la
fois a et b.
Cet algorithme est trs simple. On suppose que a est
suprieur b. On commence par affecter la valeur de a
b, ensuite, on attribue la valeur de b r (le reste).
Puis, calculer le reste r de la division de a par b; et on
recommence toutes ces tapes jusqu' ce que le reste
soit nul. On a alors trouv le rsultat : c'est le b qui a
t obtenu la fin de ce processus.
Langage de programmation C
1er anne TRI
92
Corriger
#include <stdio.h>
int main (void)
{
unsigned int a = 46;
unsigned int b = 42;
unsigned int reste = a % b;
while (reste != 0)
{
a = b;
b = reste;
reste = a % b;
}
printf ("%d", b);
return 0;
}
Langage de programmation C
1er anne TRI
93