Micros ID n°2 janvier 1987
Micros ID n°2 janvier 1987
  • Prix facial : 22 F

  • Parution : n°2 de janvier 1987

  • Périodicité : trimestriel

  • Editeur : Mieva Presse

  • Format : (206 x 291) mm

  • Nombre de pages : 84

  • Taille du fichier PDF : 123 Mo

  • Dans ce numéro : PC compatible, comment le choisir ?

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 54 - 55  |  Aller à la page   OK
Pages suivantes >
54 55
Le mois dernier vous avez découvert la notion d'algorithme. Au fil des parutions vous allez apprendre à en construire un. En général il n'est pas du tout évident de trouver un algorithme qui résolve le problème que l'on se pose. La difficulté principale pour le programmeur amateur vient du fait qu'il ne sait pas comment aborder son problème. Souvent il se lance dans l'écriture d'un vague ordinogramme avant même de l'avoir totalement défini. Ce comportement équivaut à émettre un gros chèque avant d'approvisionner son compte. On espère que le problème va se résoudre de lui même en écrivant l'ordinogramme. Le plus souvent on ne réussit pas à terminer son programme, ou pire, on obtient un programme faux(2). Plutôt que d'essayer une résolution directe, il est souvent efficace de décomposer autant que possible un problème en éléments plus simples. En pratique on écrit un algorithme solution qui utilise des actions complexes. Puis on applique le même principe pour construire l'algorithme de chacune des actions. Et ainsi de suite, jusqu'à ce que chaque partie soit facile à traiter. Si, enfin, on ne parvient plus à décomposer le problème, sans que la moindre solution apparaisse, c'est que ce problème est trop compliqué pour nous. Il nous reste deux possibilités : — Aller demander de l'aide à un programmeur plus expéri menté(3). — Modifier son cahier des charges pour simplifier. Chaque petite partie s'appelle un module. A chaque module on associe sa profondeur. Le programme principal a une profondeur 0 et se décompose en modules de profondeur (ou niveau) 1. Chaque module de niveau 1 est formé de modules de niveau 2, etc. Si vous avez compris le principe vous pouvez dire que vous faites de la programmation modulaire.(4) Application de la décomposition modulaire à un problème apparemment simple. PROBLEME : simuler le rebond d'une balle sur le sol. Pro9ammclïlonn « MÉTHODE ALGORITHMIQUE Si vous avez du courage et du temps à perdre vous pouvez essayer d'écrire directement un algorithme ; puis revenez et lisez l'analyse qui suit. Les modules imbriqués sont notés entre parenthéses. ANALYSE : décomposons grossièrement le problème. 1 — on affiche le sol. 2 — Tant que la balle n'est pas au bord de l'écran faire (bouger la balle) ANALYSE DE : bouger la balle 1 — Tant que la balle est au dessus du sol faire (la balle tombe) 2 — (la balle rebondit) ANALYSE DE : la balle tombe A chaque boucle(6) : On affiche la balle à la position écran correspondant aux coordonnées de la balle. On ajoute la gravité à la vitesse verticale instantanée (Vy). On ajoute Vy à la position verticale de la balle Y, on ajoute Vx àX. ANALYSE DE : la balle rebondit La balle est descendue en dessous du niveau du sol. On inverse le sens de la vitesse en tenant compte d'un facteur d'amortissement.Tant que la balle est en dessous du sol on remonte la balle sans l'afficher. Le rebond de la balle sur le sol est maintenant entiérement décrit. On peut le programmer en pascal.
PROGRAM REBOND ; CONST G=0.04 ; VX=0.5 ; AM=0.85 ; VAR X 1 Y, VY : REAL ; 0 : I NTEGER ; BEGIN CLRSCR ; FOR 0:=1 TO 80 DO BEGIN GOTOXY(0,20) ; WRITE('—') END ; VY:=0 ; X:=1 ; Y:=5 ; WHILE (X 80) DO BEGIN WHILE (Y-,20) AND (X-80) DO BEGIN GOTOXY(TRUNC(X),TRUNC(Y)) ; WRITE('A') ; VY:=VY+G ; Y:=Y+VY ; X:=X+VX END ; VY : =—VY*AM ; WHILE Y,20 DO Y:=Y+VY ; END END. L'instruction « WHILE condition DO instruction ; » du pascal correspond au « TANT QUE condition FAIRE instruction » de l'algorithme. Quand la condition est vraie l'instruction qui suit DO est exécutée. Cette instuction peut être une commande du pascal(7), ou une instruction composée. La notion d'instruction composée est très proche de celle de module. Elle commence par un BEGIN qui indique le début du module et finit par END. Entre les deux on met autant d'instructions que nécessaire pour définir la fonction réalisée. Les instructions qui forment l'instruction composée peuvent elles-mêmes être composées. ATTENTION ! Cette structure est très importante en pascal. Relisez les explications et surtout regardez le femme/Won « MÉTHODE ALGORITHMIQUE » programme d'exemple pour comprendre le principe(8). TRUNC(X) : renvoie le nombre entier correspondant à X sans ses décimales. Vous en savez assez pour comprendre le programme d'exemple. Encore un dernier mot concernant les END et les points-virgules (« ; »). Un point-virgule n'est JAMAIS nécessaire avant un END, mais n'est pas faux non plus... Christophe Hacherdol (1) Ou « diviser pour régner », grand principe du machiavélisme. (2) Un programme faux c'est un programme qui contient des cas d'erreur non prévus. Un cas d'erreur prévu, par exemple la saisie d'une lettre au clavier alors qu'un chiffre était attendu n'est pas une faute. (3) N'ayez pas honte, pensez que lui aussi a sûrement eu les mêmes ennuis. D'autre part vous lui ferez tellement plaisir... (4) Et si vous voulez vraiment frimer vous pouvez aussi parler de décomposition arborescente d'un problème (pour le printemps) ou encore d'analyse descendante (pour l'hiver à la montagne) (5) Pas de remarque 5. (6) En informatique l'unité de temps est en général la boucle... (7) Cherchez le WHILE de ce type dans le programme. (8) J'insiste encore, c'est vraiment très important. Et d'ailleurs c'est décidé : vous ne lirez pas l'article du mois prochain avant d'avoir compris. Si vous voulez la suite vous savez ce qui vous reste à faire...



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 :


Micros ID numéro 2 janvier 1987 Page 1Micros ID numéro 2 janvier 1987 Page 2-3Micros ID numéro 2 janvier 1987 Page 4-5Micros ID numéro 2 janvier 1987 Page 6-7Micros ID numéro 2 janvier 1987 Page 8-9Micros ID numéro 2 janvier 1987 Page 10-11Micros ID numéro 2 janvier 1987 Page 12-13Micros ID numéro 2 janvier 1987 Page 14-15Micros ID numéro 2 janvier 1987 Page 16-17Micros ID numéro 2 janvier 1987 Page 18-19Micros ID numéro 2 janvier 1987 Page 20-21Micros ID numéro 2 janvier 1987 Page 22-23Micros ID numéro 2 janvier 1987 Page 24-25Micros ID numéro 2 janvier 1987 Page 26-27Micros ID numéro 2 janvier 1987 Page 28-29Micros ID numéro 2 janvier 1987 Page 30-31Micros ID numéro 2 janvier 1987 Page 32-33Micros ID numéro 2 janvier 1987 Page 34-35Micros ID numéro 2 janvier 1987 Page 36-37Micros ID numéro 2 janvier 1987 Page 38-39Micros ID numéro 2 janvier 1987 Page 40-41Micros ID numéro 2 janvier 1987 Page 42-43Micros ID numéro 2 janvier 1987 Page 44-45Micros ID numéro 2 janvier 1987 Page 46-47Micros ID numéro 2 janvier 1987 Page 48-49Micros ID numéro 2 janvier 1987 Page 50-51Micros ID numéro 2 janvier 1987 Page 52-53Micros ID numéro 2 janvier 1987 Page 54-55Micros ID numéro 2 janvier 1987 Page 56-57Micros ID numéro 2 janvier 1987 Page 58-59Micros ID numéro 2 janvier 1987 Page 60-61Micros ID numéro 2 janvier 1987 Page 62-63Micros ID numéro 2 janvier 1987 Page 64-65Micros ID numéro 2 janvier 1987 Page 66-67Micros ID numéro 2 janvier 1987 Page 68-69Micros ID numéro 2 janvier 1987 Page 70-71Micros ID numéro 2 janvier 1987 Page 72-73Micros ID numéro 2 janvier 1987 Page 74-75Micros ID numéro 2 janvier 1987 Page 76-77Micros ID numéro 2 janvier 1987 Page 78-79Micros ID numéro 2 janvier 1987 Page 80-81Micros ID numéro 2 janvier 1987 Page 82-83Micros ID numéro 2 janvier 1987 Page 84