Mon but est de mettre à disposition des élèves de mon lycée des sessions xcas de soutien utilisables avec ou sans l'aide du prof.
Pour l'heure je n'ai qu'une question de la plus haute importance:
existe-t-il un synonyme francisé de output ?
Après compilation, on exécute en tapant Image()
Code : Tout sélectionner
/****************************************************************
********** Calculer l'image d'un réel par une fonction **********
****************************************************************/
Calcul(E,x0):={ //Question+Réponse
local x;purge(x);
output("Soit f(x)="+E+ "\n Calculez l'image de "+x0+"\n Ne fermez cette fenêtre qu'après avoir répondu");
output("f("+x0+")="+simplifier(subst(E,x=x0)));
}:;
Choix():={ // choix aléatoire de x0. On peut modifier/augmenter la liste de choix
local ch,x0;
ch:=alea(3);
switch(ch) {
case 0 : {x0:=alea(21)-10;break;} //x0 entier entre -10 et 10
case 1 : {x0:=(alea(21)-10)/(alea(10)+1);break;} //x0 rationnel
case 2 : {x0:=alea(5)+cos(alea(1)*pi)*sqrt(alea(1)+2);break;} //x0 type a+b*sqrt(2) ou a+b*sqrt(3)
}
retourne x0;
}:;
Image():={
local a,b,c,E,x0,rep,d,x,ctr,vi;purge(x);
a:=alea(21)-10;b:=alea(21)-10;c:=alea(21)-10;
/***** fonction trinôme *****/
tantque a==0 faire
a:=alea(21)-10;
ftantque
E:=a*x^2+b*x+c;
x0:=Choix();
Calcul(E,x0);
saisir_chaine("Voulez vous continuer (o/n)",rep);
si rep=="n" alors retourne "A bientôt" fsi
/***** fonction homographique *****/
d:=alea(21)-10;
tantque c==0 ou a*d-b*c==0 faire
c:=alea(21)-10;d:=alea(21)-10;
ftantque
E:=(a*x+b)/(c*x+d);
x0:=-d/c; // valeur interdite
ctr:=0;
repeter
saisir(output("Soit f(x)="+E),"Saisissez la valeur interdite",vi);
ctr:=ctr+1;
jusqua
simplifier(vi-x0)==0 ou ctr>2;
tantque c*x0+d==0 faire
output(x0+" n'a pas d'image, pourquoi ?");
output("car le dénominateur s'annule pour x="+x0);
x0:=Choix();
ftantque
Calcul(E,x0);
/***** début ajouter une autre fonction *****/
saisir_chaine("Voulez vous continuer (o/n)",rep);
si rep=="n" alors retourne "A bientôt" fsi;
E:=a*x+b/(x-1);x0:=1; // valeur interdite
ctr:=0;
repeter
saisir(output("Soit f(x)="+E),"Saisissez la valeur interdite",vi);
ctr:=ctr+1;
jusqua
simplifier(vi-x0)==0 ou ctr>2;
tantque x0-1==0 faire
output(x0+" n'a pas d'image, pourquoi ?");
output("car le dénominateur s'annule pour x="+x0);
x0:=Choix();
ftantque
Calcul(E,x0);
/***** fin ajouter une autre fonction *****/
retourne "L'exercice est terminé"
}