SlideShare une entreprise Scribd logo
1  sur  116
Initiation à la programmation : Le langage C
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Caractéristiques du C ,[object Object],[object Object],[object Object],[object Object],[object Object]
Programmation modulaire ,[object Object],[object Object],[object Object],[object Object]
Compilation séparée Exécutable Préprocessing Compilation Edition de liens Optimisation fichier1.c fichier2.c fichier3.c fichier1.h fichier2.h fichier3.h Programme fichier1.o fichier2.o fichier3.o
Les variables ,[object Object],[object Object],[object Object],[object Object]
Types entiers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Types entiers (2) ,[object Object],[object Object],[object Object]
Types à virgule ,[object Object],[object Object],[object Object]
Les types : La taille Pentium II Sparc Alpha char 8 bits 8 bits 8 bits short 16 bits 16 bits 16 bits int 16 bits 32 bits 32 bits long 32 bits 32 bits 64 bits float 32 bits 32 bits 32 bits double 64 bits 64 bits 64 bits long double 64 bits 64 bits 128 bits
Déclaration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les opérateurs ,[object Object],[object Object],[object Object],[object Object],[object Object]
Les opérateurs (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les opérateurs unaires ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les opérateurs unaires (2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Les opérateurs binaires ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],float a,b,c,d,e; a=5.0; b=12.0; b=b-a; c=b/a;
Les opérateurs binaires (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],int a,b,c; a=5; b=12; c=12; if ( (b>=a) && (b!=c) ) { b=c; }
Les opérateurs binaires (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les entrées-sorties : Les flux Entrée standard stdin -> clavier Sortie standard stdout -> écran Sortie d’erreur stderr Programme C
Les entrées-sorties : Affichage à l’écran ,[object Object],[object Object],[object Object]
Les entrées-sorties : Affichage à l’écran ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les entrées-sorties : Lecture au clavier ,[object Object],[object Object],[object Object]
Les entrées-sorties : Lecture au clavier ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Représentation des types ,[object Object],[object Object],[object Object],Types Format char %c int %d %x %o float ou double %f long double %Lf char[] %s
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les structures de contrôle
Les conditionnelles : if…else (1) ,[object Object],[object Object],[object Object],[object Object],condition instructions vrai faux
Les conditionnelles : if…else (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],condition instructions1 vrai faux instructions2
Les conditionnelles : if…else (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],… else { instructions3; }
Les conditionnelles : switch…case (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],… default: instructionsDefault; break; }
Les conditionnelles : switch…case (2) expression constante1 default ... instructionsD instructions1 instructions2
Les itérations : La boucle for ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les itérations : La boucle for vrai faux Initialisation Condition d’arrêt Mise à jour exp2 exp1 instructions exp3
Les itérations : La boucle while ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],condition instructions vrai faux
Les itérations : La boucle do…while ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],condition instructions vrai faux
Les itérations ,[object Object],[object Object],[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fonctions et procédures ,[object Object],[object Object],[object Object],[object Object],[object Object]
Les procédures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les fonctions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les paramètres ,[object Object],[object Object],[object Object],[object Object],[object Object]
Portée des variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Fonction particulière : main ,[object Object],[object Object],[object Object],[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Définition ,[object Object],[object Object],[object Object],[object Object]
Les tableaux (1) ,[object Object]
Les tableaux (2) int anArray [7]  -> 9 3 12 1 1 2 0 anArray[3] v void main() { int anArray[7]; anArray[0]=9; anArray[1]=0; anArray[2]=3; ... } 0 2 3 4 5 6 1 !
Les tableaux (3) 0 2 3 4 5 6 1 float anArray[7]  -> anArray[3] v void main() { float anArray[7]={9.5,0.2,3.1,5.8,1,1.2,6}; anArray[0]=9.5; anArray[1]=0.2; anArray[2]=3.1; ... } 9.5 0.2 3.1 5.8 1 1.2 6
Les tableaux (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les tableaux (5) ,[object Object],#define ARRAY_SIZE 1000 void main() { int searchingArray[ARRAY_SIZE]; int element,i=0; initialization(searchingArray,&element,ARRAY_SIZE); while((i< ARRAY_SIZE) && (searchingArray[i]!=element)) i++; if (i== ARRAY_SIZE) printf(&quot;Element %d not found !&quot;,element); else printf(&quot;Element %d found at indice %d&quot; ,element,i); }
Les tableaux (6) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les tableaux (7) ,[object Object],[object Object],[object Object],[object Object]
Les chaînes de caractères ,[object Object],o l l e h Chaîne de caractères Tableau de caractères Fin de chaîne ,[object Object], o l l e h
Les chaînes de caractères (2) ,[object Object],[object Object],[object Object],[object Object]
Les chaînes de caractères (3) l’ASCII ,[object Object],[object Object],[object Object],[object Object]
Les chaînes de caractères (3) l’ASCII ,[object Object],Notation ASCII décimale Notation humaine Notation ASCII hexadécimale 104 101 108 108 111 0 h e l l o  68 65 6C 6C 6F 0
Les chaînes de caractères (4) l’ASCII ,[object Object],[object Object],[object Object],[object Object],[object Object]
Les chaînes de caractères (2) 0 2 3 4 5 1 char aString [6]  -> aString[3] v #include <string.h> void main() { char aString[6]= &quot;hello&quot; ; aString[0]=‘h’; aString[1]=‘e’; ... strcpy(aString, &quot;hello&quot; ); }  o l l e h
Les chaînes de caractères (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les chaînes de caractères (4) ,[object Object],[object Object]
Les chaînes de caractères (5) Les fonctions standard ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Les tableaux à plusieurs dimensions ,[object Object],[object Object],[object Object],[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Structures en C ,[object Object],[object Object],[object Object]
Structures : Définition ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Champ Définition de la structure Ne pas oublier le ; Déclaration d’une variable Accès aux champs avec .
Structures : Définition ,[object Object],[object Object],[object Object]
Structures : Imbrication struct Date { int jour,mois,annee; }; struct Etudiant { char nom[50]; char prenom[50]; int age; struct Date dateInscription; }; int main() { struct Etudiant toto; toto.dateInscription.jour=1; return 0; }
Tableaux de structures struct Etudiant { char nom[50]; char prenom[50]; int age; }; int main() { struct Etudiant gtr1[50]; gtr1[0].age=19; return 0; }
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object]
Utilité des pointeurs ,[object Object],[object Object],[object Object]
Définition ,[object Object],[object Object],[object Object]
Notation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Représentation en mémoire Mémoire 18971 18979 18994 19002 18986 18984 int a; int* pointeurSurA; a=5; pointeurSurA=&a; 18994 5 pointeurSurA a
Pointeurs sur données ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Affectations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemples (1) ,[object Object],[object Object],[object Object],[object Object],int a=5; int* pointeurSurInt; pointeurSurInt=&a;
Exemples (2) int main(int argc, char* argv[]) { int a,b; int* pointeurSurA; pointeurSurA=&a; b=a+1; /* ou b=*pointeurSurA+1 */ a=b*4; /* ou *pointeurSurA=b*4; a++; /* ou (*pointeurSurA)++; }
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object]
Tableaux et pointeurs ,[object Object],[object Object],[object Object],[object Object],[object Object]
Tableaux et pointeurs : Adressage ,[object Object],[object Object],[object Object],[object Object],[object Object],int tableau[100]; int* pointeurSurInt; pointeurSurInt=tableau;
Tableaux et pointeurs : Adressage int tableau[100]; int* pointeurSurInt; pointeurSurInt=tableau;  /* ou pointeurSurInt=&tableau[0]; */ for (i=0;i<100;i++) tableau[i]=0; /* ou *(pointeurSurInt+i)=0; */ while (pointeurSurInt!=&tableau[99]) { *pointeurSurInt=0; pointeurSurInt++; } int tableau[100]; int* pointeurSurInt; pointeurSurInt=tableau;  /* ou pointeurSurInt=&tableau[0]; */
Tableaux et pointeurs : Allocation dynamique ,[object Object],[object Object],[object Object],[object Object],[object Object]
Tableaux et pointeurs : Allocation dynamique int main(int argc, char* argv[]) { int* tableau; int nombreCases; nombreCases=atoi(argv[1]); tableau=(int*)malloc(nombreCases*sizeof(int)); free(tableau); }
Tableaux et pointeurs : Tableaux à 2 dimensions ,[object Object],[object Object],[object Object],[object Object]
Tableaux et pointeurs : Tableaux à 2 dimensions ,[object Object],[object Object],int main(int argc, char* argv[]) { int** tableau; int i; tableau=(int**)malloc(NB_COLONNES*sizeof(int*)); for (i=0;i<NB_COLONNES;i++) tableau[i]=(int*)malloc(NB_LIGNES*sizeof(int)); }
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object]
Passage de paramètres ,[object Object],[object Object],[object Object],[object Object]
Passage de paramètres void main() { int a,b; a=5; fonction(a,&b); } void fonction(int parRecopie, int* parAdresse) { parRecopie=10; *parAdresse=15; }
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object]
Structures dynamiques : Définition ,[object Object],[object Object],[object Object]
Structures et pointeurs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Structures et pointeurs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],void  init(struct Etudiant* initE) { (*initE).age=15; /* initE->age=15; */ }
Listes chaînées : Principe ,[object Object],[object Object],Racine Données Pointeur Données Pointeur
Listes chaînées : Principe ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Listes chaînées : Insertion ,[object Object],Racine Données Pointeur Données Pointeur Données Pointeur
Listes chaînées : Destruction ,[object Object],Racine Données Pointeur Données Pointeur Racine Données Pointeur
Listes chaînées : Avantages/inconvénients ,[object Object],[object Object],[object Object],[object Object]
Listes doublement chaînées : Principe ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Listes doublement chaînées : Insertion ,[object Object],Racine Données Pointeur Pointeur Données Pointeur Pointeur Données Pointeur Pointeur Données Pointeur Pointeur
Listes doublement chaînées : Destruction ,[object Object],Racine Données Pointeur Pointeur Données Pointeur Pointeur Données Pointeur Pointeur
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Accès aux fichiers ,[object Object],[object Object],[object Object],[object Object]
Lecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lecture (2) ,[object Object],[object Object]
Ecriture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ecriture (2) ,[object Object],[object Object]
Ecriture ,[object Object],[object Object]
Plan ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bêtisier ,[object Object],[object Object],[object Object]
Bêtisier ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bêtisier (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Exercice 2 java Héritage
Exercice 2  java HéritageExercice 2  java Héritage
Exercice 2 java HéritageNadaBenLatifa
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcminfcom
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...ENSET, Université Hassan II Casablanca
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseLilia Sfaxi
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeENSET, Université Hassan II Casablanca
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 

Tendances (20)

Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
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
 
Exercice 2 java Héritage
Exercice 2  java HéritageExercice 2  java Héritage
Exercice 2 java Héritage
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Cours java
Cours javaCours java
Cours java
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Tp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-EclipseTp1 - Initiation à Java-Eclipse
Tp1 - Initiation à Java-Eclipse
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 

Similaire à Cours langage c

Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCSiratiSoufiane
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
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
 
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
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSSAyoubElmrabet6
 
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
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptxMED B
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMALoic Yon
 

Similaire à Cours langage c (20)

Chap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptxChap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptx
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CPP PTT DE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 
Language-C.ppt
Language-C.pptLanguage-C.ppt
Language-C.ppt
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Ch02
Ch02Ch02
Ch02
 
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
 
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
 
Initiation r
Initiation rInitiation r
Initiation r
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSS
 
langage C++
langage C++langage C++
langage C++
 
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
 
POO-chapitre2.pptx
POO-chapitre2.pptxPOO-chapitre2.pptx
POO-chapitre2.pptx
 
Theme 6
Theme 6Theme 6
Theme 6
 
cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptx
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMA
 
Formation python
Formation pythonFormation python
Formation python
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 

Plus de coursuniv

Loi d’ohm et loi de joule
Loi d’ohm et loi de jouleLoi d’ohm et loi de joule
Loi d’ohm et loi de joulecoursuniv
 
Influences électrostatiques
Influences électrostatiquesInfluences électrostatiques
Influences électrostatiquescoursuniv
 
Réseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxRéseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxcoursuniv
 
Chapitre 2 potentiel électrostatique
Chapitre 2  potentiel électrostatiqueChapitre 2  potentiel électrostatique
Chapitre 2 potentiel électrostatiquecoursuniv
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électriquecoursuniv
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électriquecoursuniv
 
Chapitre 4 equilibre électrostatique des conducteurs
Chapitre 4   equilibre électrostatique des conducteursChapitre 4   equilibre électrostatique des conducteurs
Chapitre 4 equilibre électrostatique des conducteurscoursuniv
 
Chapitre 1 loi de coulomb et champ électrostatique
Chapitre 1  loi de coulomb et champ électrostatiqueChapitre 1  loi de coulomb et champ électrostatique
Chapitre 1 loi de coulomb et champ électrostatiquecoursuniv
 
Chapitre 3 théorème de gauss
Chapitre 3  théorème de gaussChapitre 3  théorème de gauss
Chapitre 3 théorème de gausscoursuniv
 
Analyse numerique
Analyse numeriqueAnalyse numerique
Analyse numeriquecoursuniv
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Loi de coulomb
Loi de coulomb Loi de coulomb
Loi de coulomb coursuniv
 
Architecture des ordinateurs 3
Architecture des ordinateurs 3Architecture des ordinateurs 3
Architecture des ordinateurs 3coursuniv
 
Architecture 4
Architecture 4Architecture 4
Architecture 4coursuniv
 

Plus de coursuniv (20)

Algo et c
Algo et cAlgo et c
Algo et c
 
Loi d’ohm et loi de joule
Loi d’ohm et loi de jouleLoi d’ohm et loi de joule
Loi d’ohm et loi de joule
 
Influences électrostatiques
Influences électrostatiquesInfluences électrostatiques
Influences électrostatiques
 
Réseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes générauxRéseaux électriques linéaires théorèmes généraux
Réseaux électriques linéaires théorèmes généraux
 
Chapitre 2 potentiel électrostatique
Chapitre 2  potentiel électrostatiqueChapitre 2  potentiel électrostatique
Chapitre 2 potentiel électrostatique
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électrique
 
Généralité sur le courant électrique
Généralité sur le courant électriqueGénéralité sur le courant électrique
Généralité sur le courant électrique
 
Chapitre 4 equilibre électrostatique des conducteurs
Chapitre 4   equilibre électrostatique des conducteursChapitre 4   equilibre électrostatique des conducteurs
Chapitre 4 equilibre électrostatique des conducteurs
 
Chapitre 1 loi de coulomb et champ électrostatique
Chapitre 1  loi de coulomb et champ électrostatiqueChapitre 1  loi de coulomb et champ électrostatique
Chapitre 1 loi de coulomb et champ électrostatique
 
Analyse s1
Analyse s1Analyse s1
Analyse s1
 
Chapitre 3 théorème de gauss
Chapitre 3  théorème de gaussChapitre 3  théorème de gauss
Chapitre 3 théorème de gauss
 
Analyse numerique
Analyse numeriqueAnalyse numerique
Analyse numerique
 
Excel
ExcelExcel
Excel
 
Excel
ExcelExcel
Excel
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
C
CC
C
 
Loi de coulomb
Loi de coulomb Loi de coulomb
Loi de coulomb
 
Architecture des ordinateurs 3
Architecture des ordinateurs 3Architecture des ordinateurs 3
Architecture des ordinateurs 3
 
Architecture 4
Architecture 4Architecture 4
Architecture 4
 

Dernier

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
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 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
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
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
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
 
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
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
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 (19)

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
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
 
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
 
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
 
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...
 
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
 
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
 
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
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
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 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
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
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
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
 
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
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
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 langage c

  • 1. Initiation à la programmation : Le langage C
  • 2.
  • 3.
  • 4.
  • 5. Compilation séparée Exécutable Préprocessing Compilation Edition de liens Optimisation fichier1.c fichier2.c fichier3.c fichier1.h fichier2.h fichier3.h Programme fichier1.o fichier2.o fichier3.o
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Les types : La taille Pentium II Sparc Alpha char 8 bits 8 bits 8 bits short 16 bits 16 bits 16 bits int 16 bits 32 bits 32 bits long 32 bits 32 bits 64 bits float 32 bits 32 bits 32 bits double 64 bits 64 bits 64 bits long double 64 bits 64 bits 128 bits
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Les entrées-sorties : Les flux Entrée standard stdin -> clavier Sortie standard stdout -> écran Sortie d’erreur stderr Programme C
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Les structures de contrôle
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. Les conditionnelles : switch…case (2) expression constante1 default ... instructionsD instructions1 instructions2
  • 33.
  • 34. Les itérations : La boucle for vrai faux Initialisation Condition d’arrêt Mise à jour exp2 exp1 instructions exp3
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48. Les tableaux (2) int anArray [7] -> 9 3 12 1 1 2 0 anArray[3] v void main() { int anArray[7]; anArray[0]=9; anArray[1]=0; anArray[2]=3; ... } 0 2 3 4 5 6 1 !
  • 49. Les tableaux (3) 0 2 3 4 5 6 1 float anArray[7] -> anArray[3] v void main() { float anArray[7]={9.5,0.2,3.1,5.8,1,1.2,6}; anArray[0]=9.5; anArray[1]=0.2; anArray[2]=3.1; ... } 9.5 0.2 3.1 5.8 1 1.2 6
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59. Les chaînes de caractères (2) 0 2 3 4 5 1 char aString [6] -> aString[3] v #include <string.h> void main() { char aString[6]= &quot;hello&quot; ; aString[0]=‘h’; aString[1]=‘e’; ... strcpy(aString, &quot;hello&quot; ); } o l l e h
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68. Structures : Imbrication struct Date { int jour,mois,annee; }; struct Etudiant { char nom[50]; char prenom[50]; int age; struct Date dateInscription; }; int main() { struct Etudiant toto; toto.dateInscription.jour=1; return 0; }
  • 69. Tableaux de structures struct Etudiant { char nom[50]; char prenom[50]; int age; }; int main() { struct Etudiant gtr1[50]; gtr1[0].age=19; return 0; }
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75. Représentation en mémoire Mémoire 18971 18979 18994 19002 18986 18984 int a; int* pointeurSurA; a=5; pointeurSurA=&a; 18994 5 pointeurSurA a
  • 76.
  • 77.
  • 78.
  • 79. Exemples (2) int main(int argc, char* argv[]) { int a,b; int* pointeurSurA; pointeurSurA=&a; b=a+1; /* ou b=*pointeurSurA+1 */ a=b*4; /* ou *pointeurSurA=b*4; a++; /* ou (*pointeurSurA)++; }
  • 80.
  • 81.
  • 82.
  • 83. Tableaux et pointeurs : Adressage int tableau[100]; int* pointeurSurInt; pointeurSurInt=tableau; /* ou pointeurSurInt=&tableau[0]; */ for (i=0;i<100;i++) tableau[i]=0; /* ou *(pointeurSurInt+i)=0; */ while (pointeurSurInt!=&tableau[99]) { *pointeurSurInt=0; pointeurSurInt++; } int tableau[100]; int* pointeurSurInt; pointeurSurInt=tableau; /* ou pointeurSurInt=&tableau[0]; */
  • 84.
  • 85. Tableaux et pointeurs : Allocation dynamique int main(int argc, char* argv[]) { int* tableau; int nombreCases; nombreCases=atoi(argv[1]); tableau=(int*)malloc(nombreCases*sizeof(int)); free(tableau); }
  • 86.
  • 87.
  • 88.
  • 89.
  • 90. Passage de paramètres void main() { int a,b; a=5; fonction(a,&b); } void fonction(int parRecopie, int* parAdresse) { parRecopie=10; *parAdresse=15; }
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.

Notes de l'éditeur

  1. exemple du grep : tant qu’il y une ligne si cette ligne contient le modèle l’afficher
  2. Exemples de fonctions --------------------- int max(int a,int b) /* fonction avec 2 args en mode in */ { int maxAB; /* maxAB n&apos;est definie que dans max */ if(a&gt;b) { maxAB=a; } else { maxAB=b; } return(maxAB); /* retour obligatoire de la fonction du meme type que max */ } Exemples de procedures ---------------------- void impNumero(int num) /* procedure d&apos;affichage d&apos;un entier */ { printf(&amp;quot;­­­­­%d­­­­­\\n&amp;quot;,num); } /* PAS de return */ void dessineCarre(int x,int y, int cote) { ... /* dessine un carre a l&apos;ecran */ } void echange(int *a, int *b) /* procedure d&apos;echange des valeurs de deux variables (mode in­out) */ { int temp; /* temp n&apos;est definie que dans echange */ temp=*a; /* on utilise * pour acceder a la valeur */ *a=*b; /* on utilise * pour modifier la valeur */ *b=temp; }