#!/usr/bin/perl printf STDOUT "Content-type: text/xml\n\n"; # les donnees sont envoyees par methode GET # donc on recupere les donnees dans la variable # d'environnement QUERY_STRING $buffer=$ENV{"QUERY_STRING"}; # on split la chaine de donnees en des paires name=value local(@champs) = split(/&/, $buffer); local($donnees) = ""; # recuperation et mise en forme des donnees # on parcourt la liste des paires name=value my $param; foreach $i (0 .. $#champs) { # On convertit les plus en espaces $champs[$i] =~ s/\+/ /g; # On separe chaque champ en une cle et sa valeur ($key, $val) = split(/=/,$champs[$i],2); # On convertit les %XX de leur valeur hexadecimale en alphanumerique $key =~ s/%(..)/pack("c",hex($1))/ge; $val =~ s/%(..)/pack("c",hex($1))/ge; # on affiche le resultat # printf STDOUT "%s::%s\n",$key,$val; if ($key eq "giac"){ $param ="\"".$val."\""; } } my $string1; my $string2; # ------------ mettre le bon répertoire ---------------- $cas="./cas2html"; open(CAS, $cas." -m ".$param." |"); while () { $string1=$_; } close(CAS); open(CAS, $cas." -m -e ".$param." |"); while () { $string2=$_; } close(CAS); # affichage du code XML printf STDOUT "\n"; printf STDOUT "\n"; #printf STDOUT " []>\n"; #printf STDOUT "\n"; printf STDOUT "\n"; printf STDOUT "\n"; printf STDOUT "Giac en ligne\n"; printf STDOUT "\n"; printf STDOUT "\n"; printf STDOUT "
"; printf STDOUT "

Exemples d'instruction pour XCAS :

\n"; printf STDOUT " "; printf STDOUT ""; printf STDOUT ""; printf STDOUT ""; printf STDOUT ""; printf STDOUT "
Développer et réduire :
normal((x-1)*(x+2))
Factoriser :
factor(x^2+x-2)
Résoudre une équation :
solve(x^4-1=3)
Dériver une fonction :
diff((x-a)/(x+a),x)
Trouver une primitive :
integrate(t^2,t)
Calculer une intégrale :
integrate(x^2,x,1,2)
Calculer une limite en +infini:
limit(1/x, x=+infinity)
Calculer une limite en 0+:
limit(1/x, x=0, 1)
Calculer une limite en 0-:
limit(1/x, x=0, -1)
Résoudre l'éq diff à coeff const :
desolve([y''+y=cos(x),y(0)=1],y)
Calculer une somme :
sum(1/n^2, n, 1, 10)
Multiplier deux matrices :
[[1,2],[3,4]] * [[5,6],[7,8]]
"; printf STDOUT "Documentation complete ici\n"; printf STDOUT "

Entrez ici une instruction pour XCAS :\n"; printf STDOUT "
\n"; if ($param ne ""){ printf STDOUT " \n"; } else { printf STDOUT " \n"; } printf STDOUT "\n"; printf STDOUT "\n"; printf STDOUT "
\n

\n"; if ($param ne ""){ printf STDOUT "Instruction entrée : "; printf STDOUT $param."\n

"; printf STDOUT "\n"; printf STDOUT $string1." = ".$string2; printf STDOUT "

\n"; } printf STDOUT "
"; printf STDOUT ""; printf STDOUT "";