algorithme et programmation (pour apprendre la programmation informatique).pdf
Post on 28-Nov-2015
56 views
Embed Size (px)
TRANSCRIPT
2008
Christophe Darmangeat
Universit Paris 7
http://www.pise.info/algo/index.htm
28/12/2008
POURNONMATHEUX
COURSCOMPLETavecexercices,corrigsetcitationsphilosophiques
ALGORITHMIQUEETPROGRAMMATION
L'ALGORITHME Prambule : le Codage 8
Pourquoi les ordinateurs sont-ils binaires ? 8
La base dcimale 10
La base binaire 12
Le codage hexadcimal 15
Introduction l'algorithmique 18
Qu'est-ce que l'algomachin ? 18
Faut-il tre matheux ?... 19
L'ADN, les Shadoks et les ordinateurs 20
Algorithmique et programmation 21
Avec quelles conventions crit-on ? 22
1. Les Variables 23
1.1. A quoi servent les variables ? 23
1.2. Dclaration des variables 24
1.2.1 Types numriques classiques 24
1.2.2 Autres types numriques 26
1.2.3 Type alphanumrique 26
1.2.4 Type boolen 27
1.3. L'instruction d'affectation 28
1.3.1 Syntaxe et signification 28
1.3.2 Ordre des instructions 30
Exercices 32
Corrigs 35
2
1.4. Expressions et oprateurs 38
1.4.1 Oprateurs numriques : 39
1.4.2 Oprateur alphanumrique : & 39
1.4.3 Oprateurs logiques (ou boolens) : 40
Exercices 41
Corrigs 42
1.5. Deux remarques pour terminer 43
2. Lecture et Ecriture 44
2.1 De quoi parle-t-on ? 44
2.2 Les instructions de lecture-criture 45
Exercices 46
Corrigs 47
3. Les Tests 49
3.1 De quoi s'agit-il ? 49
3.2 Structure d'un test 50
3.3 Qu'est-ce qu'une condition ? 51
Exercices 53
Corrigs 54
3.4 Conditions composes 55
Exercices 58
Corrigs 59
3.5 Test imbriqus 60
Exercices 62
Corrigs 63
3.6 De l'aiguillage la gare de tri 65
3.7Variables boolennes 67
3
4. Encore de la Logique 68
4.1 Faut-il mettre un Et ? un OU ? 68
Exercices 71
Corrigs 73
4.2 Au del de la logique : le style 76
Exercices 78
Corrigs 80
5. Les Boucles 89
5.1 A quoi cela sert-il donc ? 89
Exercices 94
Corrigs 95
5.2 Boucler en comptant... 97
5.3 Des boucles dans des boucles 99
5.4 Et encore une btise ne pas faire ! 101
Exercices 102
Corrigs 105
6. Les Tableaux 111
6.1 Utilit des tableaux 111
6.2 Notation et utilisation algorithmique 112
Exercices 115
Corrigs 118
6.3 Tableaux dynamiques 121
Exercices 122
Corrigs 124
4
7. Techniques Ruses 129
7.1 Le tri par slection 129
7.2 Un exemple de flag 131
7.3 Le tri bulles 135
7.4 La recherche dichotomique 137
Exercices 139
Corrigs 141
8. Tableaux Multidimensionnels 146
8.1 Pourquoi plusieurs dimensions ? 146
8.2 Tableaux 2 dimensions 147
Exercices 149
Corrigs 152
8.3 Tableaux n dimensions 159
9. Fonctions Prdfinies 160
9.1 Structure gnrale des fonctions 160
Exercices 162
Corrigs 163
9.2 Les fonctions de texte 164
Exercices 166
Corrigs 168
9.3 Trois fonctions numriques classiques 172
Exercices 174
Corrigs 177
9.4 Les fonctions de conversion 181
5
10. Fichiers 182
10.1 Organisation des fichiers 182
10.2 Structure des enregistrements 184
10.3 Types d'accs 185
10.4 Instructions 187
Exercices 191
Corrigs 192
10.5 Stratgies de traitement 194
10.6 Donnes structures 195
10.6.1 Donnes structures simples 195
10.6.2 Tableaux de donnes structures 197
10.7 Rcapitulatif gnral 198
Exercices 200
Corrigs 202
11. Procdures et Fonctions 212
11.1 Fonctions personnalises 212
11.1.1 De quoi s'agit-il ? 212
11.1.2 Passage d'arguments 215
11.1.3 Deux mots sur l'analyse fonctionnelle 216
Exercices 218
Corrigs 219
11.2 Sous-procdures 221
11.2.1 Gnralits 221
11.2.2 Le problme des arguments 222
11.2.3 Comment a marche tout a ? 223
11.3 Variables publiques et prives 227
6
11.4 Peut-on tout faire ? 228
11.5 Algorithmes fonctionnels 229
Corrigs 236
12. Notions Complmentaires 242
12.1 Programmation structure 242
12.2 Interprtation et compilation 244
12.3 La programmation rcursive 245
Liens 248
7
Prambule : Le Codage
Linformation nest pas le savoir. Le savoir nest pas la sagesse. La sagesse nest pas la beaut. La beaut nest pas lamour. Lamour nest pas la musique, et la musique, cest ce quil y a de mieux. - Frank Zappa
Les ordinateurs sont comme les dieux de lAncien Testament : avec beaucoup de rgles, et sans piti. - Joseph Campbell
Compter en octal, cest comme compter en dcimal, si on nutilise pas ses pouces - Tom Lehrer
Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres - Anonyme
Cest bien connu, les ordinateurs sont comme le gros rock qui tche : ils sont binaires.
Mais ce qui est moins connu, cest ce que ce qualificatif de binaire recouvre exactement, et ce quil implique. Aussi, avant de nous plonger dans les arcanes de lalgorithmique proprement dite, ferons-nous un dtour par la notion de codage binaire. Contrairement aux apparences, nous ne sommes pas loigns de notre sujet principal. Tout au contraire, ce que nous allons voir prsent constitue un ensemble de notions indispensables lcriture de programmes. Car pour parler une machine, mieux vaut connatre son vocabulaire
1. Pourquoi les ordinateurs sont-ils binaires ?
De nos jours, les ordinateurs sont ces machines merveilleuses capables de traiter du texte, dafficher des tableaux de matre, de jouer de la musique ou de projeter des vidos. On nen est pas encore tout fait HAL, lordinateur de 2001 Odysse de lEspace, lintelligence si dveloppe quil a peur de mourir pardon, dtre dbranch. Mais lordinateur parat tre une machine capable de tout faire.
Pourtant, les ordinateurs ont beau sembler repousser toujours plus loin les limites de leur champ daction, il ne faut pas oublier quen ralit, ces fiers--bras ne sont toujours capables que dune seule chose : faire des calculs, et uniquement cela. Eh oui, ces gros malins dordinateurs sont rests au fond ce quils ont t depuis leur invention : de vulgaires calculatrices amliores !
8
Lorsquun ordinateur traite du texte, du son, de limage, de la vido, il traite en ralit des nombres. En fait, dire cela, cest dj lui faire trop dhonneur. Car mme le simple nombre 3 reste hors de porte de lintelligence dun ordinateur, ce qui le situe largement en dessous de lattachant chimpanz Bonobo, qui sait, entre autres choses, faire des blagues ses congnres et jouer au Pac-Man. Un ordinateur manipule exclusivement des informations binaires, dont on ne peut mme pas dire sans tre tendancieux quil sagit de nombres.
Mais quest-ce quune information binaire ? Cest une information qui ne peut avoir que deux tats : par exemple, ouvert - ferm, libre occup, militaire civil, assis couch, blanc noir, vrai faux, etc. Si lon pense des dispositifs physiques permettant de stocker ce genre dinformation, on pourrait citer : charg non charg, haut bas, trou non trou.
Je ne donne pas ces derniers exemples au hasard : ce sont prcisment ceux dont se sert un ordinateur pour stocker lensemble des informations quil va devoir manipuler. En deux mots, la mmoire vive (la RAM ) est forme de millions de composants lectroniques qui peuvent retenir ou relcher une charge lectrique. La surface dun disque dur, dune bande ou dune disquette est recouverte de particules mtalliques qui peuvent, grce un aimant, tre orientes dans un sens ou dans lautre. Et sur un CD-ROM, on trouve un long sillon troit irrgulirement perc de trous.
Toutefois, la coutume veut quon symbolise une information binaire, quel que soit son support physique, sous la forme de 1 et de 0. Il faut bien comprendre que ce nest l quune reprsentation, une image commode, que lon utilise pour parler de toute information binaire. Dans la ralit physique, il ny a pas plus de 1 et de 0 qui se promnent dans les ordinateurs quil ny a crit, en lettres gantes, Ocan Atlantique sur la mer quelque part entre la Bretagne et les Antilles. Le 1 et le 0 dont parlent les informaticiens sont des signes, ni plus, ni moins, pour dsigner une information, indpendamment de son support physique.
Les informaticiens seraient-ils des gens tordus, possdant un got immodr pour labstraction, ou pour les jeux intellectuels alambiqus ? Non, pas davantage en tout cas que le reste de leurs contemporains non-informaticiens. En fait, chacun dentre nous pratique ce genre dabstraction tous les jours, sans pour autant trouver cela bizarre ou difficile. Simplement, nous le faisons dans la vie quotidienne sans y penser. Et force de ne pas y penser, nous ne remarquons mme plus quel mcanisme subtil dabstraction est ncessaire pour pratiquer ce sport.
9
Lorsque nous disons que 4+3=7 (ce qui reste, normalement, dans le domaine de comptence mathmatique de tous ceux qui lisent ce cours !), nous manions de pures abstractions, reprsentes par de non moins purs symboles ! Un tre humain dil y a quelques millnaires se serait demand longtemps quest-ce que cest que quatre ou trois , sans savoir quatre ou trois quoi ? . Mine de rien, le fait mme de concevoir des nombres, cest--dire de pouvoir considrer, dans un ensemble, la quantit indpendamment de tout le reste, cest dj une abstraction trs hardie, qui a mis trs longtemps avant de simposer tous comme une vidence. Et le fait de faire des additions sans