Cours langage-c

229
INTRODUCTION 1 SYMBOLES 2 C, la naissance d'un langage de programmation portable 2.1 Historique 2.2 Avantages 2.3 Désavantages 2.3.1 efficience et compréhensibilité : 2.3.2 portabilité et bibliothèques de fonctions 2.3.3 discipline de programmation 1. SYMBOLES Explication des symboles utilisés dans le texte: Conseil ! Mauvaise solution !

description

Cours langage-c

Transcript of Cours langage-c

  • 1. INTRODUCTIONq 1 SYMBOLESq 2 C, la naissance dun langage de programmationportabler2.1 Historiquer2.2 Avantagesr2.3 Dsavantages s2.3.1 efficience et comprhensibilit : s2.3.2 portabilit et bibliothques de fonctions s2.3.3 discipline de programmation1. SYMBOLESExplication des symboles utiliss dans le texte:Conseil !Mauvaise solution !

2. Bonne solution !Attention !Pige dangereux !Attention ! Pige frquent ! ou Remarque importante !Solution incorrecte ! Peut mener des erreurs.Solution correcte !Fonction ou opration non portable selon le standard ANSI-C.2. C, la naissance dun langage de programmation portable 3. 2.1 HistoriqueDans les dernires annes, aucun langage de programmationna pu se vanter dune croissance en popularit comparable celle de C et de son jeune frre C++. Ltonnant dans ce faitest que le langage C nest pas un nouveau-n dans le mondeinformatique, mais quil trouve ses sources en 1972 dans lesBell Laboratories: Pour dvelopper une version portable dusystme dexploitation UNIX, Dennis M. Ritchie a conu celangage de programmation structur, mais trs prs de lamachine.K&R-CEn 1978, le duo Brian W. Kernighan / Dennis M. Ritchie apubli la dfinition classique du langage C (connue sous lenom de standard K&R-C ) dans un livre intitul The CProgramming Language.ANSI-CLe succs des annes qui suivaient et le dveloppement decompilateurs C par dautres maisons ont rendu ncessaire ladfinition dun standard actualis et plus prcis. En 1983, leAmerican National Standards Institute (ANSI) chargeait unecommission de mettre au point une dfinition explicite etindpendante de la machine pour le langage C, qui devraitquand mme conserver lesprit du langage. Le rsultat tait lestandard ANSI-C. La seconde dition du livre The CProgramming Language, parue en 1988, respecte tout faitle standard ANSI-C et elle est devenue par la suite, la bibledes programmeurs en C.2.2 Avantages 4. Le grand succs du langage C sexplique par les avantagessuivants; C est un langage:(1) universel :C nest pas orient vers un domaine dapplications spciales,comme par exemple FORTRAN (applications scientifiques ettechniques) ou COBOL (applications commerciales outraitant de grandes quantits de donnes).(2) compact :C est bas sur un noyau de fonctions et doprateurs limit,qui permet la formulation dexpressions simples, maisefficaces.(3) moderne :C est un langage structur, dclaratif et rcursif; il offre desstructures de contrle et de dclaration comparables cellesdes autres grands langages de ce temps (FORTRAN,ALGOL68, PASCAL).(4) prs de la machine :comme C a t dvelopp en premier lieu pour programmerle systme dexploitation UNIX, il offre des oprateurs quisont trs proches de ceux du langage machine et desfonctions qui permettent un accs simple et direct auxfonctions internes de lordinateur (p.ex: la gestion de lammoire).(5) rapide : 5. comme C permet dutiliser des expressions et des oprateursqui sont trs proches du langage machine, il est possible dedvelopper des programmes efficients et rapides.(6) indpendant de la machine :bien que C soit un langage prs de la machine, il peut treutilis sur nimporte quel systme en possession duncompilateur C. Au dbut C tait surtout le langage dessystmes travaillant sous UNIX, aujourdhui C est devenu lelangage de programmation standard dans le domaine desmicro-ordinateurs.(7) portable :en respectant le standard ANSI-C, il est possible dutiliser lemme programme sur tout autre systme (autre hardware,autre systme dexploitation), simplement en le recompilant.(8) extensible :C ne se compose pas seulement des fonctions standard; lelangage est anim par des bibliothques de fonctions privesou livres par de nombreuses maisons de dveloppement.2.3 Dsavantagesvidemment, rien nest parfait. Jetons un petit coup doeil surle revers de la mdaille: 2.3.1 efficience et comprhensibilit :En C, nous avons la possibilit dutiliser des expressionscompactes et efficientes. Dautre part, nos programmesdoivent rester comprhensibles pour nous-mmes et pour 6. dautres. Comme nous allons le constater sur les exemplessuivants, ces deux exigences peuvent se contredirerciproquement.Exemple 1Les deux lignes suivantes impriment les N premiers lmentsdun tableau A[ ], en insrant un espace entre les lments eten commenant une nouvelle ligne aprs chaque diximelment:for (i=0; i #include Aprs la compilation, les fonctions precompiles des bibliothquesseront ajoutes notre programme pour former une versionexcutable du programme (voir schma).Remarque: La bibliothque de fonctions graphics.h est spcifiqueaux fonctionnalits du PC et nest pas incluse dans le standardANSI-C.Schma: Bibliothques de fonctions et compilation 15. Chapitre 2: NOTIONS DE BASEavant de pouvoir comprendre ou mme crire des programmes, il faut connatre lacomposition des programmes dans le langage de programmation. Dans ce chapitre,nous allons discuter un petit programme en mettant en vidence les structuresfondamentales dun programme en C.q 2.1. Hello C !q 2.2. Les composantes dun programme en Cr2.2.1. Les fonctionsr2.2.2. La fonction mainr2.2.3. Les variablesr2.2.4. Les identificateursr2.2.5. Les commentairesq 2.3. Discussion de lexemple Hello_World2.1. Hello C !Suivons la tradition et commenons la dcouverte de C par linvitable programmehello world. Ce programme ne fait rien dautre quimprimer les mots suivants surlcran:Comparons dabord la dfinition du programme en C avec celle en langagealgorithmique.HELLO_WORLD en langage algorithmiqueprogramme HELLO_WORLD(* Notre premier programme en C *)crire "hello, world"fprogrammeHELLO_WORLD en C 16. #include main(){ /* Notre premier programme en C */printf("hello, worldn");return 0;}Dans la suite du chapitre, nous allons discuter les dtails de cette implmentation.2.2. Les composantes dun programme en CLes programmes en C sont composs essentiellement de fonctions et de variables.Pour la pratique, il est donc indispensable de se familiariser avec lescaractristiques fondamentales de ces lments.2.2.1. Les fonctionsEn C, le programme principal et les sous-programmes sont dfinis commefonctions. Il nexiste pas de structures spciales pour le programme principal ni lesprocdures (comme en langage algorithmique).Le programme principal tant aussi une fonction, nous devons nous intresser dsle dbut la dfinition et aux caractristiques des fonctions en C. Commenons parcomparer la syntaxe de la dfinition dune fonction en C avec celle dune fonctionen langage algorithmique:Dfinition dune fonction en langage algorithmique fonction (, , ..........) :| | | ffonctionDfinition dune fonction en C 17. (,, ... ) { }En C, une fonction est dfinie par:une ligne dclarative qui contient : le type du rsultat de la fonction le nom de la fonction, , ...les types et les noms des paramtres de la fonctionun bloc dinstructions dlimit par des accolades { }, contenant: - les dclarations des donnes locales (c.--d.: des donnesqui sont uniquement connues lintrieur de la fonction) - la liste des instructions qui dfinit laction qui doit tre excuteRsultat dune fonctionPar dfinition, toute fonction en C fournit un rsultat dont le type doit tre dfini. Siaucun type nest dfini explicitement, C suppose par dfaut que le type du rsultatest int (integer).Le retour du rsultat se fait en gnral la fin de la fonction par linstruction return.Le type dune fonction qui ne fournit pas de rsultat (comme les procdures enlangage algorithmique ), est dclar comme void (vide).Paramtres dune fonctionLa dfinition des paramtres (arguments) dune fonction est place entreparenthses ( ) derrire le nom de la fonction. Si une fonction na pas besoin deparamtres, les parenthses restent vides ou contiennent le mot void. La fonctionminimale qui ne fait rien et qui ne fournit aucun rsultat est alors: void dummy() {} 18. InstructionsEn C, toute instruction simple est termine par un point-virgule ; (mme si elle setrouve en dernire position dans un bloc dinstructions). Par exemple: printf("hello, world n");2.2.2. La fonction mainLa fonction main est la fonction principale des programmes en C. Elle se trouveobligatoirement dans tous les programmes. Lexcution dun programme entraneautomatiquement lappel de la fonction main.Dans les premiers chapitres, nous allons simplement traduire la structureprogramme du langage algorithmique par une dfinition quivalente de la fonctionmain :Dfinition du programme principal en langage algorithmique programme fprogrammeDfinition de la fonction main enC main() { return 0; }Rsultat de mainEn principe tout programme devrait retourner une valeur comme code derreur son environnement. Par consquent, le type rsultat demain est toujours int. Engnral, le type de main nest pas dclar explicitement, puisque cest le type pardfaut. Nous allons terminer nos programmes par linstruction: 19. return 0;qui indique lenvironnement que le programme sest termin avec succs, sansanomalies ou erreurs fatales.Paramtres de main- Si la liste des paramtres de la fonction main est vide, il est dusage de la dclarerpar ().- Si nous utilisons des fonctions prdfinies (par exemple: printf), il faut faireprcder la dfinition de main par les instructions #include correspondantes.Remarque avance:Il est possible de faire passer des arguments de la ligne de commande unprogramme. Dans ce cas, la liste des paramtres doit contenir les dclarationscorrespondantes. Dans notre cours, nous nallons pas utiliser des arguments de laligne de commande. Ainsi la liste des paramtres de la fonction main sera vide(void) dans tous nos exemples et nous pourrons employer la dclaration suivantequi fait usage des valeurs par dfaut: main() { ... }2.2.3. Les variablesLes variables contiennent les valeurs qui sont utilises pendant lexcution duprogramme. Les noms des variables sont des identificateurs quelconques (voir2.2.4 ). Les diffrents types de variables simples et les oprateurs admissibles sontdiscuts au chapitre 3.2.2.4. Les identificateursLes noms des fonctions et des variables en C sont composs dune suite de lettreset de chiffres. Le premier caractre doit tre une lettre. Le symbole _ est aussiconsidr comme une lettre.* Lensemble des symboles utilisables est donc: 20. {0,1,2,...,9,A,B,...,Z,_,a,b,...,z}* Le premier caractre doit tre une lettre (ou le symbole _) - voir aussi Remarque -.* C distingue les majuscules et les minuscules, ainsi:Nom_de_variable est diffrent denom_de_variable* La longueur des identificateurs nest pas limite, mais C distingue seulement les31 premiers caractres. - voir aussi Remarque -Remarque:Il est dconseill dutiliser le symbole _ comme premier caractere pour unidentificateur, car il est souvent employ pour dfinir les variables globales delenvironment C.ExemplesIdentificateurs corrects: Identificateurs incorrects:nom11nomnom_2 nom.2_nom_3-nom-3Nom_de_variable Nom de variabledeuxieme_choixdeuxime_choixmot_francaismot_franais2.2.5. Les commentairesUn commentaire commence toujours par les deux symboles /* et se termine par lessymboles */. Il est interdit dutiliser des commentaires imbriqus. 21. Exemples /* Ceci est un commentaire correct */ /* Ceci est /* videmment */ dfendu */2.3. Discussion de lexemple Hello_WorldReprenons le programme Hello_World et retrouvons les particularits dunprogramme en C.HELLO_WORLD en C #include main()/* Notre premier programme en C */{ printf("hello, worldn"); return 0; }Discussion- La fonction main ne reoit pas de donnes, donc la liste des paramtres est vide.- La fonction main fournit un code derreur numrique lenvironnement, donc letype du rsultat est int et na pas besoin dtre dclar explicitement.- Le programme ne contient pas de variables, donc le bloc de dclarations est vide.- La fonction main contient deux instructions:* lappel de la fonction printf avec largument "hello, worldn";Effet: Afficher la chane de caractres "hello worldn".* la commande return avec largument 0;Effet: Retourner la valeur 0 comme code derreur lenvironnement.- Largument de la fonction printf est une chane de caractres indique entre lesguillements. Une telle suite de caractres est appele chane de caractresconstante (string constant). 22. - La suite de symboles n la fin de la chane de caractres "hello, worldn" est lanotation C pour passage la ligne (angl: new line). En C, il existe plusieurscouples de symboles qui contrlent laffichage ou limpression de texte. Cessquences dchappement sont toujours prcdes par le caractre dchappement.printf et la bibliothque La fonction printf fait partie de la bibliothque de fonctions standard quigre les entres et les sorties de donnes. La premire ligne du programme: #include instruit le compilateur dinclure le fichier en-tte STDIO.H dans le texte duprogramme. Le fichier STDIO.H contient les informations ncessaires pour pouvoirutiliser les fonctions de la bibliothque standard (voir chapitre 1.3). 23. Chapitre 3: TYPES DE BASE, OPRATEURS ET EXPRESSIONSRcapitulation du vocabulaireLes variables et les constantes sont les donnes principales qui peuvent tremanipules par un programme. Les dclarations introduisent les variables qui sontutilises, fixent leur type et parfois aussi leur valeur de dpart. Les oprateurscontrlent les actions que subissent les valeurs des donnes. Pour produire denouvelles valeurs, les variables et les constantes peuvent tre combines laidedes oprateurs dans des expressions. Le type dune donne dtermine lensembledes valeurs admissibles, le nombre doctets rserver en mmoire et lensembledes oprateurs qui peuvent y tre appliqus.MotivationLa grande flexibilit de C nous permet dutiliser des oprandes de diffrents typesdans un mme calcul. Cet avantage peut se transformer dans un terrible pige sinous ne prvoyons pas correctement les effets secondaires dune telle opration(conversions de type automatiques, arrondissements, etc.). Une tude minutieusede ce chapitre peut donc aider viter des phnomnes parfois inexplicables ...q 3.1. Les types simplesr3.1.1. Les types entiersr3.1.2. Les types rationnelsq 3.2. La dclaration des variables simplesr3.2.1. Les constantes numriques s- Les constantes entires s- Les constantes rationnelles s- Les caractres constantsr3.2.2. Initialisation des variablesq 3.3. Les oprateurs standardr3.3.1. Les oprateurs connusr3.3.2. Les oprateurs particuliers de C s- Les oprateurs daffectation s- Oprateurs dincrmentation et de dcrmentationq 3.4. Les expressions et les instructionsq 3.5. Les priorits des oprateursq 3.6. Les fonctions arithmtiques standardq 3.7. Les conversions de typer3.7.1. Les conversions de type automatiques 24. r 3.7.2. Les conversions de type forces (casting)3.1. Les types simplesEnsembles de nombres et leur reprsentationEn mathmatiques, nous distinguons divers ensembles de nombres:* lensemble des entiers naturels IN,* lensemble des entiers relatifs ZZ,* lensemble des rationnels Q,* lensemble des rels IR.En mathmatiques lordre de grandeur des nombres est illimit et les rationnelspeuvent tre exprims sans perte de prcision.Un ordinateur ne peut traiter aisment que des nombres entiers dune taille limite.Il utilise le systme binaire pour calculer et sauvegarder ces nombres. Ce nest quepar des astuces de calcul et de reprsentation que lordinateur obtient des valeurscorrectement approches des entiers trs grands, des rels ou des rationnels partie dcimale infinie.Les charges du programmeurMme un programmeur utilisant C ne doit pas connatre tous les dtails desmthodes de codage et de calcul, il doit quand mme tre capable de:- choisir un type numrique appropri un problme donn;c.--d.: trouver un optimum de prcision, de temps de calcul et despace rserveren mmoire- choisir un type appropri pour la reprsentation sur lcran- prvoir le type rsultant dune opration entre diffrents types numriques;c.--d.: connatre les transformations automatiques de type que C accomplit lorsdes calculs (voir 3.7.1).- prvoir et optimiser la prcision des rsultats intermdiaires au cours dun calculcomplexe;c.--d.: changer si ncessaire lordre des oprations ou forcer lordinateur utiliserun type numrique mieux adapt (casting: voir 3.7.2).3.1.1. Les types entiers 25. Avant de pouvoir utiliser une variable, nous devons nous intresser deuxcaractristiques de son type numrique:(1) le domaine des valeurs admissibles(2) le nombre doctets qui est rserv pour une variableLe tableau suivant rsume les caractristiques des types numriques entiers de C : dfinitiondescriptionmin maxnombre doctetscharcaractre-128 127 1short entier court -32768 32767 2int entier standard-32768 32767 2longentier long-214748364821474836474- char : caractreUne variable du type char peut contenir une valeur entre -128 et 127 et elle peutsubir les mmes oprations que les variables du type short, int ou long.- int : entier standardSur chaque machine, le type int est le type de base pour les calculs avec lesentiers. Le codage des variables du type int est donc dpendant de la machine. Surles IBM-PC sous MS-DOS, une variable du type int est code dans deux octets.- short : entier courtLe type short est en gnral cod dans 2 octets. Comme une variable int occupeaussi 2 octets sur notre systme, le type short devient seulement ncessaire, si onveut utiliser le mme programme sur dautres machines, sur lesquelles le typestandard des entiers nest pas forcment 2 octets.- Les modificateurs signed/unsigned:Si on ajoute le prfixe unsigned la dfinition dun type de variables entires, lesdomaines des variables sont dplacs comme suit:nombredfinition descriptionmin maxdoctets 26. unsigned charcaractre 0255 1unsigned short entier court065535 2unsigned int entier standard 065535 2unsigned longentier long 042949672954Remarques1. Le calcul avec des entiers dfinis comme unsigned correspond larithmtiquemodulo 2n. Ainsi, en utilisant une variable X du type unsigned short, nousobtenons le rsultat suivant:Affectation : X = 65500 + 100Rsultat :X = 64 /* [+216] */2. Par dfaut, les types entiers short, int, long sont munis dun signe. Letype par dfaut de char est dpendant du compilateur et peut tre signed ouunsigned. Ainsi, lattribut signed a seulement un sens en liaison avec char et peutforcer la machine utiliser la reprsentation des caractres avec signe (qui nestcependant pas trs usuelle).3. Les valeurs limites des differents types sont indiques dans le fichier header.4. En principe, on peut dire que sizeof(short) =0) : "lire Njusqu (N >= 0)crire "La racine carre de ",N ,"vaut ", N fprogramme (* fin RACINE_CARRE *)se traduit en C par : 78. #include #include main() { float N; do { printf("Entrer un nombre (>= 0) : "); scanf("%f", &N) }while (N < 0);printf("La racine carre de %.2f est %.2fn", N, sqrt(N)); return 0; }6.3. forLa structure pour en langage algorithmique est utilise pour faciliter la programmation deboucles de comptage. La structure for en C est plus gnrale et beaucoup pluspuissante.La structure for en C 79. for ( ; ; ) est quivalent : ; while ( ) { ; }est value une fois avant le passage de la boucle.Elle est utilise pour initialiser les donnes de la boucle. est value avant chaque passage de la boucle.Elle est utilise pour dcider si la boucle est rpte ou non. est value la fin de chaque passage de la boucle.Elle est utilise pour rinitialiser les donnes de la boucle. 80. Le plus souvent, for est utilis comme boucle de comptage : for ( ; ; ) Exemple int I; for (I=0 ; I=1 ; I/=2){ printf("%i ", C/I); C%=I;} /* c */ /* notation utilisant for - plus compacte - */ /* prfre par les experts en C */ int C, I; C=getchar(); for (I=128 ; I>=1 ; C%=I, I/=2) printf("%i ", C/I); /* d */ /* notation utilisant for - dconseiller - */ /* surcharge et mauvais emploi de la structure */ int C, I; for(C=getchar(),I=128 ; I>=1 ;printf("%i ",C/I),C%=I,I/=2);6.4. Choix de la structure rptitive 83. Dans ce chapitre, nous avons vu trois faons diffrentes de programmer des boucles(while, do - while, for ). Utilisez la structure qui reflte le mieux lide du programme quevous voulez raliser, en respectant toutefois les directives suivantes :* Si le bloc dinstructions ne doit pas tre excut si la condition est fausse, alorsutilisez while ou for.* Si le bloc dinstructions doit tre excut au moins une fois, alors utilisez do - while.* Si le nombre dexcutions du bloc dinstructions dpend dune ou de plusieursvariables qui sont modifies la fin de chaque rptition, alors utilisez for.* Si le bloc dinstructions doit tre excut aussi longtemps quune condition extrieureest vraie (p.ex aussi longtemps quil y a des donnes dans le fichier dentre), alorsutilisez while.Le choix entre for et while nest souvent quune question de prfrence ou dhabitudes:* for nous permet de runir avantageusement les instructions qui influencent le nombrede rptitions au dbut de la structure.* while a lavantage de correspondre plus exactement aux structures dautres langagesde programmation (while, tant que).* for a le dsavantage de favoriser la programmation de structures surcharges et par lasuite illisibles.* while a le dsavantage de mener parfois de longues structures, dans lesquelles il faut 84. chercher pour trouver les instructions qui influencent la condition de rptition. 85. Chapitre 7: LES TABLEAUXLes tableaux sont certainement les variables structures les plus populaires.Ils sont disponibles dans tous les langages de programmation et servent rsoudre une multitude de problmes. Dans une premire approche, letraitement des tableaux en C ne diffre pas de celui des autres langages deprogrammation.q 7.1. Les tableaux une dimensionr7.1.1. Dclaration et mmorisationr7.1.2. Initialisation et rservation automatiquer7.1.3. Accs aux composantesr7.1.4. Affichage et affectationq 7.2. Les tableaux deux dimensionsr7.2.1. Dclaration et mmorisationr7.2.2. Initialisation et rservation automatiquer7.2.3. Accs aux composantesr7.2.4. Affichage et affectation7.1. Les tableaux une dimensionDfinitionsUn tableau (uni-dimensionnel) A est une variable structure forme dunnombre entier N de variables simples du mme type, qui sont appeles lescomposantes du tableau. Le nombre de composantes N est alors ladimension du tableau. 86. En faisant le rapprochement avec les mathmatiques, on dit encore que "A est un vecteur de dimension N"ExempleLa dclarationint JOURS[12]={31,28,31,30,31,30,31,31,30,31,30,31};dfinit un tableau du type int de dimension 12. Les 12 composantes sontinitialises par les valeurs respectives 31, 28, 31, ... , 31.On peut accder la premire composante du tableau par JOURS[0] , ladeuxime composante par JOURS[1], . . . , la dernire composante parJOURS[11].7.1.1. Dclaration et mmorisationDclarationDclaration de tableaux en langage algorithmique tableau []Dclaration de tableaux en C[];Les noms des tableaux sont des identificateurs qui doivent correspondre auxrestrictions dfinies au chapitre 2.2.4. 87. ExemplesLes dclarations suivantes en langage algorithmique, entier tableauA[25] rel tableauB[100] boolen tableau C[10] caractre tableau D[30]se laissent traduire en C par: int A[25]; ou bien long A[25]; float B[100]; ou bien double B[100]; int C[10]; char D[30];MmorisationEn C, le nom dun tableau est le reprsentant de ladresse du premier lmentdu tableau. Les adresses des autres composantes sont calcules(automatiquement) relativement cette adresse.Exemple:short A[5] = {1200, 2300, 3400, 4500, 5600};Si un tableau est form de N composantes et si une composante a besoin deM octets en mmoire, alors le tableau occupera de N*M octets. 88. Exemple :En supposant quune variable du type long occupe 4 octets (c.--d: sizeof(long)=4), pour le tableau T dclar par: long T[15];C rservera N*M = 15*4 = 60 octets en mmoire.7.1.2. Initialisation et rservation automatiqueInitialisationLors de la dclaration dun tableau, on peut initialiser les composantes dutableau, en indiquant la liste des valeurs respectives entre accolades.Exemples :int A[5] = {10, 20, 30, 40, 50};float B[4] = {-1.05, 3.33, 87e-5, -12.3E4};int C[10] = {1, 0, 0, 1, 1, 1, 0, 1, 0, 1};Il faut videmment veiller ce que le nombre de valeurs dans la listecorresponde la dimension du tableau. Si la liste ne contient pas assez devaleurs pour toutes les composantes, les composantes restantes sontinitialises par zro.Rservation automatiqueSi la dimension nest pas indique explicitement lors de linitialisation, alorslordinateur rserve automatiquement le nombre doctets ncessaires.Exemples :int A[ ] = {10, 20, 30, 40, 50};==> rservation de 5*sizeof(int) octets (dans notre cas: 10 octets)float B[ ] = {-1.05, 3.33, 87e-5, -12.3E4}; 89. ==> rservation de 4*sizeof(float) octets (dans notre cas: 16 octets)int C[ ] = {1, 0, 0, 1, 1, 1, 0, 1, 0, 1};==> rservation de 10*sizeof(int) octets (dans notre cas: 20 octets)Exemples :7.1.3. Accs aux composantesEn dclarant un tableau par:int A[5];nous avons dfini un tableau A avec cinq composantes, auxquelles on peutaccder par: A[0], A[1], ... , A[4]Exemples : 90. MAX = (A[0]>A[1]) ? A[0] : A[1]; A[4] *= 2;Attention !Considrons un tableau T de dimension N :En C,- laccs au premier lment du tableau se fait par T[0]- laccs au dernier lment du tableau se fait par T[N-1]En langage algorithmique,- laccs au premier lment du tableau se fait par T[1]- laccs au dernier lment du tableau se fait par T[N]7.1.4. Affichage et affectationLa structure for se prte particulirement bien au travail avec les tableaux. Laplupart des applications se laissent implmenter par simple modification desexemples-types de laffichage et de laffectation.- Affichage du contenu dun tableauTraduisons le programme AFFICHER du langage algorithmique en C: programme AFFICHER | entier tableau A[5] | entier I (* Compteur *) | pour I variant de 1 5 faire | crire A[I] | fpour fprogramme 91. #include main() { int A[5]; int I; /* Compteur */ for (I=0; I