SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Programmation en langage C
Rachid Benouini
Partie 1 - les notions de base
2
Plan
R. Benouini Cours de programmation en C
1 Notions de base de programmation
2 Notion de variable et les types de base
3 Les fonctions d’entrées-sorties standard
4 Syntaxe du langage C – les opérateurs
5 Les structures de contrôle
6 Les structures répétitives – les boucles
3
Notion de base de programmation
R. Benouini Cours de programmation en C
Un programme est une séquence d'instructions, exécuté une après
l'autre - en général de manière séquentielle.
Pour le langage C, les instructions sont stockées dans un fichier texte
d’extension ".c" par suite ce fichier sera traduit en langage machine par un
compilateur puis exécuté.
Certain instructions et fonctionnalités, par exemple d’affichage, de
lecture, d’accès aux matérielles, d’accès au réseau , etc. sont déjà définit
dans des bibliothèques, on fait seulement appel a ces fonctionnalités.
stdio.h contient les fonctions d’affichage et de lectures
math.h contient les fonctions mathématiques cos, sin, exp,...
string.h contient les fonctions de manipulation des chaines de
caractères
Et bien d’autres ...
#include <stdio.h> // directives du préprocesseur
#include <stdlib.h>
#define carre(x) x*x // déclaration d'alias
#define N 150
float prix=12.5; // déclaration des variables globales
// Déclaration d'une fonction
int somme(int a,int b){
return a+b;
}
// Déclaration d’une fonction principale main
int main(){
// Les instructions
int a=1,b=3,s; // Déclaration des variables locales
s=somme(a,b); // appel du fonction somme
// appel du fonction d'affichage printf
printf("la somme est %d",s);
return 0;
} // Fin du programme
4
Structure générale d’un programme C
R. Benouini Cours de programmation en C
5
Les commentaires
R. Benouini Cours de programmation en C
Sont des parties du programme qui ne sera ni compilé ni
exécuté, serve a ajouté un documentation ou explication
/* Commentaire a
plusieurs lignes
*/
// Commentaire à la fin de ligne
6
Notion d’identificateur
R. Benouini Cours de programmation en C
Pour définir les noms des variables, les noms des fonctions,
les noms des structures.
float prix=12.5;
Prix prix _prix prix01 PRIX01 _0prix_ valide
0prix &prix pr–ix +prix +prix-784 non valide
Les noms suivantes sont réservés au langage :
auto break case char const continue default do double
else enum extern float for goto if int long register
return short signed sizeof static struct switch typedef
union unsigned void volatile while
7
Déclaration des variables
R. Benouini Cours de programmation en C
Un variable c’est une réservation mémoire pouvant contenir
des données (valeurs) d’un type défini, ses valeurs sont
changeables dans le temps.
type nomDeVariable1,nomVariable2;
type nomDeVariable = valeurInitialisation;
Exemples :
int nombre, age=18, x=-4;
float poids=12.4, pi=3.14159;
8
Les types de base
R. Benouini Cours de programmation en C
char c='F'; // caractère du table code ASCII
int a=124; // entier
long l=1554220; // entier long
float f=3.14159; // réel avec 6 chiffres décimaux
double d=3.1415926535; // réel avec double précision 15
// chiffres décimaux
long double ld=3.141592653589; // 19 chiffre décimaux
Pour le type boolien : un variable int (entier) peut jouer le
rôle d’un variable boolien s’il égale a 0 => faux et s’il
est diffèrent de 0 => vrai
Il existe d’autres types de base comme short int,
unsigned int, long long ...
9
Les fonctions d’entrées-sorties standard
R. Benouini Cours de programmation en C
Prennent l’exemple suivant :
#include <stdio.h>
int main()
{
int a=12;
printf("la valeur de a est %d",a);
// affichage de la valeur de a
return 0;
}
Pour afficher la valeur de a on a utilisé %d qui sera
remplacer par la valeur du variable a dans l’appel du fonction
d’affichage,
%d appelé format de type entier.
1 - Les formats de types
10
Les fonctions d’entrées-sorties standard
R. Benouini Cours de programmation en C
1 - Les formats de types
Pour afficher d’autre type, on a la table suivante :
%c char 'c' 'E' '1' 't'
%d int 1 0 -2 31
%ld long int 14 2000 78000 900000
%f float 0.4 3.5 -.78 0.01
%f double 5.0 3.5
%lf long double 2.1e4 3.14159263589
%s char* "chaine" "Karim Mahmoud"
11
Les fonctions d’entrées-sorties standard
R. Benouini Cours de programmation en C
2 – Affichage et saisie
printf : permets l’affichage sur l’écran
printf("valeur est %d",15);
printf("%6.5f",1256.46587689);
// 1256.46587 forme décimale
printf("%e",3.1415926);
// 1.245125e+003 forme exponentiel
scanf : permet de lire du clavier et stocker dans un variable de
même type que le format.
scanf("%f",&f);
scanf("%c",&c);
12
Syntaxe du langage C
R. Benouini Cours de programmation en C
1 – Les opérateurs arithmétiques
a+b addition
a-b soustraction
a*b multiplication
a/b division
a%b modulo (reste de la division euclidienne de a et b)
a++ ou ++a incrémentation de a avec 1 (a=a+1)
a-- ou --a décrémentation de a avec 1 (a=a-1)
x=y x reçoit la valeur de y
x+=y (x=x+y) x reçoit la valeur de x+y
x-=y x*=y x/=y x%=y x*=y
2 – Affectation
13
Syntaxe du langage C
R. Benouini Cours de programmation en C
3 – Relation
x==y égalité donne 1 si x est égale à y; 0 sinon
x!=y inégalité donne 1 si x est diffèrent a y; 0 sinon
x <y inférieur donne 1 si x < y; 0 sinon
x >y supérieur donne 1 si x > y; 0 sinon
x<=y inférieur ou égale donne 1 si x <= y; 0 sinon
x>=y supérieur ou égale donne 1 si x >= y; 0 sinon
4 – Les opérateurs logiques
&& et logique
|| ou logique
! non logique
Exemples : a doit être diffère de zéro et inférieur ou égale à b ou
simplement b supérieur à 20
(a != 0 && a <= b ) || b > 20
14
Les structures de contrôle
R. Benouini Cours de programmation en C
1 – if else (si sinon)
if(condition) {
Bloc d’instructions 1;
} else {
Bloc d’instructions 2;
}
Exemple : saisie d’une valeur, et l’affichage s’il est nul ou non.
int a;
printf("donner a");
scanf("%d",&a);
if(a==0)
{
printf("a est nul");
}
else
{
printf("a est non nul");
}
15
Les structures de contrôle
R. Benouini Cours de programmation en C
2 – else if (sinon si)
if(condition 1) {
Bloc d’instructions 1;
} else if(condition 2) {
Bloc d’instructions 2;
} else {
Bloc d’instructions 3;
}
Exemple : saisie d’une valeur, et l’affichage s’il est nul, négatif ou positif.
int a;
printf("donner a");
scanf("%d",&a);
if(a==0){
printf("a est nul");
} else if(a>0){
printf("a est positif ");
} else if(a<0){
printf("a est negatif");
}
16
Les structures de contrôle
R. Benouini Cours de programmation en C
3 – switch (choix)
switch(valeur)
{
case valeur1: bloc d’instruction 1;
break ;
case valeur2: bloc d’instruction 2;
break ;
...
...
default:
bloc d’instruction des autres cas;
}
L’instruction break permet de passer les autres cas si une est exécutée.
17
Les structures de contrôle
R. Benouini Cours de programmation en C
3 – switch (choix)
Exemples : demande un numéro et affiche le jour de la semaine correspondant.
int a;
printf("donner numero de jour ");
scanf("%d",&a);
switch(a) {
case 1: printf("lundi");
break ;
case 2: printf("mardi");
break ;
case 3: printf("mercredi");
break ;
case 4: printf("jeudi");
break ;
case 5: printf("vendredi");
break ;
case 6: printf("samedi");
break ;
case 7: printf("dimanche");
break;
default: printf("n'est pas un jour");
}
18
Les structures répétitives - Les boucles
R. Benouini Cours de programmation en C
1 – while (tant que)
Tant que la condition est satisfaite (vrai) le bloc d’instruction sera exécuté
while(condition){
Bloc d’instructions;
}
Exemple : affichage des valeurs de 0 à 5
// Décroissant // Croissant
// Donne 5 4 3 2 1 0 // Donne 0 1 2 3 4 5
i=5; i=0;
while(i>=0){ while(i<=5){
printf("i=%dn",i); printf("i=%dn",i);
i--; // i=i-1; i++; // i=i+1;
} }
19
Les structures répétitives - Les boucles
R. Benouini Cours de programmation en C
2 – do while (répéter)
Répéter l’exécution de la bloc d’instructions tant que le condition est vrai.
do {
Bloc d’instructions;
} while(condition);
Exemple : affichage des valeurs de 0 à 5
// Donne 0 1 2 3 4 5
i=0;
do {
printf("i=%dn",i);
i++;
} while(i<=5);
20
Les structures répétitives - Les boucles
R. Benouini Cours de programmation en C
3 – for (pour)
Permets de répéter un bloc d’instruction pour un nombre d’itérations
connue.
for(initialisation; condition; incrémentation){
bloc d’instructions;
}
Exemple : affichage des valeurs de 0 à 5
// Donne 0 1 2 3 4 5
for(i=0;i<=5;i++){
printf("i=%dt",i);
}
21
Les structures répétitives - Les boucles
R. Benouini Cours de programmation en C
4 – Exemples
Exemple 1 : afficher 5 étoiles (*) successivement
// Résultat :
// *****
for(i=1;i<=5;i++){
printf("*");
}
Exemple 2 : afficher 5 lignes et dans chaque ligne 5 étoiles (*) (après chaque
ligne un retour à la ligne "n")
for(i=1;i<=5;i++){
for(j=1;j<=5;j++){
printf("*");
}
printf("n");
}
// Résultat :
// *****
// *****
// *****
// *****
// *****
22
Les structures répétitives - Les boucles
R. Benouini Cours de programmation en C
4 – Exemples
Exemple 3 : afficher du triangle d’étoiles
for(i=1;i<=5;i++){
for(j=1;j<=i;j++){
printf("*");
}
printf("n");
}
Exemple 4 : afficher du triangle d’étoiles centré
for(i=1;i<=5;i++){
for(j=1;j<=5-i;j++){
printf(" ");
}
for(j=1;j<=i;j++){
printf("*");
}
for(j=1;j<=i-1;j++){
printf("*");
}
printf("n");
}
// Résultat :
// *
// ***
// *****
// *******
// *********
// Résultat :
// *
// **
// ***
// ****
// *****
23
La partie suivante :
R. Benouini Cours de programmation en C
Programmation en langage C
Rachid Benouini
Partie 2 - les tableaux – les fonctions – les chaines de
caractères – les pointeurs

Contenu connexe

Tendances

cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2Beligh HAMDI
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnellesAymen Kasmi
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 

Tendances (20)

Cours de c
Cours de cCours de c
Cours de c
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2
 
Ch1-Généralités.pdf
Ch1-Généralités.pdfCh1-Généralités.pdf
Ch1-Généralités.pdf
 
Cours.langage c
Cours.langage cCours.langage c
Cours.langage c
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Cours compilation
Cours compilationCours compilation
Cours compilation
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 
UML
UMLUML
UML
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 

En vedette

STM32F4+Android Application
STM32F4+Android ApplicationSTM32F4+Android Application
STM32F4+Android ApplicationHajer Dahech
 
Ontologie concept applications
Ontologie concept applicationsOntologie concept applications
Ontologie concept applicationsbenouini rachid
 
Segmentation par watershed
Segmentation par watershedSegmentation par watershed
Segmentation par watershedbenouini rachid
 
Présentation d'Arduino
Présentation d'ArduinoPrésentation d'Arduino
Présentation d'ArduinoOlivier NOEL
 
Utilisation et programmation en c
Utilisation et programmation en cUtilisation et programmation en c
Utilisation et programmation en cCecilia Bevilaqua
 
Synthes eflexion 4t
Synthes eflexion 4tSynthes eflexion 4t
Synthes eflexion 4tabdourazg
 
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTITD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTIsoufiane merabti
 
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationLe livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationChingongou ­
 
Cle international grammaire progressive du francais avec 400 exercices - ni...
Cle international   grammaire progressive du francais avec 400 exercices - ni...Cle international   grammaire progressive du francais avec 400 exercices - ni...
Cle international grammaire progressive du francais avec 400 exercices - ni...hiteric
 
Programmation des pic_en_c_part2
Programmation des pic_en_c_part2Programmation des pic_en_c_part2
Programmation des pic_en_c_part2oussamada
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Karim Touati
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1oussamada
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 

En vedette (20)

STM32F4+Android Application
STM32F4+Android ApplicationSTM32F4+Android Application
STM32F4+Android Application
 
Cours c++
Cours c++Cours c++
Cours c++
 
Ontologie concept applications
Ontologie concept applicationsOntologie concept applications
Ontologie concept applications
 
Segmentation par watershed
Segmentation par watershedSegmentation par watershed
Segmentation par watershed
 
Présentation d'Arduino
Présentation d'ArduinoPrésentation d'Arduino
Présentation d'Arduino
 
Utilisation et programmation en c
Utilisation et programmation en cUtilisation et programmation en c
Utilisation et programmation en c
 
Chap 12 liaisons et guidage
Chap 12   liaisons et guidageChap 12   liaisons et guidage
Chap 12 liaisons et guidage
 
Synthes eflexion 4t
Synthes eflexion 4tSynthes eflexion 4t
Synthes eflexion 4t
 
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTITD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
 
Biochimie structurale
Biochimie structuraleBiochimie structurale
Biochimie structurale
 
Algorithme
AlgorithmeAlgorithme
Algorithme
 
Compteur ARDUINO
Compteur ARDUINOCompteur ARDUINO
Compteur ARDUINO
 
Pic16f84
Pic16f84Pic16f84
Pic16f84
 
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationLe livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
 
Cle international grammaire progressive du francais avec 400 exercices - ni...
Cle international   grammaire progressive du francais avec 400 exercices - ni...Cle international   grammaire progressive du francais avec 400 exercices - ni...
Cle international grammaire progressive du francais avec 400 exercices - ni...
 
Programmation des pic_en_c_part2
Programmation des pic_en_c_part2Programmation des pic_en_c_part2
Programmation des pic_en_c_part2
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 

Similaire à Cours de programmation en c

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'applicationkamalomari2
 
Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5Laurent BUNIET
 
Cours c#
Cours c#Cours c#
Cours c#zan
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage cDaoua Lotfi
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Seance 1 - Programmation en langage C
Seance 1 - Programmation en langage CSeance 1 - Programmation en langage C
Seance 1 - Programmation en langage CFahad Golra
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1Beligh HAMDI
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCSiratiSoufiane
 
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.pdfShiniGami0o0
 
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 partieLoic Yon
 

Similaire à Cours de programmation en c (20)

Language-C.ppt
Language-C.pptLanguage-C.ppt
Language-C.ppt
 
Chapitre2 prog dsplf3
Chapitre2 prog dsplf3Chapitre2 prog dsplf3
Chapitre2 prog dsplf3
 
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
 
Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5
 
langage C++
langage C++langage C++
langage C++
 
Cours c#
Cours c#Cours c#
Cours c#
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage c
 
POO-chapitre2.pptx
POO-chapitre2.pptxPOO-chapitre2.pptx
POO-chapitre2.pptx
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Seance 1 - Programmation en langage C
Seance 1 - Programmation en langage CSeance 1 - Programmation en langage C
Seance 1 - Programmation en langage C
 
Langage C
Langage CLangage C
Langage C
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 
Chap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptxChap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptx
 
Ch02
Ch02Ch02
Ch02
 
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
 
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
 

Dernier

Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...NaimDoumissi
 
Pharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour PharmaciePharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour PharmacieLoloshka
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 

Dernier (20)

Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
 
Pharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour PharmaciePharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour Pharmacie
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 

Cours de programmation en c

  • 1. Programmation en langage C Rachid Benouini Partie 1 - les notions de base
  • 2. 2 Plan R. Benouini Cours de programmation en C 1 Notions de base de programmation 2 Notion de variable et les types de base 3 Les fonctions d’entrées-sorties standard 4 Syntaxe du langage C – les opérateurs 5 Les structures de contrôle 6 Les structures répétitives – les boucles
  • 3. 3 Notion de base de programmation R. Benouini Cours de programmation en C Un programme est une séquence d'instructions, exécuté une après l'autre - en général de manière séquentielle. Pour le langage C, les instructions sont stockées dans un fichier texte d’extension ".c" par suite ce fichier sera traduit en langage machine par un compilateur puis exécuté. Certain instructions et fonctionnalités, par exemple d’affichage, de lecture, d’accès aux matérielles, d’accès au réseau , etc. sont déjà définit dans des bibliothèques, on fait seulement appel a ces fonctionnalités. stdio.h contient les fonctions d’affichage et de lectures math.h contient les fonctions mathématiques cos, sin, exp,... string.h contient les fonctions de manipulation des chaines de caractères Et bien d’autres ...
  • 4. #include <stdio.h> // directives du préprocesseur #include <stdlib.h> #define carre(x) x*x // déclaration d'alias #define N 150 float prix=12.5; // déclaration des variables globales // Déclaration d'une fonction int somme(int a,int b){ return a+b; } // Déclaration d’une fonction principale main int main(){ // Les instructions int a=1,b=3,s; // Déclaration des variables locales s=somme(a,b); // appel du fonction somme // appel du fonction d'affichage printf printf("la somme est %d",s); return 0; } // Fin du programme 4 Structure générale d’un programme C R. Benouini Cours de programmation en C
  • 5. 5 Les commentaires R. Benouini Cours de programmation en C Sont des parties du programme qui ne sera ni compilé ni exécuté, serve a ajouté un documentation ou explication /* Commentaire a plusieurs lignes */ // Commentaire à la fin de ligne
  • 6. 6 Notion d’identificateur R. Benouini Cours de programmation en C Pour définir les noms des variables, les noms des fonctions, les noms des structures. float prix=12.5; Prix prix _prix prix01 PRIX01 _0prix_ valide 0prix &prix pr–ix +prix +prix-784 non valide Les noms suivantes sont réservés au langage : auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
  • 7. 7 Déclaration des variables R. Benouini Cours de programmation en C Un variable c’est une réservation mémoire pouvant contenir des données (valeurs) d’un type défini, ses valeurs sont changeables dans le temps. type nomDeVariable1,nomVariable2; type nomDeVariable = valeurInitialisation; Exemples : int nombre, age=18, x=-4; float poids=12.4, pi=3.14159;
  • 8. 8 Les types de base R. Benouini Cours de programmation en C char c='F'; // caractère du table code ASCII int a=124; // entier long l=1554220; // entier long float f=3.14159; // réel avec 6 chiffres décimaux double d=3.1415926535; // réel avec double précision 15 // chiffres décimaux long double ld=3.141592653589; // 19 chiffre décimaux Pour le type boolien : un variable int (entier) peut jouer le rôle d’un variable boolien s’il égale a 0 => faux et s’il est diffèrent de 0 => vrai Il existe d’autres types de base comme short int, unsigned int, long long ...
  • 9. 9 Les fonctions d’entrées-sorties standard R. Benouini Cours de programmation en C Prennent l’exemple suivant : #include <stdio.h> int main() { int a=12; printf("la valeur de a est %d",a); // affichage de la valeur de a return 0; } Pour afficher la valeur de a on a utilisé %d qui sera remplacer par la valeur du variable a dans l’appel du fonction d’affichage, %d appelé format de type entier. 1 - Les formats de types
  • 10. 10 Les fonctions d’entrées-sorties standard R. Benouini Cours de programmation en C 1 - Les formats de types Pour afficher d’autre type, on a la table suivante : %c char 'c' 'E' '1' 't' %d int 1 0 -2 31 %ld long int 14 2000 78000 900000 %f float 0.4 3.5 -.78 0.01 %f double 5.0 3.5 %lf long double 2.1e4 3.14159263589 %s char* "chaine" "Karim Mahmoud"
  • 11. 11 Les fonctions d’entrées-sorties standard R. Benouini Cours de programmation en C 2 – Affichage et saisie printf : permets l’affichage sur l’écran printf("valeur est %d",15); printf("%6.5f",1256.46587689); // 1256.46587 forme décimale printf("%e",3.1415926); // 1.245125e+003 forme exponentiel scanf : permet de lire du clavier et stocker dans un variable de même type que le format. scanf("%f",&f); scanf("%c",&c);
  • 12. 12 Syntaxe du langage C R. Benouini Cours de programmation en C 1 – Les opérateurs arithmétiques a+b addition a-b soustraction a*b multiplication a/b division a%b modulo (reste de la division euclidienne de a et b) a++ ou ++a incrémentation de a avec 1 (a=a+1) a-- ou --a décrémentation de a avec 1 (a=a-1) x=y x reçoit la valeur de y x+=y (x=x+y) x reçoit la valeur de x+y x-=y x*=y x/=y x%=y x*=y 2 – Affectation
  • 13. 13 Syntaxe du langage C R. Benouini Cours de programmation en C 3 – Relation x==y égalité donne 1 si x est égale à y; 0 sinon x!=y inégalité donne 1 si x est diffèrent a y; 0 sinon x <y inférieur donne 1 si x < y; 0 sinon x >y supérieur donne 1 si x > y; 0 sinon x<=y inférieur ou égale donne 1 si x <= y; 0 sinon x>=y supérieur ou égale donne 1 si x >= y; 0 sinon 4 – Les opérateurs logiques && et logique || ou logique ! non logique Exemples : a doit être diffère de zéro et inférieur ou égale à b ou simplement b supérieur à 20 (a != 0 && a <= b ) || b > 20
  • 14. 14 Les structures de contrôle R. Benouini Cours de programmation en C 1 – if else (si sinon) if(condition) { Bloc d’instructions 1; } else { Bloc d’instructions 2; } Exemple : saisie d’une valeur, et l’affichage s’il est nul ou non. int a; printf("donner a"); scanf("%d",&a); if(a==0) { printf("a est nul"); } else { printf("a est non nul"); }
  • 15. 15 Les structures de contrôle R. Benouini Cours de programmation en C 2 – else if (sinon si) if(condition 1) { Bloc d’instructions 1; } else if(condition 2) { Bloc d’instructions 2; } else { Bloc d’instructions 3; } Exemple : saisie d’une valeur, et l’affichage s’il est nul, négatif ou positif. int a; printf("donner a"); scanf("%d",&a); if(a==0){ printf("a est nul"); } else if(a>0){ printf("a est positif "); } else if(a<0){ printf("a est negatif"); }
  • 16. 16 Les structures de contrôle R. Benouini Cours de programmation en C 3 – switch (choix) switch(valeur) { case valeur1: bloc d’instruction 1; break ; case valeur2: bloc d’instruction 2; break ; ... ... default: bloc d’instruction des autres cas; } L’instruction break permet de passer les autres cas si une est exécutée.
  • 17. 17 Les structures de contrôle R. Benouini Cours de programmation en C 3 – switch (choix) Exemples : demande un numéro et affiche le jour de la semaine correspondant. int a; printf("donner numero de jour "); scanf("%d",&a); switch(a) { case 1: printf("lundi"); break ; case 2: printf("mardi"); break ; case 3: printf("mercredi"); break ; case 4: printf("jeudi"); break ; case 5: printf("vendredi"); break ; case 6: printf("samedi"); break ; case 7: printf("dimanche"); break; default: printf("n'est pas un jour"); }
  • 18. 18 Les structures répétitives - Les boucles R. Benouini Cours de programmation en C 1 – while (tant que) Tant que la condition est satisfaite (vrai) le bloc d’instruction sera exécuté while(condition){ Bloc d’instructions; } Exemple : affichage des valeurs de 0 à 5 // Décroissant // Croissant // Donne 5 4 3 2 1 0 // Donne 0 1 2 3 4 5 i=5; i=0; while(i>=0){ while(i<=5){ printf("i=%dn",i); printf("i=%dn",i); i--; // i=i-1; i++; // i=i+1; } }
  • 19. 19 Les structures répétitives - Les boucles R. Benouini Cours de programmation en C 2 – do while (répéter) Répéter l’exécution de la bloc d’instructions tant que le condition est vrai. do { Bloc d’instructions; } while(condition); Exemple : affichage des valeurs de 0 à 5 // Donne 0 1 2 3 4 5 i=0; do { printf("i=%dn",i); i++; } while(i<=5);
  • 20. 20 Les structures répétitives - Les boucles R. Benouini Cours de programmation en C 3 – for (pour) Permets de répéter un bloc d’instruction pour un nombre d’itérations connue. for(initialisation; condition; incrémentation){ bloc d’instructions; } Exemple : affichage des valeurs de 0 à 5 // Donne 0 1 2 3 4 5 for(i=0;i<=5;i++){ printf("i=%dt",i); }
  • 21. 21 Les structures répétitives - Les boucles R. Benouini Cours de programmation en C 4 – Exemples Exemple 1 : afficher 5 étoiles (*) successivement // Résultat : // ***** for(i=1;i<=5;i++){ printf("*"); } Exemple 2 : afficher 5 lignes et dans chaque ligne 5 étoiles (*) (après chaque ligne un retour à la ligne "n") for(i=1;i<=5;i++){ for(j=1;j<=5;j++){ printf("*"); } printf("n"); } // Résultat : // ***** // ***** // ***** // ***** // *****
  • 22. 22 Les structures répétitives - Les boucles R. Benouini Cours de programmation en C 4 – Exemples Exemple 3 : afficher du triangle d’étoiles for(i=1;i<=5;i++){ for(j=1;j<=i;j++){ printf("*"); } printf("n"); } Exemple 4 : afficher du triangle d’étoiles centré for(i=1;i<=5;i++){ for(j=1;j<=5-i;j++){ printf(" "); } for(j=1;j<=i;j++){ printf("*"); } for(j=1;j<=i-1;j++){ printf("*"); } printf("n"); } // Résultat : // * // *** // ***** // ******* // ********* // Résultat : // * // ** // *** // **** // *****
  • 23. 23 La partie suivante : R. Benouini Cours de programmation en C Programmation en langage C Rachid Benouini Partie 2 - les tableaux – les fonctions – les chaines de caractères – les pointeurs