next up previous contents index
suivant: Les différentes instructions monter: Vue d'ensemble de xcas précédent: Débugger un programme avec   Table des matières   Index

Présentation générale des instructions avec xcas

Les commentaires sont des chaînes de caractères, ils sont précédés de // ou sont parenthèsés par /* */

Les variables sont les endroits où l'on peut stocker des valeurs, des nombres, des expressions, des objets.
Le nom des variables est formé par une suite de caractères et commence par une lettre : attention on n'a pas droit aux mots réservés ...ne pas utiliser par exemple la variable i dans un for car i représente le nombre complexe de module 1 et d'argument $ {\frac{{\pi}}{{2}}}$.

Une action ou bloc est une séquence d'une ou plusieurs instructions.
Quand il y a plusieurs instructions il faut les parenthéser avec { } et séparer les instructions par un point virgule (;)
Un bloc est donc parenthèsé par { } et commence éventuellement par la déclaration des variables locales (local...).
En effet les variables locales doivent être déclarées au début d'un bloc par le mot réservé local puis on met les noms des variables séparés par des virgules (,). Ces variables locales peuvent être initialisées lors de leur déclaration.
Attention Les variables locales sont toujours affectèes : on ne définira donc pas, les variables formelles, avec local.
Voici des exemples :

Les paramètres sont mis après le nom de la fonction entre parenthèses :
par exemple f(a,b):=....
Ces paramètres sont initialisés lors de l'appel de la fonction et se comportent comme des variables locales.

L'affectation se fait avec := (par exemple a:=2; b:=a;).

Les entrées se font par passage de paramètres ou avec input.

Il n'y a pas de distinction entre programme et fonction : les sorties se font en mettant le nom de la variable à afficher (ou la séquence des variables à afficher ou entre crochets les variables à afficher séparées par une virgule) précedé du mot réservé return.

Les tests et boucles ont une syntaxe similaire au langage C++.

testif(a,b):={
if ((a==10) or (a<b))
    b:=b-a;
else 
    a:=a-b;
return [a,b];
};
testfor1(a,b):={
local j,s:=0;
for (j:=a;j<=b;j++)
   s:=s+1/j^2;
   return s;
};
testfor2(a,b):={
local j,s:=0;
for (j:=b;j>=a;j--)
    s:=s+1/j^2;
return s;
};
testwhile(a,b):={
while ((a==10) or (a<b))
   b:=b-a;
return [a,b];
};

Un exemple : le PGCD d'entiers
- Version itérative

pgcd(a,b):={
 local r;
 while (b!=0) {
    r:=irem(a,b);
    a:=b;
    b:=r;
 }
 return a;
};
-Version récursive
pgcdr(a,b):={
 if (b==0) return a;
 return pgcdr(b,irem(a,b));
};
ou
pgcdr(a,b):=if (b==0) return a;
                else return pgcdr(b,irem(a,b));

next up previous contents index
suivant: Les différentes instructions monter: Vue d'ensemble de xcas précédent: Débugger un programme avec   Table des matières   Index
Documentation de giac écrite par Renée De Graeve