LE FORUM DE PARTAGE INFORMATIQUE EN COTE D'IVOIRE

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
LE FORUM DE PARTAGE INFORMATIQUE EN COTE D'IVOIRE

Derniers sujets

» Huawei Unlock code Calculator
Cour 2 .La démarche du programmeur  EmptyJeu 10 Aoû - 10:16 par thebeststudent

» probleme avec les clavier de mon ordi
Cour 2 .La démarche du programmeur  EmptyVen 10 Fév - 10:25 par Luc lavinasse

» SURFEZ ILLIMITES AVEC UC WEB
Cour 2 .La démarche du programmeur  EmptyMar 6 Déc - 7:42 par Yannlagou

» Internet gratuit
Cour 2 .La démarche du programmeur  EmptyMar 6 Déc - 6:28 par Yannlagou

» Configuration Orange ci FinchVPN
Cour 2 .La démarche du programmeur  EmptyLun 25 Juil - 9:45 par Hamed84

» Keys, clefs, serial, norton, kasperky, avg, tune up utilities final 2012 By SEB
Cour 2 .La démarche du programmeur  EmptyVen 22 Juil - 16:36 par Hamed84

» finchvpn moov
Cour 2 .La démarche du programmeur  EmptyVen 22 Juil - 15:45 par Hamed84

» Configuration
Cour 2 .La démarche du programmeur  EmptyLun 18 Juil - 16:57 par Hamed84

» 30.000 sms de bienvenue
Cour 2 .La démarche du programmeur  EmptySam 19 Mar - 7:11 par Jeanpbul

Les posteurs les plus actifs de la semaine

Aucun utilisateur

Flux RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 

Nombre de visites

Internetpro

Internetpro

Avril 2024

LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     

Calendrier Calendrier

Internetpro

Le Deal du moment : -50%
-50% Baskets Nike Air Huarache
Voir le deal
64.99 €

2 participants

    Cour 2 .La démarche du programmeur

    BISMARCK 007
    BISMARCK 007
    Contributeur
    Contributeur


    Messages : 109
    Karma : 7
    Date d'inscription : 07/02/2013
    Localisation : Los Angeles

    Cour 2 .La démarche du programmeur  Empty Cour 2 .La démarche du programmeur

    Message par BISMARCK 007 Sam 10 Mai - 8:12

    Bonsoir les amis, je sais que vous m'avez attendu le samedi dernier par rapport à la suite du cours dans le cadre de notre objectif "One people, One program" ou" Une personne, un logiciel".Mais depuis le jeudi dernier (le 1mai) il y a une grande coupure du reseau internet suite à la tombé d'une forte pluie qui à fait tombé l'antenne locale de mon Fournisseur..

    Alors Aujourd'hui nous allons faire deux cours en même temps pour rattrapper notre semaine perdue........  Very Happy 

    Ceci dit , on fera aujourdui le cour sur la démarche du programmeur comment doit-il se porter pour réaliser un programme, comment mettre en place sa méthodologie  en rapport avec celle de la machine ? quelles types d'erreurs peut-il rencontré en codant ?


    Alors Lisez bien cette partie car elle est l'une des parties les plus importantes pour la suite de notre formation.


    La démarche du programmeur


    Comme le sorcier, le programmeur compétent semble doté d’un pouvoir étrange qui lui permet de
    transformer une machine en une autre, une machine à calculer en une machine à écrire ou à dessiner,par exemple, un peu à la manière d’un sorcier qui transformerait un prince charmant en grenouille, à
    l’aide de quelques incantations mystérieuses entrées au clavier. Comme le sorcier, il est capable de
    guérir une application apparemment malade, ou de jeter des sorts à d’autres, via l’Internet. Mais
    comment cela est-il possible ?
    Cela peut paraître paradoxal, mais comme nous l’avons déjà fait remarquer plus haut, le vrai maître
    est en fait celui qui ne croit à aucune magie, à aucun don, à aucune intervention surnaturelle. Seule la
    froide, l’implacable, l’inconfortable logique est de mise.
    Le mode de pensée d’un programmeur combine des constructions intellectuelles complexes, similaires
    à celles qu’accomplissent les mathématiciens, les ingénieurs et les scientifiques. Comme le
    mathématicien, il utilise des langages formels pour décrire des raisonnements (ou algorithmes).
    Comme l’ingénieur, il conçoit des dispositifs, il assemble des composants pour réaliser des mécanismes
    et il évalue leurs performances. Comme le scientifique, il observe le comportement de systèmes
    complexes, il crée des modèles, il teste des prédictions.
    L’activité essentielle d’un programmeur consiste à résoudre des problèmes.
    Il s’agit là d’une compétence de haut niveau, qui implique des capacités et des connaissances diverses :
    être capable de (re)formuler un problème de plusieurs manières différentes, être capable d’imaginer
    des solutions innovantes et efficaces, être capable d’exprimer ces solutions de manière claire et
    complète. Comme nous l’avons déjà évoqué plus haut, il s’agira souvent de mettre en lumière les
    implications concrètes d’une représentation mentale « magique », simpliste ou trop abstraite.
    La programmation d’un ordinateur consiste en effet à « expliquer » en détail à une machine ce qu’elle
    doit faire, en sachant d’emblée qu’elle ne peut pas véritablement « comprendre » un langage humain,
    mais seulement effectuer un traitement automatique sur des séquences de caractères. Il s’agit la
    plupart du temps de convertir un souhait exprimé à l’origine en termes « magiques », en un vrai
    raisonnement parfaitement structuré et élucidé dans ses moindres détails, que l’on appelle un algorithme.
    Considérons par exemple une suite de nombres fournis dans le désordre : 47, 19, 23, 15, 21, 36, 5, 12…
    Comment devons-nous nous y prendre pour obtenir d’un ordinateur qu’il les remette dans l’ordre ?
    Le souhait « magique » est de n’avoir qu’à cliquer sur un bouton, ou entrer une seule instruction au
    clavier, pour qu’automatiquement les nombres se mettent en place. Mais le travail du
    sorcier-programmeur est justement de créer cette « magie ». Pour y arriver, il devra décortiquer tout
    ce qu’implique pour nous une telle opération de tri (au fait, existe-t-il une méthode unique pour cela,
    ou bien y en a-t-il plusieurs ?), et en traduire toutes les étapes en une suite d’instructions simples,
    telles que par exemple « comparer les deux premiers nombres, les échanger s’ils ne sont pas dans
    l’ordre souhaité, recommencer avec le deuxième et le troisième, etc. ».
    Si les instructions ainsi mises en lumière sont suffisamment simples, il pourra alors les encoder dans la
    machine en respectant de manière très stricte un ensemble de conventions fixées à l’avance, que l’on
    appelle un langage informatique. Pour « comprendre » celui-ci, la machine sera pourvue d’un
    mécanisme qui décode ces instructions en associant à chaque « mot » du langage une action précise.
    Ainsi seulement, la magie pourra s’accomplir.


    Langage machine, langage de programmation
    À strictement parler, un ordinateur n’est rien d’autre qu’une machine effectuant des opérations
    simples sur des séquences de signaux électriques, lesquels sont conditionnés de manière à ne pouvoir
    prendre que deux états seulement (par exemple un potentiel électrique maximum ou minimum). Ces
    séquences de signaux obéissent à une logique du type « tout ou rien » et peuvent donc être considérés
    conventionnellement comme des suites de nombres ne prenant jamais que les deux valeurs 0 et 1. Un
    système numérique ainsi limité à deux chiffres est appelé système binaire.
    Sachez dès à présent que dans son fonctionnement interne, un ordinateur est totalement incapable de
    traiter autre chose que des nombres binaires. Toute information d’un autre type doit être convertie,
    ou codée, en format binaire. Cela est vrai non seulement pour les données que l’on souhaite traiter (les
    textes, les images, les sons, les nombres, etc.), mais aussi pour les programmes, c’est-à-dire les
    séquences d’instructions que l’on va fournir à la machine pour lui dire ce qu’elle doit faire avec ces
    données.
    Le seul « langage » que l’ordinateur puisse véritablement « comprendre » est donc très éloigné de ce
    que nous utilisons nous-mêmes. C’est une longue suite de 1 et de 0 (les « bits ») souvent traités par
    groupes de 8 (les « octets »), 16, 32, ou même 64. Ce « langage machine » est évidemment presque
    incompréhensible pour nous. Pour « parler » à un ordinateur, il nous faudra utiliser des systèmes de
    traduction automatiques, capables de convertir en nombres binaires des suites de caractères formant
    des mots-clés (anglais en général) qui seront plus significatifs pour nous.
    Ces systèmes de traduction automatique seront établis sur la base de toute une série de conventions,
    dont il existera évidemment de nombreuses variantes.
    Le système de traduction proprement dit s’appellera interpréteur ou bien compilateur, suivant la
    méthode utilisée pour effectuer la traduction. On appellera langage de programmation un ensemble de
    mots-clés (choisis arbitrairement) associé à un ensemble de règles très précises indiquant comment
    assembler ces mots pour former des « phrases » que l’interpréteur ou le compilateur puisse traduire
    en langage machine (binaire).
    Suivant son niveau d’abstraction, on pourra dire d’un langage qu’il est « de bas niveau » (ex : assembleur)
    ou « de haut niveau » (ex : Pascal, Perl, Smalltalk, Scheme, Lisp...). Un langage de bas niveau est
    constitué d’instructions très élémentaires, très « proches de la machine ». Un langage de haut niveau
    comporte des instructions plus abstraites, plus « puissantes » (et donc plus « magiques »). Cela signifie
    que chacune de ces instructions pourra être traduite par l’interpréteur ou le compilateur en un grand
    nombre d’instructions machine élémentaires.
    Le langage que vous avez allez apprendre en premier est Python. Il s’agit d’un langage de haut niveau,
    dont la traduction en code binaire est complexe et prend donc toujours un certain temps. Cela
    pourrait paraître un inconvénient. En fait, les avantages que présentent les langages de haut niveau
    sont énormes : il est beaucoup plus facile d’écrire un programme dans un langage de haut niveau ;
    l’écriture du programme prend donc beaucoup moins de temps ; la probabilité d’y faire des fautes est
    nettement plus faible ; la maintenance (c’est-à-dire l’apport de modifications ultérieures) et la
    recherche des erreurs (les « bogues ») sont grandement facilitées. De plus, un programme écrit dans
    un langage de haut niveau sera souvent portable, c’est-à-dire que l’on pourra le faire fonctionner sans guère de modifications sur des machines ou des systèmes d’exploitation différents. Un programme
    écrit dans un langage de bas niveau ne peut jamais fonctionner que sur un seul type de machine : pour
    qu’une autre l’accepte, il faut le réécrire entièrement.
    Dans ce que nous venons d’expliquer sommairement, vous aurez sans doute repéré au passage de
    nombreuses « boîtes noires » : interpréteur, système d’exploitation, langage, instructions machine,
    code binaire, etc. L’apprentissage de la programmation va vous permettre d’en entrouvrir
    quelques-unes. Restez cependant conscient que vous n’arriverez pas à les décortiquer toutes. De
    nombreux objets informatiques créés par d’autres resteront probablement « magiques » pour vous
    pendant longtemps (à commencer par le langage de programmation lui-même, par exemple). Vous
    devrez donc faire confiance à leurs auteurs, quitte à être déçu parfois en constatant que cette
    confiance n’est pas toujours méritée. Restez donc vigilant, apprenez à vérifier, à vous documenter sans
    cesse. Dans vos propres productions, soyez rigoureux et évitez à tout prix la « magie noire » (les
    programmes pleins d’astuces tarabiscotées que vous êtes seul à comprendre) : un ******* digne de
    confiance n’a rien à cacher.
    Édition du code source – Interprétation
    Le programme tel que nous l’écrivons dans un langage de programmation quelconque est à
    strictement parler un simple texte. Pour rédiger ce texte, on peut faire appel à toutes sortes de
    logiciels plus ou moins perfectionnés, à la condition qu’ils ne produisent que du texte brut, c’est-à-dire
    sans mise en page particulière ni aucun attribut de style (pas de spécification de police, donc, pas de
    gros titres, pas de gras, ni de souligné, ni d’italique, etc.)3.
    Le texte ainsi produit est ce que nous appellerons désormais un code source.
    Comme nous l’avons déjà évoqué plus haut, le code source doit être traduit en une suite d’instructions
    binaires directement compréhensibles par la machine : le « code objet ». Dans le cas de Python, cette
    traduction est prise en charge par un interpréteur assisté d’un pré-compilateur. Cette technique hybride
    (également utilisée par le langage Java) vise à exploiter au maximum les avantages de l’interprétation
    et de la compilation, tout en minimisant leurs inconvénients respectifs. Veuillez consulter un ouvrage
    d’informatique générale si vous voulez en savoir davantage sur ces deux techniques.
    Sachez simplement à ce sujet que vous pourrez réaliser des programmes extrêmement performants
    avec Python, même s’il est indiscutable qu’un langage strictement compilé tel que le C peut toujours
    faire mieux en termes de rapidité d’exécution.
    Mise au point d’un programme – Recherche des erreurs (debug)
    La programmation est une démarche très complexe, et comme c’est le cas dans toute activité humaine,
    on y commet de nombreuses erreurs. Pour des raisons anecdotiques, les erreurs de programmation
    s’appellent des « bugs » (ou « bogues », en Français)4, et l’ensemble des techniques que l’on met en
    oeuvre pour les détecter et les corriger s’appelle « debug » (ou « débogage »).
    3 Ces logiciels sont appelés des éditeurs de texte. Même s’ils proposent divers automatismes....

    En fait, il peut exister dans un programme trois types d’erreurs assez différentes, et il convient que
    vous appreniez à bien les distinguer.
    Erreurs de syntaxe
    Python ne peut exécuter un programme que si sa syntaxe est parfaitement correcte. Dans le cas
    contraire, le processus s’arrête et vous obtenez un message d’erreur. Le terme syntaxe se réfère aux
    règles que les auteurs du langage ont établies pour la structure du programme.
    Tout langage comporte sa syntaxe. Dans la langue française, par exemple, une phrase doit toujours
    commencer par une majuscule et se terminer par un point. ainsi cette phrase comporte deux erreurs
    de syntaxe.
    Dans les textes ordinaires, la présence de quelques petites fautes de syntaxe par-ci par-là n’a
    généralement pas d’importance. Il peut même arriver (en poésie, par exemple), que des fautes de
    syntaxe soient commises volontairement. Cela n’empêche pas que l’on puisse comprendre le texte.
    Dans un programme d’ordinateur, par contre, la moindre erreur de syntaxe produit invariablement un
    arrêt de fonctionnement (un « plantage ») ainsi que l’affichage d’un message d’erreur. Au cours des
    premières semaines de votre carrière de programmeur, vous passerez certainement pas mal de temps
    à rechercher vos erreurs de syntaxe. Avec de l’expérience, vous en commettrez beaucoup moins.
    Gardez à l’esprit que les mots et les symboles utilisés n’ont aucune signification en eux-mêmes : ce ne
    sont que des suites de codes destinés à être convertis automatiquement en nombres binaires. Par
    conséquent, il vous faudra être très attentifs à respecter scrupuleusement la syntaxe du langage.
    Finalement, souvenez-vous que tous les détails ont de l’importance. Il faudra en particulier faire très
    attention à la casse (c’est-à-dire l’emploi des majuscules et des minuscules) et à la ponctuation. Toute
    erreur à ce niveau (même minime en apparence, tel l’oubli d’une virgule, par exemple) peut modifier
    considérablement la signification du code, et donc le déroulement du programme.
    Il est heureux que vous fassiez vos débuts en programmation avec un langage interprété tel que
    Python. La recherche des erreurs y est facile et rapide. Avec les langages compilés (tel C++), il vous
    faudrait recompiler l’intégralité du programme après chaque modification, aussi minime soit-elle.
    Erreurs sémantiques
    Le second type d’erreur est l’erreur sémantique ou erreur de logique. S’il existe une erreur de ce type
    dans un de vos programmes, celui-ci s’exécute parfaitement, en ce sens que vous n’obtenez aucun
    message d’erreur, mais le résultat n’est pas celui que vous attendiez : vous obtenez autre chose.
    En réalité, le programme fait exactement ce que vous lui avez dit de faire. Le problème est que ce que
    vous lui avez dit de faire ne correspond pas à ce que vous vouliez qu’il fasse. La séquence
    4 bug est à l’origine un terme anglais servant à désigner de petits insectes gênants, tels les punaises. Les
    premiers ordinateurs fonctionnaient à l’aide de « lampes » radios qui nécessitaient des tensions électriques
    assez élevées. Il est arrivé à plusieurs reprises que des petits insectes s’introduisent dans cette circuiterie
    complexe et se fassent électrocuter, leurs cadavres calcinés provoquant alors des court-circuits et donc des
    pannes incompréhensibles.
    Le mot français « bogue » a été choisi par homonymie approximative. Il désigne la coque épineuse de la
    châtaigne.
    d’instructions de votre programme ne correspond pas à l’objectif poursuivi. La sémantique (la logique)
    est incorrecte.
    Rechercher des fautes de logique peut être une tâche ardue. C’est là que se révélera votre aptitude à
    démonter toute forme résiduelle de « pensée magique » dans vos raisonnements. Il vous faudra
    analyser patiemment ce qui sort de la machine et tâcher de vous représenter une par une les
    opérations qu’elle a effectuées, à la suite de chaque instruction.
    Erreurs à l’exécution
    Le troisième type d’erreur est l’erreur en cours d’exécution (Run-time error), qui apparaît seulement
    lorsque votre programme fonctionne déjà, mais que des circonstances particulières se présentent (par
    exemple, votre programme essaie de lire un fichier qui n’existe plus). Ces erreurs sont également
    appelées des exceptions, parce qu’elles indiquent en général que quelque chose d’exceptionnel (et de
    malencontreux) s’est produit. Vous rencontrerez ce type d’erreurs lorsque vous programmerez des
    projets de plus en plus volumineux, et vous apprendrez plus loin dans ce cours qu’il existe des
    techniques particulières pour les gérer.
    Recherche des erreurs et expérimentation
    L’une des compétences les plus importantes à acquérir au cours de votre apprentissage est celle qui
    consiste à déboguer efficacement un programme. Il s’agit d’une activité intellectuelle parfois énervante
    mais toujours très riche, dans laquelle il faut faire montre de beaucoup de perspicacité.
    Ce travail ressemble par bien des aspects à une enquête policière. Vous examinez un ensemble de faits,
    et vous devez émettre des hypothèses explicatives pour reconstituer les processus et les événements
    qui ont logiquement entraîné les résultats que vous constatez.
    Cette activité s’apparente aussi au travail expérimental en sciences. Vous vous faites une première
    idée de ce qui ne va pas, vous modifiez votre programme et vous essayez à nouveau. Vous avez émis
    une hypothèse, qui vous permet de prédire ce que devra donner la modification. Si la prédiction se
    vérifie, alors vous avez progressé d’un pas sur la voie d’un programme qui fonctionne. Si la prédiction
    se révèle fausse, alors il vous faut émettre une nouvelle hypothèse. Comme l’a bien dit Sherlock
    Holmes : « Lorsque vous avez éliminé l’impossible, ce qui reste, même si c’est improbable, doit être la
    vérité » (A. Conan Doyle, Le signe des quatre).
    Pour certaines personnes, « programmer » et « déboguer » signifient exactement la même chose. Ce
    qu’elles veulent dire par là est que l’activité de programmation consiste en fait à modifier, à corriger
    sans cesse un même programme, jusqu’à ce qu’il se comporte finalement comme vous le vouliez. L’idée
    est que la construction d’un programme commence toujours par une ébauche qui fait déjà quelque
    chose (et qui est donc déjà déboguée), à laquelle on ajoute couche par couche de petites modifications,
    en corrigeant au fur et à mesure les erreurs, afin d’avoir de toute façon à chaque étape du processus
    un programme qui fonctionne.
    Par exemple, vous savez que Linux est un système d’exploitation (et donc un gros logiciel) qui
    comporte des milliers de lignes de code. Au départ, cependant, cela a commencé par un petit
    programme simple que Linus Torvalds avait développé pour tester les particularités du processeur InRecherche
    des erreurs et expérimentation 9
    tel 80386. D’après Larry Greenfield (« The Linux user’s guide », beta version 1) : « L’un des premiers
    projets de Linus était un programme destiné à convertir une chaîne de caractères AAAA en BBBB. C’est
    cela qui plus tard finit par devenir Linux ! ».
    Ce qui précède ne signifie pas que nous voulions vous pousser à programmer par approximations
    successives, à partir d’une vague idée. Lorsque vous démarrerez un projet de programmation d’une
    certaine importance, il faudra au contraire vous efforcer d’établir le mieux possible un cahier des
    charges détaillé, lequel s’appuiera sur un plan solidement construit pour l’application envisagée.
    Diverses méthodes existent pour effectuer cette tâche d’analyse, mais leur étude sort du cadre de ces
    notes. Nous vous présenterons cependant plus loin  quelques idées de base.


     Toujours pour les questions je suis disponible .Laissez-les en commentaires cheers 

    A bientôt .......
    Smartboy
    Smartboy
    Contributeur
    Contributeur


    Sexe : Masculin
    Messages : 190
    Karma : 24
    Date d'inscription : 20/11/2013
    Age : 28
    Localisation : Silicon Valley

    Cour 2 .La démarche du programmeur  Empty Re: Cour 2 .La démarche du programmeur

    Message par Smartboy Sam 10 Mai - 9:23

    Très bien expliqué! merci!

      La date/heure actuelle est Ven 19 Avr - 3:49