mardi 21 février 2017
Se Connecter à votre compte

Connexion à votre compte

Se connecter via

Ou bien via votre compte

Identifiant
Mot de passe
Maintenir la connexion active sur ce site

S’initier à la programmation

S’initier à la programmationTitre : S’initier à la programmation

Nombre de page : 370

Auteur : Claude Delannoy

Description : 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.

 

L’ouvrage a été conçu sous forme d’un cours, avec une démarche très progressive. De nombreux 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 personnelle 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.

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 donné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 introduisant 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, accumulation, 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 variables 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 concerné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érivé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 passage, à 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 polymorphisme, 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.

Fichiers:
S’initier à la programmation
Enregistrez-vous ou connectez-vous pour récupérer des fichiers de cette catégorie.

Date 2012-10-25 Taille du fichier 2.27 MB Téléchargement 226

Mot de passe: www.almohandiss.com

Connectez-vous pour commenter