Forum de Programmation en langage PANORAMIC
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Mots-clés

Derniers sujets
»  Capture d’écran de Windows
Ven 17 Nov - 0:27 par Admin

»  Courbes de Bézier cubiques
Mer 8 Nov - 2:28 par Admin

» Harmonographe
Mer 8 Nov - 2:22 par Admin

»  Simuler l’appui d'une touche ou combinaison de touches
Sam 16 Sep - 13:58 par Admin

» Régalez-vous !
Sam 29 Juil - 11:42 par Admin

» Les bienfaits du rire
Ven 7 Juil - 0:04 par Admin

» Derrière chaque beau parleur se cache un magnifique menteur
Ven 7 Juil - 0:01 par Admin

» Carré magique d’ordre 3 à 99 et plus si affinité !
Mer 5 Juil - 3:21 par Admin

» Dessine-moi une étoile
Mar 4 Juil - 17:32 par Admin

Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   

Calendrier Calendrier


TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE

Voir le sujet précédent Voir le sujet suivant Aller en bas

TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE

Message par Admin le Ven 23 Juin - 0:59

Code:

' ******************************************************************************
'
'                    TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE
'
'                                  PAR PAPYDALL
'
' ******************************************************************************
dim titre$,x,y,p,lx,ly,a,xc,yc,xp,yp,xmin,xmax,ymin,ymax,epsilon,s$,nbobj%
dim circulaires1%,circulaires2%,hyperboliques1%,hyperboliques2%,autres%
dim form_graph%

label fonctions_circulaires, fonctions_circulaires_inverses
label fonctions_hyperboliques, fonctions_hyperboliques_inverses, autres_fonctions
label sinus, cosinus, tangente, cotangente, secante, cosecante
label arc_sinus, arc_cosinus, arc_tangente, arc_cotangente, arc_secante, arc_cosecante
label sinus_hyperbolique, cosinus_hyperbolique, tangente_hyperbolique
label cotangente_hyperbolique, secante_hyperbolique, cosecante_hyperbolique
label argument_sinus_hyperbolique, argument_cosinus_hyperbolique
label argument_tangente_hyperbolique, argument_cotangente_hyperbolique
label argument_secante_hyperbolique, argument_cosecante_hyperbolique
label logarithme_neperien, logarithme_decimal, logarithme_binaire
label sinus_cardinal, sinus_cardinal_normalise, exponentielle
label active_circulaires, active_hyperboliques, active_autres,axes,demarrer
label hide_form_graph,fin

gosub demarrer
end

' ******************************************************************************
demarrer:

  p = pi/180
  lx = 1020 : ly = 750 : xc = lx/2 : yc = ly/2
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : epsilon = power(10,0-10)
  titre$ = string$(60," ")
  titre$ = titre$ + "TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE    PAR PAPYDALL"
  caption 0,titre$
  width 0, 1020: height 0,600
  on_click 0,fin        : ' <CLICK> pour sortir
  
  nbobj% = nbobj% + 1  : ' 1er bouton
  button nbobj% : width nbobj%, 270 : top nbobj%,10 : left nbobj%,5
  caption nbobj% ,"FONCTIONS TRIGONOMETRIQUES CIRCULAIRES"
  on_click nbobj%, active_circulaires
  
  nbobj% = nbobj% + 1  : ' 2ème bouton
  button nbobj% : width nbobj% , 410 : top nbobj%,10 : left nbobj%,320
  caption nbobj% ,"FONCTIONS TRIGONOMETRIQUES HYPERBOLIQUES"
  on_click nbobj%, active_hyperboliques
  
  nbobj% = nbobj% + 1  : ' 3ème bouton
  button nbobj%  : width nbobj%,150  : top nbobj% ,10 : left nbobj% ,800
  caption nbobj%,"AUTRES FONCTIONS" : on_click nbobj%, active_autres
  
  nbobj% = nbobj% + 1  : ' Liste des fonctions circulaires
  list nbobj%  : width nbobj%, 100  : top nbobj%,40 : left nbobj%, 10
  item_add nbobj%, "SINUS"    : item_add nbobj%, "COSINUS"
  item_add nbobj%, "TANGENTE" : item_add nbobj%, "COTANGENTE"
  item_add nbobj%, "SECANTE"  : item_add nbobj%, "COSECANTE"
  circulaires1% = nbobj%
  inactive circulaires1% : on_click circulaires1%, fonctions_circulaires
  
  nbobj% = nbobj% + 1 : ' Liste des fonctions circulaires inverses (ou réciproques)
  list nbobj%  : width nbobj%,120 : top nbobj%,40 : left nbobj%,140
  item_add nbobj%,"ARC_SINUS"      : item_add nbobj%,"ARC_COSINUS"
  item_add nbobj%, "ARC_TANGENTE"  : item_add nbobj%,"ARC_COTANGENTE"
  item_add nbobj%,"ARC_SECANTE"    : item_add nbobj%, "ARC_COSECANTE"
  circulaires2% = nbobj%
  inactive circulaires2% : on_click circulaires2%, fonctions_circulaires_inverses
  
  nbobj% = nbobj% + 1    : ' Liste des fonctions hyperboliques
  list nbobj%    : width nbobj% ,190 : top nbobj% ,40 :left nbobj% ,300
  item_add nbobj% , "SINUS_HYPERBOLIQUE"
  item_add nbobj% , "COSINUS_HYPERBOLIQUE"
  item_add nbobj% , "TANGENTE_HYPERBOLIQUE"
  item_add nbobj% , "COTANGENTE_HYPERBOLIQUE"
  item_add nbobj% , "SECANTE_HYPERBOLIQUE"
  item_add nbobj% , "COSECANTE_HYPERBOLIQUE"
  hyperboliques1% = nbobj%
  inactive hyperboliques1%  : on_click hyperboliques1%, fonctions_hyperboliques
  
  nbobj% = nbobj% + 1:' Liste des fonctions hyperboliques inverses (ou réciproques)
  list nbobj%  : width nbobj%,250 : top nbobj%,40 : left nbobj%,500
  item_add nbobj%, "ARGUMENT_SINUS_HYPERBOLIQUE"
  item_add nbobj%, "ARGUMENT_COSINUS_HYPERBOLIQUE"
  item_add nbobj%, "ARGUMENT_TANGENTE_HYPERBOLIQUE"
  item_add nbobj%, "ARGUMENT_COTANGENTE_HYPERBOLIQUE"
  item_add nbobj%, "ARGUMENT_SECANTE_HYPERBOLIQUE"
  item_add nbobj%, "ARGUMENT_COSECANTE_HYPERBOLIQUE"
  hyperboliques2% = nbobj% : inactive hyperboliques2%
  on_click hyperboliques2%, fonctions_hyperboliques_inverses
  
  nbobj% = nbobj% + 1  : ' Liste autres fonctions
  list nbobj%    : width nbobj%,200    : top nbobj%,40 : left nbobj%,780
  item_add nbobj%, "SINUS CARDINAL"  : item_add nbobj%, "SINUS CARDINAL NORMALISE"
  item_add nbobj%, "LOGARITHME NEPERIEN" : item_add nbobj%, "LOGARITHME DECIMAL"
  item_add nbobj%, "LOGARITHME BINAIRE"  : item_add nbobj%, "EXPONENTIELLE"
  autres% = nbobj% : inactive autres% : on_click autres%, autres_fonctions
  
  nbobj% = nbobj% + 1 : ' FORM pour les tracés des courbes
  form nbobj%  : width nbobj% ,lx+10 : height nbobj% ,ly : hide nbobj%
  form_graph% = nbobj% : 2d_target_is form_graph%
  color form_graph% ,0,0,0 : font_color form_graph% ,255,255,0
  font_size form_graph% ,12
  font_bold form_graph% : on_click form_graph% ,hide_form_graph
  
  font_color 0,0,0,255
  print_locate 100,350
  print "<CLICK> SUR L'UN DES 3 BOUTONS POUR CHOISIR UNE FONCTION" ;
  print string$(100," ");"<CLICK> N'IMPORTE OU POUR SORTIR"

return
' ******************************************************************************
active_circulaires:
  active circulaires1% : active circulaires2%
return
' ******************************************************************************
active_hyperboliques:
  active  hyperboliques1% : active  hyperboliques2%
return
' ******************************************************************************
active_autres:
  active autres%
return
' ******************************************************************************
hide_form_graph:
  hide form_graph% : print_target_is 0 : print_locate 100,350
  print "<CLICK> SUR L'UN DES 3 BOUTONS POUR CHOISIR UNE FONCTION" ;
  print string$(100," ");"<CLICK> N'IMPORTE OU POUR SORTIR"
return
' ******************************************************************************
fin:
  terminate
return
' ******************************************************************************
fonctions_circulaires:

  if item_index$(circulaires1%) = "SINUS"      then gosub sinus
  if item_index$(circulaires1%) = "COSINUS"    then gosub cosinus
  if item_index$(circulaires1%) = "TANGENTE"  then gosub tangente
  if item_index$(circulaires1%) = "COTANGENTE" then gosub cotangente
  if item_index$(circulaires1%) = "SECANTE"    then gosub secante
  if item_index$(circulaires1%) = "COSECANTE"  then gosub cosecante

return
' ******************************************************************************
fonctions_circulaires_inverses:

  if item_index$(circulaires2%) = "ARC_SINUS"      then gosub arc_sinus
  if item_index$(circulaires2%) = "ARC_COSINUS"    then gosub arc_cosinus
  if item_index$(circulaires2%) = "ARC_TANGENTE"  then gosub arc_tangente
  if item_index$(circulaires2%) = "ARC_COTANGENTE" then gosub arc_cotangente
  if item_index$(circulaires2%) = "ARC_SECANTE"    then gosub arc_secante
  if item_index$(circulaires2%) = "ARC_COSECANTE"  then gosub arc_cosecante

return
' ******************************************************************************
fonctions_hyperboliques:

  if item_index$(hyperboliques1%) = "SINUS_HYPERBOLIQUE"      then gosub sinus_hyperbolique
  if item_index$(hyperboliques1%) = "COSINUS_HYPERBOLIQUE"    then gosub cosinus_hyperbolique
  if item_index$(hyperboliques1%) = "TANGENTE_HYPERBOLIQUE"  then gosub tangente_hyperbolique
  if item_index$(hyperboliques1%) = "COTANGENTE_HYPERBOLIQUE" then gosub cotangente_hyperbolique
  if item_index$(hyperboliques1%) = "SECANTE_HYPERBOLIQUE"    then gosub secante_hyperbolique
  if item_index$(hyperboliques1%) = "COSECANTE_HYPERBOLIQUE"  then gosub cosecante_hyperbolique

return
' ******************************************************************************
fonctions_hyperboliques_inverses:

  if item_index$(hyperboliques2%) = "ARGUMENT_SINUS_HYPERBOLIQUE"      then gosub argument_sinus_hyperbolique
  if item_index$(hyperboliques2%) = "ARGUMENT_COSINUS_HYPERBOLIQUE"    then gosub argument_cosinus_hyperbolique
  if item_index$(hyperboliques2%) = "ARGUMENT_TANGENTE_HYPERBOLIQUE"  then gosub argument_tangente_hyperbolique
  if item_index$(hyperboliques2%) = "ARGUMENT_COTANGENTE_HYPERBOLIQUE" then gosub argument_cotangente_hyperbolique
  if item_index$(hyperboliques2%) = "ARGUMENT_SECANTE_HYPERBOLIQUE"    then gosub argument_secante_hyperbolique
  if item_index$(hyperboliques2%) = "ARGUMENT_COSECANTE_HYPERBOLIQUE"  then gosub argument_cosecante_hyperbolique

return
' ******************************************************************************
autres_fonctions:

  if item_index$(autres%) = "SINUS CARDINAL"            then gosub sinus_cardinal
  if item_index$(autres%) = "SINUS CARDINAL NORMALISE"  then gosub sinus_cardinal_normalise
  if item_index$(autres%) = "LOGARITHME NEPERIEN"      then gosub logarithme_neperien
  if item_index$(autres%) = "LOGARITHME DECIMAL"        then gosub logarithme_decimal
  if item_index$(autres%) = "LOGARITHME BINAIRE"        then gosub logarithme_binaire
  if item_index$(autres%) = "EXPONENTIELLE"            then gosub exponentielle

return
' ******************************************************************************
' *** Tracé des axes
axes:

  if xmin <> -2*pi
    for a = xmin to xmax step p
      x = a : y = 0
      xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
      print_locate xp,yp+10 : print x
      2d_pen_color 127,127,127
      2d_line xp,0,xp,yp*2
    next a
  
    for a = ymin to ymax step p
      x = 0 : y = a
      xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
      print_locate xp-22,yp/2-10+ly/4-2
    print 0-y
    2d_line 2*xp,yp/2+ly/4,xmax,yp/2 +ly/4
    next a
    2d_pen_color 255,0,0            : ' rouge pour tracer les axes
    2d_line 0,ly/2,lx,ly/2          : ' tracé de l'axe des x
    2d_line lx/2,0,lx/2,ly          : ' tracé de l'axe des y
    2d_pen_color 0,255,0            : ' vert pour tracer la courbe
    return
  end_if
  
  
  for a = xmin to xmax step pi/2  : ' graduation de l'axe des X
    x = a : y = 0
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
    print_locate xp,yp+10
    select int((a)/pi/2)
      case -4 : s$ = "-2pi"
      case -3 : s$ = "-3pi/2"
      case -2 : s$ = "-pi"
      case -1 : s$ = "-pi/2"
      case 0  : s$ = "0"
      case 1  : s$ = "pi/2"
      case 2  : s$ = "pi"
      case 3  : s$ = "3pi/2"
      case 4  : s$ = "2pi"
    end_select
  
    if int((a)/pi/2) = 0 : else : print s$ : end_if  : ' ne pas afficher le zero
    print_locate lx-22,yp+10 : print "2pi"          : ' il sera affiché sur l'axe des y
    2d_pen_color 127,127,127
    2d_line xp,0,xp,yp*2
  next a
  
  for a = ymin to ymax step 1  : ' graduation de l'axe des Y
    x = 0 : y = a
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
    print_locate xp-22,yp/2-10+ly/4-2
    print 0-a
    2d_line 2*xp,yp/2+ly/4,xmax,yp/2 +ly/4
  next a
  
  2d_pen_color 255,0,0            : ' rouge pour tracer les axes
  2d_line 0,ly/2,lx,ly/2          : ' tracé de l'axe des x
  2d_line lx/2,0,lx/2,ly          : ' tracé de l'axe des y
  2d_pen_color 0,255,0            : ' vert pour tracer la courbe
  
return

' ******************************************************************************
' *** Fonctions circulaires : les fonctions COS et SIN s'appellent des fonctions
'    circulaires parce que le cercle d'équation x*x + y*y = 1 peut se
'    paramétrer en
'    x = COS(t)
'    y = SIN(t) avec t réel quelconque.
' ******************************************************************************
sinus:

  ' Pour toute les fonctions trigonométriques,la variable indépendente x est
  ' exprimée en radians. Si vous utilisez les dégrés, n'oubliez pas de les
  ' convertir en radians, en multipliant les dégrés par le coefficient pi/180.
  
  print_target_is form_graph% : show form_graph%
  caption  form_graph% , string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = SIN(X)"
  print " La fonction SIN(x) (sinus circulaire de x) est une fonction définie quelque soit x.":print
  print " La fonction y = sin(x) est comprise entre + ou -1 : -1 <= sin(x) <= +1":print
  print : print " En PANORAMIC, la fonction sinus est notée SIN(X)"
  
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
  x = xmin : y = sin(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = xmin+p to xmax step p
    x = a : y = sin(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

cosinus:

  print_target_is form_graph% : show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = COS(X)"
  print " La fonction COS(x)(cosinus circulaire de x) est une fonction définie quelque soit x.":print
  print " La fonction y = cos(x) est comprise entre + ou -1 : -1 <= cos(x) <= +1":print
  print:print "En PANORAMIC, la fonction cosinus est notée COS(X)"
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
  x = xmin : y = cos(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = xmin to xmax step p
    x = a : y = cos(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

tangente:

  print_target_is form_graph% : show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = TAN(X)"
  print " La fonction TAN(x) (tangente circulaire de x) qui est égale à SIN(x)/COS(x) est définie quelque soit x tel que" :print
  print " COS(x) ne soit pas nul." :print
  print " TAN(x) est donc définie pour tout x <> pi/2 + k*pi avec k entier positif,négatif ou nul." :print
  print " La fonction y = tan(x) peut prendre toutes les valeures de moins l'infini à plus l'infini." :print
  print " Notez bien le tracé des asymptotes verticales pour les valeurs de pi/2+k*pi." :print
  print : print " En PANORAMIC, la fonction tangente est notée TAN(X)"
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
  x = xmin : y = tan(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = xmin to xmax step p
    x = a : y = tan(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

cotangente:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = COTAN(X)"
  print_target_is form_graph%
  print " La fonction COTAN(x) (cotangente circulaire de x) qui est égale à : 1/TAN(x) = COS(x)/SIN(x)":print
  print " est définie quelque soit x tel que SIN(x) ne soit pas nul. COTAN(x) est donc définie pour tout x <> k*pi avec k entier positif,":print
  print " négatif ou nul. La fonction y = cotan(x) peut prendre toutes les valeures de moins l'infini à plus l'infini.":print
  print " Notez bien le tracé des asymptotes verticales pour les valeurs de k*pi.":print
  print:print " En PANORAMIC, la fonction cotangente n'existe pas. Pour l'utiliser faites y = 1/tan(x)"
  
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
  x = xmin : y = 1/tan(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = xmin to xmax step p
    x = a : y = 1/tan(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return

' ******************************************************************************

secante:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = SEC(X)"
  print_target_is form_graph%
  print " La fonction SEC(x) (secante circulaire de x) qui est égale à 1/COS(x) est définie quelque soit x tel que COS(x) ne soit pas nul.":print
  print " SEC(x) est donc définie pour x <> pi/2 + k*pi avec k entier positif, négatif ou nul.":print
  print " La fonction y = sec(x) peut prendre toutes les valeures de ]-l'infini à -1] et de [+1 à + l'infini[.":print
  print " Notez bien le tracé des asymptotes verticales pour les valeurs de pi/2 + k*pi.":print
  print : print " En PANORAMIC, la fonction secante n'existe pas. Pour l'utiliser faites y = 1/cos(x)"
  
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
  
  x = xmin : y = 1/cos(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = xmin to xmax step p/2
    x = a : y = 1/cos(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return

' ******************************************************************************

cosecante:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = COSEC(X)"
  print_target_is form_graph%
  print "La fonction COSEC(x) (cosecante circulaire de x) qui est égale à 1/SIN(x) est définie quelque soit x tel que SIN(x) ne soit pas nul.":print
  
  print " COSEC(x) est donc définie pour x <> k*pi avec k entier positif, négatif ou nul.":print
  print " La fonction y = cosec(x) peut prendre toutes les valeures de ]-l'infini à -1] et de [+1 à + l'infini[.":print
  
  print " Notez bien le tracé des asymptotes verticales pour les valeurs de k*pi.":print
  print:print " En PANORAMIC, la fonction cosecante n'existe pas. Pour l'utiliser faites y = 1/sin(x)"
  
  xmin = -2*pi : xmax = 2*pi : ymin = -2 : ymax = 2 : p = pi/180 : gosub axes
  x = xmin : y = 1/sin(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = xmin to xmax step p
    x = a : y = 1/sin(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************
' *** Les fonctions ARCSIN,ARCCOS,ARCTAN, etc.. s'appellent des fonctions
'    circulaires réciproques ou inverses

arc_sinus:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARC_SIN(X)"
  print_target_is form_graph%
  print " LA fonction ARCSIN(x) (Arc sinus x ),fonction inverse de la fonction sinus est définie dans l'intervalle [-1, +1].":print
  print " Elle est impaire, continue et croissante de -pi/2 à +pi/2":print
  print : print " En PANORAMIC, la fonction Arc sin x est notée ASIN(x)"
  xmin = 0-2 : xmax = 2 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
  x = 0-1 : y = asin(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = -1 to 1 step p
    x = a : y = asin(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

arc_cosinus:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARC_COS(X)"
  print_target_is form_graph%
  print " LA fonction ARCCOS(x) (Arc cosinus x ),fonction inverse de la fonction cosinus est définie dans l'intervalle [-1, +1].":print
  
  print " Elle est impaire, continue et décroissante de pi à 0":print
  print : print " En PANORAMIC, la fonction Arc cos x est notée ACOS(x)"
  xmin = 0-2 : xmax = 2 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
  x = 0-1 : y = acos(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = -1 to 1 step p
    x = a : y = acos(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  x = 1 : y = acos(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_to xp,yp/2+ly/4

return
' ******************************************************************************

arc_tangente:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARC_TAN(X)"
  print_target_is form_graph%
  print " LA fonction ARCTAN(x) (Arc tangente x ), fonction inverse de la fonction tangente est définie quel que soit x":print
  
  print " Elle est impaire,continue et croissante de -pi/2 à +pi/2 (bornes non comprises)":print
  print : print " En PANORAMIC, la fonction Arc tg x est notée ATN(x)"
  xmin = 0-10 : xmax = 10 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
  x = xmin : y = atn(x) :p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp+lx,yp/2+ly/4 :  ' tracé de l'asymptote horizontale y = -pi/2
  for a = xmin to xmax step p
    x = a : y = atn(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  2d_poly_to 0,yp/2+ly/4      : ' tracé de l'asymptote horizontale y = pi/2
return
' ******************************************************************************

arc_cotangente:

  show  form_graph%
  caption  form_graph% , string$(50," ")+" <CLICK>  POUR REVENIR" +string$(55," ") + "Y = ARC_COTAN(X)"
  print_target_is form_graph%
  print " LA fonction ARCCOTAN(x) (Arc cotangente x ),fonction inverse de la fonction cotangente est définie quel que soit x":print
  
  print " Elle est impaire, continue et décroissante de pi à 0 (bornes non comprises)":print
  print : print " En PANORAMIC, cette fonction n'existe pas. Pour l'utiliser faites y = pi/2 - ATN(x)"
  
   xmin = -10: xmax = 10 : ymin = -3 : ymax = 3 : p = 1 : gosub axes
  x = xmin : y = pi/2 - atn(a)  : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-20,yp/2+ly/4
  for a = xmin to xmax step p
    x = a : y = pi/2 - atn(a)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

' ARCSEC(x) = -ARCCOS(1/x) = ATN(SQR(x*x-1))-pi
arc_secante:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARC_SEC(X)"
  print_target_is form_graph%
  print " LA fonction ARCSEC(x) (Arc secante x ),fonction inverse de la fonction secante":print
  print " est définie de moins l'infini à moins un et de plus un à plus l'infini (bornes non comprises)":print
  print : print " En PANORAMIC, cette fonction n'existe pas. Pour l'utiliser faites y = -ACOS(1/x) ou y = ATN(SQR(x*x-1))-pi":print
  
   xmin = -10: xmax = 10 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
  x = xmin :  y = 0-acos(1/x)  : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0
  for a = xmin to 0-1 step p        : ' Branche gauche de la courbe
    x = a :  y =0- acos(1/x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2 +ly/4
  next a
  
  x = 1 + epsilon :  y = 0-acos(1/x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
  2d_poly_from xp,(yp/2+ly/4)
  for a = 1+epsilon to xmax step p  : ' Branche droite de la courbe
    x = a :  y = 0-acos(1/x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

' ARCCOSEC(x) = ASIN(1/x) = ATN(x/sqr(x*x-1))
arc_cosecante:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARC_COSEC(X)"
  print_target_is form_graph%
  print " LA fonction ARCCOSEC(x) (Arc cosecante x ),fonction inverse de la fonction":print
  print " cosecante est définie de moins l'infini à moins un et de plus un à plus l'infini (bornes non comprises)":print
  print :print " En PANORAMIC, cette fonction n'existe pas. Pour l'utiliser faites y = ASIN(1/x) = ATN(x/sqr(x*x-1))"
  
   xmin = -10: xmax = 10 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
  x = xmin : y = asin(1/x) :p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0-(yp/2-ly/4)
  for a = xmin to 0-1 step p
    x = a : y = asin(1/x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  
  x = 1+p : y = asin(1/x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = 1+p to xmax step p
    x = a :  y = asin(1/x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************
' *** Les fonctions SH et CH s'appellent des fonctions hyperboliques parce
'    que la branche "droite" de l'hyperbole d'équation x*x - y*y = 1 peut se
'    paramétrer en :
'    x = ch(t)
'    y = sh(t) avec t réel quelconque
' ******************************************************************************

sinus_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = SINH(X)"
  print_target_is form_graph%
  print " On appelle sinus hyperbolique de x la quantité : y = SH(x) = (exp(x) - exp(-x))/2" : print
  print " y = sh(x) est impaire, définie et continue quelque soit x" : print : print
  print " En PANORAMIC la fonction sinus hyperbolique de x est notée HSIN(x)"
  xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
  x = xmin : y = hsin(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0-(yp/2+ly/4)
  for a = xmin to xmax step p
    x = a :  y = hsin(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

cosinus_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = COSH(X)"
  print_target_is form_graph%
  print " On appelle cosinus hyperbolique de x la quantité : Y = CH(x) = (exp(x) + exp(-x))/2":print
  print " y = ch(x) est paire, définie et continue quelque soit x":print
  print " Sa courbe représentative est appelée la chaînette" :print : print
  print " En PANORAMIC la fonction cosinus hyperbolique de x est notée HCOS(x)"
  xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
  x = xmin : y = hcos(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0-(yp/2+ly/4)
  for a = xmin to xmax step p
    x = a :  y = hcos(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

tangente_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = TANH(X)"
  print_target_is form_graph%
  print " On appelle tangente hyperbolique de x la quantité :  Y = TH(x) = SH(x)/CH(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))": print
  print " y = th(x) est impaire, définie et continue quelque soit x ":print
  print " La courbe représentative de y = th(x) admet pour asymptote les deux droites d'équations y = 1 et y = -1"
  print:print:print " En PANORAMIC la fonction tangente hyperbolique de x est notée HTAN(x)"
  xmin = -4: xmax = 4 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
  x = xmin : y = htan(x) :p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from lx,yp/2+ly/4  : ' asyptote d'équation y = -1
  for a = xmin to xmax step p
    x = a :  y = htan(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  2d_poly_to 0,yp/2+ly/4    : ' asyptote d'équation y = +1
return
' ******************************************************************************

cotangente_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = COTH(X)"
  print_target_is form_graph%
  print " On appelle cotangente hyperbolique de x la quantité :" : print
  print " Y = COTH(x) = CH(x) / SH(x) = 1 / TH(x) = (exp(x) + exp(-x)) / (exp(x) - exp(-x))":print
  print " y = th(x) est définie et continue quelque soit x <> 0" : print
  print:print " En PANORAMIC la fonction cotangente hyperbolique n'existe pas. Pour l'utiliser faites y = 1 / HTAN(x)"
  xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
  x = xmin : y = 1/htan(x)  : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0-(yp/2+ly/4)
  for a = xmin to xmax step p
    x = a :  y = 1/htan(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

secante_hyperbolique:

  show  form_graph%
  caption  form_graph% , string$(50," ")+" <CLICK>  POUR REVENIR" +string$(55," ") + "Y = SECH(X)"
  print_target_is form_graph%
  print " On appelle secante hyperbolique de x la quantité :  Y = SECH(x) = 2 / (exp(x) + exp(-x))":print
  print " y = sech(x) est définie et continue quelque soit x. Elle admet pour x = 0 un maximum y = 1":print
  print:print " En PANORAMIC la fonction secante hyperbolique n'existe pas. Pour l'utiliser faites y = 2 / (exp(x) + exp(0-x))"
  xmin = -4: xmax = 4 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
  x = xmin : y = 2 /(exp(x) + exp(0-x)) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0-(yp/2+ly/4)
  for a = xmin to xmax step p
    x = a :  y = 2 /(exp(x) + exp(0-x))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

cosecante_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = COSECH(X)"
  print_target_is form_graph%
  print " On appelle cosecante hyperbolique de x la quantité :  Y = COSECH(x) = 2 / (exp(x) - exp(0-x))":print
  print " y = cosech(x) est définie et continue quelque soit x <> 0" : print
  print:print " En PANORAMIC la fonction cosecante hyperbolique de x n'existe pas. Pour l'utiliser faites y = 2 /(exp(x) - exp(0-x))"
  
  xmin = -5: xmax = 5 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
  x = xmin : y = 2 /(exp(x) - exp(0-x)) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp-100,0-(yp/2+ly/4)
  for a = xmin to xmax step p
    x = a :  y = 2 /(exp(x) - exp(0-x))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  2d_line 0,yp/2+ly/4+3,lx,yp/2+ly/4+3 : ' asymptote horizontale y = 0
return
' ******************************************************************************

argument_sinus_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARGSH(X)"
  print_target_is form_graph%
  print " La fonction Argsh(x) (argument sinus hyperbolique de x) est une fonction inverse de la fonction SH(x)":print
  print "  y = argsh(x) est définie quelque soit x; elle est continue et croissante de moins l'infini à plus l'infini.":print
  print:print " En PANORAMIC la fonction argument sinus hyperbolique de x n'existe pas.  Pour l'utiliser faites y = log(x+sqr(x*x+1))"
  xmin = -5: xmax = 5 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
   x = xmin : y = log(x+sqr(x*x+1)) : p = pi/180
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = xmin to xmax step p
    x = a : y = log(x+sqr(x*x+1))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

argument_cosinus_hyperbolique:

  show  form_graph%
  caption  form_graph% , string$(50," ")+" <CLICK>  POUR REVENIR" +string$(55," ") + "Y = ARGCH(X)"
  print_target_is form_graph%
  print " La fonction Argch(x) (argument cosinus hyperbolique de x) est une fonction  inverse de la fonction CH(x)":print
  print " y = argch(x) est définie quelque soit x >= 1; elle est continue et croissante de 0 à plus l'infini.":print
  print:print " En PANORAMIC la fonction argument cosinus hyperbolique de x n'existe pas. Pour l'utiliser faites y = log(x+sqr(x*x-1))"
  
  xmin = -4: xmax = 4 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
   x = 1 : y = log(x+sqr(x*x-1)) : p = pi/180
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = 1 to xmax step p
    x = a : y = log(x+sqr(x*x-1))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

argument_tangente_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARGTH(X)"
  print_target_is form_graph%
  print " La fonction Argth(x) (argument tangente hyperbolique de x) est une fonction inverse de la fonction TH(x)":print
  print " y = argth(x) est définie dans l'intervalle ]-1, +1[ ; elle est continue et  croissante de moins l'infini à plus l'infini.":print
  print " Elle admet pour asymptotes les droites d'équations x = 1 et x = -1":print
  print " En PANORAMIC la fonction argument tangente hyperbolique de x n'existe pas. Pour l'utiliser faites y = 1/2 * log((1+x)/(1-x))"
  
  xmin = -4: xmax = 4 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
  x =  -1+ epsilon : y = 0.5*log((1+x)/(1-x)) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,0 : ' asymptote verticale x = -1
  for a = -1+epsilon to 1 step p
    x = a : y = 0.5*log((1+x)/(1-x))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  2d_poly_to xp,ly  : ' asymptote verticale x = +1

return
' ******************************************************************************

argument_cotangente_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARGCOTH(X)"
  print_target_is form_graph%
  print " La fonction Argcoth(x) (argument cotangente hyperbolique de x) est une fonction inverse de la fonction COTH(x)":print
  print " y = argcoth(x) est définie pour x < -1 et x > +1. Elle admet pour asymptotes les droites d'équations x = 1 et x = -1":print
  print:print " En PANORAMIC la fonction argument cotangente hyperbolique de x n'existe pas. Pour l'utiliser faites y = 1/2 * log((x+1)/(x-1))"
  xmin = -8: xmax = 8 : ymin = -1 : ymax = 1 : p = 1 : gosub axes
   x =  xmin : y = 0.5*log((1+x)/(x-1)) : p = pi/180
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp-100,0
  for a = xmin to -1 step p    : ' Branche pour x < -1
    x = a : y = 0.5*log((1+x)/(x-1))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
   2d_poly_to xp,0  : ' asymptote verticale x = -1
   x =  -1-epsilon : y = 0.5*log((1+x)/(x-1))
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_to xp,yp/2+ly/4
  
   x =  1+epsilon : y = 0.5*log((1+x)/(x-1))
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,ly : ' asymptote verticale x = +1
  
  for a = 1+epsilon to xmax step p  : ' Branche pour x > +1
    x = a : y = 0.5*log((1+x)/(x-1))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

argument_secante_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARGSECH(X)"
  print_target_is form_graph%
  print " La fonction Argsech(x) (argument secante hyperbolique de x) est une fonction inverse de la fonction SECH(x)":print
  print " y = argsech(x) est définie pour x > 0 et x <= 1":print
  print " En PANORAMIC la fonction argument secante hyperbolique de x n'existe pas. Pour l'utiliser faites y =  log((1+sqr(1-x*x)/x))"
  
  xmin = -4: xmax = 4 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
   x =  epsilon : y = log((1+sqr(1-x*x)/x)) : p = pi/180
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = epsilon to 1 step p
    x = a : y = log((1+sqr(1-x*x)/x))
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4 +10
  next a
return
' ******************************************************************************

' Argcosech(x) = log(1/x + (x*sqr(1+x*x))/x*x) est définie pour  x > 0
argument_cosecante_hyperbolique:

  show  form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = ARGCOSECH(X)"
  print_target_is form_graph%
  print " La fonction Argcosech(x) (argument cosecante hyperbolique de x) est une fonction inverse de la fonction COSECH(x)":print
  print " y = argsech(x) est définie quelque soit x <> 0":print
  print:print " En PANORAMIC la fonction argument cosecante hyperbolique de x n'existe pas. "
  print:print " Pour l'utiliser faites y = log(1 / x + (x * sqr(1 + x * x)) / x * x)"
  
  xmin = -4: xmax = 4 : ymin = -2 : ymax = 2 : p = 1 : gosub axes
   x =  epsilon : y = log(1/x + (x*sqr(1+x*x))/x*x) : p = pi/180
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = epsilon to xmax step p  : ' branche droite de la courbe
    x = abs(a) : y = log(1/x + (x*sqr(1+x*x))/x*x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a
  
  x =  epsilon : y = log(1/x + (x*sqr(1+x*x))/x*x)
   xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   xp = lx-xp : yp = ly -yp
   2d_poly_from xp,yp/2+ly/4      : ' branche gauche de la courbe
  for a = epsilon to xmax step p
    x = a : y = log(1/x + (x*sqr(1+x*x))/x*x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    xp = lx-xp : yp = ly -yp
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

sinus_cardinal:
  show  form_graph%
  caption  form_graph% , string$(50," ")+" <CLICK>  POUR REVENIR" +string$(55," ") + "Y = SINC(X)"
  print_target_is form_graph%
  print " Le sinus cardinal est une fonction spéciale utilisée dans des problèmes de physique ondulatoire":print
  print " Son graphe est appelé 'chapeau mexicain' à cause de la forme de sa courbe en 3D.":print
  print " La fonction sinus cardinal est définie par  SINC(x) = SIN(x)/x":print
  print:print " En PANORAMIC cette fonction n'existe pas. Pour l'utiliser faites y = SIN(x) / x"
  
  xmin = -20 : xmax = 20 : ymin = -.5 : ymax = .5 : p = 2 : gosub axes
  x = xmin : y = sin(x)/x  : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = xmin+p to xmax step p
    x = a : y = sin(x)/x
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

sinus_cardinal_normalise:

  show form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = SINCN(X)"
  print_target_is form_graph%
  print " La fonction sinus cardinal normalisé est définie par SINCN(x) = SIN(pi*x)/pi*x":print
  print:print " En PANORAMIC cette fonction n'existe pas. Pour l'utiliser faites y = SIN( pi * x ) / pi * x"
  
  xmin = -20 : xmax = 20 : ymin = -.5 : ymax = .5 : p = 2 : gosub axes
  x = xmin : y = sin(pi*x)/(pi*x)  : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = xmin+p to xmax step p
    x = a : y = sin(pi*x)/(pi*x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

logarithme_neperien:

  show form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = LOG(X)"
  print_target_is form_graph%
  print " La fonction LOG(x) (logarithme népérien de x) est définie et continue pour tout x > 0":print
  print " Elle est croissante de moins l'infini à plus l'infini. Elle s'annule pour x = 1":print
  print " Elle prend la valeur 1 pour x = e = 2.71828182845905":print
  print " la valeur e = exp(1) est appelé ' base des logarithmes népériens '":print
  print " Elle admet pour asymptote l'axe des y":print
  print:print " En PANORAMIC, la fonction logarithme népérien de x est notée LOG(x)"
  
  xmin = -10 : xmax = 10 : ymin = -2 : ymax = 2 : p = 1 :gosub axes
  x = epsilon : y = log(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = epsilon to xmax step p
    x = a : y = log(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

logarithme_decimal:

  show form_graph%
  caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = LOG10(X)"
  print_target_is form_graph%
  print " La fonction LOG10(x) (logarithme décimal de x) , est appelé aussi logarithme vulgaire ou à base 10":print
  print " Elle est définie et continue pour tout x > 0":print
  print " Elle est croissante de moins l'infini à plus l'infini. Elle s'annule pour x = 1":print
  print " Elle admet pour asymptote l'axe des y":print
  print:print " En PANORAMIC, la fonction logarithme décimal de x est notée LOG10(x)"
  
  xmin = -10 : xmax = 10 : ymin = -2 : ymax = 2 : p = 1 :gosub axes
  x = epsilon : y = log10(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_from xp,yp/2+ly/4
  for a = epsilon to xmax step p
    x = a : y = log10(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return
' ******************************************************************************

logarithme_binaire:

  show form_graph%
  caption  form_graph% , string$(50," ")+" <CLICK>  POUR REVENIR" +string$(55," ") + "Y = LOG2(X)"
  print_target_is form_graph%
  print " La fonction LOG2(x) (logarithme binaire de x ou à base 2) est définie et continue pour tout x > 0":print
  print "                      !!! A T T E N T I O N !!!":print
  print " Il ne s'agit pas de l'écriture en binaire(0,1) du  résultat, mais de la base 2":print
  print " Elle est croissante de mois l'infini à plus l'infini. Elle s'annule pour x = 1. Elle admet pour asymptote l'axe des y":print
  print " Pour toute autre base a, la fonction logarithmique de base a est notée LOGa(x) = LOG(x)/LOG(a)":print
  print :print " En PANORAMIC, la fonction logarithme binaire de x est notée LOG2(x)"
  
  xmin = -10 : xmax = 10 : ymin = -2 : ymax = 2 : p = 1 :gosub axes
  
  x = epsilon : y = log2(x) : p = pi/180
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
   2d_poly_from xp,yp/2+ly/4
  for a = epsilon to xmax step p
    x = a : y = log2(x)
    xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
    2d_poly_to xp,yp/2+ly/4
  next a

return

' ******************************************************************************

exponentielle:

show form_graph%
caption  form_graph% ,string$(50," ")+" <CLICK>  POUR REVENIR" + string$(55," ") + "Y = EXP(X)"
print_target_is form_graph%
print " La fonction EXP(x) (exponentielle de x) est définie et continue quelque soit x":print
print " La fonction EXP(x) croît de 0 au-dessus à plus l'infini. L'axe des x est donc asymptote à la courbe représentative de y = exp(x)":print
print:print " En PANORAMIC la fonction exponentielle est notée EXP(x)"

xmin = -4 : xmax = 4 : ymin = -5 : ymax = 5 : p = 1 :gosub axes
x = xmin : y = exp(x)  : p = pi/180
xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
 2d_poly_from xp,yp/2+ly/4
for a = xmin to xmax step p
  x = a : y = exp(x)
  xp = lx*(x-xmin)/(xmax-xmin) : yp = ly *(0-y-ymin)/(ymax-ymin)
  2d_poly_to xp,yp/2+ly/4
next a

return
' ******************************************************************************

_________________
Invité, merci d'être passé par ici.
avatar
Admin
Admin

Messages : 71
Date d'inscription : 08/09/2015
Age : 67
Localisation : MOKNINE (Tunisie)

Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum