Forum de Programmation en langage PANORAMIC
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Mots-clés

Derniers sujets
»  Animations : Livres et leçons sur le français
Dim 21 Jan - 2:04 par Admin

» Animations FLASH
Lun 1 Jan - 13:01 par Admin

» Bonne Année 2018
Ven 29 Déc - 0:48 par Admin

» Automate cellulaire : simulation de feu de forêt
Sam 9 Déc - 2:56 par Admin

»  Exécution des fichiers CPL
Mar 28 Nov - 19:18 par Admin

» Quelques fonctions de la user32.dll
Sam 25 Nov - 1:43 par Admin

» Copier vers une FORM définie l’image de fond du bureau.
Ven 24 Nov - 2:38 par Admin

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

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

Février 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
262728    

Calendrier Calendrier


TRIGONOMETRIE CIRCULAIRE ET HYPERBOLIQUE

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 : 78
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

Revenir en haut

- Sujets similaires

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