SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Programmation en langage C
Fahad R. Golra
Faculté des Sciences et Technologies
Université de Lorraine
Séance 1 – Types, Operateurs, Conditions,
Boucles
2 25/09/2017
Historique
Programmation en langage C, Université de Lorraine
Le C à été conçu en 1972 par Dennis
Ritchie et Ken Thompson, chercheurs
aux Bell Labs, afin de développer un
système d’exploitation UNIX.
3 25/09/2017
Hello World!
Programmation en langage C, Université de Lorraine
• Il faut sauvegarder ce fichier
et lui donner un nom; on
l’appellera ”prem.c” par
exemple.
• Il faut compiler ce programme
pour le transformer en code
objet. Code exécutable par la
machine: gcc prem.c -o prem
• L’exécution du programme se
fait en tapant dans le console:
./prem
• L’ordinateur affichera alors:
Bonjour tout le monde!
#include <stdio.h>
int main (void) // le fonction main()
{
printf (˝Bonjour tout le monde !˝) ;
return (0) ;
}
4 25/09/2017
Hello World!
Programmation en langage C, Université de Lorraine
• Il faut sauvegarder ce fichier
et lui donner un nom; on
l’appellera ”prem.c” par
exemple.
• Il faut compiler ce programme
pour le transformer en code
objet. Code exécutable par la
machine: gcc prem.c -o prem
• L’exécution du programme se
fait en tapant dans le console:
./prem
• L’ordinateur affichera alors:
Bonjour tout le monde!
#include <stdio.h>
int main (void) // le fonction main()
{
printf (˝Bonjour tout le monde !˝) ;
return (0) ;
}
Importation des bibliothèques
Corps du programme
• Un programme en langage C est constitué des six
groupes de composants élémentaires suivants :
• les identificateurs
• les mots-clefs
• les constantes
• les chaînes de caractères
• les opérateurs
• les signes de ponctuation
5 25/09/2017
Les composants élémentaires du C
Programmation en langage C, Université de Lorraine
6 25/09/2017
Les commentaires
Programmation en langage C, Université de Lorraine
• Le compilateur ignore les
commentaires
• Deux sorts de commentaires
• Multi-lignes
• Un seul ligne
• Il n’est pas possible d’imbriquer
des commentaires
/*ceci /* est un commentaire */ */
/* Voici mon premier programme C que
j’ai écrit le vendredi 8 septembre
2017 */
#include <stdio.h>
int main (void) // le fonction main()
{
printf (˝Bonjour tout le monde !˝) ;
return (0) ;
}
• Dans un programme C les variables, les
fonctions, les types etc. sont désignés par un
nom qu’on appelle identificateur
• Suite de caractères ( lettres, chiffres ou _ )
qui commence par une lettre ou _
• Les lettres accentuées sont à éviter : certains
compilateurs les acceptent d’autres non
• Attention, le C fait la différence entre
minuscule et majuscule :
Ligne_lig ≠ ligne_lig
7 25/09/2017
Les identificateurs
Programmation en langage C, Université de Lorraine
Ligne_lig
val_5
_total
_91
• Les mots réservés par la langage
• Langage C a 32 mots-clés
• Ils ne peuvent pas être utilisés comme identificateurs
8 25/09/2017
Les mots-clefs
Programmation en langage C, Université de Lorraine
auto const break continue
case default char do
double float int else
for long enum goto
register extern if return
short signed sizeof static
struct switch typedef union
unsigned void volatile while
• Le C est un langage typé
• Un type définit un ensemble
de valeurs et d'opérations qui
peuvent être effectuées sur
celui-ci
• Le type int peut représenter
les nombres entiers compris
entre: -2147483648 et
+2147483647
• Un type spécial appelé void
explique qu'aucun type ne
peut décrire les données
9 25/09/2017
Les types de base
Programmation en langage C, Université de Lorraine
Types Valeurs Octets
• char
• int
• short
• long int
• float
• double
• void
Un caractère
Nombres entiers
Nombres entiers
Nombres entiers
Nombres réelles
Nombres réelles
Pas de type
1
4
2
8
4
8
0
• Booléen
• n’existe pas
• une valeur entier non zéro est considérée vraie
• une valeur entier zéro est traitée comme fausse
• Chaîne de caractères
• n’existe pas
• on utilise des tableaux de caractères.
• Unsigned
• Un int peut représenter un entier entre −231 et (231 − 1). L’attribut
unsigned spécifie que l’entier n’a pas de signe. Un unsigned int
peut donc représenter un entier entre 0 et (232 − 1).
10 25/09/2017
Les types de base
Programmation en langage C, Université de Lorraine
• L’opérateur sizeof permet de connaître la taille mémoire en
octets que nécessite le codage en mémoire d’une information.
• Cela devrait être votre deuxième programme C!
11 25/09/2017
L'opérateur sizeof
Programmation en langage C, Université de Lorraine
#include <stdio.h>
int main(void)
{
printf("taille char : %ldn", sizeof(char));
printf("taille short : %ldn", sizeof(short));
printf("taille int : %ldn", sizeof(int));
printf("taille long int : %ldn", sizeof(long int));
printf("taille float : %ldn", sizeof(float));
printf("taille double : %ldn", sizeof(double));
return(0);
}
• Entières
• décimale : par exemple, 0 et 2437348
• octale : par exemple, entiers 0 et 255 sont respectivement 00 et
0377
• hexadécimale : par exemple, 14 et 255 sont respectivement 0xe
et 0xff
• Réelles
12 25/09/2017
Les constantes
Programmation en langage C, Université de Lorraine
Constante Type
12.34
12.3e-4
12.34F
12.34L
double
double
float
long double
• Caractères
• Imprimable : 'A' , '@' ,  , ' , ? , "
• Non imprimable :
• Chaînes de caractères
• "Ceci est une chaîne de caractères"
• "ligne 1 n ligne 2"
13 25/09/2017
Les constantes
Programmation en langage C, Université de Lorraine
char Détails char Détails
n
t
b
Nouvelle ligne
Tabulation
Retour arrière
r
f
a
Retour chariot
Saut de page
Signal d'alert
• Pour déclarer une variable il faut la
faire précéder de son type
• Les déclarations comme n’importe
quelle instruction C doit
obligatoirement se terminer par un
point-virgule.
• Toutes les déclarations de variables
doivent se faire en début de
programme principal ou en début de
fonction.
14 25/09/2017
Déclaration des variables
Programmation en langage C, Université de Lorraine
short s1;
int i;
int j, k, z;
char c;
float f;
double d1, d2;
long double ld;
• La variable située du coté
gauche du = représente un
contenant, l’endroit où sera
déposée la valeur, alors que
le côté droit représente la
valeur contenu dans la
variable.
• Il est possible aussi
d’initialiser une variable au
moment de la déclaration :
int i = 3;
15 25/09/2017
L'affectation
Programmation en langage C, Université de Lorraine
#include <stdio.h>
int main(void)
{
int i,j,k;
float d;
char c;
i=3;
j=06; //6 en octal: précédé de 0
k=0x6ab; //nombre 6ab en base
//hexadécimale, précédé de 0x
d=1e100;
c='g';
printf("la valeur de i : %dn", i);
printf("la valeur de j : %dn", j);
printf("la valeur de k : %dn", k);
printf("la valeur de d : %fn", d);
printf("la valeur de c : %cn", c);
return (0);
}
• Permet de simplifier certaines affectations
16 25/09/2017
L'affectation composée
Programmation en langage C, Université de Lorraine
Affectation Affectation composée
a = a + 2;
b = b * 3;
c = c / 4;
d = d – 5;
a += 2;
b *= 3;
c /= 4;
d -= 5;
• On distingue en C trois
catégories d’opérateurs
• Les opérateurs numérique
• Les opérateurs relationnels
• Les opérateurs logiques
• Modulo retourne le reste de
da division de a par b
17 25/09/2017
Les opérateurs
Programmation en langage C, Université de Lorraine
Op Détails Exemples
+
-
*
/
%
++
- -
addition
soustraction
multiplication
division
modulo
incrémentation
décrémentation
z = a + b;
z = a - b;
z = a * b;
z = a / b;
z = a % b;
z++, ++z
z- -, - -z
int a = 3, b, c;
b = ++a; /* a et b valent 4 */
c = b++; /* c vaut 4 et b vaut 5 */
• On distingue en C trois
catégories d’opérateurs
• Les opérateurs numérique
• Les opérateurs relationnels
• Les opérateurs logiques
• Les opérateurs relationnels
permettent de comparer en
général deux nombres entre eux
• Le résultat de la comparaison
est soit vraie (résultat 1), soit
faux (résultat 0)
18 25/09/2017
Les opérateurs
Programmation en langage C, Université de Lorraine
Op Détails Exemples
>
>=
<
<=
==
!=
supérieur
supérieur ou égal
inférieur
inférieur ou égal
égal
différent
c > d;
c >= d;
c < d;
c <= d;
c == d;
c !=d;
• On distingue en C trois
catégories d’opérateurs
• Les opérateurs numérique
• Les opérateurs relationnels
• Les opérateurs logiques
• Dans le cas &&, si l’opérande de
gauche est faux, l’opérande de
droite n’est pas évalué.
• Dans le cas ||, l’opérande de
droite n’est pas évalué si
l’opérande de gauche est vrai.
19 25/09/2017
Les opérateurs
Programmation en langage C, Université de Lorraine
Op Détails Exemples
!
&&
||
La négation
Le et logique
Le ou logique
!(3<4)
Retourne faux
(c>d) && (c>b)
Vrai seulement si
c>d et c>b
(c>d) || (c>b)
Vrai si c>d ou bien
si c>b
• Dans le cas où les opérateurs ont la même priorité, l’expression
est évaluée de gauche à droite.
20 25/09/2017
Priorités des opérateurs
Programmation en langage C, Université de Lorraine
Priorités
( )
- ! Unaires, par ex. -a !a
* / %
+ -
< <= > >=
== !=
&& ||
• Les instructions sont exécutées.
• Les expressions sont évaluées en un résultat.
• Toute expression suivie de « ; » devient une instruction (le
résultat est jeté).
21 25/09/2017
Expressions et instructions
Programmation en langage C, Université de Lorraine
int a;
a=1;
int b=2;
printf("la valeur de a : %d n", a);
a>b
!(a==b)
(a>b) && (a>c)
• Le résultat de cette instruction consiste en l’exécution
de bloc instructions1 si la condition est vraie sinon
l’exécution de bloc instructions2 si la condition est
fausse.
• Le else est facultatif
22 25/09/2017
Les instructions conditionnel
Programmation en langage C, Université de Lorraine
if(expression logique){
bloc instruction1
}
else{
bloc instruction2
}
• Remarques importantes
• Dans le cas ou le bloc d’instruction ne contient qu’une
seule instruction les accolades ne sont pas nécessaires.
• L’expression conditionnelle qui suit immédiatement le if
doit obligatoirement être entourée de parenthèses.
23 25/09/2017
Les instructions conditionnel
Programmation en langage C, Université de Lorraine
if(a>b) {c=b;}
else {c=a};
if((a>b) && (a>c)) z=a; else z=0;
if(!((a==b) || (c<d))) z=a; else z=0;
• Branchement multiple avec un nombre quelconque de
else if ( ... )
• Le dernier else est toujours facultatif
24 25/09/2017
Les instructions conditionnel
Programmation en langage C, Université de Lorraine
if (expression logique 1) {
bloc instruction1 ;
} else if (expression logique 2) {
bloc instruction2 ;
} else {
bloc instruction3 ;
}
• C’est l’opérateur qui permet d’afficher des données à l’écran
• il est nécessaire d'inclure l'en-tête standard <stdio.h> au
début du code source du programme
• Format est une chaine de caractères qui contient des codes
de format précédé du symbole %
• Il est à notes que la liste d’expression peut être absente pour
peu que le format ne contienne au code format
25 25/09/2017
La fonction d’écriture printf
Programmation en langage C, Université de Lorraine
printf(“format”, liste des valeurs à afficher );
printf(“bonjour“);
• Le format contient le message à afficher avec des codes de
formats pour les valeurs que l’on veut faire afficher.
• Quelques codes de formats
26 25/09/2017
La fonction d’écriture printf
Programmation en langage C, Université de Lorraine
Type Lettre
Int
long
float
double
char
string
short
%d
%ld
%f
%lf
%c
%s
%hd
Déjà	utilisé	dans	l'exemple	de	l'affectation
printf("la valeur de k : %dn", k);
printf("la valeur de d : %fn", d);
printf("la valeur de c : %cn", c);
• C’est l’opérateur qui permet de lire des information au
clavier
• Format come printf est une chaine de caractères qui
contient des codes format précédé du symbole %
• Les codes de formats sont les même que pour printf
27 25/09/2017
La fonction de saisie scanf
Programmation en langage C, Université de Lorraine
scanf(“format”,liste des adresses de variables à lire);
• L’instruction scanf lit la donnée i1: c’est l’adresse d i1 qui est
passé en paramètre: pour cela la variable est précédée du
symbole &.
• Certains compilateurs n’autorise la lecture que d’une seule
donnée à la fois. Donc cette instruction doit être utilisée avec
précaution.
28 25/09/2017
La fonction de saisie scanf
Programmation en langage C, Université de Lorraine
int i1;
float f1;
scanf("%d", &i1);
scanf("%f", &f1);
• Le but des instructions itératives est de pouvoir répéter un
certains nombres d’instructions avec une condition d’arrêt qui
fixe le nombre d’itérations.
• Il existe trois instructions itératives :
• l’instruction do { … } while (condition) ;
• l’instruction while (condition) { …. } ;
• l’instruction for
29 25/09/2017
Les instructions Itératives
Programmation en langage C, Université de Lorraine
• L’instruction naturelle pour implémenter cet algorithme
est l’instruction do while :
30 25/09/2017
L'instruction Do While
Programmation en langage C, Université de Lorraine
Initialisation :
compteur=0 ;
Répéter :
Afficher compteur ;
compteur=compteur+1 ;
Tant que :
compteur<10 ;
• L’instruction sera exécutée au moins une fois.
• Si la condition est vraie, l’instruction de la boucle est ré-
exécutée.
• Si la condition est faux, l’itération se termine et
l’instruction après le do while est exécutée.
31 25/09/2017
L'instruction Do While
Programmation en langage C, Université de Lorraine
do
{
…. // bloc d’instructions
} while (condition) ;
32 25/09/2017
L'instruction Do While
Programmation en langage C, Université de Lorraine
• Code C de l'algorithme pour Do While
#include <stdio.h>
int main(void){
int compteur=0;
do
{
printf("%d n", compteur);
compteur=compteur+1;
} while(compteur<10);
return(0);
}
Initialisation :
compteur=0 ;
Répéter :
Afficher compteur ;
compteur=compteur+1 ;
Tant que :
compteur<10 ;
• L’instruction naturelle pour implémenter cet algorithme
est l’instruction while
33 25/09/2017
L'instruction While
Programmation en langage C, Université de Lorraine
Initialisation :
compteur=0 ;
Tant que (compteur <10) répéter:
Afficher compteur ;
compteur=compteur+1 ;
• Si la condition est vraie, l’instruction de la boucle est
exécutée.
• La condition est évaluée au début de la boucle, donc il
est possible que l’instruction dans la boucle ne soit
jamais exécutée.
34 25/09/2017
L'instruction While
Programmation en langage C, Université de Lorraine
while (condition)
{
…. // bloc d’instructions
}
35 25/09/2017
L'instruction While
Programmation en langage C, Université de Lorraine
#include <stdio.h>
int main (void) {
int compteur=0;
while (compteur<10)
{
printf("%d n", compteur);
compteur=compteur+1;
}
return (0);
}
• Code C de l'algorithme pour While
Initialisation :
compteur=0 ;
Tant que (compteur <10)
répéter:
Afficher compteur ;
compteur=compteur+1 ;
• Le même algorithme pour while peut être implémenté
par l'instruction for
36 25/09/2017
L'instruction For
Programmation en langage C, Université de Lorraine
Initialisation :
compteur=0 ;
Tant que (compteur <10) répéter:
Afficher compteur ;
compteur=compteur+1 ;
• expression1: initialisation avant la 1ère itération.
• exprression2: condition qui est évaluée avant chaque itération.
• expression3: instruction effectuée à la fin de chaque itération
• incrémentation, décrémentation, etc.
• La syntaxe générale de l’instruction for est équivalente avec un
while
37 25/09/2017
L'instruction For
Programmation en langage C, Université de Lorraine
expression1 ;
while (expression2)
{
instructions ;
expression3 ;
}
for ( expression1 ; expression2 ; expression3)
{
//bloc instructions
}
38 25/09/2017
L'instruction For
Programmation en langage C, Université de Lorraine
• Code C de l'algorithme pour While implémenté par la boucle For
Initialisation :
compteur=0 ;
Tant que (compteur <10)
répéter:
Afficher compteur ;
compteur=compteur+1 ;
#include <stdio.h>
int main(void){
int compteur ;
for(compteur=0; compteur<10; compteur++)
{
printf("%d n", compteur);
}
return(0) ;
}
• Si le nombre de boucles est connue à l’avance il est
préférable d’utiliser l’instruction for :
for (i=debut ; i<=fin ; i++)
• Par contre s’il n’est pas possible de connaître le nombre
exact d’itérations on préfèrera alors l’instruction while
ou do while.
39 25/09/2017
Les instructions Itératives
Programmation en langage C, Université de Lorraine
• Ecrire un programme qui lit dix nombres au clavier et qui
affiche la somme de ces dix nombres
• Solution : le nombre d’itérations est connu dans cet
exercice donc on utilisera ici une instruction for
40 25/09/2017
Exercice 1 : Les instructions Itératives
Programmation en langage C, Université de Lorraine
41 25/09/2017
Exercice 1 : Les instructions Itératives
Programmation en langage C, Université de Lorraine
#include <stdio.h>
#define Nb_Total 10 //Nb_Total est le nombre de nombres à lire
int main(void)
{
int somme=0;
int nombre_a_lire, i;
for(i=0 ; i< Nb_Total ; i++)
{
printf("Entrer le %d ème nombre n", i);
scanf("%d", &nombre_a_lire) ;
somme=somme+nombre_a_lire ;
}
printf("La somme des 10 nombres est : %d n", somme);
return(0);
}
• Ecrire un programme qui détermine si un entier naturel p
strictement supérieur à 2 est un nombre premier
• Solution : un nombre p est premier si aucun nombre n, tel
que 1<n<p, divise p. Dans cet exercice le nombre
d’itération n’est pas connu à l’avance donc on pourra par
exemple utiliser une instruction do while
42 25/09/2017
Exercice 2 : Les instructions Itératives
Programmation en langage C, Université de Lorraine
43 25/09/2017
Exercice 2 : Les instructions Itératives
Programmation en langage C, Université de Lorraine
#include <stdio.h>
int main(void)
{
int n, p, bool;
printf("Entrer un nombre >2 n");
scanf("%d", &p) ;
n=2;
bool=1; /* variable drapeau : 1 premier, 0 non premier */
do
{
if(p%n ==0) bool=0;
n=n+1;
} while(n<p) ;
if(bool) printf("%d est premiern", p);
else printf("%d n’est pas premiern", p);
}
• L'instruction break peut être employée à l’intérieur de
n'importe quelle boucle.
• Elle permet d'interrompre le déroulement de la boucle, et
passe à la première instruction qui suit la boucle.
• En cas de boucles imbriquées, break fait sortir de la
boucle la plus interne.
44 25/09/2017
L'instruction break
Programmation en langage C, Université de Lorraine
• La valeur de i a la sortie de la boucle est 3
45 25/09/2017
L'instruction break
Programmation en langage C, Université de Lorraine
#include <stdio.h>
main() {
int i;
for (i = 0; i < 5; i++)
{
printf("i = %dn",i);
if (i == 3)
break;
}
printf("valeur de i = %dn",i);
}
i=0
i=1
i=2
i=3
valeur de i = 3
• L'instruction continue permet de passer directement au tour
de boucle suivant, sans exécuter les autres instructions de la
boucle.
46 25/09/2017
L'instruction continue
Programmation en langage C, Université de Lorraine
#include <stdio.h>
main() {
int i;
for (i = 0; i < 5; i++)
{
if (i == 3)
continue;
printf("i = %dn",i);
}
printf("valeur de i = %dn",i);
}
i=0
i=1
i=2
i=4
valeur de i = 5

Contenu connexe

Tendances

Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
badr zaimi
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 

Tendances (20)

Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Cours de programmation en c
Cours de programmation en cCours de programmation en c
Cours de programmation en c
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Metrique
MetriqueMetrique
Metrique
 
Cours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURICours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURI
 

Similaire à Seance 1 - Programmation en langage C

COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
LuneSabsPericolo1
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
Hailisara
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
kamalomari2
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
Fredy Fadel
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SiratiSoufiane
 

Similaire à Seance 1 - Programmation en langage C (20)

Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Chapitre 3 - Généralités sur le langage C.pdf
Chapitre 3 - Généralités sur le langage C.pdfChapitre 3 - Généralités sur le langage C.pdf
Chapitre 3 - Généralités sur le langage C.pdf
 
Seance 4- Programmation en langage C
Seance 4- Programmation en langage CSeance 4- Programmation en langage C
Seance 4- Programmation en langage C
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Chap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptxChap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptx
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
 
Langage C
Langage CLangage C
Langage C
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Ch02
Ch02Ch02
Ch02
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
C1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieC1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partie
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 
Microsoft07coursbaptiste
Microsoft07coursbaptisteMicrosoft07coursbaptiste
Microsoft07coursbaptiste
 
Le langage C
Le langage CLe langage C
Le langage C
 
Théorie des langages - 03 - Principes et paradigmes
Théorie des langages - 03 - Principes et paradigmesThéorie des langages - 03 - Principes et paradigmes
Théorie des langages - 03 - Principes et paradigmes
 
2-Algo.ppt
2-Algo.ppt2-Algo.ppt
2-Algo.ppt
 
C#
C#C#
C#
 

Plus de Fahad Golra

Deviation Detection in Process Enactment
Deviation Detection in Process EnactmentDeviation Detection in Process Enactment
Deviation Detection in Process Enactment
Fahad Golra
 
Meta l metacase tools & possibilities
Meta l metacase tools & possibilitiesMeta l metacase tools & possibilities
Meta l metacase tools & possibilities
Fahad Golra
 

Plus de Fahad Golra (17)

Seance 2 - Programmation en langage C
Seance 2 - Programmation en langage CSeance 2 - Programmation en langage C
Seance 2 - Programmation en langage C
 
Tutorial 4 - Basics of Digital Photography
Tutorial 4 - Basics of Digital PhotographyTutorial 4 - Basics of Digital Photography
Tutorial 4 - Basics of Digital Photography
 
Tutorial 3 - Basics of Digital Photography
Tutorial 3 - Basics of Digital PhotographyTutorial 3 - Basics of Digital Photography
Tutorial 3 - Basics of Digital Photography
 
Tutorial 2 - Basics of Digital Photography
Tutorial 2 - Basics of Digital PhotographyTutorial 2 - Basics of Digital Photography
Tutorial 2 - Basics of Digital Photography
 
Tutorial 1 - Basics of Digital Photography
Tutorial 1 - Basics of Digital PhotographyTutorial 1 - Basics of Digital Photography
Tutorial 1 - Basics of Digital Photography
 
Lecture 9 - Java Persistence, JPA 2
Lecture 9 - Java Persistence, JPA 2Lecture 9 - Java Persistence, JPA 2
Lecture 9 - Java Persistence, JPA 2
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8  Enterprise Java Beans (EJB)Lecture 8  Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RS
 
Lecture 6 Web Sockets
Lecture 6   Web SocketsLecture 6   Web Sockets
Lecture 6 Web Sockets
 
Lecture 5 JSTL, custom tags, maven
Lecture 5   JSTL, custom tags, mavenLecture 5   JSTL, custom tags, maven
Lecture 5 JSTL, custom tags, maven
 
Lecture 4: JavaServer Pages (JSP) & Expression Language (EL)
Lecture 4:  JavaServer Pages (JSP) & Expression Language (EL)Lecture 4:  JavaServer Pages (JSP) & Expression Language (EL)
Lecture 4: JavaServer Pages (JSP) & Expression Language (EL)
 
Lecture 2: Servlets
Lecture 2:  ServletsLecture 2:  Servlets
Lecture 2: Servlets
 
Lecture 1: Introduction to JEE
Lecture 1:  Introduction to JEELecture 1:  Introduction to JEE
Lecture 1: Introduction to JEE
 
Lecture 3: Servlets - Session Management
Lecture 3:  Servlets - Session ManagementLecture 3:  Servlets - Session Management
Lecture 3: Servlets - Session Management
 
Deviation Detection in Process Enactment
Deviation Detection in Process EnactmentDeviation Detection in Process Enactment
Deviation Detection in Process Enactment
 
Meta l metacase tools & possibilities
Meta l metacase tools & possibilitiesMeta l metacase tools & possibilities
Meta l metacase tools & possibilities
 

Dernier

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 

Dernier (13)

La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 

Seance 1 - Programmation en langage C

  • 1. Programmation en langage C Fahad R. Golra Faculté des Sciences et Technologies Université de Lorraine Séance 1 – Types, Operateurs, Conditions, Boucles
  • 2. 2 25/09/2017 Historique Programmation en langage C, Université de Lorraine Le C à été conçu en 1972 par Dennis Ritchie et Ken Thompson, chercheurs aux Bell Labs, afin de développer un système d’exploitation UNIX.
  • 3. 3 25/09/2017 Hello World! Programmation en langage C, Université de Lorraine • Il faut sauvegarder ce fichier et lui donner un nom; on l’appellera ”prem.c” par exemple. • Il faut compiler ce programme pour le transformer en code objet. Code exécutable par la machine: gcc prem.c -o prem • L’exécution du programme se fait en tapant dans le console: ./prem • L’ordinateur affichera alors: Bonjour tout le monde! #include <stdio.h> int main (void) // le fonction main() { printf (˝Bonjour tout le monde !˝) ; return (0) ; }
  • 4. 4 25/09/2017 Hello World! Programmation en langage C, Université de Lorraine • Il faut sauvegarder ce fichier et lui donner un nom; on l’appellera ”prem.c” par exemple. • Il faut compiler ce programme pour le transformer en code objet. Code exécutable par la machine: gcc prem.c -o prem • L’exécution du programme se fait en tapant dans le console: ./prem • L’ordinateur affichera alors: Bonjour tout le monde! #include <stdio.h> int main (void) // le fonction main() { printf (˝Bonjour tout le monde !˝) ; return (0) ; } Importation des bibliothèques Corps du programme
  • 5. • Un programme en langage C est constitué des six groupes de composants élémentaires suivants : • les identificateurs • les mots-clefs • les constantes • les chaînes de caractères • les opérateurs • les signes de ponctuation 5 25/09/2017 Les composants élémentaires du C Programmation en langage C, Université de Lorraine
  • 6. 6 25/09/2017 Les commentaires Programmation en langage C, Université de Lorraine • Le compilateur ignore les commentaires • Deux sorts de commentaires • Multi-lignes • Un seul ligne • Il n’est pas possible d’imbriquer des commentaires /*ceci /* est un commentaire */ */ /* Voici mon premier programme C que j’ai écrit le vendredi 8 septembre 2017 */ #include <stdio.h> int main (void) // le fonction main() { printf (˝Bonjour tout le monde !˝) ; return (0) ; }
  • 7. • Dans un programme C les variables, les fonctions, les types etc. sont désignés par un nom qu’on appelle identificateur • Suite de caractères ( lettres, chiffres ou _ ) qui commence par une lettre ou _ • Les lettres accentuées sont à éviter : certains compilateurs les acceptent d’autres non • Attention, le C fait la différence entre minuscule et majuscule : Ligne_lig ≠ ligne_lig 7 25/09/2017 Les identificateurs Programmation en langage C, Université de Lorraine Ligne_lig val_5 _total _91
  • 8. • Les mots réservés par la langage • Langage C a 32 mots-clés • Ils ne peuvent pas être utilisés comme identificateurs 8 25/09/2017 Les mots-clefs Programmation en langage C, Université de Lorraine auto const break continue case default char do double float int else for long enum goto register extern if return short signed sizeof static struct switch typedef union unsigned void volatile while
  • 9. • Le C est un langage typé • Un type définit un ensemble de valeurs et d'opérations qui peuvent être effectuées sur celui-ci • Le type int peut représenter les nombres entiers compris entre: -2147483648 et +2147483647 • Un type spécial appelé void explique qu'aucun type ne peut décrire les données 9 25/09/2017 Les types de base Programmation en langage C, Université de Lorraine Types Valeurs Octets • char • int • short • long int • float • double • void Un caractère Nombres entiers Nombres entiers Nombres entiers Nombres réelles Nombres réelles Pas de type 1 4 2 8 4 8 0
  • 10. • Booléen • n’existe pas • une valeur entier non zéro est considérée vraie • une valeur entier zéro est traitée comme fausse • Chaîne de caractères • n’existe pas • on utilise des tableaux de caractères. • Unsigned • Un int peut représenter un entier entre −231 et (231 − 1). L’attribut unsigned spécifie que l’entier n’a pas de signe. Un unsigned int peut donc représenter un entier entre 0 et (232 − 1). 10 25/09/2017 Les types de base Programmation en langage C, Université de Lorraine
  • 11. • L’opérateur sizeof permet de connaître la taille mémoire en octets que nécessite le codage en mémoire d’une information. • Cela devrait être votre deuxième programme C! 11 25/09/2017 L'opérateur sizeof Programmation en langage C, Université de Lorraine #include <stdio.h> int main(void) { printf("taille char : %ldn", sizeof(char)); printf("taille short : %ldn", sizeof(short)); printf("taille int : %ldn", sizeof(int)); printf("taille long int : %ldn", sizeof(long int)); printf("taille float : %ldn", sizeof(float)); printf("taille double : %ldn", sizeof(double)); return(0); }
  • 12. • Entières • décimale : par exemple, 0 et 2437348 • octale : par exemple, entiers 0 et 255 sont respectivement 00 et 0377 • hexadécimale : par exemple, 14 et 255 sont respectivement 0xe et 0xff • Réelles 12 25/09/2017 Les constantes Programmation en langage C, Université de Lorraine Constante Type 12.34 12.3e-4 12.34F 12.34L double double float long double
  • 13. • Caractères • Imprimable : 'A' , '@' , , ' , ? , " • Non imprimable : • Chaînes de caractères • "Ceci est une chaîne de caractères" • "ligne 1 n ligne 2" 13 25/09/2017 Les constantes Programmation en langage C, Université de Lorraine char Détails char Détails n t b Nouvelle ligne Tabulation Retour arrière r f a Retour chariot Saut de page Signal d'alert
  • 14. • Pour déclarer une variable il faut la faire précéder de son type • Les déclarations comme n’importe quelle instruction C doit obligatoirement se terminer par un point-virgule. • Toutes les déclarations de variables doivent se faire en début de programme principal ou en début de fonction. 14 25/09/2017 Déclaration des variables Programmation en langage C, Université de Lorraine short s1; int i; int j, k, z; char c; float f; double d1, d2; long double ld;
  • 15. • La variable située du coté gauche du = représente un contenant, l’endroit où sera déposée la valeur, alors que le côté droit représente la valeur contenu dans la variable. • Il est possible aussi d’initialiser une variable au moment de la déclaration : int i = 3; 15 25/09/2017 L'affectation Programmation en langage C, Université de Lorraine #include <stdio.h> int main(void) { int i,j,k; float d; char c; i=3; j=06; //6 en octal: précédé de 0 k=0x6ab; //nombre 6ab en base //hexadécimale, précédé de 0x d=1e100; c='g'; printf("la valeur de i : %dn", i); printf("la valeur de j : %dn", j); printf("la valeur de k : %dn", k); printf("la valeur de d : %fn", d); printf("la valeur de c : %cn", c); return (0); }
  • 16. • Permet de simplifier certaines affectations 16 25/09/2017 L'affectation composée Programmation en langage C, Université de Lorraine Affectation Affectation composée a = a + 2; b = b * 3; c = c / 4; d = d – 5; a += 2; b *= 3; c /= 4; d -= 5;
  • 17. • On distingue en C trois catégories d’opérateurs • Les opérateurs numérique • Les opérateurs relationnels • Les opérateurs logiques • Modulo retourne le reste de da division de a par b 17 25/09/2017 Les opérateurs Programmation en langage C, Université de Lorraine Op Détails Exemples + - * / % ++ - - addition soustraction multiplication division modulo incrémentation décrémentation z = a + b; z = a - b; z = a * b; z = a / b; z = a % b; z++, ++z z- -, - -z int a = 3, b, c; b = ++a; /* a et b valent 4 */ c = b++; /* c vaut 4 et b vaut 5 */
  • 18. • On distingue en C trois catégories d’opérateurs • Les opérateurs numérique • Les opérateurs relationnels • Les opérateurs logiques • Les opérateurs relationnels permettent de comparer en général deux nombres entre eux • Le résultat de la comparaison est soit vraie (résultat 1), soit faux (résultat 0) 18 25/09/2017 Les opérateurs Programmation en langage C, Université de Lorraine Op Détails Exemples > >= < <= == != supérieur supérieur ou égal inférieur inférieur ou égal égal différent c > d; c >= d; c < d; c <= d; c == d; c !=d;
  • 19. • On distingue en C trois catégories d’opérateurs • Les opérateurs numérique • Les opérateurs relationnels • Les opérateurs logiques • Dans le cas &&, si l’opérande de gauche est faux, l’opérande de droite n’est pas évalué. • Dans le cas ||, l’opérande de droite n’est pas évalué si l’opérande de gauche est vrai. 19 25/09/2017 Les opérateurs Programmation en langage C, Université de Lorraine Op Détails Exemples ! && || La négation Le et logique Le ou logique !(3<4) Retourne faux (c>d) && (c>b) Vrai seulement si c>d et c>b (c>d) || (c>b) Vrai si c>d ou bien si c>b
  • 20. • Dans le cas où les opérateurs ont la même priorité, l’expression est évaluée de gauche à droite. 20 25/09/2017 Priorités des opérateurs Programmation en langage C, Université de Lorraine Priorités ( ) - ! Unaires, par ex. -a !a * / % + - < <= > >= == != && ||
  • 21. • Les instructions sont exécutées. • Les expressions sont évaluées en un résultat. • Toute expression suivie de « ; » devient une instruction (le résultat est jeté). 21 25/09/2017 Expressions et instructions Programmation en langage C, Université de Lorraine int a; a=1; int b=2; printf("la valeur de a : %d n", a); a>b !(a==b) (a>b) && (a>c)
  • 22. • Le résultat de cette instruction consiste en l’exécution de bloc instructions1 si la condition est vraie sinon l’exécution de bloc instructions2 si la condition est fausse. • Le else est facultatif 22 25/09/2017 Les instructions conditionnel Programmation en langage C, Université de Lorraine if(expression logique){ bloc instruction1 } else{ bloc instruction2 }
  • 23. • Remarques importantes • Dans le cas ou le bloc d’instruction ne contient qu’une seule instruction les accolades ne sont pas nécessaires. • L’expression conditionnelle qui suit immédiatement le if doit obligatoirement être entourée de parenthèses. 23 25/09/2017 Les instructions conditionnel Programmation en langage C, Université de Lorraine if(a>b) {c=b;} else {c=a}; if((a>b) && (a>c)) z=a; else z=0; if(!((a==b) || (c<d))) z=a; else z=0;
  • 24. • Branchement multiple avec un nombre quelconque de else if ( ... ) • Le dernier else est toujours facultatif 24 25/09/2017 Les instructions conditionnel Programmation en langage C, Université de Lorraine if (expression logique 1) { bloc instruction1 ; } else if (expression logique 2) { bloc instruction2 ; } else { bloc instruction3 ; }
  • 25. • C’est l’opérateur qui permet d’afficher des données à l’écran • il est nécessaire d'inclure l'en-tête standard <stdio.h> au début du code source du programme • Format est une chaine de caractères qui contient des codes de format précédé du symbole % • Il est à notes que la liste d’expression peut être absente pour peu que le format ne contienne au code format 25 25/09/2017 La fonction d’écriture printf Programmation en langage C, Université de Lorraine printf(“format”, liste des valeurs à afficher ); printf(“bonjour“);
  • 26. • Le format contient le message à afficher avec des codes de formats pour les valeurs que l’on veut faire afficher. • Quelques codes de formats 26 25/09/2017 La fonction d’écriture printf Programmation en langage C, Université de Lorraine Type Lettre Int long float double char string short %d %ld %f %lf %c %s %hd Déjà utilisé dans l'exemple de l'affectation printf("la valeur de k : %dn", k); printf("la valeur de d : %fn", d); printf("la valeur de c : %cn", c);
  • 27. • C’est l’opérateur qui permet de lire des information au clavier • Format come printf est une chaine de caractères qui contient des codes format précédé du symbole % • Les codes de formats sont les même que pour printf 27 25/09/2017 La fonction de saisie scanf Programmation en langage C, Université de Lorraine scanf(“format”,liste des adresses de variables à lire);
  • 28. • L’instruction scanf lit la donnée i1: c’est l’adresse d i1 qui est passé en paramètre: pour cela la variable est précédée du symbole &. • Certains compilateurs n’autorise la lecture que d’une seule donnée à la fois. Donc cette instruction doit être utilisée avec précaution. 28 25/09/2017 La fonction de saisie scanf Programmation en langage C, Université de Lorraine int i1; float f1; scanf("%d", &i1); scanf("%f", &f1);
  • 29. • Le but des instructions itératives est de pouvoir répéter un certains nombres d’instructions avec une condition d’arrêt qui fixe le nombre d’itérations. • Il existe trois instructions itératives : • l’instruction do { … } while (condition) ; • l’instruction while (condition) { …. } ; • l’instruction for 29 25/09/2017 Les instructions Itératives Programmation en langage C, Université de Lorraine
  • 30. • L’instruction naturelle pour implémenter cet algorithme est l’instruction do while : 30 25/09/2017 L'instruction Do While Programmation en langage C, Université de Lorraine Initialisation : compteur=0 ; Répéter : Afficher compteur ; compteur=compteur+1 ; Tant que : compteur<10 ;
  • 31. • L’instruction sera exécutée au moins une fois. • Si la condition est vraie, l’instruction de la boucle est ré- exécutée. • Si la condition est faux, l’itération se termine et l’instruction après le do while est exécutée. 31 25/09/2017 L'instruction Do While Programmation en langage C, Université de Lorraine do { …. // bloc d’instructions } while (condition) ;
  • 32. 32 25/09/2017 L'instruction Do While Programmation en langage C, Université de Lorraine • Code C de l'algorithme pour Do While #include <stdio.h> int main(void){ int compteur=0; do { printf("%d n", compteur); compteur=compteur+1; } while(compteur<10); return(0); } Initialisation : compteur=0 ; Répéter : Afficher compteur ; compteur=compteur+1 ; Tant que : compteur<10 ;
  • 33. • L’instruction naturelle pour implémenter cet algorithme est l’instruction while 33 25/09/2017 L'instruction While Programmation en langage C, Université de Lorraine Initialisation : compteur=0 ; Tant que (compteur <10) répéter: Afficher compteur ; compteur=compteur+1 ;
  • 34. • Si la condition est vraie, l’instruction de la boucle est exécutée. • La condition est évaluée au début de la boucle, donc il est possible que l’instruction dans la boucle ne soit jamais exécutée. 34 25/09/2017 L'instruction While Programmation en langage C, Université de Lorraine while (condition) { …. // bloc d’instructions }
  • 35. 35 25/09/2017 L'instruction While Programmation en langage C, Université de Lorraine #include <stdio.h> int main (void) { int compteur=0; while (compteur<10) { printf("%d n", compteur); compteur=compteur+1; } return (0); } • Code C de l'algorithme pour While Initialisation : compteur=0 ; Tant que (compteur <10) répéter: Afficher compteur ; compteur=compteur+1 ;
  • 36. • Le même algorithme pour while peut être implémenté par l'instruction for 36 25/09/2017 L'instruction For Programmation en langage C, Université de Lorraine Initialisation : compteur=0 ; Tant que (compteur <10) répéter: Afficher compteur ; compteur=compteur+1 ;
  • 37. • expression1: initialisation avant la 1ère itération. • exprression2: condition qui est évaluée avant chaque itération. • expression3: instruction effectuée à la fin de chaque itération • incrémentation, décrémentation, etc. • La syntaxe générale de l’instruction for est équivalente avec un while 37 25/09/2017 L'instruction For Programmation en langage C, Université de Lorraine expression1 ; while (expression2) { instructions ; expression3 ; } for ( expression1 ; expression2 ; expression3) { //bloc instructions }
  • 38. 38 25/09/2017 L'instruction For Programmation en langage C, Université de Lorraine • Code C de l'algorithme pour While implémenté par la boucle For Initialisation : compteur=0 ; Tant que (compteur <10) répéter: Afficher compteur ; compteur=compteur+1 ; #include <stdio.h> int main(void){ int compteur ; for(compteur=0; compteur<10; compteur++) { printf("%d n", compteur); } return(0) ; }
  • 39. • Si le nombre de boucles est connue à l’avance il est préférable d’utiliser l’instruction for : for (i=debut ; i<=fin ; i++) • Par contre s’il n’est pas possible de connaître le nombre exact d’itérations on préfèrera alors l’instruction while ou do while. 39 25/09/2017 Les instructions Itératives Programmation en langage C, Université de Lorraine
  • 40. • Ecrire un programme qui lit dix nombres au clavier et qui affiche la somme de ces dix nombres • Solution : le nombre d’itérations est connu dans cet exercice donc on utilisera ici une instruction for 40 25/09/2017 Exercice 1 : Les instructions Itératives Programmation en langage C, Université de Lorraine
  • 41. 41 25/09/2017 Exercice 1 : Les instructions Itératives Programmation en langage C, Université de Lorraine #include <stdio.h> #define Nb_Total 10 //Nb_Total est le nombre de nombres à lire int main(void) { int somme=0; int nombre_a_lire, i; for(i=0 ; i< Nb_Total ; i++) { printf("Entrer le %d ème nombre n", i); scanf("%d", &nombre_a_lire) ; somme=somme+nombre_a_lire ; } printf("La somme des 10 nombres est : %d n", somme); return(0); }
  • 42. • Ecrire un programme qui détermine si un entier naturel p strictement supérieur à 2 est un nombre premier • Solution : un nombre p est premier si aucun nombre n, tel que 1<n<p, divise p. Dans cet exercice le nombre d’itération n’est pas connu à l’avance donc on pourra par exemple utiliser une instruction do while 42 25/09/2017 Exercice 2 : Les instructions Itératives Programmation en langage C, Université de Lorraine
  • 43. 43 25/09/2017 Exercice 2 : Les instructions Itératives Programmation en langage C, Université de Lorraine #include <stdio.h> int main(void) { int n, p, bool; printf("Entrer un nombre >2 n"); scanf("%d", &p) ; n=2; bool=1; /* variable drapeau : 1 premier, 0 non premier */ do { if(p%n ==0) bool=0; n=n+1; } while(n<p) ; if(bool) printf("%d est premiern", p); else printf("%d n’est pas premiern", p); }
  • 44. • L'instruction break peut être employée à l’intérieur de n'importe quelle boucle. • Elle permet d'interrompre le déroulement de la boucle, et passe à la première instruction qui suit la boucle. • En cas de boucles imbriquées, break fait sortir de la boucle la plus interne. 44 25/09/2017 L'instruction break Programmation en langage C, Université de Lorraine
  • 45. • La valeur de i a la sortie de la boucle est 3 45 25/09/2017 L'instruction break Programmation en langage C, Université de Lorraine #include <stdio.h> main() { int i; for (i = 0; i < 5; i++) { printf("i = %dn",i); if (i == 3) break; } printf("valeur de i = %dn",i); } i=0 i=1 i=2 i=3 valeur de i = 3
  • 46. • L'instruction continue permet de passer directement au tour de boucle suivant, sans exécuter les autres instructions de la boucle. 46 25/09/2017 L'instruction continue Programmation en langage C, Université de Lorraine #include <stdio.h> main() { int i; for (i = 0; i < 5; i++) { if (i == 3) continue; printf("i = %dn",i); } printf("valeur de i = %dn",i); } i=0 i=1 i=2 i=4 valeur de i = 5