3. Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence :
Creative Commons BY-NC-SA 2.0
La copie de cet ouvrage est autorisée sous réserve du respect des conditions de la licence
Texte complet de la licence disponible sur : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Simple IT 2010 - ISBN : 978-2-9535278-0-3
4.
5.
6. Avant-propos
L e livre que vous tenez d—ns vos m—ins — une longue histoire derrière luiF it pour
™—use X il — mis plus de dix —ns à mûrir —v—nt de voir le jourF gomment peutEon en
—rriver à prép—rer un livre pend—nt dix longues —nnées c …n petit retour en —rrière
s9imposeF
te suis un p—ssionné de nouvelles te™hnologies p—rmi t—nt d9—utresF t9—i eu mon premier
ordin—teur entre les m—ins juste —v—nt de rentrer —u ™ollègeF g9ét—it à ™e moment le
l—n™ement en gr—ndes pompes de ‡indows WSF
t9—i immédi—tement voulu —ller plus loinD s—voir ™omment ç— fon™tionne à l9intérieur F
won premier ré)exe — été d9é™umer les li˜r—iries de qu—rtier et plus p—rti™ulièrement
leur se™tion mi™roEinform—tique déjà ˜ien développéeF „out @ou presqueA me f—is—it
envie X gréez votre site we˜ en r„wv en SH minutes D héveloppez vos propres
progr—mmes f—™ilement —ve™ †isu—l f—si™ D et™F hes promesses quiD à elles seulesD
—ur—ient pu —voir r—ison de mon —rgent de po™heF
g9est en lis—nt l— qu—trième de ™ouverture que les ™hoses ont ™ommen™é à ™oin™er X Ce
livre est destiné aux personnes ayant déjà une bonne expérience en programmation F
€—s de p—niqueF sl su0t de trouver ™elui qui s9—dresse —ux dé˜ut—nts ™omme moiF te
repose le livre sur les ét—l—ges et je tente d9en sortir un —utreF €uis un —utreF €uis en™ore
un —utreF tusqu9à me rendre à l9éviden™e X pour —pprendre à progr—mmerD il f—ut déjà
s—voir progr—mmerF
ristoire de ne p—s —voir f—it le tr—jet pour rienD je rep—rtir—i qu—nd même —ve™ un
livre ou deux sous les ˜r—sD ™eux qui sem˜l—ient les plus ™orre™ts du lotF te leur rends
homm—ge i™i X ™9est —ve™ eux que j9—i dém—rré et j9—i ˜e—u™oup —ppris à leur le™tureF w—is
en les relis—nt —ve™ un peu de re™ul quelques mois plus t—rdD j9—i (ni p—r m9—per™evoir
de ™ert—ines in™ohéren™es X un ™h—pitre simple sur l9inst—ll—tion d9un logi™iel qui —ur—it
dû être pl—™é tout —u dé˜utD des ™odes sour™e s—ns expli™—tionsD qu—nd ™e n9ét—it p—s
™—rrément un mot import—nt utilisé tout —u long du livre et dé(ni vers l— (n 3
v— ™ritique ét—it f—™ileD m—is il me f—ll—it prouver que l9on pouv—it f—ire plus clair et plus
simpleF t9—i don™ entrepris de reformuler mon premier livre tel que j'aurais souhaité
le lire en ™ré—nt mon premier site we˜F
g9ét—it il y — dix —ns presque jour pour jour à l— sortie de ™e livreF
i
7. CHAPITRE 0. AVANT-PROPOS
Qu'est-ce que ce livre vous propose ?
fien des —nnées se sont é™oulées depuis l— réd—™tion des premiers ™oursF h—ns ™et interE
v—lle de tempsD j9—i suivi des études d9ingénieur en inform—tique puis j9—i été professeur
de l—ng—ge g d—ns l9enseignement supérieurF
„out ™e™i m9— —mené à ™onstruire un pl—n de ™ours —d—pté —ux dé˜ut—ntsD progressif et
™on™retF geluiE™i est ™onstitué de qu—tre p—rties que vous retrouverez d—ns ™et ouvr—ge X
IF Les bases de la programmation en C X nous dém—rrerons en dou™eur en
dé™ouvr—nt ™e qu9est l— progr—mm—tion et à quoi sert le l—ng—ge g qui f—it l9o˜jet
de ™e livreF xous inst—llerons les outils né™ess—ires —u progr—mmeur —d—ptés à
votre système d9exploit—tion X ‡indowsD w—™ yƒ ˆ ou vinuxF xous ré—liserons
nos premiers progr—mmes simples et pourrons pr—tiquer en ré—lis—nt un petit jeu
dès l— (n de ™ette p—rtieF
PF Techniques avancées du langage C X nous étudierons des ™on™epts plus
—v—n™és et plus ™omplexes du gF geuxE™iD ˜ien que d9un nive—u plus élevéD sont
indispens—˜les à l— ˜onne ™ompréhension du l—ng—ge X pointeursD t—˜le—uxD stru™E
turesD ™h—înes de ™—r—™tèresD et™F ve nive—u reste progressif m—is le ™ours dem—nE
der— plus d9—ttention de votre p—rt à p—rtir de ™ette se™onde p—rtieD soyezEen
simplement prévenusF
QF Création de jeux 2D en SDL X —près —voir —™quis l9essentiel des ™onn—iss—n™es
né™ess—ires pour progr—mmer en gD il nous ser— possi˜le de nous —muser en ™ré—nt
nousEmêmes des progr—mmes ™omplets tels que des jeux et des le™teurs —udioF
€our y p—rvenirD nous utiliserons une extension du l—ng—ge g que l9on —ppelle
l— ƒhvF
RF Les structures de données X pour —ller plus loinD nous dé™ouvrirons des méE
thodes de progr—mm—tion spé™i(ques d—ns ™ette dernière p—rtieF xous m—nipuleE
rons des données en mémoire à l9—ide de stru™tures personn—lisées et intelligentesD
™e qui vous permettr— d9—ugmenter en e0™—™ité lorsque vous ré—liserez vos futurs
progr—mmesF
Comment lire ce livre ?
Suivez l'ordre des chapitres
visez ™e livre ™omme on lit un rom—nF sl — été ™onçu de ™ette f—çonF
gontr—irement à ˜e—u™oup de livres te™hniques où il est ™our—nt de lire en di—gon—le et
de s—uter ™ert—ins ™h—pitresD i™i il est très fortement re™omm—ndé de suivre l9ordre du
™oursD à moins que vous ne soyez déjà un peu expérimentéF
ii
8. COMMENT LIRE CE LIVRE ?
Pratiquez en même temps
€r—tiquez régulièrementF x9—ttendez p—s d9—voir (ni l— le™ture de ™e livre pour —llumer
votre ordin—teur et f—ire vos propres ess—isF
ve livre ™omporte plusieurs „F€F qui vous invitent à ™réer votre propre progr—mme en
1
suiv—nt une série de ™onsignesF g9est ˜ienD m—is ne vous en ™ontentez p—sF iss—yez les
™odes sour™e que je vous propose tout —u long du ™oursF wodi(ezEles un tout petit peuD
puis de plus en plus jusqu9à vous sentir à l9—iseF …ne fois les „F€F terminésD ess—yez de
ré—liser les —mélior—tions suggérées —insi que ™elles qui vous p—ssent p—r l— têteF †ous
progresserez —insi ˜e—u™oup plus vite que vous ne l9im—giniezF
Utilisez les codes web !
e(n de tirer p—rti du ƒite du éro dont est issu ™e livreD ™eluiE™i vous propose ™e qu9on
—ppelle des ™odes we˜ F ge sont des ™odes à T ™hi'res à rentrer sur une p—ge du ƒite
du éro pour être —utom—tiquement redirigé vers un site we˜ s—ns —voir à en re™opier
l9—dresseF
€our utiliser les ™odes we˜D rendezEvous sur l— p—ge suiv—nte X 2
http:GGwwwFsiteduzeroF™omG™odewe˜Fhtml
…n formul—ire vous invite à rentrer votre ™ode we˜F p—ites un premier ess—i —ve™ le ™ode
™iEdessous X
£
¢gode we˜ X IPQRST ¡
ges ™odes we˜ ont deux intérêts X
! vous f—ire télé™h—rger les ™odes sour™e in™lus d—ns ™e livreD ™e qui vous éviter— d9—voir
à re™opier ™ert—ins ™odes un peu longs Y
! vous rediriger vers les sites we˜ présentés tout —u long du ™oursF
ge système de redire™tion nous permet de tenir à jour le livre que vous —vez entre les
m—ins s—ns que vous —yez ˜esoin d9—™heter systém—tiquement ™h—que nouvelle éditionF
ƒi un site we˜ ™h—nge d9—dresseD nous modi(erons l— redire™tion m—is le ™ode we˜ à
utiliser rester— le mêmeF ƒi un site we˜ disp—r—îtD nous vous redirigerons vers une p—ge
du ƒite du éro expliqu—nt ™e qui s9est p—ssé et vous propos—nt une —ltern—tiveF
in ™l—irD ™9est un moyen de nous —ssurer de l— pérennité de ™et ouvr—ge s—ns que vous
—yez à f—ire quoi que ™e soit 3
1. Travaux Pratiques
2. Je vous suggère d'ailleurs de l'ajouter à vos favoris.
iii
9. CHAPITRE 0. AVANT-PROPOS
Du Site du Zéro au Livre du Zéro
À l9époque où j9—i souh—ité rédiger mes premiers ™ours pour dé˜ut—ntsD mon premier
ré)exe — été de ™réer un site we˜ ™—r ™9ét—it pour moi le moyen le plus simple de pu˜lier
mes é™rits F sl fut dé™idé que le site s9—ppeller—it le ƒite du éro F F F p—r™e qu9on y
3
—pprendr—it tout à p—rtir de zéroF
ƒ—ns moyens pu˜li™it—ires —utres que le ˜ou™he à oreilleD m—is —ve™ ˜e—u™oup de motiE
v—tion et de p—ssionD wwwFsiteduzeroF™om s9est f—it —u (l des —nnées un vérit—˜le nom
sur le ‡e˜F À tel point que j9—i (ni p—r dé™ouvrir qu9il ét—it ™onnu et re™omm—ndé p—r
des professeurs en inform—tiqueD m—is —ussi utilisé ™omme support de ™ours p—r leurs
élèves 3
ve site s9est fortement développé et est devenu plus qu9un site de ™ours en ligne pour
dé˜ut—ntsF sl regroupe —ujourd9hui plus de IUH HHH mem˜res formid—˜les qui é™h—ngent
et s9entr—ident sur les forums m—is prennent —ussi p—rt à l— réd—™tion des ™ours de
f—çon désintéresséeF v— seule ™onsigne en vigueur sur le site est l— seule que j9—ie j—m—is
suivie X se mettre à l— pl—™e du le™teur dé˜ut—nt que nous —vons tous étéF
gel— f—it longtemps que je souh—ite un retour —ux sour™esD d—ns ™es li˜r—iries où j9—i
moiEmême été perduF ve vivre du éro est le moyen idé—l de ˜ou™ler l— ˜ou™leF
À l'attention de ceux qui ne connaissent pas le Site du Zéro
ƒi vous ne f—ites p—s p—rtie des visiteurs du ƒite du éro D vous vous dem—ndez à juste
4
titre si ™e livre est f—it pour vousF
gomme vous l9—urez s—ns doute ™omprisD ™e livre est —v—nt tout destiné —ux dé˜ut—ntsF
†ous y trouverez né—nmoins —ussi votre ™ompte si vous —vez déjà de l9expérien™e en
progr—mm—tion d—ns d9—utres l—ng—ges et que vous souh—itez dé™ouvrir le gF
„outes les notions à ™onn—ître pour dém—rrer d—ns l— progr—mm—tion seront dét—illéesD
en privilégi—nt les exemples —ux dé(nitions théoriquesF ve ™ours est d9—illeurs p—rti™uE
lièrement fourni en s™hém—s ™omme vous pourrez le ™onst—terF
visez le premier ™h—pitre pour dé™ider si vous —™™ro™hez et ™omprenez ™e qui s9y ditF
v— seule ™ompéten™e réellement requise est de s—voir —llumer un ordin—teur F te me 5
™h—rge de vous expliquer tout le reste X de l9inst—ll—tion des logi™iels né™ess—ires pour
progr—mmer à l9expli™—tion des ™omm—ndes qui permettent de ™réer des progr—mmesD
en p—ss—nt p—r les ™onseils et les ˜onnes pr—tiques qui vous feront g—gner du tempsF
†ous noterez que je m9exprime toujours à l— première personneF g9est m— f—çon de f—ireF
sm—ginez d9une ™ert—ine m—nière que nous sommes vous et moi d—ns l— même s—lle et
que je suis votre professeurF te vous p—rle dire™tement et je réponds à vos questions en
3. Et ça l'est d'ailleurs toujours, c'est amusant de voir que cela n'a pas changé. Le Web est plus
que jamais un formidable espace d'expression et doit le rester.
4. Que l'on appelle d'ailleurs les Zéros , selon une logique implacable qui ne vous aura pas
échappé. ;-)
5. Ce n'est pas une plaisanterie, c'est la raison d'être de ce livre et c'est pour cela qu'on l'appelle
le Livre du Zéro .
iv
10. REMERCIEMENTS
ess—y—nt d—ns l— mesure du possi˜le de les —nti™iperF
À l'attention des visiteurs du Site du Zéro
ge livre ne rempl—™e p—s le ƒite du éroF sl le complèteF
in f—itD il répond à une question que l9on m9— souvent posée X €ourquoi ne voitEon
p—s ™es ™ours en li˜r—irie c F yui ™9est vr—iD pourquoi c
€—r™e que rédiger et pu˜lier un livre ne s9improvise p—sF e(n d9—voir le m—ximum de
li˜erté et d9indépend—n™eD je souh—it—is être l9éditeur de ™es livresF sl —ur— f—llu du
temps pour y p—rvenir m—is ™9est —ujourd9hui ™hose f—iteF
ge livre s9—dresse à vous si vous —vez —imé les ™ours du ƒite du éro m—is que X
! l— le™ture sur é™r—n vous f—tigue Y
! vous —vez ˜esoin d9un support hors ligne que vous pouvez emporter où vous voulez Y
! vous —uriez ˜ien imprimé les ™ent—ines de p—ges du ™ours vousEmême m—is votre
imprim—nte risquer—it de f—ire un peu l— tête Y
! vous souh—itez tout simplement —pporter votre ™ontri˜ution —u siteD —(n de nous
—ider à (n—n™er son développement et l— réd—™tion de nouve—ux ™oursF
†ous y retrouverez le ™ours de progr—mm—tion en g d—ns une édition revue et ™orrigéeD
—ve™ de nouvelles rem—rques et —ne™dotesF ve livre ™omporte une série de ™h—pitres
inédits qui vous permettront d9—ller en™ore plus loin et d9explorer de nouvelles voies
d—ns votre dé™ouverte de l— progr—mm—tionF
Remerciements
ge livre n9est p—s le fruit d9une seule et même personneF sl n9—ur—it en f—it j—m—is vu
le jour s—ns de nom˜reuses personnes qui m9ont —pporté leur soutien ou leur —ideF
! wes p—rents tout d9—˜ordD qui m9ont toujours en™our—gé et ™onseillé qu—nd j9en —v—is
le plus ˜esoinF
! ÉlodieD qui p—rt—ge m— vie depuis plusieurs —nnées et qui s—it toujours trouver les
mots justes pour m9—ider à —v—n™erF
! €ierre hu˜u™D mon —sso™iéD à qui l9on doit les fond—tions te™hniques du ƒite du éro
que l9on ™onn—ît —ujourd9hui —insi que le ré™ent développement de notre stru™tureF
v— dévotion qu9il — portée à l— n—iss—n™e de ™e livre ne s—ur—it être su0s—mment
s—luéeF
! xh—t winh vê @rzHA —ve™ qui j9—i eu de longues et intéress—ntes ™onvers—tions sur
Av „iˆD le l—ng—ge d—ns lequel est é™rit ™e livre D —insi que sur le l—ng—ge gD son
6
dom—ine de prédile™tionF
! xos infogr—phistesD p—n tiyong @™ouverture de ™e livreA et ‰—nni™k €i—ult @illustr—E
tions des ™h—pitresA qui ont tr—v—illé d9—rr—™heEpied pend—nt plusieurs sem—ines pour
livrer le meilleur tr—v—il possi˜leF
6. Eh oui, même ce livre est compilé, on ne se refait pas. :-)
v
11. CHAPITRE 0. AVANT-PROPOS
! v9équipe des zgorre™teursD des p—ssionnés de l—ngue fr—nç—ise et de typogr—phie
qui ™orrigent depuis longtemps les ™ours du ƒite du éro et qui ont f—it un tr—v—il
formid—˜le de rigueur et d9e0™—™ité pour relire ™e livre @triple rele™ture pour ™h—que
™h—pitre 3AF te tiens à remer™ier en p—rti™ulier les ™inq ™orre™teurs qui se sont ™h—rgés
de l— rele™ture de ™e livre X €hilippe vutun @ptipilouAD voï™ ve freton @pihldAD w—rtin
‡etterw—ld @ht poxAD quill—ume q—ullier @quill—wmeA et véo ‚oux @xeltyAF
! v9équipe du ƒite du éroD p—sséeD présente et futureF veur —ide pour f—ire tourner le
site est inestim—˜leF ‚édiger une liste ™omplète des mem˜res de l9équipe ser—it ˜ien
trop long i™iD m—is ils s—uront se re™onn—ître tous —ut—nt qu9ils sontF YEA
! in(n et surtoutD tous ™eux qui nous ont f—it ™on(—n™e et nous ont en™our—gés à
™ontinuer X les visiteurs du ƒite du éro F iux —ussi sont un peu trop nom˜reux
7
pour être listés i™iD m—is qu9ils s—™hent à quel point leurs en™our—gements ont été le
moteur de l— ™ré—tion de ™e livreF
wer™i à vous en(nD qui vous —pprêtez à nous f—ire ™on(—n™e en lis—nt ™e livreF te vous
souh—ite une ˜onne et —gré—˜le le™tureD et surtout n9ou˜liez p—s d9y prendre du pl—isir 3
7. Il est intéressant de noter que toutes les personnes listées précédemment en font partie !
vi
12. Sommaire
Avant-propos i
u9estE™e que ™e livre vous propose c F F F F F F F F F F F F F F F F F F F F F F F ii
gomment lire ™e livre c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ii
hu ƒite du éro —u vivre du éro F F F F F F F F F F F F F F F F F F F F F F F F F iv
‚emer™iements F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F v
I Les bases de la programmation en C 1
1 Vous avez dit programmer ? 3
€rogr—mmerD ™9est quoi c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R
€rogr—mmerD d—ns quel l—ng—ge c F F F F F F F F F F F F F F F F F F F F F F F F F S
€rogr—mmerD ™9est dur c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W
2 Ayez les bons outils ! 11
ves outils né™ess—ires —u progr—mmeur F F F F F F F F F F F F F F F F F F F F F F IP
gode: :flo™ks @‡indowsD w—™ yƒD vinuxA F F F F F F F F F F F F F F F F F F F F IQ
†isu—l gCC @‡indows seulementA F F F F F F F F F F F F F F F F F F F F F F F F IW
ˆ™ode @w—™ yƒ seulementA F F F F F F F F F F F F F F F F F F F F F F F F F F F F PS
3 Votre premier programme 31
gonsole ou fenêtre c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QP
…n minimum de ™ode F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QR
É™rire un mess—ge à l9é™r—n F F F F F F F F F F F F F F F F F F F F F F F F F F F F QW
vii
13. SOMMAIRE
ves ™omment—iresD ™9est très utile 3 F F F F F F F F F F F F F F F F F F F F F F F F RQ
4 Un monde de variables 47
…ne —'—ire de mémoire F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RV
hé™l—rer une v—ri—˜le F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F SP
e0™her le ™ontenu d9une v—ri—˜le F F F F F F F F F F F F F F F F F F F F F F F F F SW
‚é™upérer une s—isie F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F TI
5 Une bête de calcul 65
ves ™—l™uls de ˜—se F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F TT
ves r—™™our™is F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F UH
v— ˜i˜liothèque m—thém—tique F F F F F F F F F F F F F F F F F F F F F F F F F F UP
6 Les conditions 77
v— ™ondition ifFFF else F F F F F F F F F F F F F F F F F F F F F F F F F F F F F UV
ves ˜ooléensD le ™oeur des ™onditions F F F F F F F F F F F F F F F F F F F F F F F VR
v— ™ondition swit™h F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F VU
ves tern—ires X des ™onditions ™ondensées F F F F F F F F F F F F F F F F F F F F F WI
7 Les boucles 93
u9estE™e qu9une ˜ou™le c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F WR
v— ˜ou™le while F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F WR
v— ˜ou™le doFFF while F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F WU
v— ˜ou™le for F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F WV
8 TP : Plus ou Moins, votre premier jeu 101
€rép—r—tifs et ™onseils F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHP
gorre™tion 3 F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHR
sdées d9—mélior—tion F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IHU
9 Les fonctions 109
gréer et —ppeler une fon™tion F F F F F F F F F F F F F F F F F F F F F F F F F F F IIH
hes exemples pour ˜ien ™omprendre F F F F F F F F F F F F F F F F F F F F F F F IIV
viii
14. SOMMAIRE
II Techniques avancées du langage C 125
10 La programmation modulaire 127
ves prototypes F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IPV
ves he—ders F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IQH
v— ™ompil—tion sép—rée F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IQS
v— portée des fon™tions et des v—ri—˜les F F F F F F F F F F F F F F F F F F F F F IQV
11 À l'assaut des pointeurs 143
…n pro˜lème ˜ien ennuyeux F F F F F F F F FF F F F F F F F F F F F F F F F F F F IRR
v— mémoireD une question d9—dresse F F F FF F F F F F F F F F F F F F F F F F F IRT
…tiliser des pointeurs F F F F F F F F F F F F FF F F F F F F F F F F F F F F F F F F IRW
invoyer un pointeur à une fon™tion F F F F FF F F F F F F F F F F F F F F F F F F ISR
ui — dit X …n pro˜lème ˜ien ennuyeux c F F F F F F F F F F F F F F F F F F ISU
12 Les tableaux 159
ves t—˜le—ux d—ns l— mémoire F F F F F F F F F F F F F F F F F F F F F F F F F F F ITH
hé(nir un t—˜le—u F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ITH
€—r™ourir un t—˜le—u F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F ITQ
€—ss—ge de t—˜le—ux à une fon™tion F F F F F F F F F F F F F F F F F F F F F F F F ITS
13 Les chaînes de caractères 169
ve type ™h—r F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IUH
ves ™h—înes sont des t—˜le—ux de ™h—r F F F F F F F F F F F F F F F F F F F F F F IUP
pon™tions de m—nipul—tion des ™h—înes F F F F F F F F F F F F F F F F F F F F F F IUT
14 Le préprocesseur 187
ves in™lude F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IVV
ves define F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWH
ves m—™ros F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWQ
ves ™onditions F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IWT
15 Créez vos propres types de variables 201
hé(nir une stru™ture F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PHP
…tilis—tion d9une stru™ture F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PHR
€ointeur de stru™ture F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PHV
ix
15. SOMMAIRE
ves énumér—tions F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PII
16 Lire et écrire dans des chiers 215
yuvrir et fermer un (™hier F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PIT
hi'érentes méthodes de le™ture G é™riture F F F F F F F F F F F F F F F F F F F F PPQ
ƒe dépl—™er d—ns un (™hier F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PQI
‚enommer et supprimer un (™hier F F F F F F F F F F F F F F F F F F F F F F F F PQQ
17 L'allocation dynamique 235
v— t—ille des v—ri—˜les F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PQT
ello™—tion de mémoire dyn—mique F F F F F F F F F F F F F F F F F F F F F F F F PRH
ello™—tion dyn—mique d9un t—˜le—u F F F F F F F F F F F F F F F F F F F F F F F F PRS
18 TP : réalisation d'un Pendu 249
ves ™onsignes F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PSH
v— solution @I X le ™ode du jeuA F F F F F F F F F F F F F F F F F F F F F F F F F F PST
v— solution @P X l— gestion du di™tionn—ireA F F F F F F F F F F F F F F F F F F F F PTI
sdées d9—mélior—tion F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PUI
19 La saisie de texte sécurisée 273
ves limites de l— fon™tion s™—nf F F F F F F F F F F F F F F F F F F F F F F F F F F PUR
‚é™upérer une ™h—îne de ™—r—™tères F F F F F F F F F F F F F F F F F F F F F F F F PUT
gonvertir l— ™h—îne en nom˜re F F F F F F F F F F F F F F F F F F F F F F F F F F F PVQ
III Création de jeux 2D en SDL 287
20 Installation de la SDL 289
€ourquoi —voir ™hoisi l— ƒhv c F F F F F F F F F F F F F F F F F F F F F F F F F F F PWH
„élé™h—rgement de l— ƒhv F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PWR
gréer un projet ƒhv F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PWS
21 Création d'une fenêtre et de surfaces 305
gh—rger et —rrêter l— ƒhv F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QHT
yuverture d9une fenêtre F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QIH
w—nipul—tion des surf—™es F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QIU
ixer™i™e X ™réer un dégr—dé F F F F F F F F F F F F F F F F F F F F F F F F F F F F QPU
x
16. SOMMAIRE
22 Acher des images 333
gh—rger une im—ge fw€ F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QQR
qestion de l— tr—nsp—ren™e F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QQV
gh—rger plus de form—ts d9im—ge —ve™ ƒhv•sm—ge F F F F F F F F F F F F F F F F QRP
23 La gestion des événements 351
ve prin™ipe des événements F F F F F F F F F F F F F F F F F F F F F F F F F F F F QSP
ve ™l—vier F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QSU
ixer™i™e X diriger ozor —u ™l—vier F F F F F F F F F F F F F F F F F F F F F F F F F QTH
v— souris F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QTV
ves événements de l— fenêtre F F F F F F F F F F F F F F F F F F F F F F F F F F F QUP
24 TP : Mario Sokoban 377
g—hier des ™h—rges du ƒoko˜—n F F F F F F F F F F F F F F F F F F F F F F F F F F QUV
ve m—in et les ™onst—ntes F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QVI
ve jeu F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QVT
gh—rgement et enregistrement de nive—ux F F F F F F F F F F F F F F F F F F F F RHH
v9éditeur de nive—ux F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RHP
‚ésumé et —mélior—tions F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RHV
25 Maîtrisez le temps ! 411
ve Delay et les ticks F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RIP
ves timers F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RPH
26 Écrire du texte avec ƒhv•ttf 425
snst—ller ƒhv•ttf F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RPT
gh—rgement de ƒhv•ttf F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RPV
ves di'érentes méthodes d9é™riture F F F F F F F F F F F F F F F F F F F F F F F F RQI
27 Jouer du son avec FMOD 443
snst—ller pwyh F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RRR
sniti—liser et li˜érer pwyh F F F F F F F F F F F F F F F F F F F F F F F F F F F F RRT
ves sons ™ourts F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RRU
ves musiques @w€QD yqqD ‡weF F FA F F F F F F F F F F F F F F F F F F F F F F RSP
ves musiques @wshsA F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RSU
xi
17. SOMMAIRE
28 TP : visualisation spectrale du son 463
ves ™onsignes F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RTR
v— solution F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RUH
sdées d9—mélior—tion F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RUR
IV Les structures de données 475
29 Les listes chaînées 477
‚eprésent—tion d9une liste ™h—înée F F F F F F F F F F F F F F F F F F F F F F F F RUV
gonstru™tion d9une liste ™h—înée F F F F F F F F F F F F F F F F F F F F F F F F F F RUW
ves fon™tions de gestion de l— liste F F F F F F F F F F F F F F F F F F F F F F F F RVP
eller plus loin F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RVU
30 Les piles et les les 489
ves piles F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RWH
ves (les F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RWU
31 Les tables de hachage 503
€ourquoi utiliser une t—˜le de h—™h—ge c F F F F F F F F F F F F F F F F F F F F F SHR
u9estE™e qu9une t—˜le de h—™h—ge c F F F F F F F F F F F F F F F F F F F F F F F F SHR
É™rire une fon™tion de h—™h—ge F F F F F F F F F F F F F F F F F F F F F F F F F F SHT
qérer les ™ollisions F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F SHV
xii
20. Chapitre 1
Vous avez dit programmer ?
Diculté :
V ous avez déjà entendu parler de programmation et nul doute que si vous avez ce
livre entre les mains, c'est parce que vous voulez enn comprendre comment ça
fonctionne.
Mais programmer en langage C. . . ça veut dire quoi ? Est-ce que c'est bien pour com-
mencer ? Est-ce que vous avez le niveau pour programmer ? Est-ce qu'on peut tout faire
avec ?
Ce chapitre a pour but de répondre à toutes ces questions apparemment bêtes et pourtant
très importantes. Grâce à ces questions simples, vous saurez à la n de ce premier chapitre
ce qui vous attend. C'est quand même mieux de savoir à quoi sert ce que vous allez
apprendre, vous ne trouvez pas ?
Q
21. CHAPITRE 1. VOUS AVEZ DIT PROGRAMMER ?
Programmer, c'est quoi ?
yn ™ommen™e p—r l— question l— plus simple qui soitD l— plus ˜—sique de toutes les
questions ˜—siquesF ƒi vous —vez l9impression de déjà s—voir tout ç—D je vous ™onseille
de lire qu—nd mêmeD ç— ne peut p—s vous f—ire de m—l 3 te p—rs de zéro pour ™e ™oursD
don™ je v—is devoir répondre à l— question X
Que signie le mot programmer ?
€rogr—mmer signi(e ré—liser des progr—mmes inform—tiques F ves progr—mmes deE
m—ndent à l9ordin—teur d9e'e™tuer des —™tionsF
†otre ordin—teur est rempli de progr—mmes en tous genres X
! l— ™—l™ul—tri™e est un progr—mme Y
! votre tr—itement de texte est un progr—mme Y
! votre logi™iel de ™h—t est un progr—mme Y
! les jeux vidéo sont des progr—mmes @™fF (gF IFID le ™élè˜re jeu r—lfEvife PAF
Figure IFI ! ve jeu r—lfEvife P — été progr—mmé en gCCD un l—ng—ge voisin du g
in ˜refD les progr—mmes sont p—rtout et permettent de f—ire — priori tout et n9importe
quoi sur un ordin—teurF †ous pouvez inventer un logi™iel de ™rypt—ge révolutionn—ire si
ç— vous ™h—nteD ou ré—liser un jeu de ™om˜—t en Qh sur snternetD peu importeF †otre
ordin—teur peut tout f—ire @s—uf le ™—féD m—is j9y tr—v—illeAF
ettention 3 te n9—i p—s dit que ré—liser un jeu vidéo se f—is—it en ™l—qu—nt des doigtsF t9—i
simplement dit que tout ™el— ét—it possi˜leD m—is soyez sûrs que ç— dem—nde ˜e—u™oup
de tr—v—ilF
R
22. PROGRAMMER, DANS QUEL LANGAGE ?
gomme vous dé˜utezD nous n9—llons p—s ™ommen™er en ré—lis—nt un jeu QhF ge ser—it
sui™id—ireF xous —llons devoir p—sser p—r des progr—mmes très simplesF …ne des preE
mières ™hoses que nous verrons est comment acher un message à l'écranF yuiD je s—isD
ç— n9— rien de tr—ns™end—ntD m—is rien que ç— ™royezEmoiD ™e n9est p—s —ussi f—™ile que
ç— en — l9—irF
Ç— impressionne moins les —misD m—is on v— ˜ien devoir p—sser p—r làF €etit à petitD
vous —pprendrez su0s—mment de ™hoses pour ™ommen™er à ré—liser des progr—mmes
de plus en plus ™omplexesF ve ˜ut de ™e ™ours est que vous soyez ™—p—˜les de vous en
sortir d—ns n9importe quel progr—mme é™rit en gF
w—is tenezD —u f—itD vous s—vez ™e que ™9est vousD ™e f—meux l—ng—ge g c
Programmer, dans quel langage ?
†otre ordin—teur est une m—™hine ˜iz—rreD ™9est le moins que l9on puisse direF yn ne
peut s9—dresser à lui qu9en lui envoy—nt des H et des IF einsiD si je tr—duis p—is le
™—l™ul Q C S en l—ng—ge inform—tiqueD ç— pourr—it donner quelque ™hose ™omme X 1
HHIHIIHIIHHIHHIIHIHHIIIIH
ge que vous voyez làD ™9est le l—ng—ge inform—tique de votre ordin—teurD —ppelé langage
binaire @retenez ˜ien ™e mot 3AF †otre ordin—teur ne ™onn—ît que ™e l—ng—geElà etD
™omme vous pouvez le ™onst—terD ™9est —˜solument in™ompréhensi˜leF
hon™ voilà notre premier vr—i pro˜lème X
Comment parler à l'ordinateur plus simplement qu'en binaire avec des 0 et
des 1 ?
†otre ordin—teur ne p—rle p—s l9—ngl—is et en™ore moins le fr—nç—isF €ourt—ntD il est
in™on™ev—˜le d9é™rire un progr—mme en l—ng—ge ˜in—ireF wême les inform—ti™iens les
plus fous ne le font p—sD ™9est vous dire 3
ih ˜ien l9idée que les inform—ti™iens ont eueD ™9est d9inventer de nouve—ux l—ng—ges
qui ser—ient ensuite tr—duits en ˜in—ire pour l9ordin—teurF ve plus dur à f—ireD ™9est
de ré—liser le progr—mme qui f—it l— tr—du™tion F reureusementD ™e progr—mme —
déjà été é™rit p—r des inform—ti™iens et nous n9—urons p—s à le ref—ire @ouf 3AF yn v—
—u ™ontr—ire s9en servir pour é™rire des phr—ses ™omme X Fais le calcul 3 + 5
qui seront tr—duites p—r le progr—mme de tr—du™tion en quelque ™hose ™omme X
HHIHIIHIIHHIHHIIHIHHIIIIH F
ve s™hém— IFP résume ™e que je viens de vous expliquerF
1. J'invente, je ne connais quand même pas la traduction informatique par c÷ur.
S
23. CHAPITRE 1. VOUS AVEZ DIT PROGRAMMER ?
Figure IFP ! ƒ™hém— @très simpli(éA de ré—lis—tion d9un progr—mme
Un peu de vocabulaire
và j9—i p—rlé —ve™ des mots simplesD m—is il f—ut s—voir qu9en inform—tique il existe
un mot pour ™h—™une de ™es ™hosesElàF „out —u long de ™e ™oursD vous —llez d9—illeurs
—pprendre à utiliser un vo™—˜ul—ire —ppropriéF xon seulement vous —urez l9—ir de s—voir
de quoi vous p—rlezD m—is si un jour @et ç— —rriver—A vous devez p—rler à un —utre
progr—mmeurD vous s—urez vous f—ire ™omprendre F 2
‚eprenons le s™hém— que l9on vient de voirF v— première ™—se est †otre progr—mme
est é™rit d—ns un l—ng—ge simpli(é F ge f—meux l—ng—ge simpli(é est —ppelé en f—it
langage de haut niveauF sl existe plusieurs nive—ux de l—ng—gesF €lus un l—ng—ge est
h—ut nive—uD plus il est pro™he de votre vr—ie l—ngue @™omme le fr—nç—isAF …n l—ng—ge de
h—ut nive—u est don™ f—™ile à utiliserD m—is ™el— — —ussi quelques petits déf—uts ™omme
nous le verrons plus t—rdF
sl existe de nom˜reux l—ng—ges de plus ou moins h—ut nive—u en inform—tique d—ns
lesquels vous pouvez é™rire vos progr—mmesF in voi™i quelquesEuns p—r exemple X
! le g Y
! le gCC Y
! t—v— Y
! †isu—l f—si™ Y
! helphi Y
! et™F
xotez que je ne les —i p—s ™l—ssés p—r nive—u de l—ng—ge D n9—llez don™ p—s vous
im—giner que le premier de l— liste est plus f—™ile que le dernier ou l9inverseF ge sont
juste quelques exemples F 3
gert—ins de ™es l—ng—ges sont plus h—ut nive—u que d9—utres @don™ en théorie un peu
plus f—™iles à utiliserAF yn v— voir not—mment un peu plus loin ™e qui di'éren™ie le
l—ng—ge g du l—ng—ge gCCF
…n —utre mot de vo™—˜ul—ire à retenir est code sourceF ge qu9on —ppelle le ™ode
sour™eD ™9est tout simplement le ™ode de votre progr—mme é™rit d—ns un l—ng—ge de
h—ut nive—uF g9est don™ vous qui é™rivez le ™ode sour™eD qui ser— ensuite tr—duit en
2. Certes, les gens autour de vous vous regarderont comme si vous êtiez des extra-terrestres, mais
ça il ne faudra pas y faire attention !
3. D'avance désolé pour tous les autres langages qui existent, mais faire une liste complète serait
vraiment trop long !
T
24. PROGRAMMER, DANS QUEL LANGAGE ?
˜in—ireF
†enonsEen justement —u progr—mme de tr—du™tion qui tr—duit notre l—ng—ge de h—ut
nive—u @™omme le g ou le gCCA en ˜in—ireF ge progr—mme — un nom X on l9—ppelle le
compilateurF v— tr—du™tionD elleD s9—ppelle la compilationF
„rès import—nt X il existe un ™ompil—teur di'érent pour ™h—que l—ng—ge de h—ut nive—uF
g9est d9—illeurs tout à f—it logique X les l—ng—ges ét—nt di'érentsD on ne tr—duit p—s le
gCC de l— même m—nière qu9on tr—duit le helphiF
Vous verrez par la suite que même pour le langage C il existe plusieurs com-
pilateurs diérents ! Il y a le compilateur écrit par Microsoft, le compilateur
GNU, etc. On verra tout cela dans le chapitre suivant. Heureusement, ces
compilateurs-là sont quasiment identiques (même s'il y a parfois quelques
légères diérences que nous apprendrons à reconnaître).
in(nD le progr—mme ˜in—ire ™réé p—r le ™ompil—teur est —ppelé l'exécutableF g9est
d9—illeurs pour ™ette r—ison que les progr—mmes @tout du moins sous ‡indowsA ont
l9extension Fexe ™omme iˆi™ut—˜leF
‚eprenons notre s™hém— pré™édentD et utilisons ™ette fois des vr—is mots tordus d9inE
form—ti™ien @(gF IFQAF
Figure IFQ ! ve même s™hém—D —ve™ le ˜on vo™—˜ul—ire
Pourquoi choisir d'apprendre le C ?
gomme je vous l9—i dit plus h—utD il existe de très nom˜reux l—ng—ges de h—ut nive—uF
hoitEon ™ommen™er p—r l9un d9entre eux en p—rti™ulier c qr—nde questionF
€ourt—ntD il f—ut ˜ien f—ire un ™hoixD ™ommen™er l— progr—mm—tion à un moment ou à
un —utreF it làD vous —vez en f—it le ™hoix entre X
! un langage très haut niveau X ™9est f—™ile à utiliserD plutôt gr—nd pu˜li™ F €—rmi
euxD on ™ompte €ythonD ‚u˜yD †isu—l f—si™ et ˜ien d9—utresF ges l—ng—ges permettent
d9é™rire des progr—mmes plus r—pidementD en règle génér—leF sls né™essitent toutefois
d9être —™™omp—gnés de (™hiers pour qu9ils puissent s9exé™uter @™omme un interpréE
teurA Y
! un langage un peu plus bas niveau @m—is p—s trop qu—nd même 3A X ils sont
peutEêtre un peu plus di0™iles ™ertesD m—is —ve™ un l—ng—ge ™omme le gD vous —llez
en —pprendre ˜e—u™oup plus sur l— progr—mm—tion et sur le fon™tionnement de votre
U
25. CHAPITRE 1. VOUS AVEZ DIT PROGRAMMER ?
ordin—teurF †ous serez ensuite l—rgement ™—p—˜les d9—pprendre un —utre l—ng—ge de
progr—mm—tion si vous le désirezF †ous serez don™ plus —utonomesF €—r —illeursD le g
est un l—ng—ge très popul—ireF sl est utilisé pour progr—mmer une gr—nde p—rtie des
logi™iels que vous ™onn—issezF
in(nD le l—ng—ge g est un des l—ng—ges les plus ™onnus et les plus utilisés qui existentF
sl est très fréquent qu9il soit enseigné lors d9études supérieures en inform—tiqueF
†oilà les r—isons qui m9in™itent à vous —pprendre le l—ng—ge g plutôt qu9un —utre F te 4
ne dis p—s qu9il faut ™ommen™er p—r ç—D m—is je vous dis plutôt que ™9est un ˜on ™hoix
qui v— vous donner de solides ™onn—iss—n™esF
te v—is supposer tout —u long de ™e ™ours que ™9est votre premier l—ng—ge de progr—mE
m—tionD que vous n9—vez j—m—is f—it de progr—mm—tion —v—ntF ƒi p—r h—s—rdD vous —vez
déjà un peu progr—mméD ç— ne pourr— p—s vous f—ire de m—l de reprendre à zéroF
Il y a quelque chose que je ne comprends pas. . . Quelle est la diérence entre
le langage C et cet autre langage dont on parle, le langage C++ ?
ve l—ng—ge g et le l—ng—ge gCC sont très simil—iresF sls sont tous les deux toujours très
utilisésF €our ˜ien ™omprendre ™omment ils sont nésD il f—ut f—ire un peu d9histoireF
! eu tout dé˜utD à l9époque où les ordin—teurs pes—ient des tonnes et f—is—ient l— t—ille
de votre m—isonD on — ™ommen™é à inventer un l—ng—ge de progr—mm—tion —ppelé
l'AlgolF
! ves ™hoses évolu—ntD on — ™réé un nouve—u l—ng—ge —ppelé le CPLD qui évolu— luiE
même en BCPLD qui prit ensuite le nom de langage BF
! €uis un ˜e—u jourD on en est —rrivé à ™réer un —utre l—ng—ge en™oreD qu9on — —ppeléF F F
le langage CF ge l—ng—geD s9il — su˜i quelques modi(™—tionsD reste en™ore un des plus
utilisés —ujourd9huiF
! …n peu plus t—rdD on — proposé d9—jouter des ™hoses —u l—ng—ge gF …ne sorte d9—mélioE
r—tion si vous voulezF ge nouve—u l—ng—geD que l9on — —ppelé gCC D est entièrement
˜—sé sur le gF Le langage C++ n9est en f—it rien d9—utre que le l—ng—ge g —ve™ des
—jouts permett—nt de progr—mmer d9une f—çon di'érenteF
Qu'il n'y ait pas de malentendus : le langage C++ n'est pas meilleur
que le langage C, il permet juste de programmer diéremment. Disons aussi
qu'il permet au nal de programmer un peu plus ecacement et de mieux
hiérarchiser le code de son programme. Malgré tout, il ressemble beaucoup
au C. Si vous voulez passer au C++ par la suite, cela vous sera facile.
ge n9est €eƒ p—r™e que le gCC est une évolution du g qu9il f—ut —˜solument f—ire
du gCC pour ré—liser des progr—mmesF ve l—ng—ge g n9est p—s un vieux l—ng—ge
ou˜lié X —u ™ontr—ireD il est en™ore très utilisé —ujourd9huiF sl est à l— ˜—se des plus
gr—nds systèmes d9exploit—tion tels …nix @et don™ vinux et w—™ yƒA ou ‡indowsF
4. On pourrait citer d'autres raisons : certains langages de programmation sont plus destinés au
Web (comme PHP) qu'à la réalisation de programmes informatiques.
V
26. PROGRAMMER, C'EST DUR ?
Retenez donc X le g et le gCC ne sont p—s des l—ng—ges ™on™urrentsD on peut f—ire
—ut—nt de ™hoses —ve™ l9un qu9—ve™ l9—utreF ge sont juste deux m—nières de progr—mmer
—ssez di'érentesF
Programmer, c'est dur ?
†oilà une question qui doit ˜ien vous torturer l9espritF elors X f—utEil être un superE
m—thém—ti™ien qui — f—it IH —ns d9études supérieures pour pouvoir ™ommen™er l— proE
gr—mm—tion c
v— réponseD que je vous r—ssureD est nonF xonD un superEnive—u en m—ths n9est p—s néE
™ess—ireF in f—it tout ™e que vous —vez ˜esoin de ™onn—îtreD ™e sont les qu—tre opér—tions
de ˜—se X
! l9—ddition Y
! l— soustr—™tion Y
! l— multipli™—tion Y
! l— divisionF
ge n9est p—s trop intimid—ntD —vouez 3 te vous expliquer—i d—ns un pro™h—in ™h—pitre
™omment l9ordin—teur ré—lise ™es opér—tions de ˜—se d—ns vos progr—mmesF
frefD nive—u m—thsD il n9y — p—s de di0™ulté insurmont—˜leF in f—itD tout dépend du
progr—mme que vous —llez ré—liser X si vous devez f—ire un logi™iel de ™rypt—geD —lors
ouiD il vous f—udr— ™onn—ître des ™hoses en m—thsF ƒi vous devez f—ire un progr—mme
qui f—it de l— QhD ouiD il vous f—udr— quelques ™onn—iss—n™es en géométrie de l9esp—™eF
gh—que ™—s est p—rti™ulierF w—is pour —pprendre le l—ng—ge g luiEmêmeD vous n9—vez
p—s ˜esoin de ™onn—iss—n™es pointues en quoi que ™e soitF
Mais alors, où est le piège ? Où est la diculté ?
sl f—ut s—voir ™omment un ordin—teur fon™tionne pour ™omprendre ™e qu9on f—it en gF
he ™e point de vueElàD r—ssurezEvousD je vous —pprendr—i tout —u fur et à mesureF
xotez qu9un progr—mmeur — —ussi ™ert—ines qu—lités ™omme X
! la patience X un progr—mme ne m—r™he j—m—is du premier ™oupD il f—ut s—voir perE
sévérer 3
! le sens de la logique X p—s ˜esoin d9être forts en m—ths ™ertesD m—is ç— ne vous
empê™her— p—s d9—voir à ré)é™hirF hésolé pour ™eux qui pens—ient que ç— —ll—it tom˜er
tout ™uit s—ns e'ort 3
! le calme X nonD on ne t—pe p—s sur son ordin—teur —ve™ un m—rte—uF ge n9est p—s ç—
qui fer— m—r™her votre progr—mmeF
in ˜refD et pour f—ire simpleD il n9y — p—s de vérit—˜les ™onn—iss—n™es requises pour
progr—mmerF …n nul en m—ths peut s9en sortir s—ns pro˜lèmeD le tout est d9—voir l—
p—tien™e de ré)é™hirF sl y en — d9—illeurs ˜e—u™oup qui dé™ouvrent qu9ils —dorent ç— 3
W
27. CHAPITRE 1. VOUS AVEZ DIT PROGRAMMER ?
En résumé
! €our ré—liser des progr—mmes inform—tiquesD on doit é™rire d—ns un langage que
l9ordin—teur ™omprend F
! sl existe de nom˜reux l—ng—ges inform—tiques que l9on peut ™l—sser p—r nive—uF ves
l—ng—ges dits de h—ut nive—u sont p—rfois plus f—™iles à m—îtriser —u détriment
souvent d9une perte de perform—n™es d—ns le progr—mme (n—lF
! ve langage C que nous —llons étudier d—ns ™e livre est ™onsidéré ™omme ét—nt de ˜—s
nive—uF g9est un des l—ng—ges de progr—mm—tion les plus ™élè˜res et les plus utilisés
—u mondeF
! ve code source est une série d9instru™tions é™rites d—ns un l—ng—ge inform—tiqueF
! ve compilateur est un progr—mme qui tr—nsforme votre ™ode sour™e en code bi-
naireD qui peut —lors être exé™uté p—r votre pro™esseurF ves Fexe que l9on ™onn—ît
sont des progr—mmes ˜in—iresD il n9y — plus de ™ode sour™e à l9intérieurF
! v— progr—mm—tion ne requiert p—s en elleEmême de ™onn—iss—n™es m—thém—tiques
poussées Y né—nmoinsD il est né™ess—ire d9—voir un ˜on sens de l— logique et d9être
5
méthodiqueF
5. Sauf dans quelques cas précis où votre application doit faire appel à des formules mathématiques,
comme c'est le cas des logiciels de cryptage.
IH
28. Chapitre 2
Ayez les bons outils !
Diculté :
A près un premier chapitre plutôt introductif, nous commençons à entrer dans le vif du
sujet. Nous allons répondre à la question suivante : De quels logiciels a-t-on besoin
pour programmer ? .
Il n'y aura rien de dicile à faire dans ce chapitre, on va prendre le temps de se familiariser
avec de nouveaux logiciels.
Protez-en ! Dans le chapitre suivant, nous commencerons à vraiment programmer et il ne
sera plus l'heure de faire la sieste !
II
29. CHAPITRE 2. AYEZ LES BONS OUTILS !
Les outils nécessaires au programmeur
elors à votre —visD de quels outils un progr—mmeur —EtEil ˜esoin c ƒi vous —vez —ttentiE
vement suivi le ™h—pitre pré™édentD vous devez en ™onn—ître —u moins un 3
†ous voyez de quoi je p—rle cF F F †r—iment p—s c
ih ouiD il s9—git du compilateurD ™e f—meux progr—mme qui permet de tr—duire votre
l—ng—ge g en l—ng—ge ˜in—ire 3
gomme je vous l9—v—is déjà un peu dit d—ns le premier ™h—pitreD il existe plusieurs
™ompil—teurs pour le l—ng—ge gF xous —llons voir que le ™hoix du ™ompil—teur ne ser—
p—s très ™ompliqué d—ns notre ™—sF
fonD de quoi d9—utre —EtEon ˜esoin c te ne v—is p—s vous l—isser deviner plus longtempsF
†oi™i le stri™t minimum pour un progr—mmeur X
! un éditeur de texte pour é™rire le ™ode sour™e du progr—mmeF in théorie un logi™iel
™omme le flo™Enotes sous ‡indowsD ou vi sous vinux f—it l9—'—ireF v9idé—lD ™9est
d9—voir un éditeur de texte intelligent qui ™olore tout seul le ™odeD ™e qui vous permet
de vous y repérer ˜ien plus f—™ilement Y
! un compilateur pour tr—nsformer @ ™ompiler A votre sour™e en ˜in—ire Y
! un débogueur pour vous —ider à tr—quer les erreurs d—ns votre progr—mme F 1
e prioriD si vous êtes —venturiersD vous pouvez vous p—sser de dé˜ogueurF w—is ˜onD je
s—is pertinemment que vous ne t—rderez p—s à en —voir ˜esoinF YEA
À p—rtir de m—inten—nt on — deux possi˜ilités X
! soit on ré™upère ™h—™un de ™es trois progr—mmes séparémentF g9est l— méthode
l— plus ™ompliquéeD m—is elle fon™tionneF ƒous vinux en p—rti™ulierD ˜on nom˜re de
progr—mmeurs préfèrent utiliser ™es trois progr—mmes sép—rémentF te ne dét—iller—i
p—s ™ette méthode i™iD je v—is plutôt vous p—rler de l— méthode simple Y
! soit on utilise un progr—mme troisEenEun @™omme les liquides v—isselleD ouiD ouiA
qui ™om˜ine éditeur de texteD ™ompil—teur et dé˜ogueurF ges progr—mmes troisEenE
un sont —ppelés IDE D ou en™ore invironnements de développement F
2
sl existe plusieurs environnements de développementF eu dé˜utD vous —urez peutEêtre
un peu de m—l à ™hoisir ™elui qui vous pl—îtF …ne ™hose est sûre en tout ™—s X vous pouvez
ré—liser n9importe quel type de progr—mmeD quel que soit l9shi que vous ™hoisissezF
Choisissez votre IDE
sl m9— sem˜lé intéress—nt de vous montrer quelques shi p—rmi les plus ™onnusF „ous
sont disponi˜les gr—tuitementF €ersonnellementD je n—vigue un peu entre tous ™euxElà
et j9utilise l9shi qui me pl—ît selon le jourF
! …n des shi que je préfère s9—ppelle Code: :BlocksF sl est gr—tuit et fon™tionne sur
l— plup—rt des systèmes d9exploit—tionF te ™onseille d9utiliser ™eluiE™i pour dé˜uter @et
1. On n'a malheureusement pas encore inventé le correcteur qui corrigerait tout seul nos erreurs.
Ceci dit, quand on sait bien se servir du débogueur, on peut facilement retrouver ses erreurs !
2. Integrated Development Environment
IP
30. CODE: :BLOCKS (WINDOWS, MAC OS, LINUX)
même pour l— suite s9il vous pl—ît ˜ien 3AF pon™tionne sous ‡indowsD w—™ et vinuxF
! ve plus ™élè˜re shi sous ‡indowsD ™9est ™elui de wi™rosoft X Visual C++F sl existe à
l— ˜—se en version p—y—nte @™hère 3AD m—is il existe heureusement une version gr—tuite
intitulée Visual C++ Express qui est vr—iment très ˜ien @il y — peu de di'éE
ren™es —ve™ l— version p—y—nteAF sl est très ™omplet et possède un puiss—nt module de
™orre™tion des erreurs @dé˜og—geAF pon™tionne sous ‡indows uniquementF
! ƒur w—™ yƒ ˆD vous pouvez utiliser ˆ™odeD génér—lement fourni sur le gh d9insE
t—ll—tion de w—™ yƒ ˆF g9est un shi très —ppré™ié p—r tous ™eux qui font de l—
progr—mm—tion sur w—™F pon™tionne sous w—™ yƒ ˆ uniquementF
Note pour les utilisateurs de Linux : il existe de nombreux IDE sous Linux, mais
les programmeurs expérimentés préfèrent parfois se passer d'IDE et compiler
à la main , ce qui est un peu plus dicile. En ce qui nous concerne nous al-
lons commencer par utiliser un IDE. Je vous conseille d'installer Code: :Blocks
si vous êtes sous Linux, pour suivre mes explications.
Quel est le meilleur de tous ces IDE ?
„ous ™es shi vous permettront de progr—mmer et de suivre le reste de ™e ™ours s—ns
pro˜lèmeF gert—ins sont plus ™omplets —u nive—u des optionsD d9—utres un peu plus
intuitifs à utiliserD m—is d—ns tous les ™—s les progr—mmes que vous ™réerez seront les
mêmes quel que soit l9shi que vous utilisezF ge ™hoix n9est don™ p—s si ™ru™i—l qu9on
pourr—it le ™roireF
„out —u long de tout ™e ™oursD j9utiliser—i gode: :flo™ksF ƒi vous voulez o˜tenir ex—™E
tement les mêmes é™r—ns que moiD surtout pour ne p—s être perdus —u dé˜utD je vous
re™omm—nde don™ de ™ommen™er p—r inst—ller gode: :flo™ksF
Code: :Blocks (Windows, Mac OS, Linux)
gode: :flo™ks est un shi li˜re et gr—tuitD disponi˜le pour Windows, Mac et LinuxF
gode: :flo™ks n9est disponi˜le pour le moment qu9en —ngl—isF gel— ne devr—it €eƒ vous
repousser à l9utiliserF groyezEmoiD nous —urons quoi qu9il en soit peu —'—ire —ux menus X
™9est le l—ng—ge g qui nous intéresseF
ƒ—™hez toutefois que qu—nd vous progr—mmerezD vous serez de toute f—çon ™onfrontés
˜ien souvent à des do™ument—tions en —ngl—isF †oilà don™ une r—ison de plus pour
s9entr—îner à utiliser ™ette l—ngueF
IQ
31. CHAPITRE 2. AYEZ LES BONS OUTILS !
Télécharger Code: :Blocks
‚endezEvous sur l— p—ge de télé™h—rgements de gode: :flo™ks F 3
£
¢ gode we˜ X VUHQQU ¡
! ƒi vous êtes sous ‡indowsD repérez l— se™tion ‡indows un peu plus ˜—s sur ™ette
p—geF „élé™h—rgez le logi™iel en pren—nt le progr—mme qui ™ontient mingw d—ns le nom
@exF X ™ode˜lo™ksEVFHPmingwEsetupFexeAF v9—utre version ét—nt s—ns ™ompil—teurD
vous —uriez eu du m—l à ™ompiler vos progr—mmes 3
! ƒi vous êtes sous vinuxD ™hoisissez le p—™k—ge qui ™orrespond à votre distri˜utionF
! in(nD sous w—™D ™hoisissez le (™hier le plus ré™ent de l— listeF
ixF X ™ode˜lo™ksEVFHPEpPEm—™FzipF
v9inst—ll—tion est très simple et r—pideF v—issez toutes les options p—r déf—ut et l—n™ez
le progr—mmeF †ous devriez voir une fenêtre simil—ire à l— (gF PFIF
yn distingue R gr—ndes se™tions d—ns l— fenêtreD numérotées sur l9im—ge X
IF la barre d'outils X elle ™omprend de nom˜reux ˜outonsD m—is seuls quelquesEuns
nous seront régulièrement utilesF t9y reviendr—i plus loin Y
PF la liste des chiers du projet X ™9est à g—u™he que s9—0™he l— liste de tous
les (™hiers sour™e de votre progr—mmeF xotez que sur ™ette ™—pture —u™un projet
n9— été ™rééD on ne voit don™ p—s en™ore de (™hiers à l9intérieur de l— listeF †ous
verrez ™ette se™tion se remplir d—ns ™inq minutes en lis—nt l— suite du ™ours Y
QF la zone principale X ™9est là que vous pourrez é™rire votre ™ode en l—ng—ge g Y
RF la zone de notication X —ussi —ppelée l— zone de l— mort D ™9est i™i que vous
verrez les erreurs de ™ompil—tion s9—0™her si votre ™ode ™omporte des erreursF
gel— —rrive très régulièrement 3
sntéressonsEnous m—inten—nt à une se™tion p—rti™ulière de l— ˜—rre d9outils @(gF PFPAF
†ous trouverez les ˜outons suiv—nts @d—ns l9ordreA X gompilerD ixé™uterD gompiler 8
ixé™uter et „out re™ompilerF ‚etenezElesD nous les utiliserons régulièrementF
†oi™i l— signi(™—tion de ™h—™une des qu—tre i™ônes que vous voyez sur l— (gF PFPD d—ns
l9ordre X
! compiler X tous les (™hiers sour™e de votre projet sont envoyés —u ™ompil—teur qui
v— se ™h—rger de ™réer un exé™ut—˜leF ƒ9il y — des erreurs D l9exé™ut—˜le ne ser— p—s
4
™réé et on vous indiquer— les erreurs en ˜—s de gode: :flo™ks Y
! exécuter X ™ette i™ône l—n™e juste le dernier exé™ut—˜le que vous —vez ™ompiléF gel—
vous permettr— don™ de tester votre progr—mme et de voir —insi ™e qu9il donneF h—ns
l9ordreD si vous —vez ˜ien suiviD on doit d9—˜ord ™ompilerD puis exé™uter pour tester
™e que ç— donneF yn peut —ussi utiliser le troisième ˜outonF F F
! compiler exécuter X p—s ˜esoin d9être un génie pour ™omprendre que ™9est
l— ™om˜in—ison des deux ˜outons pré™édentsF g9est d9—illeurs ™e ˜outon que vous
3. J'en prote pour vous rappeler que les codes web peuvent être entrés dans le formulaire du
Site du Zéro prévu à cet eet. Cela vous redirige automatiquement sur la page ou le chier qui vous
intéresse. Voir l'avant-propos pour plus d'informations à ce sujet.
4. Ce qui a de fortes chances d'arriver tôt ou tard !
IR
32. CODE: :BLOCKS (WINDOWS, MAC OS, LINUX)
Figure PFI ! gode: :flo™ks
Figure PFP ! ves prin™ip—ux ˜outons de l— ˜—rre d9outils
IS
33. CHAPITRE 2. AYEZ LES BONS OUTILS !
utiliserez le plus souventF xotez que s9il y — des erreurs pend—nt l— ™ompil—tion
@pend—nt l— génér—tion de l9exé™ut—˜leAD le progr—mme ne ser— p—s exé™utéF À l—
pl—™eD vous —urez droit à une ˜eeelle liste d9erreurs à ™orriger 3
! tout reconstruire X qu—nd vous f—ites ™ompilerD gode: :flo™ks ne re™ompile en f—it
que les (™hiers que vous —vez modi(és et non les —utresF €—rfois E je dis ˜ien p—rfois E
vous —urez ˜esoin de dem—nder à gode: :flo™ks de vous re™ompiler tous les (™hiersF
yn verr— plus t—rd qu—nd on — ˜esoin de ™e ˜outonD et vous verrez plus en dét—ils
le fon™tionnement de l— ™ompil—tion d—ns un ™h—pitre futurF €our l9inst—ntD on se
™ontente de s—voir le minimum né™ess—ire pour ne p—s tout mél—ngerF ge ˜outon ne
nous ser— don™ p—s utile de suiteF
Je vous conseille d'utiliser les raccourcis plutôt que de cliquer sur les boutons,
parce que c'est quelque chose qu'on fait vraiment très très souvent. Retenez
en particulier qu'il faut taper sur pW pour faire gompiler 8 ixé™uter.
Créer un nouveau projet
€our ™réer un nouve—u projetD ™9est très simple X —llez d—ns le menu pile G xew G
€roje™tF h—ns l— fenêtre qui s9ouvre @(gF PFQAD ™hoisissez gonsole —ppli™—tionF
Figure PFQ ! xouve—u projet
IT
34. CODE: :BLOCKS (WINDOWS, MAC OS, LINUX)
Comme vous pouvez le voir, Code: :Blocks propose de réaliser pas mal de types
de programmes diérents qui utilisent des bibliothèques connues comme la
SDL (2D), OpenGL (3D), Qt et wxWidgets (fenêtres), etc. Pour l'instant,
ces icônes servent plutôt à faire joli car les bibliothèques ne sont pas installées
sur votre ordinateur, vous ne pourrez donc pas les faire marcher. Nous nous
intéresserons à ces autres types de programmes bien plus tard. En attendant
il faudra vous contenter de Console , car vous n'avez pas encore le niveau
nécessaire pour créer les autres types de programmes.
gliquez sur qo pour ™réer le projetF …n —ssist—nt s9ouvreF p—ites xextD ™ette première
p—ge ne serv—nt à rienF
yn vous dem—nde ensuite si vous —llez f—ire du g ou du gCC @(gF PFRA X répondez
g F
Figure PFR ! ghoix du l—ng—ge
yn vous dem—nde le nom de votre projet @(gF PFSA et d—ns quel dossier les (™hiers
sour™e seront enregistrésF
in(nD l— dernière p—ge @(gF PFTA vous permet de ™hoisir de quelle f—çon le progr—mme
doit être ™ompiléF †ous pouvez l—isser les options p—r déf—utD ç— n9—ur— p—s d9in™iden™e
sur ™e que nous —llons f—ire d—ns l9immédi—t @veillez à ™e que l— ™—se he˜ug ou ‚ele—se
—u moins soit ™o™héeAF
gliquez sur pinishD ™9est ˜on 3 gode: :flo™ks vous ™réer— un premier projet —ve™ déjà
un tout petit peu de ™ode sour™e ded—nsF
h—ns le ™—dre de g—u™he €roje™ts D développez l9—r˜ores™en™e en ™liqu—nt sur le petit
C pour —0™her l— liste des (™hiers du projetF †ous devriez —voir —u moins un m—inF™
IU
35. CHAPITRE 2. AYEZ LES BONS OUTILS !
Figure PFS ! xom et empl—™ement du projet
Figure PFT ! wode de ™ompil—tion
IV
36. VISUAL C++ (WINDOWS SEULEMENT)
que vous pourrez ouvrir en dou˜leE™liqu—nt dessusF †ous voilà p—rés 3
Visual C++ (Windows seulement)
uelques petits r—ppels sur †isu—l gCC X
! ™9est l9shi de wi™rosoft Y
! il est à l— ˜—se p—y—ntD m—is wi™rosoft — sorti une version gr—tuite intitulée †isu—l
gCC ixpress Y
! il permet de progr—mmer en g et en gCC @et non p—s seulement en gCC ™omme
son nom le l—isse entendreAF
xous —llons ˜ien entendu voir i™i l— version gr—tuiteD †isu—l gCC ixpress @(gF PFUAF 5
Figure PFU ! †isu—l gCC ixpress
Quelles sont les diérences avec le vrai Visual ?
5. Attention, il n'est compatible avec Windows 7 qu'à partir de la version 2010.
IW
37. CHAPITRE 2. AYEZ LES BONS OUTILS !
sl n9y — p—s l9éditeur de ressour™es qui vous permet de dessiner des im—gesD des i™ônesD
ou des fenêtresF w—is ˜onD ç—D entre nousD on s9en moque ˜ien p—r™e qu9on n9—ur— p—s
˜esoin de s9en servir d—ns ™e ™oursF ge ne sont p—s des fon™tionn—lités indispens—˜lesD
˜ien —u ™ontr—ireF
€our télé™h—rger †isu—l gCC ixpressD rendezEvous sur le site we˜ de †isu—l gCCF
£
¢gode we˜ X QQQUQQ ¡
ƒéle™tionnez ensuite †isu—l gCC ixpress pr—nç—is un peu plus ˜—s sur l— p—geF
†isu—l gCC ixpress est en fr—nç—is et tot—lement gr—tuitF ge n9est don™ p—s une version
d9ess—i limitée d—ns le tempsF g9est une ™h—n™e d9—voir un shi —ussi puiss—nt que ™elui
de wi™rosoft disponi˜le gr—tuitementD ne l— l—issez don™ p—s p—sserF
Installation
v9inst—ll—tion devr—it norm—lement se p—sser s—ns en™om˜reF ve progr—mme d9inst—lE
l—tion v— télé™h—rger l— dernière version de †isu—l sur snternetF te vous ™onseille de
l—isser les options p—r déf—utF
À l— (nD on vous dit qu9il f—ut vous enregistrer d—ns les QH joursF €—s de p—niqueD ™9est
gr—tuit et r—pide m—is il f—ut le f—ireF
gliquez sur le lien qui vous est donné X vous —rrivez sur le site de wi™rosoftF gonne™tezE
vous —ve™ votre ™ompte ‡indows vive sh @équiv—lent du ™ompte rotm—il ou wƒxA ou
™réezEen un si vous n9en —vez p—sD puis répondez —u petit questionn—ireF
yn vous donner— à l— (n une ™lé d9enregistrementF †ous devrez re™opier ™ette ™lé d—ns
le menu c G sns™rire le produitF
Créer un nouveau projet
€our ™réer un nouve—u projet sous †isu—lD —llez d—ns le menu pi™hier G xouve—u G
€rojetF ƒéle™tionnez ‡inQP d—ns l— ™olonne de g—u™heD puis eppli™—tion ™onsole
‡inQP à droite @(gF PFVAF intrez un nom pour votre projetD p—r exemple testF
†—lidezF …ne nouvelle fenêtre s9ouvre @(gF PFWAF gette fenêtre ne sert p—s à gr—ndE™hoseF
€—r ™ontreD ™liquez sur €—r—mètres de l9—ppli™—tion d—ns l— ™olonne de g—u™heF
†eillez à ™e que €rojet vide soit ™o™hé ™omme sur l— (gF PFIHF gliquez en(n sur
„erminerF
Ajouter un nouveau chier source
†otre projet est pour l9inst—nt ˜ien videF p—ites un ™li™ droit sur le dossier pi™hiers
sour™e situé sur votre g—u™heD puis —llez d—ns ejouter G xouvel élément @(gF PFIIAF
…ne fenêtre s9ouvreF ƒéle™tionnez pi™hier gCC @F™ppA 6 F intrez un nom pour votre
6. Je sais, on ne fait pas de C++ mais ça n'a pas d'importance ici.
PH
38. VISUAL C++ (WINDOWS SEULEMENT)
Figure PFV ! gré—tion de projet †isu—l gCC ixpress
Figure PFW ! essist—nt ™ré—tion de projet †isu—l gCC ixpress
PI
39. CHAPITRE 2. AYEZ LES BONS OUTILS !
Figure PFIH ! gon(gur—tion du projet
Figure PFII ! ejout d9un (™hier sour™e
PP
40. VISUAL C++ (WINDOWS SEULEMENT)
(™hier X m—inF™D ™omme sur l— (gF PFIPF
Figure PFIP ! ghoix du type et du nom du (™hier sour™e
gliquez sur ejouterF g9est ˜onD vous —llez pouvoir ™ommen™er à é™rire du ™ode 3
La fenêtre principale de Visual
†oyons ensem˜le le ™ontenu de l— fenêtre prin™ip—le de †isu—l gCC ixpress @(gF PFIQAF
gette fenêtre ressem˜le en tous points à ™elle de gode: :flo™ksF yn v— r—pidement
@reAvoir qu—nd même ™e que signi(ent ™h—™une des p—rtiesF
IF v— ˜—rre d9outils X tout ™e qu9il y — de plus st—nd—rdF yuvrirD enregistrerD enreE
gistrer toutD ™ouperD ™opierD ™ollerD et™F €—r déf—utD il sem˜le qu9il n9y —it p—s de
˜outon de ˜—rre d9outils pour ™ompilerF †ous pouvez les r—jouter en f—is—nt un ™li™
droit sur l— ˜—rre d9outilsD puis en ™hoisiss—nt hé˜oguer et qénérer d—ns l— listeF
„outes ™es i™ônes de ™ompil—tion ont leur équiv—lent d—ns les menus qénérer et
hé˜oguerF ƒi vous f—ites qénérerD ™el— ™réer— l9exé™ut—˜le @ç— signi(e ™ompiler
pour †isu—lAF ƒi vous f—ites hé˜oguer G ixé™uterD on devr—it vous proposer de
™ompiler —v—nt d9exé™uter le progr—mmeF pU permet de générer le projetD et pS
de l9exé™uterF
PF h—ns ™ette zone très import—nte vous voyez norm—lement l— liste des (™hiers de
votre projetF gliquez sur l9onglet ixplor—teur de solutions en ˜—sD si ™e n9est
déjà f—itF †ous devriez voir que †isu—l ™rée déjà des dossiers pour sép—rer les
PQ
41. CHAPITRE 2. AYEZ LES BONS OUTILS !
Figure PFIQ ! penêtre prin™ip—le de †isu—l gCC ixpress
PR
42. XCODE (MAC OS SEULEMENT)
di'érents types de (™hiers de votre projet @sour™esD enEtête et ressour™esAF xous
verrons un peu plus t—rd quels sont les di'érents types de (™hiers qui ™onstituent
un projetF
QF v— p—rtie prin™ip—leF g9est là qu9on modi(e les (™hiers sour™eF
RF g9est là en™ore l— zone de l— mort D ™elle où on voit —pp—r—ître toutes les
erreurs de ™ompil—tionF g9est d—ns le ˜—s de l9é™r—n —ussi que †isu—l —0™he les
inform—tions de dé˜og—ge qu—nd vous ess—yez de ™orriger un progr—mme ˜oguéF
†oilàD on — f—it le tour de †isu—l gCCF †ous pouvez —ller jeter un ÷il d—ns les options
@yutils G yptionsA si ç— vous ™h—nteD m—is n9y p—ssez p—s trois heuresF sl f—ut dire
qu9il y — tellement de ™—ses à ™o™her de p—rtout qu9on ne s—it plus trop où donner de
l— têteF
Xcode (Mac OS seulement)
sl existe plusieurs shi ™omp—ti˜les w—™F sl y — gode: :flo™ks ˜ien sûrD m—is ™e n9est
p—s le seulF te v—is vous présenter i™i l9shi le plus ™élè˜re sous w—™ X ˆ™odeF
gette se™tion dédiée à ˆ™ode est inspirée d9un tutoriel p—ru sur vogi™ielw—™F™omD —ve™
l9—im—˜le —utoris—tion de son —uteur €sy™horIQF
£
¢gode we˜ X TRVSVR ¡
Xcode, où es-tu ?
„ous les utilis—teurs de w—™ yƒ ne sont p—s des progr—mmeursF epple l9— ˜ien ™ompris et
n9inst—lle p—s p—r déf—ut d9shi —ve™ w—™ yƒF reureusementD pour ™eux qui voudr—ient
progr—mmerD tout est prévuF in e'etD ˆ™ode est présent sur le gh d9inst—ll—tion de
w—™ yƒ @logo (gF PFIRAF
Figure PFIR ! vogo de ˆ™ode
snsérez don™ le gh d—ns le le™teur et inst—llezEleF sl se trouve d—ns les heveloper
„ools F
€—r —illeursD je vous ™onseille de mettre en f—voris l— p—ge dédiée —ux développeurs sur
le site d9eppleF †ous y trouverez une foule d9inform—tions utiles pour le développement
sous w—™F †ous pourrez not—mment y télé™h—rger plusieurs logi™iels pour développerF
x9hésitez p—s à vous ins™rire à l9ehg @ epple hevelopment gonne™tion AD ™9est
gr—tuit et vous serez —insi tenus —u ™our—nt des nouve—utésF
£
¢gode we˜ X PTRUHV ¡
PS
43. CHAPITRE 2. AYEZ LES BONS OUTILS !
Lancement de Xcode
vorsque vous l—n™ez ˆ™ode pour l— première foisD vous serez pro˜—˜lement surprisF it
il y — de quoiF gontr—irement à l— plup—rt des logi™iels w—™D il n9y — p—s de fenêtre de
˜ienvenueF in f—itD l— première foisD on trouve ç— un peu videF F F et pourt—ntD ™9est un
logi™iel très puiss—nt 3
Xcode est l'IDE le plus utilisé sous Mac, créé par Apple lui-même. Les plus
grands logiciels, comme iPhoto et Keynote, ont été codés à l'aide de Xcode.
C'est réellement l'outil de développement de choix quand on a un Mac !
v— première ™hose à f—ire est de ™réer un nouve—u projetD —lors ™ommençons p—r ç—F
ellez d—ns le menu pile G xew €roje™tF …ne fenêtre de séle™tion de projet s9ouvre
@(gF PFISAF
Figure PFIS ! e™™ueil de ˆ™ode
ellez d—ns l— se™tion eppli™—tion et séle™tionnez gomm—nd vine „ool F 7
gliquez ensuite sur xextF yn vous dem—nder— où vous voulez enregistrer votre projet
@un projet doit toujours être enregistré dès le dé˜utA —insi que son nomF €l—™ezEle d—ns
le dossier que vous voulezF
7. Si vous avez une version plus ancienne du logiciel, il vous faudra probablement aller dans la
section Command line utility et sélectionner Standard tool.
PT
44. XCODE (MAC OS SEULEMENT)
…ne fois ™rééD votre projet se présenter— sous l— forme d9un dossier ™onten—nt de mulE
tiples (™hiers d—ns le pinderF ve (™hier à l9extension Fx™odeproj ™orrespond —u (™hier
du projetF g9est lui que vous devrez séle™tionner l— pro™h—ine fois si vous souh—itez
réouvrir votre projetF
La fenêtre de développement
h—ns ˆ™odeD si vous séle™tionnez m—inF™D vous devriez —voir une fenêtre simil—ire à l—
(gF PFITF
Figure PFIT ! ˆ™ode en —™tion
v— fenêtre est dé™oupée en qu—tre p—rtiesD i™i numérotées de I à RF
IF v— première p—rtie est l— ˜—rre de ˜outons tout en h—utF †ous pouvez l— ™on(gurer
™omme ˜on vous sem˜leD ™h—nger les ˜outonsD et™F ves plus import—nts d9entre
eux sont représentés sur les (gF PFIU et PFIVF ves trois premiers ˜outons vous
permettent de n—viguer entreD d—ns l9ordre X
! €roje™t X là où vous voyez vos (™hiers et où vous les modi(ez Y
! fuild X vous y voyez le résult—t de l— ™ompil—tion de votre progr—mmeD et les
erreurs s9il y en — eu Y
! he˜ug X l— fenêtre de dé˜og—geD où vous pouvez exé™uter votre progr—mme ligne
p—r ligne pour trouver et ™omprendre ses erreursF
PU
45. CHAPITRE 2. AYEZ LES BONS OUTILS !
ves deux ˜outons de l— (gF PFIV signi(ent X
! fuild X ™ompile votre projetD don™ ™rée un exé™ut—˜le à p—rtir de vos sour™es Y
! fuild —nd qo @le ˜outon que vous utiliserez le plus souventA X ™ompile votre
projet et le l—n™e pour le testerF
PF v— p—rtie de g—u™he ™orrespond à l9—r˜ores™en™e de votre projetF gert—ines se™E
tions regroupent les erreursD les —vertissementsD et™F ˆ™ode vous pl—™e —utom—tiE
quement d—ns l— se™tion l— plus utileD ™elle qui porte le nom de votre projetF
QF v— troisième p—rtie ™h—nge en fon™tion de ™e que vous —vez séle™tionné d—ns l—
p—rtie de g—u™heF s™iD on — l— liste des (™hiers de notre projet X
! m—inF™ X ™9est le (™hier sour™e de votre progr—mme @il peut y en —voir plusieurs
d—ns les gros progr—mmesA Y
! Mon_Premier_Programme X ™9est votre progr—mme une fois ™ompiléD don™
l9exé™ut—˜le que vous pouvez distri˜uerF ƒi le (™hier est en rougeD ™9est qu9il
n9existe p—s en™ore @vous n9—vez don™ p—s en™ore ™ompilé votre progr—mmeD
m—is ˆ™ode le référen™e qu—nd mêmeA Y
! Mon_Premier_Programme.l X ™9est votre progr—mme présenté en l—ng—ge —sE
sem˜leurD un l—ng—ge très pro™he du pro™esseurF gel— ne nous intéresser— p—sD
m—is si vous voulez prendre peur n9hésitez p—s à y jeter un ÷ilF
RF in(nD l— qu—trième p—rtieD l— plus intéress—nte X ™9est ™elle d—ns l—quelle vous
pourrez é™rire votre ™ode sour™e en l—ng—ge gF €—r déf—utD ˆ™ode met juste un
petit ™ode d9exemple qui —0™he relloD world 3 à l9é™r—nF
Figure PFIU ! v— ˜—rre d9outils @n—vig—tionA
Figure PFIV ! v— ˜—rre d9outils @™ompil—tionA
Lancement du programme
€our tester ™e premier progr—mmeD ™liquez sur le ˜outon fuild —nd qo de l— ˜—rre
d9outilsF †otre é™r—n devr—it ™h—nger et ressem˜ler à l— (gF PFIWF
IF ge sont les ˜outons qui permettent de ™h—nger de p—geD ™omme on l9— vu plus
tôtF ƒéle™tionnez €roje™t si vous souh—itez revenir à l— fenêtre pré™édenteF
PF g9est l— ™i˜leD le (™hier qui réunit les sour™es ™ompilées de votre progr—mmeF
QF v9exé™ut—˜le de votre —ppli™—tionF
RF ve mode de ™ompil—tionF sl peut être X
PV
46. XCODE (MAC OS SEULEMENT)
Figure PFIW ! v—n™ement du progr—mme sous ˆ™ode
! he˜ug X l9exé™ut—˜le reste d—ns ˆ™ode et ™ontient des inform—tions de dé˜og—ge
pour vous —ider à résoudre vos erreurs éventuellesF g9est ™e que vous utiliserez
lorsque vous développerez votre —ppli™—tion Y
! ‚ele—se X à n9utiliser qu9à l— (nF ˆ™ode génère —lors l9—ppli™—tion dé(nitiveD
f—ite pour être p—rt—gée et utilisée p—r d9—utres ordin—teursF
SF ges deux ˜outons vous permettent de dém—rrer l9—ppli™—tion dire™tement @‚unA
ou de l— dém—rrer en mode he˜ug pour exé™uter le progr—mme instru™tion
p—r instru™tionD —(n de résoudre les erreursF x9utilisez he˜ug que lorsque vous
—vez des erreurs d—ns votre progr—mmeF
TF v— liste des (™hiers de votre projetF
UF v9éditeur du ™ode sour™eD ™omme tout à l9heureF
VF v— ™onsole de ˆ™odeF g9est là que vous verrez votre progr—mme s9exé™uterF
WF ves ˜outons fuild et ‚un vous permettent de p—sser du mode gompil—tion
—u mode ixé™ution F in ™l—irD —ve™ le premier vous pouvez voir ™e qui s9est
p—ssé pend—nt l— ™ompil—tionD t—ndis que d—ns le se™ond vous pouvez voir ™e que
votre —ppli™—tion — —0™hé une fois qu9elle — été dém—rréeF
Ajouter un nouveau chier
eu dé˜utD vous n9—urez qu9un seul (™hier sour™e @m—inF™AF gepend—ntD plus loin d—ns le
™oursD je vous dem—nder—i de ™réer de nouve—ux (™hiers sour™e lorsque nos progr—mmes
deviendront plus grosF
PW
47. CHAPITRE 2. AYEZ LES BONS OUTILS !
€our ™réer un nouve—u (™hier sour™e sous ˆ™odeD rendezEvous d—ns le menu pile G
xew pileF …n —ssist—nt vous dem—nde quel type de (™hier vous voulez ™réerF ‚endezE
vous d—ns l— se™tion fƒh et séle™tionnez g pile @pi™hier gAF †ous devriez —voir sous
les yeux l— (gF PFPHF
Figure PFPH ! ejouter un (™hier sous ˆ™ode
†ous devrez donner un nom à votre nouve—u (™hier @™e que vous voulezAF v9extensionD
elleD doit rester F™F €—rfois E nous le verrons plus loin ED il f—udr— —ussi ™réer des (™hiers
Fh @m—is on en rep—rler—AF v— ™—se à ™o™her elso ™re—te fi™hierFh est là pour ç—F
€our le momentD elle ne nous intéresse p—sF
gliquez ensuite sur pinishF g9est f—it 3 †otre (™hier est ™réé et —jouté à votre projetD
en plus de m—inF™F
†ous êtes m—inten—nt prêts à progr—mmer sous w—™ 3
En résumé
! ves progr—mmeurs ont ˜esoin de trois outils X un éditeur de texteD un ™ompil—teur et
un dé˜ogueurF
! sl est possi˜le d9inst—ller ™es outils sép—rémentD m—is il est ™our—nt —ujourd9hui d9—voir
un p—™k—ge troisEenEun que l9on —ppelle IDED l9environnement de développementF
! gode: :flo™ksD †isu—l gCC et ˆ™ode ™omptent p—rmi les shi les plus ™élè˜resF
QH
48. Chapitre 3
Votre premier programme
Diculté :
O n a préparé le terrain jusqu'ici, maintenant il serait bien de commencer à programmer
un peu, qu'en dites-vous ? C'est justement l'objectif de ce chapitre ! À la n de celui-
ci, vous aurez réussi à créer votre premier programme !
Bon d'accord, ce programme sera en noir et blanc et ne saura que vous dire bonjour, il
semblera donc complètement inutile mais ce sera votre premier ; je peux vous assurer que
vous en serez ers.
QI
49. CHAPITRE 3. VOTRE PREMIER PROGRAMME
Console ou fenêtre ?
xous —vons r—pidement p—rlé de l— notion de progr—mme ™onsole et de proE
gr—mme fenêtre d—ns le ™h—pitre pré™édentF xotre shi nous dem—nd—it quel type de
progr—mme nous voulions ™réer et je vous —v—is dit de répondre ™onsoleF
sl f—ut s—voir qu9en f—it il existe deux types de progr—mmesD p—s plus X
! les progr—mmes —ve™ fenêtres Y
! les progr—mmes en ™onsoleF
Les programmes en fenêtres
ge sont les progr—mmes que vous ™onn—issezF v— (gF QFI est un exemple de progr—mme
en fenêtres que vous ™onn—issez sûrementF
Figure QFI ! ve progr—mme €—int
Ç— don™D ™9est un progr—mme —ve™ des fenêtresF te suppose que vous —imeriez ˜ien ™réer
™e type de progr—mmesD hmm c ih ˜ienF F F vous n9—llez p—s pouvoir de suite 3
in e'etD ™réer des progr—mmes —ve™ des fenêtres en g ™9est possi˜leD m—isF F F qu—nd on
dé˜uteD ™9est ˜ien trop ™ompliqué 3 €our dé˜uterD il v—ut mieux ™ommen™er p—r ™réer
des progr—mmes en ™onsoleF
Mais au fait, à quoi ça ressemble un programme en console ?
QP
50. CONSOLE OU FENÊTRE ?
Les programmes en console
ves progr—mmes ™onsole ont été les premiers à —pp—r—îtreF À ™ette époqueD l9ordin—teur
ne gér—it que le noir et ˜l—n™ et il n9ét—it p—s —ssez puiss—nt pour ™réer des fenêtres
™omme on le f—it —ujourd9huiF
fien entenduD le temps — p—ssé depuisF ‡indows — rendu l9ordin—teur gr—nd pu˜li™
prin™ip—lement grâ™e à s— simpli™ité et —u f—it qu9il n9utilis—it que des fenêtresF ‡indows
est devenu tellement popul—ire qu9—ujourd9hui ˜e—u™oup de monde — ou˜lié ™e qu9ét—it
l— ™onsole 3
1
t9—i une gr—nde nouvelle 3 La console n'est pas morte 3 in e'etD vinux — remis —u
goût du jour l9utilis—tion de l— ™onsoleF v— (gF QFP est une ™—pture d9é™r—n d9une ™onsole
sous vinuxF
Figure QFP ! …n exemple de ™onsoleD i™i sous vinux
frrrF F F „erri(—ntD hein c †oilàD vous —vez m—inten—nt une petite idée de ™e à quoi
ressem˜le une ™onsoleF
ge™i ditD plusieurs rem—rques X
! —ujourd9hui on s—it —0™her de l— ™ouleurD tout n9est don™ p—s en noir et ˜l—n™ ™omme
on pourr—it le ™roire Y
! l— ™onsole est —ssez peu —™™ueill—nte pour un dé˜ut—nt Y
! ™9est pourt—nt un outil puiss—nt qu—nd on s—it le m—îtriserF
gomme je vous l9—i dit plus h—utD ™réer des progr—mmes en mode ™onsole ™omme
i™iD ™9est très f—™ile et idé—l pour dé˜uter @™e qui n9est p—s le ™—s des progr—mmes en
mode fenêtre AF
xotez que l— ™onsole — évolué X elle peut —0™her des ™ouleursD et rien ne vous empê™he
de mettre une im—ge de fondF
1. Oui vous là, ne regardez pas derrière vous, je sais que vous vous demandez ce que c'est.
QQ
51. CHAPITRE 3. VOTRE PREMIER PROGRAMME
Et sous Windows ? Il n'y a pas de console ?
ƒiD m—is elle est un peuF F F ™—™hée on v— direF †ous pouvez —voir une ™onsole en
f—is—nt hém—rrer G e™™essoires G snvite de ™omm—ndesD ou ˜ien en™ore en f—is—nt
hém—rrer G ixé™uterFFFD et en t—p—nt ensuite ™mdF
v— (gF QFQ représente l— m———gni(que ™onsole de ‡indowsF
Figure QFQ ! v— ™onsole de ‡indows
ƒi vous êtes sous ‡indowsD s—™hez don™ que ™9est d—ns une fenêtre qui ressem˜le à
ç— que nous ferons nos premiers progr—mmesF ƒi j9—i ™hoisi de ™ommen™er p—r des
petits progr—mmes en ™onsoleD ™e n9est p—s pour vous ennuyerD ˜ien —u ™ontr—ire 3 in
™ommenç—nt p—r f—ire des progr—mmes en ™onsoleD vous —pprendrez les ˜—ses né™ess—ires
pour pouvoir ensuite ™réer des fenêtresF
Soyez donc rassurés X dès que nous —urons le nive—u pour ™réer des fenêtresD nous
verrons ™omment en f—ireF
Un minimum de code
€our n9importe quel progr—mmeD il f—udr— t—per un minimum de ™odeF ge ™ode ne fer—
rien de p—rti™ulier m—is il est indispens—˜leF g9est ™e ™ode minimum que nous —llons
dé™ouvrir m—inten—ntF sl devr—it servir de ˜—se pour l— plup—rt de vos progr—mmes en
l—ng—ge gF
QR
52. UN MINIMUM DE CODE
Demandez le code minimal à votre IDE
ƒelon l9shi que vous —vez ™hoisi d—ns le ™h—pitre pré™édentD l— méthode pour ™réer
un nouve—u projet n9est p—s l— mêmeF ‚eportezEvous à ™e ™h—pitre si vous —vez ou˜lié
™omment f—ireF
€our r—ppelD sous gode: :flo™ks @qui est l9shi que je v—is utiliser tout —u long de
™e ™oursAD il f—ut —ller d—ns le menu pile G xew G €roje™tD puis ™hoisir gonsole
eppli™—tion et séle™tionner le l—ng—ge gF
gode: :flo™ks — don™ généré le minimum de ™ode en l—ng—ge g dont on — ˜esoinF ve
voi™i X
5in™lude `stdioFhb
5in™lude `stdli˜Fhb
int m—in@A
{
printf@4rello world3’n4AY
return HY
}
Notez qu'il y a une ligne vide à la n de ce code. Il est nécessaire de taper sur
la touche Entrée après la dernière accolade. Chaque chier en C devrait
normalement se terminer par une ligne vide. Si vous ne le faites pas, ce
n'est pas grave, mais le compilateur risque de vous acher un avertissement
(warning ).
xotez que l— ligne X
int m—in@A
F F F peut —ussi s9é™rire X
int m—in@int —rg™D ™h—r B—rgv‘“A
ves deux é™ritures sont possi˜lesD m—is l— se™onde @l— ™ompliquéeA est l— plus ™our—nteF
t9—ur—i don™ tend—n™e à utiliser plutôt ™ette dernière d—ns les pro™h—ins ™h—pitresF in
™e qui nous ™on™erneD que l9on utilise l9une ou l9—utre des é™rituresD ç— ne ™h—nger— rien
pour nousF snutile don™ de s9y —tt—rderD surtout que nous n9—vons p—s en™ore le nive—u
pour —n—lyser ™e que ç— signi(eF
ƒi vous êtes sous un —utre shiD ™opiez ™e ™ode sour™e d—ns votre (™hier m—inF™ pour
que nous —yons le même ™ode vous et moiF
inregistrez le toutF yui je s—isD on n9— en™ore rien f—itD m—is enregistrez qu—nd mêmeD
™9est une ˜onne h—˜itude à prendreF xorm—lementD vous n9—vez qu9un seul (™hier sour™e
—ppelé m—inF™ @le resteD ™e sont des (™hiers de projet générés p—r votre shiAF
QS
53. CHAPITRE 3. VOTRE PREMIER PROGRAMME
Analysons le code minimal
ge ™ode minim—l qu9on vient de voir n9est rien d9—utre que du ™hinois pour vousD
j9im—gineF it pourt—ntD moi je vois là un progr—mme ™onsole qui —0™he un mess—ge à
l9é™r—nF sl v— f—lloir —pprendre à lire tout ç— 3
gommençons p—r les deux premières lignes qui se ressem˜lent ˜e—u™oup X
5in™lude `stdioFhb
5in™lude `stdli˜Fhb
ge sont des lignes spé™i—les que l9on ne voit qu9en h—ut des (™hiers sour™eF ges lignes sont
f—™ilement re™onn—iss—˜les ™—r elles ™ommen™ent p—r un dièse 5F ges lignes spé™i—lesD
on les —ppelle directives de préprocesseur @un nom ™ompliquéD n9estE™e p—s cAF ge
sont des lignes qui seront lues p—r un progr—mme —ppelé prépro™esseurD un progr—mme
qui se l—n™e —u dé˜ut de l— ™ompil—tionF
yui X ™omme je vous l9—i dit plus tôtD ™e qu9on — vu —u dé˜ut n9ét—it qu9un s™hém— très
simpli(é de l— ™ompil—tionF sl se p—sse en ré—lité plusieurs ™hoses pend—nt une ™ompil—E
tionF yn les dét—iller— plus t—rd X pour le momentD vous —vez juste ˜esoin d9insérer ™es
lignes en h—ut de ™h—™un de vos (™hiersF
Oui mais elles signient quoi, ces lignes ? J'aimerais bien savoir quand même !
ve mot in™lude en —ngl—is signi(e in™lure en fr—nç—isF ges lignes dem—ndent d9inE
™lure des (™hiers —u projetD ™9estEàEdire d9—jouter des (™hiers pour l— ™ompil—tionF sl y
— deux lignesD don™ deux (™hiers in™lusF ges (™hiers s9—ppellent stdioFh et stdli˜FhF
ges (™hiers existent déjàD des (™hiers sour™e tout prêtsF yn verr— plus t—rd qu9on les
—ppelle des bibliothèques @™ert—ins p—rlent —ussi de librairies m—is ™9est un —ngliE
™ismeAF in grosD ™es (™hiers ™ontiennent du ™ode tout prêt qui permet d9—0™her du
texte à l9é™r—nF
ƒ—ns ™es (™hiersD é™rire du texte à l9é™r—n —ur—it été mission impossi˜leF v9ordin—teur à
l— ˜—se ne s—it rien f—ireD il f—ut tout lui direF †ous voyez l— g—lère d—ns l—quelle on est 3
frefD en résumé les deux premières lignes in™luent les ˜i˜liothèques qui vont nous
permettre @entre —utresA d9—0™her du texte à l9é™r—n —ssez f—™ilement F
€—ssons à l— suiteF v— suiteD ™9est tout ç— X
int m—in@A
{
printf@4rello world3’n4AY
return HY
}
ge que vous voyez làD ™9est ™e qu9on —ppelle une fonctionF …n progr—mme en l—ng—ge
g est ™onstitué de fon™tionsD il ne ™ontient qu—siment que ç—F €our le momentD notre
progr—mme ne ™ontient don™ qu9une seule fon™tionF
QT
54. UN MINIMUM DE CODE
…ne fon™tion permet grosso modo de r—ssem˜ler plusieurs ™omm—ndes à l9ordin—teurF
‚egroupées d—ns une fon™tionD les ™omm—ndes permettent de f—ire quelque ™hose de
pré™isF €—r exempleD on peut ™réer une fon™tion ouvrir•fi™hier qui ™ontiendr— une
suite d9instru™tions pour l9ordin—teur lui expliqu—nt ™omment ouvrir un (™hierF v9—v—nE
t—geD ™9est qu9une fois l— fon™tion é™riteD vous n9—urez plus qu9à dire ouvrir•fi™hierD
et votre ordin—teur s—ur— ™omment f—ire s—ns que vous —yez à tout répéter 3
ƒ—ns rentrer d—ns les dét—ils de l— ™onstru™tion d9une fon™tion @il est trop tôtD on rep—rE
ler— des fon™tions plus t—rdAD —n—lysons qu—nd même ses gr—ndes p—rtiesF v— première
ligne ™ontient le nom de l— fon™tionD ™9est le deuxième motF yui X notre fon™tion s9—pE
pelle don™ m—inF g9est un nom de fon™tion p—rti™ulier qui signi(e prin™ip—l F m—in
est l— fon™tion prin™ip—le de votre progr—mmeD c'est toujours par la fonction m—in
que le programme commenceF
…ne fon™tion — un dé˜ut et une (nD délimités p—r des —™™ol—des { et }F „oute l— fon™tion
m—in se trouve don™ entre ™es —™™ol—desF ƒi vous —vez ˜ien suiviD notre fon™tion m—in
™ontient deux lignes X
printf@4rello world3’n4AY
return HY
ges lignes à l9intérieur d9une fon™tion ont un nomF yn les —ppelle instructions @ç—
en f—it du vo™—˜ul—ire qu9il v— f—lloir retenirAF gh—que instru™tion est une ™omm—nde
à l9ordin—teurF gh—™une de ™es lignes dem—nde à l9ordin—teur de f—ire quelque ™hose de
pré™isF
gomme je vous l9—i dit un peu plus h—utD en regroup—nt intelligemment @™9est le tr—v—il
du progr—mmeurA les instru™tions d—ns des fon™tionsD on ™rée si on veut des bouts de
programmes tout prêts F in utilis—nt les ˜onnes instru™tionsD rien ne nous empê™her—it
don™ de ™réer une fon™tion ouvrir•fi™hier ™omme je vous l9—i expliqué tout à l9heureD
ou en™ore une fon™tion —v—n™er•personn—ge d—ns un jeu vidéoD p—r exempleF
…n progr—mmeD ™e n9est —u ˜out du ™ompte rien d9—utre qu9une série d9instru™tions X
f—is ™e™i D f—is ™el— F †ous donnez des ordres à votre ordin—teur et il les exé™ute F 2
Très important : toute instruction se termine obligatoirement par un point-
virgule Y . C'est d'ailleurs comme ça qu'on reconnaît ce qui est une ins-
truction et ce qui n'en est pas une. Si vous oubliez de mettre un point-virgule
à la n d'une instruction, votre programme ne compilera pas !
v— première ligne X printf@4rello world3’n4AY dem—nde à —0™her le mess—ge rello
world 3 à l9é™r—nF u—nd votre progr—mme —rriver— à ™ette ligneD il v— don™ —0™her
un mess—ge à l9é™r—nD puis p—sser à l9instru™tion suiv—nteF
€—ssons à l9instru™tion suiv—nte justement X return HY ih ˜ien ç—D en grosD ç— veut dire
que ™9est (ni @eh ouiD déjàAF gette ligne indique qu9on —rrive à l— (n de notre fon™tion
m—in et dem—nde de renvoyer l— v—leur HF
2. Du moins si vous l'avez bien dressé.
QU