Home

Présentation - Cours de Langage C

image

Contents

1. tab 1 2 Affectation tf 5 3 8 tab 0 2 5 0 ECM Math matique et Informatique S Derrode 21 Programmation Structur e en Langage C 1 ann e include lt stdio h gt int main double tf 5 1 2 4 7 3 4 printf ntf 0 1f tf 0 double t tf 2 printi nt if amp d mo 6 tf 3 8 789 printf ntf 3 1f tf 3 printf ntf 5 1f tf 5 t 5 1 21 printf tf 5 1f tf 5 return 0 ECM Math matique et Informatique S Derrode 22 Programmation Structur e en Langage C 1 ann e Types d riv s 2 T nitialisation char helloi 13 char hello2 13 cha nes de caract res D claration char chaine 20 bot un 10 E bonjour bloin jlolu r 0 char ch message mlels s alg e 0 ch 4 b remplace la lettre a par la lettre de b D de cha ne 0 La fonction strlen biblioth que include lt string h gt ne s applique qu aux cha nes de caract re et non aux tableaux de nombres Pensez ajouter un espace m moire pour le caract re de terminaison ECM Math matique et Informatique S Derrode 23 Programmation Structur e en Langage C 1 ann e d mo 7 include lt stdio h gt include lt string h gt
2. ECM Math matique et Informatique S Derrode 80 Programmation Structur e en Langage C 1 ann e Descripteurs pr d finis stdin flux d entr e standard stdout flux de sortie standard stderr flux de sortie des messages d erreur do fprintf stdout Voulez vous continuer _ o n n fscanf stdin c amp rep while rep o Est quivalent do printf Voulez_vous continuer_ o n n scanf c amp rep while rep o ECM Math matique et Informatique S Derrode 81 Programmation Structur e en Langage C 1 ann e Modes et fonctions d ouverture B l appel la fonction fopen s crit g fopen nom mode B l op ration d ouverture correspond associer g un fichier d crit par son nom On dit pour simplifier que g lt pointe sur le fichier gt au positionnement de la t te de lecture sur la premi re ligne de ce fichier Fermeture du flux associ au pointeur sur fichier En cas de mode d utilisation en criture les donn es crites sont transf r es sur le disque dur Exemple fclose g ECM Math matique et Informatique S Derrode 82 Programmation Structur e en Langage C 1 ann e m Modes d ouverture FILE f En lecture g fopen entree txt r En criture avec crasement g fopen resultat txt w En criture ajout sans
3. if f NULL printf Impossible d ouvrir_ _ n exit 0 while feof f 0 fscanf f c amp p printf pe p fclose f ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 e ann e 89 criture dans un fichier texte Mode d ouverture de fopen w Exemple FILE h h fopen resultat txt w Utilisation de la fonction fprintf comme printf Exemple char mot 20 Bonjour fprintf h s mot Les donn es sont crites physiquement au moment de la fermeture fclose h ECM Math matique et Informatique S Derrode 90 Programmation Structur e en Langage C 1 ann e Acc s s quentiel par caract re et par ligne par caract re int fgetc FILE f Lecture d un caract re partir du fichier point par f Ex char c fgetc ficIn int fputc char c FILE f crit le caract re c dans le fichier point par f Ex char c o fputc c ficIn par ligne char fgets char x ch int n FILE f Lecture de n 1 caract res sur le fichier point par f Les caract res lus sont rang s dans ch int fputs char x ch FILE f crit la cha ne de caract res ch dans le fichier point par f ECM Math matique et Informatique S Derrode 91 Programmation Structur e en Langage C 1 ann e Exemple Recopie d un fichier Z d mo
4. ECM Math matique et Informatique S Derrode 97 Programmation Structur e en Langage C 1 ann e B Exemple include stdio h void main int argc char x xxargv int i double d printf nNombre d arguments d n argc for i 0 i lt argc i printf Arg d s n i argv i d mo 25 ECM Math matique et Informatique S Derrode 98 Programmation Structur e en Langage C 1 ann e m Si un argument attendu est un nombre entier ou r el on peut utiliser les fonctions int atoi char s long atoi char s et double atoi char s de stdlib h Exercice crire un programme Add qui fait la somme de tous les nombres entiers qui lui sont transmis Ainsi l appel Add 1 2 3 doit afficher 6 include stdio h void main int argc char x xxargv int i res Q for i 1 i lt argc i res atoi argv il printf nResultat d res ECM Math matique et Informatique S Derrode 99 Programmation Structur e en Langage C 1 e ann e Pointeur de fonction Pointeur pointant vers une fonction et non plus sur un nombre Il s agit donc d une variable qui peut contenir l adresse d une fonction void AjouteUn int xx xx l void xinc int z d claration inc AjouteUn initialisation int a 10 inc amp a incr mente a de 1 Bm Exemple ECM Math matique et Informatique S Derrode 100 Programmation
5. d mo 21 include lt stdio h gt struct Point2D double x double y void AjoutePoint struct Point2Dx ptl struct ptl gt x pt2 x ptl gt y pt2 y int main Point2D pt2 struct Point2D poiati 2 0 9 5 struct Point2D point2 1 0 2 0 printf nAvant_ point1i f f _point2 f f pointl x pointl y point2 x point2 y AjoutePoint amp pointl point2 printf nApres_ _point1i f f _ point2 f f n pointl y point2 x point2 y return 0 pointl x ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e 73 Tableau statique de structures include lt string h gt struct athlete int Age char Nom 15 double BestJump void main struct athlete CompetitionSaut 10 CompetitionSaut 0 BestJump 7 4 CompetitionSaut 0 Age 26 strcpy CompetitionSaut 0 Nom Durant CompetitionSaut 26 Durant 7 4 22 Dupont 7 8 8 Perlin 2 5 77 Pinpin 16 5 ECM Math matique et Informatique S Derrode 74 Programmation Structur e en Langage C 1 ann e Structure et allocation dynamique de m moire Exemple 1 une structure struct Point2Dx pPt pPt struct Point2D x malloc sizeof struct Point2D free pPt pPt NULL SSL ppt Eee TT T JT ECM Math matique et Informatique S Derrode 75 Programmation Struct
6. nCouleur _ d cl affiche 5 B Remarque Identifi comme des entiers enum bascule ON OFF NON 0 OUI quivaut enum bascule ON 0 OFF 0 NON 0 OUI 1 W Remarque Alternative define ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Les champs de bits struct chps unsigned int b0_2 3 signed int b3 7 5 7 1 Exemple unsigned int unsigned int b15 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BD Remarques Les type sont soit int quiv signed int soit unsigned int Ils peuvent entra ner des probl mes de portabilit entre machines lt Low Indian gt et lt Big Indian gt ECM Math matique et Informatique S Derrode 104 Programmation Structur e en Langage C 1 ann e UNIX Linux commandes l mentaires Description Commande Anglais Affichage du r pertoire courant pwd Cr ation d un nouveau r p monRep mkdir monRep make directory Changement de r pertoire cd monRep change directory Retour au r pertoire pr c dent cd Liste des fichiers du r p courant 1s list Cr ation d un fichier vide appel monFic c touch monFic c D placement d un fichier vers un r pertoire monRep mv monFic c monRep move Copie de fichier1 dans fichier cp fichieri fichier2 copy Renommage de fichieri en fichier3 mv fichieri fichier3 move Suppression d
7. un fichier rm monFic remove Suppression d un r pertoire complet rm r monRep Edition d un fichier nedit monFic amp nedit editeur Compilation de monFic c gcc monFic c gcc monFic c o monFic ex cutable a out ex cutable monFic Ex cution du programme monFic monFic ECM Math matique et Informatique S Derrode 105 Programmation Structur e en Langage C 1 ann e ECM Math matique et Informatique S Derrode 106
8. crasement g fopen resultat txt a Lecture Ecriture sans crasement position fin g fopen resultat txt r Lecture Ecriture avec crasement g fopen resultat txt w Lecture Ecriture sans crasement position d but g fopen resultat txt a A la seconde cha ne on peut ajouter le caract re b pour signifier que l enregistrement sera cod en binaire Par d faut le codage est t pour texte ECM Math matique et Informatique S Derrode 83 Programmation Structur e en Langage C 1 ann e Test louverture Selon les droits disponibles il arrive souvent que louverture d un fichier se passe mal gt Il faut traiter les erreurs d ouverture pour viter des erreurs ult rieures f fopen monfichier txt r if NULL printf Impossible d ouvrir_ n exit 0 La valeur NULL pour le pointeur f indique une erreur d ouverture La fonction exit termine l ex cution du programme ECM Math matique et Informatique S Derrode 84 Programmation Structur e en Langage C 1 ann e Les fichiers texte Organisation d un fichier texte Une s quence de cha nes de caract res s par es par sauts la ligne coll col2 col3 col4 ECM Math matique et Informatique S Derrode 85 Programmation Structur e en Langage C 1 ann e Organisation d un fichier de
9. 24 include lt stdio h gt include lt stdlib h gt void main char Ci FILE ficln fopen original txt rj if ficio NULL exit 0 FILE ficOut fopen temp copie txt w if ficOut NULL exit 0 while feof ficin 0 e f ete ficln j fpute c ficOut folosea freln y felose ficOut ECM Math matique et Informatique S Derrode 92 Programmation Structur e en Langage C 1 ann e Les fichiers binaires Ouverture Exemple g fopen fichier bin wb Fermeture fclose g Lecture int fread void x p int s int nb FILE f Cette fonction transfert depuis le fichier associ f nb l ments de taille s octets et dont le type est celui de p La fonction retourne le nombre d octets lus Exemple char mot 20 fread mot 1 10 g ECM Math matique et Informatique S Derrode 93 Programmation Structur e en Langage C 1 ann e criture int fwrite void p int s int nb FILE f Cette fonction transfert vers le fichier associ f nb l ments de taille s octets et dont le type est celui de p La fonction retourne le nombre d octets crits Exemple char mot 20 Bonjour fwrite mot 1 strlen mot g ECM Math matique et Informatique S Derrode 94 Programmation Structur e en Langage C 1 ann e include lt stdio h gt Hinclude lt stdlib h
10. Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Premiers programmes 1 Ne fait rien 2 lt Hello World gt E include lt stdio h gt Programme minimum ne faisant rien int main Affiche le message int main printf nHello World return 0 return 0 d mo 1 Ligne de compilation cf Tr 105 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Principales bases Bases Notations Symboles 2 binaire 0 1 8 octale 0i caT 10 d cimale O 1 9 16 hexad cimal 0 1 9 a b c d e f d cimale binaire octale hexad cimal 70 1000110 106 46 511 111111111 777 1FF 70 0 x92 14x91 1 2 1x926 70 6 x 16 4 x 16 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e l ment m moire bit et octet Un octet ou lt byte gt est compos de 8 lt bits gt t Un bit est un l ment m moire de base valeurs 0 ou 1 Un octet 28 256 possibilit s valeurs de 128 127 Octet 8 bits RC EC Mi To lo loli iTo Bit de signe amp M moire RAM suite d octets adress s Memoire RAM Adresse 0x2ab09c Ox2ab09d 0x2ab09e ECM Math matique et Informatique S Derrode Programmation Structur e en L
11. define TESTH extern int add int C int D int VarGlobale Hendif ECM Math matique et Informatique S Derrode 65 Programmation Structur e en Langage C 1 ann e Structures unions et num rations m Types de base char short int float double pointeurs m Types d riv s Tableaux de nombres ou de caract res Types complexes objets num ration Sert offrir la possibilit de g rer des constantes num riques Tr 103 Structure Objets compos de plusieurs champs Exemple Voiture marque num d immatriculation ann e D finition et exemples Tr 67 Structure et pointeurs Tr 70 Structure et fonctions Tr 71 Tableau statique de structures Tr 74 Structure et alloc dyn de m moire Tr 75 Structures auto r f rentielles Tr 77 ECM Math matique et Informatique S Derrode 66 Programmation Structur e en Langage C 1 ann e Structures d finition et utilisation m Structures Agr gat de plusieurs objets de types quelconques appel s champs de la structure Syntaxe struct nom structure typei variablel type2 variable2 Fs Exemple Point du plan struct Point2D float x float y ECM Math matique et Informatique S Derrode 67 Programmation Structur e en Langage C 1 e ann e Une structure est un type et non une variable Pour d clarer une variable du type P
12. gt struct individu char nom 15l int age void main struct individu eleve int taille sizeof struct individu FILE ficIn fopen c temp original bin rb if fi ln NULL axit 0 FILE ficOut fopen c temp copie bin wb if ficOut NULL exit 0 Boucle de recopie while feof ficin 0 fread amp eleve taille 1 ficln fwrite amp eleve taille 1 ficOut felos fiel fclose ficOut ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e 95 Autres petites choses Les arguments de la fonction principale Tr 97 Les pointeurs de fonctions Tr 100 Les num rations Tr 103 Les champs de bits Tr 104 UNIX Linux commandes l mentaires Tr 105 ECM Math matique et Informatique S Derrode 96 Programmation Structur e en Langage C 1 ann e Les arguments de int main int main int argc char xargv Explication des arguments variables pr d finies int argc nombre d argument transmis au prg principal char argv tableau de cha nes de caract res contenant les arguments transmis B Fonction avec un nombre d arguments variable argv 0 cha ne contenant le nom du programme argv argc contient 0 Le premier argument est donc argv 1 et le dernier argvlargc 1
13. int main char ch1 50 Bonjour printf nchl s ch1 3 c ch1 20 c char ch2 120 printf nEntrez une chaine scanf s ch2 ch2 3 Z7 printf nch2 s ch2 3 c ch2 20 c int taille strlen ch2 printf nTaille de ch2 d taille return 0 ECM Math matique et Informatique S Derrode 24 Programmation Structur e en Langage C 1 ann e Instructions de contr le Instructions conditionnelles if test Tr 26 switch table de branchement Tr 28 Instructions r p titives while Tr 30 for Tr 32 do while Tr 31 Rupture de s quence continue Tr 35 break return Tr 36 ECM Math matique et Informatique S Derrode 25 Programmation Structur e en Langage C 1 ann e Inst cond if l if expression if fin 1 printf Au revoir_ instruction if n 1 amp amp m gt 10 2 if expression printf Bonjour instruction1 fn 15 else else instruction printf Au revoir ECM Math matique et Informatique S Derrode 26 Programmation Structur e en Langage C 1 ann e int main printf Voulez vous imprimer le mode d emploi n char c scanf c amp c if c o printf nJe_ lance _le_processus d impression else if c n printf nJe ne fais _rien else print
14. matique et Informatique S Derrode 34 Programmation Structur e en Langage C 1 ann e Rupture continue int i j 0 char c 0 for i 0 c n i 4 scanf c amp c if e e Nr e n continue j d mo 11 Le programme compte le nombre de caract res non blancs entr s au clavier et le nombre total de caract res jusqu un Retour chariot i contient le nombre total de caract res qui ont t tap s au clavier j contient le nombre de caract res non blancs ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 e ann e Rupture break int i j 0 char c 0 for i 0 i scanf c amp c if c n break if c fs c t continue j La boucle se termine lorsque l utilisateur tape un retour chariot 36 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Fonctions r les et int r ts m Objectifs D couper un programme en petites entit s Ind pendantes R utilisables Plus lisibles O Les fonctions peuvent tre d finies Dans le fichier principal lt Dans d autres fichiers source compilation s par e Tr 54 B Syntaxe d une fonction type de retour nom _fonction arguments declarations des variables locale
15. 0x2fc0b8 Remarque La taille d un pointeur c est dire la quantit de m moire r serv e au stockage d une adresse est de 4 octets quel que soit le type sur lequel il pointe sizeof char x sizeof doublex sizeof char 1 sizeof double ECM Math matique et Informatique S Derrode 43 Programmation Structur e en Langage C 1 ann e Sch ma global Autre exemple int x 1 y 2 int x px pi pointe sur un int px amp x pi pointe sur x y px y re oit la valeur 1 x px 0 x vaut 0 Remarques amp x xp est identique p pour p un pointeur Op rateurs sur les pointeurs p NULL identique l initialisation O0 d une variable enti re ou flottante 44 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e include lt stdio h gt void main int i 0 int p float x 3 14 float f p amp i xf 666 f amp x f xp xp 34 p f xp p l printf ni d xf f i f Supprimer les lignes invalides Que s affiche t il ECM Math matique et Informatique S Derrode 45 Programmation Structur e en Langage C 1 ann e Pointeurs et Tableaux Tableau 1D Vecteur int vect 5 2 3 4 5 6 vect 0 vect 1 veci 2 vect 3 vect 4 Ox2fcb03 Ox2fcbh05 Ox2fcb07 Ox2fcb09 0x2fcb0b y
16. 5 int strlenil charx s int n for n 0 xs 0 n s return n int strlen2 charx s charx p s while p 0 p return p s Conv h xa gt d c int main int taillel taille2 char chaine La pie chante taillel strleni chaine taille2 strlen2 chaine printf ntaillel d _taille2 d taillel taille2 return 0 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Concat nation de deux tableaux include lt stdio h gt include lt stdlib h gt const int TAILLE 3 int ConcatVect intx Vectl int Vect2 int NewVect NewVect intx malloc 2xTAILLEx sizeof int for int k 0 k lt TAILLE k NewVect k Vectl k NewVect k TAILLE Vect2 k return NewVect int main int tabl TAILLE 1 2 3 int tab2 TAILLE 4 5 6 inte tab1l2 tab12 ConcatVect tabl tab2 free tab12 lib ration m moire return 0 ECM Math matique et Informatique S Derrode 53 Programmation Structur e en Langage C 1 ann e Compilation s par e Bm Compilation d un programme dans un seul fichier gcc main c o prg fichiers main o et prg Equivalent Compilation gcc c main c fichier main o 2 Ed de liens gcc main o o prg xecutable prg Bm Compilation d un programme dans plusieurs fichier
17. CII a z caract res minuscule 8 code ASCII 20 9 caract res chiffres B code ASCII Caract res sp ciaux HE apostrophe B code ASCII H antislash code ASCII JAT tabulation code ASCII 102 110 saut de ligne B code ASCII terminaison de cha ne B code ASCII 65 90 97 122 48 57 39 92 10 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Types flottants m 3 types flottants amp float 125 46 4 octets de 10 8 10 double long double 1 55e 6 8 octets de 10 10 Qualificatifs signed ou unsigned interdits D claration initialisation de variables D claration Initialisation Les deux ensemble float v v 5 8975 float w 4 25 z 5E 5 double x x 5 23e 12 double y 168FE2 B Variable valeur constante const double PI 3 14 ECM Math matique et Informatique S Derrode 10 Programmation Structur e en Langage C 1 ann e Lire Ecrire Input Output Librairie standard include lt stdio h gt printf Le programme affiche des r sultats sur la console int i 5 printf La valeur de i est d i char c A Ad c c printf Caractere c code ASCII char ch 9 hello printf message scanf 48 ch float reel scanf f amp reel fl
18. Langage C 1 ann e Inst r p titive do while do instruction while expression de fin LE d mo 9 Instruction int s 10 i 0 n 5634 do C Condition gt ARS Vrai Faux n 10 while n gt 0 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Inst r p titive for for expl exp2 exp3 instruction initialisation i Exp 1 Rebouclage i Exp 3 a not Tea iC Exp2 l l Instruction al Faux y 7 D 1 i e dl ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e double tab 4 3 2 5 1 9 1 8 int i for i 0 i lt 3 i printf nValeur 1f tablil int nb printf Entrez un nombre scanf d amp nb for int i nb i gt 0 i printf Iter numero d i d mo 10 char ch1 Coucou char ch2 50 int i i 0 i ch2 i chifil printf Copie s for i lt strlen chl ch2 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e 33 Hinciude lt SFd0 n7 int main void int count for count 1 count lt 500 count printf CL will not Throw paper airplanes in class return O ECM Math
19. Programmation Structur e en Langage C 1 ann e aLL cole Centrale C de Marseille cenrais marseiie Programmation Structur e en Langage C 1 ann e St phane DERRODE Bureau 206 Institut Fresnel stephane derrode ec marseille fr P le Math matique et Informatique Sommaire Introduction Tr 3 Types et variables Tr 5 Lire et crire Tr 11 Op rateurs et expressions Tr 16 Types d riv s tableaux Tr 21 Instructions de contr le Tr 25 Fonctions Tr 37 Pointeurs et adresses Tr 43 Compilation s par e et Makefile Tr 54 Pr processeur Tr 61 Structures unions et num rations Tr 66 Manipulation des fichiers Tr 79 Autres petites choses Tr 96 ECM Math matique et Informatique S Derrode 2 Programmation Structur e en Langage C 1 ann e Le langage C B W Kernighan et D M Ritchie Le Langage C ANSI 1977 Langage lt universel gt disponible sur toutes les plate formes Unix Linux Windows Langage de lt 2 g n ration gt comme Pascal Delphi Langage structur modulaire et imp ratif Types de variables Nombres entiers nombres r els caract res Structures de contr le Si alors boucles s quences Construction de types Tableaux structures enregistrements Sous programmes Fonctions Langage compil 4 interpr t Successeur langage orient objet C OG de 2 A ECM
20. Structur e en Langage C 1 ann e Sans pointeur de fonction include stdio h double fct_1 double x return 3 0xx double fct_2 double x return x 3 0 int main int f printf nFonction l ou 22 2 scanf d amp f if f 1 printf n fct lf Y lf 9 0 fct_1 9 0 else printf n fct lf W lf 9 0 fct_2 9 0 if f 1 printf n fct lf W 1f 12 0 fct_1 12 0 else printf n fct lf W l1f 12 0 fct_2 12 0 return 0 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e 101 B Avec pointeur de fonction d mo 26 include stdio h double fct_1 double x return 3 0xx double fct_2 double x return x 3 0 int main int fs printf nQuelle fonction 1 ou 2 2 scanf d amp f double pfct double z if f 1i pict fet L else pf t fet 2 printf n fct lf _WIf 9 0 pfct 9 0 printf n fct lf W If 12 0 pfct 12 0 return 0 ECM Math matique et Informatique S Derrode 102 Programmation Structur e en Langage C 1 ann e Les num rations B Sert d finir des variables enti res qui ne peuvent prendre que certaines valeurs pr cises gt Exemple enum color noir bleu vert cyan rouge magenta blanc typedef enum color couleur couleur cl magenta printf
21. aine decaracteres scanf s tt printf nLa chaine entree est s n tt return Q0 14 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Hinclude lt stdio h gt int main int i 10 float 1 3 14159 char p 50 Bonjour printf Avant lecture au clavier_ d f s n i l p scanf d f s amp i amp l p printf Apres lecture au clavier d f s n i 1l p return Q ECM Math matique et Informatique S Derrode 15 Programmation Structur e en Langage C 1 ann e Op rateurs arithm tiques Par ordre de priorit croissante amp unaire inverse confirme le signe Ex a 5 6 2 addition et soustraction Ex 6 5 a 5 6 gt x multiplication et division Ex 6 5 a 5 6 S h reste de la division enti re Ex 742 donne 1 7 3 2 1 d mo 4 include lt stdio h gt int main int i 10 j 3 int k i j printf nk d calcul Xd n k return 0 Gixi j ECM Math matique et Informatique S Derrode 16 Programmation Structur e en Langage C 1 ann e Librairie math matique include lt math h gt cos sin tan d mo 5 include lt stdio h gt include lt math h gt int main double a printf nEntrez un angle scanf 1f amp a printf Le cos de l angle vaut_
22. alse O gt de deux valeurs logiques Ex true false true Exemple de combinaison d op rateurs K gt 5 amp amp L lt 10 ECM Math matique et Informatique S Derrode 19 Programmation Structur e en Langage Priorit des c 17e ann e op rateurs ordre d croissant Classe d op rateur Op rateur s Associativit Parenth sage O de gauche droite Suffixes gt de gauche droite Unaires amp sizeof de droite gauche Changement de type type de droite gauche Multiplicatifs de gauche droite Additifs de gauche droite D calage lt lt gt gt de gauche droite Comparaisons lt lt gt gt de gauche droite galit s se de gauche droite ET bit bit amp de gauche droite OU exclusif bit bit de gauche droite OU bit bit de gauche droite ET logique amp amp de gauche droite OU logique Il de gauche droite Condition Fy de droite gauche Affectations amp l a lt lt gt gt de gauche droite Succession de gauche droite ECM Math matique et Informatique S Derrode 20 Programmation Structur e en Langage C 1 ann e Types d riv s 1 tableaux D claration int tab 5 Initialisation double tf 10 3 5 4 8 2 1 2 float tab 2 3 1 2 1 5 8
23. angage C 1 ann e Les diff rents types de variables En informatique on fait la distinction entre les variables contenant des entiers des nombres r els des tableaux vecteurs de nombres B On peut distinguer 5 types de variables Types entiers nombres entiers et caract res Tr 8 Types flottants nombre r els Tr 10 Types d riv s tableaux cha nes de caract res Tr 21 Types pointeurs adresse m moire Tr 43 lt Types complexes structures unions et num rations Tr 66 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Types entiers m 3 types entiers char a 1 octet de 128 127 Tr 9 amp short int 10814 2 octets de 32768 32767 amp int long int 158141234 4 octets de Qualificatifs signed d faut ou unsigned D claration initialisation de variables D claration Initialisation Les deux int i i 5 unsigned int k 5 j 2 unsigned char c c s c 115 char v 168 B Constantes const unsigned char c S const int dix 10 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Type char Entre c tes a z B Table des codes ASCII annexe du poly de langage C Valeur de type entier A Z caract res majuscule code AS
24. c var locale f1 calewl retour printf nResultat _ d res printf nResultat _ d res printf nResultat d res Les arguments transmis sont recopi s dans les variables locales de la fonction ECM Math matique et Informatique S Derrode 40 Programmation Structur e en Langage C 1 ann e Fonctions r cursives La fonction s appelle elle m me Exemple 4 4 x 31 d mo 16 include lt stdio h gt D claration de la fonction int fact int ay if n lt 1 return 1 else return nxfact n 1 int main Appel de la fonction printf nFactoriel 4 d fact 4 return 0 Attention au test de fin de r cursivit ECM Math matique et Informatique S Derrode 41 Programmation Structur e en Langage C 1 e ann e Pointeurs et adresses Type pointeur Tr 43 Pointeurs et tableaux Tr 46 Allocation dynamique de m moire Tr 48 Passage d arg par adresse dans les fonctions Tr 51 ECM Math matique et Informatique S Derrode 42 Programmation Structur e en Langage C 1 ann e Type pointeur Variables float x 12 98587E 5 char c F Octet _ Octet xmzossezes lej 0x2ab091 0x2ab097 Pointeurs D claration float px et char pc Initialisation px amp x et pc amp c Octet Octet px 0x2ab091 pc 0x2ab097 Ox2fcOb3
25. contenu de la valeur point e p x coord1 x Remarque Plut t que p x on pr f rera crire p gt x Exemple printf 4f f 4f p x p gt x coordi x affiche 3 fois la m me valeur ECM Math matique et Informatique S Derrode 70 Programmation Structur e en Langage C 1 ann e Structures et fonctions d mo 19 include lt stdio h gt str ct Point2D double x double y 3 struct Point2D InitPoint double vall double val2 struct Point2D temp temp x vall temp y val2 return temp int main struct Point2D point double a b printf Entrez deux _valeurs scsnf RIL amp a amp b point InitPoint s b printf lf ayl point x point y return 0 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 e ann e d mo 20 include lt stdio h gt struct Point2D double x double y 3 int ComparePoint struct Point2D ptl struct Point2D pt2 return pti z pt2 x amp amp ptl y pt2 y j int main struct Point2D pointi 2 0 9 5 struct Point2D point2 1 0 2 0 int ok ComparePoint pointl point2 if ok 1 printf Les deux points sont_identiques else printf Les deux points sont differents return 0 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e
26. donn es texte Dans un fichier de donn es texte les donn es sont structur es sous forme de tableau o les champs sont en g n ral s par s par des tabulations champ 3 champ 1 champ 2 nm Lingonr Re info12 t ECM Math matique et Informatique S Derrode 86 Programmation Structur e en Langage C 1 ann e Parcours lecture d un fichier texte Fonction fscanf Chaque appel cette fonction permet de poursuivre la lecture c est dire de lire l l ment qui suit l l ment pr c demment lu gt chaque nouvel appel fscanf la t te de lecture est d plac e sur l l ment suivant fscanf retourne le nombre d l ments lus Exemple FILE 9 fopen data txt r char mot 50 fscanf f s mot printf voici le mot s mot ECM Math matique et Informatique S Derrode 87 Programmation Structur e en Langage C 1 ann e B Test de fin de fichier Fonction feof A chaque lecture la t te de lecture se d place La fonction feof indique si la fin de fichier est atteinte valeur 1 Exemple char p while feof f 0 fscanf f c amp p printf c p ECM Math matique et Informatique S Derrode 88 Programmation Structur e en Langage C 1 ann e Exemple r capitulatif Hinclude lt stdio h gt int main FILE xf char p f fopen texte txt r
27. es espaces dont d pend fichier cible Ces fichiers sont n cessaires la cr ation de fichier cible B commande associ e Ligne de commande permettant la mise jour de fichier cible ECM Math matique et Informatique S Derrode 59 Programmation Structur e en Langage C 1 ann e Exemple de Makefile Cr ation de l ex cutable par_ dition de liens prg main o fichier o gcc 0o prg main o fichier o Cr ation de main o par compilation main o main c fichier h gcc c main c Cr ation de fichier o par compilation fichier o fichier fichier h gcc c fichier c ECM Math matique et Informatique S Derrode 60 Programmation Structur e en Langage C 1 ann e Pr processeur Le pr processeur intervient juste avant la phase de compilation Il prend en compte Les commentaires suppression Les commandes commen ant par 4 types de directives commen ant par Inclusion des fichiers d en t te include D finition de variables du pr processeur define et undef Les macro fonctions define La s lection de codes en fonction des variables du pr processeur if else elif et end ECM Math matique et Informatique S Derrode 61 Programmation Structur e en Langage C 1 ann e Variables du pr processeur Constante de pr compilation Sans constante de pr compilation Avec constante de pr compi
28. f Tapez o ou n return 0 ECM Math matique et Informatique S Derrode 27 Programmation Structur e en Langage C 1 e ann e Inst cond switch switch expression case valuel bloc inst 1 break case value2 bloc inst 2 break case valueN bloc inst N break default bloc inst d break ECM Math matique et Informatique S Derrode 28 Programmation Structur e en Langage C 1 ann e Inst cond switch char c E scanf c amp c d mo 8 switch c int i case a scanf d amp i printf Choix_ a SAMPLE break cas case 1 printf Choix_ A case 2 raid printf Choix 1 ou 2 j Ssr break priatf Choiza b j case 3 break case 4 casse TB printf Choix 3 ou 4 printf Choix_ B Break break default Jera printf Mauvais choix_ printf Mauvais choix_ break break ECM Math matique et Informatique S Derrode 29 Programmation Structur e en Langage C 1 ann e ld 2 n Inst r p titive while while expression de fin instruction int nb printf nEntrez _un nombre scanf d amp nb Instruction C Condition un 0 while i lt nb Vrai Faux printf Iteration d i 1 i ECM Math matique et Informatique S Derrode 30 Programmation Structur e en
29. int plus int a int b extern int mult int a int b fichier c int plus int a int b int c a b main c Hinclude fichier h iat manO i return c int a 5 b 8 int resulti plus a b int mult int a int b int result2 mult a b int c b return 0 return c d mo 17 modifier ECM Math matique et Informatique S Derrode 57 Programmation Structur e en Langage C 1 e ann e Makefile pour simplifier la compilation Principe du Makefile Au lieu de taper toutes les commandes de compilation et d dition de liens on peut les regrouper dans un fichier g n ralement appel Makefile ou makefile Les Makefile doivent respecter une syntaxe tr s particuli re On lance la compilation gr ce l utilitaire make qu il suffit d ex cuter avec make ou make f Makefile La compilation par make est intelligente au sens o n est recompil que ce qui a t modifi ECM Math matique et Informatique S Derrode 58 Programmation Structur e en Langage C 1 ann e R gle d criture d un Makefile Le principe pour lt r diger gt un Makefile est de d crire les d pendances entre les fichiers selon le principe suivant fichier cible liste fichiers requis lt tabulation gt commande _ associee B fichier cible Nom du fichier qui doit tre mis jour B liste fichiers requis Liste des fichiers s par s par d
30. lation define LG 20 int tab 20 int tab LG for i 0 i lt 20 i for i 0 i lt LG i B Si on souhaite changer la taille du tableau il suffit de changer la variable lisibilit gain de temps B Pour supprimer une variable undef ECM Math matique et Informatique S Derrode 62 Programmation Structur e en Langage C 1 ann e Macro expression ou macro fonction B Directive Hdefine Bm Exemple Hdefine add x1 x2 x1 x2 B add a b est remplac par a b B Attention au parenth sage Il faut toujours encadrer les pseudo variables par des parenth ses ECM Math matique et Informatique S Derrode 63 Programmation Structur e en Langage C 1 ann e Evaluation de macro expressions d mo 18 Avant pr compilation Apr s pr compilation Bon Faux define m x 128 x 342 x x define y x 128 x x 342 x x x int a b d e f g int a b d e f g a b 1 a b 1 d ma d 128 xa 342 ax a bon e y a e 128 x a 342 x a a bon f m a b d 128 xa b 342 a b xa b faux g y atb d 128 a b 342 x a b bon a b ECM Math matique et Informatique S Derrode 64 Programmation Structur e en Langage C 1 ann e Protection contre l inclusion multiple Progl c Prog2 c test h Hinclude test h Ainclude test h 71 Test h Hifndef TESTH
31. lf n cos a printf Son logarithme vaut lf n log10 a return 0 Attention Conversion implicite et explicite lt cast gt float f 2 4 D f 0 float f 2 0 4 D f int i 2 0 4 Di 0 float j float 3 2 D j 1 5 ECM Math matique et Informatique S Derrode 17 Programmation Structur e en Langage C 1 ann e Incr mentation et d cr mentation Incr mentation i ou i signifie i i 1 2 i n signifei i n M me chose avec i i et i n Pr incr mentation int i 5 int a i donne i 6 et a 6 int i 5 int a i donne i 4 et a 4 Post incr mentation int i 5 int a i donne i 6 et a 5 Il H l l amp int i 5 int a donne i 4 et a 5 ECM Math matique et Informatique S Derrode 18 Programmation Structur e en Langage c 1e ann e Op rateurs relationnels et logiques Op rateurs relationnels true ou false l gt lt gt lt identit diff rent Ex A 5 sup rieur inf rieur Exemples int A 10 B 5 A BB O false 2 A gt BB 1 true Attention Les deux op randes doivent avoir le m me type arithm tique sinon une conversion de types est effectu e m Op rateurs logiques n gation unaire d une valeur logique Ex true false amp amp lt ET gt de deux valeurs logiques Ex true amp amp false f
32. oat rl r2 r3 printf Entrez trois nombres r els scanf Y f hf f amp ri amp r2 amp r3 Exemples cf poly Langage C Chapitre 3 d mo 2 L utilisateur donne des informations au programme sn ECM Math matique et Informatique S Derrode ECM Math matique et Informatique S Derrode 11 Programmation Structur e en Langage C 1 ann e D claration Lecture criture Format externe int i scanf d amp i printf d i d cimal int i scanf o amp i printf 0 i octal int i scanf x amp i printf x i hexad cimal float m scanf f amp m printf f m point d cimal double m scanf 1f amp m printf 1f m point d cimal double m scanf le amp m printf le m exponentielle double m scanf lg amp m printf lg m la courte char o scanf c amp o printf c o caract re char p 10 scanf s p printf s p cha ne de caract res 12 Programmation Structur e en Langage C 1 ann e Exemples de printf et scanf Hinclude lt stdio h gt int main int 5 int b a a 8 printf a d b d a b return Q0 ECM Math matique et Informatique S Derrode 13 Programmation Structur e en Langage C 1 e ann e d mo 3 include lt stdio h gt int main char tt 80 Tableau de 80 caract res printf Donnez_ une ch
33. oint2D struct Point2D coord amp struct Point2D TabCoord 3 On peut d clarer et initialiser les champs d une structure struct Point2D coord 2 8 9 8 struct Point2D TabCoord 3 2 8 0 8 4 2 9 8 1 0 1 0 Pour acc der un champ de la structure printf f coord x coord x 5 0 double root coord x coord x coord y xcoord y D D printf f TabCoord 1 y ECM Math matique et Informatique S Derrode 68 Programmation Structur e en Langage C 1 ann e m L affectation entre deux structures de m me type est permise struct Point2D coordi 3 0 8 5 coord2 coord2 coordi B Par contre il n est pas possible de tester l galit la sup riorit de deux structures Il faut comparer individuellement chaque champs if coordi x coord2 x amp amp coordi y coord2 y Structure incorporant des structures Exemple struct Rect struct Point2D pt1 struct Point2D pt2 J D claration et init struct Rect carre 1 0 2 0 3 0 4 0 Affectation carre pt1 x 3 2 carre pti y 5 8 ECM Math matique et Informatique S Derrode 69 Programmation Structur e en Langage C 1 e ann e Structures et pointeurs D claration d un pointeur sur une structure struct Point2D p B Initialisation d un pointeur sur une structure struct Point2D coordi p amp coordi B Comment acc der au
34. rs Le syst me de r pertoires est un outil de classement organis sous forme arborescente Il existe un r pertoire racine root partir duquel s organise l arborescence Chaque r pertoire l exception du r pertoire racine poss de un r pertoire p re Un r pertoire peut contenir la fois des fichiers et d autres r pertoires qui sont ses r pertoires fils L organisation sous forme de r pertoires permet de positionner les diff rents fichiers du disque La position d un fichier au sein de l arborescence est donn e par un chemin path qui part de la racine jusqu au r pertoire contenant le fichier ECM Math matique et Informatique S Derrode 79 Programmation Structur e en Langage C 1 ann e Un fichier est dot d un nom d une position son chemin dans le syst me de r pertoires d un certain nombre de droits son ou ses propri taires d une taille correspondant un certain nombre d emplacements r serv s sur l espace de stockage t d une date de cr ation de modification gt Descripteur de fichiers Un descripteur de fichiers sert d signer une connexion avec un fichier ou un p riph rique d E S comme l cran l imprimante le clavier Un fichier est repr sent par une structure pr d finie FILE en majuscule FILE f Le pointeur f d signe le flux canal de communication tabli avec le fichier
35. s instructions ECM Math matique et Informatique S Derrode 37 Programmation Structur e en Langage C 1 ann e Fonction sans argument En t te de la fonction void Affiche D claration de la fonction 0 void Affiche fonction rincipale printf Message 2 p int main 1ppel de la fct Affiche fonction principale return 0 int main Appel de la fct Affiche D claration de la fonction return 0 void Affiche printf Message ECM Math matique et Informatique S Derrode 38 Programmation Structur e en Langage C 1 ann e Fonction valeur de retour Hinclude lt stdio h gt Hinclude lt math h gt D claration de la fonction double Sinus double angle scanf If amp angle return sin angle int main double res Appel de la fonction res Sinus printf nResultat Ilf res return 0 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e 39 Fonction passage d argument par valeur d mo 13 include lt stdio h gt D claration de la foncti int Add int vall int val2 int result result vall val2 return result int main int res 65 b 8 Appels de la fonction res Add a b res Add 8 15 res Add 8x2 5 6 a return 0 on de
36. s Les fonctions sont r parties dans plusieurs fichiers Les fonctions non d clar es dans le fichier principal celui contenant la fonction int main sont appel es fonctions externes ECM Math matique et Informatique S Derrode 54 Programmation Structur e en Langage C 1 ann e main c Precompilation Compilation Edition de liens fichier c fichier i fichier o 1 Compilation gcc c main c fichier main o 2 Compilation gcc c fichier c fichier fichier o 3 Ed de liens gcc main o fichier o o prg xecutable prg ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e main c Prototype des fonctions extern int plus int a int b extern int mult int a int b Programme principal int main int a 5 b 8 int resulti plus a b int result2 mult a bj return 0 7I tchier int plus int a int c c b return c int mult int a int c a t D return c int b int b On d localise les en t tes des fonctions dans un fichier header file gt que lon appelle g n ralement fichier h extension h Dans ce fichier on y ajoute la d finition des constantes des structures les macro fonctions ECM Math matique et Informatique S Derrode 56 Programmation Structur e en Langage C 1 ann e fichier h extern
37. ur e en Langage C 1 ann e Exemple 2 un tableau de structures d mo 22 int cpt printf Dimension du tableau scanf d amp cpt struct Point2Dx pTabPt pTabPt struct Point2D x malloc cpt sizeof struct Point2D free pTabPt pTabPt NULL Ostel pTabPt C EE ES 76 ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Structures auto r f rentielles Listes Liste Ensemble d objets chain s et de m me type Les objets sont appel s maillons t t ill Le D i a o symb a 8 struct maillonx suiv typedef struct maillon M d mo 23 Queue ou file d attente Liste FIFO lt First In First Out gt Ex File d attente un guichet Pile Liste LIFO lt Last In First Out gt Listes circulaires Listes sym triques ECM Math matique et Informatique S Derrode TT Programmation Structur e en Langage C 1 ann e gt Op rations classiques sur les listes Ajouter un objet allocation m moire Supprimer un objet lib ration m moire Tester si la liste est vide NULL Supprimer toute la liste lib ration m moire Parcourir la liste pour retrouver ou afficher un objet Trier une liste t D D D 002 ECM Math matique et Informatique S Derrode 78 Programmation Structur e en Langage C 1 ann e Les fichiers B Rangement des fichie
38. ur e en Langage C 1 ann e d mo 12 Hinclude lt stdio h gt Hinclude lt stdlib h gt int main int taille i printf Entrez la taille du vecteur_ scanf d amp taille double x xtab tab double x malloc taille x sizeof double for i 0 i lt taille i tab i 8 0 i free tab return 0 ECM Math matique et Informatique S Derrode 49 Programmation Structur e en Langage C 1 ann e Allocation dynamique de m moire Exo Tableau 2D Matrice crire un programme qui alloue dynamiquement la m moire d un tableau deux dimensions selon le sch ma suivant exemple 4 lignes 2 colonnes A Een De EN EN jh MANN SES d mo 12bis ECM Math matique et Informatique S Derrode 50 Programmation Structur e en Langage C 1 ann e Passage d arguments par adresse dans les fonctions d mo 14 include lt stdio h gt void Swap intx ptl int pt2 int Aux xptil pti HPL2 pt2 aux int main int 5 b 8 printf na d _b Ad a b Swap amp a amp b printf na d _b d a B return 0 Les arguments transmis sont les adresses des variables Les valeurs des variables de la fonction appellante sont modifi es ECM Math matique et Informatique S Derrode Programmation Structur e en Langage C 1 ann e Calcul de la longueur d une cha ne d mo 1
39. y vect vect 1 vect 2 vect 3 vect 4 amp vect 0 vect Adresse du ler l ment de vect amp vect i vect i Adresse du i me l ment de vect vect i x vect i Valeur du i me l ment de vect m C est la fin du myst re scanf s chaine ECM Math matique et Informatique S Derrode 46 Programmation Structur e en Langage C 1 ann e B vous de deviner float xp q float tab 5 1 2 3 4 5 p amp tab 2 p tab 2 xp 0 0 q p Post incr mentation x q 2 10 Supprimer les lignes invalides tat du vecteur ECM Math matique et Informatique S Derrode 47 Programmation Structur e en Langage C 1 ann e Allocation dynamique de m moire mn Types d allocation B Allocation statique Pour cr er et supprimer des lt objets gt lors de la compilation Utilise la pile limit e en taille La taille de la m moire allouer doit tre connue la compilation Allocation dynamique Pour cr er et supprimer des lt objets gt lors de l execution Utilise le tas limit e par la m moire de votre PC La taille de la m moire allouer peut tre connue lors de l xecution B Allocation dynamique librairie include lt stdlib h gt malloc alloue de la m moire free lib re de la m moire ECM Math matique et Informatique S Derrode 48 Programmation Struct

Download Pdf Manuals

image

Related Search

Related Contents

Yamaha R1  VER. I° • 2011 - Motorisation Plus  Je jardine avec l`environnement n°21  Philips Xenium W7555 Black, Red  & VOUS - Agrica  要保管  Edimax ES-5240GE network switch  National Instruments PXIe-1062Q User's Manual  

Copyright © All rights reserved.
Failed to retrieve file