Exemples de code pour Algebrus XPascal
Je me propose de réunir ici quelques exemples de code pour Algebrus XPascal. Si vous voulez contribuer, n'hésitez pas !
Qu'est-ce qu'Algebrus ? Pour résumer, je dirais que c'est une sorte de calculatrice programmable en Pascal. Cette calculatrice a des fonctions graphiques. Elle peut lire et écrire des fichiers.
Quant au langage XPascal, pour ce que j'en ai vu, il ajoute au Pascal classique 1° des fonctions d'affichage amélioré 2° des types de variable, comme le type Vector.
Le programme suivant calcule des valeurs approchées de racine de 2 jusqu'à ce que la meilleure approximation soit atteinte. Les résultats sont ajoutés au fur et à mesure dans un vecteur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
// Algebrus XPascal
program racine_de_2;
function U(a, n: Integer): Real;
// Approximations de la racine carrée de a
// "n" est le nombre d'itérations
var
i: Integer;
temp: Real;
begin
temp := a;
for i:= 1 to n do
begin
temp := 0.5 * (temp + a / temp);
end;
result := temp;
end;
var
resultat, precedent: Real;
i : Integer;
stop : Boolean;
vecteur : Vector;
begin
precedent := 0;
i := 0;
stop := False;
SetLength(vecteur, 0);
//
repeat
resultat := U(2, i);// racine de 2
if resultat = precedent then
begin
stop := True;
end
else
begin
vecteur := Append(vecteur, resultat);
precedent := resultat;
i := i + 1;
end;
until stop;
//
Write(vecteur);
end. |
Ce qui donne l'affichage suivant :
Citation:
{2, 1.5, 1.4166667, 1.4142157, 1.4142136, 1.4142136}
On peut remplacer write() par ShowVec() pour un affichage en colonne avec certaines options.
Un bémol toutefois. Comme Simicro l'a déjà signalé dans sa présentation, le produit n'est plus mis à jour et il a quelques bugs. Je me suis enregistré pour pouvoir essayer toutes les fonctionnalités : certaines sont restées bloquées malgré la clé. Ce n'était pas une très bonne idée, apparemment. :oops:
Procédure ayant une fonction pour argument
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| // Exemple Algebrus XPascal
program demoPlot;
function f ( x : real ) : real;
begin
result := abs ( sin ( x ) );
end;
begin
plot ( f, {0, 2 * Pi} );
end. |
La procédure plot() admet comme argument une fonction. Etonnant, non ?
P.-S. En cherchant des informations sur le XPascal, j'ai l'impression qu'il y a plusieurs langages ou dialectes qui portent ou ont porté le même nom. J'ai ainsi trouvé des choses sur un langage de script qui aurait un rapport avec le XML, mais je n'ai pas compris lequel.
Savez-vous quelque chose sur cet autre (?) XPascal qui figure sur la liste des types MIME ?