FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mais qui a le focus ?
par Klaus Aujourd'hui à 10:48

» Mac OS X sierra
par Irikte Aujourd'hui à 10:38

» Concours de Morpions
par Froggy One Aujourd'hui à 9:29

» Synedit Parameters
par Jean Claude Aujourd'hui à 9:08

» Bienvenue à Irikte
par UltraVox Aujourd'hui à 9:04

» Recherche de traductions de mots (@Klaus).
par Klaus Aujourd'hui à 8:44

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 21:52

» Panoramic et ses curiosités
par Jack Hier à 7:15

» Utilitaire de suppression de fichiers
par Yannick Ven 23 Juin 2017 - 22:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 20:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 8:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 8:18

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 15:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 14:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 11:44

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Traceur de courbes représentatives des fonctions y = f(x)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Traceur de courbes représentatives des fonctions y = f(x)   Ven 20 Jan 2017 - 17:56

Traceur de courbes représentatives des fonctions y = f(x)
Le programme utilise EVAL.DLL, développée par Jean_Debord pour évaluer une expression mathématique.
Vous pouvez télécharger cette DLL à partir de la page de Jean_debord :
http://www.unilim.fr/pages_perso/jean.debord/panoramic/panoramic.htm
Vous pouvez la télécharger également à partir de mon webdav (voir ma signature)

Tel quel, le programme peut tracer jusqu'à 4 courbes sur le même graphique.

Code:

rem ============================================================================
rem         Traceur de courbes réprésentatives des fonctions
rem                        Par papydall
rem ============================================================================
rem Utilise "EVAL.DLL", bibliothèque développée par Jean Debord pour évaluer une
rem expression mathématique.
rem Vous pouvez télécharger EVAL.DLL à partir du site de son auteur :
rem    ______________________________________________________________________
rem   |                                                                      |
rem   | http://www.unilim.fr/pages_perso/jean.debord/panoramic/panoramic.htm |
rem   |______________________________________________________________________|

rem ============================================================================
' Opérateurs reconnus par la DLL :
rem + addition
rem - soustraction
rem * multiplication
rem / division
rem \ division entière
rem % modulo
rem ^ exponentiation
rem > décalage à droite
rem < décalage à gauche
rem & AND logique
rem | OR logique
rem $ XOR logique
rem ! NOT logique
rem @ IMP logique
rem = EQV logique
rem ============================================================================
' Ordre de priorité :
rem ! , & , | , $ , = , @ , ^ , +- (plus et moins unaires) , */ , \ , % , < > , +- (addition et soustraction)
rem L utilisation des parenthèses modifie l ordre de priorité : les parenthèses sont prioritaires.
rem ============================================================================
' Variables
rem la DLL peut utiliser jusqu à 26 variables de A à Z.
rem ============================================================================
' Fonctions disponibles dans la DLL
rem abs   : valeur absolue
rem sgn   : signe
rem int   : partie entière
rem sqrt  : racine carrée
rem exp   : exponentielle
rem ln    : logarithme naturel (néperien)
rem log10 : logarithme décimal
rem fact  : factorielle
rem rnd   : nombre aléatoire appartenant à [0,1)
rem deg   : degré ---> radian
rem rad   : radian ---> degré
rem sin   : sinus
rem cos   : cosinus
rem tan   : tangente
rem asin  : arc sinus
rem acos  : arc cosinus
rem atan  : arc tangente
rem atan2 : atan2(y,x) = atan(y/x) dans les 4 quadrants
rem sinh  : sinus hyperbolique
rem cosh  : cosinus hyperboloique
rem tanh  : tangente hyperboloique
rem asinh : sinus hyperbolique inverse
rem acosh : cosinus hyperbolique inverse
rem atanh : tangente hyperbolique inverse
rem gamma : fonction gamma (factorielle généralisée)
rem erf   : error function (distrinution normale)
rem ============================================================================
' Fonctions exportées par la DLL
rem EVAL.DLL exporte 3 fonctions :
rem 1) InitFunc : initialise les fonctions intégrées dans la DLL et rétourne leur nombre
rem    Appellez cette fonction avant d utiliser toute fonction intégrée.
rem 2) SetVariable : Cette fonction affecte une valeur à une variable et rend le
rem    numéro d ordre de la variable (1 pour A, 2 pour B etc)
rem 3) Eval : Cette fonction évalue une expression passée comme chaîne de caractères
rem    et retourne l un des codes d erreur suivant:
rem    0 : aucune erreur
rem    1 : signe inattendu
rem    2 : parenthèses non équilibrées
rem    3 : variable non définie
rem    4 : fonction non définie
rem ============================================================================
' Exemple d'utilisation de la DLL
rem dim x,i%,var$,exp$,result
rem dll_on "eval.dll"
rem i% = dll_call0("InitFunc") : ' initialiser les fonctions  de la DLL
rem var$ = "x"                 : ' définir X comme variable
rem x = 123                    : ' affecter une valeur à la variable X
rem i% = dll_call2("SetVariable",adr(var$),adr(x)) : ' affecter la valeur à la variable
rem exp$ = "cos(x)^2 + sin(x)^2"  : ' définir une expression mathématique sous forme de chaine de caractères
rem i% = dll_call2("Eval", adr(exp$), adr(result)) : ' Evaluer l'expression et affecter le résultat à la variable result
rem i% contient le code erreur (0 si aucune erreur)
rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================

Init()
GUI()

end
rem ============================================================================
SUB Init()

    label Clic
    dim x,y,y$,g$,h$,i$,ret%,var$,exp$,err
    dim xe,ye,xmin,xmax,ymin,ymax,largeur,hauteur
    var$ = "x"
    dll_on "eval.dll" : ' Indiquez le chemin d'accès à EVAL.DLL
    ret% = dll_call0("InitFunc")
    width 0,1200: height 0,700
    top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2
    caption 0,"Traceur de courbes répresentatives des fonctions"
    application_title "Traceur de courbes répresentatives des fonctions"
    
END_SUB
rem ============================================================================
SUB GUI()

    Container_Fonctions()
    Container_Axes()
    Container_Intervalle()
    Container_Dim_Grafic()
    button  90 :  top 90, 600 : left 90, 50 : font_bold 90 : font_size 90,16
    width 90,100 : caption 90,"Exécuter" : on_click 90,Clic
    button  91 :  top 91, 600 : left 91, 200 : font_bold 91 : font_size 91,16
    width 91,100 : caption 91,"Quitter" : on_click 91,Clic
    button 92 : top 92,600 : left 92,350 : font_bold 92 : font_size 92,16
    width 92,100 : caption 92,"Aide" : on_click 92,Clic
    picture 100  : top 100,20 : left 100,560 : 2d_target_is 100 : print_target_is 100 : hide 100
    
END_SUB
rem ============================================================================
Clic:

   select number_click
       case 90 : Executer()
       case 91 : Quitter()
       case 92 : Aide()
   end_select

return
rem ============================================================================
SUB Container_Fonctions()

    container 10 : top 10,50 : left 10,20 : width 10,500 : height 10,200
    color 10, 150,150,150 : font_color 10,255,255,255 : font_bold 10
    font_size 10,16 : caption 10,"Fonctions"
    
    check 11 : parent 11,10 : top 11,40 : left 11,10 :  font_color 11,0,0,255
    color 11, 150,150,150 : caption 11,"  f(x) = "  : mark_on 11
    edit 12 : parent 12,10 : top 12,30 : left 12,20 + width(11) : width 12,370
    font_color 12,0,0,0  : text 12,"cos(x) + sin(sqrt(abs(x)))"
    
    check 13 : parent 13,10 : top 13,80 : left 13,10 : font_color 13,255,0,0
    color 13,150,150,150 : caption 13," g(x) = " : mark_on 13
    edit 14 : parent 14,10 : top 14,70 : left 14,20 + width(13) : width 14,370
    font_color 14,0,0,0  : text 14,"sin(x)/x"
    
    check 15 : parent 15,10 : top 15,120 : left 15,10 : font_color 15,0,255,0
    color 15,150,150,150 : caption 15," h(x) = "  : mark_on 15
    edit 16 : parent 16,10 : top 16,110 : left 16,20 + width(15) : width 16,370
    font_color 16,0,0,0  : text 16,"1/x"
    
    check 17 : parent 17,10 : top 17,160 : left 17,10 : font_color 17,255,255,0
    color 17,150,150,150 : caption 17," i(x) = " : mark_on 17
    edit 18 : parent 18,10 : top 18,150 : left 18,20 + width(17) : width 18,370
    font_color 18,0,0,0 :  text 18,"1 - 2*sin(x)/sinh(x)"
    
END_SUB
rem ============================================================================
SUB Container_Axes()

    container 20 : top 20,70 + height(10) : left 20,20 : width 20,200 : height 20,100
    color 20, 150,150,150: font_color 20,255,255,255 : font_bold 20
    font_size 20,16 : caption 20,"Axes"
    check 21 : parent 21,20 : top 21,40 : left 21,10 :  font_color 21,0,0,0 : mark_on 21
    color 21, 150,150,150 : caption 21,"  Abscisse (X) " : width 21,150
    check 22 : parent 22,20 : top 22,60 : left 22,10 :  font_color 22,0,0,0  : mark_on 22
    color 22, 150,150,150 : caption 22,"  Ordonnée (Y) " : width 22,170
    
END_SUB
rem ============================================================================
SUB Container_Intervalle()

    container 40 : top 40,90 + height(10) + height(20) : left 40,20 : width 40,500 : height 40,150
    color 40, 150,150,150 : font_color 40,255,255,255 : font_bold 40
    font_size 40,16 : caption 40,"A tracer sur l'intervalle"
    alpha 41 : parent 41,40 : top 41,40 : left 41,25 : font_bold 41 : font_color 41,0,0,0
    caption 41, "X minimum : "
    edit 42 : parent 42,40 : top 42,30 : left 42,25 + width(41) : font_bold 42
    width 42,60 : font_color 42,0,0,0 : text 42,"-10"
    
    alpha 43 : parent 43,40 : top 43,70 : left 43,25 : font_bold 43 : font_color 43,0,0,0
    caption 43,"Y minimum : "
    edit 44 : parent 44,40 : top 44,70 : left 44,25 + width(43) : font_bold 44
    width 44,60 : font_color 44,0,0,0 : text 44,"-2"
    
    alpha 45 : parent 45,40 : top 45,40 : left 45,250 : font_bold 45 : font_color 45,0,0,0
    caption 45, "X maximum : "
    edit 46 : parent 46,40 : top 46,35 : left 46,250 + width(45) : font_bold 46
    width 46,60 : font_color 46,0,0,0 : text 46,"10"
    
    alpha 47 : parent 47,40 : top 47,70 : left 47,250 : font_bold 47 : font_color 47,0,0,0
    caption 47, "Y maximum : "
    edit 48 : parent 48,40 : top 48,70 : left 48,250 + width(47) : font_bold 48
    width 48,60 : font_color 48,0,0,0 : text 48,"2"

END_SUB
rem ============================================================================
SUB Container_Dim_Grafic()

    container 50 : top 50,70 + height(10)  : left 50,45 + width(20) : width 50,275 : height 50,200-50-50
    color 50, 150,150,150 : font_color 50,255,255,255 : font_bold 50
    font_size 50,16 : caption 50,"Dimensions du graphique"
    
    alpha 51 : parent 51,50 : top 51,30 : left 51,5 : font_bold 51 : font_color 51,0,0,0
    caption 51, "Largeur (en pixels) : "
    edit 52 : parent 52,50 : top 52,25 : left 52,5+width(51) : font_bold 52
    width 52,50 : font_color 52,0,0,0 : text 52,"600"
    
    alpha 53 : parent 53,50 : top 53,70: left 53,5 : font_bold 53 : font_color 53,0,0,0
    caption 53, "Hauteur (en pixels) : "
    edit 54 : parent 54,50 : top 54,65 : left 54,5+width(53) : font_bold 54
    width 54,50 : font_color 54,0,0,0 : text 54,"600"

END_SUB
rem ============================================================================
SUB Executer()

    Verification()
    if checked(21) = 1 then Axe_X()
    if checked(22) = 1 then Axe_Y()
    if checked(11) = 1 then y$ = text$(12) : 2d_pen_color 0,0,255 : Tracer(y$)
    if checked(13) = 1 then g$ = text$(14) : 2d_pen_color 255,0,0 : Tracer(g$)
    if checked(15) = 1 then h$ = text$(16) : 2d_pen_color 0,255,0 : Tracer(h$)
    if checked(17) = 1 then i$ = text$(18) : 2d_pen_color 255,255,0 : Tracer(i$)

END_SUB
rem ============================================================================
SUB Verification()

    if (numeric(text$(42)) = 0) or (numeric(text$(44)) = 0)
       message "!!! ERREUR !!!" + chr$(13) + "Vérifiez X-minimum et/ou Y-minimum"
       exit_sub
    end_if
    
    if val(text$(42)) >= val(text$(46))
       message "!!! ERREUR !!!" + chr$(13) + "X-minimum  doit  être inférieure à X-maximum"
       exit_sub
    end_if

    if (numeric(text$(46)) = 0) or (numeric(text$(48)) = 0)
       message "!!! ERREUR !!!" + chr$(13) + "Vérifiez X-maximum et/ou Y-maximum"
       exit_sub
    end_if
    
    if val(text$(44)) >= val(text$(48))
       message "!!! ERREUR !!!" + chr$(13) + "Y-minimum  doit  être inférieure à Y-maximum"
       exit_sub
    end_if

    if (numeric(text$(52)) = 0) or (numeric(text$(54)) = 0)
       message "ERREUR !!!" + chr$(13) + "Vérifiez la largeur et/ou la hauteur"
       exit_sub
    end_if
    
    width 100,val(text$(52))+5 : height 100,val(text$(54))+5 : show 100
'    xc = width(100)/2  : yc = height(100)/2
    xmin = val(text$(42)) : xmax = val(text$(46))
    ymin = val(text$(44)) : ymax = val(text$(48))
    largeur = val(text$(52)) : hauteur = val(text$(54))
    color 100,100,50,20

END_SUB
rem ============================================================================
SUB Quitter()

    if message_warning_yes_no("Vous voulez vraiment quitter ?") = 1 then terminate
    
END_SUB
rem ============================================================================
SUB Axe_X()

    dim_local p1,y0,i,pas
    pas = largeur / (xmax-xmin)
    y0 = hauteur / (ymax-ymin) : p1 = hauteur + y0 * ymin
    2d_pen_color 200,200,200 : font_color 100,255,255,255 : 2d_fill_color 100,50,20
    2d_line 0,p1,largeur,p1
    for i = 0 to largeur step pas
        2d_line i,p1-5,i,p1+5
        if (xmin+i/pas) <> 0 then print_locate i,p1+10 : print int(0.5+xmin+i/pas)
    next i

END_SUB
rem ============================================================================
SUB Axe_Y()

    dim_local q1,x0 ,i,pas
     pas = hauteur / (ymax-ymin)
    x0 = largeur / (xmax-xmin) : q1 = 0-x0*xmin
    2d_pen_color 200,200,200 : : font_color 100,255,255,255 : 2d_fill_color 100,50,20
    2d_line q1,0,q1,hauteur
    for i = 0 to hauteur step pas
        2d_line q1-5,i,q1+5,i
        if (ymax-i/pas) <> 0 then print_locate q1-15,i-5 : print int(0.5+ymax - i/pas)
    next i

END_SUB
rem ============================================================================
' Passage de coordonnées utilisateur aux coordonnées écran
SUB CU2CE(xr,yr)

    dim_local a1,b1,a2,b2
    a1 = largeur/(xmax-xmin) : b1 = (0-largeur*xmin)/(xmax-xmin)
    a2 = 0 - hauteur/(ymax-ymin) : b2 = (0-hauteur*ymin)/(ymax-ymin)
    xe = a1 * xr + b1 : ye = a2 * yr + b2

END_SUB
rem ============================================================================
SUB Fonction(y$,x)
    dim_local erreur$
    ret% = dll_call2("SetVariable",adr(var$),adr(x))
    ret% = dll_call2("Eval", adr(y$), adr(y))
    select ret%
       case 0 : ' Aucune erreur
       case 1 : erreur$ = "Signe inattendu"
       case 2 : erreur$ = "Parenthèses non équilibrées"
       case 3 : erreur$ = "Division par zéro"
       case 4 : erreur$ = "Variable non définie"
       case 5 : erreur$ = "Fonction non définie"
    end_select
    if ret% <> 0
       message "!!! ERREUR !!!" + chr$(13) + erreur$ + chr$(13) + "dans la fonction" + chr$(13) + y$
       err = 1
    end_if
END_SUB
rem ============================================================================
SUB Tracer(y$)
    err = 0
    Fonction(y$,xmin)
    if err > 0 then end
    CU2CE(xmin,y) : 2d_poly_from xe,ye
    for x = xmin to xmax step pi/180
        Fonction(y$,x) : y = y-(ymin+ymax)
        CU2CE(x,y) : 2d_poly_to xe,ye : display
    next x
END_SUB
rem ============================================================================
SUB Aide()
    dim_local t$,l$
    l$ = chr$(13)
    t$ = " Le programme utilise EVAL.DLL, bibliothèque développée par Jean Debord" + l$
    t$ = t$ + "pour évaluer une expression mathématique." + l$
    t$ = t$ + "Le programme permet de tracer sur le même graphique jusqu'à 4 courbes" + l$
    t$ = t$ + "de couleurs différentes." + l$
    t$ = t$ + "Vous pouvez saisir le texte de vos fonctions dans Fonctions" + l$
    t$ = t$ + "Pour que le programme trace la (ou les) courbe(s) vous devez cocher" + l$
    t$ = t$ + "les CHECKs correspondants." + l$
    t$ = t$ + "Si vous désirez tracer les axes, cocher leur CHECK." + l$
    t$ = t$ + "Vous pouvez modifier les dimensions du graphique ainsi que" + l$
    t$ = t$ + "l'intervalle du tracé dans les EDITs" + l$ + l$
    t$ = t$ + "Les Fonctions disponibles dans la DLL et que vous pouvez utiliser dans ce programme" +l$
    t$ = t$ + "  abs   : valeur absolue " + l$
    t$ = t$ + "  sgn   : signe " + l$
    t$ = t$ + "  int   : partie entière" + l$
    t$ = t$ + "  sqrt  : racine carrée" + l$
    t$ = t$ + "  exp   : exponentielle " + l$
    t$ = t$ + "  ln    : logarithme naturel (néperien)" + l$
    t$ = t$ + "  log10 : logarithme décimal" + l$
    t$ = t$ + "  fact  : factorielle " + l$
    t$ = t$ + "  rnd   : nombre aléatoire appartenant à [0,1)" + l$
    t$ = t$ + "  deg   : degré ---> radian " + l$
    t$ = t$ + "  rad   : radian ---> degré " + l$
    t$ = t$ + "  sin   : sinus" + l$
    t$ = t$ + "  cos   : cosinus" + l$
    t$ = t$ + "  tan   : tangente" + l$
    t$ = t$ + "  asin  : arc sinus " + l$
    t$ = t$ + "  acos  : arc cosinus" + l$
    t$ = t$ + "  atan  : arc tangente" + l$
    t$ = t$ + "  atan2 : atan2(y,x) = atan(y/x) dans les 4 quadrants" + l$
    t$ = t$ + "  sinh  : sinus hyperbolique" + l$
    t$ = t$ + "  cosh  : cosinus hyperboloique " + l$
    t$ = t$ + "  tanh  : tangente hyperboloique" + l$
    t$ = t$ + "  asinh : sinus hyperbolique inverse" + l$
    t$ = t$ + "  acosh : cosinus hyperbolique inverse" + l$
    t$ = t$ + "  atanh : tangente hyperbolique inverse " + l$
    t$ = t$ + "  gamma : fonction gamma (factorielle généralisée)" + l$
    t$ = t$ + "  erf   : error function (distrinution normale)" + l$
    message t$
END_SUB
rem ============================================================================

Voici le résultat:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7839
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 20 Jan 2017 - 21:03

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Sam 21 Jan 2017 - 0:24

sunny Merci ygeronimi. sunny
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Dim 22 Jan 2017 - 10:48

J'adore ton programme. Il fonctionne super bien et merci encore à Jean Debord pour sa DLL qui contribue à ce super programme qui servira sans doute bientôt pour vérifier le tracé des courbes de mon fiston ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 1:28

Merci Jicehel pour ces mots gentils.
Puisse ton fils trouver du plaisir à se servir de mon programme.

A propos :
Avant de faire mon programme, j’ai commencé à coder un interpréteur des expressions mathématiques (un parser).
C’était un très bon exercice de programmation, pas simple du tout, et puis je me suis rappelé de EVAL.DLL de jean Debord que je salue.
Cette dll m’a épargné beaucoup d’efforts.
Merci Jean_debord.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 725
Age : 62
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 9:13

Merci papydall Smile

Moi aussi je me suis basé sur un code antérieur, comme le montrent les commentaires de la DLL :

Code:

'  Title   :  Simple Expression Evaluator
'  Version :  1.1
'  Author  :  Aleksandar Ruzicic (admin@krcko.net)
'             Adapted by Jean Debord (debord.jean@orange.fr)
'  File    :  fbeval.bas
'
' BIG thanks goes to Jack W. Crenshaw for his
' "LET'S BUILD A COMPILER!" text series.
'
' You're free to use this in any way you find it
' useful, just "give credit where credit is due"

Rendons donc à César ...

L'avantage que j'ai trouvé à ce "parser", par rapport à d'autres, c'est qu'on peut lui ajouter très facilement des fonctions. C'est ce que j'ai fait avec erf et gamma par exemple.

Donc si vous avez besoin d'autres fonctions du même type, n'hésitez pas à les demander.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Ouf_ca_passe

avatar

Nombre de messages : 186
Age : 68
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Nombres premiers   Lun 23 Jan 2017 - 9:19

Dis Papydall

S'il te plaît.
Dessine-moi des petites étoiles positionnées avec les coordonnées des premiers nombres premiers.

Le petit Ouf_ca_passe

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 15:35

Ouf_ca_passe a écrit:
S'il te plaît.
Dessine-moi des petites étoiles positionnées avec les coordonnées des premiers nombres premiers.
Désolé Ouf, mais je n’ai pas  compris  ta demande.
Une position dans le plan nécessite deux coordonnées (abscisse et ordonnée  en coordonnées cartésiennes ou module et argument en coordonnées polaires), je ne vois pas ce que veut dire « coordonnées des premiers nombres premiers »

Tu veux bien jeter un œil sur la spirale de Ulam ou bien sur la Super ellipse
Sinon, explique ce que tu veux obtenir, et on verra si quelqu’un d’autre pourrait apporter une solution.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 15:49

S'il te plait, dessine-moi un mouton...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 186
Age : 68
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Nombres premiers   Lun 23 Jan 2017 - 15:54

Cher Papydall

x=0 -> y=0 ! Ce n'est donc pas une "fonction" graphique
x=1 -> y=1 ! J'appellerai plutôt ça un "nuage de points"
x=2 -> y=2 ! et j'ai compliqué le défi en te demandant
x=3 -> y=3 ! des étoiles à la place des points.
x=4 -> y=5 ! Je me doute bien que ton système d'axes sera orthogonal
x=5 -> y=7 ! mais n'aura pas la même " norme" (échelle) en abscisse et
x=6 -> y=11 ! en ordonnée.
x=7 -> y=13
x=8 -> y=17
x=9 -> y=19
x=10 -> y=23
x=11 -> y=29
etc.

Cordialement
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 17:35

Pour Ouf_ça_passe (ou ça casse) Evil or Very Mad

Code:

dim x,y,i
data 2,3,5,7,11,13,17,19,23,29
picture 10 : full_space 10 : 2d_target_is 10 : print_target_is 10
2d_line 0,height(10)-50,width(10),height(10)-50 : font_bold 10 : font_size 10,10
2d_line 50,0,50,height(10)
for i = 1 to 10
    read y : print_locate i*30+50,height(10)-50-y*12 : print "*" + str$(y)
next i

Pour JL35 :
A défaut du mouton, voici une rose … des vents !   tongue

Code:

rem ============================================================================
rem           Rose des vents
rem ============================================================================
Init()
Ouest()
Nord()
Est()
Sud()
Nord_Ouest()
Nord_Est()
Sud_Est()
Sud_Ouest()
Directions()
end
rem ============================================================================
SUB Init()
    dim e : e = 2
    width 0,400*e : height 0,400*e
    picture 10 : full_space 10 : 2d_target_is 10 : print_target_is 10
    font_name 10,"arial" : font_bold 10 : font_size 10,12 : color 10,240,200,150

END_SUB
rem ============================================================================
SUB Ouest()
    2d_pen_color 0,0,255 : 2d_poly_from 100*e,190*e
    2d_poly_to 163*e,217*e   : 2d_poly_to 190*e,190*e : 2d_poly_to 100*e,190*e
    2d_flood 163*e,215*e,0,0,255
    
    2d_pen_color 255,0,0 : 2d_poly_from 100*e,190*e
    2d_poly_to 163*e,163*e   : 2d_poly_to 190*e,190*e : 2d_poly_to 100*e,190*e
    2d_flood 160*e,165*e,255,0,0
    
END_SUB
rem ============================================================================
SUB Nord()
    2d_pen_color 0,0,255 : 2d_poly_from 190*e,100*e
    2d_poly_to 163*e,163*e  : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,100*e
    2d_flood 165*e,163*e,0,0,255
    
    2d_pen_color 255,0,0 : 2d_poly_from 190*e,100*e
    2d_poly_to 217*e,163*e  : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,100*e
    2d_flood 215*e,163*e,255,0,0
    
    
END_SUB
rem ============================================================================
SUB Est()
    2d_pen_color 0,0,255 : 2d_poly_from 280*e,190*e
    2d_poly_to 217*e,163*e  : 2d_poly_to 190*e,190*e : 2d_poly_to 280*e,190*e
    2d_flood 217*e,165*e,0,0,255

    2d_pen_color 255,0,0 : 2d_poly_from 280*e,190*e
    2d_poly_to 217*e,217*e  : 2d_poly_to 190*e,190*e : 2d_poly_to 280*e,190*e
    2d_flood 217*e,215*e,255,0,0

END_SUB
rem ============================================================================
SUB SUD()
    2d_pen_color 0,0,255 : 2d_poly_from 190*e,280*e
    2d_poly_to 217*e,217*e  : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,280*e
    2d_flood 215*e,217*e,0,0,255

    2d_pen_color 255,0,0 : 2d_poly_from 190*e,280*e
    2d_poly_to 163*e,217*e  : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,280*e
    2d_flood 165*e,217*e,255,0,0

END_SUB
rem ============================================================================
SUB Nord_Ouest()
    2d_pen_color 0,0,255 : 2d_poly_from 127*e,127*e
    2d_poly_to 145*e,170*e  : 2d_poly_to 163*e,163*e : 2d_poly_to 127*e,127*e
    2d_flood 145*e,165*e,0,0,255

    2d_pen_color 255,0,0 : 2d_poly_from 127*e,127*e
    2d_poly_to 163*e,163*e  : 2d_poly_to 170*e,145*e : 2d_poly_to 127*e,127*e
    2d_flood 163*e,160*e,255,0,0

END_SUB
rem ============================================================================
SUB Nord_Est()
    2d_pen_color 0,0,255 : 2d_poly_from 251*e,127*e
    2d_poly_to 210*e,145*e : 2d_poly_to 217*e,163*e : 2d_poly_to 251*e,127*e
    2d_flood 215*e,145*e,0,0,255

    2d_pen_color 255,0,0 : 2d_poly_from 251*e,127*e
    2d_poly_to 234*e,170*e  : 2d_poly_to 217*e,163*e : 2d_poly_to 251*e,127*e
    2d_flood 234*e,165*e,255,0,0

END_SUB
rem ============================================================================
SUB Sud_Est()
    2d_pen_color 0,0,255 : 2d_poly_from 251*e,251*e
    2d_poly_to 234*e,210*e : 2d_poly_to 217*e,217*e : 2d_poly_to 251*e,251*e
    2d_flood 220*e,217*e,0,0,255

    2d_pen_color 255,0,0 : 2d_poly_from 251*e,251*e
    2d_poly_to 210*e,235*e : 2d_poly_to 217*e,217*e : 2d_poly_to 251*e,251*e
    2d_flood 215*e,235*e,255,0,0

END_SUB
rem ============================================================================
SUB Sud_Ouest()
    2d_pen_color 0,0,255 : 2d_poly_from 127*e,251*e
    2d_poly_to 170*e,235*e : 2d_poly_to 163*e,217*e : 2d_poly_to 127*e,251*e
    2d_flood 163*e,220*e,0,0,255

    2d_pen_color 255,0,0 : 2d_poly_from 127*e,251*e
    2d_poly_to 145*e,210*e : 2d_poly_to 163*e,217*e : 2d_poly_to 127*e,251*e
    2d_flood 160*e,217*e,255,0,0

END_SUB
rem ============================================================================
SUB Directions()
    2d_fill_color 240,200,150
    print_locate  188*e, 85*e :print "N"
    print_locate  188*e, 282*e : print "S"
    print_locate  80*e, 185*e : print "O"
    print_locate  290*e, 185*e : print "E"
    print_locate  120*e, 110*e : print "NO"
    print_locate  260*e, 110*e: print "NE"
    print_locate  120*e, 255*e : print "SO"
    print_locate  260*e, 255*e : print "SE"
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 17:45

Merci papydall ! je n'aurais jamais pensé qu'on m'offrirait encore des roses, à mon âge ! (d'ailleurs c'est une première, on ne m'en avait encore jamais offert). Et celle-ci est superbe !

Juste un petit défaut, chez moi elle n'est pas orientée automatiquement vers le nord, mais vers le plafond... ou alors l'étoile polaire ?

Mais bon, je ne vais pas pinailler, tout de même ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

Nombre de messages : 186
Age : 68
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: OUI, c'est ça   Lun 23 Jan 2017 - 17:54

mais je m'attendais à plus de dispersion des points que ça.

Sur les 10 premiers nombres premiers , on dirait une courbe parfaite ?!? Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 17:56

JL35 a écrit:
Merci papydall ! je n'aurais jamais pensé qu'on m'offrirait encore des roses, à mon âge ! (d'ailleurs c'est une première, on ne m'en avait encore jamais offert).

Pour toute chose, il y a un début.


JL35 a écrit:
Juste un petit défaut, chez moi elle n'est pas orientée automatiquement vers le nord, mais vers le plafond... ou alors l'étoile polaire ?

Elle pointe vers le Nord Martien.
Demande à notre ami JJN4, ou attendons l’avis de Ouf_ça_p(c)asse !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Ouf_ca_passe

avatar

Nombre de messages : 186
Age : 68
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: Rose   Lun 23 Jan 2017 - 18:05

En tout cas, je souhaite qu'elle dure plus longtemps qu'un matin quel que point cardinal elle s'oriente.

https://fr.wikipedia.org/wiki/Consolation_%C3%A0_Du_P%C3%A9rier
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 18:38

Les plus court sont les meilleurs !

Code:

dim i
width 0,600 : height 0,600
for i = 1 to 600 step 3
    2d_pen_color mod(i,255), abs(mod(600-i,255)),i/3
    2d_line 0,0,600,i : 2d_line 0,0,i,600
next i
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Ouf_ca_passe

avatar

Nombre de messages : 186
Age : 68
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

MessageSujet: IMPRESSIONNANT !   Lun 23 Jan 2017 - 18:51

Avec si peu de code

Bonne soirée
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 22:39

On peut faire plus court, mais en noir et blanc.

Code:

dim t
for t = 1 to width(0) step 3 : 2d_line 0,0,width(0),t : 2d_line 0,0,t,width(0) : next t

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Lun 23 Jan 2017 - 23:37

Bravo Papydall. Tiens, du coup je fais ma variante mais en un peu plus de lignes
Code:
dim t, a : a = width(0)
for t = 1 to a step 2 + 5*t : 2d_pen_color abs(a/2 - t)/ 2, t/3, 150 : 2d_line 0,0,a,t : 2d_line 0,0,t,a : next t: 2d_line 0,0,a,a
wait 1000 : for t = 1 to a step 0.5 : 2d_pen_color abs(a/2 - t)/ 2, t/3, 150 : 2d_line 0,0,a,t : 2d_line 0,0,t,a : next t: 2d_line 0,0,a,a
wait 1000 : for t = 1 to a step 4 + 3*t : 2d_pen_color  t/3, abs(a/2 - t)/ 2, 150 : 2d_line 0,0,a,t : 2d_line 0,0,t,a : next t: 2d_line 0,0,a,a
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Mar 24 Jan 2017 - 0:41

Very good !

C’est formidable qu’avec un petit code et beaucoup d'imagination, on fait des jolies choses, beaucoup mieux que le mouton demandé par JL35  tongue
Vive Panoramic !
Vive les Panoramiciens !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Mar 24 Jan 2017 - 7:45

C'est un beau résultat pour un petit code (petit par son nombre de lignes, mais grand par le résultat... Very Happy ).

Celui de Jicehel est facile à transformer en animation, avec un boucle for/next ou while/end_while.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5385
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Mar 24 Jan 2017 - 11:31

Sers-toi, Jean Claude.
On attend ton animation avec une boucle même du genre repeat / until tongue

Es-tu capable de dessiner un mouton pour notre ami JL35 ?
Bon, il acceptera, sans doute, une brebis, mais pas trop vielle, STP !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Mar 24 Jan 2017 - 13:38

En bikini ?

Et non, pas une vieille bique !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Mar 24 Jan 2017 - 16:16

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   Mar 24 Jan 2017 - 17:05

C'est l'idée, mais un peu schématisé !

(papydall, excuse-moi pour le hors piste...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Traceur de courbes représentatives des fonctions y = f(x)   

Revenir en haut Aller en bas
 
Traceur de courbes représentatives des fonctions y = f(x)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Supprimer les sujets-traceur (après déplacement) sans risquer de perte les sujets réels
» sujet traceur
» Sujet traceur ? Si oui insupprimable ?
» traceur sur membres
» Laisser un lien traceur pour un sujet dépacé

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: