SCR/AL1 - TOME III. Les librairies utilitaires
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()
REAL CALC_start(form)
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be