Introduction à la programmation - Les pages des personnels du

Introduction à la programmation
Karl Tombre
Cours de tronc commun, 1re année
Version 1.3
ii
Ce cours a pour objectif de vous initier à l’informatique, et en tout premier lieu à la programma-
tion. Le langage «support » choisi est Java, et vous aurez donc l’occasion d’écrire des programmes
dans ce langage. Mais avant tout, nous souhaitons vous familiariser avec les concepts et principes
fondamentaux de la programmation; de ce fait, vous devriez être capable, à l’issue de ce cours, de
vous familiariser assez rapidement avec un autre langage de programmation que Java.
Le cours est basé sur plusieurs livres, dont vous trouverez les références en fin de polycopié. Le
langage Java fait l’objet d’une abondante littérature, de qualité parfois inégale. De plus, il peut
encore évoluer. En complément d’un livre, il peut donc être opportun de garder un signet sur le site
de référence, http://java.sun.com/, où vous trouverez entre autres des tutoriaux en ligne, dans
des versions parfois plus récentes que leurs versions imprimées. Notez bien toutefois que la plupart
des livres sur le marché sont destinés à un public d’informaticiens, qui savaient déjà programmer
avant d’apprendre Java...
Enfin, je vous invite à garder un signet sur ma propre page web à l’école1, où je regroupe au fur
et à mesure des informations plus ou moins directement liées à ce cours et des pointeurs sur des
ressources Internet intéressantes. Vous y trouverez notamment un pointeur sur les API de Java,
c’est-à-dire la documentation en ligne de l’ensemble des classes disponibles dans l’environnement
Java.
Une page spécifique2regroupe les informations pratiques sur le déroulement du cours : horaires,
énoncés et corrigés des TDs, groupes, programme des séances, etc.
c
Karl Tombre, École des Mines de Nancy. Document édité avec XEmacs et formatté avec L
A
T
EX.
Achevé d’imprimer le 2 septembre 2003. Un grand merci à tous ceux, collègues ou étudiants, qui,
au fil des éditions successives de ce polycopié, ont contribué à l’améliorer par leurs relectures et
leurs nombreuses suggestions d’amélioration, et en particulier à Philippe Dosch, Jacques Jaray,
Luigi Liquori, Bart Lamiroy et (last, but not least) Guillaume Bonfante.
1http://www.mines.inpl-nancy.fr/~tombre
2http://www.mines.inpl-nancy.fr/~tombre/java.html
Table des matières
1 Introduction 1
1.1 Informatique=mécanisationdelabstraction ..................... 1
1.2 Traduction ........................................ 2
1.3 Laprogrammation:duproblèmeauprogramme ................... 2
2 Les constructions de base en Java 5
2.1 Constantesetvariables.................................. 5
2.2 Typage .......................................... 6
2.3 TypesélémentairesenJava ............................... 6
2.4 Expressions ........................................ 7
2.4.1 Opérateursarithmétiques ............................ 7
2.4.2 Opérateurslogiquesetrelationnels....................... 8
2.4.3 Opérateursbitàbit ............................... 9
2.5 Laectation........................................ 9
2.6 MonpremierprogrammeJava.............................. 10
2.7 Delastructurationdudiscours:lesinstructionsdecontrôle............. 12
2.7.1 Instructionsconditionnelles ........................... 12
2.7.2 Instructionsitératives .............................. 16
3 Structuration 23
3.1 Laclasse,premièreapproche:unregroupementdevariables............. 23
3.1.1 Allocationdemémoire.............................. 24
3.1.2 Exemple : un embryon de programme de gestion de compte . . . . . . . . . 25
3.2 Fonctionsetprocédures ................................. 27
3.2.1 Lesfonctionsapprocheintuitive ....................... 27
3.2.2 Lesfonctionsdénitionplusformelle..................... 30
3.2.3 Lesprocédures .................................. 31
3.2.4 Le cas particulier de main ............................ 33
3.2.5 Surcharge..................................... 33
3.3 Lestableaux ....................................... 34
4 Programmation objet 39
4.1 Retoursurlaclasse.................................... 39
4.1.1 Fonctions d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Lesobjets......................................... 41
4.3 Méthodesetvariablesdeclasse ............................. 44
4.3.1 Retour sur la procédure main .......................... 46
4.3.2 Comment accéder aux variables et méthodes de classe ? . . . . . . . . . . . 47
4.4 Exemple d’une classe prédéfinie : String ........................ 47
4.4.1 Application : recherche plus conviviale du compte . . . . . . . . . . . . . . 48
4.5 Lacomposition:desobjetsdansdautresobjets ................... 52
4.6 Lhéritage......................................... 56
4.6.1 Héritageettypage ................................ 60
4.6.2 Liaisondynamique................................ 62
iii
iv TABLE DES MATIÈRES
5 Modèles et structures de données 67
5.1 Leslistes.......................................... 67
5.1.1 Représentationparuntableau ......................... 67
5.1.2 Représentationparunelistechaînée ...................... 68
5.1.3 Comparaisonentrelesdeuxreprésentations.................. 69
5.1.4 Application : l’interface ListeDeComptes ................... 69
5.2 Lespiles.......................................... 78
5.3 Lesarbres......................................... 79
6 Programmation (un peu) plus avancée 81
6.1 Portée........................................... 81
6.2 Espacesdenommage:lespackages........................... 82
6.3 Entrées/sorties ...................................... 84
6.3.1 Lexplicationdunmystère............................ 85
6.3.2 Leschiers .................................... 86
6.4 Exceptions ........................................ 100
6.4.1 Lesderniersélémentsdumystère........................ 100
6.4.2 Exemple : une méthode qui provoque une exception . . . . . . . . . . . . . 101
6.5 Larécursivité....................................... 102
6.5.1 Exemple : représentation d’un ensemble par un arbre . . . . . . . . . . . . . 102
6.6 Interface homme–machine et programmation événementielle . . . . . . . . . . . . . 106
6.7 Conclusion ........................................ 125
7 Introduction sommaire au monde des bases de données 127
7.1 Lemodèlerelationnel .................................. 128
7.2 SQL ............................................ 129
7.2.1 Introduction ................................... 129
7.2.2 Créationdeschémasetinsertiondedonnées.................. 129
7.2.3 Projectionsetsélections............................. 130
7.2.4 Jointure...................................... 131
7.2.5 Quelquesautresclausesetfonctions ...................... 132
7.3 JDBC ........................................... 133
A Quelques éléments d’histoire 137
B La logique et l’algèbre de Boole 139
C Glossaire 141
D Les mots clés de Java 143
E Aide-mémoire de programmation 145
E.1 Constructionsconditionnelles .............................. 145
E.2 Constructionsitératives ................................. 146
E.3 Dénitionetappeldunefonction............................ 147
E.4 Dénitionetappelduneprocédure........................... 147
E.5 Dénitionduneclasse.................................. 148
E.6 Instanciation d’une classe et accès aux méthodes . . . . . . . . . . . . . . . . . . . 148
E.7 Récupérationduneexception.............................. 148
F Quelques précisions sur le codage 151
F.1 Lecodagedescaractères................................. 151
F.2 Lecodagedesentiers................................... 152
F.2.1 Codageavecbitdesigne............................. 152
F.2.2 Lecomplémentàun ............................... 152
F.2.3 Lecomplémentàdeux.............................. 152
F.3 Lecodagedesréels.................................... 153
TABLE DES MATIÈRES v
F.3.1 IEEE 754 pour les float ............................ 153
F.3.2 IEEE 754 pour les double ............................ 154
G Quelques conseils pour utiliser l’environnement JDE sous XEmacs 155
H Conventions d’écriture des programmes Java 157
H.1 Fichiers .......................................... 157
H.2 Indentation ........................................ 158
H.3 Commentaires....................................... 159
H.3.1 Commentairesdeprogrammation........................ 159
H.3.2 Commentairesdedocumentation........................ 160
H.4 Déclarationsetinstructions ............................... 160
H.5 Noms ........................................... 161
I Corrigé des exercices 163
1 / 173 100%

Introduction à la programmation - Les pages des personnels du

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !