Deutsch English Français Italiano |
<tih82e$1637$1@gioia.aioe.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!aioe.org!ehPmoIe1VPaiJg2plNRepQ.user.46.165.242.91.POSTED!not-for-mail From: Arachide <houten.van@orange.fr> Newsgroups: fr.comp.sys.atari Subject: =?UTF-8?Q?FORTH_s=27=c3=a9toffe_en_Maths?= Date: Sun, 16 Oct 2022 17:30:24 +0200 Organization: Aioe.org NNTP Server Message-ID: <tih82e$1637$1@gioia.aioe.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gioia.aioe.org; logging-data="39015"; posting-host="ehPmoIe1VPaiJg2plNRepQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Thunderbird 680x0 for Windows powered by Atari X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: fr Bytes: 3346 Lines: 110 Coucou, j'avais déjà une routine SOLVE et une GAUSS pour résoudre une équation ou intégrer une fonction. Après un démarrage hier, j'ai pris le temps de finaliser aujourd'hui. Voilà trois nouvelles routines pour tracer des courbes: GR_Y(X) pour les fonctions standard de x GR_XY(T) pour les courbes paramétrées GR_R(T) pour les courbes polaires. A cela s'ajoutent: GR_WINDOW pour fixer les limites de la fenêtre mathématique GR_AXES pour tracer les axes. A titre d'exemple, voici un petit programme qui se propose d'étudier l'influence du paramètre k dans ces deux situations: 1) y = sin(k.x) 2) y = k.sin(x) Voici le résultat à l'écran (sur la Vampire): https://gtello.pagesperso-orange.fr/temp/graph.jpg On peut bien sûr changer les couleurs des courbes ou des axes, je n'ai pas ajouté ceci pour rester simple. Guillaume. Le programme pour ceux qui aiment lire le FORTH: ; les deux variables x et PARAM (qui représente k) &float x &float PARAM ; les trois zones écran &page COM &page DRAW1 &page DRAW2 >comp ; COM sera la colonne de gauche, zone de commande 2 1 page0 setsubpage 0 page0 getsubpage COM defpage ; DRAW1 et 2 seront les deux zones de tracé à droite 2 2 page0 setsubpage 1 page0 getsubpage DRAW1 defpage 3 page0 getsubpage DRAW2 defpage >comp ; ici on définit les deux fonctions :: FN1 x f@ PARAM f@ f* sin ; :: FN2 x f@ sin PARAM f@ f* ; ; dessin sur le cadre du haut : show1 DRAW1 setpage ; fixe ma zone de sortie cls ; efface l'écran ." y=sin(k.x)" ; affiche le texte ( %f-3.14 %f3.14 %f-2.2 %f2.2 ) gr_window ; limites des axes ( %f0 %f0 0 ) gr_axes ; trace les deux axes %f1 PARAM f! ; initialise k à 1 7 ndo ; bouclera 7 fois ( 'FN1 x %f-3.14 %f3.14 100 ) gr_y(x) ; on trace une courbe ( PARAM f@ %f0.1 f+ ) PARAM f! ; on augmente k de 0.1 nloop COM setpage ; retour aux commandes ; ; dessin en bas, même procédure sur DRAW2 ; et avec la fonction FN2 : show2 DRAW2 setpage cls ." y=k.sin(x)" ( %f-3.14 %f3.14 %f-2.2 %f2.2 ) gr_window ( %f0 %f0 0 ) gr_axes %f1 PARAM f! 7 ndo ( 'FN2 x %f-3.14 %f3.14 100 ) gr_y(x) ( PARAM f@ %f0.1 f+ ) PARAM f! nloop COM setpage ; >comp ; au démarrage, efface l'écran et donne la main ; sur la page de commande cls COM setpage ; je n'ai plus qu'à lancer show1 et show2