Home
Images pour programmer
Contents
1. Comment dire Nous disposons pr sent sous l une ou l autre forme Cf Chapitre 2 de la marche suivre suffisante pour que s y conformant l ex cutant ordinateur effectue la t che d crite Malheureusement l attention que nous aurons port e rendre cette marche suivre ais ment lisible par d autres aura g n ralement conduit l crire ou m me la dessiner sous une forme qui ne convient pas l ordinateur Il va pr sent falloir l exprimer dans un langage particulier compr hensible par l ordinateur dans un langage de programmation l Ces langages de programmation sont nombreux vous connaissez sans doute Basic ou Pascal Logo Fortran Cobol Il en existe des dizaines sinon des centaines Dans chaque cas il s agit bien d un langage construit de toutes pi ces et non d une langue comme celles travers lesquelles les humains communiquent entre eux Le vocabulaire de ces langages est tr s pauvre les r gles de grammaire qui les gouvernent sont arbitraires et heureusement peu nombreuses Mais il nous faudra imp rativement les respecter si nous souhaitons tre compris par l ex cutant ordinateur Inutile de souligner que ces divers langages ne sont pas les n tres Aucun n est d ailleurs non plus vraiment celui de l ordinateur On peut donc parler de langage compromis On pourra consulter le chapitre 2 Diviser pour r gner du second tome de Images pour programmer
2. Nous avons retenu deux expressions diff rentes pour commander la r p tition au sein des marches suivre Il s agit de REPETER et TANT QUE FAIRE JUSQU A CE QUE suite suite repr sent es graphiquement sous forme GNS par et Le graphisme employ permet lui seul de rendre compte des structures voqu es et dor navant j omettrai d y faire figurer explicitement les mots REPETER JUSQU A CE QUE ou TANT QUE Ces deux modes d expression ont bien entendu des rapports que je vais pr sent clairer Les exercices 2 et 3 ci dessus avaient d ailleurs pour objectif de pr parer l examen de ces liens et en y apportant une solution je pr ciserai ce qu il faut en retenir Une premi re marche suivre se pr sentait comme suit Entrez Entrez Buvez un petit verre REPETER Buvez un petit verre JUSQU A CE QUE vous voyiez double Asseyez vous Asseyez vous La traduction demand e sous forme d organigramme suppose qu on ait pris conscience de deux choses JUSQU A CE QUE vous voyiez double la condition nonc e dit quand la r p tition s arr tera on arr tera de boire lorsqu on verra double l nonc de cette condition suit la pr cision des actions r p ter Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 53 D s lors dans le formalisme des organigrammes on pourrait par exemple p
3. Comme pour la structure alternative on se heurtera donc quelques probl mes lors du codage en Basic des structures r p titives puisque ce langage dans ses versions pauvres n offre pas de traduction imm diate de ces structures 2 5 L appel de proc dure Il s agissait je le rappelle d une instruction d action complexe laiss e telle quelle dans le texte de la marche suivre mais assortie de l explicitation indispensable au niveau d une marche suivre annexe Je ne dirai presque rien pour l instant des divers modes de repr sentation de cette structure sauf en ce qui concerne les GNS Simplement le rectangle comportant une instruction trop complexe sera d doubl et un GNS annexe reprendra l explication de cette instruction complexe Par exemple Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 49 Marche suivre Annexe Comment FAIRE TELLE CHOSE COMPLEXE Fais ceci FAIS TELLE CHOSE GNS explicitant l action trop COMPLEXE complexe Fais cela J ajouterai que cette structure d appel de proc dure est omnipr sente en Pascal et pratiquement absente dans les deux repr sentations cousines que sont organigramme et langage Basic Les adeptes de Basic r torqueront sans doute que l appel de proc dure existe bel et bien dans ce langage sous la forme de l instruction GOSUB Sans entrer dans les d tails je di
4. Faire faire p Ordinateur l Description floue NS i Quoi faire J Description pr cise Comment faire W Strat gies Comment faire faire Voici l tape cruciale et absolument neuve c est celle o sur base de la description pr cise de la t che et s appuyant sur les strat gies de traitement mises au jour nous allons r diger la marche suivre destin e l ex cutant ordinateur l C est bien entendu ici que la connaissance des capacit s de cet ex cutant devient indispensable c est seulement en sachant ce qu il peut comprendre et faire que la r daction d une marche suivre prend un sens On verra que si le chapitre 2 pr cise les r gles de conception et d criture de toute marche suivre le chapitre 3 r pond la question Qui est l ex cutant ordinateur C est seulement apr s avoir trac son portrait que nous pourrons r diger les premi res marches suivre qui vont le gouverner C est videmment toujours en fran ais qu ce stade les marches suivre seront con ues et exprim es Bien entendu on le verra elles n utiliseront pas toute la richesse d expression permise par notre langue nous y mettrons en vidence certains mots et en viterons d autres nous nous aiderons de graphismes bien choisis pour en montrer la structure Mais toujours nous veillerons d boucher sur une expression aussi compr hensible et claire
5. div et mod ont la priorit 1 et ont la priorit 2 On pourrait ajouter que les parenth ses et certaines fonctions que nous verrons par la suite ont la plus grande priorit et qu il vaut mieux quelques parenth ses superflues que des expressions illisibles Pour une m me priorit les op rations sont effectu es de gauche droite Par exemple A B C est quivalent A B C A B C D est quivalent A B D C C D E K est quivalent C D E K Signalons enfin qu il n existe pas d op ration d l vation la puissance exponentiation Nous devrons donc dans un premier temps valuer les puissances enti res en les transformant en multiplications Par exemple A se calcule par A A A A 3 3 2 Les fonctions arithm tiques Nous n en avons d couvert que deux jusqu pr sent La fonction succ successeur de qui s applique une information enti re et fournit un r sultat entier Elle a le m me effet que d ajouter 1 Je peux cependant d j signaler qu il existe aussi une fonction pred qui appliqu e un nombre entier fournit le pr d cesseur de cet entier Ces fonctions n ont pas de sens dans le cas d un argument r el ou cha ne de caract res La fonction random qui d signe un entier al atoire compris entre 0 inclu et l argument exclu Ainsi random 5 d signe au hasard l un des entiers 0 1 2 3 ou 4 3 3 3 C Les expressions bool ennes Ce sont c
6. en r diger pour des ex cutants bidons Chapitre 2 Il reste donc seulement d crire les caract ristiques du v ritable ex cutant pour lequel nous allons dor navant concevoir ces marches suivre les vraies celles de la programmation l Rappelez vous que cet ex cutant celui qui nous nous adresserons n est pas seulement l ordinateur machine avec ses m moires son processeur Ce n est pas toute la quincaillerie lectronique qui nous int resse ici C est plut t l ordinateur transfigur par la possibilit qu il semble montrer de comprendre ce que je lui dis en Basic ou en Pascal ou en tout autre langage de programmation Quelles sont alors les actions l mentaires dont il semble capable Quelles conditions peut il valuer A quelles structures de contr le est il sensible Si notre ex cutant c est donc l ordinateur vu travers le langage de programmation qui l quipera il est vident que ses caract ristiques d pendent en partie du moins de ce langage Le portrait que je pourrai en tracer variera un peu selon que je m adresserai un ex cutant comprenant Basic LSE ou Pascal Mais on va le voir c est sur des points de d tail que se marqueront les diff rences les grands traits seront communs quel que soit le langage de programmation employ C est ce qui me permet de brosser un portrait robot de cet ex cutant ordinateur avant m me d indiquer dans le d tail les caract ristiques du lang
7. CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 94 Images pour programmer 1 re partie aurons recours travers lui Si j ignore qu il est capable d additionner des nombres ou d valuer le nombre de caract res composant une cha ne je le croirai incapable de certains traitements Mais cette connaissance indispensable ne suffit pas programmer c est davantage d cortiquer une action complexe en une succession d actions l mentaires o interviennent ces outils c est d cider quand et comment ces outils seront utilis s 3 Ces outils sont videmment adapt s aux informations manipuler Cela n tonnera personne de savoir qu en ce qui concerne les nombres ils ont pour nom addition multiplication division soustraction Ceux servant manipuler les cha nes de caract res sont plus difficilement pr visibles et beaucoup plus d pendant du langage compromis choisi 4 Parmi ces outils il en est dont je vais reparler dans un instant propos des structures de contr le et qui sont fort importants ce sont ceux qui servent aux diverses comparaisons gal lt strictement plus petit gt strictement plus grand lt plus petit ou gal gt plus grand ou gal diff rent Voici donc notre ex cutant au milieu des rayonnages avec les casiers tiquet s pr t se rendre si la marche suivre le lui commande la porte ou la fen tre disposant sur sa table de travail
8. Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 15 puisque ayant choisi un langage de programmation je ferai l effort d y exprimer mes marches suivre et que par ailleurs l ordinateur acceptera que je m adresse lui dans ce langage qui n est pas vraiment le sien C est dire qu en tout cas du point de vue de l ordinateur une traduction restera indispensable Mais heureusement c est lui qui s en chargera Ainsi chacun y met du sien j accepte d exprimer mes marches suivre dans un langage qui n est pas le mien et l ordinateur dont ce n est pas non plus le langage naturel accepte de se charger de la traduction pour d boucher sur une version qui enfin sera la sienne et qu il pourra ex cuter Mon objectif n est videmment pas ici d entrer dans des d tails techniques propos de ces probl mes II faut cependant savoir que le seul langage compr hensible par l ordinateur ou plus pr cis ment par le processeur qui en est le c ur ou le cerveau f est le langage machine et non l un quelconque des langages de programmation cit s ci dessus c est pour cela qu une traduction est indispensable J ajouterai simplement que comme toujours si l ordinateur para t capable de traduire un texte qui lui est fourni dans l un ou l autre langage de programmation c est qu il est alors gouvern par un programme qui lui explique comment effectuer cette traduction Ainsi d s que je dispose pour un ordinateur
9. Pas de r gle syntaxique tr s stricte ce niveau du bon sens en tant que r dacteur et la volont de faciliter la t che de celui qui aura relire et comprendre le programme con u Dans le m me ordre d id e nous avons pris la bonne habitude de choisir des noms de variables parlants Rien n est plus p nible que ces variables X Y T C dont l tiquette n annonce en rien le contenu Cette pr occupation de lisibilit est sans doute un peu inutile pour des programmes qui font seulement quelques lignes Elle deviendra imp rative d s que les exemples trait s deviendront plus complexes et d boucheront sur des programmes plus longs Faute de cette volont d tre clair et lisible les textes des programmes deviennent rapidement une jungle dans lequel le lecteur se perd y compris d ailleurs lorsque le lecteur est le concepteur m me du programme qui essaye tout b tement de se relire C est pour cette raison que d s pr sent je vous recommande de prendre ces bonnes habitudes de r daction et de pr sentation Il vaut mieux avoir adopt cette attitude lorsqu elle est encore accessoire et facultative que de l ignorer lorsqu elle devient indispensable Nul ne saura jamais les milliers de programmes qui ont t mis la poubelle faute qu on puisse simplement les relire pour les modifier et les amender La programmation c est essentiellement de la mati re grise ajout e il faut veiller ce qu elle soit fa
10. l utilisateur Rien de ce qui se passe l int rieur du local o l ex cutant est en train de s agiter au milieu des casiers n est visible de l ext rieur ni a fortiori le texte de la marche suivre qui provoque cette agitation L ignorance pour le programmeur de cette r alit conduit des situations loufoques du genre de la suivante Pour l une ou l autre raison je souhaite que l ex cutant recueille une information qui est le nom de l utilisateur et je voudrais qu il la d pose dans le casier Client Je commande donc dans la marche suivre Lis et place dans Client CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 92 Images pour programmer 1 re partie L ex cutant va donc entrouvrir la porte et attend attend attend que l utilisateur qui lui ne sait rien de tout cela puisque je n ai pas command d affichage lui fournisse son nom Les deux protagonistes attendent donc chacun d un c t de la porte l un l utilisateur ne sachant pas pourquoi la porte s entrouvre ce moment l l autre l ex cutant qu on veuille bien fournir l information souhait e J aurais donc d crire dans la marche suivre par exemple Affiche Donnez moi votre nom Lis et place dans Client A l ex cution l utilisateur verra d abord s afficher la fen tre le message Donnez moi votre nom et la porte s entrouvrant imm diatement apr s il sait qu il doit y glisser DUPONT ou DURAND Avec l affichage je vien
11. 89 Debut Donnee Solde Nom X P rix Somme MESSAGE otal CLIENT Malle informations A travers cette porte il pourra recevoir des informations de l ext rieur la fen tre il pourra afficher des informations destin es tre lues l ext rieur L autre nom de la porte c est videmment clavier et celui de la fen tre c est bien s r cran C est travers la porte clavier que l ex cutant saisira les donn es attendues c est sur la fen tre cran qu il affichera les r sultats obtenus Il reste seulement pr ciser les instructions par lesquelles je commanderai l ex cutant de se rendre la porte pour y prendre les informations fournies ou d afficher la fen tre d autres informations 2 1 L instruction d entr e Il s agit l de la deuxi me instruction d action l mentaire C est l instruction d entr e ou de lecture celle qui commande l ex cutant de placer dans un casier une information recueillie la porte et venant de l ext rieur Va la porte attend l information qu on va te fournir et place la dans tel casier que nous abr gerons par Lis et place dans tel casier C est nouveau pour sacrifier une habitude bien enracin e en programmation que je parle d instruction de lecture et que j cris Lis et place dans En r alit l ex
12. expression 90 F face la machine 17 fonctions arithm tiques 157 G GNS 35 22 ao t 2002 Ch Duch teau 164 gotoxy 142 156 H Habillage du programme 124 hasard 140 I identificateur 123 147 if 135 153 implicite 13 indentation 40 127 137 149 information 83 informations num riques 84 initialisation 104 113 instruction d action l mentaire 24 87 94 instruction d affectation 87 150 instruction de sortie 93 instruction d entr e 91 instructions d organisation 26 integer 123 interpr teur 15 L langage compromis 15 langage de programmation 14 lecteur 35 70 126 lecture 91 124 151 lisibilit 127 M malle informations 88 marche suivre 8 23 mati re grise ajout e 127 mod 156 mot r serv 146 moyenne 115 N nombre au hasard 113 139 nombres 84 O op rations arithm tiques 156 ordinateur 1 Ch Duch teau Images pour programmer l re partie organigramme 58 organigrammes 35 outils 95 Pascal 35 146 pred 157 pr sentation Pascal 149 probl mes 5 procedure 131 155 proc dure 26 108 155 program 123 146 programmation 7 programme 16 programmer 6 programmeur 4 pseudo code 35 Q Quoi faire 10 R random 140 157 read 151 readin 124 151 real 123 repeat 154 repeat until 124 r p tition 30 44 153 S sentinelle 108 s quence 25 36 37 signal 108 111
13. pour compter les donn es integer begin Avertissement de l utilisateur writeln Vous allez me fournir des nombres r els en faisant ete Net ee chacun du eux CENTS ST EEE MECS CHE CE writeln Vous terminerez la s rie par 0 et je vous dirai alors combien writeln de nombres vous m avez fournis au total Initialisation du compteur Compteur 0 repeat We MDOonneratnenomereu E readin NombreFourni Comtesse 32 Conmetcense Ir until NombreFourni 0 writeln Nombre de donn es fournies Compteur end Les commentaires sont ici not s en caract res gras et condens s On voit qu ils sont enclos dans les symboles On pourrait aussi employer Ces commentaires sont bien entendu Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 125 ignor s de l ex cutant et ne seront pas visibles pour l utilisateur Ils peuvent tre introduits n importe o dans le texte du programme sauf videmment en plein milieu d un mot r serv ou d un identificateur ce ne sont pas des instructions et d s lors il est inutile de les faire suivre par le point virgule A c t des commentaires qui explicitement sont l pour faciliter la lecture et la compr hension du programme il faut noter la pr sentation utilis e passages la ligne indentation retrait de certaines parties du programme par exemple le corps de la boucle de r p tition passage de lignes blanches
14. qualit s de rigueur et de docilit d s lors et surtout pas d invention de cr ativit ou d imagination Ce qui est indispensable c est de savoir quand la virgule ou le point sont requis comment il faut orthographier les quelques mots du langage choisi quelles sont les tournures permises 5 A l issue de cette tape au cours de laquelle je le souligne l ordinateur n est toujours pas indispensable je dispose donc d un programme Un programme c est donc seulement une marche suivre crite dans un langage particulier L avantage de cette forme d expression de nos marches suivre c est qu elle est compr hensible par l ordinateur son d savantage c est d tre nettement moins lisible pour nous La description sch matique s enrichit donc d une tape suppl mentaire T che Faire faire p Ordinateur Description floue W Quoi faire ji Description pr cise Programme Comment faire Comment dire Mi mm a F k 0 0 i Strat gies gt Comment faire faire gt Marche suivre Jusqu ici le travail d analyse et de programmation ne n cessitait pas la pr sence effective de l ordinateur Disposant maintenant du programme con u gr ce aux tapes pr c dentes je vais enfin me retrouver face l ordinateur pour lui fournir le r sultat de mes cogitations et lui demander d ex cuter la t che envisag e 3 5
15. videmment analyste programmeur a omis d envisager les cas comme le v tre et n a donc pas indiqu l ordinateur d y apporter un traitement convenable ou m me je suis incomp tent et incapable d utiliser correctement l ordinateur quip du logiciel ad quat pour traiter votre probl me Nous touchons l deux traits fondamentaux de l informatisation L ordinateur est devenu un parapluie providentiel derri re lequel abriter tout un tas d incomp tences soit de ses utilisateurs soit le plus souvent des concepteurs des programmes qui le contr lent et le font agir Le passage du faire au faire faire requis par l informatisation gomme volontiers les cas limites ou exceptionnnels soit parce que ceux ci n ont pas t d busqu s lors de l analyse soit parce que les efforts de programmation n cessaires leur mise en oeuvre sont trop importants Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 69 La souplesse apport e par les r actions sur le tas d un tre humain face aux situations nouvelles et difficilement pr visibles est videmment absente du comportement de l ordinateur la seule souplesse alors est celle que le programmeur a bien voulu inclure dans les traitements command s par ses programmes Et c est vrai que d s lors l informatique a une tendance naturelle standardiser supprimer les nuances raboter les cas extr mes Dans la solution propos
16. A B C 12 19 14 D 19 12 5 Quelle sera la situation de ces casiers apr s ex cution de a AB B amp A b B amp A A amp B c C A B B lt A B A amp B dd B amp A C amp B DC A lt D 2 Je souhaite que l ex cutant change les contenus des deux casiers A et B Quelles instructions comportera la petite marche suivre que je dois d s lors lui soumettre 3 Quel est l effet de la marche suivre suivante A A B B A B A A B 4 Je souhaite une permutation circulaire des contenus des casiers A B et C Donc Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 97 nr P Quelle marche suivre dois je lui fournir 5 Critiquez et commentez les instructions suivantes Lis et place dans NOM SOMME 5 lt TOTAL RESULTAT lt SOMME 15 6 Ecrire la petite marche suivre qui permettra l utilisateur d obtenir la somme et la diff rence de deux nombres r els qu il fournira 7 Pour chacun des petits programmes suivants et tant donn les informations fournies par l utilisateur quelles sont les valeurs qu il verra affich es a Programme X et Y sont des casiers de type nombre entier Lis et place dans X Lis et place dans Y Lis et place dans X Place X Y dans X Affiche X Y L utilisateur fournit 2 puis 3 puis 4 b Programme X et Y sont des casiers de type entier Lis et place dans X Place 0 dans Y Place X Y dans X
17. Quelques commentaires 4 1 viter la confusion des genres Je suis de cette g n ration de ceux qui font de l informatique sans tre informaticien sans avoir re u une formation d informaticien Mon seul contact avec le monde de l informatique au cours de mes tudes de math matique a t une visite du centre de calcul de l universit j en ai seulement retenu le bruit et la rapidit des normes imprimantes Plus tard quand j ai eu besoin d utiliser l ordinateur essentiellement pour calculer on m a dit mais c est bien simple il suffit de trois jours de FORTRAN ce que j ai cru Et pendant 10 ans j ai pens que programmer c tait crire des choses en FORTRAN et simultan ment j ai constat que si j crivais de tels programmes c tait essentiellement pour les corriger puis pour corriger les version corrig es etc et non comme on pourrait le croire pour faire faire des choses par un ordinateur J ai donc v cu de l int rieur cette poque o face une t che d crite de mani re tr s floue le r flexe tait de sortir les feuilles sp ciales destin es recevoir les textes des programmes FORTRAN puis courir aux perforatrices pour confectionner le paquet de cartes perfor es correspondant et plein de f brilit soumettre l ordinateur le r sultat de cette absence de r flexion pr alable Se passait alors ce qui doit immanquablement se passer en pareil cas apr s les allers et retours
18. T l phonez lui Traduire chacun des GNS propos en organigramme Notez bien qu il n est pas demand de juger de la coh rence ou de l opportunit des exemples propos s il faut seulement les repr senter sous forme GNS et non en am liorer la teneur 2 Pouvez vous traduire sous forme GNS ou en pseudo code les organigrammes suivants a Prenez le sel te platestassez sal gt vrai gt faux Y Ajoutez une pinc e de sel Y Goutez D lt Y Y Mettez au four Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 59 b Prenez la premi re bouteille oO lt lt LR bouteille est k miS vid faux Y Versez dans le verre Y Passez au verre suivant r Y lt Y Y Passez la bouteille suivante __Freste des verres lt gt vrai gt rempli faux Yy Servez 6 Et si l on r digeait des marches suivre Nous avons pr sent notre disposition les outils n cessaires la conception et l criture de marches suivre Bien entendu je n ai pas encore bross le portrait de l ex cutant ordinateur cela sera fait au chapitre suivant Cependant nous pouvons d j jouer commander d autres ex cutants en commen ant par exemple par 6 1 Le robot peleur de pommes
19. e en effet cause du choix de la structure REPETER la question de savoir si la marmite est remplie est pos e trop tard quand le robot aura d j fait tout ce qu il faut pour y ajouter une pomme de terre en plus et en trop Il faudrait donc commencer avant tout travail par faire valuer cette condition C est possible par exemple si j exprime la r p tition gr ce la structure TANT QUE TANT QUE la marmite n est pas remplie TANT QUE la marmite n est pas remplie FAIS TOUT CE QU IL FAUT POUR FAIS TOUT CE QU IL FAUT METTRE UNE POMME DE TERRE EN POUR METTRE UNE POMME DE PLUS DANS LA MARMITE TERRE EN PLUS DANS LA MARMITE Cette fois et condition que nous arrivions expliquer au robot dans une annexe COMMENT FAIRE TOUT CE QU IL FAUT POUR METTRE UNE POMME DE TERRE EN PLUS DANS LA MARMITE nous disposons d une marche suivre correcte Le probl me global du remplissage de la marmite a maintenant disparu Il a donn naissance une question plus simple puisqu il reste seulement expliquer comment peler une pomme de terre suppl mentaire On sent nouveau que le seul param tre g nant ce propos c est l tat du panier au moment o l on va commander au robot de peler cette pomme de terre en plus Il suffit donc de faire d abord remplir le panier si c est n cessaire et seulement apr s d exiger de peler Cela conduit COMMENT FAIRE TOUT CE QU IL FAUT COMMENT FAI
20. e par une succession de rectangles accol s dans lesquels s inscrivent les instructions d action Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 37 Fais ceci Fais cela 2 2 3 Repr sentation en Pascal Outre la constatation que les instructions d action seront cod es dans un langage davantage proche de l anglais la s quence se marquera par le fait que les instructions seront g n ralement s par es par des et que de plus pour am liorer la lisibilit nous effectuerons un passage la ligne DO CHTS Do that 2 2 4 Repr sentation en organigrammes Les instructions seront aussi enferm es dans des rectangles reli s par des fl ches qui marqueront la succession Fais ceci Fais cela l Outre un langage plus proche de l anglais la s quence est signal e par la num rotation des instructions 2 2 5 Repr sentation en Basic TORDO RGNNES G0 DO TNE J esp re que personne ne croit r ellement que ces Do this Do that constituent des instructions Pascal ou Basic Mon but ici n est videmment pas de d crire ces langages mais seulement de montrer comment les structures de contr le s y incarnent En r sum pour la s quence CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 38 Images pour programmer 1 re partie Pseudo code GNS Pascal Organigramme Basic Fais ceci Fais ce
21. est venue l tape de traduction l ordinateur sous l emprise du programme compilateur traduit le texte exprim dans le langage compromis dans le langage de la machine le seul que comprenne le processeur A l issue de chacune de ces tapes le r sultat du travail texte du programme pour l tape d dition version traduite apr s la phase de compilation est g n ralement sauv sur un support m moire externe disque ou disquette le plus souvent Tout cela la m taphore du gestionnaire de casier le cache ou le travestit a n a gu re d importance l objectif ici c est de d couvrir ce qu est programmer et en particulier puisque programmer c est faire faire des choses par un ex cutant d apprendre quels en sont les grands traits Si je fais le point sur ce que nous venons de d couvrir propos des casiers que l ex cutant ordinateur devra g rer je peux proposer le sch ma suivant Un casier Son nom Son type Son contenu 5 entier tiquette r el ce que l ex cutant manipulera inamobible cha ne de caract res choisi par le programmeur des informations la forme d pend du nombre entier langage de nombre r el programmation cha ne de caract res Il me reste reparler des tiquettes des casiers pr sent que nous savons que ce qui y sera d pos c est de l information J ai dit que nous programmeurs avions le libre choix des noms que nous ferons porter aux casiers utilis s sauf quelques co
22. l issue de l tape du Comment faire faire ce le sera beaucoup moins lorsque la marche suivre aura pris la forme d un programme oblig de respecter toutes les r gles syntaxiques et orthographiques impos es par le langage de programmation Il est pr f rable de m ler le moins possible les difficult s de conception de la marche suivre qui sont on le verra consid rables avec celles inh rentes au respect de la syntaxe du langage de programmation Il est comme toujours pr f rable de morceler les difficult s que de les aborder ensemble Surtout le mode d expression retenu pour les marches suivre tr s largement ind pendant du langage de programmation choisi pourra donc tre adapt plusieurs de ces langages En effet le portrait que je tracerai de l ex cutant ordinateur restera pratiquement identique quel que soit le langage dans lequel je finirai par devoir Rappelez vous la b che courageuse CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 16 Images pour programmer 1 re partie m adresser lui Ainsi la marche suivre explicitant telle t che sera la m me que je finisse par m adresser l ordinateur en Pascal ou en Basic par exemple 4 Les qualit s dont il faudra faire preuve cette tape sont bien diff rentes de celles n cessaires aux tapes pr c dentes Ici c est le r gne des conventions de la grammaire et de l orthographe sp cifiques au langage de programmation choisi
23. lire 100 donn es r elles fournir ensuite leur moyenne la plus petite et la plus grande donn e lue Voici enfin une t che un peu moins gratuite et un peu plus utile Cette utilit est cependant gravement r duite par le fait que le programme r alis ne pourra traiter qu une succession d exactement 100 donn es ni plus ni moins Pas question d s lors de s en servir pour calculer la moyenne d une s rie quelconque de donn es Un exercice Cf ci apr s tentera d tendre ces sp cifications pour obtenir un produit r ellement utilisable 1 5 2 Comment faire Que retiendrons nous face ce travail et question cruciale sommes nous forc s de garder en t te simultan ment les 100 donn es traiter En r alit chacune des donn es ne sera retenue qu un court instant le temps de la traiter Ce traitement de la donn e re ue consistera d abord la compter puisqu il faut arr ter la centi me qui sera fournie Ensuite pour pouvoir la fin valuer la moyenne il suffira qu au fur et mesure je retienne la somme des donn es d j acquises Je mettrai donc cette somme jour en y ajoutant chaque fois la derni re donn e re ue Enfin tout moment je garderai aussi en m moire quelle a Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 113 t jusqu alors la plus petite et la plus grande donn e chaque donn e nouvelle sera compar e ces deux quantit s et elles s en
24. passe de 3 le nombre de face et fournir alors le nombre de lancers qui auront t n cessaires pour cela On peut utiliser l affectation Place au hasard soit 1 soit 2 dans 4 Simuler 1000 lancers successifs d une pi ce de monnaie en fournissant ensuite le nombre de pile et le nombre de face obtenus 5 Simuler des lancers successifs d un d en montrant chacun des r sultats et en s arr tant au troisi me six obtenu Signaler ensuite en quelle position se trouvait le premier six obtenu en quelle position se trouvait le second et en quelle position se trouvait le troisi me 6 Lire une valeur enti re et positive N calculer et afficher alors N factorielle de N Rappel N 1 2 3 4 N 7 Simuler des jets successifs d un d en montrant les r sultats en arr tant lorsqu un cinq est imm diatement suivi d un six Fournir alors le nombre de un obtenus 8 Lire successivement des nombres r els en s arr tant lorsque 0 est fourni Donner alors la somme des nombres positifs et celle des nombres n gatifs 9 Demander l utilisateur combien de donn es enti res seront lire proc der la lecture de ces donn es en pr cisant ensuite combien de fois il s en est pr sent qui soient identiques la premi re 10 Lire des nombres entiers en arr tant lorsque 0 est fourni signaler alors combien de fois il s est pr sent deux 1 successifs Par exemple si la succession des nombres est 1411211
25. sans aucune CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 8 Images pour programmer 1 re partie possibilit de modifier des instructions inad quates ou insuffisantes sans pouvoir intervenir dans l ex cution TOUT doit tre pr vu dans la recette con ue rien ne doit tre laiss l appr ciation de l ex cutant Il n est capable d aucune initiative tout au plus dans le cas d une recette incorrecte son activit s interrompra ou d bouchera sur un plat immangeable et qui n aura plus que de lointains rapports avec la blanquette de veau qu on souhaitait initialement faire confectionner Lorsqu il s agit d indiquer quelqu un comment il peut parvenir en voiture jusque chez moi cela ne pose aucun probl me lorsque je suis assis c t du conducteur pour lui donner en direct toutes les instructions n cessaires Mais s il s agit de lui expliquer l avance comment se rendre seul chez moi ceci n cessite alors beaucoup plus de soin et de rigueur fournir la marche suivre qui lui permettra d arriver coup s r est bien compliqu surtout s il est born au point de ne pas savoir lire une carte et m oblige ainsi transcrire par crit toutes les indications indispensables Programmer c est donc r diger une marche suivre pour faire faire une t che par un ex cutant aux capacit s limit es Je pr f re le terme marche suivre celui plus classique d algorithme D abord la coloration de ce dernie
26. son ex cution par l ordinateur plusieurs tapes sont indispensables Et d abord il faudra r pondre la question suivante CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 10 3 1 Images pour programmer 1 re partie Quoi faire En effet la t che se pr sentera g n ralement d abord de mani re tr s floue Il sera donc primordial dans un premier temps d affiner sa description Ainsi face la besogne consistant crire un nombre en toutes lettres une s rie de questions viendront pr ciser ce qui doit tre fait De quelle taille seront les nombres crire Plus petits que cent Inf rieurs un million A un milliard Les nombres comporteront ils une partie d cimale Dans ce cas comment exprimer cette derni re Faut il les crire la belge septante huit ou la fran aise soixante dix huit Faut il les crire en majuscules En minuscules On le voit m me pour une t che simple il est indispensable de pr ciser ce qui est attendu ce quoi on s engage Il est compl tement illusoire de croire qu on va pouvoir faire faire quelque chose par Cette tape du Quoi faire est en quelque sorte celle du cahier des charges celle de la recherche des sp cifications pour parler comme les informaticiens C est celle qui nous fera passer de la description floue de la t che sa description pr cise T che Faire faire Bp Ordinateur Description
27. 1 dans le casier Compteur MotFourni ATTENTION JUSQU A CE QUE MotFourni ATTENTION REPETER Affiche Donnez un mot FS arr Lis et place dans MotFourni Lis et place dans MotFourni Place Compteur 1 dans le casier Compteur Place Compteur 1 dans le casier Compteur MotFourni STOP JUSQU A CE QUE MotFourni STOP Affiche Compteur Affiche Compteur On constate que les deux structures r p tiuves UCLHIQIIUGIIL 14 1 p11DG UU IUII BIUUPE UT trois actions Nous pourrions donc pour sacrifier une certaine paresse d signer par une seule instruction ce groupe de trois instructions l mentaires Notre marche suivre comporterait alors une instruction d action complexe appel de proc dure explicit e dans une marche suivre annexe proc dure Ainsi en d signant par FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER l instruction complexe qui se scindera en trois instructions l mentaires la marche suivre devient Place 0 dans le casier Compteur Place 0 dans le casier Compteur P REPETER FAIS TOUT CE QU IL FAUT POUR FAIS TOUT CE QU IL FAUT POUR LIRE LIRE UN MOT ET LE COMPTER UN MOT ET LE COMPTER MotFourni ATTENTION VoiFourni A NTION REPETER FAIS TOUT CE QU IL FAUT POUR B A LIRE UN MOT ET LE COMPTER MotFourni STOP Affiche Compteur Affiche Compteur avec CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 106 Images
28. 100 Images pour programmer 1 re partie 1 1 1 Enonc Quoi faire probl me lire successivement des nombres r els arr ter la donn e de 0 fournir alors le nombre de donn es lues Ce qui est attendu est suffisamment clair pour ne pas n cessiter de d veloppements plus longs On peut imaginer que quelqu un l utilisateur va nous dicter des nombres lorsque c est 0 qui sera fourni on attend simplement que nous r pondions en pr cisant combien de nombres auront t fournis au total Cette t che est d bile elle ne devient un probl me que parce que son nonc commence par Faire Le probl me c est de r diger la marche suivre qui expliquera l ex cutant ordinateur comment accepter des nombres fournis travers la porte clavier par l utilisateur les compter et donner l apparition de 0 qui doit tre compt aussi le r sultat sur la fen tre cran Il reste d s lors passer l tape suivante comment r agirions nous face cette t che Quelle serait notre m thode 1 1 2 Comment faire Cette tape est celle o nous imaginant aux prises avec la t che nous sommes capables d exprimer les strat gies que nous employons Le travail ici est tellement l mentaire que nous sommes bien en peine d indiquer comment nous nous y prenons Je vais d s lors pr ciser un peu le contenu de cette tape en donnant essentiellement la consigne suivante que retenez vous lorsque vous te
29. 2002 Programmer 3 ce n est pas la forme qui nous importe mais le sens que nous lui attachons Ainsi nous ne lisons g n ralement pas Germinal ou Notre Dame de Paris pour le plaisir de pouvoir d clarer que l un comporte 1 248 368 mots et l autre 1 168 413 Nous n appr cions pas la port e d un essai ou la beaut d un po me sur base du nombre de fois que le mot et s y trouve pr sent Lorsqu il s agira de texte l ordinateur manipulateur formel ne pourra se livrer qu des op rations portant sur les caract res qui le constituent sans r f rence la signification v hicul e Nous parlerons d ailleurs toujours de cha nes ou successions de caract res et non de mots On voit que dans les t ches num r es ci dessus j ai soigneusement vit des travaux comme r sumer un texte traduire un texte appr cier la po sie se d gageant d un texte Ce ne sont plus l ce que j appelle des traitements formels ne s attachant qu la forme du texte et pas ce que nous nommons son sens Il ne viendrait l id e de personne pour r sumer un texte de se contenter de le r crire en passant un mot sur deux ce qui constituerait un traitement purement formel pour r sumer un texte nous devons avoir saisi son sens avoir identifi les id es importantes les th ses avanc es Et tous ces concepts renvoient autre chose qu l aspect formel du texte De m me pour traduire il ne
30. Affiche X Y L utilisateur fournit 2 8 Expliquez les termes suivants type d un casier utilisateur 9 Que manipule l ex cutant ordinateur CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 5 Tours de main Nous savons pr sent que programmer ce sera r diger une marche suivre comportant instructions d action et structures de contr le pour un ex cutant gestionnaire de casiers manipulateur d informations communiquant avec l ext rieur et disposant de quelques outils Il reste maintenant pr senter un certain nombre d exemples illustrant la d marche de traitement informatique d une t che Le chemin nous le savons sera chaque fois balis par les tapes mises en vidence QUOI FAIRE COMMENT FAIRE COMMENT FAIRE FAIRE et COMMENT DIRE Cette derni re tape traduction en Pascal de la marche suivre obtenue sous forme GNS ne sera cependant d crite qu au chapitre suivant Les premi res t ches abord es seront particuli rement simples pour ne pas dire ridicules Elles seront peu motivantes conduisant en g n ral des programmes qui ne seront pas utilis s Connaissant les outils de conception d une marche suivre et les instructions d action l mentaire permises pour l ex cutant ordinateur il s agit pr sent non de traiter des t ches utiles ou passionnantes mais d acqu rir un certain nombre de tours de main de la programmation Il faut donc jouer le jeu lorsque l
31. C CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 28 Images pour programmer 1 re partie Enfoncer compl tement l acc l rateur pendant le lancement du moteur si la temp rature est inf rieure 0 C Ne pas actionner le d marreur plus de 30 secondes Sile moteur ne d marre pas Pr chauffer encore une fois apr s une pause de 30 secondes Actionner nouveau le d marreur Continuer actionner le d marreur si des cr pitements irr guliers d allumage se produisent jusqu ce que le moteur tourne Repousser compl tement le bouton tirette de commande du dispositif de d part froid apr s une minute environ lorsque le moteur est lanc Marche suivre n 2 Nous y retrouvons bien entendu les instructions d action l mentaire Tirer fond le bouton de commande du dispositif de d part froid Activer nouveau le d marreur Etc La structure de contr le s quentielle m me si elle n est pas explicitement rappel e est bien entendu pr sente Un ex cutant normal commencera par le d but et effectuera successivement les actions command es par la s quence des instructions Si nous n y trouvons pas d appel de proc dure cette marche suivre illustre cependant une nouvelle structure de contr le Ne pas acc l rer pendant le lancement lorsque la temp rature est sup rieure 0 C Enfoncer compl tement l acc l rateur pendant le lancemen
32. Compteur Compteur 1 until NombreFourni 0 writeln Compteur end pourrait aussi s crire program ARRET _ A O var NombreFourni real Compteur integer begin Compteur 0 repeat readln NombreFourni Compteur Compteur l until NombreFourni O writeln Compteur end ou encore program ARRET_A O0 var NombreFourni 5 Dans les impl mentations plus r centes une variable peut tre simplement de type string sans crochet elle permet alors d accueillir des cha nes de taille maximale soit 255 caract res CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 148 Images pour programmer l re partie real i Compteur integer Compteur 0 LCERE Inutile de souligner que la premi re version est plus lisible que les deux suivantes 3 1 3 2 Les instructions en Pascal Ainsi que nous le d couvrirons ci dessous il ne faut pas confondre ce que j appellerai instruction en Pascal et le concept d instruction d action l mentaire que nous connaissons Bien entendu les trois instructions d action l mentaire donneront naissance aux trois instructions Pascal d affectation de lecture readin et d affichage write ou writeln Mais la traduction en Pascal des structures de contr le donnera lieu ce que nous appellerons aussi instruction en Pascal repeat until while do if then else etc Nous parlerons donc de l instruction repeat until de
33. DIEUDONNE D BERTHON F NEVIANS A Apprendre Programmer Niveau l Cedic Nathan Paris 1985 DIJKSTRA E A short introduction to the art of programming International Summer School on Structured Programming Lecture Notes Eindhoven 1971 DIJKSTRA E W FEIJEN W H J A Method of Programming Addison Wesley 1988 DUCHATEAU C Informatique et Enseignement Secondaire Une proposition de bibliographie CeFIS Facult s N D de la Paix Namur 1982 DUCHATEAU C Programmer CeFIS Facult s N D de la Paix Namur 1982 DUCHATEAU C L informatique technique nouvelle ou nouvel humanisme CeFIS Facult s N D de la Paix Namur 1982 DUCHATEAU C Programmer Pour une d couverte des m thodes de la programmation Wesmael Charlier Leuze Longchamps 1983 DUCHATEAU C Incursion au pays du faire faire CeFIS Facult s N D de la Paix Namur 1983 DUCHATEAU C Du savoir faire au savoir faire faire CeFIS Facult s N D de la Paix Namur 1984 DUCHATEAU C Additionner deux entiers ou faire additionner deux entiers Du probl me l algorithme CeFIS Facult s N D de la Paix Namur 1985 DUCHATEAU C Compl ments sur le Langage Pascal et le syst me U C S D CeFIS Facult s N D de la Paix Namur 1985 DUCRIN A Programmation 1 Du probl me l algorithme Dunod Paris 1984 DUCRIN A Programmation 2 De l algorithme au programme Dunod Paris 1984 ENGEL A Math matique l mentai
34. Et face la machine Nous voici donc au terme du parcours aux prises avec la derni re tape celle du travail effectif l ordinateur Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 17 T che p Faire faire ps Ordinateur Description floue Ex cution y JA T Quoi faire A la machine Description pr cise Programme Comment faire Comment dire Strat gies gt Comment faire faire Marche suivre Ce travail comportera en g n ral plusieurs phases 1 Je vais d abord fournir l ordinateur le texte de mon programme exprim dans le langage de programmation retenu L ordinateur se contente d entasser ce texte dans sa m moire tout en m aidant le confectionner Il est alors gouvern par un programme sp cifique qu on appelle un diteur de texte Ce programme le transforme en quelque sorte en une super machine crire ceci pr s que le texte s inscrit l cran et non sur une feuille de papier et qu il prend simultan ment place dans la m moire centrale 2 A l issue de cette tape d dition le texte r sidant en m moire est g n ralement sauv sur un support m moire externe cassette disquette ou disque dur Il y acquiert une existence permanente contrairement la version pr sente en m moire vive qui peut dispara tre par exemple lors d une coupure de courant r duis
35. Passe au verre suivant 7 2 4 Le robot peleur de pommes de terre 77 Choisis le premier verre TANT QUE tous les verres ne sont pas remplis SI le verre choisi n est pas rempli ALORS SI compte gouttes est vide ALORS Remplis Presse SINON Passe au verre suivant Choisis le premier verre TANT QUE tous les verres ne sont pas remplis SI compte gouttes est vide ALORS Remplis SI le verre choisi n est pas rempli ALORS Presse SINON Passe au verre suivant Que pensez vous des GNS ou pseudo codes suivants destin s au robot peleur de pommes de terre a marmite pas remplie panier vide RE EE marmite pas remplie panier pas vide marmite pas remplie SI marmite pas remplie ALORS Si panier vide ALORS Remplis TANT QUE marmite pas remplie P le Remplis TANT QUE panier pas vide TANT QUE marmite pas remplie P le Remplis CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 78 panier vide Remplis Er marmite pas remplie ET panier pas vide Ch Duch teau 22 ao t 2002 Images pour programmer 1 re partie SI panier vide ALORS Rembplis TANT QUE marmite pas remplis ET panier pas vide P le Rembplis CeFIS FUNDP 2002 3 MAIS QUI EST L EXECUTANT ORDINATEUR Nous savons Chapitre 1 que le c ur de l activit de programmation est la r daction de marches suivre nous avons vu de quoi elles taient constitu es et avons jou
36. Proc dure annexe COMMENT FAIRE TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER Affiche Donnez un mot Lis et place dans MotFourni Place Compteur 1 dans le casier Compteur En voici la traduction en Pascal illustrant la structure d appel de proc dure program ATTENTION 2 var MotFourni Soie Compteur integer procedure TRAVAILLE begin write Donnez un mot 1 readin MotFourni Compteur Compteur 1 end begin repeat TRAVAILLE until MotFourni ATTENTION repeat TRAVAILLE Diner Morrotiens VSTrOP NE writeln Compteur end Remarques 1 CeFIS FUNDP 2002 procedure TRAVAILLE 1 2 4 4 2 3 3 Le texte de la proc dure annexe est annonc par le mot r serv procedure Il se situe entre la partie d claration et le corps du programme principal La proc dure est d sign e par un identificateur ici TRAVAILLE qui suit les r gles habituelles 22 ao t 2002 Ch Duch teau 130 Images pour programmer 1 re partie 2 On verra que le texte d une proc dure peut comporter apr s son en t te une partie d claration elle comporte en tout cas un corps reprenant la traduction de la marche suivre correspondant l annexe situ comme pour le corps du programme principal entre les mots begin et end Cependant le texte de la proc dure se termine par un point virgule et non par un point final 3 TRAVAI
37. Puis un informaticien g nial John Backhus eut l id e du premier langage volu Fortran Ces langages se multipli rent et on s occupa beaucoup d eux les tudiant les compilant les enseignant Ces activit s occultaient compl tement les vrais probl mes de la programmation Il a fallu attendre la fin des ann es 60 pour que Edsger Dijkstra pose enfin les vrais probl mes de la programmation d clenchant ainsi un vaste travail de recherche qui aboutit faire de la programmation une discipline scientifique Il fallut encore du temps pour que les r sultats de la recherche produisent une mutation profonde de la p dagogie de la programmation Mais me direz vous encore s il a fallu si longtemps pour percevoir le probl me et de tels efforts de recherche pour le ma triser c est que la programmation est extr mement compliqu e n cessite une th orie savante et n est accessible qu aux forts en maths L histoire des sciences montre que la solution simple est rarement la premi re qui s impose l esprit Le grand math maticien Lighthill a d dicac un de ses ouvrages Dirac qui supposa que c tait vrai Schwartz qui montra que c tait vrai Temple qui montra que c tait simple Nous en arrivons en programmation la phase o des p dagogues montrent que c est simple Lisez ce livre et vous verrez qu il n attend de vous que l effort de bien vouloir suivre l auteur dans la voie qu
38. Traduction en Pascal 131 Compteur Compteur 1 end begin writeln Vous allez me fournir successivement des mots writeln d au plus 20 lettres en faisant suivre chacun writeln d eux de l appui sur la touche d entr e writeln L arr t se fera STOP en majuscules condition writeln que vous m ayez fourni auparavant ATTENTION repeat TRAVAILLE until MotFourni ATTENTION repeat TRAVAILLE until Motfourni PS ROPAE writeln Vous m avez donn en tout Compteur mots end Et en tenant compte du lecteur de cette version program ATTENTION 2 Il fait lire des mots jusqu ce que STOP soit fourni condition que ATTENTION ait t fourni auparavant et fait compter les mots lus On y utilise un appel de proc dure var Mocowania Srraag 20 qui contiendra chacun des mots lus Compteur integer pour les compter procedure TRAVAILLE Elle fait lire un mot pour le placer dans MotFourni et fait incr menter le Compteur begin write Donnez un mot readin MotFourni Compteur Compteur 1 end begin writeln Vous allez me fournir successivement des mots writeln d au plus 20 lettres en faisant suivre chacun writeln d eux de l appui sur la touche d entr e writeln L arr t se fera STOP en majuscules condition writeln que vous m ay
39. amp Ph gt 2 A gt o re W 2 2 2 Man Images pour programmer l re partie Charles Duch teau ES M ST Y 2 Z o v J Y a 3 an D partement e Programmer ducation e Un algorithme et Technologie e L ex cutant ordinateur e Premiers tours de main Images pour programmer Apprendre les concepts de base 1 re partie version revue en 2002 Charles Duch teau Pr face de J acques Arsac Cet ouvrage publi en 1990 aux ditions De Boeck dans la collection Acc s Sciences est pr sent puis Le pr sent document en reprend le contenu Centre pour la Formation Ed l Informatique dans le Secondaire Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Pr face Encore un livre de programmation et qui pis est pr fac par Arsac On pourrait faire un livre avec vos pr faces me dit un jour un coll gue et je ne suis pas s r que ce f t un compliment Mais comment r sister au plaisir de dire le bien que je pense de ce livre car le bien pour un livre c est d tre lu Umberto Eco C est un livre de programmation il est vrai et Charles Duch teau s en explique ici Mais peut tre a t il t timide dans son argumentation Voil trente ans que j entends r p ter dans dix ans plus personne ne programmera Or on continue investir dans de nouveaux langages de programmation qu ils s appellent ADA PROLOG ou langag
40. apprenti plafonneur d bute dans le m tier on ne lui confie pas d embl e le traitement d un b timent dans son ensemble on lui fait acqu rir les trucs du m tier Il travaille pour rire m me si ce n est pas tr s amusant de passer un long moment travailler pour rien C est pareil pour l apprenti programmeur il ne s agit pas encore de programmer des t ches int ressantes utiles ou motivantes Il faut b tement acqu rir l occasion de t ches l mentaires les premiers tours de main de la programmation A c t des exercices propos s et r solus on trouvera comme d habitude galement une s rie d exercices qui permettront l apprenti programmeur de se faire la main C est uniquement par un travail personnel de r solution de ces exercices que vous pourrez progresser La simple compr hension des solutions apport es aux exercices trait s ici est illusoire c est seulement en agissant que l apprentissage sera effectif 1 Traitement des exemples 1 1 Le tour de main du compteur La premi re tape consistera pr ciser quelle est la t che propos e que faut il faire ou plut t faire faire Les t ches abord es ici sont tellement simples que cette tape de sp cification sera imm diate Il ne faudrait pas en d duire qu il en sera toujours ainsi Dans le cas de vrais probl mes c est en g n ral l tape la plus longue et la plus difficile CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau
41. avoir une marche au ralenti rapide env 1750 tr min Tester le r glage du carburateur Amener la manette des gaz de la position Ralenti la position Pleins gaz Le moteur doit acc l rer uniform ment Sinon c est que le m lange de carburant est un peu trop pauvre Dans ce cas desserrer l g rement la vis de r glage A Ce r glage peut provoquer un ralenti l g rement irr gulier Marche suivre n 4 avec des phrases comme S errer avec pr caution la vis de r glage jusqu ce que le moteur ralentisse S errer doucement la vis de r glage jusqu ce que le moteur tourne r guli rement Dans chacun de ces exemples il s agit plut t de poursuivre une action jusqu ce qu une condition devienne vraie plut t que de r p ter une action jusqu la r alisation d une condition le mot r p ter n y est d ailleurs pas pr sent On verra que les actions l mentaires de l ex cutant ordinateur ne seront jamais de longue dur e et qu en ce qui le concerne le mot jusqu ce que sera associ au mot r p ter et exprimera la reprise d une action ou d un groupe d actions plut t que la poursuite d une action pendant un certain temps C est aussi cette structure r p titive qu on trouve dans les expressions Feuilleter jusqu trouver la page portant les coordonn es de l abonn Ajouter le sel pinc e par pinc e et go ter jusqu ce que le plat soit assez sal que nous pourrions traduire p
42. concerne le choix des noms de variables Ajoutons encore que la partie else peut tre absente L ensemble if then else forme une instruction unique pour Pascal on ne pourra donc jamais trouver de juste avant le mot else c est pourtant une erreur tr s classique 3 2 5 L instruction de r p tition REPEAT UNTIL C est elle qui traduira la structure REPETER JUSQU A CE QUE repr sent e par le graphisme CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 152 Images pour programmer l re partie repeat Ser eA NSE r UCE TONS Elle prend la forme ioe dh COMCEL Les instructions situ es entre le repeat et le until seront r p t es jusqu ce que la condition nonc e devienne vraie Dans tous les cas on le sait cette s rie d instructions sera ex cut e au moins une fois Par exemple repeat a Al Somme Somme Ajout Reste Reste I until I gt Max Vous prendrez l habitude d indenter le texte de vos programmes comme dans l exemple ci dessus On peut ainsi voir d un coup d il o commence et o se termine la s rie des instructions qui seront r p t es 3 2 6 L instruction de r p tition WHILE DO Nous n avons pas encore eu l occasion de l utiliser Elle traduit la structure TANT QUE FAIRE repr sent e par le graphisme Elle prend la forme while condition do instruction unique Voil encore un cas o l on est forc de r
43. conditionnel Je pense que s il fut un temps o il fallait convaincre de la nocivit du branchement comme outil de pens e et d organisation cette poque est heureusement r volue Et puis il est toujours d licat de pr senter des exemples de ce qu il ne faut pas faire 3 Exercices 1 Pouvez vous mettre en vidence dans les exemples de marches suivre pr sent es au d but de ce chapitre des instructions d action l mentaire Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 51 des structures de contr le Exprimez sous forme GNS les structures de contr le d tect es 2 Voici sous forme GNS et pseudo code une courte marche suivre Entrez Entrez Buvez un petit verre REPETER Buvez un petit verre JUSQU A CE QUE vous voyiez double JUSQU A CE QUE vous voyiez double Asseyez vous Asseyez vous a Pouvez vous la transcrire dans le formalisme des organigrammes b R crivez la sous forme GNS ou pseudo code en utilisant la structure TANT QUE et toute autre structure de contr le l exclusion de REPETER JUSQU A CE QUE Je ne vous demande ni de juger du bien fond ou de la moralit de cette marche suivre ni de l am liorer mais seulement de la transcrire sous une autre forme Les ex cutions de la marche suivre propos e et des transcriptions que vous sugg rerez doivent tre identiques dans tous les cas 3 Voici sou
44. cutant ne lit pas plus l information re ue travers la porte qu il ne la lit quand il la sort de la malle informations Cette instruction lui commande simplement de remplir un casier avec une information qu il re oit travers le clavier 1 Remarquons qu en m me temps que nous commandons l ex cutant de prendre une information travers la porte clavier nous sommes tenus de lui indiquer dans quel casier il va imm diatement d poser l information re ue Il ne peut faire subir aucun traitement CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 90 2 2 Images pour programmer 1 re partie l information qu il a en main en revenant de la porte il peut seulement la d poser dans le casier indiqu Ce qu on passera l ex cutant travers cette porte c est bien videmment la seule chose qu il soit capable de manipuler une information Jamais donc au cours de l ex cution de la marche suivre on ne pourra lui fournir une instruction un ordre Pour les instructions c est trop tard les seules dont il dispose sont celles enferm es dans la marche suivre et celles l il n est pas question de les compl ter ou de les corriger alors qu il est justement en train d ex cuter cette marche suivre Il y a eu une phase pr alable au cours de laquelle j ai fourni l ordinateur les instructions constituant la marche suivre c est lors de l dition Une fois cette phase et celle de la compilation t
45. d entre nous sauf pour les auteurs de guides de tricot ou de livres de recettes Troisi me difficult l ex cutant est un robot Tous les exemples mentionn s ci dessus sont en partie trompeurs c est qu il s agit chaque fois de fournir les instructions n cessaires un tre humain qu il soit apprenti cuisinier musicien d butant ou tricoteur tricoteuse novice M me si la marche suivre concevoir doit tre compl te en envisageant toutes les situations possibles et non ambigu en ne laissant aucune initiative l ex cutant notre interlocuteur est un tre humain comme vous et moi D s lors nous pourrons dans certaines limites nous exprimer demi mots garder certains implicites partag s par tous les humains adopter une repr sentation imag e ou dessin e Tout ceci sera videmment exclu lorsque l ex cutant des marches suivre concevoir sera un robot Dans ce cas les exigences de pr cision de chasse aux implicites d exhaustivit seront pratiquement inhumaines Il est un point cependant o le caract re born de l ex cutant robot est int ressant et m me indispensable On comprend ais ment que pour qu un probl me de programmation soit correctement pos il faut disposer non seulement de la description pr cise de la t che faire effectuer mais aussi de celle de l ex cutant qui on la destine C est dire qu il faut conna tre Ch Duch teau 22 ao t 2002 CeFIS
46. d un certain nombre d outils Il ne reste qu une chose ajouter pour tre certain qu il sera capable d ex cuter nos marches suivre 4 Il comprend les structures de contr le 1 Les marches suivre voyaient les diverses instructions d action l mentaire mari es entre elles organis es par les structures de contr le telles que nous les exprimions dans les GNS par exemple L ex cutant est bien s r capable d organiser les actions l mentaires command es en suivant les indications de ces structures s quence appel de proc dure alternative r p tition branchement Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 95 Ici aussi je l ai d j dit les structures de contr le permises lors de la phase de r daction du programme proprement dit lors de l tape Comment dire lorsque la marche suivre sera cod e dans le langage d pendent du langage de programmation choisi Mais celles mises en avant dans la phase d analyse et de r daction de la marche suivre avant le codage sont celles exprim es dans les GNS donc essentiellement celles num r es ci dessus l exception du branchement 2 Corollaire de cette possibilit de comprendre les structures de contr le l ex cutant est donc capable d valuer les conditions qui interviennent dans les structures alternative et r p titive Ces conditions je le rappelle sont des assertions
47. dans Somme Donnee lt PlusPetite e Place Donnee dans PlusPetite Donnee gt PlusGrande Place Donnee dans PlusGrande Compteur 100 Affiche Somme 100 Affiche PlusPetite Affiche PlusGrande et sous forme pseudo code REPETER Affiche Donn e Lis et place dans Donnee Place Compteur 1 dans Compteur Place Somme Donnee dans Somme SI Donnee lt PlusPetite ALORS Place Donnee dans PlusPetite SINON SI Donnee gt PlusGrande ALORS Place Donnee dans PlusGrande JUSQU A CE QUE Compteur 100 Affiche Somme 100 Affiche PlusPetite Affiche PlusGrande Il reste videmment traiter le probl me des initialisations On voit ais ment que Compteur et Somme doivent tre plac s 0 avant le d but des r p titions Le cas des casiers PlusPetite et PlusGrande est plus d licat Ainsi si je fais placer primitivement 0 dans PlusPetite et si la plus petite des donn es fournies est 15 il sera r pondu la fin que la plus petite est O valeur primitivement contenue dans PlusPetite et inf rieure toutes les donn es re ues En effet la question Donnee lt PlusPetite il sera toujours r pondu non et le contenu primitif de PlusPetite restera inchang On voit donc qu en r alit il faudrait faire placer dans PlusPetite une quantit coup s r sup rieure aux donn es qui seront fournies On pourrait y placer une valeur tr s grande 1000000 ou plus mais ceci conduirait un programme erron dans le
48. dans le texte de mes marches suivre crire 15 lorsque je souhaite faire manipuler l information que je note habituellement 15 Qu il l crive XV 1111 ou HE peu importe Ce qui est essentiel c est que je lui dise 15 un moment ou un autre je frapperai au clavier les touches 1 et 5 et que lorsqu il voudra me parler de 15 il m crive 15 il affichera l cran les symboles 1 et 5 L ordinateur ne voudra jamais me parler pas plus que ma lessiveuse ne veut me faire plaisir en lavant mon ligne pas plus que mon automobile ne souhaite faciliter mes d placements Rappelez vous je ne dis g n ralement pas que ma b che est courageuse 4 J ai parl de cha nes de caract res sans m me dresser la liste de ce que sont les divers caract res qui pourront y figurer Ce n est pas trop g nant pour le moment puisque je ne veux pas tre exhaustif ou complet Sachons simplement que parmi ces caract res il y aura les lettres majuscules minuscules et accentu es les chiffres les symboles de ponctuation en y incluant l espace le blanc etc 5 On le sait d j notre ex cutant ordinateur lorsqu il manipulera des cha nes de caract res le fera sans aucune r f rence au sens que nous donnons c est un mot ou que nous refusons ce n est pas un mot ces cha nes Le traitement sera purement formel ne s attachant qu la forme de ces cha nes Ainsi il pourra r po
49. de la marche suivre dire coup s r si elle est vraie ou fausse La v rit ou la fausset d une condition d pend videmment du contexte et du moment o elle est valu e Je sais pr sent que lorsque je tracerai le portrait d un ex cutant y compris celui de l ex cutant ordinateur il me faudra dire quelles sont les instructions d action l mentaire qui le caract risent quelles sont les conditions qu il est capable d valuer Nous r sumerons en vitant ce stade une formalisation excessive la structure alternative ou conditionnelle par les mots SI condition ALORS ou SI condition ALORS Instructions Instructions SINON suite de la marche suivre Instructions suite de la marche suivre Comme on le constate elle prend donc deux formes voisines Celle d abord o une r elle alternative est pr sente lorsque la condition est vraie certaines actions sont ex cuter lorsqu elle est fausse c est un autre chemin qui doit tre suivi avant dans chaque cas de retrouver la suite normale de la marche suivre La seconde forme n offre pas r ellement un double chemin simplement lorsque la condition nonc e est vraie les actions qu elle commande sont effectu es avant de passer la suite lorsqu elle est fausse on passe directement cette suite 1 2 4 La r p tition Si nous continuons examiner la marche suivre n 2 de lancement du moteur froid nous y d couvrons une
50. de mani re cruciale des possibilit s du cuisinier d butant L ordinateur s il est bien un traiteur d informations peut malheureusement quand on le regarde du point de vue de la programmation tre assimil un d butant Ses possibilit s on va le voir au chapitre 3 sont extraordinairement limit es Et il est absolument hors de question qu il comprenne des phrases comme Trie les nombres qu on va te fournir ou Conjugue au pr sent de l indicatif un verbe qui sera pr cis m me si on les lui dit en anglais S il fallait d s pr sent qualifier l ex cutant ordinateur les mots qui me viendraient tout naturellement en t te seraient non lut t born b te ne comprenant jamais rien demi mot Je ne suis videmment pas dupe de ces anthropomorphismes propos de l ordinateur Si nous le d couvrons b te ou born quand nous nous int ressons lui travers la programmation nous serions par ailleurs tent de le qualifier d efficace et parfois m me d intelligent quand nous posons sur lui un regard d utilisateur C est que dans ce dernier cas il est videmment transfigur par les indications le programme qui lui pr cisent comment traiter aussi intelligemment les t ches consid r es L une et l autre de ces attitudes sont sans fondement r el il n y a gu re plus de sens de parler d un ordinateur born qu pr tendre que ma tondeuse gazon est d courag e et il est a
51. de terre Cet ex cutant volue dans un environnement sch matis comme suit Il dispose d un panier qu il peut aller remplir un tas de pommes de terre Ce tas est de taille suffisante pour satisfaire n importe quelle commande nous dirons qu il est in puisable Le robot est aussi capable de prendre une pomme de terre dans le panier de la peler et de la jeter dans la marmite CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 60 Images pour programmer 1 re partie Cet exemple n est pas nouveau Il fait m me en quelque sorte partie du folklore informatique et se trouve mentionn dans des formes voisines de celle pr sent e ici dans 23 ou 55 Les conditions de travail de notre robot tant pr cis es il reste le caract riser en tant qu ex cutant il est indispensable pour cela d indiquer quelles instructions d action l mentaire vont le faire agir et quelles sont les conditions qu il est capable de tester 6 1 1 Les instructions d action l mentaire On peut en dresser la liste sous la forme d un lexique Vous lui dites Il fait Remplis Il va remplir le panier et le ram ne pr s de son lieu de travail P le Il prend une pomme de terre dans le panier la p le et la place dans la marmite Il est important de noter qu il s agit l des deux seules instructions qu il comprend et est capable d ex cuter Il est donc interdit de faire figurer dans la marche suivre d autres instructions LL que celle
52. donc sans effort transcrire en Pascal les noms ainsi choisis var NombreFourni real Compteur integer La deuxi me zone d un programme Pascal est la partie d claration Pour l instant cette zone comporte seulement la liste des variables casiers utilis es Cette liste s annonce par le mot r serv var qui n est crit qu une seule fois Vient ensuite la liste des divers types integer real avec on s en doute integer pour le type entier et real pour le type r el On notera que les diverses listes de variables sont termin es par le Les identificateurs des variables suivent les r gles nonc es ci dessus ce sont celles que nous avions d j respect es lors du choix des noms de casiers l tape pr c dente Le lecteur jugera peut tre que je suis incomplet et que je n en dis pas assez pour l instant propos des r gles de grammaire de Pascal A cela je r pondrai que les r gles d couvertes lors du traitement des exemples seront mises en ordre la fin de ce chapitre cet ouvrage ne constitue pas un manuel de Pascal et si j y fais une place l apprentissage de ce langage ce n est certes pas l mon objectif principal Les mots r serv s du Pascal seront toujours soulign s et appara tront en gras leur premi re rencontre Il n en sera pas de m me dans les textes de programmes que vous aurez l occasion de fournir l ordinateur aucun mot n y sera particuli rement mis en vidence Le
53. donn du programme qui va lui faire faire la traduction de tel langage vers le sien je peux m exprimer dans ce langage L impression que donne parfois l ordinateur d tre polyglotte puisque la m me machine va accepter des programmes r dig s en Basic en Pascal en Fortran cache en r alit l existence pour chacun de ces langages du programme de traduction correspondant Ces programmes particuliers capables de faire effectuer par l ordinateur ces traductions s appellent des compilateurs ou des interpr teurs 3 Pourquoi ne pas avoir directement exprim la marche suivre dans ce langage compromis Les deux tapes du Comment faire faire et du Comment dire se trouveraient alors confondues L avantage para t vident nous nous exprimons d embl e sous une forme qui peut tre comprise par l ex cutant ordinateur Trois arguments essentiels s opposent cette vision simpliste La r daction d une marche suivre dans l un ou l autre langage de programmation si elle convient parfaitement l ordinateur est assez loign e de notre mani re de nous exprimer N oublions pas que ces marches suivre si elles sont bien destin es commander un ordinateur devront aussi pouvoir tre relues par un tre humain y compris par celui qui les a con ues Il est donc pr f rable que la forme adopt e permette une lecture et une compr hension les plus ais es possible Ce sera le cas pour la pr sentation adopt e
54. dont l ex cutant peut d cider si elles sont vraies ou fausses Elles n auront pas pour l ex cutant ordinateur la diversit qu on trouvait dans les marches suivre r dig es jusqu pr sent Cf Chapitre 2 C est un traiteur d informations les conditions nonc es porteront uniquement sur des comparaisons d informations ainsi par exemple nous crirons SI telle information telle autre information ALORS ou encore REPETER JUSQU A CE QUE telle information lt telle autre information Les outils de comparaison d informations sont comme annonc plus haut lt gt lt 2 Ils s appliquent aussi bien aux informations num riques qu celles de type cha nes de caract res Les informations compar es seront comme toujours d crites soit comme des constantes soit comme des noms de casiers soit comme des expressions 3 Ces comparaisons peuvent tre li es par des mots comme ET OU ou pr c d es de NON Nous postulons donc que l ex cutant ordinateur ma trise l emploi de ces termes et est capable d valuer des conditions comme Nom DUPONT ET Salaire lt 5000 X TOTAL 2 OU Y lt NUMERO Il ne sert rien de vouloir trop en dire ce propos pour le moment Les choses s clairciront avec la r solution des premiers probl mes Les conditions valu es par l ex cutant sont essentiellement des comparaisons d informations l aide des symboles lt 7 S2 Plusieurs comparaisons
55. el qui contiendra chaque donn e lue Compteur de type entier pour les compter CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 120 Images pour programmer 1 re partie Marche suivre Place 0 dans le casier Compteur Place 0 dans le casier Compteur Affiche Donnez un nombre REPETER Lis et place dans NombreFourni Affiche Donnez un nombre Lis et place dans NombreFourni Place Compteur 1 dans le casier Compteur Place Compteur 1 dans le casier Compteur NombreFourni 0 JUSQU A CE QUE NombreFourni 0 Affiche Compteur Affiche Compteur Dans un premier temps et afin de montrer clairement qu il s agira b tement d exprimer diff remment les structures de contr le et les actions l mentaires pr sentes dans le GNS ou le pseudo code j ai fait figurer c te c te ces derniers et leur expression en Pascal program ARRETAOU Liste des variables casiers var NombreFourni de type r el NombreFourni real Compteur de type entier Compteur integer begin Place 0 dans le casier Compteur Compteur 0 Affiche Donnez un nombre repeat writeln Donnez un nombre Lis et place dans NombreFourni readln NombreFourni Place Compteur 1 dans le casier Compteur Compteur Compteur 1 NombreFourni 0 until NombreFourni 0 Affiche Compteur writeln Compteur end et avec le pseudo code program ARRETAO var NombreFourni real Compteur integer begin Place 0
56. encore readln nom du casier remplir la diff rence entre ces deux formes tant pour l instant et dans l impl mentation Turbo sans importance Il faut cependant souligner une possibilit qui sera rarement employ e et que je n avais pas mentionn e lors du portrait de l ex cutant il est permis de faire lire par une seule instruction de lecture plusieurs informations qui devront bien entendu prendre place dans des variables diff rentes Il suffit de faire suivre l instruction read ou readin de la liste des variables remplir par les diverses informations qui seront fournies par l utilisateur Les diverses variables cit es seront s par es par des virgules Par exemple read Nom Age Profession readin X Somme Il est en g n ral pr f rable de r server ces lectures multiples aux cas d informations num riques L instruction de lecture provoque un arr t du d roulement des actions de l ex cutant qui attend que la les donn e s ad quate s soi en t tap e s au clavier L utilisateur signalera la fin de l information fournie par l appui sur la touche d entr e aussi appel e lt RETURN gt ou lt ENTER gt 3 2 3 Les instructions d affichage WRITE et WRITELN Ce sont les instructions Pascal correspondant l instruction d action l mentaire CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 150 Images pour programmer 1 re partie Affiche telle s information s Elles font appara tre l
57. faire ensemble nos premiers pas la direction choisie oriente conditionne et pr pare la suite du p riple J ai tent de baliser le d but de la progression de quelques id es phares et de choisir le cap qui me para t le plus pertinent A vous pr sent de poursuivre et rendez vous sans doute dans le second volume d Images pour programmer Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 O 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 BIBLIOGRAPHIE ALAGIC S ARBIB M A The design of well structured and correct programs Springer Verlag New York 1978 ARSAC J Et si on essayait d crire de bons programmes Education et Informatique Avril 1980 pp 35 41 ARSAC J Premi res le ons de programmation Cedic Nathan Paris 1980 ARSAC J Jeux et casse t te programmer Dunod Paris 1985 ARSAC J La construction de programmes structur s Dunod Paris 1977 ARSAC J Les bases de la programmation Dunod Paris 1983 ARSAC J Les machines penser Des ordinateurs et des hommes Editions du Seuil Paris 1987 ARSAC MONDOU O BOURGEOIS CAMESCASSE C GOURTAY M Premier livre de programmation Cedic Nathan Paris 1982 ARSAC MONDOU O BOURGEOIS CAMESCASSE C GOURTAY M Deuxi me livre de programmation Cedic Nathan Paris 1983 ARSAC MONDOU O BOURGEOIS CAMESCASSE C GOURTAY M Pour aller plus loin en programmation Ced
58. figurent sur cette disquette r f rent aux num ros de pages o on trouve les textes correspondants dans le pr sent fascicule z Voir http www det fundp ac be cefis index html et pr cis ment http www det fundp ac be cefis publications charles images2 5 78 pdf CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau PR FACE AVANT PROPOS AVERTISSEMENT EN CE QUI CONCERNE LES R VISIONS SOMMAIRE PROGRAMMER 1 5 Un ordinateur c est quoi 1 1 Une d finition 1 2 Traitement formel d informations 1 3 Les deux points de vue possibles Programmer 2 1 T che ou probl me 2 2 Programmer c est faire faire Les tapes du faire faire 3 1 Quoi faire 3 2 Comment faire 3 3 Comment faire faire 3 4 Comment dire 3 5 Et face la machine Quelques commentaires 4 1 viter la confusion des genres 4 2 Et les erreurs Exercices UNE MARCHE A SUIVRE QU EST CE QUE C EST Sommaire III lt E OO CU ON nn me m D ee ei OR ER Ru m O 0 a A D ND D gt U 1 D couverte des constituants d une marche suivre 1 1 Les instructions d action l mentaire 1 2 Les structures de contr le 1 2 1 La s quence 1 2 2 L appel de proc dure 1 2 3 L alternative 1 2 4 La r p tition 1 2 5 Le branchement 1 3 Les commentaires 2 Les structures de contr le 2 1 Les divers modes de repr sentation des structures de contr le CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau X
59. floue Quoi faire Description pr cise On passe tr s souvent sous silence cette premi re tape dans les initiations la programmation C est fort dommage et cela donne en tout cas une id e compl tement tronqu e de ce que recouvre la d marche informatique d analyse et de programmation Les t ches qui seront abord es ici resteront videmment de petite taille et d une complexit fort raisonnable Je ne fournirai pas de grands principes m thodologiques permettant de guider la d marche sous jacente cette tape un jeu de questions et r ponses nous tiendra lieu de m thode Comme il s agira chaque fois de t ches consistant traiter des informations nous orienterons les questions dans trois directions les donn es n cessaires au traitement envisag entr es leur forme leur nombre les r sultats souhait s sorties forme pr sentation Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 11 le traitement en quoi les r sultats sont li s aux donn es Mais on le verra cette tape de pr cision de ce qui est attendu sera toujours la premi re et nous n en ferons jamais l conomie 2 Lorsque quelque chose ne tourne pas rond dans l utilisation de l ordinateur par exemple dans la gestion d une entreprise ce n est presque jamais cause de l ordinateur lui m me rien n est moins capricieux qu un ordinateur C est parfois parce
60. groupes de cellules de la m moire centrale Il va passer le plus clair de son temps d poser des choses dans ces casiers et prendre copie de ce qui s y trouve 1 1 Les caract ristiques d un casier Si l on y regarde de plus pr s on constate qu un tel casier est caract ris par trois choses le nom qu il porte autrement dit l tiquette du casier son type d terminant ce qu il pourra accueillir ce qu il y a r ellement dedans son contenu Donnee Solde Nom 14 112 5 DUPONT X 27 47 66 RsI tZ Prix 212 13 75 22A1 Somme MESSAGE 69 14 0 Bonjour 1 En pr sentant des casiers de tailles diff rentes le sch ma illustre sa mani re que ceux ci ne sont pas tous du m me type Un casier ne pourra pas servir au stockage de n importe quoi c est son type qui d terminera justement le genre de choses qu il pourra contenir Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 81 2 On le voit aussi certains casiers portent une tiquette qui va permettre de les identifier Ces tiquettes c est nous programmeurs qui choisiront ce qu elles sont avec certaines contraintes de forme impos es par le langage compromis Nous nous contenterons d exiger tel et tel casier en en pr cisant le type et l tiquette l ex cutant de se d brouiller pou
61. homme qui fait d une cha ne de caract res un mot qui d chiffre l information sous la donn e le sens sous la forme 1 3 Remarques 1 Si d s pr sent on devine qu en ce qui concerne les nombres l ex cutant ordinateur pourra outre les placer dans l un ou l autre casier les additionner les soustraire les multiplier ce que nous faisons aussi avec des nombres il est plus difficile de percevoir les manipulations qui s appliqueront aux informations textuelles nous traitons rarement des cha nes de caract res sans nous r f rer au sens dont les mots qu elles repr sentent sont porteurs Disons sans entrer maintenant dans les d tails que l ex cutant ordinateur pourra les recoller pour faire de Il existe pour cela d excellents dictionnaires Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 83 TURLU et TUTU la cha ne TURLUTUTU ter des morceaux d une cha ne comparer deux cha nes etc 2 On remarquera les symboles apostrophes employ s lorsque nous souhaitons parler d une cha ne de caract res la succession des caract res qui la composent est enclose l int rieur de On comprendra dans la suite la n cessit de cette contrainte 3 Je ne m int resse pas du tout ici au fait de savoir comment l ordinateur machine crira ou codera ces informations qu elles soient num riques ou textuelles Ce qui est important c est que je puisse
62. initialisations pour Dernier et Compteur il faut imp rativement r fl chir l importance de son contenu primitif Par contre lorsque la premi re manipulation faisant intervenir un casier commande d y placer une information son initialisation est g n ralement inutile Cette pr caution conduit au GNS Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 111 Place 0 dans le casier Compteur Place 0 dans le casier Compteur Place BONJOUR dans le casier Dernier Place BONJOUR dans le casier Dernier PI Dame ier AvantDerni REPETER ACS KEMMIERCANS E CASIEE AVAMINE Place Dernier dans le casier AvantDernier Affiche Donnez un mot Affiche Donnez un mot Lis et place dans Dernier Lis et place dans Dernier PI Comoteur 4 dans Con Dur Place Compteur 1 dans le casier Compteur o se Se Re RE JUSQU A CE QUE Dernier STOP et Dernier STOP et AvantDernier ATTENTION AvantDernier ATTENTION Affiche Compteur Affiche Compteur 1 4 Compteur et compteur 1 4 1 Enonc Quoi faire Faire simuler des jets successifs d un d en montrant les r sultats et en arr tant au troisi me six obtenu indiquer alors combien de jets ont t effectu s Simuler signifie ici faire comme si Le programme r diger doit faire en sorte qu apparaisse l utilisateur une succession de nombres compris entre 1 et 6 les r sultats des lancers Cette liste doit s interrompre l apparition du tro
63. la brouette de A en B vide le robot d verse la brouette o elle se trouve ram ne le robot ram ne la brouette de B en A Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 73 Conditions ilya encore du sable transporter en A la brouette est pleine et leurs contraires Remarques ilya toujours du sable transporter quand le robot commence la brouette est toujours vide c t du tas en A quand le robot commence le contenu de la brouette correspond plusieurs pellet es de sable le travail termin la brouette peut rester n importe o 7 1 3 Le robot compteur de gouttes Il dispose d un r cipient contenant une quantit in puisable de liquide et d un compte gouttes L objectif est de lui faire remplir une s rie de verres Comme d habitude il comprend certaines Instructions d action l mentaire Choisis le premier verre il vient se placer devant le premier verre de la s rie et est pr t s en occuper Presse une goutte dans il presse une goutte dans le verre dont il est en train de le verre choisi s occuper Passe au verre suivant il passe au verre suivant Remplis le compte il remplit le compte gouttes et revient s occuper du verre o il gouttes travaillait au moment o on lui a command ce remplissage Conditions Il est galement capable de tester quelques conditions le verre choisi est plein le compte go
64. la teneur Dans l avant propos de la 2 partie tr s r cemment publi e au CeFIS j ai cependant mentionn un certain nombre de regrets dans une perspective de et si c tait refaire Je vous renvoie cette seconde partie pour les d tails J ai pr f r reprendre ici l int gralit du contenu de l ouvrage originel sans modifications autres que de d tails ou de corrections La seule concession consiste accompagner l expression des marches suivre primitivement crites seulement sous forme de graphes de Nassi Schneidermann par leur formulation sous forme de pseudo code ou langage de description d algorithme L expression choisie est d ailleurs particuli rement l g re gr ce une utilisation de l indentation qui vite la prolif ration des FinDuSi FinDuTantQue etc Tous les passages qui se distinguent de l original apparaissent en bleu dans la version PDF du pr sent document ils risquent bien de passer inaper us dans la version papier noir et blanc Les textes des programmes Pascal sont rest s ceux de l antique Turbo Pascal version 3 sous MS DOS Les modifications n cessit es par les versions plus r centes par exemple 1 5 sous Windows sont en g n ral signal es Enfin les textes des programmes Pascal sont disponibles sur une disquette jointe ce sont les textes l g rement modifi s pour tourner avec la version 1 5 de Turbo Pascal sous Windows Les noms des programmes tels qu ils
65. les concepts qui sont la base de cette pens e algorithmique sont maintenant disponibles il reste les exercer longuement Il faut continuer les mettre en oeuvre en poursuivant l analyse de t ches plus complexes d bouchant sur des programmes plus importants La poursuite de cette d couverte du pays du faire faire nous am nera d abord enrichir l ensemble des outils dont dispose l ex cutant ordinateur Ceci ira de pair bien entendu avec l approfondissement de la connaissance du langage Pascal Mais au del de cet ach vement indispensable du portrait de l ex cutant ce que la suite de l apprentissage placera en avant c est surtout la pratique des saines attitudes de programmation approche descendante et modulaire et son incarnation dans l appel de proc dure souci d crire des programmes robustes et ais ment utilisables pr occupation de faire clairement appara tre l analyse men e et de rendre visible pour le lecteur la mati re grise ajout e etc Quelques concepts restent d couvrir tableau param tre de proc dure variable bool enne etc La connaissance de ces derniers ne modifiera en rien les difficult s li es au faire faire CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 158 Images pour programmer 1 re partie toutefois en compl tant le portrait de l ex cutant ordinateur ces notions importantes permettront d largir le r pertoire des t ches auxquelles il peut s atteler Nous venons de
66. me entre la partie d clarative et le corps du programme L identificateur de la proc dure ce qui dans le texte du programme sert l appeler doit tre pr c d du mot r serv procedure et suivi d un point virgule le tout constitue l en t te de la proc dure Cet en t te peut tre suivi d une partie d clarative Vient enfin le corps de la proc dure enclos entre les mots begin et end suivi d un point virgule Le texte d une proc dure est donc rigoureusement identique celui d un programme sauf au niveau de l en t te o le mot procedure remplace le mot program et tout la fin o le point virgule remplace le point final du programme 3 2 7 3 Variables globales et variables locales Un mot encore tr s incomplet sur le fait qu on peut donc d finir des variables l int rieur du texte d une proc dure ces variables locales cette proc dure peuvent videmment tre utilis es dans le texte de celle ci mais ne peuvent l tre dans le corps du programme principal ou d autres proc dures Les variables d finies au niveau du programme principal elles peuvent tre utilis es partout tant dans le corps du programme que dans celui des proc dures qui y sont nich es J ai mis en vidence c t des instructions Pascal correspondant aux trois instructions d action l mentaire et aux structures de contr le quelques instructions auxiliaires 3 2 8 Instructions diverses 1 L instruction delay permet d interr
67. nous y prenons Dans ce cas cependant les livres que nous consulterons ne sont absolument pas les trait s d informatique C est dans une grammaire que nous trouverons les r gles permettant d crire sans erreur un nombre en toutes lettres et dans un livre d arithm tique que nous apprendrons ou r apprendrons ce qu est un nombre premier et comment on peut v rifier cette caract ristique Ainsi face une t che qui nous pose un probl me les strat gies sont chercher dans le champ domaine de cette t che pas dans les trait s d informatique 3 L attitude cl ici c est d tre capable de passer de l implicite l explicite C est un fait que trop souvent nous avons appris effectuer des t ches ou r soudre des probl mes m caniquement sans avoir mis au jour explicitement comment nous nous y prenons sans les avoir compl tement d pli s d pli ex pliqu La programmation oblige cette prise de distance o l on se voit aux prises avec la t che et o l on prend conscience de sa strat gie Pour faire faire il faut d abord mettre plat son savoir faire Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 13 3 3 C est un apprentissage extr mement exigeant et difficile que celui de cette chasse sans piti aux implicites aux flous aux peu pr s Le chemin qui conduit de la t che son ex cution par l ordinateur s enrichit donc d une tape suppl mentaire T che
68. ordinateur Pourtant m me s il sera rejet la p riph rie de nos pr occupations il me faut dire un mot de ce qu il est ne serait ce que pour pr ciser parmi les multiples facettes qui pourraient tre retenues celle sur laquelle je placerai un clairage particulier 1 Un ordinateur c est quoi 1 1 Une d finition Je ne tomberai pas dans le pi ge consistant proposer une d finition pr cise ou exhaustive de ce qu est un ordinateur parmi la multitude des choses qu on pourrait en dire je me contente de souligner celles que pour mon propos je souhaite placer en avant Un ordinateur c est une machine traiter des informations de mani re formelle pour autant qu on lui ait indiqu dans le d tail comment mener bien ce traitement S il s agissait l d une d finition il resterait d finir machine information traitement Il faudrait encore ajouter que cette machine est lectrique qu elle est constitu e de circuits lectroniques ce qui n clairerait en rien mon propos l Cf 6 Le lecteur int ress pourra consulter les chapitres 2 et 3 de Initiation l informatique l adresse http www det fundp ac be cefis publications charles ini 5 51 pdf CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 2 Images pour programmer 1 re partie 12 Traitement formel d informations Cette machine va donc s atteler des t ches de traitement d informations Pour pr ciser cette as
69. par IF condition THEN ou IF condition THEN A A ELSE suite B suite On le voit on est tr s proche de l expression sous forme de pseudo code 2 3 4 Repr sentation en organigramme P TON condition suite La condition est enferm e dans un losange deux voies tant ensuite possibles celle qui m ne au morceau l autre qui emprunte le chemin B ce dernier bloc pouvant tre inexistant s il n y a pas de SINON Ici aussi les parties not es A et B peuvent en g n ral tre constitu es de plusieurs instructions l mentaires organis es par n importe quelle structure de contr le Autrement dit A comme B sont dans ce cas des morceaux d organigramme Si ou B tait constitu d une seule instruction d action l mentaire je l aurais videmment repr sent enferm dans une bo te rectangulaire comme dans Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 43 en lt il pleut gt Vrai lt Faux Prends ton parapluie suite 2 3 5 Repr sentation en Basic Dans le cas des Basic pauvres la seule structure existante est IF condition THEN A Plusieurs remarques s imposent _iln ya pas de traduction du SINON le bloc not A doit en g n ral tre de petite taille dans certains Basic les tr s pauvres A ne peut tre qu une structure de branchement Aller en Toutes ces restrictions am ne
70. pas qu avant et apr s le traitement formel de nombres nous n attachons pas un sens aux donn es trait es mais la manipulation elle m me est ind pendante de cette signification Il est exclu d avoir des tats d me lorsqu on additionne des nombres Le deuxi me ensemble de t ches correspond lui aussi m me si les informations trait es ne sont plus num riques des traitements formels trier chercher un num ro de t l phone classer sont des actions qui ne font appel qu la forme des donn es manipul es ANTOINE pr c dera toujours BENOIT dans un classement alphab tique et c est l apparence externe de ces pr noms qui permet d en d cider et non le fait que BENOIT est notre ami et ANTOINE un parfait inconnu videmment si dans cette liste de pr noms nous trouvons AAFFRR nous h siterons le classer avant ANTOINE m me si la forme nous y oblige et cela parce que le pr nom AAFFRR nous para t insens mais si nous excluons ces consid rations de sens notre classement ne s appuiera de fait que sur la forme des pr noms propos s Le troisi me ensemble de t ches nous est nettement moins familier Il s agit ici de manipulations formelles de texte Et la plupart du temps lorsque nous nous int ressons du texte 3 L ordinateur m me multim dia tait est et restera un calculateur lectronique il manipule des repr sentations physiques de nombres Ch Duch teau 22 ao t 2002 CeFIS FUNDP
71. pour programmer 1 re partie Proc dure annexe COMMENT FAIRE RER TOUT CE QU IL FAUT POUR LIRE UN Ne ANNEXE MOT ET LE COMPTER Affiche Donnez un mot COMMENT FAIRE TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER Affiche Donnez un mot Lis et place dans MotFourni Place Compteur 1 dans le casier Place Compteur 1 dans le casier Compteur Compteur Lis et place dans MotFourni Il ne faudrait pas croire que l utilisation des proc dures ne se fera que lorsqu une portion de marche suivre appara tra divers endroits pour sacrifier comme ci dessus une certaine paresse On le verra ce concept permettra d incarner dans nos analyse la d marche descendante Rappelons que face cette marche suivre l ex cutant s int ressera d abord au texte principal en d tournant son regard vers les explications fournies dans la proc dure annexe chaque fois qu il rencontrera l instruction inconnue FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER Apr s avoir ex cut les actions prescrites dans l annexe explicative il reviendra la suite de la marche suivre principale Deuxi me solution Dans cette seconde approche une seule r p tition sera command e Elle s arr tera lorsque le mot fourni sera STOP et que l ex cutant gardera le souvenir du passage de ATTENTION Le seul probl me c est donc qu il garde en m moire le fait que ATTENTION a ou n a pas encore t lu Mais p
72. pr t s atteler des t ches d aussi longue haleine et tellement fastidieuses c est vrai Mais ce n est pas la complexit des t ches voqu es qui est en cause Compter par exemple est une activit d bile compter beaucoup reste tout aussi idiot mais s av re en plus lassant reintant et accablant mais cela ne devient pas pour autant un probl me Si ces travaux taient bien pay s nul doute que les candidats s en d clarant capables ne manqueraient pas Combien en resterait il s il s agissait de fournir la solution de petits probl mes d arithm tique CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 6 Images pour programmer 1 re partie Il est faux de dire qu en programmation on r sout des probl mes ou m me que pour programmer il faut d abord bien analyser le probl me pos On s int resse le plus souvent des f ches souvent assez b tes et fastidieuses On ne r sout pas une t che on l effectue Il y a 40 ans que l informatique existe et au risque de para tre provocateur je dirais volontiers que L informatique n a presque jamais r solu un seul probl me Je pratique l informatique et la programmation depuis suffisamment longtemps pour mesurer tout de m me ce que ces propos peuvent avoir d outrancier et d exag r Je peux videmment apporter des exemples de t ches tellement longues et fastidieuses qu il serait bien difficile de trouver un tre humain acceptant de s y at
73. que l a men e le technicien serait moins apparente Mais nous reviendrons plus loin sur les raisons qui conduisent utiliser tr s intensivement la structure appel de proc dure On peut d s pr sent remarquer que l utilisation d instructions d action complexe appel de proc dure permet de s affranchir du moins au d but de l analyse de la t che des caract ristiques de l ex cutant On ne s obligera pas ce que toutes les instructions d action mentionn es dans la marche suivre principale soient l mentaires et correspondent chaque fois aux capacit s r duites de ce dernier On commencera par morceler le travail faire effectuer en actions dont la port e et le but sont bien compris du moins par les humains d bouchant ainsi sur un premier niveau d criture II suffira de reprendre alors chacune des actions trop complexes pour la d cortiquer son tour et ainsi de suite Cette division du travail qui plut t que de se perdre dans les d tails li s aux capacit s limit es de l ex cutant commence par fractionner la t che en gros constituants eux m mes repris pour tre d compos s jusqu un miettement en composants l mentaires s appelle en programmation l approche descendante ou en anglais top down programming Il s agit l d une m thode essentielle qui s incarne naturellement dans la structure d appel de proc dure 3 C est nouveau la connaissance des capacit s de l ex cutant qui con
74. que les programmes sont incorrects ils ne font pas faire par l ordinateur ce qu on souhaite ou tentent de lui faire faire des choses impossibles Mais le plus souvent c est parce qu on n a pas consacr le temps n cessaire pr ciser ce qui tait attendu On se retrouve en bout de course avec un produit qui ne donne pas satisfaction essentiellement parce que tout b tement on n a pas dit TOUT ce que l on voulait 3 Dans la programmation telle qu elle est v cue par les amateurs ou les apprenants la t che abord e et la connaissance des possibilit s offertes par l ex cutant pour la traiter sont dans la m me t te Les questions sont pos es par celui qui conna t aussi les r ponses Dans la r alit professionnelle l informaticien analyste d barque g n ralement dans un milieu qu il ne conna t pas et qu il doit informatiser Il n y a pas grand chose de commun entre la t che consistant g rer le stock d un magasin de chaussures et celle de la gestion des emprunts dans une biblioth que ou de l organisation d un cabinet de dentiste Et celui qui sait ce que recouvre pr cis ment chacune de ces t ches c est le client qui ne sait pas qu il sait il est g n ralement incapable d expliciter comment il s y prend actuellement et encore moins de d crire ce qu il souhaite il fait mais ne sait pas comment il fait Et en face de lui il y a l informaticien qui lui conna t les possibilit s de l ordinateur mais ne s
75. re d imagination et de recherche Simplement il s agit pr sent de respecter scrupuleusement les r gles de grammaire et d orthographe impos es par le langage compromis Rien d essentiel ne sera ajout au contenu des GNS nous les exprimerons diff remment et avec moins de libert quant la syntaxe et l orthographe Le seul avantage de ce type d expression de la marche suivre c est qu il sera compris par l ordinateur Cette tape est donc la fois indispensable pour finir par essayer vraiment les marches suivre con ues et fastidieuse puisqu il ne s agit plus du tout de faire preuve d invention ou de recherche mais seulement de docilit et de rigueur formelle Chacun des exemples abord s et trait s dans le chapitre pr c dent va maintenant tre repris et la traduction en Pascal sera indiqu e et comment e Le traitement de ces exemples permettra videmment de d couvrir les premiers rudiments de ce langage de programmation Enfin une synth se reprendra en fin de chapitre de mani re structur e les l ments du langage qui peu peu auront t d couverts 1 Traduction des marches suivre 1 1 Le probl me du compteur Il s agissait je le rappelle de faire lire une s rie de nombres r els jusqu ce que 0 apparaisse et de fournir alors le d compte de ces donn es Notre analyse avait d bouch sur le r sultat suivant 1 1 1 Traduction Liste des variables casiers NombreFourni de type r
76. sorganisation des marches suivre et sa condamnation a co ncid avec la prise de conscience des n cessit s d une programmation structur e CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 50 Images pour programmer 1 re partie Ce d bat est pr sent d pass Il a cependant permis de prendre conscience qu un certain nombre de principes doivent tre respect s si l on souhaite crire des programmes corrects clairs compr hensibles et modifiables En ce qui concerne la pr sentation adopt e ici le branchement ne nous servira pas en tant que structure de contr le Il ne poss de d ailleurs pas de repr sentations sous forme GNS Il existe bien en Pascal traduit par les instructions GO TO mais y est relativement peu employ Par ailleurs il est omnipr sent dans les organigrammes et en Basic qui est le langage dans lequel vont s incarner les structures pr sentes dans ces organigrammes En voici un exemple particuli rement repr sentatif Le contenu des rectangles et losanges est sans importance Ce qu il faut percevoir ce sont tous les parcours fl ch s qui renvoient d un coin l autre de la marche suivre rendant peu visible ce que sera le d roulement d une ex cution J aurai pu pr senter de la m me mani re quelques exemples de programmes Basic mentionnant l usage immod r du branchement et du branchement
77. sp cifications 10 strat gies 12 string 129 149 structure alternative 29 structures de contr le 25 26 96 succ 135 157 T t ches 5 tant que 31 then 135 153 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal tours de main de la programmation 101 traduction 15 traitement formel 2 U until 154 utilisateur 4 92 124 CeFIS FUNDP 2002 165 V var 123 139 variable 90 103 123 variable signal 105 W while 154 write 125 152 writeln 124 152 22 ao t 2002 Ch Duch teau
78. suffit pas de consulter un lexique o chaque mot fran ais aurait son quivalent anglais Une telle attitude formaliste qui consiste remplacer b tement un mot par son correspondant conduit des absurdit s comme He the door pour Il la porte Une derni re anecdote fera mieux comprendre ce caract re formaliste des traitements effectu s par l ordinateur Il existe aujourd hui associ s certains logiciels de traitement de texte des correcteurs orthographiques qui pour chaque mot du texte v rifient que ce mot est bien pr sent dans une norme liste de mots reprenant la plus grosse partie des mots acceptables Dans le cas o le mot f te est rep r dans le texte l ordinateur d tecte bien une erreur mais propose comme liste de mots possibles forte fonte ou foetus et face saurtir sugg re sautoir ou saurait Par contre rien dans la phrase il faut pou voir se rencontrer n veille une r action de sa part puisque le mot pou est dans la liste des mots acceptables comme aussi le verbe voir Retenons donc que L ordinateur n est capable que de traitements formels d informations Nous pourrons d l guer l ordinateur l ex cution de ces t ches de traitement formel d informations condition qu il dispose de la marche suivre qui le rende capable d effectuer ces t ches Et c est l une facette essentielle l ordinateur sans programme marche suivre explicative pour le
79. suivante if condition then instruction unique ce qui n cessitera des explications voir plus loin lorsque le then portera sur plusieurs instructions MotFourni STOP and Signal ROUGE Le connecteur logique ET se traduit par and Il permet de former une condition rassemblant plusieurs comparaisons Pour que la condition compl te soit vraie il faut que chacune des comparaisons la composant le soit De plus les diverses comparaisons li es par and doivent tre encloses dans des parenth ses Il resterait comme pour les deux versions pr c dentes habiller ce programme d abord en pensant son utilisateur puis au lecteur ventuel Je vous en laisse le soin 1 3 Le probl me du dernier et de l avant dernier Il s agissait cette fois de faire lire des mots avec arr t STOP condition que ATTENTION soit survenu juste avant 1 3 1 Premi re solution Elle faisait nouveau usage d une variable Signal qui passait du VERT au ROUGE lorsque survenait ATTENTION mais qui ne pouvait rester ROUGE que si ensuite c tait STOP qui tait re u Liste des variables MotLu de type cha ne d au plus 20 caract res Compteur de type entier Signal de type cha ne d au plus 5 caract res CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 134 Images pour programmer 1 re partie Marche suivre Place VERT dans le casier Signal e MotLu ATTENTION Place RO
80. suivre qui lui est fournie et que NOUS avons con ue en y laissant subsister des erreurs et des incoh rences Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 21 Le drame c est souvent que nous croyons lui dire autre chose que ce que nous lui disons vraiment C est peut tre tonnant mais il a fallu fort longtemps l informatique ou plut t aux informaticiens pour se rendre compte qu essayer un programme pouvait avec de la chance montrer qu il tait incorrect jamais prouver qu il tait correct 5 Exercices Il est videmment fort malais de proposer ce stade des exercices techniques puisque ce chapitre introductif a surtout pour objet de baliser notre parcours futur au pays de la programmation 1 Eclairez quelques facettes importantes des termes suivants Ordinateur Programmer Quelle est la t che principale de l analyste programmeur Donnez quelques exemples de traitements formels d informations puis des exemples de traitements non formels Pensez vous que les probl mes li s la commande num rique de certaines machines outils tours par exemple soient li s au monde du faire faire tel qu il est pr sent dans ce chapitre Donnez quelques arguments qui prouvent que l tape du Quoi faire est essentielle CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 2 UNE MARCHE A SUIVRE QU EST CE QUE C EST Le premier chapitre nous a montr que programmer c e
81. tant nouveau un morceau de marche suivre Ces deux expressions de la structure r p titive ne sont videmment pas quivalentes Cf ce propos l exercice 3 2 ci apr s On remarquera nouveau l criture avec indentation qui facilite la lecture dans le cas de la structure REPETER JUSQU A et qui est indispensable pour identifier le bloc d actions r p ter et la suite dans le cas du TANT QUE 2 4 2 Repr sentation sous forme GNS Les deux repr sentations sont i et TANT QUE condition P F E A A T E R R JUSQU A CE QUE condition E Remarquons que le bloc not A est une fois de plus tout un morceau de marche suivre exprim sous la forme d un GNS 2 4 3 Repr sentation en Pascal On trouve REPEAT et WHILE condition DO A A UNTIL condition Suite suite 2 4 4 Repr sentation en organigramme Il n existe pas de graphisme sp cifique traduisant les structures r p titives Cf exercices 3 2 et 3 3 ci dessous 2 4 5 Repr sentation en Basic Les versions pauvres ne comportent pas d instructions incarnant la r p tition En r sum CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 48 Images pour programmer l re partie Pseudo Code GNS Pascal REPETER REPEAT A A A JUSQU A CE QUE condition UNTIL condition suite suite suite ou ou ou TANT QUE condition WHILE condition DO A A suite suite suite Organigramme Basic Rien Rien
82. type de s atteler la solution de celui propos ci dessus Mon exp rience m a montr que m me parfois chez les gens qui ont une certaine pratique de la programmation travers par exemple la connaissance du langage Basic sa r solution n est pas toujours imm diate 6 2 Examen de quelques marches suivre pour le robot peleur de pommes de terre Nous allons si vous le voulez bien avant d apporter une solution au probl me propos nous livrer l examen de quelques propositions de solutions en tentant d imaginer les ex cutions auxquelles conduisent chacune des marches suivre ainsi pr sent es Et d abord 6 2 1 Proposition n 1 panier vide SI panier vide ALORS V F Remplis Remplis TANT QUE la marmite n est pas remplie la marmite n est pas remplie P le P le Voici une proposition qui va para tre satisfaisante dans le cas d un gros panier vide et d une petite marmite Imaginons en effet avec un panier et une marmite transparents pour les besoins de l illustration une situation telle que CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 62 Images pour programmer 1 re partie Le robot commence l ex cution de la marche suivre 4 La condition panier vide tant vraie on lui commande dans ce cas de remplir le panier La travers e du GNS s est donc jusque l op r e de la fa on suivante 4 panier vide la mar
83. 10 on d tectera trois paires de 1 successifs 11 Lire des nombres entiers en arr tant la troisi me fois que le nombre 1 est fourni et indiquer alors combien de fois le nombre 0 tait pr sent dans la succession Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 117 12 V rifier la connaissance des tables de multiplication de l l ve utilisateur Pour cela proposer successivement 20 nonc s du type Xe les nombres y intervenant tant choisis au hasard entre 2 et 10 A chaque nonc lire la r ponse fournie par l utilisateur Si cette derni re est correcte le f liciter si elle est fausse le signaler et laisser une seconde chance si elle est fausse nouveau donner la r ponse correcte A la fin fournir le nombre de bonnes r ponses obtenues directement sans second essai 13 Lire successivement des mots d au plus 20 caract res en arr tant la donn e de STOP condition que ATTENTION ait t fourni n importe quand auparavant Donner alors la position du premier et du dernier ATTENTION apparu 14 Demander l utilisateur par quel nombre il terminera la liste des donn es r elles qu il fournira Lire alors successivement ces donn es jusqu l apparition de la donn e marquant la fin Pr ciser ensuite combien de donn es n taient pas comprises entre 10 et 10 Attention la derni re donn e provoquant l arr t ne doit en aucun cas tre comptabilis e Remarqu
84. 2 puis e action 3 puis e action 2 puis e action3 J USQU A CE QUE condition puis Instruction d action 4 e action 4 Et la m me rupture de parall lisme est de mise avec les mots TANT QUE Il faut esp rer que lorsque la marche suivre commande REPETER JUSQU A CE QUE condition la condition nonc e finisse par devenir vraie Sinon c est une r p tition proprement interminable qu on assisterait Si je commande REPETER Fais un pas en avant Fais un pas en arri re J USQU A CE QUE tu touches le mur cela risque videmment de durer sauf si l ex cutant touchait d j le mur au d part auquel cas le premier pas en avant exig va le faire s y craser La m me remarque s applique la structure TANT QUE si j cris TANT QUE le m lange n est pas mousseux Battre et que je place un bol d eau sous le fouet de mon ex cutant cuisinier cela aussi prendra un certain temps Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 47 Le d sordre introduit dans les actions command es par la structure r p titive doit tre soulign Ainsi la derni re action du groupe dont on demande la r p tition pr c de imm diatement la premi re de ce groupe cause de la r p tition 2 4 1 Repr sentation sous forme de pseudo code Les deux formes de r p tition s crivent REPETER et TANT QUE condition FAIRE A A JUSQU A CE QUE condition suite suite A
85. 3 2 Deuxi me Solution Cette seconde approche faisait retenir par l ex cutant le dernier et l avant dernier mots lus Liste des variables Dernier de type cha ne d au plus 20 caract res AvantDernier de type cha ne d au plus 20 caract res Compteur de type entier Marche suivre Place 0 dans le casier Compteur Place 0 dans le casier Compteur Place BONJOUR dans le casier Dernier Place BONJOUR dans le casier Dernier REPETER Place Dernier dans le casier AvantDernier Place Dernier dans le casier AvantDernier Affiche Donnez un mot Affiche Donnez un mot Lis et place dans Dernier Lis et place dans Dernier Place Compteur 1 dans le casier Compteur Place Compteur 1 dans le casier Compteur JUSQU A CE QUE Dernier STOP et Dernier STOP et AvantDernier ATTENTION AvantDernier ATTENTION Affiche Compteur Affiche Compteur Voici la traduction en Pascal de cette marche suivre program ATTENTIONSTOP2 var Dernier AvantDernier string 20 1 Compteur integer begin Compteur 0 Dernier BONJOUR repeat AvantDernier Dernier Weite DONNEZ GAMOT ner readin Dernier Compteur Compteur 1 until AvantDernier ATTENTION and Dernier STOP writeln Compteur end Remarques 1 var Dernier AvantDernier string 20 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 137 Lorsque plusieurs var
86. 973 p 208 WIRTH N Introduction la programmation syst matique Masson Paris 1981 WIRTH N Systematic programming An introduction Prentice Hall Englewood Cliffs New Jersey 1973 WIRTH N Algorithms Data structures programs Prentice hall Englewood Cliffs New jersey 1976 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau A actions l mentaires 24 affectation 87 90 124 150 affichage 93 124 151 affinements successifs 70 algorithmique IV alternative 27 38 40 135 152 analyste 11 and 135 apostrophe 125 appel de proc dure 26 48 132 155 approche descendante 27 B Basic 35 begin 124 149 150 branchement 32 49 bugs I C cahier des charges 10 casier 81 86 cha ne de caract res 84 129 cirscr 141 156 Comment dire 14 Comment faire 12 Comment faire faire 13 commentaires 34 127 156 comparaison d informations 97 compilateur 15 18 86 compteur 103 condition 157 conditionnelle 29 CeFIS FUNDP 2002 Index alphab tique conditions 29 97 constante 88 corps du programme 124 149 D d claration 123 148 delay 141 155 d marche descendante 67 diff r 7 div 156 division 145 diteur 17 86 else 137 153 end 124 149 150 enseigner la programmation IV en t te 123 erreurs 19 erreurs de conception 18 erreurs de syntaxe 18 19 tiquette 83 ex cutant 7 ex cutant ordinateur 81 explicite 13
87. E BEUX P Introduction au Pascal Sybex Paris 1980 LECOMTE P MEZOTTE D Acc s l informatique et la programmation Hermann Paris 1988 LEDGARD H F Proverbes de Programmation Dunod Paris 1975 LEDGARD H NAGIN P HUERAS J Pascal with style programming proverbs Hayden Book Cy 1979 LESUISSE R BORSU A Initiation aux raisonnements de la programmation Presses Universitaires de Namur Namur 1987 LIGNELET P Algorithmique M thodes et Mod les Masson Paris 1985 LUCAS M PEYRIN J P SCHOLL P C Algorithme et repr sentation des donn es 1 Files automates d tats finis Masson Paris 1983 LUCAS M Algorithme et repr sentations des donn es 2 Evaluations arbres graphes analyse de textes Masson Paris 1983 MEYER B BAUDOIN C M thodes de programmation Eyrolles Paris 1980 NIVAT M Savoir et savoir faire en informatique La Documentation Fran aise Paris 1983 PAIR C MOHR R SCHOTT R Construire les algorithmes les am liorer les conna tre les valuer Dunod Paris 1988 RICHARD C RICHARD P Initiation l algorithmique Belin Paris 1981 RICHARD C RICHARD P Programmatique Initiation la programmation m thodique Belin Paris 1984 THURNER R Structured programming Self instruction course Pitman 1983 TURSKY W H What is Computer Science or Informatics in W M TURSKY Edr Programming Teaching Techniques North Holland Publ Co 1
88. ENTION repeat write Donnez un mot Mi readin MotFourni Compteur Compteur 1 Une EM OO teNIS MOOR writeln Compteur end 1 2 1 2 Remarques 1 var MotFourni string 20 2 3 2 LA Le type cha ne d au plus 20 caract res se traduit en Pascal par string 20 Bien videmment il est possible de d finir des variables cha nes de caract res en comportant un nombre maximal diff rent il suffit de faire figurer ce nombre entre crochets la suite du mot string 1l s agit toujours du nombre maximal de caract res que pourra comporter une cha ne accueillie dans cette variable La limite de ce nombre maximal de caract res est cependant fix e 255 2 until MotFourni ATTENT ON Nous avions jusqu pr sent fait comparer des nombres l aide du symbole On peut aussi faire comparer des informations de type cha ne de caract res 3 crites entre apostrophes 1 2 1 3 Habillage Les constantes de type cha ne de caract res doivent rappelons le une fois de plus tre Il reste pr sent habiller ce programme en tenant compte de l utilisateur program ATTENTIONI1 varl Mocromens String 20 7 Compteur integer begin writeln Vous allez me fournir successivement des mots writeln d au plus 20 lettres en faisant suivre chacun writeln d eux de l appui sur la touche d entr e writeln L arr t se fera STOP en maju
89. FIS FUNDP 2002 22 ao t 2002 Ch Duch teau Images pour programmer 1 re partie La marmite n est toujours pas remplie forc ment il n y a m me pas une pomme de terre suppl mentaire dedans On entame donc nouveau les actions command es par ce premier TANT QUE On tombe sur le second TANT QUE qui oblige travailler tant que le panier n est pas vide Ce travail commence par l valuation de la condition la marmite n est pas remplie Cette condition est videmment vraie et d s lors la suite du parcours est marmite pas remplie TANT QUE marmite pas remplie panier pas e TANT QUE panier pas vide marmite pas remplie V 7 F SI mamite pas remplie ALORS Remplis Remplis conduisant la situation On se trouve alors nouveau la condition TANT QUE panier pas vide Il n est pas encore vide et on recommence donc La marmite n tant pas remplie on p le une seconde pomme de terre Ce cycle se poursuit jusqu la situation Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 67 La marmite est alors remplie et le panier n est pas encore vide Et l on va alors rester prisonnier sans fin dans la boucle TANT QUE le panier n est pas vide En effet les actions command es dans cette boucle consistent d abord valuer la condition marmite pas remplie Cette condition tant fausse on ne p le rien de plus et on revi
90. FUNDP 2002 Programmer 9 compl tement et pr cis ment tout ce dont ce dernier est capable c est possible pour un robot aux actions limit es mais non pour un tre humain Ainsi concevoir une marche suivre destin e un humain est un exercice p rilleux puisque ne disposant pas d un portrait complet de ses possibilit s nous ne saurons jamais avec certitude a priori si nos consignes sont insuffisantes ou inutilement d taill es Je voudrais revenir et insister sur le fait que pour qu un probl me soit bien pos en programmation il faut non seulement que la t che qu il va falloir faire faire soit compl tement pr cis e mais encore que l ex cutant qui je devrai fournir les consignes explicatives soit parfaitement d fini On propose pourtant fr quemment aux d butants des nonc s du type analyser le probl me de la mise en marche d une voiture ou crire l algorithme pour la pr paration du caf ou r soudre le probl me consistant traverser une rue sans se faire craser par les voitures On y d signe comme des probl mes des activit s bien famili res On me r torquera qu il s agit de d crire la mani re dont on s y prend pour effectuer ces divers travaux Jusqu o alors pousser les explications et le d corticage En r alit ce qui est souhait c est qu on d crive les algorithmes ou marches suivre qui sous tendent chacune de ces t ches Mais dans ce cas les nonc s propos s s
91. I V P le oblige l ex cutant peler Mais le panier est pr sent vide et rien ne commande de le remplir et l ex cutant reste plant l ne sachant que faire puisqu on continue lui commander de saisir une pomme de terre dans un panier vide Voici donc un cas o la marche suivre propos e ne conduit pas une ex cution r ussie Il suffit videmment d un seul cas malheureux pour que cette marche suivre soit d cr t e incorrecte En effet pour prouver qu une marche suivre est erron e il suffit de mettre en vidence un seul exemple d ex cution insatisfaisante et c est ce que je viens de faire Le probl me crucial en programmation ce sera de s assurer que les marches suivre con ues sont bien correctes ce qui signifie qu elles conduisent des ex cutions satisfaisantes dans tous les cas imaginables TANT QUE marmite pas remplie 6 2 2 Proposition n 2 Voici un autre GNS marmite pas remplie panier pas vide marmite pas remplie TANT QUE panier pas vide SI marmite pas remplie ALORS P le Remplis V P le Remplis Je n invente videmment rien Tous ces exemples de marches suivre sont des productions incr dules correction Ch Duch teau d tudiants confront s ce probl me J en tiens plusieurs dizaines d autres la disposition des Avec sous les yeux la marche suivre ci d
92. II Images pour programmer 1 re partie 2 2 La s quence 36 2 2 1 Repr sentation sous forme de pseudo code 36 2 2 2 Repr sentation sous forme GNS 36 2 2 3 Repr sentation en Pascal 37 2 2 4 Repr sentation en organigrammes 37 2 2 5 Repr sentation en Basic 37 2 3 L alternative 38 2 3 1 Repr sentation sous forme de pseudo code 39 2 3 2 Repr sentation sous forme de GNS 41 2 3 3 Repr sentation en Pascal 42 2 3 4 Repr sentation en organigramme 42 2 3 5 Repr sentation en Basic 43 2 4 La r p tition 44 2 4 1 Repr sentation sous forme de pseudo code 47 2 4 2 Repr sentation sous forme GNS 47 2 4 3 Repr sentation en Pascal 47 2 44 Repr sentation en organigramme 47 2 4 5 Repr sentation en Basic 47 2 5 L appel de proc dure 48 2 6 Le branchement 49 3 Exercices 50 4 Retour sur les deux formes de structure r p titive 52 5 Exercices 57 6 Et si l on r digeait des marches suivre 59 6 1 Le robot peleur de pommes de terre 59 6 1 1 Les instructions d action l mentaire 60 6 1 2 Les conditions que l ex cutant peut tester 60 6 2 Examen de quelques marches suivre pour le robot peleur de pommes de terre 61 6 2 1 Proposition n 1 61 6 2 2 Proposition n 2 64 6 3 Construction d une marche suivre 67 6 4 Quelques remarques 70 7 Exercices 71 7 1 Commandes de robots virtuels 71 7 1 1 Le robot trieur de pi ces de monnaie 71 7 1 2 Le robot transporteur de sable 72 7 1 3 Le robot compteur de gou
93. IS FUNDP 2002 Une marche suivre qu est ce que c est Texte de la marche suivre Mettre un d cilitre d eau dans le plat REPETER Ajouter une cuiller e de farine M langer JUSQU A CE QUE la p te soit onctueuse Laisser reposer un quart d heure Incorporer une pinc e de sel Go ter TANT QUE le m lange n est pas assez sal Incorporer une pinc e de sel Go ter Ajouter les oeufs 45 Lors de l ex cution L ex cutant e met un d cilitre d eau dans le plat puis e ajoute une cuiller e de farine puis e m lange puis e ajoute une cuiller e de farine puis e m lange puis e ajoute une cuiller e de farine puis e m lange puis e laisse reposer un quart d heure puis e incorpore une pinc e de sel puis e go te puis e incorpore une pinc e de sel puis e go te puis e incorpore une pinc e de sel puis e go te puis puis e ajoute les oeufs On le voit dans le cas de la structure r p titive le nombre d actions ex cut es est en g n ral bien plus lev que le nombre d instructions crites puisque les actions command es sont de fait r p t es En g n ral CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 46 Images pour programmer l re partie Texte de la marche suivre Lors de l ex cution L ex cutant Instruction d action 1 e action 1 REPETER puis Instruction d action 2 e action 2 puis Instruction d action 3 e action3 puis e action
94. LLE L appel de la proc dure instruction d action trop complexe r f rant la marche suivre annexe se fait simplement en citant son nom ici TRAVAILLE Lors de la rencontre de cette instruction l ex cutant se d tourne un moment du programme principal pour suivre les instructions command es par la proc dure Apr s l ex cution des actions command es par celle ci il revient au programme principal l o il l avait laiss Il est trop t t pour approfondir les d tails entourant les possibilit s li es l appel de proc dure Cependant si l on veut pouvoir dans la suite rendre compte des concepts de variables locales et globales et de param tres il est utile de s imaginer d s pr sent les choses comme suit L ex cutant principal est toujours accompagn de son installateur d tiquettes Cet installateur dispose de la partie d claration du programme principal essentiellement constitu e pour l instant par la liste des variables Il installe donc sur des casiers du type ad quat les tiquettes r clam es Ensuite l ex cutant principal disposant du corps du programme la partie ex cutable se met au travail D s qu il rencontre dans la marche suivre une instruction complexe appel de proc dure il s interrompt et passe la main un ex cutant auxiliaire qui poss de lui le texte explicatif de la proc dure Dans le cas de l exemple ci dessus cet auxiliaire dispose du texte d crivant l
95. OEroNbEaMmE ISO writeln Vous m avez donn en tout Compteur mots end Toujours avec la m me structure de solution j avais galement d velopp un GNS illustrant la structure d appel de proc dure La marche suivre principale comportait alors une instruction d action complexe FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER qui se trouvait explicit e dans une marche suivre annexe proc dure En d signant sous la forme condens e TRAVAILLE l instruction complexe FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER les marches suivre correspondantes taient Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal avec 1 2 1 4 Place 0 dans le casier Compteur FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER MotFourni ATTENTION FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER MotFourni STOP Affiche Compteur Proc dure annexe COMMENT FAIRE TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER Affiche Donnez un mot Lis et place dans MotFourni 1 dans le casier Place Compteur Compteur Traduction 129 Place 0 dans le casier Compteur REPETER FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER JUSQU A CE QUE MotFourni ATTENTION REPETER FAIS TOUT CE QU IL FAUT POUR LIRE UN MOT ET LE COMPTER JUSQU A CE QUE MotFourni STOP Affiche Compteur
96. RE TOUT CE QU IL FAUT POUR MET IRE UNE SOMME DE TERRE POUR METTRE UNE POMME DE TERRE EN PLUS DANS LA MARMITE See apr a panier vide 2 SI panier vide ALORS 7 Remplis Nous avons donc avec la marche suivre principale et l annexe ci dessus une solution au probl me pos Nous soumettrons donc au robot l ensemble Comment REMPLIR LA MARMITE COMMENT FAIRE TOUT CE QU IL FAUT POUR METTRE UNE TANT QUE la marmite n est POMME DE TERRE EN PLUS pas remplie DANS LA MARMITE panier vide FAIS TOUT CE QU IL FAUT POUR METTRE UNE POMME DE TERRE EN PLUS DANS LA MARMITE C ou sous forme pseudo code CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 70 Images pour programmer 1 re partie Comment REMPLIR LA MARMITE et COMMENT FAIRE TOUT CE QU IL FAUT POUR METTRE UNE POMME DE TERRE TANT QUE la marmite n est pas remplie EN PLUS DANS LA MARMITE FAIS TOUT CE QU IL FAUT SI panier vide ALORS POUR METTRE UNE POMME DE TERRE EN PLUS DANS LA Remplis MARMITE P le A chaque fois qu au cours d ex cution de la marche suivre principale l ex cutant trouvera l instruction trop complexe FAIS TOUT CE QU IL FAUT POUR son regard va se d tourner vers l annexe explicative il ex cutera ce qui y est command puis reviendra la marche suivre principale pour en poursuivre l ex cution Bien videmment je peux en quelque sorte int grer les explications an
97. RS pr chauffer encore une fois apr s une pause de 30 secondes actionner nouveau le d marreur SI les pi ces sont sales ALORS nettoyer ces pi ces l aide d un chiffon propre SI on constate des d t riorations ALORS faire remplacer les pi ces d fectueuses Il s agit bien l d une nouvelle structure de contr le la structure alternative On parle quelquefois aussi son propos de structure conditionnelle 1 Le qualificatif conditionnel insiste sur la pr sence d une condition de laquelle d pendra la suite des actions effectu es Le mot alternative met plut t l accent sur le choix auquel l ex cutant est conduit De toute mani re ce sont bien ces deux aspects qui sont pr sents simultan ment dans cette nouvelle structure de contr le 2 La condition nonc e doit videmment tre d cidable sans ambigu t s par l ex cutant Ce ne pourra donc jamais tre des assertions aussi floues que SI le plat est assez sal ALORS ou comme dans la marche suivre n 3 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 30 Images pour programmer 1 re partie SI les pi ces sont sales ALORS o l appr ciation est trop largement laiss e l ex cutant On voit donc appara tre un concept nouveau l occasion de la d couverte de cette structure de contr le celui de condition Il s agit l d un nonc d une assertion dont l ex cutant peut au moment o il la rencontre dans l ex cution
98. Resultat Affiche Resultat Place Compteur 1 dans le casier Compteur SI Resultat 6 ALORS Place CompteurDesSix 1 dans CompteurDesSix JUSQU A CE QUE CompteurDesSix 3 Affiche Compteur var Resultat Compteur CompteurDeSix integer 1 begin Compteur 0 CompteurDeSix 0 repeat Resultat random 6 1 2 write Resultat Compteur succ Compteur CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 138 Images pour programmer 1 re partie ir Resultac 6 then CompteurDeSix succ CompteurDeSix until CompteurDeSix 3 writeln Compteur end 1 var Resultat Compteur CompteurDeSix integer Nous avons nouveau dress une seule liste de toutes les variables enti res 2 Resultat random 6 1 L outil qui permet l ex cutant de disposer d un nombre entier tir au hasard s appelle random L ex cutant y place un nombre ici 6 l entr e et il y reprend un nombre entier compris entre 0 inclus et le nombre entr exclu ici donc entre 0 et 5 Il ne reste plus alors qu ajouter 1 l information ainsi obtenue pour disposer coup s r d un nombre entre let 6 L habillage de ce programme va pour une fois nous amener d couvrir quelques possibilit s suppl mentaires du langage Pascal dans son impl mentation Turbo program JETDEDES Il fait simuler des jets successifs d un d jusqu obtention d un troisi me 6 var Resultat T qui co
99. SI Donnee gt PlusGrande ALORS Place Donnee dans PlusGrande JUSQU A CE QUE Compteur 100 Affiche Somme 100 Affiche PlusPetite Affiche PlusGrande 115 Nous voici au terme de cette d couverte des premiers tours de main de programmation Il en reste bien entendu beaucoup d couvrir et mettre en oeuvre A pr sent il faudrait surtout aborder des t ches un peu plus utiles ou motivantes en y int grant les tours de main acquis acqu rir et CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 116 Images pour programmer 1 re partie 2 Exercices 2 1 Conception d algorithmes Pour chacune des t ches suivantes r pondre aux questions Comment vous y prendriez vous aux prises avec ce travail en tant essentiellement attentif aux informations que vous retiendriez Quelles sont les variables indispensables quel en est le type et quel en sera le r le Quelle est la marche suivre exprim e sous forme GNS ou pseudo code FAIRE 1 Lire successivement 10 nombres r els et signaler ensuite combien il y en avait de n gatifs 2 Demander d abord l utilisateur combien de donn es r elles devront ensuite tre lues lire successivement ces donn es et fournir ensuite le nombre de donn es strictement n gatives le nombre de donn es strictement positives et le nombre de donn es nulles 3 Simuler des lancers successifs d une pi ce de monnaie jusqu ce que le nombre de pile d
100. UGE dans Signal MotLu STOP Place VERT dans Signal Lun MotLu STOP et Signal ROUGE Affiche Compteur ou sous forme pseudo code Place 0 dans le casier Compteur Place VERT dans le casier Signal REPETER Affiche Donnez un mot Lis et place dans MotLu Place Compteur 1 dans le casier Compteur SI MotLu ATTENTION ALORS Place ROUGE dans Signal SINON SI MotLu STOP ALORS Place VERT dans Signal JUSQU A CE QUE MotLu STOP et Signal ROUGE Affiche Compteur 1 3 1 1 Traduction Et voici la traduction Pascal de cette marche suivre program ATTENTIONSTOP var MoeruEN Sen 0IN Compteur integer Sionel 3 trine S1Is begin Compteur 0 Sigana E AVE AVIS repeat write Donnez un mot readin MotLu Compteur Compteur 1 if MotLu ATTENTION then Signal ROUGE else 1 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 135 SE MO bu OTOR EEn 2 Signal VERT CN MO PU OST OP En AN SORTE ROUGE writeln Compteur J end Remarques 1 else La structure alternative compl te SI condition ALORS SINON se traduit par HE conchirlon Chem oco CISS La syntaxe de cette instruction Pascal est la suivante 1r Conchitilon che instruction unique else instruction unique On remarquera l absence de point virgule avant le mot else 2 On peut parfaitement avoir des structures a
101. a proc dure TRAVAILLE 2 On verra dans un second volume de cet ouvrage que cet ex cutant adjoint peut lui aussi tre accompagn de son installateur d tiquettes si la proc dure comporte une partie d claration de variables Une fois le travail command dans le texte de la proc dure termin le couple se retire en emportant d ailleurs ses tiquettes L ex cutant principal continue alors l ex cution du programme principal l o il l avait laiss 4 Les actions command es dans le texte de la proc dure peuvent faire manipuler des variables d finies dans le programme principal Ainsi le texte de la proc dure TRAVAILLE fait mention des variables MotFourni et Compteur d finies dans le programme principal Nous reviendrons dans la suite beaucoup plus longuement sur cette possibilit 1 2 1 5 Habillage Le programme doit comme sa version pr c dente tre habill en tenant compte de son utilisateur program ATTENTION2 vark Horror 3 Serame 20 7 Compteur integer procedure TRAVAILLE begin write Donnez un mot 1 readiln MotFourni Cet clairage imag de la structure d appel de proc dure est d crit dans un fascicule Une approche m taphorique des concepts de proc dure variables globales ou locales et param tres que le lecteur int ress peut se procurer en m crivant On le trouvera d taill dans le second volume Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002
102. age de programmation travers lequel je finirai par devoir m adresser lui Notons donc que L ex cutant ordinateur l ordinateur machine le langage de programmation J ai dit que quel que soit le point de vue envisag l ordinateur est une machine traiter l information Si notre regard est celui du programmeur nous allons retrouver videmment cette caract ristique comme trait essentiel de l ex cutant ordinateur c est un manipulateur un traiteur d informations L ex cutant ordinateur est un manipulateur d informations Et d abord 1 C est un gestionnaire de casiers Nous pouvons l imaginer comme enferm dans une pi ce tapiss e de rayonnages de casiers CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 80 Debut Donnee MESSAGE Total CLIENT Images pour programmer l re partie Inutile de pr ciser qu il s agit videmment d une m taphore Elle est pertinente si notre objectif est de d couvrir les premi res caract ristiques de notre futur ex cutant Tout se passe comme si c tait un gestionnaire de casiers Mais comme toute image toute comparaison cette m taphore ment ou travestit en partie la r alit par simplification abusive ou omission Elle v hicule cependant un fond de v rit ainsi les casiers sont videmment les cellules ou
103. ait pas ce qu il doit en faire dans ce cas pr cis En r sum il y a dans une t te celle du client les r ponses mais il ne sait pas qu elles y sont et dans une autre t te celle de l informaticien il y a des questions mais il ne sait pas bien celles qu il est pertinent de poser Le bon informaticien n est pas celui qui commence par apporter des r ponses mais celui qui pose d abord les bonnes questions 4 Ce n est pas un hasard si la formation des informaticiens comporte une grosse partie consacr e l acquisition de m thodologies d exploration du Quoi faire pour de grandes cat gories de t ches gestion conception de bases de donn es Il s agit l de la premi re tape souvent la plus ardue du travail de l informaticien sur le chemin qui conduit de la t che son traitement par l ordinateur 5 Les questions pos es viendront de deux horizons Certaines seront motiv es par la t che elle m me dont il faut affiner la description ind pendamment du fait qu il faille ou non la faire traiter par un ordinateur Ce sont les questions que nous poserions de toute mani re si l on nous demandait d effectuer la t che nous m mes D autres pr cisions sont exig es parce qu il s agira de faire faire les choses par l ordinateur Ainsi dans l exemple de l criture des nombres en toutes lettres il est imp ratif de savoir dans le cas o les nombres crire comportent une partie d cimale si cette derni re s
104. ant alors n ant un travail de dactylographie repr sentant quelques minutes ou quelques heures Le texte ainsi recopi sur support externe pourra bien entendu tre ramen on dit charg dans la m moire pour tre r utilis 3 Nous savons que le texte du programme est tel quel incompr hensible donc inex cutable par l ordinateur il doit d abord tre traduit dans le langage de ce dernier ce qu on appelle le langage machine Pour effectuer cette traduction l ordinateur se laisse gouverner par un programme de traduction qu on appelle programme compilateur C est au cours de cette tape de traduction ou de compilation que les erreurs de syntaxe pr sentes dans le texte sont d tect es Cette d tection des erreurs est d ailleurs approximative l ordinateur se plante pendant la compilation il ne comprend plus un texte o l on n a pas scrupuleusement respect les r gles de syntaxe du langage compromis et il signale l endroit du texte o il a commenc ne plus pouvoir traduire Souvent il assortit ceci d une tentative de rep rage du type d erreur possible sous forme d un message plus ou moins sibyllin Il reste alors l apprenti programmeur r examiner le texte de son programme par exemple en recommen ant une phase d dition de ce texte pour le modifier en y corrigeant la ou les erreurs ayant provoqu la fin pr matur e de la traduction CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 18 Images p
105. ar un magn tophone bande le r glage est plus d licat car de telles sources audio comportent la fois des signaux tr s faibles et des signaux tr s forts D une mani re g n rale les r sultats obtenus sont les suivants A Si au cours de l enregistrement le voyant indicateur de niveau de saturation s allume fr quemment l enregistrement contiendra des distorsions sonores Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 27 B C Si au cours de l enregistrement le voyant indicateur de niveau de saturation 0 ne s allume pratiquement jamais l enregistrement obtenu sera d un niveau sonore insuffisant et le bruit de souffle de la bande se fera entendre nettement De mani re obtenir le niveau d enregistrement optimum r gler la commande de niveau d entr e de sorte que l indicateur 3dB s allume lorsque l entr e maximale est appliqu e Le voyant de niveau de cr te 6 peut s allumer de temps en temps Toutefois le niveau d enregistrement optimal varie en fonction de la source sonore et du type de bande utilis e Sp cialement avec la bande au m tal du fait que son point de saturation est plus lev que les bandes ordinaires ce n est pas important si le voyant 9 s allume de temps en temps Annexe la marche suivre n 1 Evidemment ceci allongerait le texte de la marche suivre principale et la d marche d analyse de la t che telle
106. assembler plusieurs instructions que l on veut voir ex cuter la suite de do en une seule l aide de begin et end Par exemple matile Vocal lt s gt TI or EU CO begin E E le Procbie Proc Reer 4a Ne Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 153 end Contrairement l instruction repeat l instruction while peut voir les instructions qu elle contr le ne pas tre ex cut es une seule fois si la condition sur laquelle porte le while a la valeur FAUX d s le d but 3 2 7 L appel de proc dure Pascal permet de faire figurer dans le texte du programme des actions complexes qui sont explicit es dans des proc dures annexes Il s agit l de la possibilit d appel de proc dure Il faut bien distinguer ce propos deux choses l action complexe command e dans le texte du programme appel de la proc dure l explicitation de cette action texte de la proc dure Je n essayerai pas pour l instant d tre complet ce propos Beaucoup de concepts importants viendront dans la suite enrichir cette structure variables globales ou locales param tres arborescence des divers niveaux de proc dures 3 2 7 1 Appel d une proc dure L appel d une proc dure consiste simplement citer l identificateur par laquelle on la d signe Cet identificateur suit les r gles syntaxiques habituelles 3 2 7 2 Texte d une proc dure Ce texte doit figurer au sein du programme lui m
107. avons d j fait un petit pas dans le d corticage rendu obligatoire par les caract ristiques de l ex cutant Le probl me n est plus d expliquer comment faire pour remplir la marmite mais seulement comment faire pour ajouter une pomme de terre suppl mentaire dans cette marmite Ainsi donc nous pouvons ce niveau de l analyse nous poser la question suivante si l ex cutant tait capable de comprendre FAIS TOUT CE QU IL FAUT POUR METTRE UNE POMME DE TERRE EN PLUS DANS LA MARMITE la marche suivre propos e ci dessus serait elle correcte Et l on constate que tout ira bien sauf dans le cas limite o aucune pomme de terre ne doit tre pel e parce que la marmite fournie est d j remplie avant m me que le robot ne commence son travail Je rappelle que j avais signal cette possibilit lors de l nonc du probl me On va objecter que vraiment c est chercher la petite b te que d voquer le cas extr me o la marmite est d j remplie avant que le travail ne commence Je r pondrai seulement que le folklore informatique foisonne de ces exemples de cas extr mes et non envisag s par les programmes de traitement Combien de fois les consommateurs forc s d informatique se voient ils opposer au cours de leurs d marches administratives la petite phrase l ordinateur n a pas pr vu votre cas comme si l ordinateur pouvait pr voir quoi que ce soit La justification correcte est
108. bas du GNS Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 61 vous ne pouvez rien supposer quant l tat initial du panier lorsque le robot commencera l ex cution de votre marche suivre il est peut tre vide peut tre plein peut tre moiti vide De plus vous ne pouvez rien conjecturer non plus propos de sa taille il peut tre tout petit ne pouvant contenir qu une pomme de terre ou tr s grand vous ne pouvez non plus pr sumer de la taille de la marmite remplir ni de la quantit de pommes de terre d j pel es qui y est contenue La marche suivre doit tre valable qu il s agisse d une norme marmite d une marmite ne pouvant contenir qu une seule pomme de terre ou m me d une marmite qu on am ne d j moiti ou compl tement remplie dans ce dernier cas le robot ne doit videmment rien peler Ceci constitue pour moi plus qu un exemple folklorique ou amusant Ce probl me car c en est un nous plonge au coeur de la programmation Bien s r le robot commander n est pas encore l ex cutant ordinateur manipulateur d informations m me si la liste des actions l mentaires et des conditions va changer lorsque notre interlocuteur sera l ordinateur le probl me de faire faire en fournissant une marche suivre est au fond identique Je sugg re tous les lecteurs qui seraient tent s de trouver peu s rieux des probl mes de ce
109. bre de donn es fournies 3 les informations soulign es tant celles fournies au clavier par l utilisateur 4 Nous commandons l affichage de deux informations qui se suivront coll es l une l autre sur la m me ligne La premi re est la constante cha ne de caract res Nombre de donn es fournies et l on remarquera l espace qui la termine la seconde est le contenu du casier Compteur Ce premier type d habillage tant termin il reste indiquer ce que sera le second Il ne s adressera plus l utilisateur mais au lecteur du texte m me du programme Il s agit l de l tre humain connaissant g n ralement la programmation et qui je transmets pour information tout le dossier de programmation d une application du Quoi faire au Comment dire Le texte du programme est la derni re pi ce de ce dossier et j y ferai donc figurer des commentaires remarques pour aider ce lecteur comprendre l analyse que j ai men e et le programme qui en a r sult Ainsi je rappellerai les objectifs du programme construit pour chacune des variables j indiquerai quoi elle servira les informations qui y seront contenues Cette pr occupation conduit par exemple au programme suivant program ARRETAO Ce programme fait lire des nombres r els jusqu ce que 0 soit fourni et fait alors afficher combien de nombres ont t lus var NombreFourni qui contiendra les donn es lues real Compteur
110. cas bien improbable o toutes les donn es re ues seraient plus lev es que cette quantit Le m me probl me se pose videmment pour la d tection de la plus grande des donn es En r alit une approche un peu diff rente permet de venir bout de cette difficult Il suffit de traiter un peu diff remment la toute premi re donn e qui peut servir initialiser Somme PlusPetite et PlusGrande On n oubliera pas de placer 1 dans le Compteur En effet la premi re donn e fait l objet d un traitement sp cifique hors de la boucle de r p tition on commencera donc celle ci avec une donn e d j lue et trait e Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main Affiche Donn e Lis et place dans Donnee Place Donnee dans Somme Place Donnee dans PlusPetite Place Compteur 1 dans Compteur Place Somme Donnee dans Somme Donnee lt PlusPetite Place Donnee dans PlusPetite Donnee gt PlusGrande En a Place Donnee dans PlusGrande Compteur 100 Affiche Somme 100 Affiche PlusPetite Affiche PlusGrande et sous forme pseudo code Affiche Donn e Lis et place dans Donnee Place Donnee dans Somme Place Donnee dans PlusPetite Place Donnee dans PlusGrande Place 1 dans Compteur REPETER Affiche Donn e Lis et place dans Donnee Place Compteur 1 dans Compteur Place Somme Donnee dans Somme SI Donnee lt PlusPetite ALORS Place Donnee dans PlusPetite SINON
111. ce qu il faudrait parce que le programme comporte des lacunes ou des erreurs Nous dirons bien entendu dans ce cas qu il est incorrect Cette vision reporte videmment l tape du Quoi faire une bonne partie des probl mes C est alors en effet qu il faudra avoir pr cis parfaitement la t che qu il faut faire accomplir dans quelles limites pourront tre comprises les donn es traiter comment les r sultats doivent ils tre pr sent s En r sum ou bien le programme fait faire ce qui tait pr vu et dans ce cas il est correct ou bien il ne fournit pas dans les situations envisag es les r sultats escompt s et il est alors erron 7 Exercices 7 1 Commandes de robots virtuels Dans chacune des situations suivantes un robot est d crit les instructions d action l mentaire qu il comprend et les conditions qu il est capable de tester sont pr cis es Il s agit chaque fois de proposer sous forme GNS ou sous forme pseudo code la marche suivre qui le conduise effectuer la t che envisag e Je rappelle que les conditions nonc es peuvent tre ni es et que plusieurs de ces conditions peuvent tre li es par les mots ET et OU pour composer des conditions plus complexes 7 1 1 Le robot trieur de pi ces de monnaie Tas de pi ces de 1 5 et 20 Frs Ce robot va devoir r partir un tas constitu de pi ces de 1 5 et 20 Frs dans trois r cipients destin s recevoir les pi c
112. cha ne de caract res et non d un casier 3 Une expression Je vais devoir ici quelque peu anticiper sur la suite crivant par exemple Place 12 X dans DEBUT L information placer dans le casier DEBUT prend ici la forme de ce que nous appellerons une expression Face cette instruction et pour autant que X et DEBUT soient des casiers de type ad quat par exemple de type entier l ex cutant va prendre 12 dans la malle informations CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 88 Images pour programmer 1 re partie aller chercher copie du contenu du casier X additionner nous savons qu il en est capable les deux informations recueillies placer l information r sultante dans le casier DEBUT o elle prend la place de celle qui s y trouve Si donc X contenait l information 10 l information placer dans DEBUT et que nous d signons ici par 12 X est en r alit le nombre 22 Apr s les quelques manipulations provoqu es par l criture 12 X l ex cutant se retrouve avec en main l information 22 et c est elle qu il place dans DEBUT Voici quelques autres expressions C 1 2 SALAIRE 120 Nous en d couvrirons bien davantage dans la suite En r sum La premi re instruction d action l mentaire est l instruction d affectation remplissage d un casier Elle s nonce Place telle information dans tel casier s crit comme une constante un nom de casier une expr
113. ci Fais ceci Do this ii 70 Do this Fais cela Fais cela Do that Fais cela 80 Do that t On le voit il s agit bien l de mani res quivalentes de traduire et de faire appara tre quelles que soient les instructions d action employ es la structure s quentielle 2 3 L alternative A partir de maintenant la correspondance entre le texte de la marche suivre et le d roulement de son ex cution qui tait de r gle avec la s quence va dispara tre Dans le cas de l alternative il est impossible de pr voir exactement ce que sera l ex cution de la marche suivre puisque des conditions dont nous ne connaissons pas la valeur de v rit au moment de la r daction vont tre pr sentes Par exemple dans la marche suivre n 2 Texte de la marche suivre Lors de l ex cution SI la temp rature est sup rieure 0 C ALORS ne pas acc l rer pendant le lancement impossible pr voir au moment de l criture de la SINON marche suivre enfoncer compl tement l acc l rateur pendant le lancement du moteur Tout va d pendre lors de l ex cution de la temp rature Mais en tout cas une seule des deux actions d crites sera ex cut e alors que les deux instructions correspondantes figurent pourtant dans le texte de la marche suivre On peut dire en quelque sorte que lorsque l alternative est pr sente il y a moins d actions ex cut es que d instructions crites Si l valuation de la cond
114. cilement per ue et non la dissimuler dans des textes de programmes obscurs et illisibles Nous voil au terme du traitement de ce premier exemple Avec l analyse pr sent e au chapitre pr c dent nous venons d achever l illustration de l ensemble de la d marche de la d finition pr cise de la t che l criture et l habillage du programme Pascal Il reste indiquer comment les autres probl mes analys s seront traduits en Pascal et comment les programmes r sultants seront leur tour habill s 1 2 Le probl me du signal Il s agissait cette fois de faire lire et compter des mots avec arr t STOP condition que ATTENTION soit survenu auparavant 1 2 1 Premi re solution C tait celle o deux r p titions successives taient command es la premi re s interrompant la lecture de ATTENTION la seconde celle de STOP 1 2 1 1 Traduction Voici nouveau c te c te le GNS tel que nous l avions con u dans l tape pr c dente et son expression en Pascal CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 126 Images pour programmer l re partie program ATTENTION1 Liste des variables var MotFourni de type cha ne d au plus 20 caract res Moro SS En Ol2I0IS Compteur de type entier Compteur integer Marche suivre begin Affiche Donnez un mot FREE o e a Lis et place dans MotFourni Tesdln Morrourri Place Compteur 1 dans le casier Compteur Compteur C
115. commentaire est un clin Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 35 d oeil d un tre humain le programmeur un autre tre humain le lecteur On le verra la compr hension d une marche suivre est une t che complexe comme sa correction ou sa modification Les commentaires dont l ex cutant n a que faire seront l pour faciliter cette compr hension le premier int ress tant souvent le programmeur lui m me qui devra parfois apr s plusieurs mois se replonger dans le texte d une marche suivre qu il avait con ue 2 Les structures de contr le Nous avons d couvert qu c t des instructions d action l mentaire et des commentaires les marches suivre comportaient toujours des instructions d organisation de ces actions les structures de contr le Je vais pr sent les passer en revue pour compl ter les informations leur propos et d crire des mani res de repr senter ces structures dans le texte m me des marches suivre 2 1 Les divers modes de repr sentation des structures de contr le Il existe diverses possibilit s de faire plus ou moins clairement appara tre les structures de contr le pr sentes dans une marche suivre et cela ind pendamment des instructions d action l mentaire qu elle comporte Je pr senterai ici cinq types de repr sentation pseudo code encore appel langage de description d algorithmes grap
116. cran les informations indiqu es Elles se traduisent par write informations afficher ou encore writeln informations afficher Par exemple write Resultat Nombre writeln X Y Somme Writeln 2 x x g v15 On le voit les informations afficher prennent comme toujours la forme soit de constantes Resultat 15 soit de variables Nombre X Y Somme soit encore d expressions 2 X Les diverses informations dont on demande l affichage doivent tre s par es par des virgules Elles seront affich es les unes la suite des autres coll es l une l autre L instruction writeln provoque apr s l impression des informations concern es un saut la ligne Les informations qui appara tront donc ensuite l cran qu elles y soient cause d un nouvel affichage ou cause d une lecture les informations frapp es par l utilisateur apparaissant videmment l cran au fur et mesure qu il les frappe seront situ es la ligne suivante L instruction writeln peut aussi tre utilis e seule sans les parenth ses pour effectuer un passage la ligne Apr s write il n y a pas de saut la ligne Il est donc possible par write et writeln de faire appara tre l cran un message Il s agit simplement de commander l affichage d une constante de type cha ne de caract res il faut rappelons le que celle ci apparaisse entre deux symboles apostrophe Par exemple si la variable X c
117. ctation d une information r elle une variable Ainsi on pourrait crire Donnee mais aussi Donnee ou Donnee r elle l affectation celle ci d une information enti re 13 367 Compteur Donnee tant une variable r elle et Compteur une variable enti re L inverse affectation d une information de type r el une variable enti re n est videmment pas permis 2 Somme 100 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 143 Nous trouvons ici pour la premi re fois l op ration de division L outil correspondant figure bien entendu sur la table de travail de l ex cutant Les deux informations fournir doivent tre de type entier ou r el le r sultat lui est toujours de type r el Ainsi 4 2 est de type r el comme Somme 100 m me si dans le cas de 4 2 la division tombe juste C est une r gle assez g n rale qu on puisse ainsi lorsqu on commande une op ration m langer des arguments entiers et r els Si les deux nombres sont de type entier le r sultat l est lui aussi sauf pour sinon le r sultat est de type r el Comme d habitude il reste habiller le programme ainsi obtenu program MOYENNE Il fait lire une s rie de 100 donn es r elles et fait afficher la plus petite la plus grande et leur moyenne var Donnee Eu qui contiendra successivement les diverses donn es fournies Somme qui c
118. dans le casier Compteur Compteur 0 REPETER repeat Affiche Donnez un nombre writeln Donnez un nombre Lis et place dans NombreFourni readiln NombreFourni Place Compteur 1 dans le casier Compteur Compteur Compteur 1 JUSQU A CE QUE NombreFourni 0 until NombreFourni 0 Affiche Compteur writeln Compteur end Revoici sous une forme plus lisible le texte du programme Pascal mis en vidence Il sera suivi d un certain nombre de remarques explicatives Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 121 program ARRETAO 1 var NombreFourni real 2 Compteur integer 3 begin 4 Compteur 0 5 repeat 6 writeln Donnez un nombre 8 readin NombreFourni 7 Compteur T COnp Ecuria Ii until NombreFourni 0 6 writeln Compteur 8 end 4 1 1 2 Remarques 1 2 3 program ARRETAU Tout programme Pascal commence par un en t te Le mot r serv program est suivi de l identification de celui ci ici ARRETAO Cet identificateur du programme doit commencer par une lettre ne comporter que des lettres majuscules ou minuscules non accentu es le symbole de soulignement _ et des chiffres La m me r gle s appliquera tous les identificateurs rencontr s dans la suite par exemple ceux d signant les variables ou les proc dures J avais d j respect ces r gles orthographiques lors de l analyse dans le choix des noms de variables Je pourrai
119. de la perforatrice l ordinateur pour la correction des erreurs de syntaxe le programme finissait par tre compil traduit et prenant le contr le de l ordinateur par lui faire faire tout autre chose que ce qui tait attendu cette autre chose tant le plus souvent rien du tout D autres ont d peint bien mieux que moi les r sultats aberrants et les ravages de cette absence de m thode o programmation rimait avec connaissance de la syntaxe d un langage et o t nacit et endurance tenaient lieu de r flexion et d intelligence Cf 3 15 51 Il ne faut pas confondre dissertation fran aise et accord du participe Dans beaucoup de formations la programmation tout se passe souvent comme si l on annon ait l organisation de cours sur la dissertation fran aise le public int ress s inscrit en Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 19 esp rant qu on explique comment on peut cerner un sujet comment dresser un plan conducteur comment argumenter organiser sa pens e Et il est tout surpris de trouver un cours sur l accord du participe ou sur le pluriel des noms quand ce n est pas simplement une initiation la dactylographie En programmation il ne faut pas non plus se tromper de cible programmer c est tout autre chose que ma triser les commandes d un ordinateur fut il micro ou m me qu tre un sp cialiste de la syntaxe d un langage de programmation Et la pr
120. de mener bien soi m me une t che donn e mais d expliquer un autre comment il doit s y prendre pour ex cuter cette t che notre place En quelque sorte PROGRAMMER c est FAIRE FAIRE Chacune des t ches d crites pose un v ritable probl me d s qu il s agit de la faire faire par un autre Evidemment la difficult d pend de mani re cruciale des possibilit s et des caract ristiques de cet autre Premi re difficult l ex cutant a des capacit s limit es S il s agissait d un tre humain lui faire ex cuter les diverses t ches voqu es exigerait seulement qu on lui dise rep re dans la s rie de nombres qu on va te fournir quel est le plus petit et le plus grand Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 7 lis le texte et signale ensuite combien de fois le mot et s y trouve jette un d jusqu ce que le 6 apparaisse pour la troisi me fois et annonce alors combien de fois tu as d jeter le d pour cela cris en chiffres romains les nombres que je te fournirai Exactement comme il suffit de pr ciser confectionne une blanquette de veau pour obtenir le r sultat souhait lorsqu on s adresse un cuisinier confirm Si par contre on est au prise avec un d butant ou une d butante cette petite phrase ne suffit plus il est alors indispensable de fournir la recette correspondante Et le d tail des explications qui doivent tre donn es d pend
121. deux formes pr sent es l appel de proc dure le branchement 1 3 Les commentaires Je n ai pas puis la liste des ingr dients des marches suivre Un retour la marche suivre n 1 va permettre l vocation d une troisi me et derni re composante A c t des instructions d action l mentaire et des structures organisatrices qui constituent l essentiel de la marche suivre celle ci comporte des assertions comme De cette mani re la platine est mise en mode d attente d enregistrement Les diodes lectroluminescentes correspondant aux touches REC et PLAY sont aussi allum es Il ne s agit pas l d une instruction d action qu elle soit l mentaire ou complexe Ce n est pas non plus une structure qui va organiser le d roulement des actions prescrites C est simplement une remarque un commentaire destin rassurer l tre humain ex cutant cette marche suivre On pourrait d ailleurs fort bien supprimer cette phrase du texte sans d naturer la marche suivre r sultante Ainsi donc le dernier constituant est l ensemble des commentaires Dans le cas des marches suivre de la programmation qui s adresseront l ex cutant ordinateur il est illusoire et inutile de vouloir l encourager ou le rassurer Les commentaires qui seront cependant fort nombreux s adresseront alors un autre qu l ex cutant ils seront l pour le lecteur de la marche suivre Ce dernier est un tre humain et chaque
122. do code Affiche Donn e Lis et place dans Donnee Place Donnee dans Somme Place Donnee dans PlusPetite Place Donnee dans PlusGrande Place 1 dans Compteur REPETER Affiche Donn e Lis et place dans Donnee Place Compteur 1 dans Compteur Place Somme Donnee dans Somme SI Donnee lt PlusPetite ALORS Place Donnee dans PlusPetite SINON SI Donnee gt PlusGrande ALORS Place Donnee dans PlusGrande JUSQU A CE QUE Compteur 100 Affiche Somme 100 Affiche PlusPetite Affiche PlusGrande 141 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 142 Images pour programmer 1 re partie Voici le programme Pascal correspondant program MOYENNE var Donnee Somme Compteur integer begin write Donn e ORS readin Donnee Somme Donnee PlusPetite Donnee PlusGrande Donnee Compteur 1 repeat write Donn e jy readin Donnee Compteur succ Compteur Somme Somme Donnee PlusPetite PlusGrande real 1 dr Donme lt PlvgPocite CHEN PlusPetite Donnee else if Donnee gt PlusGrande then PlusGrande Donnee until Compteur 100 writeln Somme 100 writeln PlusPetite writeln PlusGrande end 1 var Donnee Somme PlusPetite 2 PlusGrande real Nous le savions d j le type r el se traduit real Une variable de ce type pourra donc contenir un nombre r el Le langage Pascal permet cependant outre l affe
123. duit consid rer comme complexe telle action et comme l mentaire telle autre Et il est bien vident que tout compte fait les instructions donn es doivent finir par tre l mentaires soit directement soit au sein des proc dures marches suivre annexes explicatives 4 Rien n emp che videmment qu au sein d une proc dure on trouve nouveau des instructions d action complexe r f rant d autres proc dures et ainsi de suite La structure globale ressemble alors beaucoup plus une cascade une arborescence qu une liste lin aire d instructions l mentaires La marche suivre principale fait appel des annexes certaines de ces derni res renvoyant leur tour des annexes et ainsi de suite 1 2 3 L alternative Le second exemple de marche suivre va nous en apprendre plus sur les structures de contr le Proc der de la fa on suivante pour lancer le moteur froid et quelle que soit la temp rature ext rieure Tirer fond le bouton de commande du dispositif de d part froid Tourner la cl de contact en position 2 Le t moin de pr chauffage s allume au tableau de bord Maintenir la cl de contact dans cette position jusqu ce que le t moin de pr chauffage s teigne Lancer le moteur en tournant la cl de contact en position 3 aussit t que le t moin de pr chauffage est teint Ne pas acc l rer pendant le lancement lorsque la temp rature est sup rieure 0
124. e le programme ne doit pas se planter m me si la seule donn e fournie par l utilisateur idiot est justement celle qu il avait choisie pour provoquer l arr t 2 2 Le probl me du calcul de moyenne J ai signal en ce qui concerne le probl me 5 calcul de la moyenne que la restriction 100 donn es rendait le programme r sultant peu utilisable Comment pourrait on changer les sp cifications pour s affranchir de cette limitation en obtenant un programme qui puisse traiter un nombre de donn es quelconque Peut on faire en sorte que l utilisateur ne soit pas tenu de compter les donn es avant de commencer les fournir Pour chacun des nonc s auxquels conduiront ces extensions exposer la d marche de programmation suivie en allant jusqu l criture du GNS 2 3 Autres expressions de structures r p titives Les marches suivre correspondant aux probl mes abord s ont essentiellement comport des r p titions sous la forme R PETER JUSQU A CE QUE Pouvez vous r crire les GNS correspondants en utilisant la structure TANT QUE CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 5 TRADUCTION EN PASCAL Avant de se retrouver enfin assis face l ordinateur l avant derni re tape du traitement informatique d une t che est celle au cours de laquelle la marche suivre obtenue sous forme GNS sera traduite dans un langage de programmation Cette tape du Comment dire ne r clame plus gu
125. e C est donc seulement travers les instructions fournies cet ex cutant que je peux me pr occuper en diff r de l utilisateur La seule mani re d tre attentif ce dernier consiste commander l affichage de messages explicatifs qui lui indiqueront le traitement que permet le programme les donn es qui sont attendues et les r sultats qui seront fournis Je vais donc ajouter au programme existant ces instructions d affichage indispensables Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 123 Ceci conduit la version suivante o les instructions suppl mentaires sont en gras et en rouge program ARRETAO var NombreFourni 3 real p Compteur integer begin writeln Vous allez me fournir des nombres r els en faisant 1 writeln suivre chacun d eux de l appui sur la touche d entr e 2 writeln Vous terminerez la s rie par 0 et je vous dirai alors writeln combien de nombres vous m avez fournis au total Compteur 0 repeat write Donnez un nombre 3 readiln NombreFourni Compteur Compteur 1 until NombreFourni 0 writeln Nombre de donn es fournies Compteur 4 end Remarques 1 Les messages dont nous commandons l affichage ne sont bien entendu rien d autre pour l ex cutant que des constantes de type cha ne de caract res Il faut savoir qu une telle constante peut comporter n importe quel caract re sauf celui indiquant un pa
126. e crit re conduit d ailleurs dans la foul e supprimer aussi l analyse litt raire et la composition fran aise l tude du grec et du latin le cours de math matique les activit s artistiques dessin musique 4 Je propose que les nombreuses heures ainsi lib r es soient consacr es l apprentissage des techniques permettant de mener bien les menus travaux de plomberie et d lectricit domestique et surtout l tude des langues trang res et la dactylographie Nous n aurons plus rien nous dire mais nous pourrons l exprimer en plusieurs langues nous n aurons plus rien crire mais nous pourrons le faire rapidement Mon objectif s inscrit dans cette vision non utilitariste je ne veux pas ici former des professionnels de l informatique et plus particuli rement de la programmation ma perspective est plus culturelle que technique plus formative que pratique Je souhaite fournir au lecteur des cartes pertinentes du monde de la programmation lui signaler les collines importantes qui vont permettre les points de vue int ressants lui faire voir quelques paysages typiques et non en explorer longuement les moindres recoins Constatation n 3 M me si l on se range aux arguments avanc s et si l on accepte bon gr mal gr de reconna tre au del d une perspective directement utilitaire une valeur formative l apprentissage de la programmation pourquoi faut il ajouter un ouvrag
127. e soulignement _ commen ant obligatoirement par une lettre Les lettres peuvent tre crites en majuscules ou en minuscules mais Pascal ne fait pas de diff rence pour lui A et a c est la m me lettre sauf lorsqu on lui parlera de constantes cha ne de caract res ce qui n a rien voir avec les identificateurs Notez cependant que les lettres accentu es ne sont pas accept es Il va sans dire que l identificateur du programme ne peut tre r employ tel quel pour identifier dans la suite des variables des proc dures etc De plus je l ai signal ci dessus les mots r serv s du langage program var ne peuvent servir comme identificateurs Ces mots r serv s peuvent cependant tre inclus dans des identificateurs valables par exemple programme variable diff rence sont permis Ainsi factorielle Dans les impl mentations r centes de Turbo Pascal l diteur de texte permettant d crire les programmes Pascal est g n ralement capable de mettre en vidence par la couleur l italique le gras les mots r serv s les commentaires etc CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 146 Images pour programmer l re partie EQUATIONDUSECONDDEGRE EQUATION_DU_ PREMIER _DEGRE EquationDuPremierDegre A123 sont des identificateurs valables Par contre ne conviennent pas 143 Commence par un chiffre Prog
128. e suppl mentaire la liste fort longue de Je vous laisse le soin de compl ter la liste Je ne suis pas le moins du monde oppos l tude des langues et je trouve l apprentissage de la dactylographie fort utile ne serait ce que pour communiquer avec les ordinateurs par l interm diaire d un clavier CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau VI Images pour programmer 1 re partie ceux qui traitent d j de ce m me sujet Que dire qui n ait d j t maintes fois dit Qu apporter de neuf dans un domaine d j cent fois explor R ponse n 3 Cette objection est probablement la plus malais e rencontrer J y ferai face en pr cisant d o vient cet ouvrage et quels en sont les objectifs l Depuis 1981 j assure une formation la programmation pour des enseignants eux m mes charg s du cours d informatique dans le secondaire La bri vet de cette initiation oblige videmment une pr sentation des concepts essentiels qui les rende digestes et compr hensibles pour des apprenants adultes qui n ont gu re de r f rences dans ce domaine De plus dans le cas d un tel public l emballage est aussi important que le contenu Mon environnement de travail est essentiellement constitu de sp cialistes de la p dagogie Les questions de mes coll gues p dagogues propos de la programmation et de son apprentissage sont de vraies questions il me faut souvent des mois pour en cerner la port e
129. el ou tel panier telle ou telle marmite pourrait seulement montrer que dans chacun des cas test s a marche On n aurait pas pour autant prouv que la solution propos e est satisfaisante dans tous les cas imaginables Le probl me de la preuve de la correction d un algorithme est bien difficile Elle s apparente de tr s pr s aux math matiques et d passe de loin le cadre de mon propos Le lecteur int ress peut par exemple consulter 1 ou 5 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 71 Je ne d montrerai jamais que les marches suivre d velopp es dans cet ouvrage sont correctes Simplement j essayerai de vous en convaincre et de vous faire partager mes certitudes 2 On pourrait piloguer longuement sur ce qu on appelle une marche suivre correcte Je dirai seulement que ceci n a de sens que rapport ce qui tait attendu et pr cis dans le Quoi faire Le cahier des charges tant pr cis de deux choses l une Le programme labor fait faire exactement ce qui est attendu dans tous les cas pr vus et nous pouvons alors d cr ter qu il est correct ou plus justement conforme aux sp cifications labor es dans l tape du Quoi faire Cf Chapitre 1 Certaines situations pourtant mises en vidence lors de la pr cision de ce qui est attendu ne sont pas correctement trait es l ex cutant guid par le programme ne fait pas
130. elles que nous avons d sign es pr c demment par le vocable de condition Elles s emploient fr quemment avec if while repeat until Elles fournissent comme r sultat VRAI ou FAUX Elles font usage des symboles lt gt lt gt lt gt des connecteurs and et or de la n gation not de parenth ses CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 156 Images pour programmer 1 re partie Je n entrerai pas pour l instant dans les d tails syntaxiques de l emploi de ces symboles Je me contente de dire que comme l emploi des parenth ses est parfois obligatoire il est conseill d en placer autant qu il faut pour que les expressions soient claires et non ambigu s En tout cas lorsque plusieurs comparaisons sont connect es par les mots and ou or chacune d elles doit figurer entre parenth ses Par exemple LE A lt gt 0 and Compteur 1 or FF lt NombMax then while I lt N and not I gt MM do Les divers symboles de comparaison pourront s crire aussi bien entre des informations num riques qu entre celles de type cha ne de caract res L ordre sous jacent dans ce dernier cas est celui du dictionnaire ordre lexicographique les majuscules pr c dant les minuscules Ainsi chat lt chien est vrai Chien lt chat est vrai Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 CONCLUSION PROVISOIRE Que voici un moment mal choisi pour se quitter la descri
131. ence quels sont les blocs pr sents C est l indentation le recul de parties du texte par rapport la marge gauche qui va permettre d en d cider Ainsi dans la marche suivre Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 41 SI le demandeur n est pas en r gle ALORS Lui faire remplir le formulaire rose B12 SINON Reprendre la teneur de sa demande sur le formulaire jaune C15 Compl ter le formulaire vert A24 Renvoyer le dossier au bureau central Il est clair que le formulaire rose doit tre compl t lorsque le demandeur n est pas en r gle et que le formulaire jaune doit tre compl t dans le cas contraire Mais faut il compl ter le formulaire vert quel que soit l tat du demandeur ou seulement lorsqu il est en r gle En d autres termes quelles sont les instructions d action sur lesquelles porte le SINON et o la suite reprend elle L criture avec indentation va permettre d en d cider SI le demandeur n est pas en r gle ALORS gt Lui faire remplir le formulaire rose B12 SINON gt Reprendre la teneur de sa demande sur le formulaire jaune C15 Compl ter le formulaire vert A24 Renvoyer le dossier au bureau central Ainsi clairement le formulaire C15 est compl ter lorsque le demandeur est en r gle et quel que soit son tat dans tous les cas le formulaire vert doit tre rempli Si le texte avait t SI le demandeur n e
132. ent TANT QUE le panier n est pas vide ce qui reste bien s r vrai puisqu on n y a puis aucune pomme de terre en plus Le flot des activit s continue sans fin de la mani re suivante marmite pas remplie panier pas eo marmite pasv mplie V P le Remplis ou en pseudo code TANT QUE marmite pas remplie TANT QUE panier pas vide SI maMite pas remplie ALORS P le Remplis Nous voici d s lors aux prises avec le cauchemar des programmeurs conduit par la marche suivre propos e l ex cutant travaille sans jamais s arr ter Cette situation assez fr quente est d sign e par des expressions comme cyclage ou bouclage chaque fois l ex cutant y est prisonnier d une boucle de r p tition qu il reprend sans cesse la condition qui permettrait de la quitter ne se r alisant jamais C est videmment une erreur que nous rencontrerons aussi dans le cadre de la vraie programmation lorsque notre interlocuteur sera l ex cutant ordinateur Apr s ces tentatives infructueuses le moment est venu de proposer une solution correcte au probl me du peleur de pommes de terre 6 3 Construction d une marche suivre Il n existe malheureusement aucune r gle qui conduise coup s r l criture d une marche suivre satisfaisante autrement dit il n existe aucun algorithme pour la conception des algorithmes En ce sens la programmation reste et restera u
133. er une somme d argent en coupures en minimisant le nombre de celles ci Je pourrais et de beaucoup allonger cette liste Mais chaque fois les activit s voqu es constituent des t ches souvent fastidieuses mais en tout cas d une simplicit remarquable Je n ai jamais rencontr personne qui face au travail consistant trier 20 cartes fournies dans le d sordre ait demand un long d lai de r flexion ou s en soit d clar incapable Que dire alors de l activit consistant additionner deux nombres par calcul crit ou compter les mots d un texte Tous ces exemples d crivent des t ches souvent l mentaires parfois franchement risibles tant elles paraissent d nu es de cr ativit et de la moindre r flexion En tout cas personne n est pr t qualifier de probl mes ces travaux rudimentaires Le mot probl me charrie avec lui une aura de difficult d invention de recherche que ne m ritent absolument pas les t ches voqu es ci dessus On ne r sout pas le probl me de lancer un d jusqu au moment o l on obtiendra trois 6 de suite on n analyse pas longuement le probl me consistant rep rer si un nom est oui ou non pr sent dans une liste tri e alphab tiquement On m objectera sans doute que s il s agissait de 20000 cartes trier ou du d compte des mots constituant les oeuvres compl tes d Emile Zola on se trouverait en face de vrais probl mes Qu il soit malais de trouver quelqu un
134. era annonc e par une virgule comme en fran ais ou par un point comme les anglo saxons Ce qui n est qu un d tail futile auquel nous ne penserions m me pas s il s agissait d crire les nombres nous m mes devient important parce qu il va s agir de les faire crire l ex cutant ordinateur pr f rant souvent alors le point la virgule Cette deuxi me cat gorie de questions est bien entendu la plus difficile CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 12 Images pour programmer 1 re partie d couvrir pour le d butant puisqu elle postule qu on connaisse bien les caract ristiques de l ex cutant ordinateur qui va les motiver A l issue de cette premi re tape le cahier des charges est tabli nous savons alors avec pr cision ce qu il faut faire faire L tape suivante est videmment celle du 3 2 Comment faire Il s agit ici de mettre au jour les strat gies employ es comment face la t che pr cis e l tape pr c dente nous y prenons nous Il y a malheureusement un monde entre tre capable de et pouvoir expliquer comment on s y prend pour Solving a problem gives you the solution Knowing how you solved the problem gives you a program M JAMES dans 43 Cette petite phrase illustre bien toute la distance existant entre la capacit d effectuer une t che et la conscience qu on a des strat gies mises en oeuvre pour y parvenir Si je vous demande d expliquer comment vous
135. ermin e l ordinateur dispose sous une forme ad quate du texte de la marche suivre et d s que je lui commande d ex cuter celle ci il devient le gestionnaire de casiers manipulateur d informations qui n attend plus ventuellement de l ext rieur que des informations placer dans l un ou l autre casier Si ob issant l instruction d entr e qui lui est donn e dans la marche suivre dont il dispose l ex cutant se rend la porte pour y recueillir une information il faut bien qu il y ait quelqu un de l autre c t de cette porte pour fournir cette information Ce quelqu un nous l appellerons l utilisateur De tout le processus en cours ce dernier ne voit que ce qui est affich la fen tre Ce qui est attendu de lui c est seulement qu il fournisse chaque fois que l ex cutant vient entrouvrir la porte l information attendue Il est important de bien percevoir au cours des multiples tapes du travail qui conduisent de la d finition d une t che son ex cution par l ordinateur les divers intervenants Il y a bien s r le programmeur le mot tant employ au sens large on dit aussi analyste le concepteur de la marche suivre celui qui a r pondu successivement aux questions QUOI FAIRE COMMENT FAIRE COMMENT FAIRE FAIRE COMMENT DIRE d bouchant sur l obtention d un programme Jusque l l ordinateur machine n est pas n cessaire Le programmeur se mue alors en op rateur il se trouve
136. es il renvoie en m me temps l ex cutant des marches suivre annexes qui explicitent chacune des indications complexes mentionn es En programmation nous retrouverons ce duo instruction d action complexe r f rence une annexe explicative sous le vocable appel de proc dure 1 Proc dure est videmment le terme d signant chacune des marches suivre annexes explicitant les instructions d action complexe figurant dans la marche suivre principale On parlera aussi de routine sous routine sous programme 2 On pourrait videmment se passer de cette structure plut t que de laisser subsister l instruction complexe et part le texte de la proc dure explicative il suffirait d inclure dans le texte m me de la marche suivre principale l endroit voulu le texte entier de la proc dure annexe Ainsi au lieu de Ajuster le niveau d enregistrement Voir page 18 on trouverait R glage du niveau d enregistrement R gler le niveau d enregistrement avec l aide des indications fournies par les voyants de signalisation du syst me de d tection des niveaux de cr te Le r glage du niveau d enregistrement est plus facile s il s agit d enregistrer une mission de radio en modulation de fr quence ou bien un disque car en ce cas les cr tes ont d j t limin es Si en revanche il s agit d effectuer un enregistrement sur le vif ou bien de copier sur le KD D35 un enregistrement effectu p
137. es d bouchent videmment sur des clairages fort diff rents de l ordinateur outil lorsqu il est quip du programme ad quat pour l utilisateur ex cutant pour qui il faut d cortiquer une t che afin de lui indiquer le traitement effectuer pour le programmeur Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Programmer 5 Autrement dit on peut soit s int resser ce dont l ordinateur para t capable quand il est quip du logiciel ad hoc soit au probl me de le rendre capable de ces activit s en concevant pour lui les programmes lui expliquant le traitement ex cuter De ces deux approches possibles du monde des ordinateurs c est la seconde qui sera retenue et d velopp e dans ces pages qu est ce que programmer quelles sont les r gles qui gouvernent la conception des marches suivre qui nourriront l ordinateur comment d cortiquer une t che pour la faire ex cuter 2 Programmer 2 1 T che ou probl me Aux exemples de traitements formels d informations signal s plus haut on pourrait en ajouter bien d autres comme tre capable de rep rer dans une s rie de nombres quel est le plus petit et le plus grand lire un texte et signaler ensuite combien de fois le mot et s y trouve jeter un d jusqu ce que le 6 apparaisse pour la troisi me fois et annoncer alors combien de fois il a fallu jeter le d pour cela crire un nombre en chiffres romains d compos
138. es des diverses valeurs CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 72 Images pour programmer 1 re partie Instructions d action l mentaire Prends le robot saisit une pi ce du tas D pose 1 le robot d pose la pi ce qu il tient dans le r cipient destin recevoir les pi ces de 1 Fr D pose 5 le robot d pose la pi ce dans le r cipient destin recevoir les pi ces de 5 Frs D pose 20 le robot d pose la pi ce qu il tient dans le r cipient destin recevoir les pi ces de 20 Frs Conditions tas vide le tas de pi ces est vide pi ce de 5 Frs la pi ce tenue en main est une pi ce de 5 francs pi ce de 20 Frs la pi ce tenue en main est une pi ce de 20 francs et les contraires de ces conditions qu on peut aussi lier par ET ou O Remarques les r cipients o ranger les pi ces sont de tailles suffisantes pour recevoir n importe quel nombre de pi ces il peut certains jours n y avoir aucune pi ce trier le robot ne peut tenir plusieurs pi ces la fois 7 1 2 Le robot transporteur de sable B Ce robot va devoir transporter un tas de sable situ en A pour le d poser en B Il dispose pour cela d une brouette qu il peut charger l aide d une pelle Instructions d action l mentaire Mets une pellet e dans le robot prend une pellet e de sable dans le tas A et la d pose la brouette dans la brouette transporte le robot transporte
139. es orient s vers les objets Le ferait on si la programmation tait condamn e mort Nous avons maintenant il est vrai de grands progiciels traitements de textes tableurs ou g rants de bases de donn es qui permettent un utilisateur non informaticien de se servir d un ordinateur sans avoir conna tre la programmation Mais cela n a pas fait dispara tre un seul programmeur cela a seulement augment le nombre des utilisateurs Or ceux ci ont vite fait de s apercevoir que ces progiciels ne font pas tout Mon traitement de textes je ne vous dirai pas lequel pas de publicit ne me permettait pas d utiliser la petite fl che vers la gauche lt dans mes papiers Que faire Utiliser le signe lt et le tiret lt Beaucoup moins joli Je sais programmer je me suis arrang Que fait l utilisateur qui ne sait pas programmer Il s adresse au fabricant du progiciel qui l coutera peut tre et sortira la version 27 4 de son produit o l on obtiendra la petite fl che en tapant sur les touches CTRL ALT Q et R Et les progiciels ne cessent de se complexifier devenant d apprentissage de plus en plus difficile n cessitant de consulter souvent la carte aide m moire qu on livre avec le produit moins que vous ne fassiez d filer sur l cran nombre de menus avant d avoir le renseignement cherch L avenir n est pas aux dinosaures mais des syst mes simple
140. es que celles permises par les langages de programmation et donc celles de l ex cutant ordinateur dont je parle ici Rappelons qu entre les deux il y a une traduction et d s lors une manipulation qui se d crit fort simplement en Pascal peut donner lieu tout un ensemble d op rations successives au niveau du processeur Mais cela ce n est absolument pas mon probl me moi programmeur 1 Plus que pour les autres caract ristiques de l ex cutant vues jusqu pr sent la pr sence ou l absence et la d nomination de ces outils vont d pendre du langage de programmation dans lequel j exprimerai les marches suivre Ainsi si je lui parle en Pascal version UCSD ou TURBO l outil recoller ensemble deux cha nes de caract res s appelle CONCAT si je lui parle en Basic il est le plus souvent simplement d sign par comme l addition des nombres 2 De toute mani re mon propos ce stade n est absolument pas de dresser une liste exhaustive des divers outils manipuler les informations dont dispose l ex cutant ce serait indigeste et inutile Nous les d couvrirons au fur et mesure des besoins motiv s par l ex cution de certaines t ches Conna tre la liste des outils qui vont permettre les manipulations de l information c est finalement indispensable mais ce n est pas cela savoir programmer Il est videmment imp ratif de conna tre les outils auxquels l ex cutant pourra avoir recours et auxquels nous
141. espondant aux trois types d informations que nous avons vu manipuler jusqu pr sent par l ex cutant ordinateur Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 147 Je rappelle qu il est indispensable en ce qui concerne les variables string d indiquer entre crochets la taille maximale des cha nes de caract res qui pourront y r sider Cette taille maximale doit tre comprise entre 1 et 255 5 Nous d couvrirons dans la suite d autres types d informations manipul es par l ex cutant ordinateur donc d autres types de variables susceptibles de les accueillir Les trois types r pertori s jusqu ici sont amplement suffisants pour d buter 3 1 3 Le corps du programme Enfin le corps du programme comporte les instructions qui seront ex cut es Cette partie prend la forme begin Une s rie d instructions s par es par des end Le dernier symbole du programme tant toujours un point 3 1 3 1 Pr sentation Les blancs les indentations quand une partie du texte est d cal e les passages la ligne n ont en g n ral aucune importance au point de vue syntaxique compte tenu du fait qu ils ne peuvent figurer dans les mots r serv s et les identificateurs Vous les utiliserez cependant pour faire clairement appara tre la structure du programme Ainsi le programme program ARRET _A_ 0 var NombreFourni real Compteur integer Compteur 0 repeat readin NombreFourni
142. ession Un peu de vocabulaire avant de poursuivre M me si le terme casier semble bien ad quat pour d signer ce que j ai justement appel jusqu pr sent casier ce n est pas ce mot qui a t retenu dans le vocabulaire informatique On parlera plut t de variable Ainsi partout o se trouve crit le mot casier il est pr f rable de parler de variable du moins si on veut se conformer aux habitudes et au jargon de la programmation Le vocable variable me semble tr s mal choisi Ce qu il y a de variable dans un casier ce n est certes ni son nom son tiquette ni son type Quant son contenu il reste aussi constant et inchang tant qu une instruction d affectation par exemple ne demande pas qu il soit modifi Si l information Anne occupait le casier la variable NOM il y a quelques instants c est toujours elle que j y trouverai pr sent et c est elle qui subsistera jusqu ce que je commande travers la marche suivre de placer autre chose dans NOM Nous savons pr sent que l environnement de notre ex cutant ce sont ces casiers dans lesquels il va d poser des informations ou en reprendre des copies Son portrait cependant n est pas encore complet il reste ajouter quelques caract ristiques essentielles 2 Il peut communiquer avec l ext rieur Le dessin va s enrichir d une porte et d une fen tre Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur
143. essus nous pouvons entamer la discussion de sa CeFIS FUNDP 2002 22 ao t 2002 Une marche suivre qu est ce que c est 65 L id al serait de disposer vraiment de l ex cutant et de le regarder faire tout en gardant un oeil si je puis dire sur le GNS qui est en train de le faire agir Faute de ces images qui montreraient en parall le le parcours progressif au sein du GNS et les actions effectu es par notre robot il faut bien se contenter du reportage qui suit Attention il n est pas toujours simple de percevoir avec les seules explications fournies le d roulement de l ex cution et de d busquer les erreurs commises dans la conception de la marche suivre Si la situation initiale est la suivante On trouve un premier TANT QUE obligeant travailler tant que la marmite n est pas remplie Passant au d tail des actions qu il faut alors r p ter on trouve un second TANT QUE qui oblige agir tant que le panier n est pas vide Il est vide on passe directement outre de ce TANT QUE pour trouver l instruction Remplis Le parcours jusque l est donc marmite pag remplie panier pas vide marmite pas remplie V P le emplis ou sous forme pseudo code TANT QUE marmite pas remplie TANT QUE panier pas vide SI marmite pas remplie ALORS P le Remplis Cela fait on revient au premier TANT QUE la situation tant pr sent Ce
144. et certaines m ont demand des ann es de r flexion et d exp rimentation pour avancer des r ponses pertinentes A travers mon apprentissage sur le tas je me suis peu peu forg mes propres repr sentations souvent m taphoriques et imag es des concepts et m thodes de la programmation J ai pu constater travers mon enseignement que ces approches taient utilisables et partageables et qu elles aidaient les apprenants Elles se sont d ailleurs affin es enrichies et d velopp es au fil des ann es et ont t pass es au crible des r actions des enseignants en formation Dans la perspective d enseignement qui reste la mienne il est excitant de se trouver devant une tendue pratiquement d serte celle de la didactique de l informatique et plus pr cis ment de la didactique de la programmation et de l algorithmique M me si des devanciers illustres ont ouvert des voies trac des itin raires et balis des parcours beaucoup reste concevoir et exp rimenter C est passionnant et c est cette passion que j aimerais transmettre mes lecteurs Au del de son contenu m me les m thodes concepts et outils voqu s la mani re de l aborder se veut exemplaire d une approche m thodologique au sens de l enseignement possible et exploitable Enfin ce livre est compl mentaire d une s rie d missions vid os qui s attachent promouvoir la m me approche Le m dia audio visuel est irrempla able lorsqu il s a
145. et place dans MotFourni MotFourni ATTENTION Place as masi 1 dans le casier Compteur SI MotFourni ATTENTION ALORS 8 Place ROUGE dans le casier Signal Place ROUGE dans le JUSQU A CE QUE MotFourni STOP et Signal casier Signal ROUGE MotFourni STOP et Signal ROUGE Affiche Compteur Affiche Compteur Remarques 1 On a tout naturellement utilis ici dans l nonc de la condition de fin de r p tition le mot et La condition nonc e ne sera vraie que si les deux comparaisons la constituant le sont Cet outil comme aussi ou permettant de lier des comparaisons est connu de l ex cutant CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 108 Images pour programmer 1 re partie et autorise noncer des conditions plus ou moins labor es L outil non qui permet de nier une condition est un peu du m me genre 2 Retenons ici le tour de main de la variable signal fr quent en programmation Il intervient chaque fois qu il est n cessaire de faire retenir qu un v nement s est produit 1 3 Le dernier et le pr c dent La t che est on va le voir bien proche de la pr c dente 1 3 1 Enonc Quoi faire Faire lire successivement des mots d au plus 20 caract res arr ter la donn e de STOP condition que ATTENTION ait t fourni juste avant dire alors combien de mots ont t lus Les tapes essentielles de la d marche ont t longuement i
146. exemples pr c dents postulent donc que Nombre soit un casier pr vu pour recevoir des nombres entiers comme 15 et que CLIENT puisse recueillir des cha nes de caract res Si nous avions crit Place 15 dans CLIENT ou Place DUPONT dans Nombre cela n aurait videmment eu aucun sens et l ex cutant se serait charg de nous le faire savoir 2 Un nom de casier Nous crirons par exemple Place SOMME dans TOTAL ou Place NOM dans FOURNISSEUR SOMME et TOTAL tant deux casiers de m me type NOM et FOURNISSEUR galement Ce que nous voulons dire ici c est que l information placer dans le casier TOTAL est chercher dans le casier SOMME Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 87 Une information est en r alit toujours une constante Si l ex cutant tient en main un moment donn l information 15 cette information restera toujours 15 Elle ne va pas se transformer en 16 ou en 14 D s lors l ex cutant ne manipule que des constantes C est la mani re dont je d signe dans le texte de la marche suivre ces constantes manipul es qui peut varier Je peux parler de l information 16 en crivant simplement 16 mais aussi en la d signant comme le casier NUMERO si NUMERO contient justement 16 Dans ce cas ce que je veux que l ex cutant manipule ce n est videmment pas le casier NUMERO lui m me mais l information 16 qui y est contenue Ainsi donc en r
147. ez fourni auparavant ATTENTION repeat TRAVAILLE until MotFourni ATTENTION repeat CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 132 Images pour programmer l re partie TRAVAILLE tincid Morrourar VSTOP writeln Vous m avez donn en tout Compteur mots end 1 2 2 Deuxi me solution La seconde solution apport e au probl me utilisait essentiellement une variable signal qui passait du vert au rouge la r ception du mot ATTENTION Cette approche avait conduit Liste des variables _ MotFourni de type cha ne d au plus 20 caract res Compteur de type entier Signal de type cha ne d au plus 5 caract res passant de VERT ROUGE lorsque ATTENTION est fourni Marche suivre Place 0 dans le casier Compteur Place 0 dans le casier Compteur Place VERT dans le casier Signal Place VERT dans le casier Signal Lis et place dans MotFourni REPETER Place Compteur 1 dans le casier Compteur Lis Si piace cans AGO PI 1 l i MotFourni ATTENTION ace Campieur dans le casier Compteur z SI MotFourni ATTENTION ALORS j Place ROUGE dans le casier Signal Place ROUGE dans le JUSQU A CE QUE MotFourni STOP et Signal ROUGE MotFourni STOP et Signal ROUGE Affiche Compteur Affiche Compteur 1 2 2 1 Traduction En voici la traduction en Pascal casier Signal program ATTENTION3 vark Moro 3 SErsnol AU j Compteur in
148. face un cran et un clavier travers lesquels il fournit l ordinateur le programme obtenu Cela fait lui ou quelqu un d autre va utiliser ce programme ou pour tre plus pr cis utiliser l ordinateur gouvern par ce programme Il se transforme alors en utilisateur Restent face face d s ce moment cet utilisateur celui qui est derri re la porte et la fen tre et l ex cutant ordinateur celui qui voit cette porte et cette fen tre de l int rieur de son local rempli de rayonnages Les informations que manipulera l ex cutant ordinateur proviennent donc de deux sources de sa malle informations il les en sort lorsque la marche suivre lui en parle Le programmeur a parfaitement prise sur elles c est lui qui les a explicitement mentionn es de l ext rieur travers la porte C est l utilisateur qui les d termine le programmeur au moment o 1l con oit la marche suivre ne sait pas ce qu elles seront pr cis ment L instruction d affichage L ex cutant peut se rendre la porte pour y prendre de l information Il reste pr ciser comment l envoyer la fen tre afficher d autres informations Il s agit l de la troisi me instruction d action l mentaire C est l instruction de sortie ou d affichage Affiche la fen tre telles informations Ainsi on commandera par exemple Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 91 Affic
149. fois Quelle que soit l approche envisag e on retient videmment les mots ATTENTION et STOP auxquels on compare les mots lus mais ces deux informations ne se modifieront pas plus au cours de la t che que le 0 provoquant l arr t du probl me pr c dent 1 2 3 Comment faire faire Premi re solution Comme pr c demment je dois d abord sur base des informations que j tais forc de retenir l tape du Comment faire d cider quels seront les casiers indispensables Il en faudra seulement deux celui qui contiendra successivement chacun des mots fournis l ex cutant travers la porte clavier et que je baptiserai pour cette raison MotFourni Il doit tre du type cha ne de caract res nouveau j ai d cid de respecter d s pr sent certaines contraintes orthographiques qui seront impos es lors de la traduction en Pascal en crivant par exemple MotFourni et pas Mot Fourni ou Mot Fourni Le plus important c est de choisir un nom de variable qui informe sur son contenu j aurais pu choisir Mot Donnee celui qui servira compter Compteur de type entier Notons une derni re fois que tout au long du traitement de ce probl me chaque fois que je parlerai de mot il s agira bien entendu du point de vue de l ex cutant d une cha ne de caract res De plus lors de la d finition d un casier de ce type je pr ciserai la longueur maximale des cha nes qui pourront y prendre place Il
150. git d illustrer des m taphores et d installer des images chez l apprenant Mais il ne permet gu re de nuancer de s attarder Son empreinte est fugace et son utilisation est par nature s quentielle il permet de sculpter grands traits non de ciseler finement On trouvera ici tout ce qui n a pu tre exprim et montr travers les images de ces r alisations audio visuelles Cf par exemple 3 8 15 36 47 51 L environnement Image pour programmer dont cet ouvrage fait partie comporte la fois des missions vid os 6 x 1 2 h 6 documents de pr sentation et d exploitation et un logiciel d apprentissage START Toutes information ce propos peut tre obtenue chez l auteur l adresse suivante CeFIS Facult s N D de la Paix rue de Bruxelles 61 B 5000 Namur T l 081 72 50 60 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Avant propos VII Je ne sais si mes arguments vous ont convaincu de la n cessit absolue de lire la suite Mais si vous m avez d j accompagn jusqu au bout de cet avant propos l effort n est pas bien grand de passer aux pages qui suivent Alors on y va CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau Avertissement en ce qui concerne les r visions L ouvrage publi en 1990 aux ditions De Boeck et dont vous venez de parcourir la pr face et l avant propos est pr sent puis Le pr sent document en reprend presque sans aucune modification
151. gouverner n est capable de rien c est un principe fondamental TOUT ce que fait un ordinateur il le fait gouvern par une marche suivre un programme 1 3 Les deux points de vue possibles Sch matiquement on peut repr senter les choses de la mani re suivante Les lecteurs int ress s par les d bats philosophiques sur forme et sens sur information et connaissance sur syntaxe et s mantique consulteront avec profit l excellent livre de Jacques ARSAC Les machines penser Cf 7 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 4 Images pour programmer 1 re partie DS Utilisateur Donn es R sultats Entr es TRAITEMENT Sorties Programmeur L utilisateur voit dans l ordinateur quip des programmes convenables qui le feront agir un outil outil pour composer modifier et pr senter du texte outil pour calculer des trajectoires balistiques outil pour g rer les op rations d emprunt de livres dans une biblioth que outil pour dessiner L objectif c est alors d apprendre se servir au mieux de l outil adapt une t che donn e la demande exprim e par l utilisateur potentiel c est apprenez moi le mode d emploi de tel outil Ce qui l int resse c est essentiellement quelles donn es dois je fournir et quels r sultats suis je alors en droit d attendre apr s le traitement qui y sera appliqu Pour le reste l ordinateur quip du pro
152. gramme logiciel qui le gouverne pendant l utilisation c est une bo te noire Il est important de noter que ce que j appelle outil c est le tandem ordinateur programme Un ordinateur nu n est capable de rien Cf le principe nonc ci dessus L outil c est l ordinateur gouvern par le logiciel de traitement de texte ou l ordinateur conduit par le logiciel de gestion de biblioth que l ordinateur quip du programme de calcul etc En r sum ordinateur pour l utilisateur outil programme Le programmeur ou plut t l analyste programmeur s int resse d abord au traitement proprement dit Pour lui l ordinateur est d abord un ex cutant qui il va devoir fournir la marche suivre programme expliquant le traitement effectuer L accent est alors tr s nettement plac sur la t che de traitement d informations qu on souhaite faire faire par l ordinateur La programmation c est essentiellement la cr ation et la conception des outils logiciels qui seront utilis s par d autres L ordinateur cesse ici d tre une bo te noire Ce qui ne signifie nullement qu on se passionne pour la quincaillerie hardware lectronique qui le constitue on y voit non un ensemble de circuits int gr s ou de portes logiques mais travers le langage de programmation qui va le transfigurer Cf plus loin un ex cutant capable d un certain nombre de traitements l mentaires et formels d informations Ces deux perspectiv
153. h Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est b tas non vide pi ce de 5 Frs Su pi ce de 20 Frs pi ce de 20 Frs D pose 20 pi ce de 5 Frs eo F c 7 2 2 Le robot transporteur de sable a plus de sable transporter FAIS TOUT CE QU IL FAUT POUR REMPLIR LA BROUETTE Transporte plus de sable transporter REPETER REMPLIR LA BROUETTE Transporte Vide Ram ne JUSQU A CE QUE plus de sable transporter CeFIS FUNDP 2002 22 ao t 2002 75 TANT QUE tas non vide Prends SI pi ce de 5 Frs ALORS D pose 5 Prends SINO SI pi ce de 20 Frs ALORS D pose 20 SINON D pose 1 Prends REPETER Prends SI pi ce de 20 Frs ALORS D pose 20 SINON SI pi ce de 5 Frs ALORS D pose 5 SINON D pose 1 JUSQU A CE QUE tas vide REPETER Mets une pellet e dans la brouette Transporte Vide Ram ne JUSQU A CE QUE plus de sable transporter et Comment FAIRE TOUT CE QU IL FAUT POUR REMPLIR LA BROUETTE Mets une pellet e dans la brouette brouette pleine et Comment FAIRE TOUT CE QU IL FAUT POUR REMPLIR LA BROUETTE REPETER Mets une pellet e dans la brouette JUSQU A CE QUE brouette pleine Ch Duch teau 76 7 2 3 Le robot compteur de gouttes a Choisis le premier verre tous les verres ne sont pas remplis e verre choisi n est pas rempli P Presse Passe au verre s
154. he Donnez moi votre nom Affiche 112 5 l information affich e prenant ici la forme d une constante ou Affiche Total Affiche NOM l information tant ici celle contenue dans les casiers indiqu s Total et NOM ou encore Affiche 2 Total Affiche 12 4 Somme o l information affich e se pr sente comme une expression ou enfin par un m lange de toutes ces modalit s Affiche Total Total Affiche Voici les r sultats SOMME PRODUIT 1 On le voit nouveau l ex cutant ne peut afficher que ce qu il manipule des informations Mais je peux lui en parler comme de constantes de noms de casiers ce qu il affiche alors c est l information qui y est contenue ou encore comme des expressions qu il value pour en d duire les informations qu elles repr sentent C est une r gle g n rale qu une information se d signe toujours sous l une des trois formes constante nom de casier expression 2 Il faut bien saisir que lorsque j cris Affiche Donnez moi votre nom je demande simplement l ex cutant d afficher une cha ne de caract res constitu de la succession D o n n etc M me si elle a un sens pour l utilisateur qui est de l autre c t de la fen tre du point de vue de l ex cutant qui ne sait pas ce qu est un mot a n a pas plus de sens que d ex cuter Affiche Turlututu ou Affiche A R EZ 3 Les informations dont je commande l affichage sont les seules choses qui apparaissent
155. hes de Nassi Schneidermann not s GNS dans la suite Pascal Organigrammes Basic 1 Pascal et Basic sont deux langages de programmation dans lesquels les marches suivre peuvent tre exprim es Il est normal d s lors qu y figure une mani re de traduire les structures de contr le ou du moins certaines d entre elles L avantage de ce mode d expression c est qu il est compr hensible apr s une phase de traduction par l ex cutant ordinateur Le d savantage c est qu il est imp ratif d y respecter une syntaxe stricte impos e par chacun de ces langages et que on le verra l expression des structures de contr le y est moins visible que dans les GNS ou les organigrammes 2 Il est impossible de parler de Basic tant est grand le nombre de dialectes de ce langage C est donc toujours seulement de tel Basic qu il s agirait Mon choix s est port sur une version particuli rement pauvre afin de mettre en vidence les probl mes pos s lors de l expression des marches suivre et particuli rement des structures de contr le dans un langage rudimentaire et triqu 3 On verra que s il fallait classer ces diverses mani res d exprimer les structures de contr le on r unirait d une part pseudo code GNS et Pascal et d autre part organigramme CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 36 Images pour programmer 1 re partie et Basic Il ne reste plus qu passer en revue les diverses
156. iables du m me type doivent tre d finies il est loisible d en dresser la liste en une seule fois condition de s parer leurs noms par la virgule Comme toujours cette liste est suivie de deux points et du type des variables de la liste On aurait cependant pu crire galement var Dernier string 20 AvantDernier string 20 Compteur integer Il reste une fois de plus habiller le programme Cet habillage sera en grande partie identique ce qu il est pour le pr c dent et je vous en laisse donc le soin 1 4 Le probl me du lancer de d Nous avions r dig un GNS qui faisait simuler des jets successifs d un d jusqu l obtention de trois six Liste des variables Resultat de type entier qui contiendra un instant chaque r sultat du tirage au hasard Compteur de type entier pour compter les lancers il s augmentera de 1 chaque lancer CompteurDesSix de type entier pour compter les six qui se pr senteront Marche suivre Resultat 6 Place CompteurDesSix 1 dans CompteurDeSix CompteurDeSix 3 Affiche Compteur La traduction en est nouveau imm diate le seul petit probl me est d indiquer comment en Pascal dans l impl mentation Turbo on peut parler d un nombre entier au hasard entre 1 et 6 program JETDEDES Place 0 dans le casier Compteur Place 0 dans le casier CompteurDeSix REPETER Place un nombre au hasard entre 1 et 6 dans
157. ic Nathan Paris 1983 ARSAC MONDOU O BOURGEOIS CAMESCASSE C GOURTAY M Option Informatique Classe de seconde Editions Fernand Nathan 1987 ARSAC MONDOU O BOURGEOIS CAMESCASSE C Option Informatique Classe de Terminale Editions Fernand Nathan 1988 BALACHEFF N KUNTZMANN J LABORDE C Formation math matique des instituteurs avec ouverture sur l informatique Cedic Nathan Paris 1981 BAUER F L Top down teaching of informatics in secondary school in O LECARME and R LEWIS Eds Computers in Education North Ho Publ Co 1975 pp 53 61 BIONDI J CLAVEL G Introduction la programmation 1 Algorithmique et langage Masson Paris 1984 CLAVEL G BIONDI J Introduction la programmation 2 Structures de donn es Masson Paris 1984 CLAVEL G JORGENSEN F B Introduction la programmation Exercices corrig s Masson Paris 1985 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 160 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 Images pour programmer l re partie CROZET J M SERAIN D Le Langage Pascal Masson Paris 1980 DEFAYS D L esprit en friche Pierre Mardaga 1988 DELACHARLERIE A Informatique et Programmation Structur e Wesmael Charlier Leuze Longchamps 1984 DELANNOY C Initiation la programmation Eyrolles Paris 1986
158. ier ou m me valises Sans sourciller et conform ment notre marche suivre l ordinateur fournira je plombie ou je valise tu plombies tu valises il plombie 1 On r torquera qu il faut tre de mauvaise foi pour demander la conjugaison de verbes comme ceux l et c est tout fait vrai m me si l ordinateur ne sort pas grandi de telles fac ties Encore une fois l ordinateur ne sait pas ce qu est un verbe Il ne peut s attacher qu la forme de ce qu il manipule en suivant consciencieusement nos indications Nous aurions pu nous pr munir contre un certain nombre de b tises en demandant par exemple l ex cutant ordinateur de v rifier que le verbe fourni se termine bien par er et sinon de le refuser ce qui aurait vit la conjugaison de valises mais aurait laiss passer plombier ou cerisier Mieux nous aurions pu lui fournir une liste exhaustive de tous les verbes admis en lui demandant de n accepter que les mots pr sents dans cette liste Remarquons cependant qu chaque fois c est nous programmeurs qu il revient de pr voir les op rations suppl mentaires qui vont permettre d affiner le comportement de l ex cutant Revenant un comportement plus habituel nous aurons le plaisir de voir l ordinateur 3 conjuguer correctement les verbes porter parler tirer et nous d cr terons donc notre programme correct pour autant qu on se limite r ellement des verbes r gu
159. iez double Asseyez vous ou Entrez Entrez REPETER Buvez un petit verre Buvez un petit verre TANT QUE vous ne voyez pas double JUSQU A CE QUE vous voyiez double Buvez un petit verre Asseyez vous Asseyez vous On peut v rifier sans peine que ces deux marches suivre conduisent des ex cutions identiques quel que soit l tat initial de l ex cutant buveur Ainsi donc en g n ral le GNS peut se traduire en un GNS quivalent mettant en oeuvre l autre structure r p titive sous la forme non C d signant la n gation l assertion contraire de l assertion C gt ss CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 56 Images pour programmer 1 re partie Et sous forme pseudo code A REPETER peut se traduire en un quivalent A mettant en oeuvre l autre TANT QUE non C structure r p titive sous la forme JUSQU A CE QUE C A non C d signant la n gation l assertion contraire de l assertion C J utilise indiff remment les mots condition et assertion On pourrait peut tre aussi parler de question Il s agit l de facettes diff rentes d une m me r alit une assertion dont l ex cutant peut valuer la v rit une condition qu il peut tester une question laquelle il r pond oui ou non Il faut signaler un corollaire important de cette possibilit de remplacer la structure REPETER JUSQU A CE QUE par la structure TANT QUE Cette derni re suffira pour ex
160. il vous trace et ne suppose aucune comp tence en sciences Il est vrai aussi qu il n y a pas de v rit en p dagogie ni tablie par la th orie ni r v l e ni m me garantie par une pratique constante Les professeurs sont divers divers aussi les l ves Ma p dagogie n est pas en tous points celle de Charles Duch teau Mais il y a plusieurs demeures dans la maison du P re Je crois beaucoup la voie suivie par l auteur je crois que la plupart des gens ont besoin d images pour s approprier des concepts Il est difficile de s en tenir de purs concepts non soutenus par des repr sentations concr tes m me si celles ci sont imparfaites On a voulu enseigner des math matiques formelles o la droite tait un objet math matique sans rapport avec quoi que ce soit du monde sensible J avais dans ma jeunesse appris que ce que l on obtient en tra ant un trait avec une r gle ou qu un fil tendu sont des images de la droite Il est vrai que ce sont des images imparfaites Mais il est plus facile d abstraire une vraie droite partir de ces exemples que de travailler sur une droite qui n est qu un nom nomina nuda tenemus nous utilisons des noms vides terminait le film le nom de la rose d Umberto Eco Peu d esprits peuvent se satisfaire de noms vides Je suis content que ce livre offre des images l apprenti programmeur M me si elles sont imparfaites comme l taien
161. informations dans l un ou l autre casier J en arrive d s lors tout naturellement la premi re instruction d action l mentaire destin e cet ex cutant Peu importe pour l instant la mani re dont cette instruction se traduira dans le langage compromis Je la laisserai dans le texte de la marche suivre sous la forme Place telle information dans tel casier C est en quelque sorte l instruction de remplissage d un casier on l appelle en programmation l instruction d affectation On dira donc qu on affecte telle information tel casier Nous l abr gerons parfois sous la forme Nom du casier information y placer Il serait sans doute plus naturel d crire Information Nom du casier Il faut savoir que dans la plupart des langages de programmation l instruction d affectation prend des formes proches de Nom du casier lt information Ainsi en Pascal on crira Nom du casier information et en Basic Nom du casier information C est pour pr parer le respect de cette contrainte que le nom du casier sera plac gauche du symbole d affectation lt et l information qui y prendra place droite Pour pr ciser le casier remplir il suffira de citer son nom son tiquette Par contre la pr cision de l information y d poser prendra des formes diverses Nous pourrons la d crire de trois mani res et d abord comme CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 86 Images pour prog
162. informatique qu un regard d utilisateur uniquement pr occup de la ma trise de quelques outils et de l acquisition des tours de mains pr sidant leur emploi c est non seulement passer c t de tout un pan de cet univers mais encore n gliger de nombreuses occasions d amener les apprenants certains modes de pens e comme la pens e algorithmique ou des attitudes de travail comme le souci d tre compris exhaustif Ces pages vont le montrer l algorithmique et la programmation qui en est une incarnation c est l art et la m thode de d plier compl tement une t che pour l expliquer et la faire faire par un autre Ce passage d un savoir faire un savoir faire faire qui est le c ur profond de l algorithmique nous place des lieues des probl mes de mat riel de technique ou d utilisation d outils Il y a cinq ans encore il tait indispensable de prouver que l apprentissage de la programmation ne se r duit pas la connaissance du fonctionnement d un ordinateur et l acquisition des l ments d un langage de programmation Je pense que nous n en sommes plus l aujourd hui et que chacun sait que s il fallait chercher des synonymes programmer on les nn trouverait plut t du c t d organiser d cortiquer cr er que du c t pianoter ou jargonner Je ne parle videmment pas ici des formations professionnelles destin es aux futurs informaticiens pendant quelques ann es enc
163. ion donnera lieu alors une action Il est pourtant classique en informatique de trouver des abus de langage du type ce programme calcule ou ce programme compte Un programme qui n est jamais qu une marche suivre exprim e dans un langage de programmation ne calcule ou ne compte pas plus qu une recette de cuisine ne fait la cuisine Le qualificatif l mentaire souligne qu il s agit l d une action dont l ex cutant est capable C est donc la connaissance des possibilit s de ce dernier qui permet de d cider que telle action est l mentaire pour lui et qu on peut donc faire figurer dans la marche suivre l instruction correspondante et que telle autre action d passe ses possibilit s Dans l exemple si le technicien a cru bon de d cortiquer de cette mani re la t che c est qu il lui a sembl que l instruction P roc der l enregistrement qui d signe l activit globale explicit e dans la marche suivre ne correspondait pas une action l mentaire pour l ex cutant moyen Par contre si la marche suivre comporte l instruction Appuyer sur l interrupteur POWER pour le r gler sur la position ON c est que le r dacteur a estim qu il s agissait l d une action la port e de l ex cutant moyen et qu il pouvait d s lors la consid rer comme l mentaire Je l ai d j soulign au premier chapitre dans notre cas les marches suivre seront destin es un robot et non un
164. isi me 6 et tre alors suivie du nombre total de chiffres apparus Cet nonc n a videmment de sens que si l ex cutant dispose d un outil permettant de tirer des nombres au hasard Disons simplement ce propos qu on pourra se permettre d crire l instruction d affectation Place un nombre au hasard entre 1 et 6 dans Je me permets donc de d signer une information enti re manipuler par un nombre entier au hasard entre 1 et 6 en r servant au chapitre suivant le probl me d indiquer comment ceci sera traduit lors du codage en Pascal 1 42 Comment faire Ce qui importe une fois de plus c est de percevoir ce que je retiendrais comme informations susceptibles de se modifier si c tait moi qui lan ais le d Je garderais l esprit un instant chaque r sultat pour l annoncer le faire conna tre l utilisateur le d compte de tous les lancers puisqu il faudra la fin pouvoir indiquer combien il y en a eu au total le nombre de six d j obtenu pour tre en mesure d arr ter au troisi me Ces informations retenues vont nouveau donner naissance aux casiers n cessaires lorsqu il s agira de s int resser l ex cutant gestionnaire de casiers 1 4 3 Comment faire faire Nous pouvons donc imm diatement dresser la Liste des variables CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 112 Images pour programmer 1 re partie Resultat de type entier qui contiendra
165. ithmes 2 2 Le probl me du calcul de moyenne 2 3 Autres expressions de structures r p titives TRADUCTION EN PASCAL 1 Traduction des marches suivre 1 1 Le probl me du compteur 1 1 1 Traduction 1 1 2 Remarques 1 13 Habillage du programme 1 2 Le probl me du signal 1 2 1 Premi re solution 1 2 2 Deuxi me solution 1 3 Le probl me du dernier et de l avant dernier 1 3 1 Premi re solution 1 3 2 Deuxi me Solution 1 4 Le probl me du lancer de d 1 5 Le probl me du calcul de moyenne 2 Exercices 3 Synth se sur le langage 3 1 3 2 Structure g n rale d un programme Pascal 3 1 1 En t te du programme 3 1 2 Partie d clarative 3 1 3 Le corps du programme Quelques instructions Pascal fondamentales 3 2 1 L instruction d affectation 3 2 2 Les instructions de lecture READ et READLN 3 2 3 Les instructions d affichage WRITE et WRITELN 3 2 4 L instruction alternative IF THEN ELSE CeFIS FUNDP 2002 22 ao t 2002 XIII 94 96 99 99 99 100 100 101 103 103 104 104 108 108 108 108 111 111 111 111 112 112 112 113 116 116 117 117 119 119 119 119 121 122 125 125 132 133 133 136 137 140 144 144 144 144 146 147 148 148 149 149 150 Ch Duch teau XIV 3 3 Images pour programmer 1 re partie 3 2 5 L instruction de r p tition REPEAT UNTIL 3 2 6 L instruction de r p tition WHILE DO 3 2 7 L appel de proc dure 3 2 8 Instructi
166. ition oblige l ex cutant emprunter l un des chemins c est bien s r en n gligeant la seconde voie qui tait mentionn e dans le texte de la marche suivre En g n ral Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 39 Texte de la marche suivre Lors de l ex cution condition vraie condition fausse Instruction d action 1 action gt y action 1 SI condition ALORS Instruction d action 2 gt action 2 Instruction d action 3 action 3 SINON Instruction d action 4 y action 4 Instruction d action 5 action 5 Instruction d action 6 action 6 gt action 6 2 3 1 Repr sentation sous forme de pseudo code La structure alternative s crira SI condition ALORS ou SI condition ALORS A A SINON suite B suite A et B repr sentant des morceaux de marche suivre Les deux blocs repr sent s par A et B ne sont donc pas forc ment des instructions uniques Chacun de ces blocs peut tre constitu de plusieurs instructions li es par une s quence ou m me comporter d autres structures de contr le comme par exemple l alternative Ainsi la marche suivre suivante Proc dez comme suit d crochez le combin la r ception de la tonalit transmettre formez 9080XXXX 0 les X repr sentent 4 chiffres formant l heure de r veil c est dire 2 chiffres pour l heure et 2 chiffres pour les min
167. jouer et de prendre du plaisir travailler avec les ordinateurs Il y a dix ans on achetait un ordinateur tout juste capable de comprendre le Basic Aujourd hui on a un interlocuteur aux multiples facettes aussi bien capable de se comporter comme une super machine crire lorsqu il est quip d un logiciel de traitement de texte que comme un dessinateur soigneux rapide et infatigable quand il est transfigur par un A noter que ces lignes ont t crites en 1989 Les bugs dans le jargon informatique sont les erreurs qui subsistent dans les programmes destin s faire travailler l ordinateur CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau IV Images pour programmer l re partie logiciel graphique De l jeter aux oubliettes la programmation entendez l criture sur le tas de programmes il n y a qu un tout petit pas gr ce aux progiciels on peut non seulement conserver le plaisir de faire travailler l ordinateur mais encore on le fait avec bonne conscience puisqu en plus d tre amusant c est m me devenu utile Ce mouvement me semble particuli rement sensible en ce qui concerne la vision du contenu des cours d informatique dispens s dans l enseignement secondaire Bon nombre des enseignants pionniers de la micro informatique et de son enseignement faisaient partie de ceux l pour qui utilisation de l ordinateur rimait avec programmation au sens o j en parle ci dessus Ces mordus ont a
168. l de m me que les retraits indentations de certaines lignes Au del de la syntaxe respecter faute de quoi des erreurs seront d tect es lors de la compilation traduction il faut aussi tre attentif r diger un programme clair bien pr sent et donc facilement lisible J y reviendrai ci dessous en parlant de l attention porter au lecteur du programme Nous voici presqu au terme de notre d marche Il nous reste seulement habiller le programme obtenu 1 13 Habillage du programme Habiller un programme ce sera d abord tre attentif l utilisateur Ce dernier je le rappelle dans ma terminologie c est l tre humain qui se trouve de l autre c t de l cran et du clavier pendant que l ex cutant effectue les actions command es par la marche suivre C est lui qui lira l cran les informations dont je demanderai l affichage c est lui qui passera travers le clavier les informations que l ex cutant attend lors des instructions de lecture Dans l tat actuel du programme l utilisateur n est absolument pas averti des objectifs des donn es qui sont attendues ni des r sultats qui seront fournis Tout au plus voit il appara tre l invitation Donnez un nombre correspondant l affichage que je commande En tant que programmeur je ne suis videmment pas en contact direct avec l utilisateur j ai en quelque sorte d l gu l ex cutant mes pr rogatives en lui fournissant la marche suivr
169. l instruction if then etc 3 1 3 3 Les terminateurs d instruction Pascal C est on l a vu le symbole point virgule qui permet d indiquer qu une instruction est termin e et non le passage la ligne Il faut noter cependant que begin n est pas une instruction repeat non plus C est en r alit begin end qui constitue une instruction comme aussi repeat until dans son ensemble On peut donner l impression l ex cutant que des instructions successives constituent en fait une instruction unique Il suffit de faire pr c der la premi re instruction de la s rie par begin et de faire suivre la derni re de end Cette globalisation est d ailleurs parfois obligatoire comme apr s le then ou le else j y reviendrai 3 2 Quelques instructions Pascal fondamentales Je passerai d abord en revue les instructions Pascal correspondant aux trois instructions d action l mentaire comprises par l ex cutant 3 2 1 L instruction d affectation Elle correspond l instruction not e dans les GNS par Place telle information dans tel casier La traduction va malheureusement inverser l ordre dans lequel se pr sentaient l information et le casier remplir puisque l instruction d affectation va se traduire nom du casier information y placer Elle permet de placer dans la variable casier situ e gauche du signe l information d crite droite Rappelons que cette information s crira comme une co
170. les pour effectuer la t che d sir e Rappelons que c est un amn sique Nous ne pourrons lui parler qu l imp ratif pr sent et sa seule m moire tout instant c est le contenu des casiers que nous aurons demand de r server Liste des variables casiers Un casier sera videmment n cessaire pour accueillir les donn es successivement fournies par l utilisateur Comme chacune de ces donn es peut tre oubli e l apparition de la suivante cet unique casier suffira La donn e lue re ue travers la porte clavier y r sidera le temps n cessaire avant d tre remplac e par la suivante Ces donn es seront des nombres r els le casier destin les recevoir l une apr s l autre sera donc de type r el Pour rappeler les informations qui y seront contenues je l tiquetterai NombreFourni Ainsi les caract ristiques de ce casier sont les suivantes tiquette nom NombreFourni type r el contenu l une apr s l autre chaque donn e lue De plus je dois faire retenir le d compte des nombres fournis Pour cela je pr vois un casier qui s augmentera de 1 chaque nouvelle donn e il sera de type entier et je le baptise Compteur puisqu il servira compter Ses caract ristiques sont donc les suivantes tiquette Compteur type entier contenu le nombre de donn es d j re ues A ce stade nous gardons toute libert quant au choix du nom des casiers utilis s C est seulement lo
171. liers du premier groupe Et cela jusqu au jour o quelqu un demandera la conjugaison du verbe aimer ce que l ex cutant ordinateur guid par notre marche suivre fournira aussit t sous la forme je aime tu aimes il aime ce qui montrera qu un programme consid r comme valide ne l est absolument pas Bien entendu il ne s agit l que d un tout petit exemple sans importance il a cependant le m rite de mettre en vidence quelques v rit s premi res l Il est vraiment difficile d tre exhaustif et de mettre en vidence TOUTES les r gles qui r gissent notre comportement face la r alisation d une t che m me tr s l mentaire Quand je parlais plus haut de d plier compl tement une t che sans rien laisser dans l ombre et en faisant une chasse s v re aux implicites c est de cela que je parlais C est cette complexit qui fait de la programmation quelle que soit la m thode employ e une activit compliqu e concevoir une marche suivre pour faire effectuer une t che par l ex cutant ordinateur ne sera jamais simple et ne se r duit en tout cas pas la connaissance des r gles syntaxiques gouvernant le langage de programmation employ L ordinateur est un ex cutant rapide mais affreusement docile et ob issant Il est g n ralement le dernier mettre en cause lorsque le traitement d une t che ne s effectue pas comme pr vu Ce qu il faut revoir presque toujours c est la marche
172. ller en Elle a pour nom en programmation le branchement 1 Il est important de ne pas confondre branchement et appel de proc dure Dans le cas du branchement aucune annexe explicative ne vient expliciter une instruction d action complexe L ex cutant est maintenu au sein de la marche suivre simplement il est balad d un endroit un autre de cette marche suivre CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 34 Images pour programmer 1 re partie 2 On con oit que les marches suivre o la structure de branchement est utilis e voient certaines de leurs instructions porter un signe distinctif num ro tiquette Lorsqu on veut envoyer l ex cutant un endroit particulier de la marche suivre cet endroit doit tre rep rable Ainsi dans l exemple 5 ci dessus les instructions sont num rot es et le branchement pr cise Retournez la premi re tape Et dans le cas de la partition c est le symbole qui marque l endroit o le branchement symbolis par renvoie Nous allons arr ter ici notre recherche des structures de contr le pr sentes dans les marches suivre de tous les jours Il y a pourtant d autres structures comme celle qui s annonce par les mots Quand ou Lorsque Mais nous ne retrouverons dans les marches suivre destin es l ex cutant ordinateur celles de la programmation que la s quence l alternative la r p tition sous les
173. llustr es et comment es sur les deux exemples pr c dents Je me permettrai pr sent d tre un peu plus laconique 1 3 2 Comment faire 1 On retient un instant chaque mot lu en tant particuli rement attentif au mot suivant lorsque c est ATTENTION qui vient d tre lu Si le mot suivant n est pas STOP alors on oublie que ATTENTION venait d tre lu De plus on compte tous les mots Ou encore 2 On retient un instant le dernier mot lu et l avant dernier On compte au fur et mesure 1 3 3 Comment faire faire Premi re solution Je vais faire usage nouveau d un signal qui d tectera le passage de ATTENTION Signal passera ROUGE la lecture de ATTENTION Mais ce ROUGE ne comptera que si la lecture suivante le mot STOP est fourni Sinon Signal doit repasser au VERT Autrement dit lorsque le mot lu n est pas ATTENTION et que le signal est ROUGE donc ATTENTION vient d tre lu il est imp ratif qu il repasse VERT si le mot lu n est pas STOP Ouf Cette approche qui privil gie une nouvelle utilisation de variable signal est on en conviendra assez complexe pour ne pas dire obscure On le verra la deuxi me solution semble nettement plus simple et naturelle Rappelons encore que lu signifie ici que l ex cutant ordinateur saisit l information correspondante travers la porte clavier Liste des variables MotLu de type cha ne d au plus 20 caract res Compteu
174. lternatives imbriqu es comme ici ou l instruction unique attendue apr s le else est nouveau une alternative if then On remarquera les diverses indentations qui mettent en vidence ces structures imbriqu es 1 3 1 2 Habillage Et voici la version compl tement habill e de ce programme program ATTENTIONSTOP x Il fait lire des mots jusqu ce que STOP soit fourni condition que ATTENTION ait t fourni juste avant et compte les mots lus On y utilise une variable signal Von Mot s scragall z qui contiendra chacun des mots lus Compteur integer pour les compter Siema 3 scrinia qui passera de VERT ROUGE lorsque ATTENTION sera lu begin writeln Vous allez me fournir successivement des mots writeln d au plus 20 lettres en faisant suivre chacun writeln d eux de l appui sur la touche d entr e writeln L arr t se fera STOP en majuscules condition writeln que vous m ayez fourni juste avant ATTENTION Compteur 0 Signal VERTU repeat Weee DONNEZ UNMO aE readin MotLu Compteur Compteur 1 if MotLu ATTENTION then Signal ROUGE CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 136 Images pour programmer 1 re partie else ir Motlu lt gt STOP then Some 2 AREA N GACL MOUTON ON Sigma TROUGEY p writeln Vous m avez donn en tout Compteur mots end 1
175. me va l clairer on commence par poser la question avant m me d entamer une premi re fois le groupe d actions r p ter Ainsi l organigramme correspondant s crit CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 54 Images pour programmer 1 re partie Entrez DE _Les l ves veulent lt gt Faux gt travailler _ a Vrai Y Donnez 5 minutes de cours y i Sortez En r sum si la structure est REPETER A JUSQU A CE QUE C A repr sentant le morceau de marche suivre r p ter et C la condition nonc e alors le bloc A est toujours effectu au moins une premi re fois avant que l valuation de la condition C fasse reprendre ou oblige interrompre Si la structure est TANT QUE C i alors la condition est d abord valu e Si elle est fausse le bloc A n est pas effectu une seule fois on passe directement ce qui suit si elle est vraie on effectue le bloc A et on revient l valuation de la condition pour savoir si la r p tition doit tre poursuivie Ces remarques tant faites nous sommes en mesure de transformer la structure REPETER JUSQU A CE QUE en TANT QUE et r ciproquement Revenant l exercice 3 2 on pourrait proposer l quivalence 2 Replacez bien chaque fois mentalement les mots REPETER JUSQU A CE QUE TANT QUE sugg r s par le graphisme des GNS l o ils in
176. mite n est pas pleine P le SI panier vide ALORS FP Remplis ae TANT QUE la marmite n est pas remplie P le La suite lui dit que TANT QUE la marmite n est pas pleine il doit peler C est ce qu il fait Au bout de quelques passages dans cette boucle TANT QUE illustr s par le sch ma panier vide la marmite n est pas pleine E P le la situation devient V Remplis SI panier vide ALORS Remplis TANT QUE la marmite n est pas remplie p Eare d FE La marmite tant alors remplie l valuation de la condition la marmite n est pas pleine donne une r ponse fausse et le robot s arr te Tout va bien la quantit de pommes de terre souhait e est atteinte On notera d ailleurs que m me si le panier n tait pas vide au d but mais 4 Il est important de garder sous les yeux le GNS ou le pseudo code correspondant Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 63 contenait assez de pommes de terre tout continuerait fort bien marcher Si par exemple la situation initiale est L ex cution se d roule comme suit Le panier n tant pas vide il ne doit pas tre rempli ce qui correspond la travers e suivante du d but du GNS dipanier vide ALORS fl Rembplis T Remplis Da NT QUE la marmite n est pas remplie la marmite n est pas
177. n Signal de type cha ne de caract res plut t qu entier ou r el Nous verrons dans la suite un type de casier se pr tant particuli rement bien cet usage le type bool en A c t du casier Signal un casier MotFourni de type cha ne d au plus 20 caract res est videmment indispensable pour accueillir les mots fournis par l utilisateur ainsi que le traditionnel Compteur de type entier Nous pouvons donc dresser la Liste des variables MotFourni de type cha ne d au plus 20 caract res Compteur de type entier Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 107 Signal de type quelconque pour autant qu il puisse contenir une information au d but et basculer en accueillant une autre information dans la suite Ici je l ai choisi de type cha ne d au plus 5 caract res passant de VERT ROUGE Ayant r serv les casiers indispensables il reste comme d habitude indiquer comment ils seront utilis s Marche suivre Il suffit de commander une r p tition au cours de laquelle un mot nouveau sera lu et plac dans MotFourni Compteur verra son contenu augmenter de 1 le Signal passera ROUGE si MotFourni contient ATTENTION Lorsqu on d crit la liste des instructions qui devront tre r p t es on dit aussi le corps de la boucle de r p tition il ne faut surtout pas la dresser en s inspirant de la toute premi re fois que les actions correspondante
178. n art qui ne peut s apprendre que lentement c est en s exer ant la conception des marches suivre que peu peu on ma trise les difficult s qui y sont attach es Je vais cependant indiquer dans le cas du robot peleur de pommes de terre une mani re de proc der qui illustre ce que peut tre la d marche descendante qui va s incarner dans l utilisation de l appel de proc dure et que nous retrouverons plus tard dans la vraie programmation CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 68 Images pour programmer 1 re partie L objectif ici est donc de faire en sorte que le robot p le la quantit de pommes de terre n cessaire pour remplir la marmite On sent bien que ce processus est essentiellement r p titif D s lors on serait tent de proposer FAIS TOUT CE QU IL FAUT REPETER FAIS TOUT CE QU IL FAUT POUR METTRE UNE POMME DE TERRE EN POUR METTRE UNE POMME DE TERRE EN PLUS DANS LA MARMITE JUSQU A CE QUE la marmite soit remplie PLUS DANS LA MARMITE en sachant fort bien que l action dont on commande la r p tition ne figure pas dans le r pertoire des actions l mentaires de notre ex cutant Ce n est pas grave nous pouvons laisser cette instruction trop complexe au sein de la marche suivre quitte l expliciter dans une annexe Ce qui est important c est de sentir que par rapport l nonc original qu on pouvait synth tiser par Remplis la marmite nous
179. n raccourci pour Affiche un cran vide et l assimiler un cas tr s particulier de l instruction d affichage cirscr comme les instructions suivantes gotoxy delay constituent autant de d tails suppl mentaires concernant les possibilit s de l ex cutant Il ne s agit pas l de possibilit s du Pascal standard mais bien d ajouts pr sents dans l impl mentation Turbo Pascal Version 3 Il n est pas certain du tout que ces possibilit s se retrouvent dans d autres versions de Pascal Il ne faut donc pas faire de la ma trise de tels d tails l objectif d un apprentissage de la programmation Ainsi dans l impl mentation 1 5 de Turbo Pascal sous Windows on peut utiliser clrser ou gotoxy mais condition de faire suivre l ent te du programme de la mention uses wincrt Dans cette impl mentation cette mention est pratiquement obligatoire delay 5000 3 L instruction delay fait temporiser l ex cutant pendant un moment proportionnel la taille du nombre entier inscrit entre les parenth ses Ce temps d pend de l ordinateur utilis mais il doit en g n ral tre de quelques milliers pour que la temporisation soit visible Pendant cet arr t l ex cutant ne poursuit pas l accomplissement de la marche suivre et tout reste donc inchang Pourquoi donc stopper ainsi l ex cutant pendant un temps plus ou moins long Il faut remarquer qu ici sans cette instruction le morceau de programme conce
180. n sorte qu au bon moment le contenu de Dernier soit transf r dans AvantDernier Apr s les initialisations d usage je commanderai de r p ter un m me groupe d actions On va voir que l ordre dans lequel ces actions sont command es est ici fort important Si je commande de r p ter lis un mot et place le dans Dernier CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 110 Images pour programmer 1 re partie recopie Dernier dans AvantDernier compte et cela jusqu ce que Dernier contienne STOP et AvantDernier contienne ATTENTION jJ aboutis une absurdit puisque Dernier et AvantDernier contiendront coup s r le m me mot En r alit il faut d abord faire transf rer le contenu de Dernier dans AvantDernier avant de faire lire un nouveau mot pour le placer dans Dernier et non apr s comme ci dessus Je commanderai donc la r p tition des actions suivantes cette fois dans le bon ordre recopie Dernier dans AvantDernier lis un mot et place le dans Dernier compte Avec l habituelle initialisation du Compteur ceci conduit au GNS Place 0 dans le casier Compteur Place 0 dans le casier Compteur A 7 REPETER Place Dernier dans le casier AvantDernier a Place Dernier dans le casier AvantDernier Affiche Donnez un mot Affiche Donnez un mot Lis et place dans Dernier Lis et place dans Dernier Place Compteur 1 dans le casier Compteur Place Compteur 1 dans le ca
181. ndre que BONJOUR et BON JOUR ne sont pas deux cha nes identiques mais il est incapable de d cider de lui m me que BONJOUR est un mot RUOJNOB n en est pas un ou que PETIT est un adjectif qualificatif pith te ou attribut Rappelons bien que j en suis d crire les capacit s de base de l ex cutant ordinateur je serais tent d crire ses aptitudes inn es Mais chaque fois que je lui aurai expliqu sous la forme d une marche suivre comment mener bien une t che j aurai en quelque sorte enrichi son stock de possibilit s je lui aurai appris si l on peut dire comment mener bien un travail dont il tait incapable Mais toute la mati re grise toute l intelligence c est videmment l tre humain qui a d cortiqu la t che qu on les doit CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 84 Images pour programmer 1 re partie Il est important de ne pas confondre nombre et cha nes de caract res 126 sans apostrophe est une information de type nombre entier et 1l acceptera volontiers d y additionner 3 en trouvant d ailleurs heureusement 129 Mais 126 est la succession des trois caract res 1 2 et 6 et il ne comprendra rien si nous lui demandons d y additionner le caract re 3 et encore moins le nombre 3 Ou bien comme certains enfants il r pondra que 126 3 c est 1263 Les tiquettes des casiers ne sont pas des informations manipul es par l ex cu
182. ne longue s rie que nous dig rerons petit petit Il s agit l de d tails ce n est pas la connaissance de ceux ci qui fait la diff rence entre les bons programmeurs et les autres Mais autant savoir 3 et 5 gotoxy 36 2 4 6 LS Et voici nouveau une instruction de pr sentation des informations affich es l cran Il s agit ici de positionner le curseur un endroit d termin de ce dernier Le curseur c est ce petit rectangle ou carr ou tiret que vous voyez tout moment l cran Le texte qui sera affich l cran d o qu il vienne affich par l ex cutant ou fourni par l utilisateur travers son clavier vient toujours prendre place partir de la position du curseur Le fait d envoyer le curseur un endroit pr cis pr alablement un affichage de texte permet donc une pr sentation plus attrayante des messages ou des r sultats L cran est en g n ral constitu de 24 lignes de 80 caract res On peut l aide de gotoxy envoyer le curseur n importe lequel de ces emplacements de l cran Les arguments de cette instruction ce sont les deux nombres crits dans les parenth ses doivent tre des informations enti res crites comme des constantes des variables ou des expressions Le premier argument indique la colonne o se d placera le curseur elle d termine donc son d placement horizontal le second pr cise la ligne o il sera envoy d
183. nexes dans le corps de la marche suivre principale en proposant au robot TANT QUE la marmite n est pas remplie TANT QUE la marmite n est pas remplie panier vide SI panier vide ALORS Remplis P le Remplis Cette derni re proposition est peut tre plus simple mais elle a deux d fauts importants Elle cache la d marche que nous avons men e et qui consistait r duire petit petit le probl me initial en passant des probl mes plus simples Il est sans doute pr f rable de choisir la pr sentation qui fait usage de l appel de proc dure Ainsi le lecteur de la marche suivre retrouvera facilement le cheminement de l analyse men e et pourra la comprendre et la partager Dans le cas o les t ches deviendront plus complexes cette d marche d affinements successifs et de simplifications par petits pas va s av rer de plus en plus payante Elle s incarnera comme ci dessus dans la structure d appel de proc dure et nous essayerons de la rendre aussi visible que possible dans un souci constant de faciliter la t che de compr hension du lecteur 6 4 l Quelques remarques Je n ai en aucune mani re d montr que la marche suivre propos e ci dessus tait correcte c est dire que dans tous les cas possibles elle conduisait l ex cutant mener bien le travail propos quels que soient les tailles et les tats initiaux du panier et de la marmite Essayer cette marche suivre avec t
184. nfoncer la touche PAUSE Lorsque sa diode lectroluminescente correspondant s allume enfoncer la touche REC De cette mani re la platine est mise en mode d attente d enregistrement La diode lectroluminescente correspondant aux touches REC et PLAY sont aussi allum es Ajuster le niveau d enregistrement Voir page 18 Appuyer de nouveau sur la touche de PAUSE pour lib rer le mode de pause et faire d marrer 1 enregistrement Marche suivre n 1 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 24 Images pour programmer 1 re partie Ce premier exemple est destin un ex cutant possesseur d un enregistreur cassette et son but c est de lui expliquer comment effectuer un enregistrement Qu y trouvons nous D abord et c est ce qui en constitue l essentiel des instructions comme Appuyer sur l interrupteur POWER pour le r gler sur la position ON Appuyer sur la touche d jection EJ ECT pour ouvrir le compartiment cassette Etc Chacune de ces phases est l indication d une action dont le technicien r dacteur de la marche suivre croit capable l ex cutant Nous dirons qu il s agit l chaque fois d une instruction d action l mentaire Il s agit d instructions d action d ordres et non d actions Une marche suivre ne fait rien elle fera faire des choses par un ex cutant au moment o celui ci commencera s atteler la t che qui y est d crite Chaque instruction d act
185. nstante si elle figure bien dans Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 101 la liste de ce que nous retenons ne donnera pas naissance un casier contenu variable Les autres informations retenues et qui se modifieront au fur et mesure du travail se traduiront elles dans l tape suivante par la d finition des variables correspondantes Cette tape de recherche de strat gies o nous devons tre capables face une t che d expliciter compl tement comment nous nous y prenons sera en g n ral moins anodine Pensez la difficult d expliquer compl tement et de mani re m thodique la mani re dont vous triez des nombres dont vous crivez en toutes lettres un nombre ou dont vous comptez les points au tennis Pour l instant la seule utilit de cette tape c est se regardant faire aux prises avec les t ches d crites d tre capable de pr ciser les informations que nous gardons l esprit pour en venir bout Nous saurons ainsi l tape suivante quels seront les casiers n cessaires Nous pouvons pr sent passer la suite nous allons tenir vraiment compte des caract ristiques de l ex cutant pour r diger la marche suivre qui lui expliquera comment traiter cette t che notre place 1 1 3 Comment faire faire L ex cutant est un gestionnaire de casiers Il est imp ratif d s lors de commencer par pr ciser quels casiers lui seront indispensab
186. nstante une variable dont on d signe alors le contenu ou encore une expression r sultat d une manipulation mettant en jeu l un ou l autre outil de traitement des informations Voici quelques exemples Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 149 Dawet s 15 Rho Epsilon noce s Tnaeeca I VALEUR ACC TYU TRE BIBI Il faut bien s r veiller lors de l emploi de l affectation la compatibilit du type de la variable remplir tel qu il a t pr cis dans la partie d claration du programme et de l information qu on demande d y placer Par exemple il est impossible d affecter une variable enti re une information r elle ou cha ne de caract res qu elle prenne la forme d une constante d une variable ou d une expression La seule exception permise est l affectation d une information enti re une variable r elle Il faut tre attentif ce que bien que constitu de 2 caract res est consid r comme un symbole ins cable Les ne peuvent donc tre s par s de par un espace 3 2 2 Les instructions de lecture READ et READLN Elles permettent de faire lire partir du clavier les informations donn es fournies par l utilisateur Ces donn es sont plac es dans les casiers indiqu s Read et readln traduisent donc l instruction not e dans les GNS par Lis et place dans tel casier la traduction en Pascal devenant read nom du casier remplir ou
187. nt corrig es et ne remettent en tout cas pas en cause le contenu de la marche suivre elle m me on peut avoir exprim incorrectement des choses correctes Un tr s court exemple fera sans doute mieux saisir ces incoh rences Supposons un instant que la t che faire traiter par l ordinateur consiste conjuguer un verbe r gulier de la premi re conjugaison l indicatif pr sent Sans pr juger des capacit s de l ordinateur et sans entrer dans une formalisation de la marche suivre on pourrait penser des indications du genre de ce qui suit demande quel est le verbe conjuguer retire les deux derniers caract res de ce qu on t a fourni pour garder le radical cris je puis passe un blanc puis cris le radical auquel tu colles e en dessous cris tu un blanc puis le radical en y collant es puis il un blanc le radical et e etc Remarquons qu il s agit de traitements purement formels et que m me si je n ai encore rien dit de ce dont l ex cutant ordinateur est capable il s agit l du type de manipulation dont il est friand Ce n est qu une question de d tails que de savoir comment lui exprimer ce qui pr c de travers l un ou l autre langage compromis CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 20 de faire conjuguer Images pour programmer 1 re partie Une premi re surprise c est qu avec les explications fournies il est parfaitement possible plomb
188. ntiendra les r sultats du lancer Compteur pour compter le nombre de lancers CompteurDeSix pour compter les 6 obtenus integer begin effacement de l cran clrscr writeln Je vais lancer pour vous un d en arr tant writeln au troisi me 6 obtenu demande d une pause delay 5000 clrscr placement du curseur la 2 me ligne 36 me colonne gotoxy 36 2 write R sultats placement du curseur la 3 me ligne 36 me colonne gotoxy 36 3 writeln passage d une ligne blanche writeln Compteur 0 CompteurDeSix 0 repeat Resultat random 6 1 Ch Duch teau 22 ao t 2002 1 2 1 3 4 5 6 CeFIS FUNDP 2002 Traduction en Pascal 139 write Resultat Compteur succ Compteur if Resultat 6 then CompteurDeSix succ CompteurDesSix until CompteurDeSix 3 writeln writeln Nombre total de jets Compteur end 1 2 clrscer Cette instruction exige que l ex cutant efface compl tement l cran Il s agit d un raccourci pour les mots clear screen qui signifient de fait efface l cran C est une sage pr caution en d but de programme de faire proc der cet effacement On pourrait sans doute voir dans l instruction clrscr une instruction d action l mentaire ne correspondant aucune des trois actions l mentaires dont est capable l ex cutant On pourrait aussi y voir u
189. ntraintes syntaxiques orthographiques Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 85 impos es par le langage compromis Ce choix il faudra le faire bon escient en restant attentif faciliter la lecture ou la relecture de la marche suivre par les tres humains qui voudraient en prendre connaissance D s lors si je pense faire d poser dans un casier le nom d un client je choisirai comme tiquette pour ce casier NOM _DU_CLIENT et pas X Si un casier est destin contenir le solde du compte d un client je l appellerai SOLDE ou SoldeDuCompte et pas AGE ou Nombre ou Y En un mot j essayerai de choisir une tiquette vocatrice des informations qui transiteront dans le casier J ai d j insist sur la n cessit de r diger des marches suivre qui soient non seulement correctes mais encore facilement lues et comprises par un tre humain Nous savons pr sent que l essentiel de ces marches suivre consistera faire g rer des casiers Il est donc imp ratif que dans le choix des tiquettes des casiers utilis s je reste fid le cet objectif de lisibilit de compr hension ais e 1 4 L instruction d affectation Nous savons maintenant que l ex cutant ordinateur qui nous destinons nos marches suivre sera constamment en train de manipuler des informations et m me qu il passera la plus grande partie de son temps d poser notre demande ces
190. ogrammation est bien plus cousine de l organisation des id es sous jacente l art de la dissertation qu la connaissance des r gles d accord du participe Il ne faudrait pas non plus me faire dire ce que je ne dis pas la connaissance des r gles syntaxiques et orthographiques d un langage de programmation est indispensable sinon jamais on ne pourra exprimer les marches suivre con ues dans une version assimilable par l ordinateur et faute de la ma trise de cette tape du Comment dire c est tout le processus qui est hypoth qu Mais ces connaissances grammaticales indispensables sont notoirement insuffisantes pour programmer correctement 4 2 Et les erreurs Dans l approche propos e ici qui privil gie les concepts plut t que les aspects techniques la programmation peut para tre premi re vue comme une activit relativement simple La r alit montre chaque jour qu il n en est rien et que fort souvent toute cette d marche d analyse d bouche sur des programmes incorrects l ex cutant ordinateur ne traite pas la t che de mani re satisfaisante En v rit nous ne la lui faisons pas traiter correctement Je ne parle pas ici des erreurs de syntaxe qui peuvent subsister dans le texte du programme exprim dans le langage de programmation J ai dit ci dessus que ces erreurs emp chaient la traduction du programme et a fortiori son ex cution Mais ces erreurs de forme sont le plus souvent ais me
191. omme Enfoncer la touche pause La premi re phrase confirm e par la num rotation n est pas directement destin e faire agir l ex cutant elle indique plut t comment les actions doivent tre organis es Les consignes par lesquelles nous indiquerons comment les actions correspondant aux instructions d action l mentaire doivent s organiser nous les appellerons des instructions d organisation C est dessein que action l mentaire est crit au singulier chaque instruction l mentaire correspond une et une seule action de l ex cutant CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 26 Images pour programmer 1 re partie ou encore des structures de contr le La s quence en est le premier exemple et nous allons en d couvrir pr sent quelques autres 1 2 2 L appel de proc dure Le texte nous montre une seconde mani re de structurer une marche suivre C est elle qui est pr sente dans les phrases R gler le s lecteur sur la position correspondant la source employ e Se reporter la page 8 ou R gler les s lecteurs de bande en fonction du type de bande utilis e Voir page 13 ou Ajuster le niveau d enregistrement Voir page 18 Il s agit l de toute vidence chaque fois d une instruction d action trop compliqu e assortie de la r f rence une annexe Les actions command es sont trop complexes et si le technicien les a tout de m me nonc es telles quell
192. ompre pendant un moment l ex cution de la suite du programme L information faire figurer entre les parenth ses doit tre de type entier 2 L instruction gotoxy permet de placer le curseur en un endroit pr cis de l cran Les deux quantit s indiqu es entre parenth ses doivent tre de type entier elles pr cisent respectivement la position horizontale entre 1 et 80 et la position verticale entre 1 et 25 CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 154 Images pour programmer 1 re partie Ainsi gotoxy 1 1 envoie le curseur dans le coin sup rieur gauche et gotoxy 80 25 dans le coin inf rieur droit de l cran 3 L instruction cirscr fait effacer l cran et am ne le curseur dans le coin sup rieur gauche en position 1 1 J ai signal qu c t des instructions d action l mentaire et des structures de contr le les marches suivre comporteraient galement des commentaires Il reste dire comment ceux ci peuvent s ins rer dans le texte d un programme Pascal 3 2 9 Les commentaires Les programmes surtout s ils sont longs ne sont pas toujours ais s relire Le langage Pascal nous autorise et le bon sens nous le conseille vivement ins rer dans le texte des commentaires qui ne seront pas pris en compte par le compilateur Ces commentaires doivent tre crit entre les symboles et ou bien et Le texte crit entre les deux symboles et n est soumis aucune contrain
193. ompteur 1 MotFourni ATTENTION until MotFourni ATTENTION Affiche Donnez un mot repeat l j un DE Lis et place dans MotFourni He pente B me readin MotFourni Place Compteur 1 dans le casier Compteur nm 7 Comoteurk T Compteur ORUS ATE until MotFourni STOP Affiche Compteur writeln Compteur end et avec le pseudo code program ATTENTION1 var Mothousni M Strona201N Compteur integer begin Place 0 dans le casier Compteur Compteur E 0 REPETER repeat Affiche Donnez un mot write Donnez un mot Lis et place dans MotFourni readin MotFourni Place Compteur 1 dans le casier Compteur Compteur Compteur l JUSQU A CE QUE MotFourni ATTENTION MELE Motmoviai MATTEINTION REPETER repeat Affiche Donnez un mot write Donnez un mot Lis et place dans MotFourni readin MotFourni Place Compteur 1 dans le casier Compteur Compteur Compteur 1 JUSQU A CE QUE MotFourni STOP DE More SEE Affiche Compteur writeln Compteur endi Revoici d ailleurs le texte de ce programme assorti des habituelles remarques program ATTENTIONI1 var Moekouvrmi 3 gcringlizo p 1 Compteur integer begin Compteur 0 repeat Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 127 Traduction en Pascal We DONNEZ UNMO C E readin MotFourni Compteur Compteur 1 until MotFourni ATT
194. on appelait il y a quelques ann es encore un calculateur lectronique Comme par exemple 15 139 14 nombres entiers 12 5 6 9 132 46 13 0 nombres r els On aura compris que les nombres entiers sont ceux positifs ou n gatifs sans partie d cimale tandis que les nombres r els comportent en g n ral une partie d cimale il y a des chiffres apr s la virgule qui devient d ailleurs pour sacrifier la notation anglo saxone un point Certains casiers pourront donc tre pr vus pour accueillir ces informations num riques enti res ou r elles Nous dirons qu ils sont de type entier ou de type r el Remarquons que si les nombres n gatifs sont videmment pr c d s du signe on ne prendra pas la peine d accoler le signe aux nombres positifs 1 2 2 Les cha nes de caract res L ex cutant ordinateur manipulera aussi des informations que nous appellerions volontiers des mots ou du texte En r alit nous parlerons plut t de cha nes ou de successions de caract res car si nous sommes pr ts nommer mot des informations comme BONJOUR ou Au revoir par contre ABCD 123 ER nous apparaissent bien comme de simples successions de caract res et ne m ritent certes pas le statut de mots Ceci n est pas tonnant puisque comme je l ai dit plus haut l ordinateur se contente de manipuler formellement des informations ind pendamment du sens de la connaissance qu elles portent C est l
195. on de ATTENTION tel quel un moment puis celle de STOP exactement crit de cette mani re L nonc strictement quivalent celui ci o l on aurait command la lecture de nombres avec arr t 0 condition que 1 ait t fourni auparavant aurait sans doute t plus clair mais il n aurait pas permis ces premi res manipulations l mentaires de cha nes de caract res CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 104 Images pour programmer l re partie 1 2 2 Comment faire Comme pour la t che pr c dente ce qui importe c est se regardant faire aux prises avec ce travail de d terminer quelles sont les informations que nous sommes forc s de retenir et qui sont susceptibles de se modifier Deux approches au moins sont sans doute possibles 1 On ne retient qu un court instant le mot lu Dans un premier stade on est seulement attentif l apparition de ATTENTION d s r ception de ce mot on passe alors un second stade o l on est attentif l arriv e de STOP qui arr te tout le processus On compte les mots au cours de la premi re tape et on continue ce d compte au cours de la seconde Ou encore 2 On peut aussi retenir un instant chaque mot mais retenir en plus tout moment si ATTENTION a ou n a pas encore t fourni On s arr te lorsque STOP appara t condition qu on se souvienne que ATTENTION est pass De toute mani re on compte les mots chaque
196. ons diverses 3 2 9 Les commentaires Quelques outils disponibles 3 3 1 Les op rations arithm tiques 3 3 2 Les fonctions arithm tiques 3 3 3 C Les expressions bool ennes CONCLUSION PROVISOIRE BIBLIOGRAPHIE INDEX ALPHAB TIQUE Ch Duch teau 151 152 153 153 154 154 154 155 155 157 159 163 22 ao t 2002 CeFIS FUNDP 2002 1 PROGRAMMER Si j cris le mot informatique nul doute que vous pensiez d abord ordinateur Si j avais crit m t orologie les images associ es auraient probablement t temps anticyclone d pression pluie et pour certains thermom tre Le mot astronomie aurait lui appel toiles plan tes lune et peut tre t lescope Mais personne n est pr t dire que la m t orologie est la science des thermom tres ou l astronomie celle des t lescopes Et bien l informatique n est pas plus la science des ordinateurs que l astronomie n est la science des t lescopes ou la m t orologie celle des thermom tres L ordinateur est un outil essentiel de l informatique comme le t lescope est un outil pour l astronome mais faire de l informatique c est bien plus et bien plus passionnant que conna tre et manipuler un ordinateur Cet ouvrage montrera je l esp re que les probl mes sont ailleurs que dans la connaissance et la ma trise d un ordinateur j aborderai fort peu les aspects techniques et dirai bien peu de choses de l int rieur de l
197. ont notoirement incomplets puisqu on n a pas pr cis chaque fois les capacit s de l ex cutant qui on s adressera Que comprend et que peut faire l apprenti conducteur ou l ex cutant pi ton Sans pr cision suppl mentaire il est impossible de savoir jusqu o ces diverses t ches doivent tre diss qu es On devine d j qu avant d aborder l analyse du moindre probl me de programmation il faudra avoir dit quelles sont les caract ristiques de l ex cutant ordinateur sinon la d marche toute enti re est vici e il est impossible de faire faire quelque chose par un autre sans savoir ce dont il est capable 3 Les tapes du faire faire Nous savons pr sent que l essentiel de ces notes a pour but de nous apprendre comment faire faire une t che de traitement formel d informations par un autre La t che faire r aliser est g n ralement anodine Le probl me vient de ce que celui qui nous souhaitons faire ex cuter ce travail n en est pas directement capable Il nous faut d cortiquer morceler la besogne en une succession d actions plus l mentaires correspondant aux capacit s de l ex cutant Ce d corticage ces explications s incarnent dans une marche suivre qui guidera son activit lorsque nous exigerons qu il effectue cette t che Sch matiquement le c ur du processus se d crit comme T che Faire faire Ordinateur Sur le chemin qui conduira de la t che
198. ontiendra la somme des donn es PlusPetite qui finira par contenir la plus petite donn e PlusGrande qui contiendra la plus grande donn e Teal Compteur pour compter les 100 donn es lues integer begin writeln Vous allez me fournir 100 donn es r elles et writeln je vous donnerai ensuite la plus petite la plus grande writeln et leur moyenne writeln write Votre premi re donn e readin Donnee Somme Donnee PlusPetite Donnee PlusGrande Donnee Compteur 1 repeat write Donn e num ro Compteur i1 w e 1 readin Donnee Compteur succ Compteur Somme Somme Donnee if Donnee lt PlusPetite then CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 144 Images pour programmer l re partie PlusPetite Donnee else if Donnee gt PlusGrande then PlusGrande Donnee until Compteur 100 clrscr effacement de l cran writeln La moyenne des donn es est Somme 100 writeln La plus petite est PlusPetite writeln et la plus grande PlusGrande end 1 westelWbonnr eMimeroM COMO CEU IV SC Au moment d inviter l utilisateur fournir une donn e je lui rappelle ou plut t fais rappeler la position de celle ci L affichage r sultant sera du type Votre premi re donn 23 45 Donn e num ro 2 34 67 Donn e num ro 3 23 les quantit s soulign es tant les nombres fournis par l utilisateur Il est imp
199. ontient la valeur 17 l instruction Writeln ila valeur de X est VX Unics La valeur de X est 17 unit s suivi d un saut la ligne affichera l cran Il importe d tre attentif lors de l affichage de plusieurs informations au fait qu elles appara tront coll es l une l autre Ainsi en reprenant l exemple ci dessus si l on avait exig Weiecelia te valar oe X esr X tmira l affichage aurait t La valeur de X estl unit s Il me faut pr sent passer en revue les instructions Pascal correspondant aux structures de contr le 3 2 4 L instruction alternative IF THEN ELSE C est celle qui traduira les mots Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 151 SI ALORS SINON ou encore en l absence de SINON SI ALORS repr sent dans les GNS par le graphisme Elle prend g n ralement la forme ECONO instruction unique else instruction unique et en l absence de SINON if condition then instruction unique Nous trouvons ici l un des cas o la syntaxe de Pascal commande imp rieusement de pouvoir amalgamer plusieurs instructions en une instruction unique l aide de begin et end Par exemple ii Se BG then begin CERN BIC A 0e 20 end else A s SA Tous ces exemples destin s seulement illustrer les aspects grammaticaux de Pascal constituent autant d exemples de ce qu il ne faut pas faire en ce qui
200. ore il faudra bien des programmeurs pour cr er les logiciels que d autres utiliseront et il faudra donc bien leur enseigner la programmation Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Avant propos V et que la programmation est plus proche de la composition fran aise que des r gles d accord du participe ou de la dactylographie Constatation n 2 L apprentissage de la programmation m me bien conduit Cf la r ponse n 1 tel qu il est con u dans le cadre de la plupart des initiations l informatique comme par exemple celles destin es des l ves de l enseignement secondaire ne d bouche pas sur une ma trise suffisante pour qu son terme les nouveaux initi s soient r ellement devenus des programmeurs Il est de loin pr f rable de leur faire d couvrir la manipulation des outils logiciels qui eux seront effectivement utiles et utilis s Cette opinion peut l or e de la d couverte du monde de la programmation propos e ici prendre la forme d une question pr alable lorsque nous refermerons cet ouvrage apr s l avoir lu serons nous devenus des programmeurs avec sans doute les attributs de comp tence et d efficacit attach s cette profession R ponse n 2 Si le crit re d utilit directe et imm diate des apprentissages est mis en avant alors il est vrai que l tude de la programmation doit tre supprim e du curriculum de formation des l ves L application de ce m m
201. ortant de bien voir pourquoi je commande write Donn e num ro Compteur 1 et pas write Donn e num ro Compteur 2 Exercices 1 Traduisez en Pascal et habillez les programmes obtenus pour chacune des marches suivre d velopp es dans les exercices propos s au chapitre pr c dent 2 A et B d signant deux quantit s enti res avec A lt B par quelle expression d signeriez vous en Pascal un nombre entier al atoire compris entre A et B A et B inclus 3 Pourquoi ne redouble t on pas les apostrophes qui figurent dans les commentaires 3 Synth se sur le langage 3 1 Structure g n rale d un programme Pascal 3 1 1 En t te du programme La premi re ligne comporte n cessairement l indication program NomChoisi 3 1 1 1 Les mots r serv s Le mot program est ce qu on appelle un mot r serv du langage Pascal Nous en connaissons pr sent beaucoup d autres var repeat readln until then J ai pris l habitude de les souligner Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 145 dans les exemples pr c dents Ces mots r serv s ne peuvent videmment tre utilis s librement pour d signer le programme les variables proc dures Ils doivent tre crits tels quels sans y faire figurer d espace de tirets de passage la ligne On peut indiff remment les crire en majuscules ou minuscules Ils doivent tre suivis d au moins un ca
202. orte clavier pour le d poser dans le casier NombreFourni et de le compter en augmentant le contenu du casier Compteur Et cela il devra le r p ter jusqu au moment o le nombre lu et d pos dans NombreFourni sera 0 Il suffira alors de lui demander d afficher sur la vitrine cran l intention de l utilisateur le contenu du casier Compteur qui contiendra alors le nombre de donn es lues Ainsi la marche suivre pourrait tre Affiche Donnez un nombre REPETER Lis et place dans NombreFourni Sons Donmez un nombre PI C UPS ic P Lis et place dans NombreFourni ts 2 alali Place Compteur 1 dans le casier Compteur NombreFourni 0 JUSQU A CE QUE NombreFourni 0 Affiche Compteur Affiche Compteur Il subsiste cependant un petit probl me lorsque l ex cutant commence le travail d crit par cette marche suivre les casiers contiennent n importe quoi n importe quelle information du type correspondant au type du casier envisag Il est facile de voir dans ces conditions que si le casier Compteur contient primitivement et par hasard l entier 12 et si l utilisateur fournit les nombres 3 5 4 66 et 0 il lui sera r pondu qu il a fourni 15 nombres au total puisqu on commence compter avec un Compteur qui contient d j 12 Il est donc imp ratif que l ex cutant commence bien son travail avec un Compteur contenant 0 et que d s lors je lui demande avant de commencer r p ter les lectures et comp
203. otre concessionnaire FORD Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 29 Si les c bles haute tension sont d branch s de l allumeur avant de les rebrancher noter leur emplacement respectif Les c bles des bougies sont d ailleurs num rot s afin de faciliter leur branchement Voir ordre d allumage la section intitul e CARACTERISTIQUES TECHNIQUES Apr s r alisation des contr les ci dessus ne pas omettre de rebrancher le c ble de masse de la batterie Marche suivre n 3 On la voit l uvre travers les phrases Si n cessaire nettoyer ces pi ces l aide d un chiffon propre Le cas ch ant faire remplacer les pi ces d fectueuses par votre concessionnaire FORD Sur les moteurs 1 1 1 3 et 1 6 litres C V H utiliser uniquement des bougies Cette structure qui se r v le par des mots comme si ventuellement lorsque le cas ch ant n est videmment pas une instruction d action Au contraire ces phrases noncent des conditions qui vont commander l effectuation ou la non effectuation de certaines actions d crites Nous pourrions en uniformiser la pr sentation sous la forme SI la temp rature est sup rieure 0 C ALORS ne pas acc l rer pendant le lancement SINON si la temp rature est inf rieure 0 C enfoncer compl tement l acc l rateur pendant le lancement du moteur SI le moteur ne d marre pas ALO
204. our cela il suffit d un casier dont le contenu signalera que ce mot a ou n a pas t fourni Ce casier je le baptiserai Signal J ai le choix en ce qui concerne son type L important c est qu il contienne une certaine information tant que ATTENTION n a pas t re u et qu la r ception de ce mot le contenu de ce Signal se modifie Ainsi il pourrait tre de type entier contenant primitivement 0 ou toute autre valeur enti re et basculant 1 ou toute autre valeur diff rente de celle s y trouvant lors du passage de ATTENTION Il pourrait aussi tre de type r el mais j ai choisi ici le type cha ne d au plus 5 caract res Signal contiendra la cha ne VERT tant que le mot ATTENTION n aura pas t re u et ce contenu deviendra ROUGE pour le rester la r ception du mot ATTENTION Ainsi on v rifiera la lecture de chaque mot qu il s agit oui ou non de ATTENTION pour faire ventuellement basculer le contenu de Signal de VERT ROUGE Les lectures accompagn es de ces v rifications et du comptage seront r p t es jusqu ce que le mot fourni soit STOP et que le casier Signal soit ROUGE Cette utilisation d une variable signal on dit aussi drapeau baiss ou lev ou encore sentinelle endormie ou veill e est fr quente en programmation Elle est indispensable chaque fois qu un v nement doit rester en m moire chez l ex cutant amn sique Nous avons choisi ici u
205. our mettre clairement en vidence la r p tition sous jacente R p ter Tourner une page jusqu ce que la page porte les coordonn es de l abonn R p ter Ajouter une pinc e de sel go ter jusqu ce que le plat soit assez sal Dans la langue fran aise la r p tition se traduit de bien des mani res et si le mot jusqu ce que est bien souvent pr sent pour voquer la condition dont la r alisation arr tera la r p tition le mot r p ter reste en g n ral implicite ou se cache sous d autres tournures linguistiques Il existe une seconde mani re de commander la r p tition d un groupe d actions c est celle qui s annonce par les mots Tant que comme dans les instructions Tant que le m lange n est pas assez mousseux continuez battre ou Tant qu il reste des fiches traiter appliquez leur le traitement standard Nous retiendrons donc par la suite deux formes de structure r p titive CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 32 Images pour programmer l re partie REPETER et TANT QUE condition Instructions Instructions JUSQU A CE QUE condition suite de la marche suivre suite de la marche suivre 1 2 5 Le branchement Il existe une derni re mani re d organiser les actions command es dans une marche suivre On la devine dans l exemple suivant 1 Lorsque le message FOUND le nom du programme et le message LOADING apparaissent l cran mais q
206. our programmer 1 re partie Ce cycle compilation dition se poursuit tout le temps que des erreurs subsistent Il peut tre fort long si le programmeur est peu soigneux distrait ou irrespectueux des r gles d criture prescrites par le langage de programmation adopt A l issue de ces p rip ties on finit en g n ral par terminer victorieusement l tape de traduction et on se trouve alors avec en m moire la version traduite du texte on appelle parfois version objet ou version code le r sultat de la compilation r ussie pour la distinguer de la version texte ou version sujet celle exprim e dans le langage de programmation Il reste videmment si on le souhaite sauver sur support m moire externe cette version directement ex cutable de la marche suivre 4 Disposant maintenant de cette version l tape suivante consiste videmment demander enfin l ex cution de la marche suivre l ordinateur se laisse alors gouverner par la version traduite de cette derni re et effectue les traitements souhait s du moins quand tout se passe bien C est en effet au cours de cette tape qu on d couvre les erreurs de conception les incoh rences bref ce qu on d signe souvent sous le vocable d erreurs de logique Cf plus loin Cette derni re tape ach ve la longue marche qui chaque fois conduira de la t che son ex cution par l ordinateur Ce n est ni simple ni rapide mais c est cela programmer 4
207. ous heurtez plusieurs fois un refus adressez vous au service de r veil manuel num ro 999 Marche suivre n 6 peut se r crire en faisant appara tre les structures alternatives et en ne retenant que les instructions d action l mentaire l exclusion des exemples et des commentaires D crochez le combin Formez 9080XXXX0O SI l ordre a t compos correctement ALORS SI l heure de r veil est correcte et la p riode de r veil choisie n est pas satur e ALORS vous entendez service r veil votre ordre est accept vous pouvez raccrocher SI l heure de r veil est incorrecte OU l heure de r veil est incompl te OU l ordre ne peut tre enregistr pour des raisons techniques ALORS vous entendez votre ordre n est pas accept Raccrochez Recommencez la t l commande SI la p riode de r veil choisie est satur e ALORS vous entendez La p riode est satur e Veuillez choisir une autre p riode de r veil Raccrochez Faites une autre t l commande On le voit la structure g n rale de cette marche suivre est S quence D crochez le combin Formez 9080XXXX0 SI l ordre a t compos correctement ALORS ou A est un bloc un morceau de marche suivre comportant son tour plusieurs structures alternatives Dans la repr sentation sous forme de pseudo code de la structure alternative telle qu elle est adopt e ici il est imp ratif de mettre en vid
208. peuvent tre connect es par les mots ET ou OU L emploi de NON pour nier une condition est galement permis Avec cette description des conditions qu il peut tester le portrait robot de l ex cutant ordinateur est pr sent complet Notre t che de programmeur sera d abord de d cider quels casiers seront n cessaires pour l ex cution d une t che qui sera toujours un traitement d informations Disposant des trois instructions d action l mentaire vues elle consistera ensuite d cortiquer cette CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 96 Images pour programmer 1 re partie t che en ses constituants l mentaires et l organiser l aide des structures de contr le sous forme GNS J ajouterai cependant encore un trait important de l ex cutant ordinateur L ex cutant ordinateur est un amn sique Je ne pourrai donc travers la marche suivre lui parler qu l imp ratif pr sent Je devrai proscrire des mots comme tant t auparavant successivement Sa seule m moire c est tout moment le contenu actuel des casiers Pas question de lui demander Est ce que tant t le casier Machin ne contenait pas telle information Il ne voit que le pr sent et n est conscient que de ce qui est enferm dans les casiers que je lui aurai fait g rer 5 Exercices 1 Voici un moment donn la configuration de casiers tous de type entier
209. placement vertical Ainsi GOotoxy 36 7 2 enverra le curseur la 36 me colonne 2 me ligne en haut et peu pr s au milieu de l cran write R sultats Le titre dont write commande l affichage viendra donc s inscrire cause de la position prise par le curseur apr s l instruction gotoxy qui pr c dait sur la 2 me ligne en haut de l cran partir de la 36 me position Ce titre sera ainsi peu pr s centr writeln L instruction writeln employ e seule sans argument commande un saut la ligne l cran Le probl me du calcul de moyenne Il s agissait cette fois de faire lire une s rie de 100 nombres r els et de fournir ensuite la plus grande donn e la plus petite et leur moyenne Notre analyse avait finalement conduit au GNS suivant Liste des variables Donnee de type r el qui contiendra chaque donn e lue Somme de type r el pour accueillir leur somme PlusPetite de type r el qui contiendra la plus petite Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal PlusGrande de type r el pour la plus grande Compteur de type entier pour les compter Marche suivre Affiche Donn e Place Somme Donnee dans Somme Donnee lt PlusPetite F Place Donnee dans PlusPetite Donnee gt PlusGrande Place Donnee dans PlusGrande Compteur 100 Affiche Somme 100 Affiche PlusPetite Affiche PlusGrande et sous forme pseu
210. pleine P le P le La boucle TANT QUE d bute alors La marmite n tant pas pleine l ex cutant p le une pomme de terre constate nouveau qu elle n est pas pleine p le de nouveau et ainsi de suite jusqu l avoir rempli Comme le panier contenait assez de pommes de terre pour ce remplissage aucun probl me ne se pose Il ne faut malheureusement pas conclure h tivement apr s ces deux essais que la marche suivre propos e convient C est le drame de la programmation Essayer un programme peut ventuellement montrer qu il ne marche pas jamais prouver qu il est correct J esp re que vous avez d j pressenti que dans le cas d un petit panier et d une grosse marmite les choses vont se passer nettement moins bien Si la situation initiale est Le panier n tant pas vide il est m me plein l alternative d butant le GNS le laisse inchang On entame donc la boucle TANT QUE Comme la marmite n est pas remplie l ex cutant CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau Images pour programmer 1 re partie et cela jusqu la situation o le 64 p le constate qu elle n est pas toujours pleine p le nouveau panier finit par tre vide anier vide ALORS Remplis 3 TANT QUE la marmite n est pas remplie la marmite n est pas pleine 7 po Rembplis La marmite n est toujours pas remplie Or TANT QU elle n est pas pleine la marche suivre S
211. ponse l instruction Place SOMME dans TOTAL l ex cutant se rendra face au casier SOMME prendra copie de l information qui y r side sans vider ce casier pour aller la placer dans le casier TOTAL o elle remplacera l information qui s y trouvait auparavant Si SOMME contenait l information 16 apr s l ex cution de l instruction Place SOMME dans TOTAL SOMME contiendra encore 16 mais TOTAL contiendra videmment la m me information 16 Lorsque j cris TOTAL SOMME il faut bien percevoir que m me s il s agit l de deux noms de casier ils n ont pas le m me statut TOTAL qui est gauche du symbole lt est l tiquette du casier remplir SOMME d signe en r alit non le casier proprement dit mais l information forc ment constante qui est contenue l int rieur du casier d tiquette SOMME On comprend mieux pourquoi dans le texte de la marche suivre la mention d une constante de type cha ne de caract res s accompagne d apostrophes C est essentiellement pour distinguer ces constantes des noms de casier En effet si j cris Place NOM dans CLIENT l ex cutant recopie le contenu du casier NOM dans le casier CLIENT tandis que face l instruction Place NOM dans CLIENT il se contente de sortir la cha ne NOM de sa malle informations pour la placer dans le casier CLIENT qui doit bien entendu tre du type ad quat Ce sont les apostrophes qui lui pr cisent qu on lui parle d une constante
212. primer la r p tition puisque la constatation ci dessus permet de substituer au REPETER JUSQU A CE QUE un GNS n utilisant que la structure TANT QUE Int ressons nous pr sent au probl me r ciproque comment substituer la structure REPETER JUSQU A CE QUE la structure TANT QUE L exercice 3 3 posait cette question propos de la marche suivre Entrez Entrez TANT QUE les l ves veulent travailler TANT QUE les l ves veulent travailler Donnez 5 minutes de cours Donnez 5 minutes de cours Sortez Sortez La proposition d une solution sous la forme Entrez Entrez REPETER Donnez 5 minutes de cours E Donnez 5 minutes de cours les l ves ne veuillent plus travailler JUSQU A CE QUE les l ves ne veuillent plus Sortez travailler Sortez se heurte aux m mes critiques que celles formul es pr c demment dans le cas o l ex cutant professeur d barque dans une classe o les l ves en ont d j assez avant qu il ne commence son cours la marche suivre ci dessus utilisant le TANT QUE l emp che de d buter le cours alors que celle faisant usage du REPETER l oblige m me dans ce cas donner les 5 premi res minutes avant de sortir On sent bien qu une traduction convenable doit noncer la condition avant que les actions r p ter ne soient propos es On peut par exemple crire Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce q
213. ption de tous les concepts importants nous place en un point de vue d o nous apercevons la fois le chemin suivi et la longue route qu il reste parcourir Jetant un regard en arri re nous discernons des rep res importants faire faire marche LL nn suivre structures de contr le ex cutant ordinateur etc Ce sont ces jalons qui ont scand notre exploration ont orient notre progression et ont pr par la suite du p riple Les quelques deux cents pages de cette introduction se r sument en peu de questions Qu appelle t on probl me en programmation Quels sont les outils de conception et d expression d une marche suivre Quelles sont les caract ristiques de l ordinateur consid r du point de vue de la programmation Je vous sugg re un dernier tout petit exercice c est d apporter vos r ponses personnelles ces trois questions Si les concepts abord s sont simples nous avons cependant mesur que leur mise en oeuvre lorsqu il s agit de faire faire une t che par l ex cutant ordinateur est souvent complexe et difficile Il s agit bien d un mode de pens e nouveau o savoir faire ne suffit plus mais o il faut devenir capable de dire ce savoir faire La complexit n est pas dans la t che accomplir mais dans la prise de conscience de l organisation des constituants l mentaires dont l encha nement conduira sans coup f rir l ach vement du travail C est dire que si
214. que possible pour l tre humain qui serait amen en prendre connaissance Ainsi donc nous serons attentifs non seulement nous soumettre aux capacit s de l ex cutant commander mais aussi tenir compte de ceux qui voudront relire et comprendre la marche suivre r dig e C est au cours de cette tape que nous nous aiderons d une m thode particuli re l approche descendante et structur e Il est trop t t pour d tailler le contenu de cette mani re de CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 14 3 4 Images pour programmer 1 re partie proc der j ajouterai simplement que l informatique a red couvert l une m thode aussi vieille que l humanit elle m me face un probl me on d coupe celui ci en sous probl mes plus ais s traiter puis ces derniers sont leur tour morcel s et ainsi de suite Cette attitude qui partira de la t che dans son int gralit et sa complexit pour descendre pas pas par affinements successifs vers les actions l mentaires que nous pouvons exiger de l ex cutant s incarnera et se formalisera ici tout au long de l apprentissage propos Le sch ma se compl te donc comme suit T che p Faire faire p Ordinateur Description floue T J Quoi faire T Na Description pr cise Comment faire T Strat gies Comment faire faire gt Marche suivre sa Ke
215. r de type entier Signal de type cha ne d au plus 5 caract res Il passera au ROUGE si ATTENTION est lu mais en restant ROUGE seulement si c est STOP qui suit sinon il repasse au VERT Marche suivre Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 109 Place VERT dans le casier Signal LS MotLu ATTENTION Place ROUGE dans Signal MotLu STOP a a m Place VERT dans Signal a MotLu STOP et Signal ROUGE Affiche Compteur ou sous forme pseudo code Place 0 dans le casier Compteur Place VERT dans le casier Signal REPETER Affiche Donnez un mot Lis et place dans MotLu Place Compteur 1 dans le casier Compteur SI MotLu ATTENTION ALORS Place ROUGE dans Signal SINON SI MotLu STOP ALORS Place VERT dans Signal JUSQU A CE QUE MotLu STOP et Signal ROUGE Affiche Compteur Deuxi me Solution Elle correspond l attitude consistant retenir chaque mot ainsi que le pr c dent tout en les comptant Trois variables seront d s lors n cessaires celle contenant le dernier mot lu celle contenant le pr c dent et celle permettant de compter Liste des variables Dernier de type cha ne d au plus 20 caract res qui contiendra le dernier mot lu AvantDernier de type cha ne d au plus 20 caract res qui contiendra l avant dernier mot Compteur de type entier Marche suivre La seule difficult c est de faire e
216. r savoir o trouver les emplacements n cessaires dans les rayonnages disponibles Mais toute marche suivre commencera toujours par l indication des casiers indispensables Lors de la phase d analyse et de r daction de la marche suivre je ne serai pas encore contraint par les r gles syntaxiques du langage de programmation comme je le serai ensuite dans la phase de codage Comment dire En ce qui concerne les noms des casiers je vais cependant pr parer le terrain en respectant d s pr sent quelques conventions les tiquettes ne contiendront que des lettres majuscules ou minuscules non accentu es des chiffres le symbole de soulignement _ elles commenceront toujours par une lettre Ainsi Somme X AGE _ DU CAPITAINE A12 NomDuClient seront des tiquettes permises mais pas 1A Total Des Cotes NOM DU CLIENT Une fois une tiquette pos e sur un casier elle y restera coll e tout le temps du d roulement de l ex cution de la marche suivre sans jamais pouvoir tre manipul e par l ex cutant C est gr ce ces tiquettes que je pourrai lui d signer l un ou l autre casier 3 Reste dire pr sent quelles sont ces choses qui transiteront l int rieur des casiers ce que l ex cutant va y d poser en un mot ce qu il va manipuler Mais cela nous le savons d j puisque nous avons annonc que nous aurions commander un manipulateur d informations ce qui sera conten
217. r est fort math matique la plupart des gens pensent tort que le mot algorithme entretient d troits rapports avec logarithme Ensuite il laisse davantage dans l ombre me semble t il la n cessit d avoir pr cis l ex cutant On pourrait aussi parler d ensemble de consignes de s rie d indications ou d instructions De toute mani re ce concept de marche suivre sera bient t affin et plus compl tement abord puisque le chapitre 2 tout entier y est consacr Le probl me c est donc d tre capable de morceler une t che complexe si on la compare aux possibilit s de l ex cutant ordinateur en une succession de t ches plus l mentaires dont l ex cutant est capable Il faudra organiser la succession de ces derni res pour que les effectuant dans l ordre indiqu l ex cutant ait finalement accompli la t che complexe initialement propos e Il nous arrive parfois d ex cuter des marches suivre lorsque par exemple nous suivons les indications d une recette de cuisine ou d un guide de tricot C est aussi le cas de l ex cutant musicien face une partition marche suivre Chacun mesure cependant dans ce cas toute la distance entre ce statut d ex cutant et celui du compositeur programmeur dont le r le est de concevoir et d crire les partitions marches suivre Ceci pour insister sur le fait que cette activit r diger une marche suivre est totalement nouvelle et inconnue pour la plupart
218. ract re permettant de voir qu ils sont bien termin s Ces caract res terminateurs peuvent tre l espace la virgule le point virgule le passage la ligne la parenth se les symboles ou tout autre symbole de ponctuation admis par le langage et syntaxiquement permis apr s le mot r serv qu ils cl turent et permettent de reconna tre Ainsi programATTENTION varCompteur sont incorrects puisqu ils ne permettent pas d identifier les mots r serv s De m me program ATTENTION var Compteur ne conviennent pas puisque la virgule et les doubles points ne peuvent figurer ces endroits du programme Lorsque nous en serons la toute derni re tape de la d marche face l ordinateur et en train de lui fournir les textes des programmes que nous aurons con us ces textes devront tre d pouill s de tous les ornements soulign s caract res gras italiques qui figurent dans les textes repris ici Ainsi les mots r serv s ne devront pas tre soulign s Cela ne sera d ailleurs g n ralement pas possible 3 1 1 2 Les identificateurs NomChoisi est le nom que l on d sire donner au programme C est ce que j ai appel un identificateur c est un identificateur qui d signera le programme mais aussi les variables casiers et les proc dures utilis es Un identificateur est une succession de lettres et de chiffres l exclusion de tout autre symbole sauf le caract re d
219. rai simplement qu en Basic les proc dures ne constituent pas v ritablement des annexes au programme principal mais en font partie l instruction d appel de proc dure GOSUB envoie comme le branchement GO TO un autre endroit du programme au d but de la proc dure et une fois les actions command es par celle ci effectu es l ex cutant revient l instruction qui suit imm diatement le GOSUB qui l avait un moment d tourn vers la proc dure Pour faire bref l appel de proc dure en Basic c est un branchement avec m morisation de l endroit d o le saut est fait pour pouvoir y revenir L appel de proc dure est l une des structures les plus importantes en programmation C est elle qui permet d incarner la d marche descendante dont je reparlerai C est aussi l une de celles pour laquelle les d tails techniques variables globales et locales param tres seront les plus difficiles appr hender Je n en dis donc pas plus pour l instant 2 6 Le branchement Il s agit de ce mode d organisation des marches suivre qui brise le d roulement s quentiel en envoyant l ex cutant un autre endroit de la marche suivre C est la structure traduite par l indication ALLEZ EN Le branchement est souvent employ combin l alternative pour prendre la forme SI ALORS ALLEZ EN qu on appelle parfois branchement conditionnel Le branchement a fr quemment t d nonc comme un outil de d
220. ram Mot r serv T Symboles inacceptables D but Comprend une lettre accentu e Un Grand Comporte un espace blanc Age duCapitaine Comporte un passage la ligne Quelques remarques pour terminer C est une excellente habitude de se servir d identificateurs qui disent quelque chose Cela permet souvent une relecture plus ais e des programmes Par ailleurs puisque le compilateur ne fait aucune diff rence entre lettres majuscules et minuscules nous emploierons les unes et les autres au mieux de fa on rendre les programmes le plus lisible possible Enfin comme pour les mots r serv s un identificateur doit tre suivi d au moins un symbole permettant de voir qu il est termin espace passage la ligne point virgule virgule Ga 3 1 2 Partie d clarative Apr s l en t te vient la partie d clarative qui reprend entre autres la liste des variables qui vont tre employ es dans le programme Nous verrons par la suite dans le Tome II que c est ici aussi que seront d clar s les constantes types etc Cette d claration prend par exemple la forme var Nombre X1 X2 integer ToT ue TUMIMCMEUS realy DisMoiOuiOuNon Signe string 80 le mot var annon ant la liste des variables de divers types n tant crit qu une fois J ai retenu pour l instant trois types de variables enti res integer r elles real cha nes de caract res string corr
221. rammer 1 re partie 1 Une constante Par exemple nous crirons Place 15 dans le casier Nombre abr g en Nombre 15 ou Place DUPONT dans le casier CLIENT abr g en CLIENT lt DUPONT Nous pouvons imaginer d s lors que l ex cutant ordinateur dispose d une norme malle informations d o notre demande il sort l information souhait e pour la d poser dans le casier indiqu Dans le premier cas il en sort le nombre entier 15 et le place dans le casier Nombre dans le second c est la cha ne de caract res DUPONT qui en est sortie pour tre plac e dans le casier CLIENT En tout cas chaque fois l information qui r sidait jusque l dans le casier qu il remplit est perdue La nouvelle information que nous demandons d y placer remplace la pr c dente un casier ne contenant jamais qu une information la fois Je suppose que personne ne croit r ellement que quelque part sont stock es toutes les constantes possibles a ferait un fameux tas En r alit les constantes cit es dans la marche suivre et celles l seulement sont aussi comme tout le reste install es dans les cellules de la m moire centrale Mais dans la m taphore mise en place tout se passe comme si les constantes taient tir es d une grande malle informations Enfin il faut videmment que le type du casier que nous voulons faire remplir soit compatible avec l information que nous demandons d y placer Les
222. re d un point de vue algorithmique Cedic Nathan Paris 1979 GERBIER A Mes premi res constructions de programmes Lecture Notes in Computer Science Springer Verlag New York 1977 GOLDSCHLAGER L LISTER A Informatique et algorithmique InterEditions Paris 1986 GRAM A Raisonner pour programmer Dunod Paris 1986 GREGOIRE Cours d Informatique Programmation Tome 1 E S I Paris 1983 GREGOIRE Cours d Informatique Programmation Tome 2 E S I Paris 1984 GRIBAUMONT A LATOUCHE G ROGGEMAN V Algorithmes Programmes et Langage Pascal A de Boeck Bruxelles 1984 JAMES M Mieux programmer Belin Paris 1985 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 161 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 JAMES M Elegant Programming Computing Today Ao t 1982 pp 24 37 KNUTH D E The art of computer programming Vol 1 Fundamental algorithms Addison Wesley 1973 KNUTH D E The art of computer programming Vol 2 seminumerical algorithms Addison Wesley 1981 KNUTH D E The art of computer programming Vol 3 sorting and searching Addition Wesley 1973 LAURENT J P Intiation l analyse et la programmation Dunod Paris 1982 LAURENT J P AYEZ J Exercices comment s d Analyse et de Programmation Dunod Paris 1985 L
223. resterait traduire tout ceci dans le langage compromis compr hensible par l ordinateur Nous r serverons au chapitre suivant la r alisation de cette tape On le verra l essentiel est pr sent termin Nous disposons de la marche suivre qui va permettre l ex cutant d effectuer la t che d crite notre place Et il ne nous reste plus qu passer la t che suivante 1 2 Le tour de main de la variable signal 1 2 1 Enonc Quoi faire Faire lire successivement des mots arr ter la lecture de STOP condition que ATTENTION ait t fourni n importe quand auparavant donner alors le nombre de mots lus au total On le voit nouveau cette t che est particuli rement simple et peu int ressante Le probl me de programmation auquel elle conduira sera moins simple et je l esp re plus int ressant Cet nonc comporte en tout cas un terme inad quat on y parle de lire des mots Ce que l utilisateur fournira chaque fois c est bien entendu une cha ne de caract res qu il s agisse vraiment d un mot ou d une succession insens e de caract res Ce qui devra provoquer l arr t c est la cha ne STOP crite en majuscules et sans espace suppl mentaire pour autant que de mani re tout aussi formelle ATTENTION ait t fourni auparavant Ainsi donc Attention et STOP c est fini ou ou ATTENTION stop ne conviennent pas Ce qu il faut tester c est la r cepti
224. rn serait CSC writeln Je vais lancer pour vous un d en arr tant writeln au troisi me 6 obtenu eins Cr D s lors apr s avoir effac l cran clrscr l ex cutant y afficherait les deux lignes de message exig es puis imm diatement apr s effacerait de nouveau faisant aussit t dispara tre les deux lignes qu il venait d afficher Et comme il est heureusement en g n ral malheureusement ici fort rapide l utilisateur n aurait absolument pas eu le temps de lire mon message Je commande donc gr ce delay l ex cutant de rester un moment ne rien faire avant d effacer moment pendant lequel l utilisateur aura le loisir de lire les deux lignes de pr sentation de l objectif du programme puis les choses reprendront leur cours Cette instruction n existe plus dans les impl mentations plus r centes de Pascal sous Windows CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 140 Images pour programmer 1 re partie Il s agit r ellement cette fois d une instruction d action l mentaire nouvelle Elle ne figurait pas au r pertoire de l ex cutant tel qu il avait t d crit dans le chapitre trois J ai donc menti par omission Deux remarques ce propos d abord cette action nouvelle ne change pas norm ment le portrait de l ex cutant gestionnaire de casiers avec sa porte sa fen tre et les trois actions dont il tait capable ensuite cette omission volontaire est la premi re d u
225. rogrammation Constatation n 1 Pendant les ann es d closion de la micro informatique grosso modo de la fin de la d cennie 70 au milieu des ann es 80 la seule chose amusante que l on pouvait faire avec un ordinateur et m me souvent la seule chose possible c tait de le programmer Entendez de lui fournir je n ai pas crit de concevoir l un ou l autre programme en Basic puis de s atteler au jeu des corrections successives qui peu peu allaient parfois conduire la satisfaction de lui voir faire le trac d un histogramme ou la conjugaison d un verbe r gulier Et c est vrai qu il y avait bien des aspects ludiques dans cette traque incessante des incoh rences et des erreurs qui jalonnaient ces productions Pour peu on aurait non seulement t fort surpris mais encore quelque peu d u d avoir par m garde sans doute crit un programme qui non seulement marchait du premier coup mais encore fournissait les r sultats escompt s On tait alors priv de ce subtil plaisir de la chasse aux bugs et de la mise au point par essais et erreurs L utilit effective de ces r alisations tait le plus souvent al atoire Heureusement ce n tait pas parce que cela allait tre utile qu on crivait ces programmes mais simplement parce que c tait amusant L volution de la micro informatique qui s est professionnalis e fournit aujourd hui travers une multitude de progiciels de nouvelles mani res de
226. ront des probl mes lors du codage des marches suivre en Basic tape du Comment dire Je ne m tendrai pas sur les probl mes soulev s par les structures permises par Basic d une part l volution de ce langage comme d autres l a conduit adopter des structures de contr le plus volu es qui l am nent ressembler de ce point de vue Pascal d autre part beaucoup de programmeurs ont d laiss ces versions pauvres et anciennes de Basic au profit de langages plus riches De toute mani re le lecteur int ress par la traduction d une analyse structur e dans un langage qui ne l est pas pourra consulter 28 En r sum pour l alternative Pseudo Code GNS Pascal condition SI condition ALORS IF condition THEN A A SINON ELSE B B suite suite ou ou ou CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau Images pour programmer 1 re partie suite ou vai condition suite ou SI condition ALORS condition IF condition THEN A A suite suite Organigramme Basic T condition _ Fax LLO Suite 100 TE condition THEN A 2 4 La r p tition J ai mis en vidence pr c demment les deux formes REPETER JUSQU A CE QUE et TANT QUE sous lesquelles se traduira la r p tition Ici aussi la correspondance entre le texte de la marche suivre et son ex cution est bris e Ainsi Ch Duch teau 22 ao t 2002 CeF
227. roposer Entrez p Y Buvez un petit verre Y 7 Vous voyez Sa double A Faux Vrai Y Asseyez vous La caract ristique importante de la structure REPETER JUSQU A CE QUE est bien mise en vidence par ce formalisme dans tous les cas l action ou plus g n ralement le morceau de marche suivre r p ter est effectu e au moins une fois avant que ne soit pos e la question de savoir si cela doit tre repris Ainsi dans l exemple l ex cutant aura dans tous les cas droit un premier verre et c est seulement ensuite qu il trouvera la question lui demandant s il voit double D s lors m me dans l hypoth se o l ex cutant voit double d s son entr e la marche suivre lui commande de prendre tout de m me un verre avant qu il ne s interrompe et s asseye en rencontrant la condition d arr t L exercice 3 3 proposait une marche suivre qui mettait aussi en jeu une structure r p titive mais exprim e gr ce un TANT QUE Entrez Entrez TANT QUE les l ves veulent travailler TANT QUE les l ves veulent travailler Donnez 5 minutes de cours Donnez 5 minutes de cours Remarquons d abord qu ici les actions r p ter sont reprises lorsque la condition nonc e est vraie c est l inverse du REPETER o l on trouve derri re les mots JUSQU A CE QUE la condition qui assure l arr t de la r p tition Ensuite et la traduction sous forme d organigram
228. rs du codage de la marche suivre en Pascal que les contraintes syntaxiques feront leur apparition Nous sacrifierons cependant d s pr sent aux prescriptions grammaticales de Pascal concernant les noms des variables ils ne comporteront que des lettres majuscules ou minuscules mais non accentu es et des chiffres l exclusion de tout autre symbole comme l espace le tiret et d buteront par une lettre C est pour cette raison que je parle ci dessus de NombreFourni et pas de Nombre Fourni ou Nombre Fourni CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 102 Images pour programmer 1 re partie Au del de ces petites contraintes orthographiques le plus important quant au choix des noms de variables c est bien s r d opter pour des termes li s aux informations qui y seront contenues Mieux vaut donc NombreFourni que X N ou Salaire et Compteur que U lou Age On le voit ces casiers correspondent bien aux informations que je devais tout moment garder en t te pour effectuer le travail je retenais casiers chaque donn e un instant NombreFourni le nombre de donn es lues Compteur Il reste seulement pr ciser comment ces casiers seront utilis s en un mot quelle est la Marche suivre Nous allons demander l ex cutant de r p ter essentiellement les m mes actions d afficher la fen tre cran un court message invitant l utilisateur donner un nombre d aller lire ce nombre partir de la p
229. s agit l d une contrainte qui n appara tra vraiment que lors de la traduction en Pascal J en tiens cependant compte d s pr sent pour faciliter ce travail d expression Comment dire On verra dans la suite que cette longueur maximale pr ciser pour les variables de type cha ne de caract res doit tre comprise entre 1 et 255 Ainsi donc je peux pr sent dresser la Liste des variables MotFourni de type cha ne d au plus 20 caract res Lorsque l impl mentation choisie est par exemple Turbo Pascal Version 3 Cette contrainte dispara t d ailleurs dans la version 4 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 105 Compteur de type entier Il reste indiquer comment ces deux casiers seront utilis s en fournissant la Marche suivre Nous allons commander deux r p titions successives des m mes actions lire une donn e pour la d poser dans MotFourni et la compter gr ce au Compteur La premi re r p tition s interrompra lorsque le mot lu sera ATTENTION faisant alors place la r p tition suivante qui s arr tera STOP Il ne restera plus alors qu demander l affichage du contenu du Compteur qu il ne faudra pas oublier d s le d but d initialiser Ceci conduit au GNS suivant Place 0 dans le casier Compteur Place 0 dans le casier Compteur Affiche D n REPETER ERREUR Affiche Donnez un mot Place Compteur 1 dans le casier Compteur Place Compteur
230. s d apprentissage rapide et tels qu on puisse retenir ais ment les commandes les plus fr quentes Comme Charles Duch teau le montre dans ce livre programmer c est commander ou se faire ob ir faire faire une t che par un ex cutant dont on conna t la comp tence Ce qui implique que l on connaisse la marche suivre pour ex cuter cette t che et qu on soit capable de la lui communiquer en anticipant correctement les actions qui devront tre faites Est ce compliqu Est ce un investissement perdu Mais me dira t on car je fais les questions et les r ponses si c tait si facile que cela pourquoi ne programme t on pas davantage Pourquoi les progiciels co tent ils si cher Je ne pr tends pas qu ayant lu ce livre vous serez capable d crire un nouveau traitement de textes Mais vous aurez compris ce qui est en jeu dans la programmation et vous pourrez r diger des applications simples voire utiliser le petit langage de programmation incorpor dans certains progiciels par exemple dans des g rants de bases de donn es CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau Il Images pour programmer l re partie Continuant ce jeu de questions r ponses comment se fait il qu on ait attendu si longtemps pour proposer ces id es simples Parce que la technique ici a pr c d la science Les ordinateurs sont apparus avec leur langage de machine et l on s est d brouill pour s en servir
231. s de terminer la liste des instructions d action l mentaire elles sont donc seulement au nombre de trois L ex cutant ordinateur est capable des trois actions command es par les instructions suivantes 1 Place telle information dans tel casier 2 Lis et place dans tel casier 3 Affiche telles informations Son portrait n est pas pour autant complet J ai quelques reprises signal qu une information pouvait tre d crite comme une expression m lange de constantes de noms de casiers et de quelques symboles ce sont ces derniers dont il faut pr sent parler Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Mais qui est l ex cutant ordinateur 93 3 Il dispose d outils pour manipuler l information Debut Donnee MESSAGE Malle informations Les rayonnages la porte et la fen tre se compl tent d une table de travail sur laquelle sont dispos s quelques outils au nombre desquels une additionneuse une multiplieuse une recolleuse de cha nes de caract res etc Ce sont ces outils qui interviendront dans l valuation des expressions Cette table de travail couverte d outils a bien entendu certains rapports avec le processeur quipant l ordinateur machine Mais les manipulations d informations dont le processeur est capable sont bien moins nombreuses et moins rich
232. s en train d effectuer la t che d crite Autrement dit quelles sont les informations que vous gardez dans un coin de votre m moire pendant que vous coutez la s rie de nombres qu on vous dicte et pendant que vous les comptez Cette r flexion d bouchera dans l tape suivante sur l tablissement de la liste des casiers variables n cessaires l ex cutant ordinateur Nous savons en effet qu il est amn sique et qu tout instant sa seule m moire c est le contenu des casiers que nous aurons choisi de lui faire utiliser Ainsi si l on me dicte des nombres avec comme consigne pr alable de dire l apparition du nombre 0 combien j en ai re u au total il est inutile que j essaye de retenir tous ces nombres Simplement je retiendrai chacun d eux un court instant le temps de le compter et de m apercevoir que c est ou ce n est pas 0 Aux prises avec l ex cution de cette t che je garderais donc en m moire chaque donn e pendant un court instant le d compte des donn es qui voluera au fur et mesure qu elles sont fournies je les compte On pourrait aussi ajouter cette liste le fait suivant c est le nombre 0 qui nous fera arr ter les lectures ceci reste galement pr sent dans notre m moire tout au long du travail Cette connaissance n est cependant pas susceptible d tre modifi e en cours de route et cela la diff rence des diverses donn es et de leur d compte Une telle information co
233. s forme GNS et pseudo code une marche suivre Entrez Entrez TANT QUE les l ves veulent travailler TANT QUE les l ves veulent travailler Donnez 5 minutes de cours Donnez 5 minutes de cours a Exprimez la dans le formalisme des organigrammes b Fournissez sous forme GNS ou pseudo code une marche suivre quivalente conduisant des ex cutions identiques sans employer la structure TANT QUE 4 Vous souhaitez faire marcher jusqu ce qu il touche un mur un ex cutant born qui est seulement capable de faire un pas de s arr ter et de se rendre compte qu il touche oui ou non le mur atteindre a Ecrivez des marches suivre pour cet ex cutant sous forme d organigramme d un programme la Basic d un GNS d un programme la Pascal b Que pensez vous de la solution suivante FAIS TOUT CE QU IL FAUT Comment FAIRE TOUT CE QU IL FAUT POUR POUR ATTEINDRE LE MUR ATTEINDRE LE MUR tu touches le mur V F Arr te Fais un pas FAIS TOUT CE QU IL FAUT POUR ATTEINDRE LE MUR ou sous forme pseudo code CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 52 Images pour programmer 1 re partie E Comment FAIRE TOUT CE QU IL FAUT POUR POUR ATTEINDRE LE MUR ATTEINDRE LE MUR SI tu touches le mur ALORS Arr te SINON Fais un pas FAIS TOUT CE QU IL FAUT POUR ATTEINDRE LE MUR 4 Retour sur les deux formes de structure r p titive
234. s l Pas question donc de commander vide le panier va chercher une pomme de terre au tas ni m me recommence ou arr te de travailler On peut bien entendu employer la possibilit offerte par la structure d appel de proc dure en laissant figurer dans la marche suivre une instruction complexe condition qu on puisse la d cortiquer en termes d instructions l mentaires dans une annexe explicative 6 1 2 Les conditions que l ex cutant peut tester On le sait ces conditions figurent au sein des structures alternatives et r p titives derri re les mots SI JUSQU A CE QUE ou TANT QUE Elles seront ici au nombre de deux la marmite est remplie le panier est vide On pourra donc faire figurer dans la marche suivre les indications correspondant par exemple SI le panier est vide ALORS TANT QUE la marmite est remplie Il est de plus permis de former des conditions plus complexes en non ant le contraire des deux conditions ci dessus en les liant par les mots ET et OU On se permettra donc d crire SI la marmite n est pas remplie ET le panier est vide ALORS TANT QUE le panier n est pas vide Le but est videmment de fournir au robot la marche suivre sous forme GNS ou pseudo code qui va lui permettre de peler la quantit de pommes de terre suffisante pour remplir la marmite J ajoute que Il ne s arr tera qu arriv au terme du texte de la marche suivre tout en
235. s num ros entre parenth ses droite ne font pas partie du programme CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 122 Images pour programmer 1 re partie je ne suis pas un fanatique de grammaire 4 Vient ensuite le corps du programme crit entre les mots begin et end ce dernier tant suivi du point final Ce corps traduit la marche suivre telle qu elle est pr sent e dans le GNS 5 Compteur 0 L instruction d affectation est traduite par le symbole le nom de la variable remplir est crit gauche l information y placer figurant droite 6 repeat until NombreFourni 0 La structure de r p tition REPETER JUSQU A CE QUE est traduite par repeat liste d instructions until 7 readln NombreFourni L instruction de lecture Lis et place dans est traduite par readin suivi par le nom de la variable o d poser l information lue Ce nom de variable doit tre crit entre parenth ses 8 writeln Donnez un nombre writeln Compteur L instruction d affichage Affiche est traduite par writeln suivi par l information ou on le verra la liste des informations afficher plac e entre parenth ses 9 J y reviendrai en d tail dans la suite mais d s pr sent il faut remarquer que le symbole qui permet de s parer les diverses instructions Pascal est le point virgule Les passages la ligne sont syntaxiquement sans importance en g n ra
236. s seront effectu es Il faut en quelque sorte prendre le train en marche On suppose pour crire le corps de la boucle que les actions sur lesquelles porte la r p tition ont d j t effectu es quelques fois et l on crit ce que sera ce corps lors d une quelconque des r p titions C est ainsi que dans le texte ci dessus on parle de mot nouveau supposant d s lors qu il s en est d j pr sent et donc que les actions r p ter l ont d j t quelques fois On s int resse ensuite la condition d arr t de la boucle et aux actions qui doivent pr parer la r p tition initialisations En d autres termes on crira les actions r p ter au temps pr sent tout en se disant que ces actions qu on d crit ont d j t r alis es dans le pass et qu elles se poursuivront dans le futur jusqu ce que la condition d arr t en stoppe la reprise Cette r p tition s interrompra lorsque le dernier mot lu contenu dans MotFourni sera STOP et que Signal sera ROUGE Comme toujours il faudra commencer par les initialisations indispensables Compteur doit primitivement receler 0 et Signal contenir VERT Nous sommes en mesure d s lors de r diger la marche suivre correspondante Place 0 dans le casier Compteur Place 0 dans le casier Compteur Place VERT dans le casier Signal Place VERT dans le casier Signal Lis et place dans MotFourni REPETER Place Compteur 1 dans le casier Compteur Lis
237. scules condition writeln que vous m ayez fourni auparavant ATTENTION Compteur 0 repeat Me Donnez ONAMO CN readln MotFourni Compteur Compteur 1 until MotFourni ATTENTION repeat Me DonnerAUnaMmOrs CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 128 Images pour programmer 1 re partie readin MotFourni CompeeurNCompeeUurRl Diner Moro MIE TOI NE writeln Vous m avez donn en tout Compteur mots end Cette derni re version reste habiller en tant attentif par des commentaires son lecteur potentiel program ATTENTION x Il fait lire des mots jusqu ce que STOP soit fourni condition que ATTENTION ait t fourni auparavant et fait compter les mots lus On y utilise une double r p tition var MOTO 3 Svraac 20 s qui contiendra chacun des mots lus Compteur integer pour les compter begin writeln Vous allez me fournir successivement des mots writeln d au plus 20 lettres en faisant suivre chacun writeln d eux de l appui sur la touche d entr e writeln L arr t se fera STOP en majuscules condition writeln que vous m ayez fourni auparavant ATTENTION Compteur 0 repeat WMebbeNDonneratnemOorn t readiln MotFourni CompeeueENConpeeUrl until MotFourni ATTENTION repeat Weee iDO un mor readin MotFourni ComPreurRNCompeeUurl Diner M
238. sertion voici quelques exemples de t ches que nous connaissons bien pour y tre parfois confront s et qui mettent en oeuvre un traitement formel d informations additionner deux nombres calculer une moyenne chercher le plus grand d une s rie de nombres trier un paquet de cartes num rot es et qui se pr sentent dans le d sordre transcrire en toutes lettres un nombre crit en chiffres compter et annoncer les points au tennis chercher le num ro de t l phone d un abonn conjuguer un verbe r gulier du premier groupe tous les temps de l indicatif lire un texte et fournir la fr quence des divers mots le composant centrer un titre lors de la dactylographie d un document Le premier ensemble de t ches concerne des traitements de nombres et les manipulations de donn es num riques sont par essence formelles Le processus d addition de deux nombres n a que faire du sens qui serait attach aux quantit s additionner 13 12 cela fait toujours 25 quelle que soit la signification associ e ces nombres qu il s agisse de poids de sommes d argent ou d ges L ordinateur manipulateur formel d informations va donc exceller lorsqu il s agira de traiter des donn es num riques Les op rations qu il effectuera ou plut t qu on lui fera effectuer seront d ailleurs similaires celles que nous r alisons propos des nombres les additionner les soustraire les comparer Je ne dis
239. sier Compteur JUSQU A CE QUE Dernier STOP et Dernier STOP et AvantDernier ATTENTION AvantDernier ATTENTION Affiche Compteur Affiche Compteur Malheureusement un d tail rend ce programme incorrect Imaginons un instant que par un improbable et malheureux hasard le casier Dernier contienne avant le d but des op rations le mot ATTENTION et que le tout premier mot fourni par l utilisateur soit STOP L ex cutant va successivement poser les actions suivantes command es par la marche suivre mettre 0 dans Compteur recopier le contenu de Dernier il y tra ne ATTENTION dans AvantDernier qui contiendra alors lui aussi ATTENTION lire le premier mot STOP et le placer dans Dernier augmenter le contenu de Compteur qui passe donc 1 voir si Dernier contient bien STOP c est le cas et AvantDernier contient ATTENTION c est aussi le cas et donc interrompre imm diatement la r p tition afficher 1 contenu de Compteur et arr ter Il est facile de voir qu il faut tout prix viter que Dernier contienne primitivement ATTENTION et prendre la peine de le faire initialiser en y pla ant par exemple BONJOUR Ceci nous enseigne qu il faut obligatoirement tre fort attentif ce probl me d initialisation des casiers Lorsque la premi re manipulation command e propos d un casier consiste en prendre le contenu comme ce serait le cas ici si je n avais pas fait les
240. ssage la ligne Nous ne pouvons donc pas crire writeln Vous allez me fournir des nombres r els en faisant suivre chacun C est pourquoi chaque nouvelle ligne de message demande une nouvelle instruction d affichage d o la multiplication des mots writeln 2 Lorsqu une constante cha ne de caract res qui est toujours enclose entre des apostrophes comporte le caract re apostrophe on est tenu de redoubler celui ci Lors de l affichage il ne sera crit qu une seule fois Attention il ne faut pas confondre l apostrophe redoubl et les guillemets 3 J avais d j dans la version nue du programme fait figurer un affichage sommaire invitant l utilisateur fournir un nombre J ai quelque peu modifi et enjoliv cette instruction essentiellement en rempla ant writeln par write L instruction writeln provoque un passage la ligne la suite des informations affich es L instruction write ne commande pas ce passage la ligne Ainsi pendant l ex cution du programme habill l cran se pr sentera de la fa on suivante Vous allez me fournir des nombres r els en faisant suivre chacun d eux de l appui sur la touche d entr e Vous terminerez la s rie par 0 et je vous dirai alors combien de nombres vous m avez fournis au total CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 124 Images pour programmer 1 re partie Donnez un nombre 12 5 Donnez un nombre 2 Donnez un nombre 0 Nom
241. st faire faire et que le coeur de la d marche l tape centrale c est la conception et la r daction d une marche suivre dans gt p laquelle s exprime ce faire faire Il nous faut donc pr sent d couvrir quels sont les ingr dients d une marche suivre et commencer apprendre comment elle se construit et s crit 1 D couverte des constituants d une marche suivre C est l examen de quelques marches suivre de la vie quotidienne qui nous permettra de cerner quelles en sont les composantes essentielles Et pour commencer 1 1 Les instructions d action l mentaire Oo e O o Effectuer les man uvres dans l ordre indiqu sur le sch ma Appuyer sur l interrupteur POWER pour le r gler sur la position ON Appuyer sur la touche d jection EJ ECT pour ouvrir le compartiment cassette Mettre une cassette en place le c t laissant voir la bande dirig vers le bas et la face enregistrer dirig e vers l ext rieur V rifier si les languettes de protection de la cassette n ont pas t enlev es R gler le s lecteur sur la position correspondant la source employ e Se reporter la page 8 S lecteur de signal d entr e au chapitre Nomenclature des organes et de leurs fonctions R gler les commutateurs NR SYSTEM sur la position du que convient R gler les s lecteurs de bande TAPE SELECT en fonction du type de bande utilis e Voir la page 13 E
242. st pas en r gle ALORS gt Lui faire remplir le formulaire rose B12 SINON D Reprendre la teneur de sa demande sur le formulaire jaune C15 c gt Compl ter le formulaire vert A24 Renvoyer le dossier au bureau central alors le formulaire vert ne devait tre compl t que pour les demandeurs en r gle Ainsi l indentation de parties du texte outre qu elle facilite la lecture est dans certains cas indispensable pour la compr hension de ce qui est demand Certains l vent l ambigu t de mani re diff rente en notant explicitement la fin de la structure alternative par une criture du type SI condition ALORS ou SI condition ALORS A A SINON FIN DU SI B suite FIN DU SI suite Dans ce cas l indentation de certaines parties de la marche suivre n est plus n cessaire pour lever les ambigu t s et son seul objet est d en faciliter la lecture 2 3 2 Repr sentation sous forme de GNS L alternative se repr sente par le sch ma CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 42 Images pour programmer 1 re partie Condition Le bloc not B peut tre vide c est le cas o il n y a pas de SINON Comme plus haut chacun des blocs not s A ou B est un morceau de marche suivre sous forme GNS qui peut comporter une ou plusieurs instructions d action l mentaire organis es par n importe quelle structure de contr le 2 3 3 Repr sentation en Pascal L alternative se traduira
243. structure de contr le suppl mentaire exprim e dans des phrases comme Continuer actionner le d marreur si des cr pitements irr guliers d allumage se produisent jusqu ce que le moteur tourne Maintenir la cl de contact dans cette position jusqu ce que le t moin de pr chauffage s teigne Le terme important ici c est jusqu ce que qui commande en quelque sorte la poursuite ou la r p tition d une action ou d un groupe d actions Il s agit l de la structure que nous appellerons la r p tition C est cette m me structure r p titive qu on d tecte dans la marche suivre suivante Serrer fond la vis de r glage A Puis la redesserrer d un tour et demi Mettre le moteur en marche et le laisser tourner pendant quelques minutes pour le r chauffer Le moteur tournant la vitesse normale serrer avec pr caution la vis de r glage jusqu ce que le moteur ralentisse m lange de carburant pauvre Desserrer ensuite doucement la vis de r glage au del du point o le moteur tourne le plus r guli rement jusqu ce que le moteur commence tourner irr guli rement m lange de carburant riche Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 31 Serrer doucement la vis de r glage jusqu ce que le moteur tourne r guli rement R gler la manette des gaz au ralenti La marche au ralenti se r gle au moyen de la vis B Le moteur doit
244. structures de contr le d couvertes en indiquant comment chacune s exprime dans ces divers modes de repr sentation 2 2 La s quence C est le mode d organisation le plus simple utiliser On assiste lorsqu elle est seule pr sente une correspondance parfaite entre la suite des instructions d action l mentaire constituant la marche suivre et la succession des actions pos es lors de l ex cution Ainsi en reprenant les extraits de la marche suivre n 1 Texte de la marche suivre Lors de l ex cution L ex cutant Appuyer sur l interrupteur POWER pour le r gler appuie sur l interrupteur POWER pour le sur la position ON r gler sur la position ON puis Appuyer sur la touche d jection EJECT pour appuie sur la touche d jection EJECT pour ouvrir le compartiment cassette ouvrir le compartiment cassette puis Mettre une cassette en place le c t laissant voir met une cassette en place la bande dirig vers le bas et la face enregistrer dirig e vers l ext rieur En g n ral donc Texte de la marche suivre Lors de l ex cution Instruction d action 1 Action l puis Instruction d action 2 Action 2 puis Instruction d action 3 Action 3 puis 2 2 1 Repr sentation sous forme de pseudo code On se contentera de marquer la s quence par un passage la ligne pour d boucher sur une criture du type Fais ceci Fais cela 2 2 2 Repr sentation sous forme GNS La s quence sera marqu
245. t du moteur si la temp rature est inf rieure 0 C Si le moteur ne d marre pas pr chauffer encore une fois Dans chaque cas l action ou le groupe d actions command e est conditionn e par la r alisation d un v nement Nous retrouvons cette m me structure dans le troisi me exemple D brancher le c ble n gatif de la batterie v rifier l tat de la c ramique des bougies V rifier galement les c bles haute tension des bougies de la bobine ainsi que les jonctions chaque extr mit des c bles haute tension V rifier enfin le dessus de la bobine et de l allumeur Si n cessaire nettoyer ces pi ces l aide d un chiffon propre Lorsqu on intervient sur des bougies les manipuler avec soin afin d viter de d t riorer l isolant c ramique Mesurer l cartement des lectrodes utiliser une jauge d paisseur ventuellement r gler cet cartement en cintrant la demande l lectrode de masse voir types de bougies et cartement des lectrodes au chapitre CARACTERISTIQUES TECHNIQUES du d pliant Sur les moteurs 1 1 1 3 et 1 6 litres C V H utiliser uniquement des bougies d allumage MOTORCRAFT Super avec lectrode centrale me laiton Super AGP 22 C ou Super AGPR 12C ainsi que sur les moteurs V6 2 0 2 3 litres Super AGR 22 C Rechercher ventuellement la pr sence de f lures tr s fines ou autres d t riorations le cas ch ant faire remplacer les pi ces d fectueuses par v
246. t les images de la droite du moins permettront elles de rendre plus significatifs les concepts de la programmation Le lecteur apprendra plus tard d passer ces images Chaque chose en son temps Ce livre pr c de les ouvrages classiques de programmation Lisez le c est facile et cela devrait vous rapporter de pouvoir d marrer en programmation et ventuellement de vous lancer dans la lecture d ouvrages plus techniques pour devenir expert en la mati re Jacques ARSAC Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 AVANT PROPOS Voici non seulement encore un nouvel ouvrage qui traite d algorithmique et de programmation mais pire ce doit tre la ni me fois que l auteur dans son avant propos tente de justifier pourquoi un nouvel ouvrage sur la programmation Je vais donc tre forc de tenir compte non seulement du fait que je suis l un des derniers sur le plan chronologique des quelques centaines d auteurs d ouvrages consacr s la programmation mais encore que quelques uns de mes devanciers ont consacr une nergie et un talent non n gligeables expliquer dans l avant propos de leur ouvrage pourquoi ils avaient cru bon d enrichir la liste d j fort longue des livres traitant de ce sujet Cette t che est particuli rement p rilleuse tant donn que de multiples facteurs que je vais voquer semblent montrer que le moment est assez mal choisi de sortir un ouvrage suppl mentaire consacr la p
247. tages successifs d y placer 0 Cette tape de r flexion propos du contenu pr alable des casiers est indispensable c est l initialisation des casiers Ici le contenu primitif de Compteur doit tre 0 celui de NombreFourni est sans importance puisque la premi re chose que je commande de faire propos de ce casier c est d y placer une information lue au clavier D s lors la marche suivre compl te et conforme aux sp cifications est l Du point de vue de l ex cutant il s agit bien s r d une information constante de type cha ne de caract res 2 Je rappelle une derni re fois que l action d sign e sous le nom de lecture est celle o l ex cutant vient chercher une information la porte clavier Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Premier tours de main 103 Place 0 dans le casier Compteur Place 0 dans le casier Compteur Affiche Donnez un nombre REPETER Lis et place dans NombreFourni Affiche Donnez un nombre Place Compteur 1 dans le casier Compteur UE PER PRE ARE NY p p Place Compteur 1 dans le casier Compteur NombreFourni 0 JUSQU A CE QUE NombreFourni 0 Affiche Compteur Affiche Compteur Remarques Les outils de la table de travail mis en oeuvre dans ce probl me sont qui fournit la somme de deux nombres qui permet la comparaison de deux informations Disposant pr sent de la liste des casiers n cessaires et de la marche suivre correspondante il
248. tant Au moment o nous commencerons le faire agir par le biais du texte de la marche suivre proprement dit ces tiquettes qui ne sont pas des cha nes de caract res seront d j install es Jamais il n aura les manipuler La m taphore employ e induit penser que seules les informations manipul es r sideront dans les casiers de la m moire Apparemment quand l ex cutant commence agir sous l emprise de la marche suivre les tiquettes n cessaires sont d j coll es sur les casiers qui seront utilis s et il tient en main cette marche suivre Si cette image convient quand il s agit de d peindre les caract ristiques de l ex cutant ordinateur l objectif tant d apprendre programmer elle est videmment compl tement fausse si l on s int resse ce qui se passe vraiment au niveau de l ordinateur machine On a vu que non seulement les informations manipul es sont stock es en m moire centrale mais encore la marche suivre elle m me et aussi les tiquettes de ce que nous appelons les casiers En r alit tout ce qui est n cessaire l ordinateur pour mener bien la t che souhait e r side dans les cellules de la m moire centrale Rappelons aussi que la phase pendant laquelle l ordinateur ex cute r ellement le programme que nous avons con u a t pr par e par l tape d dition o l ordinateur gouvern par le programme diteur se transforme en super machine crire Puis
249. te syntaxique Exemple Ceci est un commentaire J y cris ce que je veux comme je veux 3 3 Quelques outils disponibles Nous avons d j rencontr un certain nombre d outils de traitement des informations l occasion de la solution des probl mes 3 3 1 Les op rations arithm tiques Certains outils s appliquent des nombres et fournissent comme r sultat un nombre Ce sont les op rations habituelles pour l addition pour la soustraction pour la multiplication pour la division Lorsque les op randes les nombres sur lesquels porte l op ration sont de type entier le r sultat est aussi de type entier sauf pour la division o le r sultat est toujours de type r el Lorsqu une des op randes ou les deux sont de type r el le r sultat est de type r el A ces op rations il faut en ajouter deux qui concernent sp cifiquement le type entier et que nous n avons pas eu l occasion d employer jusqu pr sent div pour la division enti re mod pour le reste d une division enti re div d signe le quotient de la division enti re Ainsi 7 div 3 vaut 2 reste 1 15 div 4 vaut 3 reste 3 mod d signe le reste de la division enti re Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 155 7 mod 3 vaut 1 15 mod 4 vaut 3 Les op randes doivent tre de type entier et le r sultat l est galement La priorit des op rateurs est celle habituelle en math matique
250. teger Signal string 5 1 begin Compteur 0 Signal VER repeat readin MotFourni Compteur succ Compteur 2 L MOLSOUFR EN ATTENTION Chen 3 Signa EURO UGENS un MOER Ouan LE TORN and SG neT ROU CELD 4 writeln Compteur j end Remarques Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Traduction en Pascal 133 1 2 3 4 Signal string 5 La variable Signal n aura contenir que ROUGE ou VERT cha nes d au plus 5 caract res Signal sera donc de type string 5 Compteur succ Compteur Plut t que de d signer par Compteur 1 la valeur suivante prise par le casier Compteur nous avons utilis un outil diff rent de l habituelle addition C est l outil succ successeur de qui permet de passer d un entier son successeur ce qui revient au m me que de lui ajouter 1 Notons cependant que l emploi de cet outil n aurait aucun sens pour des informations de type real ou string Que serait en effet le successeur de 2 23 ou de Bonjour Il s agit donc d un outil suppl mentaire disponible sur la table de travail de l ex cutant c t de beaucoup d autres qui n auront pas t pr sent s dans ces pages On devine ais ment que tout c t de l outil succ on trouvera un outil pred D NMOLNO CE CNE PT ENTIONMRERER SHOT ROUGER La structure alternative SI ALORS se traduit en Pascal par if then La syntaxe en est la
251. teler t ches de calcul de tri de grosses quantit s d informations Cf ci dessus Mais l ordinateur ne r sout pas ces t ches Il les effectue vite et bien c est tout Par ailleurs il est vident que lorsque la t che consiste gagner aux checs ou m me simplement gagner au tic tac toe nous sommes pr ts alors parler de probl me la plupart d entre nous sont d ailleurs incapables de r soudre ces probl mes de gagner coup s r Que dire videmment dans ce cas du probl me de faire gagner l ordinateur aux checs Si j insiste tellement ici sur cette distinction entre t che et probl me c est que j ai encore en m moire les yeux tonn s et le regard incr dule de mes premiers l ves et de mes coll gues non informaticiens qui je parlais du probl me sic de conjuguer l indicatif pr sent un verbe r gulier du premier groupe ou du probl me plus compliqu resic de compter tous les mots comportant une lettre redoubl e dans un texte 2 2 Programmer c est faire faire Et pourtant chacune des t ches voqu es ci dessus va tout de m me donner lieu un r el probl me lorsque la programmation va s en m ler En effet il s agira chaque fois pour le programmeur non d ex cuter ces t ches lui m me ce qui le plus souvent n aurait aucun int r t et serait affreusement fastidieux mais de les faire ex cuter C est cela programmer Il s agit non d tre capable
252. terviennent Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 55 Entrez Entrez Buvez un petit verre vous ne voyez pas double Buvez un petit verre Asseyez vous vous voyiez double Asseyez vous ou Entrez Entrez REPETER gt TANT QUE vous ne voyez pas double Buvez un petit verre Buvez un petit verre JUSQU A CE QUE vous voyiez double Asseyez vous Asseyez vous Le seul changement perceptible est la n gation de la condition puisque derri re JUSQU A CE QUE on nonce la condition qui provoque l arr t et derri re TANT QUE celle qui assure la reprise de la r p tition Cette solution n est malheureusement pas correcte les deux marches suivre ci dessus ne sont pas quivalentes car elles ne conduisent pas des ex cutions identiques dans tous les cas En effet dans le cas o d s son entr e l ex cutant voit d j double la premi re qui met en jeu la structure REPETER l oblige tout de m me prendre un verre la seconde exprim e gr ce un TANT QUE va le conduire s apercevoir d abord qu il voit d j double et donc ne lui permet pas de boire le moindre verre Si l on veut une expression gr ce la structure TANT QUE qui soit dans tous les cas identique la premi re il faut crire Entrez Buvez un petit verre Buvez un petit verre o vous ne voyez pas double Entrez Buvez un petit verre Asseyez vous vous voy
253. tre humain Les possibilit s de ce robot seront d finies sans ambigu t et d s lors le caract re l mentaire des instructions d action sera clairement pr cis et non comme ci dessus laiss l appr ciation du r dacteur de la marche suivre La connaissance face une t che du r pertoire des actions l mentaires de l ex cutant qui l on veut faire faire cette t che est indispensable on ne peut pas donner des ordres quelqu un si l on ne sait pas ce qu il est capable de comprendre et de faire Cependant la seule connaissance du lexique instructions actions l mentaires on lui dit il fait Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 25 si elle est indispensable est aussi on le verra bien insuffisante pour concevoir et organiser les marches suivre qui int greront ces instructions 1 2 Les structures de contr le 1 2 1 La s quence Nous venons de d couvrir le premier des ingr dients d une marche suivre ce sont les instructions d action l mentaire La donn e dans le d sordre de ces instructions d action l mentaire est videmment insuffisante Si disposant de la recette marche suivre qui permet de confectionner la blanquette de veau j en d coupe soigneusement le texte pour isoler chaque instruction sur une petite bandelette de papier que je m lange soigneusement tous ces bouts de papier et que je passe le tas obten
254. trouveront ventuellement modifi es A la fin il suffira de diviser la somme obtenue au fur et mesure par 100 pour obtenir la moyenne 1 5 3 Ainsi donc je retiendrais chaque donn e le temps de la traiter le d compte des donn es re ues la somme des donn es obtenues la plus petite des donn es la plus grande Comment faire faire Nous pouvons imm diatement dresser la Liste des variables Donnee de type r el qui contiendra chaque donn e lue Compteur de type entier qui permettra de les compter Somme de type r el qui accueillera la somme des donn es PlusPetite de type r el qui contiendra la plus petite donn e PlusGrande de type r el qui contiendra la plus grande Marche suivre Le c ur de celle ci sera nouveau constitu d une r p tition qui comportera la lecture d une donn e qui sera d pos e dans Donnee l augmentation du casier Compteur permettant de les compter l ajout de la Donnee la Somme la comparaison de Donnee PlusPetite et ventuellement PlusGrande et la mise jour ventuelle d un de ces casiers Cette r p tition s interrompra lorsque le Compteur signalera que la 100 me donn e a t acquise et trait e Ceci conduit au GNS CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 114 Images pour programmer 1 re partie Affiche Donn e Lis et place dans Donnee Place Compteur 1 dans Compteur Place Somme Donnee
255. ttes 73 7 2 V rification de marches suivre 74 7 2 1 Le robot trieur de pi ces de monnaie 74 7 2 2 Le robot transporteur de sable 75 7 2 3 Le robot compteur de gouttes 76 7 24 Le robot peleur de pommes de terre 77 MAIS QUI EST L EXECUTANT ORDINATEUR 79 1 C est un gestionnaire de casiers 79 1 1 Les caract ristiques d un casier 60 1 2 Les informations manipul es 61 1 2 1 Les nombres 82 1 2 2 Les cha nes de caract res 82 1 3 Remarques 82 1 4 L instruction d affectation 85 2 Il peut communiquer avec l ext rieur 88 2 1 L instruction d entr e 89 2 2 L instruction d affichage 90 3 Il dispose d outils pour manipuler l information 93 Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Avant propos 4 Il comprend les structures de contr le 5 Exercices TOURS DE MAIN 1 Traitement des exemples 1 1 1 2 1 3 1 4 ES Le tour de main du compteur 1 1 1 Enonc Quoi faire 1 1 2 Comment faire 1 1 3 Comment faire faire Le tour de main de la variable signal 1 2 1 Enonc Quoi faire 1 2 2 Comment faire 1 2 3 Comment faire faire Le dernier et le pr c dent 1 3 1 Enonc Quoi faire 1 3 2 Comment faire 1 3 3 Comment faire faire Compteur et compteur 1 4 1 Enonc Quoi faire 1 42 Comment faire 1 43 Comment faire faire Enfin une t che utile 1 5 1 Enonc Quoi faire 1 5 2 Comment faire 1 5 3 Comment faire faire 2 Exercices 2 1 Conception d algor
256. u l ex cutant cuisinier chacun sait que le r sultat risque bien d tre fort loign de la vraie blanquette de veau Et pourtant toutes les instructions sont pr sentes mais dans le d sordre Les diverses instructions doivent tre organis es pour concourir au r sultat souhait Et la premi re mani re d organiser donc de contr ler le d roulement des actions command es est bien traduite dans la recommandation initiale de l exemple Effectuer les man uvres dans l ordre indiqu sur le sch ma renforc e par la num rotation qui accompagne le texte de la marche suivre Cette premi re structure organisatrice est tellement naturelle qu elle passe presque inaper ue le plus souvent elle n est pas explicitement rappel e Nous l appellerons la s quence Simplement les actions command es se succ deront dans l ordre o les instructions correspondantes sont crites 1 Cette premi re mani re de marier entre elles les actions l mentaires est aussi on le verra la plus simple ma triser Lorsqu elle est seule pr sente le probl me c est seulement de d cortiquer la t che l action complexe en la suite la s quence des actions l mentaires dont la succession quivaudra l accomplissement de la t che tout enti re 2 Ilest important de bien percevoir la diff rence de statut entre l indication Effectuer les man uvres dans l ordre indiqu sur le sch ma et une instruction d action c
257. u dans ces casiers c est donc de l information 1 2 Les informations manipul es D abord il faut bien s entendre sur le mot information Dans son acception habituelle ce terme comporte g n ralement deux facettes la forme sous laquelle se pr sente l information le ou les signes caract res dessins qui codent l information et en constituent l aspect formel Cf Chapitrel le sens dont est porteur pour l tre humain cet assemblage de signes Lorsque je parlerai ici d information il s agira seulement des aspects formels sans r f rence la signification qui y est attach e On appelle parfois donn e ce support formel de l information Ainsi 112 est une donn e un nombre entier qui peut subir des manipulations formelles on peut doubler ce nombre le diviser par deux lui en ajouter un second Ce nombre ne devient une information que si l tre humain qui en prend connaissance sait que c est un solde d biteur le poids d un patient ou le nombre de pages d un syllabus L ordinateur manipule des donn es c est l homme qui en fait des informations CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 82 Images pour programmer 1 re partie Plut t que d essayer d apporter une d finition suppl mentaire du concept information je pr f re indiquer quelles seront celles manipul es par l ex cutant ordinateur 1 2 1 Les nombres Il traitera videmment des nombres C est bien le moins pour une machine qu
258. ue c est 57 Entrez Entrez es l ves veulent A SI les l ves veulent travailler ALORS x REPETER Donnez 5 minutes de cours JUSQU A CE QUE les l ves ne veuillent plus travailler les l ves ne veuillent plus travailler Donnez 5 minutes de cours Sortez qui conduira dans tous les cas une ex cution quivalente celle propos e avec la structure TANT QUE Ainsi donc le GNS peut toujours s exprimer de mani re A A quivalente sous la forme non C Et sous forme pseudo code SI C ALORS TANT QUE C peut toujours s exprimer de mani re REPETER A quivalente sous la forme A JUSQU A CE QUE non C 5 Exercices 1 Ecrire sous forme GNS chacune des marches suivre ci dessous Dans le cas o des structures r p titives sont pr sentes r crire le GNS en faisant usage de l autre structure r p titive CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 58 Images pour programmer 1 re partie a Asseyez vous au bureau TANT QUE le tas de fiches traiter n est pas vide Prenez la fiche au dessus du tas SI elle est jaune ALORS Placez la gauche du bureau SINON Placez la droite Allez prendre une tasse de caf b Lisez le premier nom de la liste TANT QUE le nom n est pas DUPONT et qu il reste des noms lire Lisez le nom SI le nom est DUPONT ALORS prenez note du n de t l phone SINON passez au nom suivant sur la liste SI vous avez trouv DUPONT ALORS
259. ue ce n est pas le programme d sir appuyez sur la touche STOP 2 Assurez vous que la touche PLAY de l unit est encore enfonc e Tapez LOAD et appuyez sur RETURN 4 Surveillez le nom du programme sur le point d tre charg Si c est bon attendez la fin du chargement et continuez comme dans les exemples pr c dents 5 Sice n esttoujours pas votre programme retournez la premi re tape de cette s rie de directives et r p tez les jusqu ce que l ordinateur trouve le programme voulu Marche suivre n 5 Elle se traduit travers les mots Retournez la premi re tape On la trouve encore dans ce magnifique exemple de marche suivre que constitue la partition suivante Ch Duch teau 22 ao t 2002 CeFIS FUNDP 2002 Une marche suivre qu est ce que c est 33 FLAUTO ILe Menuet IT Menuet d c Marche suivre n 6 avec le symbole qui renvoie soit au d but de la partition soit au symbole jumeau Il s agit l chaque fois de l indication explicite de poursuivre les actions command es non pas avec celle qui suit dans le texte ou dans la partition mais en se rendant ailleurs dans la marche suivre C est en quelque sorte la fa on la plus brutale de rompre le pur d roulement s quentiel on envoie l ex cutant un endroit de la marche suivre pr cis o il poursuit les actions command es C est la structure que nous r sumerons par A
260. uivant sampte gouttes est vid nn HS Choisis le premier verre FAIS TOUT CE QU IL FAUT POUR REMPLIR LE VERRE CHOISI tous les verres ne sont pas remplis Passe au suivant FAIS TOUT CE QU IL FAUT POUR REMPLIR LE VERRE CHOISI Choisis le premier verre FAIS TOUT CE QU IL FAUT POUR REMPLIR LE VERRE CHOISI TANT QUE tous les verres ne sont pas remplis Passe au suivant FAIS TOUT CE QU IL FAUT POUR REMPLIR LE VERRE CHOISI Ch Duch teau 22 ao t 2002 Images pour programmer l re partie Choisis le premier verre TANT QUE tous les verres ne sont pas remplis SI le verre choisi n est pas rempli ALORS SI le compte gouttes est vide ALORS Remplis Presse Passe au verre suivant Comment FAIRE TOUT CE QU IL FAUT POUR REMPLIR LE VERRE CHOISI le verre choisi n est pas rempli e compte gouttes est vide Rems fO O oo Comment FAIRE TOUT CE QU IL FAUT POUR REMPLIR LE VERRE CHOISI TANT QUE le verre choisi n est pas rempli SI le compte gouttes est vide ALORS Remplis Presse CeFIS FUNDP 2002 Une marche suivre qu est ce que c est c Choisis le premier verre tous les verres ne sont pas remplis e verre choisi n est pas rempli 2 le compte gouttes Passe au est vide verre suivant Choisis le premier verre tous les verres ne sont pas remplis le compte gouttes est vide eo i e verre choisi n est pas rempli Presse
261. ujourd hui d couvert les multiples progiciels et leurs utilisations D s lors puisqu il n est plus n cessaire de programmer pour utiliser un ordinateur quoi bon encore enseigner la programmation 3 Et de l quelle est encore l utilit d crire des ouvrages consacr s l apprentissage de la programmation R ponse n 1 Ce que je vais tenter de montrer au long de ces pages c est qu il faut bien savoir de quoi l on parle lorsqu on voque la programmation et son apprentissage Si de fait programmer c tait se centrer sur l apprentissage de la syntaxe d un langage de programmation pour fournir l ordinateur sans r elle r flexion pr alable un programme b ti n importe comment alors ce type d activit n aurait absolument pas sa place dans une perspective de formation Heureusement programmer c est bien autre chose que d tre un virtuose du clavier d ordinateur ou incollable sur les finesses grammaticales de Basic LSE ou Pascal Je crois qu une d couverte de quelques uns des outils que l informatique met notre disposition est souhaitable Chacun le sait les qualit s de ces outils sont essentiellement fonctions de la mati re grise ajout e l ordinateur sous la forme des programmes qui vont le faire agir l outil c est toujours le tandem mat riel logiciel ce dernier tant la concr tisation de la cr ativit de la rigueur et de l habilet du programmeur qui en est l auteur Ne plus jeter sur l
262. un instant chaque r sultat du tirage au hasard Compteur de type entier pour compter les lancers il s augmentera de 1 chaque nouveau tirage au hasard CompteurDeSix de type entier pour compter les six qui se pr senteront On remarquera que pour pr parer la traduction en Pascal j ai d s pr sent choisi de noter Resultat sans accent la variable comportant les r sultats des tirages En effet les noms de Variables ne pourront en Pascal comporter de lettres accentu es Marche suivre Son criture est imm diate Je vais nouveau commander une r p tition au cours de laquelle un tirage sera effectu affich compt et comptabilis dans CompteurDesSix s il s agit d un 6 Cette r p tition s arr tera lorsque le CompteurDesSix contiendra 3 Place 0 dans le casier Compteur Place 0 dans le casier Compteur Place 0 dans le casier CompteurDeSix Place 0 dans le casier CompteurDesix Place un nombre au hasard entre 1 et 6 dans Resultat REPETER Place un nombre au hasard entre 1 et Affiche Resultat 6 dans Resultat Place Compteur 1 dans le casier Compteur Affiche Resultat Resultat 6 Place Compteur 1 dans le casier SI Resultat 6 ALORS Place CompteurDeSix 1 dans CompteurDeSix o Place CompteurDeSix 1 dans CompteurDesSix 3 JUSQU A CE QUE CompteurDesSix 3 CompteurDeSix Affiche Compteur Affiche Compteur 1 5 Enfin une t che utile 1 5 1 Enonc Quoi faire Faire
263. ussi inad quat de le qualifier d intelligent que de parler d une lessiveuse capricieuse ou d une b che courageuse Le probl me en programmation ce sera donc face d une part une t che m me nous apparaissant comme simple et face d autre part un ex cutant aux capacit s limit es l ordinateur d expliquer ce dernier comment effectuer cette t che notre place Le probl me ne r side pas en g n ral dans la t che qui sert de point de d part mais dans le fait que nous devrons la faire effectuer par un ex cutant qui initialement n en est pas capable La difficult est donc de lui fournir les indications n cessaires pour que s y conformant il paraisse capable de mener cette t che bien Programmer est donc un verbe rapprocher plut t d expliquer de d cortiquer de d plier d plier ex pliquer Deuxi me difficult on fait faire en diff r Programmer c est faire faire Ce faire faire n est cependant pas un faire faire en direct On ne nous permettra malheureusement pas d tre aux c t s du cuisinier d butant pendant sa prestation pour lui fournir les indications n cessaires Nous pourrions dans ce cas r agir ses actions ajuster nos explications rectifier le d roulement de l ex cution Ce qui sera permis c est seulement de fournir la recette l apprenti cuisinier nous serons ensuite forc s de le laisser seul aux prises avec la confection de la blanquette de veau
264. utes Exemples 0720 sept heures vingt le matin 1930 sept heures et demie le soir Il faut donc envoyer neuf chiffres Si l ordre a t compos correctement le syst me central de r veil vous informe de la suite r serv e votre demande sous forme d un message parl Trois cas peuvent se pr senter L heure de r veil est correcte et la p riode de r veil choisie n est pas satur e Vous entendez le message suivant Service r veil Votre ordre est accept Vous pouvez raccrocher L heure de r veil est incorrecte par ex 3810 L heure de r veil est incompl te par ex 072 L ordre ne peut tre enregistr pour des raisons techniques CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau Images pour programmer 1 re partie Vous entendez le message suivant Votre ordre n est pas accept Raccrochez et recommencez la t l commande La p riode de r veil choisie est satur e Vous entendez le message suivant La p riode est satur e veuillez choisir une autre p riode de r veil Raccrochez et refaites une t l commande Pour tre certain du bon aboutissement de votre demande vous devez donc attendre la diffusion du message parl Remarques La communication est interrompue automatiquement lorsque l ordre de r veil n a pas t compos correctement entre autres quand un nombre sup rieur ou inf rieur aux 9 chiffres prescrits a t introduit Si vous v
265. uttes est vide tous les verres sont remplis CeFIS FUNDP 2002 22 ao t 2002 Ch Duch teau 74 Images pour programmer 1 re partie Comme d habitude on peut faire figurer dans la marche suivre ces conditions leurs contraires le verre choisi N est PAS plein des conditions plus complexes utilisant les mots ET ou OU le verre choisi n est pas plein ET le compte gouttes est vide Remarques les verres sont d j plus ou moins remplis quand l ex cutant commence l tat initial du compte gouttes n est pas pr cis il peut tre vide rempli moiti rempli etc le nombre de verres remplir est fini 7 2 V rification de marches suivre Pour chacun des robots d crits l exercice pr c dent plusieurs marches suivre sont propos es ci dessous 6 Pouvez vous appr cier chacune d elles au point de vue de sa correction syntaxique les GNS sont correctement trac s les pseudo codes correctement crits sa correction logique la marche suivre conduit bien le robot faire ce qui tait attendu son efficacit 7 2 1 Le robot trieur de pi ces de monnaie a SI tas vide ALORS Arr te Prends H pi ce de 5 Frs a SI pi ce de 5 Frs ALORS D pose 5 pi ce de 20 Frs D pose 20 2 SINON A F D pose 1 ecommence Je me permettrai sans changer le sens d crire sous une forme plus concise les conditions permises C
266. vous y prenez pour trier un petit paquet de cartes dans le d sordre il est inutile que vous recommenciez nouveau l op ration sous pr texte que j ai mal vu Je sais fort bien que vous pouvez trier ce paquet de cartes et il ne sert rien de le faire et le refaire ce que j attends c est que vous expliquiez compl tement et dans le d tail comment vous proc dez que vous mettiez au jour les strat gies employ es C est ici qu il faut tre capable de faire le petit pas en arri re qui permet de se regarder faire c est ici qu il faut en quelque sorte quitter son r le d acteur pour adopter celui de metteur en sc ne 1 M me pour des t ches anodines comme proc der l addition crite de deux nombres ou compter les points au tennis il n est pas simple d indiquer les strat gies employ es Et les t ches pour lesquelles nous avons le plus de mal mettre au jour ces strat gies sont probablement celles que nous effectuons le plus automatiquement ou le plus inconsciemment nous avons ce point int gr les comportements sous jacents que la question comment fais tu nous prend au d pourvu et nous para t en tout cas bien incongrue 2 Il est des t ches un peu plus compliqu es comme crire un nombre en toutes lettres ou d cider si un nombre est premier qui nous poseront probablement d j de petits probl mes m me s il s agit seulement de les effectuer nous m mes sans tre tenus d expliquer en d tail comment nous
Download Pdf Manuals
Related Search
Related Contents
Arkon SM228 User's Manual 要求水準書(案)<H15.3.13>[PDF形式:274KB] 2. Descrição da Lavadora PDFファイル Embedded SDK (Software Development Kit) D/A Converter C115 User Guide Copyright © All rights reserved.
Failed to retrieve file