- 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