Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

9. Le groupe s_calc

9.1 CALC_start (file s_calc.c:64)

Syntax

REAL    CALC_start(form)
char *form;

Description

La fonction calcule le résultat REAL d'une expression ASCII 'form'.

Valeur retournée

Si une erreur s'est produite à la compilation de la chaîne (erreur de syntaxe, parenthèses non appariées, ...) ou à l'exécution de la forme compilée (division par zéro,...), la fonction retourne C_NAN (-2.0e36) et la variable globale C_errno est positionnée. Si aucune erreur a été decelée, la fonction retourne un REAL (double), la variable globale C_errno vaut 0.

Exemple

#include "s_calc.h"

main(argc, argv)
int argc;
char *argv[];
{
REAL result;

if (argc<2)
{
fprintf(stderr, "CALC v.1.0, HC/CIC/Planning Office\n");
fprintf(stderr, "Missing argument:\nUsage: calc expression\n");
c_help();
return 0;
}

result = CALC_start(argv[1]);
if (C_errno != 0)
{
fprintf(stderr, "ERROR : %s.\n",CALC_error());
return(0);
}
else printf("Result : %f", result);
return 0;
}

c_help()
{
fprintf(stderr,"Allowed tokens in \"expression\": \n");
fprintf(stderr,"(, ) \n");
fprintf(stderr,"+, -, *, /, ** \n");
fprintf(stderr,"e, pi \n");
fprintf(stderr,"abs, acos, asin, atan, cos, cosh, deg, exp, ln, \n");
fprintf(stderr,"log, rad, sin, sinh, sqrt, tan ,tanh \n");
fprintf(stderr,"Reals or integers numbers. \n");
fprintf(stderr," \n");
fprintf(stderr,"Example: c (1+ln(3*pi))**e/(sqrt(rad(45))+10) \n");
fprintf(stderr," \n");
fprintf(stderr,"(written by H.C. oct/91) \n");
fprintf(stderr," \n");
return(0);
}

Voir également

CALC_error()

9.1.1 File s_calc.c

REAL CALC_start(form)

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be