sinitier à la programmation

Livre: S’initier à la programmation Avec des exemples en C, C++, C#, Java et PHP

Partagez sur:

Objectif de l’ouvrage

Ce livre se propose de vous apprendre à programmer en exprimant les concepts
fondamentaux à l’aide d’un « pseudo-code ». Cela vous permet de rédiger des programmes
en privilégiant l’aspect algorithmique, sans être pollué par la complexité et la technicité d’un
langage donné. Par ailleurs, l’ouvrage montre comment ces concepts fondamentaux se
traduisent dans cinq langages très usités (C, C++, Java, C# et PHP) et fournit des exemples
complets. Il prépare ainsi efficacement à l’étude d’un langage réel.

Forme de l’ouvrage

L’ouvrage a été conçu sous forme d’un cours, avec une démarche très progressive. De nom-
breux exemples complets, écrits en pseudo-code et accompagnés du résultat fourni par leur
exécution, viennent illustrer la plupart des concepts fondamentaux. Des exercices appropriés
proposent la rédaction de programmes en pseudo-code, permettant ainsi la mise en pratique
des acquis. Plutôt que de les regrouper classiquement en fin de chapitre, nous avons préféré
les placer aux endroits jugés opportuns pour leur résolution. Une correction est fournie en fin
de volume ; nous vous encourageons vivement à ne la consulter qu’après une recherche per-
sonnelle et à réfléchir aux différences de rédaction qui ne manqueront pas d’apparaître.
Chaque chapitre se termine par :

• Une rubrique « Côté langages » qui montre comment les concepts exposés préalablement
s’expriment dans les cinq langages choisis ; elle constitue une sorte de guide de traduction du pseudo-code dans un véritable langage. Notez que le langage C n’étant pas orienté objet,
il n’est pris en compte que jusqu’au chapitre 8.
• Une rubrique « Exemples langages » qui propose des programmes complets, traduction de
certains des exemples présentés en pseudo-code.
À qui s’adresse cet ouvrage
Cet ouvrage s’adressse aux débutants en programmation et aux étudiants du premier cycle
d’université. Il peut également servir :

• à ceux qui apprennent à programmer directement dans un langage donné : il leur permettra
d’accompagner leur étude, en dégageant les concepts fondamentaux et en prenant un peu de
recul par rapport à leur langage ;
• à ceux qui maîtrisent déjà la programmation dans un langage donné et qui désirent « passer
à un autre langage » ;
• à ceux qui connaissent déjà la programmation procédurale et qui souhaitent aborder la pro-
grammation orientée objet.
Enfin, sa conception permet à l’ouvrage d’être facilement utilisé comme « support de
cours ».

Plan de l’ouvrage

Le chapitre 1 présente le rôle de l’ordinateur, les grandes lignes de son fonctionnement et la
manière de l’utiliser. Il dégage les importantes notions de langage, de programme, de don-
nées et de résultats, de système d’exploitation et d’environnement de programmation.

Le chapitre 2 introduit les concepts de variable et de type, et la première instruction de base
qu’est l’affectation. Il se limite à trois types de base : les entiers, les réels et les caractères. Il
présente les erreurs susceptibles d’apparaître dans l’évaluation d’une expression et les
différentes façons dont un langage donné peut les gérer. On y inclut les notions d’expression
mixte et d’expression constante.

Le chapitre 3 est consacré aux deux autres instructions de base que sont la lecture et
l’écriture. Il nous a paru utile de les placer à ce niveau pour permettre, le plus rapidement
possible, de présenter et de faire écrire des programmes complets. On situe ces instructions
par rapport aux différents modes de communication entre l’utilisateur et le programme :
mode console, programmation par événements, mode batch, programmation Internet.

Le chapitre 4 étudie la structure de choix, en présentant la notion de condition et en introdui-
sant le type booléen. On y aborde les choix imbriqués. L’existence de structures de choix
multiple (instruction switch des cinq langages examinés) est évoquée dans la partie « Côté
langages ».

Le chapitre 5 aborde tout d’abord les structures de répétition conditionnelle. Il présente la
notion de compteur, avant d’examiner les structures de répétition inconditionnelle (ou « avec
compteur ») et les risques inhérents à la modification intempestive du compteur.
Le chapitre 6 présente les « algorithmes élémentaires » les plus usuels : comptage, accumu-
lation, recherche de maximum, imbrication de répétitions. Il donne un aperçu de ce qu’est
l’itération.

Le chapitre 7 traite des tableaux, à une ou deux dimensions. Il se place a priori dans un
contexte de gestion statique des emplacements mémoire correspondants et il décrit les
contraintes qui pèsent alors sur la taille d’un tableau. Les autres modes de gestion
(automatique et dynamique) sont néanmoins évoqués en fin de chapitre, ainsi que la notion
de tableau associatif (utilisé par exemple par PHP) qui est comparée à celle de tableau indicé.
Les situations de débordement d’indice sont examinées, avec leurs conséquences potentielles
dépendantes du langage.

Le chapitre 8 est consacré aux fonctions. Il présente les notions de paramètres, de variable
locale et de résultat, et distingue la transmission par valeur de la transmission par référence
(par adresse), en examinant le cas particulier des tableaux. Il aborde la durée de vie des varia-
bles locales, ce qui amène à traiter du mode de gestion automatique correspondant (et du
concept de pile qu’il utilise souvent). Il dégage le concept de « programme principal » ou de
« fonction principale ». Enfin, il donne un aperçu de ce qu’est la récursivité.

Le chapitre 9 introduit les notions de classe, d’attribut, d’objet, de méthode, d’encapsulation
des données et de constructeur. Il fournit quelques éléments concernant les deux modes de
gestion possibles des objets, à savoir par référence ou par valeur. Il étudie les possibilités
d’amendement du principe d’encapsulation par modification des droits d’accès aux attributs
ou aux méthodes.

Le chapitre 10 examine l’incidence du mode de gestion des objets (par référence ou par
valeur) sur l’affectation d’objets et sur la durée de vie des objets locaux. Il aborde les objets
transmis en paramètre et il convient, comme c’est le cas dans la plupart des langages objet,
que « l’unité d’encapsulation est la classe et non l’objet ». Il analyse le cas des objets fournis
en résultat. Puis, il étudie les attributs et les méthodes de classe, et traite sommairement des
tableaux d’objets et des problèmes qu’ils posent dans l’appel des constructeurs, ainsi que des
situations « d’auto-référence ».

Le chapitre 11 est consacré à la composition des objets, c’est-à-dire au cas où un attribut
d’une classe est lui-même de type classe. Il examine les problèmes qui peuvent alors se poser
au niveau des droits d’accès et dans la nature de la relation qui se crée entre les objets concer-
nés. Il présente la distinction entre copie profonde et copie superficielle d’un objet. Il montre
également comment résoudre un problème fréquent, à savoir réaliser une classe à instance
unique (singleton).

Le chapitre 12 présente la notion d’héritage ou de classe dérivée et son incidence sur les
droits d’accès aux attributs et aux méthodes. Il fait le point sur la construction des objets dér-
ivés avant de traiter de la redéfinition des méthodes. Il aborde les situations de dérivations
successives et décrit succinctement les possibilités de modification des droits d’accès lors de
la définition d’une classe dérivée.

Le chapitre 13 expose les notions de base du polymorphisme, à savoir la compatibilité par
affectation et la ligature dynamique. Il en examine les conséquences dans plusieurs situations
et montre quelles sont les limites de ce polymorphisme, ce qui conduit, au passsage, à parler
de valeurs de retour covariantes présentes dans certains langages.

Le chapitre 14 traite enfin de concepts moins fondamentaux que l’héritage ou le polymor-
phisme, parfois absents de certains langages, mais qui peuvent faciliter la conception des
logiciels. Il s’agit des notions de classes abstraites (ou retardées), d’interface et d’héritage
multiple.

https://tutswinds.com/creer-une-application-en-ligne-de-commande-en-ruby-avec-thor/

Télécharger le livre


Partagez sur: