Micro Systèmes n°25 sep/oct 1982
Micro Systèmes n°25 sep/oct 1982
  • Prix facial : 18 F

  • Parution : n°25 de sep/oct 1982

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (213 x 271) mm

  • Nombre de pages : 246

  • Taille du fichier PDF : 178 Mo

  • Dans ce numéro : dossier sur la peau artificielle et le laser.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 124 - 125  |  Aller à la page   OK
Pages suivantes >
124 125
L'informatique use et abuse des structures dynamiques. Informatique sions (un cube) peut se voir comme un vecteur de matrices (des tableaux à 2 dimensions). Cette caractéristique est utilisée pour l'implantation physique des tableaux. La figure 3 présente différents types de tableaux numériques. Généralement, les dimensions, le nombre d'éléments dans chaque dimension et leur type doivent être déterminés et fixés précédemment, au moment de la création du tableau. Dans le cas de Pascal, la limitation est encore plus importante  : les bornes doivent être fixées avant la compilation, alors que la plupart des autres langages (Basic, Algol, PL/1 et APL surtout) autorisent la création dynamique de tableaux, les limites n'étant précisées qu'au moment de l'exécution. Cette faiblesse de Pascal constitue d'ailleurs l'un des principaux défauts de ce langage. Agrégats S'il est possible avec les tableaux de regrouper des éléments de même nature, il est souvent intéressant de pouvoir en faire de même avec des données de nature différentes. On parle alors d'agrégat. Par exemple, dans un programme « répertoire », on définira le type « ami » par les composantes (nom, prénom, numéro de téléphone). L'accès à une composante particulière ne s'effectue plus par des indices, mais simplement par la juxtaposition du nom de la donnée et de celle du champ. Ce type de donnée, appelée « record » en Pascal et « structure » en PL/1 et enC, ne se rencontre pas dans tous les langages de programmation. Il est alors nécessaire « d'éclater » les agrégats en autant de variables élémentaires que de composantes dans la structure. Par exemple, en Pascal, le type « ami » se définit ainsi  : type ami = record nom  : array [1..10] of char ; Instants Ordres Contenus (après les ordres) Résultats 1 Push A A 2 Push B B A — 3 Push C C B A — 4 Pop B A C 5 Pop A B C 6 Push D D A B C 7 Push E E D A BC 8 Pop D A E B C 9 Push F F D A E B C 10 Pop D A FEBC 11 Pop A DFEBC 12 Pop — ADFEBC I prenom  : array [1..10] of char ; tel  : integer ; end ; Il sera ensuite possible d'utiliser une variable de ce type. var a  : ami ; L'accès au numéro de téléphone par exemple sera réalisé par l'instruction  : a• tel Structures dynamiques Nous avons vu jusqu'à présent des structures de données statiques, c'est-à-dire des variables dont l'organisation reste invariante durant le déroulement du programme. Il en est autrement des structures dynamiques que nous allons examiner maintenant. Ces dernières recouvrent un champ d'application très vaste  : de la création d'un interpréteur ou d'un compilateur jusqu'aux programmes d'Intelligence Artificielle, l'informatique use et abuse des structures dynamiques  : piles, files d'attente, arborescence et listes. Nombre de problèmes seraient insolubles sans passer, tout du moins pendant la phase d'analyse, par de tels arrangements. Les piles Les piles sont certainement parmi les plus usitées des structures dynamiques. Les micro-pro- cesseurs, par exemple, utilisent une pile pour sauvegarder l'état de leurs registres ou l'adresse des appels aux sous-programmes, afin de pouvoir revenir au bon endroit dans le programme principal. Une pile se définit intuitivement comme un empilage d'élément dont seul le dernier introduit est visible. On peut ajouter ou retirer des éléments mais par un seul bout, le dernier entré devient le premier accessible. C'est pour cela que l'on parle de LIFO à cause de l'anglais « Last In First Out » (dernier entré premier sorti). La structure de pile répond ainsi aux Béatitudes  : « Les premiers seront les derniers. » De manière plus rigoureuse, une pile est décrite par un ensemble d'éléments de même type sur lequel sont définies trois opérations  : deux fonctions d'accès et un prédicat, c'est-à-dire une fonction de test. Les fonctions d'accès servent à placer ou enlever un élément, le prédicat à déterminer si la pile est vide. Nous les appellerons PLACE, ENLEVE et VIDE, ou, pour employer le franglais cher aux informaticiens, PUSH, POP et EMPTY. La figure 4 montre le fonctionnement d'une telle structure.. Des caractères sont lus en entrée de la pile et ramenés en sortie après avoir subis l'impact des opérations de manipulation. On constate qu'à la sortie l'ordre des caractères a 124 — MICRO-SYSTEMES Septembre-Octobre 1982
Introduction à la programmation structurée Informatique Septembre-Octobre 1982 été modifié. En choisissant convenablement l'ordre dans lequel ces trois opérations doivent être effectuées, il est possible de traiter des suites de caractères. L'algorithme de la figure 5 utilise cette propriété pour transformer une expression algébrique infixée (par ex.  : ((x * y) + (y * z))) en son équivalent postfixé, appelé parfois notation polonaise inverse, caractéristique de certaines calculatrices de poches (l'expression devient xy * yz * +). Cette manipulation est très utilisée dans les compilateurs. Les ordinateurs fonctionnent de manière interne suivant cette notation  : x + y par exemple se calcule ainsi  : — charger x dans le registre A — charger y dans le registre B — additionner et placer le résultat dans A ce qui correspond directement à la notation postfixée xy+. La structure de pile est si importante en informatique et si proche du fonctionnement physique de la machine, que le langage Forth en a fait son cheval de bataille. Tout le système est construit autour de piles, et manipulé par des expressions postfixées, qui ne nécessitent plus l'emploi de parenthèses. Les piles servent à beaucoup d'autres usages. Les appels de procédures, par exemple, sont gêrés par des piles. L'adresse du programme appelant est placé dans une pile avec les arguments du sous-programme appelé. Ce dernier ensuite « dépile » ces arguments avant de les utiliser. A la fin de l'exécution de la procédure, le contrôle est passé à l'adresse située au sommet de la pile. Lorsqu'une procédure en appelle une autre qui en appelle une autre qui en appelle une autre, etc., les adresses sont entassées au fur et à mesure de ces appels. Après exécution, les adresses sont dépilées dans l'ordre inverse afin de redonner le contrôle aux modules appelant. La figure 6 illustre notre propos en montrant un petit programme Transfexpression lire (car) tant que car # vide faire si car alors push(car) sinon si car.). alors ecrlire(pop) sinon si car #'('alors ecrire(car) lire(car) ecrire(pop) d'entre elles concerne I. deyression unncc duc ccrac scion ia norme habituelle. en expres sion• postfixées appelée parfois polonaise inver,. Numéro de ligne Actions réalisées par l'interpréteur Sommet de la pile 900 Imprimer « début » — 1000 Push 1000 Aller en 1500 1500 Imprimer « salut » 1000 Push 1510 Aller en 2000 2000 Imprimer « encore salut » 1510 2010 P = pop 1000 Aller en ligne suivant p (1520) 1520 Imprimer « salut 2 » 1000 1530 Push 1530 Aller en 2000 2000 Imprimer « encore salut » 1530 2010 P = Pol) 1000 Aller en ligne suivant p (1600) 1600 P + POP — Aller en ligne suivant p (1010) 1010 Arrêter l'exécution et retourner au moniteur Fig. ô. - La menorisation des adresses de départ lors d'appels a des sous-programmé s'effectue par l'entremise d'une pile..1 l'exécution d'un programme (ci-dessous). les adres.ses routines sont empilées puis dépliées à la rencontre des instructions GOSI  : B et RETURN. Basic, et l'état dé la pile au moment de son exécution. Signalons aussi que les programmes d'échecs, qu'ils fonctionnent sur de gros ordinateurs ou de petites machines du commerce, utilisent une pile pour évaluer l'ensemble des positions valides qui peuvent survenir quelques coups en avant dans la partie. Pour représenter une pile, nous utilisons un vecteur d'éléments et un pointeur qui figure le sommet 900 PRINT "DEBUT" 1000 GOSUB 1500 1010 END 1500 PRINT "SALUT" 1510 GOSUB 2000 1520 PRINT "SALUT 2" 1530 GOSUB 2000 1600 RETURN 2000 PRINT "ENCORE SALUT" 2010 RETURN MICRO-SYSTEMES — 125



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 25 sep/oct 1982 Page 1Micro Systèmes numéro 25 sep/oct 1982 Page 2-3Micro Systèmes numéro 25 sep/oct 1982 Page 4-5Micro Systèmes numéro 25 sep/oct 1982 Page 6-7Micro Systèmes numéro 25 sep/oct 1982 Page 8-9Micro Systèmes numéro 25 sep/oct 1982 Page 10-11Micro Systèmes numéro 25 sep/oct 1982 Page 12-13Micro Systèmes numéro 25 sep/oct 1982 Page 14-15Micro Systèmes numéro 25 sep/oct 1982 Page 16-17Micro Systèmes numéro 25 sep/oct 1982 Page 18-19Micro Systèmes numéro 25 sep/oct 1982 Page 20-21Micro Systèmes numéro 25 sep/oct 1982 Page 22-23Micro Systèmes numéro 25 sep/oct 1982 Page 24-25Micro Systèmes numéro 25 sep/oct 1982 Page 26-27Micro Systèmes numéro 25 sep/oct 1982 Page 28-29Micro Systèmes numéro 25 sep/oct 1982 Page 30-31Micro Systèmes numéro 25 sep/oct 1982 Page 32-33Micro Systèmes numéro 25 sep/oct 1982 Page 34-35Micro Systèmes numéro 25 sep/oct 1982 Page 36-37Micro Systèmes numéro 25 sep/oct 1982 Page 38-39Micro Systèmes numéro 25 sep/oct 1982 Page 40-41Micro Systèmes numéro 25 sep/oct 1982 Page 42-43Micro Systèmes numéro 25 sep/oct 1982 Page 44-45Micro Systèmes numéro 25 sep/oct 1982 Page 46-47Micro Systèmes numéro 25 sep/oct 1982 Page 48-49Micro Systèmes numéro 25 sep/oct 1982 Page 50-51Micro Systèmes numéro 25 sep/oct 1982 Page 52-53Micro Systèmes numéro 25 sep/oct 1982 Page 54-55Micro Systèmes numéro 25 sep/oct 1982 Page 56-57Micro Systèmes numéro 25 sep/oct 1982 Page 58-59Micro Systèmes numéro 25 sep/oct 1982 Page 60-61Micro Systèmes numéro 25 sep/oct 1982 Page 62-63Micro Systèmes numéro 25 sep/oct 1982 Page 64-65Micro Systèmes numéro 25 sep/oct 1982 Page 66-67Micro Systèmes numéro 25 sep/oct 1982 Page 68-69Micro Systèmes numéro 25 sep/oct 1982 Page 70-71Micro Systèmes numéro 25 sep/oct 1982 Page 72-73Micro Systèmes numéro 25 sep/oct 1982 Page 74-75Micro Systèmes numéro 25 sep/oct 1982 Page 76-77Micro Systèmes numéro 25 sep/oct 1982 Page 78-79Micro Systèmes numéro 25 sep/oct 1982 Page 80-81Micro Systèmes numéro 25 sep/oct 1982 Page 82-83Micro Systèmes numéro 25 sep/oct 1982 Page 84-85Micro Systèmes numéro 25 sep/oct 1982 Page 86-87Micro Systèmes numéro 25 sep/oct 1982 Page 88-89Micro Systèmes numéro 25 sep/oct 1982 Page 90-91Micro Systèmes numéro 25 sep/oct 1982 Page 92-93Micro Systèmes numéro 25 sep/oct 1982 Page 94-95Micro Systèmes numéro 25 sep/oct 1982 Page 96-97Micro Systèmes numéro 25 sep/oct 1982 Page 98-99Micro Systèmes numéro 25 sep/oct 1982 Page 100-101Micro Systèmes numéro 25 sep/oct 1982 Page 102-103Micro Systèmes numéro 25 sep/oct 1982 Page 104-105Micro Systèmes numéro 25 sep/oct 1982 Page 106-107Micro Systèmes numéro 25 sep/oct 1982 Page 108-109Micro Systèmes numéro 25 sep/oct 1982 Page 110-111Micro Systèmes numéro 25 sep/oct 1982 Page 112-113Micro Systèmes numéro 25 sep/oct 1982 Page 114-115Micro Systèmes numéro 25 sep/oct 1982 Page 116-117Micro Systèmes numéro 25 sep/oct 1982 Page 118-119Micro Systèmes numéro 25 sep/oct 1982 Page 120-121Micro Systèmes numéro 25 sep/oct 1982 Page 122-123Micro Systèmes numéro 25 sep/oct 1982 Page 124-125Micro Systèmes numéro 25 sep/oct 1982 Page 126-127Micro Systèmes numéro 25 sep/oct 1982 Page 128-129Micro Systèmes numéro 25 sep/oct 1982 Page 130-131Micro Systèmes numéro 25 sep/oct 1982 Page 132-133Micro Systèmes numéro 25 sep/oct 1982 Page 134-135Micro Systèmes numéro 25 sep/oct 1982 Page 136-137Micro Systèmes numéro 25 sep/oct 1982 Page 138-139Micro Systèmes numéro 25 sep/oct 1982 Page 140-141Micro Systèmes numéro 25 sep/oct 1982 Page 142-143Micro Systèmes numéro 25 sep/oct 1982 Page 144-145Micro Systèmes numéro 25 sep/oct 1982 Page 146-147Micro Systèmes numéro 25 sep/oct 1982 Page 148-149Micro Systèmes numéro 25 sep/oct 1982 Page 150-151Micro Systèmes numéro 25 sep/oct 1982 Page 152-153Micro Systèmes numéro 25 sep/oct 1982 Page 154-155Micro Systèmes numéro 25 sep/oct 1982 Page 156-157Micro Systèmes numéro 25 sep/oct 1982 Page 158-159Micro Systèmes numéro 25 sep/oct 1982 Page 160-161Micro Systèmes numéro 25 sep/oct 1982 Page 162-163Micro Systèmes numéro 25 sep/oct 1982 Page 164-165Micro Systèmes numéro 25 sep/oct 1982 Page 166-167Micro Systèmes numéro 25 sep/oct 1982 Page 168-169Micro Systèmes numéro 25 sep/oct 1982 Page 170-171Micro Systèmes numéro 25 sep/oct 1982 Page 172-173Micro Systèmes numéro 25 sep/oct 1982 Page 174-175Micro Systèmes numéro 25 sep/oct 1982 Page 176-177Micro Systèmes numéro 25 sep/oct 1982 Page 178-179Micro Systèmes numéro 25 sep/oct 1982 Page 180-181Micro Systèmes numéro 25 sep/oct 1982 Page 182-183Micro Systèmes numéro 25 sep/oct 1982 Page 184-185Micro Systèmes numéro 25 sep/oct 1982 Page 186-187Micro Systèmes numéro 25 sep/oct 1982 Page 188-189Micro Systèmes numéro 25 sep/oct 1982 Page 190-191Micro Systèmes numéro 25 sep/oct 1982 Page 192-193Micro Systèmes numéro 25 sep/oct 1982 Page 194-195Micro Systèmes numéro 25 sep/oct 1982 Page 196-197Micro Systèmes numéro 25 sep/oct 1982 Page 198-199Micro Systèmes numéro 25 sep/oct 1982 Page 200-201Micro Systèmes numéro 25 sep/oct 1982 Page 202-203Micro Systèmes numéro 25 sep/oct 1982 Page 204-205Micro Systèmes numéro 25 sep/oct 1982 Page 206-207Micro Systèmes numéro 25 sep/oct 1982 Page 208-209Micro Systèmes numéro 25 sep/oct 1982 Page 210-211Micro Systèmes numéro 25 sep/oct 1982 Page 212-213Micro Systèmes numéro 25 sep/oct 1982 Page 214-215Micro Systèmes numéro 25 sep/oct 1982 Page 216-217Micro Systèmes numéro 25 sep/oct 1982 Page 218-219Micro Systèmes numéro 25 sep/oct 1982 Page 220-221Micro Systèmes numéro 25 sep/oct 1982 Page 222-223Micro Systèmes numéro 25 sep/oct 1982 Page 224-225Micro Systèmes numéro 25 sep/oct 1982 Page 226-227Micro Systèmes numéro 25 sep/oct 1982 Page 228-229Micro Systèmes numéro 25 sep/oct 1982 Page 230-231Micro Systèmes numéro 25 sep/oct 1982 Page 232-233Micro Systèmes numéro 25 sep/oct 1982 Page 234-235Micro Systèmes numéro 25 sep/oct 1982 Page 236-237Micro Systèmes numéro 25 sep/oct 1982 Page 238-239Micro Systèmes numéro 25 sep/oct 1982 Page 240-241Micro Systèmes numéro 25 sep/oct 1982 Page 242-243Micro Systèmes numéro 25 sep/oct 1982 Page 244-245Micro Systèmes numéro 25 sep/oct 1982 Page 246