APPLICATIONSDIVERS ★ MATHEZ VOTRE AMSTRAD (AMSTRAD MAGAZINE) ★

Mathez votre Amstrad (Amstrad Magazine)Applications Divers
Avant de commencer le commentaire et les explications de ce mois-ci, j'aimerais attirer votre attention sur les deux programmes publiés le mois dernier. Peut-être vous êtes-vous dit que je sautais un peu vite les étapes ? Eh bien vous n'avez pas tort du tout puisque ces derniers devaient paraître bien plus tard. Je suppose donc que vous me pardonnez et comprendrez aisément le programme suivant. Après les études théoriques des courbes (dérivées, méthode dichotomique...) nous allons ce mois passer à une application plus directe de l'utilisation de votre ordinateur. Le but du programme ci-après est tout simplement de tracer automatiquement des courbes cartésiennes et polaires.
J'entends par automatique le fait que vous n'ayez qu'à fournir à l'ordinateur le choix du tracé polaire ou cartésien et l'intervalle dans lequel vous voulez le tracé de la courbe. A ce moment vous attendez 1 à

10 secondes, le temps que l'ordinateur analyse la courbe et les axes se placeront automatiquement sur l'écran avec des unités choisies par le programme. Vous pouvez voir en plus, contrairement à beaucoup de programmes, que les unités sont visibles sur les axes ainsi que l'échelle utilisée.

En quelques mots voici la différence qui existe entre une courbe polaire et une courbe cartésienne. Une courbe cartésienne possède la forme mathématique suivante : y = f(x) où y est une fonction de x c'est-à-dire que quand on donne une valeur à x, y varie en proportion* Mais vous êtes bien sensible au fait que x et y sont interdépendants. Ce n'est pas tout-à-fait le cas pour les fonctions polaires, la plupart du temps définies comme suit : r = f(cr) où thêta est un angle qui peut varier au plus de - pi à pi, ce qui décrit un cercle entier. R est appelé rayon de la fonction. Lors de l'étude on se rend compte tout comme pour les fonctions implicites que thêta joue le rôle d'une variable muette. La représentation d'une
courbe en polaire se fait sur Taxe des x et Taxe ayant comme orientation pi/2 (c'est l'équivalent de y en cartésienne). En fait pour tracer une courbe en polaire sur un ordinateur ou à la machine il suffit de poser les égalités suivantes :

x = r × cos(f), en sachant que r est le rayon défini auparavant, y = r × sin(f).

Il s'agit comme vous l'avez remarqué d'une traduction de la fonction pour pouvoir la représenter en coordonnées cartésiennes. Mais cette fois-ci vous voyez que c'est uniquement thêta qui varie et fait varier x et y. Ces derniers ne sont donc pas dépendants l'un de l'autre comme une fonction cartésienne ordinaire. Intuitivement on se dit déjà qu'on n'aura pas toujours des droites, des paraboles ou autres à tracer. Prenez l'exemple simple de r = 1 et tracez point à point avec une machine la courbe. Vous obtiendrez un cercle faisant varier thêta de - pi à pi.

Maintenant passons au programme proprement dit. Comme les drapeaux et les variables sont nombreux, c'est à travers eux que nous allons le parcourir. La première variable rencontrée est r$ ; elle mémorise la réponse “p” ou “a” de la ligne

40. a$ se charge de mémoriser la réponse à la question ligne 80. Si la fonction n'est pas entrée alors on liste 700-720. Si c'est oui on continue. Les variables a et b ainsi que cc et dd représentent les bornes de l'intervalle. Nous avons besoin deux fois de T intervalle car il est détruit une fois par le calcul.

Ensuite ams est un drapeau indiquant si l'on est en cartésien (ams = 2) ou en polaire (ams — 1). Quoi qu'il en soit on recherche les valeurs extrêmes sur l'axe des x pour pouvoir placer en premier l'axe des y qui porte le drapeau drap = 0, En ligne 130 si l'on est en polaire on doit aller au sous-programme 860 à 920. ATTENTION, c'est ici que l'on voit nettement que pour des raisons de simplification de programme ce sera la fonction g qui sera en cosinus et f en sinus. Sinon ce n'est pas très grave, il faudra savoir que vos courbes seront décalées de pi/2, si vous mettez f en cosinus.

De la ligne 880 à 920 on scrute toutes les valeurs de 0.1 en 0.1 (vous pouvez changer le pas d'incrément) afin de déterminer le minimum et le maximum qui sont appelés a et b et déterminent l'intervalle sur l'axe des x. Une fois que l'on a ces deux valeurs on va au sous-programme en 530. Après le test du signe de l'intervalle, si pa = 1 alors on va en 570 ou 580 ou 590 pour tracer Taxe des y. Ensuite on va en ligne 150 et le drapeau drap = 1, On va au sous-programme de recherche de maxi et mini pour f puis comme drap - 1 et pa = 1 on va tracer l'axe des x (570-590).

En ligne 140, si par contre ams = 2 on a directement l'intervalle mais il faut quand même déterminer le max et le min de y en faisant varier x de a à b,

A partir de maintenant les choses se compliquent largement, pa = 0 signifie que l'on va s'occuper de la représentation des unités sur les axes. On aurait pu garder dans un espace mémoire les coordonnées écran des axes mais l'écriture aurait été plus lourde. J'ai opté pour la solution de refaire une scrutation gosub 530 et de donner à la variable w les différentes positions des axes.

Puis de 160 à 360 la méthode est la même que pour les axes : on teste les valeurs extrêmes et on place les valeurs en conséquence ; la seule différence vient du fait qu'on a dû décaler les unités en fonction des extrêmes. De plus, le début des graduations est mis pour balayer le maximum de Taxe, mais il doit en même temps tomber juste sur le point zéro. Nous nous sommes donc efforcés de trouver un bon compromis entre les deux ; c'est la raison pour laquelle le nombre d'échelles est réduit volontairement à cinq.

Les lignes 420 à 430 tracent le premier point des courbes. Puis de 440 à 480 on trace la courbe à l'aide de l'instruction draw ce qui donne une continuité de la courbe. Les unités sont choisies et indiquées de la ligne 730 à 850. Le choix est arbitraire puisqu'il est fixé en fonction de l'écart de l'intervalle. Vous pouvez ainsi les changer à votre guise mais attention changez en conséquence les graduations en ligne 220 et suite. Signalons les lignes 630 et 870 qui, lorsqu'elles détectent une erreur lors de la recherche d'extremum indiquera la valeur qui cause un ennui pour le calcul ; en général il s'agit d'une division par zéro.

Quelques exemples

Mode cartésien :

Enlever ligne 710 ou mettre 710 rem...

700 f = exp(- (λ))

Mettre un intervalle entre - 5 et 5 et vous obtiendrez une courbe en cloche. Cet exemple montre qu'on utilisera toujours f pour la fonction et i comme variable. Mode polaire :

700 f = 3 × (1 + cos(i)) × sin(i)
710 g - 3 × (1 + cos(i)) × cos(i)

Mettre un intervalle de - 3.14 à 3.14 et vous obtiendrez une superbe carbioïde. A vous maintenant d'avoir un peu d'imagination pour vous servir de ce programme comme un véritable outil de travail en le modifiant et en l'améliorant. Bon courage î

Guillaume Ponticelli, Amstrad Magazine

★ EDITEUR: AMSTRAD MAGAZINE
★ ANNÉE: 1987
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Guillaume Ponticelli
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Mathez  votre  Amstrad    (Amstrad  Magazine)    LISTING    FRENCHDATE: 2020-05-11
DL: 182
TYPE: text
SiZE: 4Ko
NOTE:

Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 589 millisecondes et consultée 756 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.