lui-même ses résultats, le professeur pouvant s'intéresser à ceux qui ont vraiment des difficultés.
Ma première idée était de montrer le dessin à chaque pause mais la résultat n'est affiché qu'à la fin du programme. D'où une question naïve (soyons réalistes, demandons l'impossible):
Ne pourrait-on pas disposer d'une commande qui ferait une pause tout en affichant la fenêtre DispG avec mise à l'échelle automatique ?
Autre idée: écrire un programme avec plus de deux vecteurs...
Code : Tout sélectionner
/********** Construction interactive de au+bv **********/
CombLin2vect():={
local pnom,L1,L2,A,a,b;
/***** Saisie du prénom, des coordonnées de u, de v, de A, des réels a et b *****/
DispHome;//ferme la fenêtre DispG
saisir_chaine("Quel est votre prénom",pnom);
saisir("Bonjour "+pnom+" \n Donnez les coordonnées du vecteur u \n par exemple -3,7",L1);L1:=[L1];
saisir("Donnez les coordonnées du vecteur v",L2);L2:=[L2];
saisir("Donnez les coordonnées du point A",A);A:=[A];
saisir("Donnez un nombre a",a,"Donnez un nombre b",b);
legende([20,20],"u=("+L1[0]+","+L1[1]+")");
legende([20,40],"v=("+L2[0]+","+L2[1]+")");
legende([20,60],"A("+A[0]+","+A[1]+")");
afficher("Soit A("+A[0]+","+A[1]+") u=("+L1[0]+","+L1[1]+") v=("+L2[0]+","+L2[1]+")");
titre="Un représentant du vecteur ("+a+")u+("+b+")v";
//output("Construisez sur votre feuille un représentant du vecteur ("+a+")u d'origine A");//variante afficher
/***** Suivre les recommandations affichées en zone bleue intermédiaire *****/
afficher("Construisez sur votre feuille un représentant du vecteur ("+a+")u d'origine A");
output("Suivez les consignes écrites en bleu avant de fermer la fenêtre");
DispG;//affiche la fenêtre
output("Attention "+pnom+" on ne regarde pas la feuille du voisin");// :=)
/***** Construction de A et de au *****/
legende(point(A),"A");legende(vecteur(A,A+a*L1),"("+a+")u");
afficher("Construisez sur votre feuille un représentant du vecteur ("+b+")v d'origine l'extrémité du vecteur précédent");
Pause;
/***** Construction de bv d'origine l'extrémité de au *****/
legende(vecteur(A+a*L1,A+a*L1+b*L2),"("+b+")v");
afficher("Construisez en rouge un représentant du vecteur ("+a+")u+("+b+")v");
Pause;
/***** Construction de au+bv et de son extrémité M *****/
legende(vecteur(A,A+a*L1+b*L2,affichage=rouge+epaisseur_ligne_3),"("+a+")u+("+b+")v");
legende(point(A+a*L1+b*L2),"M");
retourne("Bravo "+pnom+" \nConsultez votre professeur si vous n'obtenez pas le graphique de la fenêtre DispG \nSi votre dessin est juste, calculez les coordonnées du point M (vérifiez avec Xcas)");
}